@rowsncolumns/spreadsheet-state 28.0.76 → 29.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (633) hide show
  1. package/dist/cjs/api/anchored-objects.d.ts +122 -6
  2. package/dist/cjs/api/anchored-objects.d.ts.map +1 -1
  3. package/dist/cjs/api/anchored-objects.js +464 -43
  4. package/dist/cjs/api/copy-paste.d.ts +8 -2
  5. package/dist/cjs/api/copy-paste.d.ts.map +1 -1
  6. package/dist/cjs/api/copy-paste.js +4 -4
  7. package/dist/cjs/api/filter.d.ts +15 -1
  8. package/dist/cjs/api/filter.d.ts.map +1 -1
  9. package/dist/cjs/api/filter.js +32 -2
  10. package/dist/cjs/api/formula.d.ts +63 -0
  11. package/dist/cjs/api/formula.d.ts.map +1 -1
  12. package/dist/cjs/api/formula.js +278 -8
  13. package/dist/cjs/api/immer-utils.d.ts +11 -1
  14. package/dist/cjs/api/immer-utils.d.ts.map +1 -1
  15. package/dist/cjs/api/immer-utils.js +17 -1
  16. package/dist/cjs/api/insert-cut-cells.d.ts +35 -0
  17. package/dist/cjs/api/insert-cut-cells.d.ts.map +1 -0
  18. package/dist/cjs/api/insert-cut-cells.js +60 -0
  19. package/dist/cjs/api/merges.d.ts +8 -0
  20. package/dist/cjs/api/merges.d.ts.map +1 -1
  21. package/dist/cjs/api/merges.js +11 -0
  22. package/dist/cjs/api/paint-format.d.ts +22 -1
  23. package/dist/cjs/api/paint-format.d.ts.map +1 -1
  24. package/dist/cjs/api/paint-format.js +57 -1
  25. package/dist/cjs/api/sort.d.ts +23 -1
  26. package/dist/cjs/api/sort.d.ts.map +1 -1
  27. package/dist/cjs/api/sort.js +52 -6
  28. package/dist/cjs/api/structural-guards.d.ts +57 -0
  29. package/dist/cjs/api/structural-guards.d.ts.map +1 -1
  30. package/dist/cjs/api/structural-guards.js +93 -1
  31. package/dist/cjs/api/structural-table-refs.d.ts +58 -3
  32. package/dist/cjs/api/structural-table-refs.d.ts.map +1 -1
  33. package/dist/cjs/api/structural-table-refs.js +177 -16
  34. package/dist/cjs/api/subtotal.d.ts +20 -13
  35. package/dist/cjs/api/subtotal.d.ts.map +1 -1
  36. package/dist/cjs/api/subtotal.js +26 -19
  37. package/dist/cjs/api/table.d.ts +26 -2
  38. package/dist/cjs/api/table.d.ts.map +1 -1
  39. package/dist/cjs/api/table.js +93 -60
  40. package/dist/cjs/api/validation.d.ts.map +1 -1
  41. package/dist/cjs/api/validation.js +53 -8
  42. package/dist/cjs/atoms/creating-table.atom.d.ts +22 -0
  43. package/dist/cjs/atoms/creating-table.atom.d.ts.map +1 -0
  44. package/dist/cjs/atoms/creating-table.atom.js +4 -0
  45. package/dist/cjs/atoms/dialog-state.atom.d.ts +8 -0
  46. package/dist/cjs/atoms/dialog-state.atom.d.ts.map +1 -1
  47. package/dist/cjs/atoms/dialog-state.atom.js +28 -0
  48. package/dist/cjs/atoms/editing-slicer.atom.d.ts +9 -0
  49. package/dist/cjs/atoms/editing-slicer.atom.d.ts.map +1 -0
  50. package/dist/cjs/atoms/editing-slicer.atom.js +6 -0
  51. package/dist/cjs/atoms/index.d.ts +4 -0
  52. package/dist/cjs/atoms/index.d.ts.map +1 -1
  53. package/dist/cjs/atoms/index.js +4 -0
  54. package/dist/cjs/atoms/inserting-slicer.atom.d.ts +8 -0
  55. package/dist/cjs/atoms/inserting-slicer.atom.d.ts.map +1 -0
  56. package/dist/cjs/atoms/inserting-slicer.atom.js +5 -0
  57. package/dist/cjs/atoms/resizing-table.atom.d.ts +8 -0
  58. package/dist/cjs/atoms/resizing-table.atom.d.ts.map +1 -0
  59. package/dist/cjs/atoms/resizing-table.atom.js +5 -0
  60. package/dist/cjs/commands.d.ts +138 -2
  61. package/dist/cjs/commands.d.ts.map +1 -1
  62. package/dist/cjs/components/editors/embed-editor.d.ts +4 -2
  63. package/dist/cjs/components/editors/embed-editor.d.ts.map +1 -1
  64. package/dist/cjs/components/editors/embed-editor.js +38 -9
  65. package/dist/cjs/components/editors/slicer-editor.d.ts +15 -0
  66. package/dist/cjs/components/editors/slicer-editor.d.ts.map +1 -0
  67. package/dist/cjs/components/editors/slicer-editor.js +87 -0
  68. package/dist/cjs/components/editors/table-editor.d.ts +58 -2
  69. package/dist/cjs/components/editors/table-editor.d.ts.map +1 -1
  70. package/dist/cjs/components/editors/table-editor.js +261 -20
  71. package/dist/cjs/components/index.d.ts +1 -0
  72. package/dist/cjs/components/index.d.ts.map +1 -1
  73. package/dist/cjs/components/index.js +1 -0
  74. package/dist/cjs/constants.d.ts +9 -1
  75. package/dist/cjs/constants.d.ts.map +1 -1
  76. package/dist/cjs/constants.js +12 -0
  77. package/dist/cjs/generated-names.d.ts +13 -3
  78. package/dist/cjs/generated-names.d.ts.map +1 -1
  79. package/dist/cjs/generated-names.js +3 -1
  80. package/dist/cjs/helpers.d.ts +5 -0
  81. package/dist/cjs/helpers.d.ts.map +1 -1
  82. package/dist/cjs/helpers.js +10 -1
  83. package/dist/cjs/hooks/use-on-change-batch.d.ts +19 -2
  84. package/dist/cjs/hooks/use-on-change-batch.d.ts.map +1 -1
  85. package/dist/cjs/hooks/use-on-change-batch.js +43 -35
  86. package/dist/cjs/hooks/use-on-change-calculated-column.d.ts +10 -1
  87. package/dist/cjs/hooks/use-on-change-calculated-column.d.ts.map +1 -1
  88. package/dist/cjs/hooks/use-on-change-calculated-column.js +17 -5
  89. package/dist/cjs/hooks/use-on-change-table-column.d.ts +6 -1
  90. package/dist/cjs/hooks/use-on-change-table-column.d.ts.map +1 -1
  91. package/dist/cjs/hooks/use-on-change-table-column.js +17 -5
  92. package/dist/cjs/hooks/use-on-change.d.ts +36 -3
  93. package/dist/cjs/hooks/use-on-change.d.ts.map +1 -1
  94. package/dist/cjs/hooks/use-on-change.js +218 -136
  95. package/dist/cjs/hooks/use-on-copy.d.ts +1 -1
  96. package/dist/cjs/hooks/use-on-copy.d.ts.map +1 -1
  97. package/dist/cjs/hooks/use-on-copy.js +2 -3
  98. package/dist/cjs/hooks/use-on-create-custom-table-style.d.ts +17 -0
  99. package/dist/cjs/hooks/use-on-create-custom-table-style.d.ts.map +1 -0
  100. package/dist/cjs/hooks/use-on-create-custom-table-style.js +28 -0
  101. package/dist/cjs/hooks/use-on-create-named-range.d.ts +4 -2
  102. package/dist/cjs/hooks/use-on-create-named-range.d.ts.map +1 -1
  103. package/dist/cjs/hooks/use-on-create-named-range.js +11 -1
  104. package/dist/cjs/hooks/use-on-delete-cells-shift-left.d.ts +2 -1
  105. package/dist/cjs/hooks/use-on-delete-cells-shift-left.d.ts.map +1 -1
  106. package/dist/cjs/hooks/use-on-delete-cells-shift-left.js +3 -1
  107. package/dist/cjs/hooks/use-on-delete-cells-shift-up.d.ts +2 -1
  108. package/dist/cjs/hooks/use-on-delete-cells-shift-up.d.ts.map +1 -1
  109. package/dist/cjs/hooks/use-on-delete-cells-shift-up.js +3 -1
  110. package/dist/cjs/hooks/use-on-delete-column.d.ts +2 -1
  111. package/dist/cjs/hooks/use-on-delete-column.d.ts.map +1 -1
  112. package/dist/cjs/hooks/use-on-delete-column.js +3 -1
  113. package/dist/cjs/hooks/use-on-delete-row.d.ts +2 -1
  114. package/dist/cjs/hooks/use-on-delete-row.d.ts.map +1 -1
  115. package/dist/cjs/hooks/use-on-delete-row.js +3 -1
  116. package/dist/cjs/hooks/use-on-delete-sheet.d.ts +9 -1
  117. package/dist/cjs/hooks/use-on-delete-sheet.d.ts.map +1 -1
  118. package/dist/cjs/hooks/use-on-delete-sheet.js +17 -1
  119. package/dist/cjs/hooks/use-on-delete-table-row.d.ts +4 -1
  120. package/dist/cjs/hooks/use-on-delete-table-row.d.ts.map +1 -1
  121. package/dist/cjs/hooks/use-on-delete-table-row.js +19 -1
  122. package/dist/cjs/hooks/use-on-delete.d.ts +5 -2
  123. package/dist/cjs/hooks/use-on-delete.d.ts.map +1 -1
  124. package/dist/cjs/hooks/use-on-delete.js +5 -1
  125. package/dist/cjs/hooks/use-on-embeds.d.ts +7 -4
  126. package/dist/cjs/hooks/use-on-embeds.d.ts.map +1 -1
  127. package/dist/cjs/hooks/use-on-embeds.js +26 -24
  128. package/dist/cjs/hooks/use-on-fill.d.ts +17 -2
  129. package/dist/cjs/hooks/use-on-fill.d.ts.map +1 -1
  130. package/dist/cjs/hooks/use-on-fill.js +29 -15
  131. package/dist/cjs/hooks/use-on-filter-table.d.ts.map +1 -1
  132. package/dist/cjs/hooks/use-on-filter-table.js +209 -103
  133. package/dist/cjs/hooks/use-on-import-excel.d.ts +2 -1
  134. package/dist/cjs/hooks/use-on-import-excel.d.ts.map +1 -1
  135. package/dist/cjs/hooks/use-on-import-excel.js +22 -19
  136. package/dist/cjs/hooks/use-on-insert-cells-shift-down.d.ts +2 -1
  137. package/dist/cjs/hooks/use-on-insert-cells-shift-down.d.ts.map +1 -1
  138. package/dist/cjs/hooks/use-on-insert-cells-shift-down.js +3 -1
  139. package/dist/cjs/hooks/use-on-insert-cells-shift-right.d.ts +2 -1
  140. package/dist/cjs/hooks/use-on-insert-cells-shift-right.d.ts.map +1 -1
  141. package/dist/cjs/hooks/use-on-insert-cells-shift-right.js +3 -1
  142. package/dist/cjs/hooks/use-on-insert-column.d.ts +2 -1
  143. package/dist/cjs/hooks/use-on-insert-column.d.ts.map +1 -1
  144. package/dist/cjs/hooks/use-on-insert-column.js +3 -1
  145. package/dist/cjs/hooks/use-on-insert-row.d.ts +2 -1
  146. package/dist/cjs/hooks/use-on-insert-row.d.ts.map +1 -1
  147. package/dist/cjs/hooks/use-on-insert-row.js +3 -1
  148. package/dist/cjs/hooks/use-on-insert-table-row.d.ts +5 -2
  149. package/dist/cjs/hooks/use-on-insert-table-row.d.ts.map +1 -1
  150. package/dist/cjs/hooks/use-on-insert-table-row.js +19 -1
  151. package/dist/cjs/hooks/use-on-merge-unmerge-cells.d.ts +3 -2
  152. package/dist/cjs/hooks/use-on-merge-unmerge-cells.d.ts.map +1 -1
  153. package/dist/cjs/hooks/use-on-merge-unmerge-cells.js +14 -1
  154. package/dist/cjs/hooks/use-on-move-columns.d.ts +4 -1
  155. package/dist/cjs/hooks/use-on-move-columns.d.ts.map +1 -1
  156. package/dist/cjs/hooks/use-on-move-columns.js +28 -6
  157. package/dist/cjs/hooks/use-on-move-rows.d.ts +18 -1
  158. package/dist/cjs/hooks/use-on-move-rows.d.ts.map +1 -1
  159. package/dist/cjs/hooks/use-on-move-rows.js +44 -6
  160. package/dist/cjs/hooks/use-on-move-selection.d.ts +9 -2
  161. package/dist/cjs/hooks/use-on-move-selection.d.ts.map +1 -1
  162. package/dist/cjs/hooks/use-on-move-selection.js +101 -25
  163. package/dist/cjs/hooks/use-on-paste.d.ts +33 -2
  164. package/dist/cjs/hooks/use-on-paste.d.ts.map +1 -1
  165. package/dist/cjs/hooks/use-on-paste.js +1005 -740
  166. package/dist/cjs/hooks/use-on-remove-duplicates.d.ts +5 -2
  167. package/dist/cjs/hooks/use-on-remove-duplicates.d.ts.map +1 -1
  168. package/dist/cjs/hooks/use-on-remove-duplicates.js +5 -1
  169. package/dist/cjs/hooks/use-on-request-create-table.d.ts +13 -0
  170. package/dist/cjs/hooks/use-on-request-create-table.d.ts.map +1 -0
  171. package/dist/cjs/hooks/use-on-request-create-table.js +44 -0
  172. package/dist/cjs/hooks/use-on-request-insert-slicer.d.ts +7 -0
  173. package/dist/cjs/hooks/use-on-request-insert-slicer.d.ts.map +1 -0
  174. package/dist/cjs/hooks/use-on-request-insert-slicer.js +15 -0
  175. package/dist/cjs/hooks/use-on-request-resize-table.d.ts +7 -0
  176. package/dist/cjs/hooks/use-on-request-resize-table.d.ts.map +1 -0
  177. package/dist/cjs/hooks/use-on-request-resize-table.js +15 -0
  178. package/dist/cjs/hooks/use-on-resize-table.d.ts +5 -1
  179. package/dist/cjs/hooks/use-on-resize-table.d.ts.map +1 -1
  180. package/dist/cjs/hooks/use-on-resize-table.js +110 -33
  181. package/dist/cjs/hooks/use-on-sort-column.d.ts +28 -3
  182. package/dist/cjs/hooks/use-on-sort-column.d.ts.map +1 -1
  183. package/dist/cjs/hooks/use-on-sort-column.js +136 -90
  184. package/dist/cjs/hooks/use-on-sort-range.d.ts +26 -3
  185. package/dist/cjs/hooks/use-on-sort-range.d.ts.map +1 -1
  186. package/dist/cjs/hooks/use-on-sort-range.js +113 -67
  187. package/dist/cjs/hooks/use-on-sort-table.d.ts +18 -1
  188. package/dist/cjs/hooks/use-on-sort-table.d.ts.map +1 -1
  189. package/dist/cjs/hooks/use-on-sort-table.js +128 -98
  190. package/dist/cjs/hooks/use-on-subtotal.d.ts +10 -3
  191. package/dist/cjs/hooks/use-on-subtotal.d.ts.map +1 -1
  192. package/dist/cjs/hooks/use-on-subtotal.js +13 -9
  193. package/dist/cjs/hooks/use-on-table.d.ts +39 -7
  194. package/dist/cjs/hooks/use-on-table.d.ts.map +1 -1
  195. package/dist/cjs/hooks/use-on-table.js +257 -49
  196. package/dist/cjs/hooks/use-on-undo-calculated-column.d.ts +23 -0
  197. package/dist/cjs/hooks/use-on-undo-calculated-column.d.ts.map +1 -0
  198. package/dist/cjs/hooks/use-on-undo-calculated-column.js +70 -0
  199. package/dist/cjs/hooks/use-on-undo-table-auto-expansion.d.ts +28 -0
  200. package/dist/cjs/hooks/use-on-undo-table-auto-expansion.d.ts.map +1 -0
  201. package/dist/cjs/hooks/use-on-undo-table-auto-expansion.js +96 -0
  202. package/dist/cjs/hooks/use-on-update-named-range.d.ts +4 -2
  203. package/dist/cjs/hooks/use-on-update-named-range.d.ts.map +1 -1
  204. package/dist/cjs/hooks/use-on-update-named-range.js +13 -1
  205. package/dist/cjs/hooks/use-sheet-properties.d.ts +1 -0
  206. package/dist/cjs/hooks/use-sheet-properties.d.ts.map +1 -1
  207. package/dist/cjs/hooks/use-sheet-properties.js +54 -34
  208. package/dist/cjs/hooks/use-slicers.d.ts +2 -2
  209. package/dist/cjs/hooks/use-slicers.d.ts.map +1 -1
  210. package/dist/cjs/hooks/use-slicers.js +17 -26
  211. package/dist/cjs/hooks/use-sparkline-groups.d.ts +50 -0
  212. package/dist/cjs/hooks/use-sparkline-groups.d.ts.map +1 -0
  213. package/dist/cjs/hooks/use-sparkline-groups.js +192 -0
  214. package/dist/cjs/hooks/use-spreadsheet-state.d.ts +69 -12
  215. package/dist/cjs/hooks/use-spreadsheet-state.d.ts.map +1 -1
  216. package/dist/cjs/hooks/use-spreadsheet-state.js +383 -84
  217. package/dist/cjs/hooks/use-structured-reference.d.ts.map +1 -1
  218. package/dist/cjs/hooks/use-structured-reference.js +17 -0
  219. package/dist/cjs/hooks/use-undo-redo-actions.d.ts +2 -1
  220. package/dist/cjs/hooks/use-undo-redo-actions.d.ts.map +1 -1
  221. package/dist/cjs/hooks/use-undo-redo-actions.js +10 -2
  222. package/dist/cjs/hooks/use-undo-redo.d.ts +12 -0
  223. package/dist/cjs/hooks/use-undo-redo.d.ts.map +1 -1
  224. package/dist/cjs/hooks/use-undo-redo.js +169 -10
  225. package/dist/cjs/hooks/utils/sort-rows.d.ts.map +1 -1
  226. package/dist/cjs/hooks/utils/sort-rows.js +4 -3
  227. package/dist/cjs/index.d.ts +8 -0
  228. package/dist/cjs/index.d.ts.map +1 -1
  229. package/dist/cjs/index.js +9 -0
  230. package/dist/cjs/interface/apply-fill.d.ts +26 -3
  231. package/dist/cjs/interface/apply-fill.d.ts.map +1 -1
  232. package/dist/cjs/interface/apply-fill.js +207 -98
  233. package/dist/cjs/interface/change-batch.d.ts +1 -1
  234. package/dist/cjs/interface/change-batch.d.ts.map +1 -1
  235. package/dist/cjs/interface/change-batch.js +112 -15
  236. package/dist/cjs/interface/change-calculated-column.d.ts +6 -2
  237. package/dist/cjs/interface/change-calculated-column.d.ts.map +1 -1
  238. package/dist/cjs/interface/change-calculated-column.js +87 -17
  239. package/dist/cjs/interface/change-table-column.d.ts +81 -7
  240. package/dist/cjs/interface/change-table-column.d.ts.map +1 -1
  241. package/dist/cjs/interface/change-table-column.js +336 -76
  242. package/dist/cjs/interface/create-table.d.ts +15 -3
  243. package/dist/cjs/interface/create-table.d.ts.map +1 -1
  244. package/dist/cjs/interface/create-table.js +100 -25
  245. package/dist/cjs/interface/delete-cells-shift-left.d.ts +1 -1
  246. package/dist/cjs/interface/delete-cells-shift-left.d.ts.map +1 -1
  247. package/dist/cjs/interface/delete-cells-shift-left.js +10 -1
  248. package/dist/cjs/interface/delete-cells-shift-up.d.ts +1 -1
  249. package/dist/cjs/interface/delete-cells-shift-up.d.ts.map +1 -1
  250. package/dist/cjs/interface/delete-cells-shift-up.js +10 -1
  251. package/dist/cjs/interface/delete-cells.d.ts +1 -1
  252. package/dist/cjs/interface/delete-cells.d.ts.map +1 -1
  253. package/dist/cjs/interface/delete-cells.js +81 -25
  254. package/dist/cjs/interface/delete-column.d.ts +1 -1
  255. package/dist/cjs/interface/delete-column.d.ts.map +1 -1
  256. package/dist/cjs/interface/delete-column.js +29 -22
  257. package/dist/cjs/interface/delete-row.d.ts +1 -1
  258. package/dist/cjs/interface/delete-row.d.ts.map +1 -1
  259. package/dist/cjs/interface/delete-row.js +244 -39
  260. package/dist/cjs/interface/delete-sheet.d.ts +2 -2
  261. package/dist/cjs/interface/delete-sheet.d.ts.map +1 -1
  262. package/dist/cjs/interface/delete-sheet.js +118 -1
  263. package/dist/cjs/interface/delete-table-column.d.ts +1 -1
  264. package/dist/cjs/interface/delete-table-column.d.ts.map +1 -1
  265. package/dist/cjs/interface/delete-table-column.js +11 -1
  266. package/dist/cjs/interface/delete-table-row.d.ts +1 -1
  267. package/dist/cjs/interface/delete-table-row.d.ts.map +1 -1
  268. package/dist/cjs/interface/delete-table-row.js +361 -275
  269. package/dist/cjs/interface/duplicate-sheet.d.ts.map +1 -1
  270. package/dist/cjs/interface/duplicate-sheet.js +83 -31
  271. package/dist/cjs/interface/embeds.d.ts +10 -1
  272. package/dist/cjs/interface/embeds.d.ts.map +1 -1
  273. package/dist/cjs/interface/embeds.js +120 -6
  274. package/dist/cjs/interface/insert-cells-shift-down.d.ts +1 -1
  275. package/dist/cjs/interface/insert-cells-shift-down.d.ts.map +1 -1
  276. package/dist/cjs/interface/insert-cells-shift-down.js +10 -1
  277. package/dist/cjs/interface/insert-cells-shift-right.d.ts +1 -1
  278. package/dist/cjs/interface/insert-cells-shift-right.d.ts.map +1 -1
  279. package/dist/cjs/interface/insert-cells-shift-right.js +10 -1
  280. package/dist/cjs/interface/insert-column.d.ts +2 -2
  281. package/dist/cjs/interface/insert-column.d.ts.map +1 -1
  282. package/dist/cjs/interface/insert-column.js +101 -56
  283. package/dist/cjs/interface/insert-row.d.ts +1 -1
  284. package/dist/cjs/interface/insert-row.d.ts.map +1 -1
  285. package/dist/cjs/interface/insert-row.js +25 -7
  286. package/dist/cjs/interface/insert-table-row.d.ts +2 -1
  287. package/dist/cjs/interface/insert-table-row.d.ts.map +1 -1
  288. package/dist/cjs/interface/insert-table-row.js +70 -19
  289. package/dist/cjs/interface/remove-duplicates.d.ts +1 -1
  290. package/dist/cjs/interface/remove-duplicates.d.ts.map +1 -1
  291. package/dist/cjs/interface/remove-duplicates.js +46 -6
  292. package/dist/cjs/interface/remove-table.d.ts +1 -1
  293. package/dist/cjs/interface/remove-table.d.ts.map +1 -1
  294. package/dist/cjs/interface/remove-table.js +72 -16
  295. package/dist/cjs/interface/slicers.d.ts +12 -1
  296. package/dist/cjs/interface/slicers.d.ts.map +1 -1
  297. package/dist/cjs/interface/slicers.js +47 -2
  298. package/dist/cjs/interface/spreadsheet-interface.d.ts +1 -1
  299. package/dist/cjs/interface/spreadsheet-interface.d.ts.map +1 -1
  300. package/dist/cjs/interface/spreadsheet-interface.js +64 -1
  301. package/dist/cjs/interface/table-totalrow.d.ts +13 -1
  302. package/dist/cjs/interface/table-totalrow.d.ts.map +1 -1
  303. package/dist/cjs/interface/table-totalrow.js +107 -73
  304. package/dist/cjs/interface/table-utils.d.ts +59 -6
  305. package/dist/cjs/interface/table-utils.d.ts.map +1 -1
  306. package/dist/cjs/interface/table-utils.js +211 -15
  307. package/dist/cjs/interface/update-table.d.ts +16 -1
  308. package/dist/cjs/interface/update-table.d.ts.map +1 -1
  309. package/dist/cjs/interface/update-table.js +190 -44
  310. package/dist/cjs/sheet-cell.d.ts.map +1 -1
  311. package/dist/cjs/test-setup.d.ts.map +1 -1
  312. package/dist/cjs/test-setup.js +6 -0
  313. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  314. package/dist/cjs/validation-schema/table.schema.d.ts +11 -0
  315. package/dist/cjs/validation-schema/table.schema.d.ts.map +1 -1
  316. package/dist/cjs/validation-schema/table.schema.js +20 -3
  317. package/dist/esm/api/anchored-objects.d.ts +122 -6
  318. package/dist/esm/api/anchored-objects.d.ts.map +1 -1
  319. package/dist/esm/api/anchored-objects.js +375 -15
  320. package/dist/esm/api/copy-paste.d.ts +8 -2
  321. package/dist/esm/api/copy-paste.d.ts.map +1 -1
  322. package/dist/esm/api/copy-paste.js +4 -4
  323. package/dist/esm/api/filter.d.ts +15 -1
  324. package/dist/esm/api/filter.d.ts.map +1 -1
  325. package/dist/esm/api/filter.js +28 -0
  326. package/dist/esm/api/formula.d.ts +63 -0
  327. package/dist/esm/api/formula.d.ts.map +1 -1
  328. package/dist/esm/api/formula.js +235 -8
  329. package/dist/esm/api/immer-utils.d.ts +11 -1
  330. package/dist/esm/api/immer-utils.d.ts.map +1 -1
  331. package/dist/esm/api/immer-utils.js +16 -0
  332. package/dist/esm/api/insert-cut-cells.d.ts +35 -0
  333. package/dist/esm/api/insert-cut-cells.d.ts.map +1 -0
  334. package/dist/esm/api/insert-cut-cells.js +67 -0
  335. package/dist/esm/api/merges.d.ts +8 -0
  336. package/dist/esm/api/merges.d.ts.map +1 -1
  337. package/dist/esm/api/merges.js +9 -0
  338. package/dist/esm/api/paint-format.d.ts +22 -1
  339. package/dist/esm/api/paint-format.d.ts.map +1 -1
  340. package/dist/esm/api/paint-format.js +44 -1
  341. package/dist/esm/api/sort.d.ts +23 -1
  342. package/dist/esm/api/sort.d.ts.map +1 -1
  343. package/dist/esm/api/sort.js +45 -6
  344. package/dist/esm/api/structural-guards.d.ts +57 -0
  345. package/dist/esm/api/structural-guards.d.ts.map +1 -1
  346. package/dist/esm/api/structural-guards.js +85 -0
  347. package/dist/esm/api/structural-table-refs.d.ts +58 -3
  348. package/dist/esm/api/structural-table-refs.d.ts.map +1 -1
  349. package/dist/esm/api/structural-table-refs.js +126 -6
  350. package/dist/esm/api/subtotal.d.ts +20 -13
  351. package/dist/esm/api/subtotal.d.ts.map +1 -1
  352. package/dist/esm/api/subtotal.js +15 -8
  353. package/dist/esm/api/table.d.ts +26 -2
  354. package/dist/esm/api/table.d.ts.map +1 -1
  355. package/dist/esm/api/table.js +70 -48
  356. package/dist/esm/api/validation.d.ts.map +1 -1
  357. package/dist/esm/api/validation.js +53 -8
  358. package/dist/esm/atoms/creating-table.atom.d.ts +22 -0
  359. package/dist/esm/atoms/creating-table.atom.d.ts.map +1 -0
  360. package/dist/esm/atoms/creating-table.atom.js +4 -0
  361. package/dist/esm/atoms/dialog-state.atom.d.ts +8 -0
  362. package/dist/esm/atoms/dialog-state.atom.d.ts.map +1 -1
  363. package/dist/esm/atoms/dialog-state.atom.js +12 -0
  364. package/dist/esm/atoms/editing-slicer.atom.d.ts +9 -0
  365. package/dist/esm/atoms/editing-slicer.atom.d.ts.map +1 -0
  366. package/dist/esm/atoms/editing-slicer.atom.js +6 -0
  367. package/dist/esm/atoms/index.d.ts +4 -0
  368. package/dist/esm/atoms/index.d.ts.map +1 -1
  369. package/dist/esm/atoms/index.js +4 -0
  370. package/dist/esm/atoms/inserting-slicer.atom.d.ts +8 -0
  371. package/dist/esm/atoms/inserting-slicer.atom.d.ts.map +1 -0
  372. package/dist/esm/atoms/inserting-slicer.atom.js +5 -0
  373. package/dist/esm/atoms/resizing-table.atom.d.ts +8 -0
  374. package/dist/esm/atoms/resizing-table.atom.d.ts.map +1 -0
  375. package/dist/esm/atoms/resizing-table.atom.js +5 -0
  376. package/dist/esm/commands.d.ts +138 -2
  377. package/dist/esm/commands.d.ts.map +1 -1
  378. package/dist/esm/components/editors/embed-editor.d.ts +4 -2
  379. package/dist/esm/components/editors/embed-editor.d.ts.map +1 -1
  380. package/dist/esm/components/editors/embed-editor.js +40 -6
  381. package/dist/esm/components/editors/slicer-editor.d.ts +15 -0
  382. package/dist/esm/components/editors/slicer-editor.d.ts.map +1 -0
  383. package/dist/esm/components/editors/slicer-editor.js +85 -0
  384. package/dist/esm/components/editors/table-editor.d.ts +58 -2
  385. package/dist/esm/components/editors/table-editor.d.ts.map +1 -1
  386. package/dist/esm/components/editors/table-editor.js +243 -19
  387. package/dist/esm/components/index.d.ts +1 -0
  388. package/dist/esm/components/index.d.ts.map +1 -1
  389. package/dist/esm/components/index.js +1 -0
  390. package/dist/esm/constants.d.ts +9 -1
  391. package/dist/esm/constants.d.ts.map +1 -1
  392. package/dist/esm/constants.js +12 -0
  393. package/dist/esm/generated-names.d.ts +13 -3
  394. package/dist/esm/generated-names.d.ts.map +1 -1
  395. package/dist/esm/generated-names.js +3 -1
  396. package/dist/esm/helpers.d.ts +5 -0
  397. package/dist/esm/helpers.d.ts.map +1 -1
  398. package/dist/esm/helpers.js +7 -1
  399. package/dist/esm/hooks/use-on-change-batch.d.ts +19 -2
  400. package/dist/esm/hooks/use-on-change-batch.d.ts.map +1 -1
  401. package/dist/esm/hooks/use-on-change-batch.js +19 -3
  402. package/dist/esm/hooks/use-on-change-calculated-column.d.ts +10 -1
  403. package/dist/esm/hooks/use-on-change-calculated-column.d.ts.map +1 -1
  404. package/dist/esm/hooks/use-on-change-calculated-column.js +17 -5
  405. package/dist/esm/hooks/use-on-change-table-column.d.ts +6 -1
  406. package/dist/esm/hooks/use-on-change-table-column.d.ts.map +1 -1
  407. package/dist/esm/hooks/use-on-change-table-column.js +17 -5
  408. package/dist/esm/hooks/use-on-change.d.ts +36 -3
  409. package/dist/esm/hooks/use-on-change.d.ts.map +1 -1
  410. package/dist/esm/hooks/use-on-change.js +214 -124
  411. package/dist/esm/hooks/use-on-copy.d.ts +1 -1
  412. package/dist/esm/hooks/use-on-copy.d.ts.map +1 -1
  413. package/dist/esm/hooks/use-on-copy.js +2 -3
  414. package/dist/esm/hooks/use-on-create-custom-table-style.d.ts +17 -0
  415. package/dist/esm/hooks/use-on-create-custom-table-style.d.ts.map +1 -0
  416. package/dist/esm/hooks/use-on-create-custom-table-style.js +26 -0
  417. package/dist/esm/hooks/use-on-create-named-range.d.ts +4 -2
  418. package/dist/esm/hooks/use-on-create-named-range.d.ts.map +1 -1
  419. package/dist/esm/hooks/use-on-create-named-range.js +11 -1
  420. package/dist/esm/hooks/use-on-delete-cells-shift-left.d.ts +2 -1
  421. package/dist/esm/hooks/use-on-delete-cells-shift-left.d.ts.map +1 -1
  422. package/dist/esm/hooks/use-on-delete-cells-shift-left.js +3 -1
  423. package/dist/esm/hooks/use-on-delete-cells-shift-up.d.ts +2 -1
  424. package/dist/esm/hooks/use-on-delete-cells-shift-up.d.ts.map +1 -1
  425. package/dist/esm/hooks/use-on-delete-cells-shift-up.js +3 -1
  426. package/dist/esm/hooks/use-on-delete-column.d.ts +2 -1
  427. package/dist/esm/hooks/use-on-delete-column.d.ts.map +1 -1
  428. package/dist/esm/hooks/use-on-delete-column.js +3 -1
  429. package/dist/esm/hooks/use-on-delete-row.d.ts +2 -1
  430. package/dist/esm/hooks/use-on-delete-row.d.ts.map +1 -1
  431. package/dist/esm/hooks/use-on-delete-row.js +3 -1
  432. package/dist/esm/hooks/use-on-delete-sheet.d.ts +9 -1
  433. package/dist/esm/hooks/use-on-delete-sheet.d.ts.map +1 -1
  434. package/dist/esm/hooks/use-on-delete-sheet.js +17 -1
  435. package/dist/esm/hooks/use-on-delete-table-row.d.ts +4 -1
  436. package/dist/esm/hooks/use-on-delete-table-row.d.ts.map +1 -1
  437. package/dist/esm/hooks/use-on-delete-table-row.js +19 -1
  438. package/dist/esm/hooks/use-on-delete.d.ts +5 -2
  439. package/dist/esm/hooks/use-on-delete.d.ts.map +1 -1
  440. package/dist/esm/hooks/use-on-delete.js +5 -1
  441. package/dist/esm/hooks/use-on-embeds.d.ts +7 -4
  442. package/dist/esm/hooks/use-on-embeds.d.ts.map +1 -1
  443. package/dist/esm/hooks/use-on-embeds.js +23 -6
  444. package/dist/esm/hooks/use-on-fill.d.ts +17 -2
  445. package/dist/esm/hooks/use-on-fill.d.ts.map +1 -1
  446. package/dist/esm/hooks/use-on-fill.js +27 -1
  447. package/dist/esm/hooks/use-on-filter-table.d.ts.map +1 -1
  448. package/dist/esm/hooks/use-on-filter-table.js +97 -26
  449. package/dist/esm/hooks/use-on-import-excel.d.ts +2 -1
  450. package/dist/esm/hooks/use-on-import-excel.d.ts.map +1 -1
  451. package/dist/esm/hooks/use-on-import-excel.js +4 -1
  452. package/dist/esm/hooks/use-on-insert-cells-shift-down.d.ts +2 -1
  453. package/dist/esm/hooks/use-on-insert-cells-shift-down.d.ts.map +1 -1
  454. package/dist/esm/hooks/use-on-insert-cells-shift-down.js +3 -1
  455. package/dist/esm/hooks/use-on-insert-cells-shift-right.d.ts +2 -1
  456. package/dist/esm/hooks/use-on-insert-cells-shift-right.d.ts.map +1 -1
  457. package/dist/esm/hooks/use-on-insert-cells-shift-right.js +3 -1
  458. package/dist/esm/hooks/use-on-insert-column.d.ts +2 -1
  459. package/dist/esm/hooks/use-on-insert-column.d.ts.map +1 -1
  460. package/dist/esm/hooks/use-on-insert-column.js +3 -1
  461. package/dist/esm/hooks/use-on-insert-row.d.ts +2 -1
  462. package/dist/esm/hooks/use-on-insert-row.d.ts.map +1 -1
  463. package/dist/esm/hooks/use-on-insert-row.js +3 -1
  464. package/dist/esm/hooks/use-on-insert-table-row.d.ts +5 -2
  465. package/dist/esm/hooks/use-on-insert-table-row.d.ts.map +1 -1
  466. package/dist/esm/hooks/use-on-insert-table-row.js +19 -1
  467. package/dist/esm/hooks/use-on-merge-unmerge-cells.d.ts +3 -2
  468. package/dist/esm/hooks/use-on-merge-unmerge-cells.d.ts.map +1 -1
  469. package/dist/esm/hooks/use-on-merge-unmerge-cells.js +12 -1
  470. package/dist/esm/hooks/use-on-move-columns.d.ts +4 -1
  471. package/dist/esm/hooks/use-on-move-columns.d.ts.map +1 -1
  472. package/dist/esm/hooks/use-on-move-columns.js +28 -6
  473. package/dist/esm/hooks/use-on-move-rows.d.ts +18 -1
  474. package/dist/esm/hooks/use-on-move-rows.d.ts.map +1 -1
  475. package/dist/esm/hooks/use-on-move-rows.js +44 -6
  476. package/dist/esm/hooks/use-on-move-selection.d.ts +9 -2
  477. package/dist/esm/hooks/use-on-move-selection.d.ts.map +1 -1
  478. package/dist/esm/hooks/use-on-move-selection.js +57 -1
  479. package/dist/esm/hooks/use-on-paste.d.ts +33 -2
  480. package/dist/esm/hooks/use-on-paste.d.ts.map +1 -1
  481. package/dist/esm/hooks/use-on-paste.js +825 -643
  482. package/dist/esm/hooks/use-on-remove-duplicates.d.ts +5 -2
  483. package/dist/esm/hooks/use-on-remove-duplicates.d.ts.map +1 -1
  484. package/dist/esm/hooks/use-on-remove-duplicates.js +5 -1
  485. package/dist/esm/hooks/use-on-request-create-table.d.ts +13 -0
  486. package/dist/esm/hooks/use-on-request-create-table.d.ts.map +1 -0
  487. package/dist/esm/hooks/use-on-request-create-table.js +43 -0
  488. package/dist/esm/hooks/use-on-request-insert-slicer.d.ts +7 -0
  489. package/dist/esm/hooks/use-on-request-insert-slicer.d.ts.map +1 -0
  490. package/dist/esm/hooks/use-on-request-insert-slicer.js +15 -0
  491. package/dist/esm/hooks/use-on-request-resize-table.d.ts +7 -0
  492. package/dist/esm/hooks/use-on-request-resize-table.d.ts.map +1 -0
  493. package/dist/esm/hooks/use-on-request-resize-table.js +15 -0
  494. package/dist/esm/hooks/use-on-resize-table.d.ts +5 -1
  495. package/dist/esm/hooks/use-on-resize-table.d.ts.map +1 -1
  496. package/dist/esm/hooks/use-on-resize-table.js +107 -27
  497. package/dist/esm/hooks/use-on-sort-column.d.ts +28 -3
  498. package/dist/esm/hooks/use-on-sort-column.d.ts.map +1 -1
  499. package/dist/esm/hooks/use-on-sort-column.js +105 -68
  500. package/dist/esm/hooks/use-on-sort-range.d.ts +26 -3
  501. package/dist/esm/hooks/use-on-sort-range.d.ts.map +1 -1
  502. package/dist/esm/hooks/use-on-sort-range.js +100 -64
  503. package/dist/esm/hooks/use-on-sort-table.d.ts +18 -1
  504. package/dist/esm/hooks/use-on-sort-table.d.ts.map +1 -1
  505. package/dist/esm/hooks/use-on-sort-table.js +107 -86
  506. package/dist/esm/hooks/use-on-subtotal.d.ts +10 -3
  507. package/dist/esm/hooks/use-on-subtotal.d.ts.map +1 -1
  508. package/dist/esm/hooks/use-on-subtotal.js +7 -5
  509. package/dist/esm/hooks/use-on-table.d.ts +39 -7
  510. package/dist/esm/hooks/use-on-table.d.ts.map +1 -1
  511. package/dist/esm/hooks/use-on-table.js +234 -26
  512. package/dist/esm/hooks/use-on-undo-calculated-column.d.ts +23 -0
  513. package/dist/esm/hooks/use-on-undo-calculated-column.d.ts.map +1 -0
  514. package/dist/esm/hooks/use-on-undo-calculated-column.js +62 -0
  515. package/dist/esm/hooks/use-on-undo-table-auto-expansion.d.ts +28 -0
  516. package/dist/esm/hooks/use-on-undo-table-auto-expansion.d.ts.map +1 -0
  517. package/dist/esm/hooks/use-on-undo-table-auto-expansion.js +75 -0
  518. package/dist/esm/hooks/use-on-update-named-range.d.ts +4 -2
  519. package/dist/esm/hooks/use-on-update-named-range.d.ts.map +1 -1
  520. package/dist/esm/hooks/use-on-update-named-range.js +13 -1
  521. package/dist/esm/hooks/use-sheet-properties.d.ts +1 -0
  522. package/dist/esm/hooks/use-sheet-properties.d.ts.map +1 -1
  523. package/dist/esm/hooks/use-sheet-properties.js +38 -19
  524. package/dist/esm/hooks/use-slicers.d.ts +2 -2
  525. package/dist/esm/hooks/use-slicers.d.ts.map +1 -1
  526. package/dist/esm/hooks/use-slicers.js +16 -8
  527. package/dist/esm/hooks/use-sparkline-groups.d.ts +50 -0
  528. package/dist/esm/hooks/use-sparkline-groups.d.ts.map +1 -0
  529. package/dist/esm/hooks/use-sparkline-groups.js +146 -0
  530. package/dist/esm/hooks/use-spreadsheet-state.d.ts +69 -12
  531. package/dist/esm/hooks/use-spreadsheet-state.d.ts.map +1 -1
  532. package/dist/esm/hooks/use-spreadsheet-state.js +321 -14
  533. package/dist/esm/hooks/use-structured-reference.d.ts.map +1 -1
  534. package/dist/esm/hooks/use-structured-reference.js +17 -0
  535. package/dist/esm/hooks/use-undo-redo-actions.d.ts +2 -1
  536. package/dist/esm/hooks/use-undo-redo-actions.d.ts.map +1 -1
  537. package/dist/esm/hooks/use-undo-redo-actions.js +8 -2
  538. package/dist/esm/hooks/use-undo-redo.d.ts +12 -0
  539. package/dist/esm/hooks/use-undo-redo.d.ts.map +1 -1
  540. package/dist/esm/hooks/use-undo-redo.js +158 -7
  541. package/dist/esm/hooks/utils/sort-rows.d.ts.map +1 -1
  542. package/dist/esm/hooks/utils/sort-rows.js +4 -3
  543. package/dist/esm/index.d.ts +8 -0
  544. package/dist/esm/index.d.ts.map +1 -1
  545. package/dist/esm/index.js +9 -0
  546. package/dist/esm/interface/apply-fill.d.ts +26 -3
  547. package/dist/esm/interface/apply-fill.d.ts.map +1 -1
  548. package/dist/esm/interface/apply-fill.js +188 -88
  549. package/dist/esm/interface/change-batch.d.ts +1 -1
  550. package/dist/esm/interface/change-batch.d.ts.map +1 -1
  551. package/dist/esm/interface/change-batch.js +89 -8
  552. package/dist/esm/interface/change-calculated-column.d.ts +6 -2
  553. package/dist/esm/interface/change-calculated-column.d.ts.map +1 -1
  554. package/dist/esm/interface/change-calculated-column.js +81 -16
  555. package/dist/esm/interface/change-table-column.d.ts +81 -7
  556. package/dist/esm/interface/change-table-column.d.ts.map +1 -1
  557. package/dist/esm/interface/change-table-column.js +295 -67
  558. package/dist/esm/interface/create-table.d.ts +15 -3
  559. package/dist/esm/interface/create-table.d.ts.map +1 -1
  560. package/dist/esm/interface/create-table.js +103 -27
  561. package/dist/esm/interface/delete-cells-shift-left.d.ts +1 -1
  562. package/dist/esm/interface/delete-cells-shift-left.d.ts.map +1 -1
  563. package/dist/esm/interface/delete-cells-shift-left.js +10 -1
  564. package/dist/esm/interface/delete-cells-shift-up.d.ts +1 -1
  565. package/dist/esm/interface/delete-cells-shift-up.d.ts.map +1 -1
  566. package/dist/esm/interface/delete-cells-shift-up.js +10 -1
  567. package/dist/esm/interface/delete-cells.d.ts +1 -1
  568. package/dist/esm/interface/delete-cells.d.ts.map +1 -1
  569. package/dist/esm/interface/delete-cells.js +47 -14
  570. package/dist/esm/interface/delete-column.d.ts +1 -1
  571. package/dist/esm/interface/delete-column.d.ts.map +1 -1
  572. package/dist/esm/interface/delete-column.js +26 -30
  573. package/dist/esm/interface/delete-row.d.ts +1 -1
  574. package/dist/esm/interface/delete-row.d.ts.map +1 -1
  575. package/dist/esm/interface/delete-row.js +191 -44
  576. package/dist/esm/interface/delete-sheet.d.ts +2 -2
  577. package/dist/esm/interface/delete-sheet.d.ts.map +1 -1
  578. package/dist/esm/interface/delete-sheet.js +113 -1
  579. package/dist/esm/interface/delete-table-column.d.ts +1 -1
  580. package/dist/esm/interface/delete-table-column.d.ts.map +1 -1
  581. package/dist/esm/interface/delete-table-column.js +11 -1
  582. package/dist/esm/interface/delete-table-row.d.ts +1 -1
  583. package/dist/esm/interface/delete-table-row.d.ts.map +1 -1
  584. package/dist/esm/interface/delete-table-row.js +312 -232
  585. package/dist/esm/interface/duplicate-sheet.d.ts.map +1 -1
  586. package/dist/esm/interface/duplicate-sheet.js +73 -26
  587. package/dist/esm/interface/embeds.d.ts +10 -1
  588. package/dist/esm/interface/embeds.d.ts.map +1 -1
  589. package/dist/esm/interface/embeds.js +84 -5
  590. package/dist/esm/interface/insert-cells-shift-down.d.ts +1 -1
  591. package/dist/esm/interface/insert-cells-shift-down.d.ts.map +1 -1
  592. package/dist/esm/interface/insert-cells-shift-down.js +10 -1
  593. package/dist/esm/interface/insert-cells-shift-right.d.ts +1 -1
  594. package/dist/esm/interface/insert-cells-shift-right.d.ts.map +1 -1
  595. package/dist/esm/interface/insert-cells-shift-right.js +10 -1
  596. package/dist/esm/interface/insert-column.d.ts +2 -2
  597. package/dist/esm/interface/insert-column.d.ts.map +1 -1
  598. package/dist/esm/interface/insert-column.js +70 -33
  599. package/dist/esm/interface/insert-row.d.ts +1 -1
  600. package/dist/esm/interface/insert-row.d.ts.map +1 -1
  601. package/dist/esm/interface/insert-row.js +22 -6
  602. package/dist/esm/interface/insert-table-row.d.ts +2 -1
  603. package/dist/esm/interface/insert-table-row.d.ts.map +1 -1
  604. package/dist/esm/interface/insert-table-row.js +67 -12
  605. package/dist/esm/interface/remove-duplicates.d.ts +1 -1
  606. package/dist/esm/interface/remove-duplicates.d.ts.map +1 -1
  607. package/dist/esm/interface/remove-duplicates.js +41 -6
  608. package/dist/esm/interface/remove-table.d.ts +1 -1
  609. package/dist/esm/interface/remove-table.d.ts.map +1 -1
  610. package/dist/esm/interface/remove-table.js +58 -10
  611. package/dist/esm/interface/slicers.d.ts +12 -1
  612. package/dist/esm/interface/slicers.d.ts.map +1 -1
  613. package/dist/esm/interface/slicers.js +44 -2
  614. package/dist/esm/interface/spreadsheet-interface.d.ts +1 -1
  615. package/dist/esm/interface/spreadsheet-interface.d.ts.map +1 -1
  616. package/dist/esm/interface/spreadsheet-interface.js +73 -1
  617. package/dist/esm/interface/table-totalrow.d.ts +13 -1
  618. package/dist/esm/interface/table-totalrow.d.ts.map +1 -1
  619. package/dist/esm/interface/table-totalrow.js +98 -68
  620. package/dist/esm/interface/table-utils.d.ts +59 -6
  621. package/dist/esm/interface/table-utils.d.ts.map +1 -1
  622. package/dist/esm/interface/table-utils.js +155 -14
  623. package/dist/esm/interface/update-table.d.ts +16 -1
  624. package/dist/esm/interface/update-table.d.ts.map +1 -1
  625. package/dist/esm/interface/update-table.js +203 -42
  626. package/dist/esm/sheet-cell.d.ts.map +1 -1
  627. package/dist/esm/test-setup.d.ts.map +1 -1
  628. package/dist/esm/test-setup.js +6 -0
  629. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  630. package/dist/esm/validation-schema/table.schema.d.ts +11 -0
  631. package/dist/esm/validation-schema/table.schema.d.ts.map +1 -1
  632. package/dist/esm/validation-schema/table.schema.js +15 -2
  633. package/package.json +25 -17
