@rowsncolumns/spreadsheet-state 29.0.0 → 29.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (603) hide show
  1. package/dist/cjs/api/anchored-objects.d.ts +131 -7
  2. package/dist/cjs/api/anchored-objects.d.ts.map +1 -1
  3. package/dist/cjs/api/anchored-objects.js +488 -43
  4. package/dist/cjs/api/copy-paste.d.ts +1 -2
  5. package/dist/cjs/api/copy-paste.d.ts.map +1 -1
  6. package/dist/cjs/api/copy-paste.js +1 -3
  7. package/dist/cjs/api/filter.d.ts +15 -1
  8. package/dist/cjs/api/filter.d.ts.map +1 -1
  9. package/dist/cjs/api/filter.js +32 -2
  10. package/dist/cjs/api/formula.d.ts +63 -0
  11. package/dist/cjs/api/formula.d.ts.map +1 -1
  12. package/dist/cjs/api/formula.js +278 -8
  13. package/dist/cjs/api/paint-format.d.ts +22 -1
  14. package/dist/cjs/api/paint-format.d.ts.map +1 -1
  15. package/dist/cjs/api/paint-format.js +57 -1
  16. package/dist/cjs/api/sort.d.ts +23 -1
  17. package/dist/cjs/api/sort.d.ts.map +1 -1
  18. package/dist/cjs/api/sort.js +52 -6
  19. package/dist/cjs/api/structural-guards.d.ts +57 -0
  20. package/dist/cjs/api/structural-guards.d.ts.map +1 -1
  21. package/dist/cjs/api/structural-guards.js +93 -1
  22. package/dist/cjs/api/structural-table-refs.d.ts +58 -3
  23. package/dist/cjs/api/structural-table-refs.d.ts.map +1 -1
  24. package/dist/cjs/api/structural-table-refs.js +177 -16
  25. package/dist/cjs/api/table.d.ts +26 -2
  26. package/dist/cjs/api/table.d.ts.map +1 -1
  27. package/dist/cjs/api/table.js +93 -60
  28. package/dist/cjs/api/validation.d.ts.map +1 -1
  29. package/dist/cjs/api/validation.js +53 -8
  30. package/dist/cjs/atoms/creating-table.atom.d.ts +22 -0
  31. package/dist/cjs/atoms/creating-table.atom.d.ts.map +1 -0
  32. package/dist/cjs/atoms/creating-table.atom.js +4 -0
  33. package/dist/cjs/atoms/dialog-state.atom.d.ts +8 -0
  34. package/dist/cjs/atoms/dialog-state.atom.d.ts.map +1 -1
  35. package/dist/cjs/atoms/dialog-state.atom.js +28 -0
  36. package/dist/cjs/atoms/editing-slicer.atom.d.ts +9 -0
  37. package/dist/cjs/atoms/editing-slicer.atom.d.ts.map +1 -0
  38. package/dist/cjs/atoms/editing-slicer.atom.js +6 -0
  39. package/dist/cjs/atoms/index.d.ts +4 -0
  40. package/dist/cjs/atoms/index.d.ts.map +1 -1
  41. package/dist/cjs/atoms/index.js +4 -0
  42. package/dist/cjs/atoms/inserting-slicer.atom.d.ts +8 -0
  43. package/dist/cjs/atoms/inserting-slicer.atom.d.ts.map +1 -0
  44. package/dist/cjs/atoms/inserting-slicer.atom.js +5 -0
  45. package/dist/cjs/atoms/resizing-table.atom.d.ts +8 -0
  46. package/dist/cjs/atoms/resizing-table.atom.d.ts.map +1 -0
  47. package/dist/cjs/atoms/resizing-table.atom.js +5 -0
  48. package/dist/cjs/commands.d.ts +129 -2
  49. package/dist/cjs/commands.d.ts.map +1 -1
  50. package/dist/cjs/components/editors/embed-editor.d.ts +4 -2
  51. package/dist/cjs/components/editors/embed-editor.d.ts.map +1 -1
  52. package/dist/cjs/components/editors/embed-editor.js +38 -9
  53. package/dist/cjs/components/editors/slicer-editor.d.ts +15 -0
  54. package/dist/cjs/components/editors/slicer-editor.d.ts.map +1 -0
  55. package/dist/cjs/components/editors/slicer-editor.js +87 -0
  56. package/dist/cjs/components/editors/table-editor.d.ts +58 -2
  57. package/dist/cjs/components/editors/table-editor.d.ts.map +1 -1
  58. package/dist/cjs/components/editors/table-editor.js +261 -20
  59. package/dist/cjs/components/index.d.ts +1 -0
  60. package/dist/cjs/components/index.d.ts.map +1 -1
  61. package/dist/cjs/components/index.js +1 -0
  62. package/dist/cjs/constants.d.ts +9 -1
  63. package/dist/cjs/constants.d.ts.map +1 -1
  64. package/dist/cjs/constants.js +12 -0
  65. package/dist/cjs/generated-names.d.ts +13 -3
  66. package/dist/cjs/generated-names.d.ts.map +1 -1
  67. package/dist/cjs/generated-names.js +3 -1
  68. package/dist/cjs/helpers.d.ts +5 -0
  69. package/dist/cjs/helpers.d.ts.map +1 -1
  70. package/dist/cjs/helpers.js +10 -1
  71. package/dist/cjs/hooks/use-on-change-batch.d.ts +19 -2
  72. package/dist/cjs/hooks/use-on-change-batch.d.ts.map +1 -1
  73. package/dist/cjs/hooks/use-on-change-batch.js +43 -35
  74. package/dist/cjs/hooks/use-on-change-calculated-column.d.ts +10 -1
  75. package/dist/cjs/hooks/use-on-change-calculated-column.d.ts.map +1 -1
  76. package/dist/cjs/hooks/use-on-change-calculated-column.js +17 -5
  77. package/dist/cjs/hooks/use-on-change-table-column.d.ts +6 -1
  78. package/dist/cjs/hooks/use-on-change-table-column.d.ts.map +1 -1
  79. package/dist/cjs/hooks/use-on-change-table-column.js +17 -5
  80. package/dist/cjs/hooks/use-on-change.d.ts +36 -3
  81. package/dist/cjs/hooks/use-on-change.d.ts.map +1 -1
  82. package/dist/cjs/hooks/use-on-change.js +218 -136
  83. package/dist/cjs/hooks/use-on-create-custom-table-style.d.ts +17 -0
  84. package/dist/cjs/hooks/use-on-create-custom-table-style.d.ts.map +1 -0
  85. package/dist/cjs/hooks/use-on-create-custom-table-style.js +28 -0
  86. package/dist/cjs/hooks/use-on-create-named-range.d.ts +4 -2
  87. package/dist/cjs/hooks/use-on-create-named-range.d.ts.map +1 -1
  88. package/dist/cjs/hooks/use-on-create-named-range.js +11 -1
  89. package/dist/cjs/hooks/use-on-delete-cells-shift-left.d.ts +2 -1
  90. package/dist/cjs/hooks/use-on-delete-cells-shift-left.d.ts.map +1 -1
  91. package/dist/cjs/hooks/use-on-delete-cells-shift-left.js +3 -1
  92. package/dist/cjs/hooks/use-on-delete-cells-shift-up.d.ts +2 -1
  93. package/dist/cjs/hooks/use-on-delete-cells-shift-up.d.ts.map +1 -1
  94. package/dist/cjs/hooks/use-on-delete-cells-shift-up.js +3 -1
  95. package/dist/cjs/hooks/use-on-delete-column.d.ts +2 -1
  96. package/dist/cjs/hooks/use-on-delete-column.d.ts.map +1 -1
  97. package/dist/cjs/hooks/use-on-delete-column.js +3 -1
  98. package/dist/cjs/hooks/use-on-delete-row.d.ts +2 -1
  99. package/dist/cjs/hooks/use-on-delete-row.d.ts.map +1 -1
  100. package/dist/cjs/hooks/use-on-delete-row.js +3 -1
  101. package/dist/cjs/hooks/use-on-delete-sheet.d.ts +10 -1
  102. package/dist/cjs/hooks/use-on-delete-sheet.d.ts.map +1 -1
  103. package/dist/cjs/hooks/use-on-delete-sheet.js +19 -1
  104. package/dist/cjs/hooks/use-on-delete-table-row.d.ts +4 -1
  105. package/dist/cjs/hooks/use-on-delete-table-row.d.ts.map +1 -1
  106. package/dist/cjs/hooks/use-on-delete-table-row.js +19 -1
  107. package/dist/cjs/hooks/use-on-delete.d.ts +5 -2
  108. package/dist/cjs/hooks/use-on-delete.d.ts.map +1 -1
  109. package/dist/cjs/hooks/use-on-delete.js +5 -1
  110. package/dist/cjs/hooks/use-on-embeds.d.ts +7 -4
  111. package/dist/cjs/hooks/use-on-embeds.d.ts.map +1 -1
  112. package/dist/cjs/hooks/use-on-embeds.js +26 -24
  113. package/dist/cjs/hooks/use-on-fill.d.ts +17 -2
  114. package/dist/cjs/hooks/use-on-fill.d.ts.map +1 -1
  115. package/dist/cjs/hooks/use-on-fill.js +29 -15
  116. package/dist/cjs/hooks/use-on-filter-table.d.ts.map +1 -1
  117. package/dist/cjs/hooks/use-on-filter-table.js +209 -103
  118. package/dist/cjs/hooks/use-on-import-excel.d.ts +2 -1
  119. package/dist/cjs/hooks/use-on-import-excel.d.ts.map +1 -1
  120. package/dist/cjs/hooks/use-on-import-excel.js +22 -19
  121. package/dist/cjs/hooks/use-on-insert-cells-shift-down.d.ts +2 -1
  122. package/dist/cjs/hooks/use-on-insert-cells-shift-down.d.ts.map +1 -1
  123. package/dist/cjs/hooks/use-on-insert-cells-shift-down.js +3 -1
  124. package/dist/cjs/hooks/use-on-insert-cells-shift-right.d.ts +2 -1
  125. package/dist/cjs/hooks/use-on-insert-cells-shift-right.d.ts.map +1 -1
  126. package/dist/cjs/hooks/use-on-insert-cells-shift-right.js +3 -1
  127. package/dist/cjs/hooks/use-on-insert-column.d.ts +2 -1
  128. package/dist/cjs/hooks/use-on-insert-column.d.ts.map +1 -1
  129. package/dist/cjs/hooks/use-on-insert-column.js +3 -1
  130. package/dist/cjs/hooks/use-on-insert-row.d.ts +2 -1
  131. package/dist/cjs/hooks/use-on-insert-row.d.ts.map +1 -1
  132. package/dist/cjs/hooks/use-on-insert-row.js +3 -1
  133. package/dist/cjs/hooks/use-on-insert-table-row.d.ts +5 -2
  134. package/dist/cjs/hooks/use-on-insert-table-row.d.ts.map +1 -1
  135. package/dist/cjs/hooks/use-on-insert-table-row.js +19 -1
  136. package/dist/cjs/hooks/use-on-merge-unmerge-cells.d.ts +3 -2
  137. package/dist/cjs/hooks/use-on-merge-unmerge-cells.d.ts.map +1 -1
  138. package/dist/cjs/hooks/use-on-merge-unmerge-cells.js +14 -1
  139. package/dist/cjs/hooks/use-on-move-columns.d.ts +3 -1
  140. package/dist/cjs/hooks/use-on-move-columns.d.ts.map +1 -1
  141. package/dist/cjs/hooks/use-on-move-columns.js +14 -1
  142. package/dist/cjs/hooks/use-on-move-rows.d.ts +3 -1
  143. package/dist/cjs/hooks/use-on-move-rows.d.ts.map +1 -1
  144. package/dist/cjs/hooks/use-on-move-rows.js +14 -1
  145. package/dist/cjs/hooks/use-on-move-selection.d.ts +3 -1
  146. package/dist/cjs/hooks/use-on-move-selection.d.ts.map +1 -1
  147. package/dist/cjs/hooks/use-on-move-selection.js +88 -25
  148. package/dist/cjs/hooks/use-on-paste.d.ts +22 -1
  149. package/dist/cjs/hooks/use-on-paste.d.ts.map +1 -1
  150. package/dist/cjs/hooks/use-on-paste.js +993 -776
  151. package/dist/cjs/hooks/use-on-remove-duplicates.d.ts +5 -2
  152. package/dist/cjs/hooks/use-on-remove-duplicates.d.ts.map +1 -1
  153. package/dist/cjs/hooks/use-on-remove-duplicates.js +5 -1
  154. package/dist/cjs/hooks/use-on-request-create-table.d.ts +13 -0
  155. package/dist/cjs/hooks/use-on-request-create-table.d.ts.map +1 -0
  156. package/dist/cjs/hooks/use-on-request-create-table.js +44 -0
  157. package/dist/cjs/hooks/use-on-request-insert-slicer.d.ts +7 -0
  158. package/dist/cjs/hooks/use-on-request-insert-slicer.d.ts.map +1 -0
  159. package/dist/cjs/hooks/use-on-request-insert-slicer.js +15 -0
  160. package/dist/cjs/hooks/use-on-request-resize-table.d.ts +7 -0
  161. package/dist/cjs/hooks/use-on-request-resize-table.d.ts.map +1 -0
  162. package/dist/cjs/hooks/use-on-request-resize-table.js +15 -0
  163. package/dist/cjs/hooks/use-on-resize-table.d.ts +5 -1
  164. package/dist/cjs/hooks/use-on-resize-table.d.ts.map +1 -1
  165. package/dist/cjs/hooks/use-on-resize-table.js +110 -33
  166. package/dist/cjs/hooks/use-on-sort-column.d.ts +28 -3
  167. package/dist/cjs/hooks/use-on-sort-column.d.ts.map +1 -1
  168. package/dist/cjs/hooks/use-on-sort-column.js +136 -90
  169. package/dist/cjs/hooks/use-on-sort-range.d.ts +26 -3
  170. package/dist/cjs/hooks/use-on-sort-range.d.ts.map +1 -1
  171. package/dist/cjs/hooks/use-on-sort-range.js +113 -67
  172. package/dist/cjs/hooks/use-on-sort-table.d.ts +18 -1
  173. package/dist/cjs/hooks/use-on-sort-table.d.ts.map +1 -1
  174. package/dist/cjs/hooks/use-on-sort-table.js +128 -98
  175. package/dist/cjs/hooks/use-on-subtotal.d.ts +10 -3
  176. package/dist/cjs/hooks/use-on-subtotal.d.ts.map +1 -1
  177. package/dist/cjs/hooks/use-on-subtotal.js +13 -9
  178. package/dist/cjs/hooks/use-on-table.d.ts +39 -7
  179. package/dist/cjs/hooks/use-on-table.d.ts.map +1 -1
  180. package/dist/cjs/hooks/use-on-table.js +257 -49
  181. package/dist/cjs/hooks/use-on-undo-calculated-column.d.ts +23 -0
  182. package/dist/cjs/hooks/use-on-undo-calculated-column.d.ts.map +1 -0
  183. package/dist/cjs/hooks/use-on-undo-calculated-column.js +70 -0
  184. package/dist/cjs/hooks/use-on-undo-table-auto-expansion.d.ts +28 -0
  185. package/dist/cjs/hooks/use-on-undo-table-auto-expansion.d.ts.map +1 -0
  186. package/dist/cjs/hooks/use-on-undo-table-auto-expansion.js +96 -0
  187. package/dist/cjs/hooks/use-on-update-named-range.d.ts +4 -2
  188. package/dist/cjs/hooks/use-on-update-named-range.d.ts.map +1 -1
  189. package/dist/cjs/hooks/use-on-update-named-range.js +13 -1
  190. package/dist/cjs/hooks/use-sheet-properties.d.ts +1 -0
  191. package/dist/cjs/hooks/use-sheet-properties.d.ts.map +1 -1
  192. package/dist/cjs/hooks/use-sheet-properties.js +54 -34
  193. package/dist/cjs/hooks/use-slicers.d.ts +2 -2
  194. package/dist/cjs/hooks/use-slicers.d.ts.map +1 -1
  195. package/dist/cjs/hooks/use-slicers.js +17 -26
  196. package/dist/cjs/hooks/use-sparkline-groups.d.ts +50 -0
  197. package/dist/cjs/hooks/use-sparkline-groups.d.ts.map +1 -0
  198. package/dist/cjs/hooks/use-sparkline-groups.js +192 -0
  199. package/dist/cjs/hooks/use-spreadsheet-state.d.ts +56 -10
  200. package/dist/cjs/hooks/use-spreadsheet-state.d.ts.map +1 -1
  201. package/dist/cjs/hooks/use-spreadsheet-state.js +323 -100
  202. package/dist/cjs/hooks/use-structured-reference.d.ts.map +1 -1
  203. package/dist/cjs/hooks/use-structured-reference.js +17 -0
  204. package/dist/cjs/hooks/use-undo-redo-actions.d.ts +2 -1
  205. package/dist/cjs/hooks/use-undo-redo-actions.d.ts.map +1 -1
  206. package/dist/cjs/hooks/use-undo-redo-actions.js +10 -2
  207. package/dist/cjs/hooks/use-undo-redo.d.ts +12 -0
  208. package/dist/cjs/hooks/use-undo-redo.d.ts.map +1 -1
  209. package/dist/cjs/hooks/use-undo-redo.js +169 -10
  210. package/dist/cjs/hooks/utils/sort-rows.d.ts.map +1 -1
  211. package/dist/cjs/hooks/utils/sort-rows.js +4 -3
  212. package/dist/cjs/index.d.ts +7 -0
  213. package/dist/cjs/index.d.ts.map +1 -1
  214. package/dist/cjs/index.js +8 -0
  215. package/dist/cjs/interface/apply-fill.d.ts +26 -3
  216. package/dist/cjs/interface/apply-fill.d.ts.map +1 -1
  217. package/dist/cjs/interface/apply-fill.js +207 -98
  218. package/dist/cjs/interface/change-batch.d.ts +1 -1
  219. package/dist/cjs/interface/change-batch.d.ts.map +1 -1
  220. package/dist/cjs/interface/change-batch.js +112 -15
  221. package/dist/cjs/interface/change-calculated-column.d.ts +6 -2
  222. package/dist/cjs/interface/change-calculated-column.d.ts.map +1 -1
  223. package/dist/cjs/interface/change-calculated-column.js +87 -17
  224. package/dist/cjs/interface/change-table-column.d.ts +81 -7
  225. package/dist/cjs/interface/change-table-column.d.ts.map +1 -1
  226. package/dist/cjs/interface/change-table-column.js +336 -76
  227. package/dist/cjs/interface/create-table.d.ts +15 -3
  228. package/dist/cjs/interface/create-table.d.ts.map +1 -1
  229. package/dist/cjs/interface/create-table.js +100 -25
  230. package/dist/cjs/interface/delete-cells-shift-left.d.ts +1 -1
  231. package/dist/cjs/interface/delete-cells-shift-left.d.ts.map +1 -1
  232. package/dist/cjs/interface/delete-cells-shift-left.js +17 -2
  233. package/dist/cjs/interface/delete-cells-shift-up.d.ts +1 -1
  234. package/dist/cjs/interface/delete-cells-shift-up.d.ts.map +1 -1
  235. package/dist/cjs/interface/delete-cells-shift-up.js +17 -2
  236. package/dist/cjs/interface/delete-cells.d.ts +1 -1
  237. package/dist/cjs/interface/delete-cells.d.ts.map +1 -1
  238. package/dist/cjs/interface/delete-cells.js +106 -44
  239. package/dist/cjs/interface/delete-column.d.ts +1 -1
  240. package/dist/cjs/interface/delete-column.d.ts.map +1 -1
  241. package/dist/cjs/interface/delete-column.js +16 -3
  242. package/dist/cjs/interface/delete-row.d.ts +1 -1
  243. package/dist/cjs/interface/delete-row.d.ts.map +1 -1
  244. package/dist/cjs/interface/delete-row.js +230 -19
  245. package/dist/cjs/interface/delete-sheet.d.ts +2 -2
  246. package/dist/cjs/interface/delete-sheet.d.ts.map +1 -1
  247. package/dist/cjs/interface/delete-sheet.js +149 -2
  248. package/dist/cjs/interface/delete-table-column.d.ts +1 -1
  249. package/dist/cjs/interface/delete-table-column.d.ts.map +1 -1
  250. package/dist/cjs/interface/delete-table-column.js +11 -1
  251. package/dist/cjs/interface/delete-table-row.d.ts +1 -1
  252. package/dist/cjs/interface/delete-table-row.d.ts.map +1 -1
  253. package/dist/cjs/interface/delete-table-row.js +361 -275
  254. package/dist/cjs/interface/duplicate-sheet.d.ts.map +1 -1
  255. package/dist/cjs/interface/duplicate-sheet.js +83 -31
  256. package/dist/cjs/interface/embeds.d.ts +10 -1
  257. package/dist/cjs/interface/embeds.d.ts.map +1 -1
  258. package/dist/cjs/interface/embeds.js +120 -6
  259. package/dist/cjs/interface/insert-cells-shift-down.d.ts +1 -1
  260. package/dist/cjs/interface/insert-cells-shift-down.d.ts.map +1 -1
  261. package/dist/cjs/interface/insert-cells-shift-down.js +11 -1
  262. package/dist/cjs/interface/insert-cells-shift-right.d.ts +1 -1
  263. package/dist/cjs/interface/insert-cells-shift-right.d.ts.map +1 -1
  264. package/dist/cjs/interface/insert-cells-shift-right.js +11 -1
  265. package/dist/cjs/interface/insert-column.d.ts +2 -2
  266. package/dist/cjs/interface/insert-column.d.ts.map +1 -1
  267. package/dist/cjs/interface/insert-column.js +68 -38
  268. package/dist/cjs/interface/insert-row.d.ts +1 -1
  269. package/dist/cjs/interface/insert-row.d.ts.map +1 -1
  270. package/dist/cjs/interface/insert-row.js +10 -2
  271. package/dist/cjs/interface/insert-table-row.d.ts +2 -1
  272. package/dist/cjs/interface/insert-table-row.d.ts.map +1 -1
  273. package/dist/cjs/interface/insert-table-row.js +70 -19
  274. package/dist/cjs/interface/remove-duplicates.d.ts +1 -1
  275. package/dist/cjs/interface/remove-duplicates.d.ts.map +1 -1
  276. package/dist/cjs/interface/remove-duplicates.js +46 -6
  277. package/dist/cjs/interface/remove-table.d.ts +1 -1
  278. package/dist/cjs/interface/remove-table.d.ts.map +1 -1
  279. package/dist/cjs/interface/remove-table.js +72 -16
  280. package/dist/cjs/interface/slicers.d.ts +12 -1
  281. package/dist/cjs/interface/slicers.d.ts.map +1 -1
  282. package/dist/cjs/interface/slicers.js +47 -2
  283. package/dist/cjs/interface/spreadsheet-interface.d.ts +1 -1
  284. package/dist/cjs/interface/spreadsheet-interface.d.ts.map +1 -1
  285. package/dist/cjs/interface/spreadsheet-interface.js +64 -1
  286. package/dist/cjs/interface/table-totalrow.d.ts +13 -1
  287. package/dist/cjs/interface/table-totalrow.d.ts.map +1 -1
  288. package/dist/cjs/interface/table-totalrow.js +107 -73
  289. package/dist/cjs/interface/table-utils.d.ts +59 -6
  290. package/dist/cjs/interface/table-utils.d.ts.map +1 -1
  291. package/dist/cjs/interface/table-utils.js +211 -15
  292. package/dist/cjs/interface/update-table.d.ts +16 -1
  293. package/dist/cjs/interface/update-table.d.ts.map +1 -1
  294. package/dist/cjs/interface/update-table.js +190 -44
  295. package/dist/cjs/sheet-cell.d.ts.map +1 -1
  296. package/dist/cjs/test-setup.d.ts.map +1 -1
  297. package/dist/cjs/test-setup.js +6 -0
  298. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  299. package/dist/cjs/validation-schema/table.schema.d.ts +11 -0
  300. package/dist/cjs/validation-schema/table.schema.d.ts.map +1 -1
  301. package/dist/cjs/validation-schema/table.schema.js +20 -3
  302. package/dist/esm/api/anchored-objects.d.ts +131 -7
  303. package/dist/esm/api/anchored-objects.d.ts.map +1 -1
  304. package/dist/esm/api/anchored-objects.js +399 -15
  305. package/dist/esm/api/copy-paste.d.ts +1 -2
  306. package/dist/esm/api/copy-paste.d.ts.map +1 -1
  307. package/dist/esm/api/copy-paste.js +1 -3
  308. package/dist/esm/api/filter.d.ts +15 -1
  309. package/dist/esm/api/filter.d.ts.map +1 -1
  310. package/dist/esm/api/filter.js +28 -0
  311. package/dist/esm/api/formula.d.ts +63 -0
  312. package/dist/esm/api/formula.d.ts.map +1 -1
  313. package/dist/esm/api/formula.js +235 -8
  314. package/dist/esm/api/paint-format.d.ts +22 -1
  315. package/dist/esm/api/paint-format.d.ts.map +1 -1
  316. package/dist/esm/api/paint-format.js +44 -1
  317. package/dist/esm/api/sort.d.ts +23 -1
  318. package/dist/esm/api/sort.d.ts.map +1 -1
  319. package/dist/esm/api/sort.js +45 -6
  320. package/dist/esm/api/structural-guards.d.ts +57 -0
  321. package/dist/esm/api/structural-guards.d.ts.map +1 -1
  322. package/dist/esm/api/structural-guards.js +85 -0
  323. package/dist/esm/api/structural-table-refs.d.ts +58 -3
  324. package/dist/esm/api/structural-table-refs.d.ts.map +1 -1
  325. package/dist/esm/api/structural-table-refs.js +126 -6
  326. package/dist/esm/api/table.d.ts +26 -2
  327. package/dist/esm/api/table.d.ts.map +1 -1
  328. package/dist/esm/api/table.js +70 -48
  329. package/dist/esm/api/validation.d.ts.map +1 -1
  330. package/dist/esm/api/validation.js +53 -8
  331. package/dist/esm/atoms/creating-table.atom.d.ts +22 -0
  332. package/dist/esm/atoms/creating-table.atom.d.ts.map +1 -0
  333. package/dist/esm/atoms/creating-table.atom.js +4 -0
  334. package/dist/esm/atoms/dialog-state.atom.d.ts +8 -0
  335. package/dist/esm/atoms/dialog-state.atom.d.ts.map +1 -1
  336. package/dist/esm/atoms/dialog-state.atom.js +12 -0
  337. package/dist/esm/atoms/editing-slicer.atom.d.ts +9 -0
  338. package/dist/esm/atoms/editing-slicer.atom.d.ts.map +1 -0
  339. package/dist/esm/atoms/editing-slicer.atom.js +6 -0
  340. package/dist/esm/atoms/index.d.ts +4 -0
  341. package/dist/esm/atoms/index.d.ts.map +1 -1
  342. package/dist/esm/atoms/index.js +4 -0
  343. package/dist/esm/atoms/inserting-slicer.atom.d.ts +8 -0
  344. package/dist/esm/atoms/inserting-slicer.atom.d.ts.map +1 -0
  345. package/dist/esm/atoms/inserting-slicer.atom.js +5 -0
  346. package/dist/esm/atoms/resizing-table.atom.d.ts +8 -0
  347. package/dist/esm/atoms/resizing-table.atom.d.ts.map +1 -0
  348. package/dist/esm/atoms/resizing-table.atom.js +5 -0
  349. package/dist/esm/commands.d.ts +129 -2
  350. package/dist/esm/commands.d.ts.map +1 -1
  351. package/dist/esm/components/editors/embed-editor.d.ts +4 -2
  352. package/dist/esm/components/editors/embed-editor.d.ts.map +1 -1
  353. package/dist/esm/components/editors/embed-editor.js +40 -6
  354. package/dist/esm/components/editors/slicer-editor.d.ts +15 -0
  355. package/dist/esm/components/editors/slicer-editor.d.ts.map +1 -0
  356. package/dist/esm/components/editors/slicer-editor.js +85 -0
  357. package/dist/esm/components/editors/table-editor.d.ts +58 -2
  358. package/dist/esm/components/editors/table-editor.d.ts.map +1 -1
  359. package/dist/esm/components/editors/table-editor.js +243 -19
  360. package/dist/esm/components/index.d.ts +1 -0
  361. package/dist/esm/components/index.d.ts.map +1 -1
  362. package/dist/esm/components/index.js +1 -0
  363. package/dist/esm/constants.d.ts +9 -1
  364. package/dist/esm/constants.d.ts.map +1 -1
  365. package/dist/esm/constants.js +12 -0
  366. package/dist/esm/generated-names.d.ts +13 -3
  367. package/dist/esm/generated-names.d.ts.map +1 -1
  368. package/dist/esm/generated-names.js +3 -1
  369. package/dist/esm/helpers.d.ts +5 -0
  370. package/dist/esm/helpers.d.ts.map +1 -1
  371. package/dist/esm/helpers.js +7 -1
  372. package/dist/esm/hooks/use-on-change-batch.d.ts +19 -2
  373. package/dist/esm/hooks/use-on-change-batch.d.ts.map +1 -1
  374. package/dist/esm/hooks/use-on-change-batch.js +19 -3
  375. package/dist/esm/hooks/use-on-change-calculated-column.d.ts +10 -1
  376. package/dist/esm/hooks/use-on-change-calculated-column.d.ts.map +1 -1
  377. package/dist/esm/hooks/use-on-change-calculated-column.js +17 -5
  378. package/dist/esm/hooks/use-on-change-table-column.d.ts +6 -1
  379. package/dist/esm/hooks/use-on-change-table-column.d.ts.map +1 -1
  380. package/dist/esm/hooks/use-on-change-table-column.js +17 -5
  381. package/dist/esm/hooks/use-on-change.d.ts +36 -3
  382. package/dist/esm/hooks/use-on-change.d.ts.map +1 -1
  383. package/dist/esm/hooks/use-on-change.js +214 -124
  384. package/dist/esm/hooks/use-on-create-custom-table-style.d.ts +17 -0
  385. package/dist/esm/hooks/use-on-create-custom-table-style.d.ts.map +1 -0
  386. package/dist/esm/hooks/use-on-create-custom-table-style.js +26 -0
  387. package/dist/esm/hooks/use-on-create-named-range.d.ts +4 -2
  388. package/dist/esm/hooks/use-on-create-named-range.d.ts.map +1 -1
  389. package/dist/esm/hooks/use-on-create-named-range.js +11 -1
  390. package/dist/esm/hooks/use-on-delete-cells-shift-left.d.ts +2 -1
  391. package/dist/esm/hooks/use-on-delete-cells-shift-left.d.ts.map +1 -1
  392. package/dist/esm/hooks/use-on-delete-cells-shift-left.js +3 -1
  393. package/dist/esm/hooks/use-on-delete-cells-shift-up.d.ts +2 -1
  394. package/dist/esm/hooks/use-on-delete-cells-shift-up.d.ts.map +1 -1
  395. package/dist/esm/hooks/use-on-delete-cells-shift-up.js +3 -1
  396. package/dist/esm/hooks/use-on-delete-column.d.ts +2 -1
  397. package/dist/esm/hooks/use-on-delete-column.d.ts.map +1 -1
  398. package/dist/esm/hooks/use-on-delete-column.js +3 -1
  399. package/dist/esm/hooks/use-on-delete-row.d.ts +2 -1
  400. package/dist/esm/hooks/use-on-delete-row.d.ts.map +1 -1
  401. package/dist/esm/hooks/use-on-delete-row.js +3 -1
  402. package/dist/esm/hooks/use-on-delete-sheet.d.ts +10 -1
  403. package/dist/esm/hooks/use-on-delete-sheet.d.ts.map +1 -1
  404. package/dist/esm/hooks/use-on-delete-sheet.js +19 -1
  405. package/dist/esm/hooks/use-on-delete-table-row.d.ts +4 -1
  406. package/dist/esm/hooks/use-on-delete-table-row.d.ts.map +1 -1
  407. package/dist/esm/hooks/use-on-delete-table-row.js +19 -1
  408. package/dist/esm/hooks/use-on-delete.d.ts +5 -2
  409. package/dist/esm/hooks/use-on-delete.d.ts.map +1 -1
  410. package/dist/esm/hooks/use-on-delete.js +5 -1
  411. package/dist/esm/hooks/use-on-embeds.d.ts +7 -4
  412. package/dist/esm/hooks/use-on-embeds.d.ts.map +1 -1
  413. package/dist/esm/hooks/use-on-embeds.js +23 -6
  414. package/dist/esm/hooks/use-on-fill.d.ts +17 -2
  415. package/dist/esm/hooks/use-on-fill.d.ts.map +1 -1
  416. package/dist/esm/hooks/use-on-fill.js +27 -1
  417. package/dist/esm/hooks/use-on-filter-table.d.ts.map +1 -1
  418. package/dist/esm/hooks/use-on-filter-table.js +97 -26
  419. package/dist/esm/hooks/use-on-import-excel.d.ts +2 -1
  420. package/dist/esm/hooks/use-on-import-excel.d.ts.map +1 -1
  421. package/dist/esm/hooks/use-on-import-excel.js +4 -1
  422. package/dist/esm/hooks/use-on-insert-cells-shift-down.d.ts +2 -1
  423. package/dist/esm/hooks/use-on-insert-cells-shift-down.d.ts.map +1 -1
  424. package/dist/esm/hooks/use-on-insert-cells-shift-down.js +3 -1
  425. package/dist/esm/hooks/use-on-insert-cells-shift-right.d.ts +2 -1
  426. package/dist/esm/hooks/use-on-insert-cells-shift-right.d.ts.map +1 -1
  427. package/dist/esm/hooks/use-on-insert-cells-shift-right.js +3 -1
  428. package/dist/esm/hooks/use-on-insert-column.d.ts +2 -1
  429. package/dist/esm/hooks/use-on-insert-column.d.ts.map +1 -1
  430. package/dist/esm/hooks/use-on-insert-column.js +3 -1
  431. package/dist/esm/hooks/use-on-insert-row.d.ts +2 -1
  432. package/dist/esm/hooks/use-on-insert-row.d.ts.map +1 -1
  433. package/dist/esm/hooks/use-on-insert-row.js +3 -1
  434. package/dist/esm/hooks/use-on-insert-table-row.d.ts +5 -2
  435. package/dist/esm/hooks/use-on-insert-table-row.d.ts.map +1 -1
  436. package/dist/esm/hooks/use-on-insert-table-row.js +19 -1
  437. package/dist/esm/hooks/use-on-merge-unmerge-cells.d.ts +3 -2
  438. package/dist/esm/hooks/use-on-merge-unmerge-cells.d.ts.map +1 -1
  439. package/dist/esm/hooks/use-on-merge-unmerge-cells.js +12 -1
  440. package/dist/esm/hooks/use-on-move-columns.d.ts +3 -1
  441. package/dist/esm/hooks/use-on-move-columns.d.ts.map +1 -1
  442. package/dist/esm/hooks/use-on-move-columns.js +14 -1
  443. package/dist/esm/hooks/use-on-move-rows.d.ts +3 -1
  444. package/dist/esm/hooks/use-on-move-rows.d.ts.map +1 -1
  445. package/dist/esm/hooks/use-on-move-rows.js +14 -1
  446. package/dist/esm/hooks/use-on-move-selection.d.ts +3 -1
  447. package/dist/esm/hooks/use-on-move-selection.d.ts.map +1 -1
  448. package/dist/esm/hooks/use-on-move-selection.js +44 -1
  449. package/dist/esm/hooks/use-on-paste.d.ts +22 -1
  450. package/dist/esm/hooks/use-on-paste.d.ts.map +1 -1
  451. package/dist/esm/hooks/use-on-paste.js +815 -672
  452. package/dist/esm/hooks/use-on-remove-duplicates.d.ts +5 -2
  453. package/dist/esm/hooks/use-on-remove-duplicates.d.ts.map +1 -1
  454. package/dist/esm/hooks/use-on-remove-duplicates.js +5 -1
  455. package/dist/esm/hooks/use-on-request-create-table.d.ts +13 -0
  456. package/dist/esm/hooks/use-on-request-create-table.d.ts.map +1 -0
  457. package/dist/esm/hooks/use-on-request-create-table.js +43 -0
  458. package/dist/esm/hooks/use-on-request-insert-slicer.d.ts +7 -0
  459. package/dist/esm/hooks/use-on-request-insert-slicer.d.ts.map +1 -0
  460. package/dist/esm/hooks/use-on-request-insert-slicer.js +15 -0
  461. package/dist/esm/hooks/use-on-request-resize-table.d.ts +7 -0
  462. package/dist/esm/hooks/use-on-request-resize-table.d.ts.map +1 -0
  463. package/dist/esm/hooks/use-on-request-resize-table.js +15 -0
  464. package/dist/esm/hooks/use-on-resize-table.d.ts +5 -1
  465. package/dist/esm/hooks/use-on-resize-table.d.ts.map +1 -1
  466. package/dist/esm/hooks/use-on-resize-table.js +107 -27
  467. package/dist/esm/hooks/use-on-sort-column.d.ts +28 -3
  468. package/dist/esm/hooks/use-on-sort-column.d.ts.map +1 -1
  469. package/dist/esm/hooks/use-on-sort-column.js +105 -68
  470. package/dist/esm/hooks/use-on-sort-range.d.ts +26 -3
  471. package/dist/esm/hooks/use-on-sort-range.d.ts.map +1 -1
  472. package/dist/esm/hooks/use-on-sort-range.js +100 -64
  473. package/dist/esm/hooks/use-on-sort-table.d.ts +18 -1
  474. package/dist/esm/hooks/use-on-sort-table.d.ts.map +1 -1
  475. package/dist/esm/hooks/use-on-sort-table.js +107 -86
  476. package/dist/esm/hooks/use-on-subtotal.d.ts +10 -3
  477. package/dist/esm/hooks/use-on-subtotal.d.ts.map +1 -1
  478. package/dist/esm/hooks/use-on-subtotal.js +7 -5
  479. package/dist/esm/hooks/use-on-table.d.ts +39 -7
  480. package/dist/esm/hooks/use-on-table.d.ts.map +1 -1
  481. package/dist/esm/hooks/use-on-table.js +234 -26
  482. package/dist/esm/hooks/use-on-undo-calculated-column.d.ts +23 -0
  483. package/dist/esm/hooks/use-on-undo-calculated-column.d.ts.map +1 -0
  484. package/dist/esm/hooks/use-on-undo-calculated-column.js +62 -0
  485. package/dist/esm/hooks/use-on-undo-table-auto-expansion.d.ts +28 -0
  486. package/dist/esm/hooks/use-on-undo-table-auto-expansion.d.ts.map +1 -0
  487. package/dist/esm/hooks/use-on-undo-table-auto-expansion.js +75 -0
  488. package/dist/esm/hooks/use-on-update-named-range.d.ts +4 -2
  489. package/dist/esm/hooks/use-on-update-named-range.d.ts.map +1 -1
  490. package/dist/esm/hooks/use-on-update-named-range.js +13 -1
  491. package/dist/esm/hooks/use-sheet-properties.d.ts +1 -0
  492. package/dist/esm/hooks/use-sheet-properties.d.ts.map +1 -1
  493. package/dist/esm/hooks/use-sheet-properties.js +38 -19
  494. package/dist/esm/hooks/use-slicers.d.ts +2 -2
  495. package/dist/esm/hooks/use-slicers.d.ts.map +1 -1
  496. package/dist/esm/hooks/use-slicers.js +16 -8
  497. package/dist/esm/hooks/use-sparkline-groups.d.ts +50 -0
  498. package/dist/esm/hooks/use-sparkline-groups.d.ts.map +1 -0
  499. package/dist/esm/hooks/use-sparkline-groups.js +146 -0
  500. package/dist/esm/hooks/use-spreadsheet-state.d.ts +56 -10
  501. package/dist/esm/hooks/use-spreadsheet-state.d.ts.map +1 -1
  502. package/dist/esm/hooks/use-spreadsheet-state.js +260 -30
  503. package/dist/esm/hooks/use-structured-reference.d.ts.map +1 -1
  504. package/dist/esm/hooks/use-structured-reference.js +17 -0
  505. package/dist/esm/hooks/use-undo-redo-actions.d.ts +2 -1
  506. package/dist/esm/hooks/use-undo-redo-actions.d.ts.map +1 -1
  507. package/dist/esm/hooks/use-undo-redo-actions.js +8 -2
  508. package/dist/esm/hooks/use-undo-redo.d.ts +12 -0
  509. package/dist/esm/hooks/use-undo-redo.d.ts.map +1 -1
  510. package/dist/esm/hooks/use-undo-redo.js +158 -7
  511. package/dist/esm/hooks/utils/sort-rows.d.ts.map +1 -1
  512. package/dist/esm/hooks/utils/sort-rows.js +4 -3
  513. package/dist/esm/index.d.ts +7 -0
  514. package/dist/esm/index.d.ts.map +1 -1
  515. package/dist/esm/index.js +8 -0
  516. package/dist/esm/interface/apply-fill.d.ts +26 -3
  517. package/dist/esm/interface/apply-fill.d.ts.map +1 -1
  518. package/dist/esm/interface/apply-fill.js +188 -88
  519. package/dist/esm/interface/change-batch.d.ts +1 -1
  520. package/dist/esm/interface/change-batch.d.ts.map +1 -1
  521. package/dist/esm/interface/change-batch.js +89 -8
  522. package/dist/esm/interface/change-calculated-column.d.ts +6 -2
  523. package/dist/esm/interface/change-calculated-column.d.ts.map +1 -1
  524. package/dist/esm/interface/change-calculated-column.js +81 -16
  525. package/dist/esm/interface/change-table-column.d.ts +81 -7
  526. package/dist/esm/interface/change-table-column.d.ts.map +1 -1
  527. package/dist/esm/interface/change-table-column.js +295 -67
  528. package/dist/esm/interface/create-table.d.ts +15 -3
  529. package/dist/esm/interface/create-table.d.ts.map +1 -1
  530. package/dist/esm/interface/create-table.js +103 -27
  531. package/dist/esm/interface/delete-cells-shift-left.d.ts +1 -1
  532. package/dist/esm/interface/delete-cells-shift-left.d.ts.map +1 -1
  533. package/dist/esm/interface/delete-cells-shift-left.js +17 -2
  534. package/dist/esm/interface/delete-cells-shift-up.d.ts +1 -1
  535. package/dist/esm/interface/delete-cells-shift-up.d.ts.map +1 -1
  536. package/dist/esm/interface/delete-cells-shift-up.js +17 -2
  537. package/dist/esm/interface/delete-cells.d.ts +1 -1
  538. package/dist/esm/interface/delete-cells.d.ts.map +1 -1
  539. package/dist/esm/interface/delete-cells.js +69 -30
  540. package/dist/esm/interface/delete-column.d.ts +1 -1
  541. package/dist/esm/interface/delete-column.d.ts.map +1 -1
  542. package/dist/esm/interface/delete-column.js +16 -3
  543. package/dist/esm/interface/delete-row.d.ts +1 -1
  544. package/dist/esm/interface/delete-row.d.ts.map +1 -1
  545. package/dist/esm/interface/delete-row.js +180 -16
  546. package/dist/esm/interface/delete-sheet.d.ts +2 -2
  547. package/dist/esm/interface/delete-sheet.d.ts.map +1 -1
  548. package/dist/esm/interface/delete-sheet.js +132 -1
  549. package/dist/esm/interface/delete-table-column.d.ts +1 -1
  550. package/dist/esm/interface/delete-table-column.d.ts.map +1 -1
  551. package/dist/esm/interface/delete-table-column.js +11 -1
  552. package/dist/esm/interface/delete-table-row.d.ts +1 -1
  553. package/dist/esm/interface/delete-table-row.d.ts.map +1 -1
  554. package/dist/esm/interface/delete-table-row.js +312 -232
  555. package/dist/esm/interface/duplicate-sheet.d.ts.map +1 -1
  556. package/dist/esm/interface/duplicate-sheet.js +73 -26
  557. package/dist/esm/interface/embeds.d.ts +10 -1
  558. package/dist/esm/interface/embeds.d.ts.map +1 -1
  559. package/dist/esm/interface/embeds.js +84 -5
  560. package/dist/esm/interface/insert-cells-shift-down.d.ts +1 -1
  561. package/dist/esm/interface/insert-cells-shift-down.d.ts.map +1 -1
  562. package/dist/esm/interface/insert-cells-shift-down.js +11 -1
  563. package/dist/esm/interface/insert-cells-shift-right.d.ts +1 -1
  564. package/dist/esm/interface/insert-cells-shift-right.d.ts.map +1 -1
  565. package/dist/esm/interface/insert-cells-shift-right.js +11 -1
  566. package/dist/esm/interface/insert-column.d.ts +2 -2
  567. package/dist/esm/interface/insert-column.d.ts.map +1 -1
  568. package/dist/esm/interface/insert-column.js +49 -23
  569. package/dist/esm/interface/insert-row.d.ts +1 -1
  570. package/dist/esm/interface/insert-row.d.ts.map +1 -1
  571. package/dist/esm/interface/insert-row.js +10 -2
  572. package/dist/esm/interface/insert-table-row.d.ts +2 -1
  573. package/dist/esm/interface/insert-table-row.d.ts.map +1 -1
  574. package/dist/esm/interface/insert-table-row.js +67 -12
  575. package/dist/esm/interface/remove-duplicates.d.ts +1 -1
  576. package/dist/esm/interface/remove-duplicates.d.ts.map +1 -1
  577. package/dist/esm/interface/remove-duplicates.js +41 -6
  578. package/dist/esm/interface/remove-table.d.ts +1 -1
  579. package/dist/esm/interface/remove-table.d.ts.map +1 -1
  580. package/dist/esm/interface/remove-table.js +58 -10
  581. package/dist/esm/interface/slicers.d.ts +12 -1
  582. package/dist/esm/interface/slicers.d.ts.map +1 -1
  583. package/dist/esm/interface/slicers.js +44 -2
  584. package/dist/esm/interface/spreadsheet-interface.d.ts +1 -1
  585. package/dist/esm/interface/spreadsheet-interface.d.ts.map +1 -1
  586. package/dist/esm/interface/spreadsheet-interface.js +73 -1
  587. package/dist/esm/interface/table-totalrow.d.ts +13 -1
  588. package/dist/esm/interface/table-totalrow.d.ts.map +1 -1
  589. package/dist/esm/interface/table-totalrow.js +98 -68
  590. package/dist/esm/interface/table-utils.d.ts +59 -6
  591. package/dist/esm/interface/table-utils.d.ts.map +1 -1
  592. package/dist/esm/interface/table-utils.js +155 -14
  593. package/dist/esm/interface/update-table.d.ts +16 -1
  594. package/dist/esm/interface/update-table.d.ts.map +1 -1
  595. package/dist/esm/interface/update-table.js +203 -42
  596. package/dist/esm/sheet-cell.d.ts.map +1 -1
  597. package/dist/esm/test-setup.d.ts.map +1 -1
  598. package/dist/esm/test-setup.js +6 -0
  599. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  600. package/dist/esm/validation-schema/table.schema.d.ts +11 -0
  601. package/dist/esm/validation-schema/table.schema.d.ts.map +1 -1
  602. package/dist/esm/validation-schema/table.schema.js +15 -2
  603. package/package.json +19 -11