@@ -1,14 +1,18 @@
1
- import { __assign, __read } from "tslib";
1
+ import { __assign, __read, __spreadArray, __values } from "tslib";
2
2
  import { Cross2Icon } from "@rowsncolumns/icons";
3
3
  import { findMatchingBandProperty, FormulaInput, useFocusSheet, useFormulaInputState, useSetFormulaMode, useSetFormulaSelections, } from "@rowsncolumns/spreadsheet";
4
4
  import { Button, Dialog, DialogBody, DialogCloseButton, DialogContent, DialogDescription, DialogTitle, Input, Stack, } from "@rowsncolumns/ui";
5
5
  import { useFormik } from "formik";
6
- import React, { useCallback } from "react";
7
- import { useEditTableDialogState } from "../../atoms/dialog-state.atom";
6
+ import React, { useCallback, useMemo, useState } from "react";
7
+ import { useCreatingTable, } from "../../atoms/creating-table.atom";
8
+ import { useCreateTableDialogState, useEditTableDialogState, useInsertSlicerDialogState, useResizeTableDialogState, } from "../../atoms/dialog-state.atom";
8
9
  import { useEditingTable } from "../../atoms/editing-table.atom";
9
- import { tableSchema } from "../../validation-schema/table.schema";
10
+ import { useInsertingSlicer } from "../../atoms/inserting-slicer.atom";
11
+ import { useResizingTable } from "../../atoms/resizing-table.atom";
12
+ import { buildTableSlicers, getTableSlicerColumnNames, } from "../../interface/slicers";
13
+ import { createTableSchema } from "../../validation-schema/table.schema";
10
14
  export var TableEditor = function (_a) {
11
- var sheetId = _a.sheetId, theme = _a.theme, onSubmit = _a.onSubmit, onRemoveTable = _a.onRemoveTable;
15
+ var sheetId = _a.sheetId, theme = _a.theme, tables = _a.tables, namedRanges = _a.namedRanges, onSubmit = _a.onSubmit, onRemoveTable = _a.onRemoveTable, onCreateTable = _a.onCreateTable, onResizeTable = _a.onResizeTable, onCreateSlicer = _a.onCreateSlicer;
12
16
  var _b = __read(useEditTableDialogState(), 2), isOpen = _b[0], onOpenChange = _b[1];
13
17
  var setFormulaMode = useSetFormulaMode();
14
18
  var setFormulaSelections = useSetFormulaSelections();
@@ -24,25 +28,247 @@ export var TableEditor = function (_a) {
24
28
  onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(sheetId, tableId, table);
25
29
  closeDialog();
26
30
  }, [onSubmit, closeDialog]);
31
+ return (React.createElement(React.Fragment, null,
32
+ onCreateTable ? (React.createElement(CreateTableEditor, { onCreateTable: onCreateTable })) : null,
33
+ onResizeTable ? (React.createElement(ResizeTableEditor, { onResizeTable: onResizeTable })) : null,
34
+ onCreateSlicer ? (React.createElement(InsertSlicerEditor, { onCreateSlicer: onCreateSlicer })) : null,
35
+ React.createElement(Dialog, { modal: false, open: isOpen },
36
+ React.createElement(DialogContent, { onEscapeKeyDown: closeDialog, onCloseAutoFocus: function (e) {
37
+ e.preventDefault();
38
+ focusSheet === null || focusSheet === void 0 ? void 0 : focusSheet();
39
+ } },
40
+ React.createElement(DialogTitle, { className: "rnc-drag-handle cursor-move" }, "Edit table"),
41
+ React.createElement(DialogDescription, null, "Update data range and table properties"),
42
+ React.createElement(DialogBody, null, table ? (React.createElement(TableEditorForm, { onSubmit: handleSubmit, table: table, tables: tables, namedRanges: namedRanges, sheetId: sheetId, theme: theme, onCancel: closeDialog, onRemoveTable: onRemoveTable })) : null),
43
+ React.createElement(DialogCloseButton, { onClick: function () {
44
+ closeDialog();
45
+ } },
46
+ React.createElement(Cross2Icon, null))))));
47
+ };
48
+ /**
49
+ * Excel's "Create Table" dialog: the data range (pre-filled with the selection or the data region
50
+ * around the active cell) and "My table has headers". Unchecked, a `Column1..N` header row is
51
+ * inserted above the data (`CreateTableOptions.hasHeaders: false`).
52
+ */
53
+ export var CreateTableEditor = function (_a) {
54
+ var onCreateTable = _a.onCreateTable;
55
+ var _b = __read(useCreateTableDialogState(), 2), isOpen = _b[0], onOpenChange = _b[1];
56
+ var request = useCreatingTable();
57
+ var setFormulaMode = useSetFormulaMode();
58
+ var setFormulaSelections = useSetFormulaSelections();
59
+ var focusSheet = useFocusSheet();
60
+ var closeDialog = useCallback(function () {
61
+ setFormulaMode(false);
62
+ setFormulaSelections([]);
63
+ onOpenChange(false);
64
+ }, [setFormulaMode, setFormulaSelections, onOpenChange]);
65
+ var handleSubmit = useCallback(function (range, hasHeaders) {
66
+ if (!request) {
67
+ return;
68
+ }
69
+ onCreateTable(request.sheetId, request.activeCell, [{ range: range }], { range: range }, request.theme, request.bandedRange, { hasHeaders: hasHeaders });
70
+ closeDialog();
71
+ }, [request, onCreateTable, closeDialog]);
27
72
  return (React.createElement(Dialog, { modal: false, open: isOpen },
28
73
  React.createElement(DialogContent, { onEscapeKeyDown: closeDialog, onCloseAutoFocus: function (e) {
29
74
  e.preventDefault();
30
75
  focusSheet === null || focusSheet === void 0 ? void 0 : focusSheet();
31
76
  } },
32
- React.createElement(DialogTitle, { className: "rnc-drag-handle cursor-move" }, "Edit table"),
33
- React.createElement(DialogDescription, null, "Update data range and table properties"),
34
- React.createElement(DialogBody, null, table ? (React.createElement(TableEditorForm, { onSubmit: handleSubmit, table: table, sheetId: sheetId, theme: theme, onCancel: closeDialog, onRemoveTable: onRemoveTable })) : null),
35
- React.createElement(DialogCloseButton, { onClick: function () {
36
- closeDialog();
37
- } },
77
+ React.createElement(DialogTitle, { className: "rnc-drag-handle cursor-move" }, "Create Table"),
78
+ React.createElement(DialogDescription, null, "Where is the data for your table?"),
79
+ React.createElement(DialogBody, null, request && isOpen ? (React.createElement(CreateTableForm
80
+ // A fresh form per request: its fields are seeded from the request once.
81
+ , {
82
+ // A fresh form per request: its fields are seeded from the request once.
83
+ key: "".concat(request.sheetId, ":").concat(request.range.startRowIndex, ":").concat(request.range.startColumnIndex, ":").concat(request.range.endRowIndex, ":").concat(request.range.endColumnIndex), request: request, onSubmit: handleSubmit, onCancel: closeDialog })) : null),
84
+ React.createElement(DialogCloseButton, { onClick: closeDialog },
85
+ React.createElement(Cross2Icon, null)))));
86
+ };
87
+ var CreateTableForm = function (_a) {
88
+ var request = _a.request, onSubmit = _a.onSubmit, onCancel = _a.onCancel;
89
+ var _b = __read(useState(request.range), 2), range = _b[0], setRange = _b[1];
90
+ var _c = __read(useState(request.hasHeaders), 2), hasHeaders = _c[0], setHasHeaders = _c[1];
91
+ var formulaInput = useFormulaInputState(request.sheetId, __assign(__assign({}, request.range), { sheetId: request.sheetId }));
92
+ return (React.createElement("form", { onSubmit: function (e) {
93
+ e.preventDefault();
94
+ if (range) {
95
+ onSubmit(range, hasHeaders);
96
+ }
97
+ }, className: "m-0 p-0" },
98
+ React.createElement(Stack, { direction: "vertical", className: "pb-2 gap-2" },
99
+ React.createElement(FormulaInput, { onChange: function (value) {
100
+ // An unparsable range disables OK until the text reads as a range again.
101
+ setRange(undefined);
102
+ formulaInput.onChange(value, function (parsed) {
103
+ setRange(parsed);
104
+ });
105
+ }, value: formulaInput.value, required: true }),
106
+ React.createElement("label", { className: "font-system text-sm flex items-center gap-1" },
107
+ React.createElement("input", { type: "checkbox", id: "rnc-table-has-headers-element", checked: hasHeaders, name: "hasHeaders", onChange: function (e) { return setHasHeaders(e.target.checked); } }),
108
+ "My table has headers")),
109
+ React.createElement("div", { className: "flex gap-1 pt-2" },
110
+ React.createElement(Button, { type: "submit", variant: "primary", size: "xs", disabled: !range }, "OK"),
111
+ React.createElement(Button, { size: "xs", onClick: onCancel, type: "button" }, "Cancel"))));
112
+ };
113
+ /**
114
+ * Excel's rule for a resized table: the header row stays where it is and the new range must
115
+ * overlap the original one. Overlaps with other tables or merged cells are refused by the engines
116
+ * themselves (`onResizeTable`).
117
+ */
118
+ export var RESIZE_TABLE_RANGE_ERROR = "The header row must remain in the same row, and the resulting table range must overlap the original table range.";
119
+ export var getResizeTableRangeError = function (table, range) {
120
+ var overlapsColumns = range.startColumnIndex <= table.range.endColumnIndex &&
121
+ range.endColumnIndex >= table.range.startColumnIndex;
122
+ return range.startRowIndex === table.range.startRowIndex && overlapsColumns
123
+ ? undefined
124
+ : RESIZE_TABLE_RANGE_ERROR;
125
+ };
126
+ /**
127
+ * Excel's "Resize Table" dialog: the table's range, editable, submitted through
128
+ * `onResizeTable` once it keeps the header row and overlaps the original range.
129
+ */
130
+ export var ResizeTableEditor = function (_a) {
131
+ var onResizeTable = _a.onResizeTable;
132
+ var _b = __read(useResizeTableDialogState(), 2), isOpen = _b[0], onOpenChange = _b[1];
133
+ var table = useResizingTable();
134
+ var setFormulaMode = useSetFormulaMode();
135
+ var setFormulaSelections = useSetFormulaSelections();
136
+ var focusSheet = useFocusSheet();
137
+ var closeDialog = useCallback(function () {
138
+ setFormulaMode(false);
139
+ setFormulaSelections([]);
140
+ onOpenChange(false);
141
+ }, [setFormulaMode, setFormulaSelections, onOpenChange]);
142
+ var handleSubmit = useCallback(function (range) {
143
+ if (!table) {
144
+ return;
145
+ }
146
+ onResizeTable(table.sheetId, table, range);
147
+ closeDialog();
148
+ }, [table, onResizeTable, closeDialog]);
149
+ return (React.createElement(Dialog, { modal: false, open: isOpen },
150
+ React.createElement(DialogContent, { onEscapeKeyDown: closeDialog, onCloseAutoFocus: function (e) {
151
+ e.preventDefault();
152
+ focusSheet === null || focusSheet === void 0 ? void 0 : focusSheet();
153
+ } },
154
+ React.createElement(DialogTitle, { className: "rnc-drag-handle cursor-move" }, "Resize Table"),
155
+ React.createElement(DialogDescription, null, "Select the new data range for your table:"),
156
+ React.createElement(DialogBody, null, table && isOpen ? (React.createElement(ResizeTableForm
157
+ // A fresh form per table: its field is seeded from the table once.
158
+ , {
159
+ // A fresh form per table: its field is seeded from the table once.
160
+ key: "".concat(table.sheetId, ":").concat(table.id, ":").concat(table.range.startRowIndex, ":").concat(table.range.startColumnIndex, ":").concat(table.range.endRowIndex, ":").concat(table.range.endColumnIndex), table: table, onSubmit: handleSubmit, onCancel: closeDialog })) : null),
161
+ React.createElement(DialogCloseButton, { onClick: closeDialog },
162
+ React.createElement(Cross2Icon, null)))));
163
+ };
164
+ var ResizeTableForm = function (_a) {
165
+ var table = _a.table, onSubmit = _a.onSubmit, onCancel = _a.onCancel;
166
+ var _b = __read(useState(table.range), 2), range = _b[0], setRange = _b[1];
167
+ var _c = __read(useState(), 2), error = _c[0], setError = _c[1];
168
+ var formulaInput = useFormulaInputState(table.sheetId, __assign(__assign({}, table.range), { sheetId: table.sheetId }));
169
+ return (React.createElement("form", { onSubmit: function (e) {
170
+ e.preventDefault();
171
+ if (!range) {
172
+ return;
173
+ }
174
+ var rangeError = getResizeTableRangeError(table, range);
175
+ setError(rangeError);
176
+ if (!rangeError) {
177
+ onSubmit(range);
178
+ }
179
+ }, className: "m-0 p-0" },
180
+ React.createElement(Stack, { direction: "vertical", className: "pb-2 gap-2" },
181
+ React.createElement(FormulaInput, { onChange: function (value) {
182
+ // An unparsable range disables OK until the text reads as a range again.
183
+ setRange(undefined);
184
+ setError(undefined);
185
+ formulaInput.onChange(value, function (parsed) {
186
+ setRange(parsed);
187
+ });
188
+ }, value: formulaInput.value, required: true }),
189
+ React.createElement("p", { className: "font-system text-xs text-rnc-muted-foreground m-0" }, "Note: The headers must remain in the same row, and the resulting table range must overlap the original table range."),
190
+ error ? (React.createElement("p", { role: "alert", className: "font-system text-xs text-rnc-destructive m-0" }, error)) : null),
191
+ React.createElement("div", { className: "flex gap-1 pt-2" },
192
+ React.createElement(Button, { type: "submit", variant: "primary", size: "xs", disabled: !range }, "OK"),
193
+ React.createElement(Button, { size: "xs", onClick: onCancel, type: "button" }, "Cancel"))));
194
+ };
195
+ /**
196
+ * Excel's "Insert Slicers" dialog: the table's columns as checkboxes; OK creates one table-bound
197
+ * slicer per checked column (`buildTableSlicers`), placed right of the table.
198
+ */
199
+ export var InsertSlicerEditor = function (_a) {
200
+ var onCreateSlicer = _a.onCreateSlicer;
201
+ var _b = __read(useInsertSlicerDialogState(), 2), isOpen = _b[0], onOpenChange = _b[1];
202
+ var table = useInsertingSlicer();
203
+ var focusSheet = useFocusSheet();
204
+ var closeDialog = useCallback(function () { return onOpenChange(false); }, [onOpenChange]);
205
+ var handleSubmit = useCallback(function (columnIndexes) {
206
+ var e_1, _a;
207
+ if (!table) {
208
+ return;
209
+ }
210
+ try {
211
+ for (var _b = __values(buildTableSlicers(table, columnIndexes)), _c = _b.next(); !_c.done; _c = _b.next()) {
212
+ var slicer = _c.value;
213
+ onCreateSlicer(slicer);
214
+ }
215
+ }
216
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
217
+ finally {
218
+ try {
219
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
220
+ }
221
+ finally { if (e_1) throw e_1.error; }
222
+ }
223
+ closeDialog();
224
+ }, [table, onCreateSlicer, closeDialog]);
225
+ return (React.createElement(Dialog, { modal: false, open: isOpen },
226
+ React.createElement(DialogContent, { onEscapeKeyDown: closeDialog, onCloseAutoFocus: function (e) {
227
+ e.preventDefault();
228
+ focusSheet === null || focusSheet === void 0 ? void 0 : focusSheet();
229
+ } },
230
+ React.createElement(DialogTitle, { className: "rnc-drag-handle cursor-move" }, "Insert Slicers"),
231
+ React.createElement(DialogDescription, null, "Choose the columns to filter the table by:"),
232
+ React.createElement(DialogBody, null, table && isOpen ? (React.createElement(InsertSlicerForm
233
+ // A fresh form per table: its checkboxes are seeded from the table once.
234
+ , {
235
+ // A fresh form per table: its checkboxes are seeded from the table once.
236
+ key: "".concat(table.sheetId, ":").concat(table.id), table: table, onSubmit: handleSubmit, onCancel: closeDialog })) : null),
237
+ React.createElement(DialogCloseButton, { onClick: closeDialog },
38
238
  React.createElement(Cross2Icon, null)))));
39
239
  };
240
+ var InsertSlicerForm = function (_a) {
241
+ var table = _a.table, onSubmit = _a.onSubmit, onCancel = _a.onCancel;
242
+ var names = useMemo(function () { return getTableSlicerColumnNames(table); }, [table]);
243
+ var _b = __read(useState([]), 2), checked = _b[0], setChecked = _b[1];
244
+ return (React.createElement("form", { onSubmit: function (e) {
245
+ e.preventDefault();
246
+ if (checked.length) {
247
+ onSubmit(__spreadArray([], __read(checked), false).sort(function (a, b) { return a - b; }));
248
+ }
249
+ }, className: "m-0 p-0" },
250
+ React.createElement(Stack, { direction: "vertical", className: "pb-2 gap-1" }, names.map(function (name, index) { return (React.createElement("label", { key: index, className: "font-system text-sm flex items-center gap-1" },
251
+ React.createElement("input", { type: "checkbox", name: "slicerColumn", value: index, checked: checked.includes(index), onChange: function (e) {
252
+ return setChecked(function (prev) {
253
+ return e.target.checked
254
+ ? __spreadArray(__spreadArray([], __read(prev), false), [index], false) : prev.filter(function (i) { return i !== index; });
255
+ });
256
+ } }),
257
+ name)); })),
258
+ React.createElement("div", { className: "flex gap-1 pt-2" },
259
+ React.createElement(Button, { type: "submit", variant: "primary", size: "xs", disabled: !checked.length }, "OK"),
260
+ React.createElement(Button, { size: "xs", onClick: onCancel, type: "button" }, "Cancel"))));
261
+ };
40
262
  var TableEditorForm = function (_a) {
41
- var table = _a.table, sheetId = _a.sheetId, theme = _a.theme, onSubmit = _a.onSubmit, onCancel = _a.onCancel, onRemoveTable = _a.onRemoveTable;
263
+ var table = _a.table, tables = _a.tables, namedRanges = _a.namedRanges, sheetId = _a.sheetId, theme = _a.theme, onSubmit = _a.onSubmit, onCancel = _a.onCancel, onRemoveTable = _a.onRemoveTable;
264
+ var validationSchema = useMemo(function () {
265
+ var _a, _b;
266
+ return createTableSchema((_a = tables === null || tables === void 0 ? void 0 : tables.filter(function (t) { return t.id !== table.id; }).map(function (t) { return t.title; })) !== null && _a !== void 0 ? _a : [], (_b = namedRanges === null || namedRanges === void 0 ? void 0 : namedRanges.map(function (namedRange) { return namedRange.name; })) !== null && _b !== void 0 ? _b : []);
267
+ }, [tables, namedRanges, table.id]);
42
268
  var _b = useFormik({
43
269
  initialValues: table,
44
270
  enableReinitialize: true,
45
- validationSchema: tableSchema,
271
+ validationSchema: validationSchema,
46
272
  onSubmit: function (values) {
47
273
  var _a;
48
274
  var tableTheme = (_a = values.theme) !== null && _a !== void 0 ? _a : "TableStyleLight1";
@@ -61,7 +287,7 @@ var TableEditorForm = function (_a) {
61
287
  onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(sheetId, newTable.id, newTable);
62
288
  }
63
289
  },
64
- }), _c = _b.values, title = _c.title, _d = _c.showRowStripes, showRowStripes = _d === void 0 ? true : _d, _e = _c.showColumnStripes, showColumnStripes = _e === void 0 ? false : _e, _f = _c.filterButton, filterButton = _f === void 0 ? true : _f, range = _c.range, _g = _c.totalRow, totalRow = _g === void 0 ? false : _g, errors = _b.errors, handleChange = _b.handleChange, handleSubmit = _b.handleSubmit, setFieldValue = _b.setFieldValue, resetForm = _b.resetForm;
290
+ }), _c = _b.values, title = _c.title, _d = _c.showRowStripes, showRowStripes = _d === void 0 ? true : _d, _e = _c.showColumnStripes, showColumnStripes = _e === void 0 ? false : _e, _f = _c.showFirstColumn, showFirstColumn = _f === void 0 ? false : _f, _g = _c.showLastColumn, showLastColumn = _g === void 0 ? false : _g, _h = _c.filterButton, filterButton = _h === void 0 ? true : _h, range = _c.range, _j = _c.headerRow, headerRow = _j === void 0 ? true : _j, _k = _c.totalRow, totalRow = _k === void 0 ? false : _k, errors = _b.errors, handleChange = _b.handleChange, handleSubmit = _b.handleSubmit, setFieldValue = _b.setFieldValue, resetForm = _b.resetForm;
65
291
  // Formula input helper