@@ -1,11 +1,38 @@
1
- import { lexify, tokenVocabulary, } from "@rowsncolumns/calculator";
1
+ import { tokenVocabulary, } from "@rowsncolumns/calculator";
2
2
  import { Direction } from "@rowsncolumns/common-types";
3
- import { isAFormula, isCellWithinBounds, isNil, iterateCellsInRange, } from "@rowsncolumns/utils";
3
+ import { areaIntersects, isAFormula, isCellWithinBounds, isNil, iterateCellsInRange, } from "@rowsncolumns/utils";
4
4
  import { SheetCell } from "../sheet-cell";
5
5
  import { detokenize } from "./formula";
6
6
  import { moveFilterView, moveRange } from "./selection";
7
7
  const isTableColumnToken = (token) => token.tokenType.name === tokenVocabulary.TableColumnName.name;
8
8
  const isTableNameToken = (token) => token.tokenType.name === tokenVocabulary.TableName.name;
9
+ /**
10
+ * Excel's default for the Create Table dialog's "My table has headers": checked when the
11
+ * range's first row reads as a header row — it holds at least one value, every value in it is
12
+ * text (a number or boolean there means the data starts on the first row), and at least one row
13
+ * of data lies below it. A single-row range defaults to unchecked.
14
+ */
15
+ export const guessTableHasHeaders = ({ sheetId, range, getEffectiveExtendedValue, }) => {
16
+ if (range.endRowIndex <= range.startRowIndex) {
17
+ return false;
18
+ }
19
+ let sawText = false;
20
+ for (let columnIndex = range.startColumnIndex; columnIndex <= range.endColumnIndex; columnIndex++) {
21
+ const value = getEffectiveExtendedValue(sheetId, range.startRowIndex, columnIndex);
22
+ if (!value) {
23
+ continue;
24
+ }
25
+ if (!isNil(value.nv ?? value.numberValue) ||
26
+ !isNil(value.bv ?? value.boolValue)) {
27
+ return false;
28
+ }
29
+ const text = value.sv ?? value.stringValue;
30
+ if (!isNil(text) && text !== "") {
31
+ sawText = true;
32
+ }
33
+ }
34
+ return sawText;
35
+ };
9
36
  /**
10
37
  * Get table column index
11
38
  * @param sheetId
@@ -63,14 +90,22 @@ export const findAdjacentTable = (sheetId, cell, tables, getUserEnteredValue) =>
63
90
  endColumnIndex: cell.columnIndex,
64
91
  }),
65
92
  };
93
+ // Excel never merges tables: a line that belongs to another table is not free to grow over.
94
+ if (tables?.some((other) => other.id !== table.id &&
95
+ other.sheetId === sheetId &&
96
+ areaIntersects(other.range, lookupRange))) {
97
+ return false;
98
+ }
66
99
  return (isAdjacent &&
67
100
  [...iterateCellsInRange(lookupRange)].every(([rowIndex, columnIndex]) => {
68
101
  return isNil(getUserEnteredValue(sheetId, rowIndex, columnIndex));
69
102
  }));
70
103
  });
71
- const totalRowOffset = adjacentTable?.totalRow ? 1 : 0;
104
+ // A table with a totals row never grows by rows (Excel): the cell right of its totals row is
105
+ // a column expansion only.
72
106
  const isRowExpansion = adjacentTable
73
- ? adjacentTable.range.endRowIndex + 1 - totalRowOffset === cell.rowIndex
107
+ ? adjacentTable.range.endRowIndex + 1 === cell.rowIndex &&
108
+ !adjacentTable.totalRow
74
109
  : false;
75
110
  const isColumnExpansion = adjacentTable
76
111
  ? adjacentTable.range.endColumnIndex + 1 === cell.columnIndex
@@ -122,62 +157,49 @@ export const findAdjacentBandedRange = (sheetId, cell, bandedRanges, getUserEnte
122
157
  : false;
123
158
  return [adjacentTable, isRowExpansion, isColumnExpansion];
124
159
  };
125
- // Check if table cells are fillable
126
- export const isTableColumnCellsFillable = (sheetId, range, excludeCell, existingColumnFormula, currentValue, activeSheetName, getUserEnteredValue) => {
127
- const normalizedExistingFormula = normalizeFormulaString(existingColumnFormula);
128
- const normalizedCurrentFormula = isAFormula(currentValue)
129
- ? normalizeFormulaString(currentValue)
130
- : undefined;
131
- const templateFormula = normalizedExistingFormula ?? normalizedCurrentFormula;
132
- if (!templateFormula) {
133
- return false;
134
- }
135
- const normalizedTemplate = SheetCell.getRelativeFormula(templateFormula, excludeCell, excludeCell, activeSheetName) ?? templateFormula;
136
- const templateHasReferences = formulaHasCellReferences(templateFormula);
137
- const isAnchorCell = excludeCell.rowIndex === range.startRowIndex &&
138
- excludeCell.columnIndex === range.startColumnIndex;
139
- const normalizedCurrentLiteral = normalizeFormulaString(typeof currentValue === "string" ? currentValue : undefined);
140
- if (normalizedExistingFormula && !templateHasReferences) {
160
+ /**
161
+ * Excel's calculated-column fill decision, shared with the Rust engine's
162
+ * `auto_fill_calculated_column` (rowsncolumns/spreadsheet#681): a formula just
163
+ * written into a table body cell fills the whole column when every OTHER body
164
+ * cell of that column is either empty (a fresh column) or holds the same
165
+ * formula relative to its row (a consistent calculated column, which the new
166
+ * formula overwrites). A literal anywhere, or two rows that disagree, leave
167
+ * the edit a one-cell exception. The column's cells are the reference — not
168
+ * the formula recorded on `columns[].formula`, which has no row of its own —
169
+ * so the overwrite works from any row, not only the one the column was
170
+ * created from (#668 T-50). A consistent column is a calculated column
171
+ * whatever its formula references (`=TODAY()`, `=1`), like Excel (#668 T-29).
172
+ */
173
+ export const isTableColumnCellsFillable = (sheetId, range, excludeCell, currentValue, activeSheetName, getUserEnteredValue) => {
174
+ if (!isAFormula(currentValue)) {
141
175
  return false;
142
176
  }
143
- return [...iterateCellsInRange(range)].every(([rowIndex, columnIndex]) => {
177
+ // The column's existing formula, relativised to the edited cell — every
178
+ // non-empty body cell must agree on it.
179
+ let existingTemplate;
180
+ for (const [rowIndex, columnIndex] of iterateCellsInRange(range)) {
144
181
  if (rowIndex === excludeCell.rowIndex &&
145
182
  columnIndex === excludeCell.columnIndex) {
146
- return true;
183
+ continue;
147
184
  }
148
185
  const userEnteredValue = getUserEnteredValue(sheetId, rowIndex, columnIndex);
149
186
  if (isNil(userEnteredValue) || userEnteredValue === "") {
150
- return true;
187
+ continue;
151
188
  }
152
189
  if (!isAFormula(userEnteredValue)) {
153
190
  return false;
154
191
  }
155
- const relativeFormula = SheetCell.getRelativeFormula(userEnteredValue, { rowIndex, columnIndex }, excludeCell, activeSheetName);
156
- const comparable = relativeFormula ?? userEnteredValue;
157
- return normalizedTemplate === comparable;
158
- });
159
- };
160
- const formulaHasCellReferences = (formula) => {
161
- if (!formula || typeof formula !== "string" || !formula.startsWith("=")) {
162
- return false;
163
- }
164
- const { tokens } = lexify(formula);
165
- return tokens.some((token) => CELL_REFERENCE_TOKEN_NAMES.has(token.tokenType.name));
166
- };
167
- const CELL_REFERENCE_TOKEN_NAMES = new Set([
168
- tokenVocabulary.Cell?.name,
169
- tokenVocabulary.Column?.name,
170
- tokenVocabulary.TableColumnName?.name,
171
- ].filter((tokenName) => Boolean(tokenName)));
172
- const normalizeFormulaString = (value) => {
173
- if (typeof value !== "string") {
174
- return undefined;
175
- }
176
- const trimmed = value.trim();
177
- if (!trimmed) {
178
- return undefined;
192
+ // `$`-anchored references stay put from row to row (Excel), so they must
193
+ // not be shifted for the comparison.
194
+ const relativeFormula = SheetCell.getRelativeFormula(userEnteredValue, { rowIndex, columnIndex }, excludeCell, activeSheetName, undefined, false, undefined, undefined, true) ?? userEnteredValue;
195
+ if (existingTemplate === undefined) {
196
+ existingTemplate = relativeFormula;
197
+ }
198
+ else if (existingTemplate !== relativeFormula) {
199
+ return false;
200
+ }
179
201
  }
180
- return trimmed.startsWith("=") ? trimmed : `=${trimmed}`;
202
+ return true;
181
203
  };
182
204
  // Add table name to formula
183
205
  export const addTableNameToTokens = (tokens, title) => {
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../api/validation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAiBpF,KAAK,mBAAmB,GACpB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,IAAI,GACJ,SAAS,GACT;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAoBxC,eAAO,MAAM,qBAAqB,GAAI,OAAO,MAAM,SA6BlD,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,OAAO,kBAAkB,GAAG,SAAS,EACrC,QAAQ,mBAAmB,EAC3B,gBAAgB,mBAAmB,EACnC,iBAAiB,CAAC,OAAO,EAAE,MAAM,KAAK,cAAc,EAAE,EACtD,UAAU,uBAAuB,wBAsTlC,CAAC"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../api/validation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAkBpF,KAAK,mBAAmB,GACpB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,IAAI,GACJ,SAAS,GACT;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAoBxC,eAAO,MAAM,qBAAqB,GAAI,OAAO,MAAM,SA6BlD,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,OAAO,kBAAkB,GAAG,SAAS,EACrC,QAAQ,mBAAmB,EAC3B,gBAAgB,mBAAmB,EACnC,iBAAiB,CAAC,OAAO,EAAE,MAAM,KAAK,cAAc,EAAE,EACtD,UAAU,uBAAuB,wBA2WlC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { checkIfStringIsReference, escapeCharacters, isNil, stripDataValidationTextPrefix, toDate, toSerial, } from "@rowsncolumns/utils";
1
+ import { checkIfStringIsReference, escapeCharacters, isNil, matchesWildcardPattern, stripDataValidationTextPrefix, toDate, toSerial, } from "@rowsncolumns/utils";
2
2
  import { convertToNumber } from "./datatype";
3
3
  const EMAIL_REGEX = /(?:[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/;
4
4
  const URL_REGEX = /^https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)$/;
@@ -144,6 +144,33 @@ export const checkBooleanRule = (rule, value, previousValue, getRangeValues, opt
144
144
  const end = new Date(today.getFullYear(), today.getMonth() + 2, 0);
145
145
  return { start: startOfDay(start), end: endOfDay(end) };
146
146
  }
147
+ // Calendar quarters / years, like Excel's Date Filters. `new Date` rolls a
148
+ // month index past December (or before January) into the adjacent year.
149
+ case "DATE_THIS_QUARTER":
150
+ case "DATE_LAST_QUARTER":
151
+ case "DATE_NEXT_QUARTER": {
152
+ const shift = type === "DATE_LAST_QUARTER" ? -3 : type === "DATE_NEXT_QUARTER" ? 3 : 0;
153
+ const firstMonth = Math.floor(today.getMonth() / 3) * 3 + shift;
154
+ const start = new Date(today.getFullYear(), firstMonth, 1);
155
+ const end = new Date(today.getFullYear(), firstMonth + 3, 0);
156
+ return { start: startOfDay(start), end: endOfDay(end) };
157
+ }
158
+ case "DATE_THIS_YEAR":
159
+ case "DATE_LAST_YEAR":
160
+ case "DATE_NEXT_YEAR": {
161
+ const year = today.getFullYear() +
162
+ (type === "DATE_LAST_YEAR" ? -1 : type === "DATE_NEXT_YEAR" ? 1 : 0);
163
+ return {
164
+ start: startOfDay(new Date(year, 0, 1)),
165
+ end: endOfDay(new Date(year, 11, 31)),
166
+ };
167
+ }
168
+ case "DATE_YEAR_TO_DATE": {
169
+ return {
170
+ start: startOfDay(new Date(today.getFullYear(), 0, 1)),
171
+ end: endOfDay(today),
172
+ };
173
+ }
147
174
  default:
148
175
  return undefined;
149
176
  }
@@ -159,9 +186,20 @@ export const checkBooleanRule = (rule, value, previousValue, getRangeValues, opt
159
186
  const { type, values } = condition;
160
187
  const valuesArray = values ?? [];
161
188
  const firstValue = valuesArray[0] ?? { userEnteredValue: "" };
189
+ // "All Dates in the Period" (`DATE_IN_Q1`..`Q4`, `DATE_IN_M1`..`M12`): the
190
+ // cell's quarter / month in any year.
191
+ const periodMatch = /^DATE_IN_([QM])(\d+)$/.exec(type);
192
+ if (periodMatch) {
193
+ const dateValue = toComparableDate(value);
194
+ if (!dateValue)
195
+ return false;
196
+ const month = dateValue.getMonth() + 1;
197
+ const period = periodMatch[1] === "Q" ? Math.ceil(month / 3) : month;
198
+ return period === Number(periodMatch[2]);
199
+ }
162
200
  switch (type) {
163
201
  case "TEXT_EQ":
164
- return new RegExp("^" + escapeCharacters(firstValue.userEnteredValue) + "$", "gi").test(String(value));
202
+ return matchesWildcardPattern(firstValue.userEnteredValue, String(value), "equals");
165
203
  case "BLANK":
166
204
  return value === "" || isNil(value);
167
205
  case "BOOLEAN":
@@ -205,17 +243,17 @@ export const checkBooleanRule = (rule, value, previousValue, getRangeValues, opt
205
243
  case "NUMBER_NOT_EQ":
206
244
  return parseNumber(value) !== parseNumber(firstValue.userEnteredValue);
207
245
  case "TEXT_CONTAINS":
208
- return new RegExp(escapeCharacters(firstValue.userEnteredValue), "gi").test(String(value));
246
+ return matchesWildcardPattern(firstValue.userEnteredValue, String(value), "contains");
209
247
  case "TEXT_ENDS_WITH":
210
- return new RegExp(escapeCharacters(firstValue.userEnteredValue) + "$", "gi").test(String(value));
248
+ return matchesWildcardPattern(firstValue.userEnteredValue, String(value), "endsWith");
211
249
  case "TEXT_NOT_CONTAINS":
212
- return !new RegExp(escapeCharacters(firstValue.userEnteredValue), "gi").test(String(value));
250
+ return !matchesWildcardPattern(firstValue.userEnteredValue, String(value), "contains");
213
251
  case "NOT_BLANK":
214
252
  return !(isNil(value) || value === "");
215
253
  case "TEXT_NOT_EQ":
216
- return !new RegExp(escapeCharacters(firstValue.userEnteredValue), "gi").test(String(value));
254
+ return !matchesWildcardPattern(firstValue.userEnteredValue, String(value), "equals");
217
255
  case "TEXT_STARTS_WITH":
218
- return new RegExp("^" + escapeCharacters(firstValue.userEnteredValue), "gi").test(String(value));
256
+ return matchesWildcardPattern(firstValue.userEnteredValue, String(value), "startsWith");
219
257
  case "ONE_OF_RANGE":
220
258
  case "ONE_OF_LIST": {
221
259
  if (allowBlank && !value) {
@@ -258,7 +296,14 @@ export const checkBooleanRule = (rule, value, previousValue, getRangeValues, opt
258
296
  case "DATE_NEXT_WEEK":
259
297
  case "DATE_LAST_MONTH":
260
298
  case "DATE_THIS_MONTH":
261
- case "DATE_NEXT_MONTH": {
299
+ case "DATE_NEXT_MONTH":
300
+ case "DATE_THIS_QUARTER":
301
+ case "DATE_LAST_QUARTER":
302
+ case "DATE_NEXT_QUARTER":
303
+ case "DATE_THIS_YEAR":
304
+ case "DATE_LAST_YEAR":
305
+ case "DATE_NEXT_YEAR":
306
+ case "DATE_YEAR_TO_DATE": {
262
307
  const dateValue = toComparableDate(value);
263
308
  if (!dateValue)
264
309
  return false;
@@ -0,0 +1,22 @@
1
+ import type { CellInterface, GridRange, SelectionArea } from "@rowsncolumns/common-types";
2
+ import type { BandedDefinition, SelectionAttributes, TableTheme } from "@rowsncolumns/spreadsheet";
3
+ /**
4
+ * What the Create Table dialog was opened for: the selection it came from, the range it
5
+ * pre-fills (the selection, else the data region around the active cell), Excel's guess for
6
+ * "My table has headers", and the style the entry point chose (Format as Table / context menu).
7
+ */
8
+ export type CreateTableRequest = {
9
+ sheetId: number;
10
+ activeCell: CellInterface;
11
+ selections: SelectionArea<SelectionAttributes>[];
12
+ range: GridRange;
13
+ hasHeaders: boolean;
14
+ theme?: TableTheme;
15
+ bandedRange?: BandedDefinition;
16
+ };
17
+ export declare const creatingTableAtom: import("jotai").PrimitiveAtom<CreateTableRequest | undefined> & {
18
+ init: CreateTableRequest | undefined;
19
+ };
20
+ export declare const useCreatingTable: () => CreateTableRequest | undefined;
21
+ export declare const useSetCreatingTable: () => (args_0: CreateTableRequest | ((prev: CreateTableRequest | undefined) => CreateTableRequest | undefined) | undefined) => void;
22
+ //# sourceMappingURL=creating-table.atom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"creating-table.atom.d.ts","sourceRoot":"","sources":["../../../atoms/creating-table.atom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,SAAS,EACT,aAAa,EACd,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EACnB,UAAU,EACX,MAAM,2BAA2B,CAAC;AAGnC;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,aAAa,CAAC;IAC1B,UAAU,EAAE,aAAa,CAAC,mBAAmB,CAAC,EAAE,CAAC;IACjD,KAAK,EAAE,SAAS,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC,CAAC;AAEF,eAAO,MAAM,iBAAiB;;CAE7B,CAAC;AAEF,eAAO,MAAM,gBAAgB,sCAAwC,CAAC;AACtE,eAAO,MAAM,mBAAmB,qIAAsC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { atom, useAtomValue, useSetAtom } from "jotai";
2
+ export const creatingTableAtom = atom(undefined);
3
+ export const useCreatingTable = () => useAtomValue(creatingTableAtom);
4
+ export const useSetCreatingTable = () => useSetAtom(creatingTableAtom);
@@ -3,6 +3,14 @@ export declare const dialogStateAtom: import("jotai/vanilla/utils/atomFamily").A
3
3
  }>;
4
4
  export declare const useEditTableDialogState: () => [boolean, (args_0: boolean | ((prev: boolean) => boolean)) => void];
5
5
  export declare const useSetEditTableDialogValue: () => (args_0: boolean | ((prev: boolean) => boolean)) => void;
6
+ export declare const useCreateTableDialogState: () => [boolean, (args_0: boolean | ((prev: boolean) => boolean)) => void];
7
+ export declare const useSetCreateTableDialogValue: () => (args_0: boolean | ((prev: boolean) => boolean)) => void;
8
+ export declare const useResizeTableDialogState: () => [boolean, (args_0: boolean | ((prev: boolean) => boolean)) => void];
9
+ export declare const useSetResizeTableDialogValue: () => (args_0: boolean | ((prev: boolean) => boolean)) => void;
10
+ export declare const useInsertSlicerDialogState: () => [boolean, (args_0: boolean | ((prev: boolean) => boolean)) => void];
11
+ export declare const useSetInsertSlicerDialogValue: () => (args_0: boolean | ((prev: boolean) => boolean)) => void;
12
+ export declare const useEditSlicerDialogState: () => [boolean, (args_0: boolean | ((prev: boolean) => boolean)) => void];
13
+ export declare const useSetEditSlicerDialogState: () => (args_0: boolean | ((prev: boolean) => boolean)) => void;
6
14
  export declare const useDeletSheetConfirmationDialogState: () => [boolean, (args_0: boolean | ((prev: boolean) => boolean)) => void];
7
15
  export declare const useEditNamedRangeDialogState: () => [boolean, (args_0: boolean | ((prev: boolean) => boolean)) => void];
8
16
  export declare const useSetEditNamedRangeDialogState: () => (args_0: boolean | ((prev: boolean) => boolean)) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"dialog-state.atom.d.ts","sourceRoot":"","sources":["../../../atoms/dialog-state.atom.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,eAAe;;EAAyC,CAAC;AAGtE,eAAO,MAAM,uBAAuB,2EACG,CAAC;AAExC,eAAO,MAAM,0BAA0B,gEACG,CAAC;AAG3C,eAAO,MAAM,oCAAoC,2EACR,CAAC;AAG1C,eAAO,MAAM,4BAA4B,2EACG,CAAC;AAE7C,eAAO,MAAM,+BAA+B,gEACG,CAAC;AAGhD,eAAO,MAAM,uBAAuB,2EACG,CAAC;AAExC,eAAO,MAAM,0BAA0B,gEACG,CAAC;AAG3C,eAAO,MAAM,6BAA6B,2EACG,CAAC;AAE9C,eAAO,MAAM,gCAAgC,gEACG,CAAC;AAGjD,eAAO,MAAM,yBAAyB,2EACG,CAAC;AAE1C,eAAO,MAAM,4BAA4B,gEACG,CAAC;AAG7C,eAAO,MAAM,+BAA+B,2EACG,CAAC;AAEhD,eAAO,MAAM,kCAAkC,gEACG,CAAC;AAGnD,eAAO,MAAM,yBAAyB,2EACG,CAAC;AAE1C,eAAO,MAAM,4BAA4B,gEACG,CAAC;AAG7C,eAAO,MAAM,wBAAwB,2EACG,CAAC;AAEzC,eAAO,MAAM,2BAA2B,gEACG,CAAC;AAG5C,eAAO,MAAM,4BAA4B,2EACG,CAAC;AAE7C,eAAO,MAAM,gCAAgC,gEACE,CAAC"}
1
+ {"version":3,"file":"dialog-state.atom.d.ts","sourceRoot":"","sources":["../../../atoms/dialog-state.atom.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,eAAe;;EAAyC,CAAC;AAGtE,eAAO,MAAM,uBAAuB,2EACG,CAAC;AAExC,eAAO,MAAM,0BAA0B,gEACG,CAAC;AAG3C,eAAO,MAAM,yBAAyB,2EACG,CAAC;AAE1C,eAAO,MAAM,4BAA4B,gEACG,CAAC;AAG7C,eAAO,MAAM,yBAAyB,2EACG,CAAC;AAE1C,eAAO,MAAM,4BAA4B,gEACG,CAAC;AAG7C,eAAO,MAAM,0BAA0B,2EACG,CAAC;AAE3C,eAAO,MAAM,6BAA6B,gEACG,CAAC;AAG9C,eAAO,MAAM,wBAAwB,2EACG,CAAC;AAEzC,eAAO,MAAM,2BAA2B,gEACG,CAAC;AAG5C,eAAO,MAAM,oCAAoC,2EACR,CAAC;AAG1C,eAAO,MAAM,4BAA4B,2EACG,CAAC;AAE7C,eAAO,MAAM,+BAA+B,gEACG,CAAC;AAGhD,eAAO,MAAM,uBAAuB,2EACG,CAAC;AAExC,eAAO,MAAM,0BAA0B,gEACG,CAAC;AAG3C,eAAO,MAAM,6BAA6B,2EACG,CAAC;AAE9C,eAAO,MAAM,gCAAgC,gEACG,CAAC;AAGjD,eAAO,MAAM,yBAAyB,2EACG,CAAC;AAE1C,eAAO,MAAM,4BAA4B,gEACG,CAAC;AAG7C,eAAO,MAAM,+BAA+B,2EACG,CAAC;AAEhD,eAAO,MAAM,kCAAkC,gEACG,CAAC;AAGnD,eAAO,MAAM,yBAAyB,2EACG,CAAC;AAE1C,eAAO,MAAM,4BAA4B,gEACG,CAAC;AAG7C,eAAO,MAAM,wBAAwB,2EACG,CAAC;AAEzC,eAAO,MAAM,2BAA2B,gEACG,CAAC;AAG5C,eAAO,MAAM,4BAA4B,2EACG,CAAC;AAE7C,eAAO,MAAM,gCAAgC,gEACE,CAAC"}
@@ -6,6 +6,18 @@ export const dialogStateAtom = atomFamily(() => atom(false));
6
6
  // Edit Table Dialog
7
7
  export const useEditTableDialogState = () => useAtom(dialogStateAtom("editTable"));
8
8
  export const useSetEditTableDialogValue = () => useSetAtom(dialogStateAtom("editTable"));
9
+ // Create Table Dialog (Ctrl+T / Insert → Table / Format as Table)
10
+ export const useCreateTableDialogState = () => useAtom(dialogStateAtom("createTable"));
11
+ export const useSetCreateTableDialogValue = () => useSetAtom(dialogStateAtom("createTable"));
12
+ // Resize Table Dialog (Table Design → Resize Table)
13
+ export const useResizeTableDialogState = () => useAtom(dialogStateAtom("resizeTable"));
14
+ export const useSetResizeTableDialogValue = () => useSetAtom(dialogStateAtom("resizeTable"));
15
+ // Insert Slicers Dialog (Table Design → Insert Slicer, Table → Insert Slicer…)
16
+ export const useInsertSlicerDialogState = () => useAtom(dialogStateAtom("insertSlicer"));
17
+ export const useSetInsertSlicerDialogValue = () => useSetAtom(dialogStateAtom("insertSlicer"));
18
+ // Edit Slicer Dialog (Slicer → Slicer Settings…)
19
+ export const useEditSlicerDialogState = () => useAtom(dialogStateAtom("editSlicer"));
20
+ export const useSetEditSlicerDialogState = () => useSetAtom(dialogStateAtom("editSlicer"));
9
21
  // Delete Sheet Confirmation Dialog
10
22
  export const useDeletSheetConfirmationDialogState = () => useAtom(dialogStateAtom("deleteSheet"));
11
23
  // Edit Named Range Dialog
@@ -0,0 +1,9 @@
1
+ import type { Slicer } from "@rowsncolumns/spreadsheet";
2
+ /** The slicer Excel's "Slicer Settings" dialog was opened for (`onRequestEditSlicer`). */
3
+ export declare const editingSlicerAtom: import("jotai").PrimitiveAtom<Slicer | undefined> & {
4
+ init: Slicer | undefined;
5
+ };
6
+ export declare const useEditingSlicer: () => Slicer | undefined;
7
+ export declare const useSetEditingSlicer: () => (args_0: Slicer | ((prev: Slicer | undefined) => Slicer | undefined) | undefined) => void;
8
+ export declare const useEditingSlicerState: () => [Slicer | undefined, (args_0: Slicer | ((prev: Slicer | undefined) => Slicer | undefined) | undefined) => void];
9
+ //# sourceMappingURL=editing-slicer.atom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editing-slicer.atom.d.ts","sourceRoot":"","sources":["../../../atoms/editing-slicer.atom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAGxD,0FAA0F;AAC1F,eAAO,MAAM,iBAAiB;;CAAsC,CAAC;AAErE,eAAO,MAAM,gBAAgB,0BAAwC,CAAC;AACtE,eAAO,MAAM,mBAAmB,iGAAsC,CAAC;AACvE,eAAO,MAAM,qBAAqB,uHAAmC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { atom, useAtom, useAtomValue, useSetAtom } from "jotai";
2
+ /** The slicer Excel's "Slicer Settings" dialog was opened for (`onRequestEditSlicer`). */
3
+ export const editingSlicerAtom = atom(undefined);
4
+ export const useEditingSlicer = () => useAtomValue(editingSlicerAtom);
5
+ export const useSetEditingSlicer = () => useSetAtom(editingSlicerAtom);
6
+ export const useEditingSlicerState = () => useAtom(editingSlicerAtom);
@@ -1,5 +1,9 @@
1
1
  export * from "./error-state.atom";
2
2
  export * from "./dialog-state.atom";
3
3
  export * from "./editing-embed.atom";
4
+ export * from "./creating-table.atom";
5
+ export * from "./resizing-table.atom";
6
+ export * from "./inserting-slicer.atom";
7
+ export * from "./editing-slicer.atom";
4
8
  export * from "./sheet-observer.atom";
5
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../atoms/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../atoms/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC"}
@@ -1,4 +1,8 @@
1
1
  export * from "./error-state.atom";
2
2
  export * from "./dialog-state.atom";
3
3
  export * from "./editing-embed.atom";
4
+ export * from "./creating-table.atom";
5
+ export * from "./resizing-table.atom";
6
+ export * from "./inserting-slicer.atom";
7
+ export * from "./editing-slicer.atom";
4
8
  export * from "./sheet-observer.atom";
@@ -0,0 +1,8 @@
1
+ import type { TableView } from "@rowsncolumns/spreadsheet";
2
+ /** The table Excel's "Insert Slicers" dialog was opened for. */
3
+ export declare const insertingSlicerAtom: import("jotai").PrimitiveAtom<TableView | undefined> & {
4
+ init: TableView | undefined;
5
+ };
6
+ export declare const useInsertingSlicer: () => TableView | undefined;
7
+ export declare const useSetInsertingSlicer: () => (args_0: TableView | ((prev: TableView | undefined) => TableView | undefined) | undefined) => void;
8
+ //# sourceMappingURL=inserting-slicer.atom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inserting-slicer.atom.d.ts","sourceRoot":"","sources":["../../../atoms/inserting-slicer.atom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAG3D,gEAAgE;AAChE,eAAO,MAAM,mBAAmB;;CAAyC,CAAC;AAE1E,eAAO,MAAM,kBAAkB,6BAA0C,CAAC;AAC1E,eAAO,MAAM,qBAAqB,0GAAwC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { atom, useAtomValue, useSetAtom } from "jotai";
2
+ /** The table Excel's "Insert Slicers" dialog was opened for. */
3
+ export const insertingSlicerAtom = atom(undefined);
4
+ export const useInsertingSlicer = () => useAtomValue(insertingSlicerAtom);
5
+ export const useSetInsertingSlicer = () => useSetAtom(insertingSlicerAtom);
@@ -0,0 +1,8 @@
1
+ import type { TableView } from "@rowsncolumns/spreadsheet";
2
+ /** The table Excel's "Resize Table" dialog was opened for. */
3
+ export declare const resizingTableAtom: import("jotai").PrimitiveAtom<TableView | undefined> & {
4
+ init: TableView | undefined;
5
+ };
6
+ export declare const useResizingTable: () => TableView | undefined;
7
+ export declare const useSetResizingTable: () => (args_0: TableView | ((prev: TableView | undefined) => TableView | undefined) | undefined) => void;
8
+ //# sourceMappingURL=resizing-table.atom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resizing-table.atom.d.ts","sourceRoot":"","sources":["../../../atoms/resizing-table.atom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAG3D,8DAA8D;AAC9D,eAAO,MAAM,iBAAiB;;CAAyC,CAAC;AAExE,eAAO,MAAM,gBAAgB,6BAAwC,CAAC;AACtE,eAAO,MAAM,mBAAmB,0GAAsC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { atom, useAtomValue, useSetAtom } from "jotai";
2
+ /** The table Excel's "Resize Table" dialog was opened for. */
3
+ export const resizingTableAtom = atom(undefined);
4
+ export const useResizingTable = () => useAtomValue(resizingTableAtom);
5
+ export const useSetResizingTable = () => useSetAtom(resizingTableAtom);