66
292
  var formulaInput = useFormulaInputState(sheetId, __assign(__assign({}, range), { sheetId: sheetId }));
67
293
  return (React.createElement("form", { onSubmit: handleSubmit, className: "m-0 p-0" },
@@ -77,6 +303,16 @@ var TableEditorForm = function (_a) {
77
303
  });
78
304
  }, value: formulaInput.value, required: true })),
79
305
  React.createElement(Stack, { direction: "horizontal", className: "grid grid-cols-2 gap-2" },
306
+ React.createElement("label", { className: "font-system text-sm flex items-center gap-1" },
307
+ React.createElement("input", { type: "checkbox", id: "rnc-header-row-element", checked: headerRow !== null && headerRow !== void 0 ? headerRow : true, name: "headerRow", onChange: function (e) {
308
+ setFieldValue("headerRow", e.target.checked);
309
+ } }),
310
+ "Header row"),
311
+ React.createElement("label", { className: "font-system text-sm flex items-center gap-1" },
312
+ React.createElement("input", { type: "checkbox", id: "rnc-total-row-element", checked: totalRow !== null && totalRow !== void 0 ? totalRow : false, name: "totalRow", onChange: function (e) {
313
+ setFieldValue("totalRow", e.target.checked);
314
+ } }),
315
+ "Show total row"),
80
316
  React.createElement("label", { className: "font-system text-sm flex items-center gap-1" },
81
317
  React.createElement("input", { type: "checkbox", checked: showRowStripes !== null && showRowStripes !== void 0 ? showRowStripes : undefined, name: "showRowStripes", onChange: function (e) {
82
318
  setFieldValue("showRowStripes", e.target.checked);
@@ -88,15 +324,20 @@ var TableEditorForm = function (_a) {
88
324
  } }),
89
325
  "Banded columns"),
90
326
  React.createElement("label", { className: "font-system text-sm flex items-center gap-1" },
91
- React.createElement("input", { type: "checkbox", id: "rnc-filter-button-element", checked: filterButton !== null && filterButton !== void 0 ? filterButton : undefined, name: "filterButton", onChange: function (e) {
92
- setFieldValue("filterButton", e.target.checked);
327
+ React.createElement("input", { type: "checkbox", id: "rnc-first-column-element", checked: showFirstColumn !== null && showFirstColumn !== void 0 ? showFirstColumn : false, name: "showFirstColumn", onChange: function (e) {
328
+ setFieldValue("showFirstColumn", e.target.checked);
93
329
  } }),
94
- "Show filter button"),
330
+ "First column"),
95
331
  React.createElement("label", { className: "font-system text-sm flex items-center gap-1" },
96
- React.createElement("input", { type: "checkbox", id: "rnc-total-row-element", checked: totalRow !== null && totalRow !== void 0 ? totalRow : false, name: "totalRow", onChange: function (e) {
97
- setFieldValue("totalRow", e.target.checked);
332
+ React.createElement("input", { type: "checkbox", id: "rnc-last-column-element", checked: showLastColumn !== null && showLastColumn !== void 0 ? showLastColumn : false, name: "showLastColumn", onChange: function (e) {
333
+ setFieldValue("showLastColumn", e.target.checked);
334
+ } }),
335
+ "Last column"),
336
+ React.createElement("label", { className: "font-system text-sm flex items-center gap-1" },
337
+ React.createElement("input", { type: "checkbox", id: "rnc-filter-button-element", checked: filterButton !== null && filterButton !== void 0 ? filterButton : undefined, name: "filterButton", disabled: headerRow === false, onChange: function (e) {
338
+ setFieldValue("filterButton", e.target.checked);
98
339
  } }),
99
- "Show total row"))),
340
+ "Show filter button"))),
100
341
  React.createElement("div", { className: "flex gap-1 pt-2" },
101
342
  React.createElement(Button, { type: "submit", variant: "primary", size: "xs" }, "Save"),
102
343
  React.createElement(Button, { size: "xs", onClick: function () {
@@ -10,4 +10,5 @@ export * from "./editors/insert-image-editor";
10
10
  export * from "./editors/insert-link-editor";
11
11
  export * from "./editors/data-validation-editor";
12
12
  export * from "./editors/embed-editor";
13
+ export * from "./editors/slicer-editor";
13
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../components/index.tsx"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC;AACpD,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0CAA0C,CAAC;AACzD,cAAc,qCAAqC,CAAC;AACpD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../components/index.tsx"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC;AACpD,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0CAA0C,CAAC;AACzD,cAAc,qCAAqC,CAAC;AACpD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC"}
@@ -10,3 +10,4 @@ export * from "./editors/insert-image-editor";
10
10
  export * from "./editors/insert-link-editor";
11
11
  export * from "./editors/data-validation-editor";
12
12
  export * from "./editors/embed-editor";
13
+ export * from "./editors/slicer-editor";
@@ -13,8 +13,16 @@ export declare const MERGED_CELL_REFUSAL_MESSAGE = "We can't do that to a merged
13
13
  export declare const TABLE_SHIFT_REFUSAL_MESSAGE = "This won't work because it would move cells in a table on your worksheet.";
14
14
  /** ANC-14 — the shifted band covers only part of a CSE / dynamic array. */
15
15
  export declare const ARRAY_REFUSAL_MESSAGE = "You can't change part of an array.";
16
+ /** T-42 — a merge whose region touches a table (Excel refuses every merge inside a table). */
17
+ export declare const TABLE_MERGE_REFUSAL_MESSAGE = "This operation is not allowed. The operation is attempting to shift cells in a table on your worksheet.";
18
+ /** T-17 — a table resize whose new range would overlap another table on the sheet. */
19
+ export declare const TABLE_OVERLAP_REFUSAL_MESSAGE = "A table cannot overlap another table.";
20
+ /** T-17 — a table resize whose new range would cover a merged cell. */
21
+ export declare const TABLE_MERGED_CELLS_REFUSAL_MESSAGE = "A table cannot overlap a range that contains a PivotTable report, query results, protected cells or merged cells.";
22
+ /** T-81 — a fill whose target reaches a table's totals row (Excel's fill handle never extends over it). */
23
+ export declare const TABLE_TOTALS_FILL_REFUSAL_MESSAGE = "This won't work because it would overwrite the totals row of a table on your worksheet.";
16
24
  /** Machine-readable refusal codes — the rnc engine's `CommitResult.rejected.code` uses the same set. */
17
- export type StructuralRefusalCode = "off-sheet-push" | "torn-merge" | "torn-table" | "torn-array";
25
+ export type StructuralRefusalCode = "off-sheet-push" | "torn-merge" | "torn-table" | "torn-array" | "table-merge" | "table-overlap" | "table-merged-cells" | "table-totals-fill";
18
26
  export type StructuralRefusal = {
19
27
  code: StructuralRefusalCode;
20
28
  title: string;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,oBAAoB,CAAC;AAE1D,2GAA2G;AAC3G,eAAO,MAAM,sBAAsB,ySACqQ,CAAC;AAEzS,4EAA4E;AAC5E,eAAO,MAAM,2BAA2B,uCAAuC,CAAC;AAEhF,0DAA0D;AAC1D,eAAO,MAAM,2BAA2B,8EACqC,CAAC;AAE9E,2EAA2E;AAC3E,eAAO,MAAM,qBAAqB,uCAAuC,CAAC;AAE1E,wGAAwG;AACxG,MAAM,MAAM,qBAAqB,GAC7B,gBAAgB,GAChB,YAAY,GACZ,YAAY,GACZ,YAAY,CAAC;AAEjB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,qBAAqB,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAK7E,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,MAAM,qBAAqB,KAC1B,iBAID,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,oBAAoB,CAAC;AAE1D,2GAA2G;AAC3G,eAAO,MAAM,sBAAsB,ySACqQ,CAAC;AAEzS,4EAA4E;AAC5E,eAAO,MAAM,2BAA2B,uCAAuC,CAAC;AAEhF,0DAA0D;AAC1D,eAAO,MAAM,2BAA2B,8EACqC,CAAC;AAE9E,2EAA2E;AAC3E,eAAO,MAAM,qBAAqB,uCAAuC,CAAC;AAE1E,8FAA8F;AAC9F,eAAO,MAAM,2BAA2B,4GACmE,CAAC;AAE5G,sFAAsF;AACtF,eAAO,MAAM,6BAA6B,0CACD,CAAC;AAE1C,uEAAuE;AACvE,eAAO,MAAM,kCAAkC,sHACsE,CAAC;AAEtH,2GAA2G;AAC3G,eAAO,MAAM,iCAAiC,4FAC6C,CAAC;AAE5F,wGAAwG;AACxG,MAAM,MAAM,qBAAqB,GAC7B,gBAAgB,GAChB,YAAY,GACZ,YAAY,GACZ,YAAY,GACZ,aAAa,GACb,eAAe,GACf,oBAAoB,GACpB,mBAAmB,CAAC;AAExB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,qBAAqB,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAS7E,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,MAAM,qBAAqB,KAC1B,iBAID,CAAC"}
@@ -13,11 +13,23 @@ export var MERGED_CELL_REFUSAL_MESSAGE = "We can't do that to a merged cell.";
13
13
  export var TABLE_SHIFT_REFUSAL_MESSAGE = "This won't work because it would move cells in a table on your worksheet.";
14
14
  /** ANC-14 — the shifted band covers only part of a CSE / dynamic array. */
15
15
  export var ARRAY_REFUSAL_MESSAGE = "You can't change part of an array.";
16
+ /** T-42 — a merge whose region touches a table (Excel refuses every merge inside a table). */
17
+ export var TABLE_MERGE_REFUSAL_MESSAGE = "This operation is not allowed. The operation is attempting to shift cells in a table on your worksheet.";
18
+ /** T-17 — a table resize whose new range would overlap another table on the sheet. */
19
+ export var TABLE_OVERLAP_REFUSAL_MESSAGE = "A table cannot overlap another table.";
20
+ /** T-17 — a table resize whose new range would cover a merged cell. */
21
+ export var TABLE_MERGED_CELLS_REFUSAL_MESSAGE = "A table cannot overlap a range that contains a PivotTable report, query results, protected cells or merged cells.";
22
+ /** T-81 — a fill whose target reaches a table's totals row (Excel's fill handle never extends over it). */
23
+ export var TABLE_TOTALS_FILL_REFUSAL_MESSAGE = "This won't work because it would overwrite the totals row of a table on your worksheet.";
16
24
  export var STRUCTURAL_REFUSAL_MESSAGES = {
17
25
  "off-sheet-push": OFF_SHEET_PUSH_MESSAGE,
18
26
  "torn-merge": MERGED_CELL_REFUSAL_MESSAGE,
19
27
  "torn-table": TABLE_SHIFT_REFUSAL_MESSAGE,
20
28
  "torn-array": ARRAY_REFUSAL_MESSAGE,
29
+ "table-merge": TABLE_MERGE_REFUSAL_MESSAGE,
30
+ "table-overlap": TABLE_OVERLAP_REFUSAL_MESSAGE,
31
+ "table-merged-cells": TABLE_MERGED_CELLS_REFUSAL_MESSAGE,
32
+ "table-totals-fill": TABLE_TOTALS_FILL_REFUSAL_MESSAGE,
21
33
  };
22
34
  export var structuralRefusal = function (code) { return ({
23
35
  code: code,
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Formatters for auto-generated names such as "Sheet1", "Table 1",
2
+ * Formatters for auto-generated names such as "Sheet1", "Table1",
3
3
  * "Column1" and "Copy of Sheet1".
4
4
  *
5
5
  * Pass `generatedNames` to `useSpreadsheetState` to customize or
@@ -31,11 +31,19 @@ export interface GeneratedNames {
31
31
  */
32
32
  sheetCopy?: (title: string) => string | undefined;
33
33
  /**
34
- * Title for a newly created table. Default: `Table ${index}`
34
+ * Title for a chartsheet created by "Move Chart → New sheet". Default:
35
+ * `Chart${index}` (Excel's pattern — the first unused number is picked).
36
+ */
37
+ chartSheet?: (index: number) => string | undefined;
38
+ /**
39
+ * Title for a newly created table. Default: `Table${index}` (Excel's
40
+ * pattern — no space; the first unused number is picked).
35
41
  */
36
42
  table?: (index: number) => string | undefined;
37
43
  /**
38
- * Title for a pasted (copied) table. Default: `Copy of ${title}`
44
+ * @deprecated No longer applied: a pasted table is named like a new one
45
+ * (the next free `Table${index}`, via `table`), as in Excel — `Copy of
46
+ * ${title}` is not a valid table name.
39
47
  */
40
48
  tableCopy?: (title: string) => string | undefined;
41
49
  /**
@@ -45,7 +53,9 @@ export interface GeneratedNames {
45
53
  }
46
54
  export declare const getGeneratedSheetName: (index: number, generatedNames?: GeneratedNames) => string;
47
55
  export declare const getGeneratedSheetCopyName: (title: string, generatedNames?: GeneratedNames) => string;
56
+ export declare const getGeneratedChartSheetName: (index: number, generatedNames?: GeneratedNames) => string;
48
57
  export declare const getGeneratedTableName: (index: number, generatedNames?: GeneratedNames) => string;
58
+ /** @deprecated See `GeneratedNames.tableCopy`. */
49
59
  export declare const getGeneratedTableCopyName: (title: string, generatedNames?: GeneratedNames) => string;
50
60
  export declare const getGeneratedTableColumnName: (index: number, generatedNames?: GeneratedNames) => string;
51
61
  //# sourceMappingURL=generated-names.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generated-names.d.ts","sourceRoot":"","sources":["../../generated-names.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC9C;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAClD;;OAEG;IACH,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC9C;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAClD;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CACrD;AAED,eAAO,MAAM,qBAAqB,GAChC,OAAO,MAAM,EACb,iBAAiB,cAAc,KAC9B,MAA2D,CAAC;AAE/D,eAAO,MAAM,yBAAyB,GACpC,OAAO,MAAM,EACb,iBAAiB,cAAc,KAC9B,MAAkE,CAAC;AAEtE,eAAO,MAAM,qBAAqB,GAChC,OAAO,MAAM,EACb,iBAAiB,cAAc,KAC9B,MAA4D,CAAC;AAEhE,eAAO,MAAM,yBAAyB,GACpC,OAAO,MAAM,EACb,iBAAiB,cAAc,KAC9B,MAAkE,CAAC;AAEtE,eAAO,MAAM,2BAA2B,GACtC,OAAO,MAAM,EACb,iBAAiB,cAAc,KAC9B,MAAkE,CAAC"}
1
+ {"version":3,"file":"generated-names.d.ts","sourceRoot":"","sources":["../../generated-names.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC9C;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAClD;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACnD;;;OAGG;IACH,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC9C;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAClD;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CACrD;AAED,eAAO,MAAM,qBAAqB,GAChC,OAAO,MAAM,EACb,iBAAiB,cAAc,KAC9B,MAA2D,CAAC;AAE/D,eAAO,MAAM,yBAAyB,GACpC,OAAO,MAAM,EACb,iBAAiB,cAAc,KAC9B,MAAkE,CAAC;AAEtE,eAAO,MAAM,0BAA0B,GACrC,OAAO,MAAM,EACb,iBAAiB,cAAc,KAC9B,MAAgE,CAAC;AAEpE,eAAO,MAAM,qBAAqB,GAChC,OAAO,MAAM,EACb,iBAAiB,cAAc,KAC9B,MAA2D,CAAC;AAE/D,kDAAkD;AAClD,eAAO,MAAM,yBAAyB,GACpC,OAAO,MAAM,EACb,iBAAiB,cAAc,KAC9B,MAAkE,CAAC;AAEtE,eAAO,MAAM,2BAA2B,GACtC,OAAO,MAAM,EACb,iBAAiB,cAAc,KAC9B,MAAkE,CAAC"}
@@ -1,5 +1,7 @@
1
1
  export var getGeneratedSheetName = function (index, generatedNames) { var _a, _b; return (_b = (_a = generatedNames === null || generatedNames === void 0 ? void 0 : generatedNames.sheet) === null || _a === void 0 ? void 0 : _a.call(generatedNames, index)) !== null && _b !== void 0 ? _b : "Sheet".concat(index); };
2
2
  export var getGeneratedSheetCopyName = function (title, generatedNames) { var _a, _b; return (_b = (_a = generatedNames === null || generatedNames === void 0 ? void 0 : generatedNames.sheetCopy) === null || _a === void 0 ? void 0 : _a.call(generatedNames, title)) !== null && _b !== void 0 ? _b : "Copy of ".concat(title); };
3
- export var getGeneratedTableName = function (index, generatedNames) { var _a, _b; return (_b = (_a = generatedNames === null || generatedNames === void 0 ? void 0 : generatedNames.table) === null || _a === void 0 ? void 0 : _a.call(generatedNames, index)) !== null && _b !== void 0 ? _b : "Table ".concat(index); };
3
+ export var getGeneratedChartSheetName = function (index, generatedNames) { var _a, _b; return (_b = (_a = generatedNames === null || generatedNames === void 0 ? void 0 : generatedNames.chartSheet) === null || _a === void 0 ? void 0 : _a.call(generatedNames, index)) !== null && _b !== void 0 ? _b : "Chart".concat(index); };
4
+ export var getGeneratedTableName = function (index, generatedNames) { var _a, _b; return (_b = (_a = generatedNames === null || generatedNames === void 0 ? void 0 : generatedNames.table) === null || _a === void 0 ? void 0 : _a.call(generatedNames, index)) !== null && _b !== void 0 ? _b : "Table".concat(index); };
5
+ /** @deprecated See `GeneratedNames.tableCopy`. */
4
6
  export var getGeneratedTableCopyName = function (title, generatedNames) { var _a, _b; return (_b = (_a = generatedNames === null || generatedNames === void 0 ? void 0 : generatedNames.tableCopy) === null || _a === void 0 ? void 0 : _a.call(generatedNames, title)) !== null && _b !== void 0 ? _b : "Copy of ".concat(title); };
5
7
  export var getGeneratedTableColumnName = function (index, generatedNames) { var _a, _b; return (_b = (_a = generatedNames === null || generatedNames === void 0 ? void 0 : generatedNames.tableColumn) === null || _a === void 0 ? void 0 : _a.call(generatedNames, index)) !== null && _b !== void 0 ? _b : "Column".concat(index); };
@@ -28,6 +28,11 @@ export declare function combineMapIterators<K, V>(...mapIterators: IterableItera
28
28
  * @returns
29
29
  */
30
30
  export declare function combineMapIteratorsWithFormatting<K, V, F>(...mapIterators: IterableIterator<[K, V, formatting?: F]>[]): IterableIterator<[K, V, formatting?: F]>;
31
+ /**
32
+ * Default title for a new table — `Table1`, `Table2`, … with the lowest
33
+ * number no existing table uses (case-insensitive), like Excel.
34
+ */
35
+ export declare const getNextTableTitle: (tables?: Pick<TableView, "title">[] | null, generatedNames?: GeneratedNames) => string;
31
36
  /**
32
37
  * Get unique table column name
33
38
  * @param columns
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAE7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKxD;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,GAAI,CAAC,SAAS,QAAQ,EACvD,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,EAAE,EACnE,gBAAwB,KACvB,OAAO,CAAC,CAAC,CAAC,EAeZ,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,WAAW,GACtB,QAAQ,UAAU,GAAG,SAAS,KAC7B,MAAM,IAAI,SAEZ,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,CAAC,EACtC,GAAG,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAC1C,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAkB1B;AAED;;;;GAIG;AACH,wBAAgB,iCAAiC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACvD,GAAG,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAC1D,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAkB1C;AAED;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GACjC,UAAU,MAAM,EAAE,GAAG,IAAI,EACzB,iBAAiB,cAAc,WAYhC,CAAC;AAIF,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,SAAS,EAAE,GAAG,SAAS,EAC/B,aAAa,SAAS,0BAsBvB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,WA6BxD,CAAC;AAEF,eAAO,MAAM,oBAAoB,WAAW,CAAC"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAI7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAQxD;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,GAAI,CAAC,SAAS,QAAQ,EACvD,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,EAAE,EACnE,gBAAwB,KACvB,OAAO,CAAC,CAAC,CAAC,EAeZ,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,WAAW,GACtB,QAAQ,UAAU,GAAG,SAAS,KAC7B,MAAM,IAAI,SAEZ,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,CAAC,EACtC,GAAG,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAC1C,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAkB1B;AAED;;;;GAIG;AACH,wBAAgB,iCAAiC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACvD,GAAG,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAC1D,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAkB1C;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAC5B,SAAS,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI,EAC1C,iBAAiB,cAAc,WAK9B,CAAC;AAEJ;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GACjC,UAAU,MAAM,EAAE,GAAG,IAAI,EACzB,iBAAiB,cAAc,WAYhC,CAAC;AAIF,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,SAAS,EAAE,GAAG,SAAS,EAC/B,aAAa,SAAS,0BAsBvB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,WA6BxD,CAAC;AAEF,eAAO,MAAM,oBAAoB,WAAW,CAAC"}
@@ -1,4 +1,5 @@
1
- import { getGeneratedTableColumnName } from "./generated-names";
1
+ import { getNextTableName } from "@rowsncolumns/utils";
2
+ import { getGeneratedTableColumnName, getGeneratedTableName, } from "./generated-names";
2
3
  import { defaultCellCoords, defaultSheetId, SheetCell } from "./sheet-cell";
3
4
  /**
4
5
  * Convert
@@ -88,6 +89,14 @@ export function combineMapIteratorsWithFormatting() {
88
89
  },
89
90
  _a;
90
91
  }
92
+ /**
93
+ * Default title for a new table — `Table1`, `Table2`, … with the lowest
94
+ * number no existing table uses (case-insensitive), like Excel.
95
+ */
96
+ export var getNextTableTitle = function (tables, generatedNames) {
97
+ var _a;
98
+ return getNextTableName((_a = tables === null || tables === void 0 ? void 0 : tables.map(function (table) { return table.title; })) !== null && _a !== void 0 ? _a : [], function (index) { return getGeneratedTableName(index, generatedNames); });
99
+ };
91
100
  /**
92
101
  * Get unique table column name
93
102
  * @param columns
@@ -33,11 +33,12 @@ export type UseOnChangeBatchProps<T extends CellData, S extends Sheet = Sheet> =
33
33
  onChangeSheetData: UseSpreadsheetProps<T, S>["onChangeSheetData"];
34
34
  onChangeSheets: UseSpreadsheetProps<T, S>["onChangeSheets"];
35
35
  onChangeTables?: UseSpreadsheetProps<T, S>["onChangeTables"];
36
+ onChangeCharts?: UseSpreadsheetProps<T, S>["onChangeCharts"];
36
37
  onChangeCitations?: UseSpreadsheetProps<T, S>["onChangeCitations"];
37
38
  onChangeTableColumn?: (sheetId: number, coords: {
38
39
  rowIndex: number;
39
40
  columnIndex: number;
40
- }, value: string | boolean | undefined, currentTable: TableView | undefined, isRowExpansion: boolean, isColumnExpansion: boolean, range: GridRange) => void;
41
+ }, value: string | boolean | undefined, currentTable: TableView | undefined, isRowExpansion: boolean, isColumnExpansion: boolean, range: GridRange, headerValues?: (string | boolean | number | null | undefined)[]) => void;
41
42
  onChangeCalculatedColumn?: (sheetId: number, coords: {
42
43
  rowIndex: number;
43
44
  columnIndex: number;
@@ -49,6 +50,22 @@ export type UseOnChangeBatchProps<T extends CellData, S extends Sheet = Sheet> =
49
50
  tokenizer?(value: string): ParsedToken[];
50
51
  onCommand?: OnCommand;
51
52
  generatedNames?: GeneratedNames;
53
+ /** `useUndoRedo`'s `batchHistory`: the writes and the table growth they trigger undo as one step when wired. */
54
+ batchHistory?: <R>(action: () => R) => R;
55
+ /**
56
+ * Excel's "Include new rows and columns in table" AutoCorrect option: a value typed, pasted or
57
+ * filled into the row below / column right of a table grows the table. `false` turns the
58
+ * auto-expansion off (the "Stop Automatically Expanding Tables" smart-tag action).
59
+ * @default true
60
+ */
61
+ autoExpandTables?: boolean;
62
+ /**
63
+ * Excel's "Fill formulas in tables to create calculated columns" AutoCorrect option. `false`
64
+ * leaves a formula typed into a table column a one-cell edit (the "Stop automatically creating
65
+ * calculated columns" smart-tag action).
66
+ * @default true
67
+ */
68
+ autoCalculatedColumns?: boolean;
52
69
  };
53
- export declare const useOnChangeBatch: <T extends CellData, K extends CellFormat, S extends Sheet = Sheet>({ locale, cellXfsRegistry, sharedStringRegistry, getDataValidationById, enqueueCalculation, onChangeSheetData, onChangeSheets, onChangeTables, tables, createHistory, getFormattedValue, getUserEnteredValue, getCellDimensions, getRowHeight, isMergedCell, enqueueGraphOperation, getDependents, getSheetName, onChangeCitations, onCommand, generatedNames, }: UseOnChangeBatchProps<T, S>) => (sheetId: number, ranges: GridRange[] | GridRange, values: (string | boolean | number | null | undefined)[][] | string | boolean | number | null | undefined, formatting?: (K | undefined | null)[][] | K | null | undefined, citations?: (string | undefined | null)[][] | string | null | undefined, changeBatchOptions?: ChangeBatchOptions) => void;
70
+ export declare const useOnChangeBatch: <T extends CellData, K extends CellFormat, S extends Sheet = Sheet>({ locale, cellXfsRegistry, sharedStringRegistry, getDataValidationById, enqueueCalculation, onChangeSheetData, onChangeSheets, onChangeTables, onChangeCharts, tables, createHistory, getFormattedValue, getUserEnteredValue, getCellDimensions, getRowHeight, isMergedCell, enqueueGraphOperation, getDependents, getSheetName, onChangeCitations, onCommand, generatedNames, batchHistory, autoExpandTables, autoCalculatedColumns, }: UseOnChangeBatchProps<T, S>) => (sheetId: number, ranges: GridRange[] | GridRange, values: (string | boolean | number | null | undefined)[][] | string | boolean | number | null | undefined, formatting?: (K | undefined | null)[][] | K | null | undefined, citations?: (string | undefined | null)[][] | string | null | undefined, changeBatchOptions?: ChangeBatchOptions) => void;
54
71
  //# sourceMappingURL=use-on-change-batch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-on-change-batch.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-change-batch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-on-change-batch.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-change-batch.ts"],"names":[],"mappings":"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"}