@tanstack/table-core 9.0.0-alpha.46 → 9.0.0-alpha.48

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 (339) hide show
  1. package/README.md +10 -0
  2. package/dist/core/cells/constructCell.cjs +4 -3
  3. package/dist/core/cells/constructCell.cjs.map +1 -1
  4. package/dist/core/cells/constructCell.js +4 -3
  5. package/dist/core/cells/constructCell.js.map +1 -1
  6. package/dist/core/cells/coreCellsFeature.utils.cjs +11 -8
  7. package/dist/core/cells/coreCellsFeature.utils.cjs.map +1 -1
  8. package/dist/core/cells/coreCellsFeature.utils.d.cts +11 -8
  9. package/dist/core/cells/coreCellsFeature.utils.d.ts +11 -8
  10. package/dist/core/cells/coreCellsFeature.utils.js +11 -8
  11. package/dist/core/cells/coreCellsFeature.utils.js.map +1 -1
  12. package/dist/core/columns/constructColumn.cjs +6 -4
  13. package/dist/core/columns/constructColumn.cjs.map +1 -1
  14. package/dist/core/columns/constructColumn.js +6 -4
  15. package/dist/core/columns/constructColumn.js.map +1 -1
  16. package/dist/core/columns/coreColumnsFeature.types.d.cts +7 -6
  17. package/dist/core/columns/coreColumnsFeature.types.d.ts +7 -6
  18. package/dist/core/columns/coreColumnsFeature.utils.cjs +47 -29
  19. package/dist/core/columns/coreColumnsFeature.utils.cjs.map +1 -1
  20. package/dist/core/columns/coreColumnsFeature.utils.d.cts +37 -27
  21. package/dist/core/columns/coreColumnsFeature.utils.d.ts +37 -27
  22. package/dist/core/columns/coreColumnsFeature.utils.js +47 -29
  23. package/dist/core/columns/coreColumnsFeature.utils.js.map +1 -1
  24. package/dist/core/headers/buildHeaderGroups.cjs +27 -19
  25. package/dist/core/headers/buildHeaderGroups.cjs.map +1 -1
  26. package/dist/core/headers/buildHeaderGroups.js +27 -19
  27. package/dist/core/headers/buildHeaderGroups.js.map +1 -1
  28. package/dist/core/headers/constructHeader.cjs +4 -3
  29. package/dist/core/headers/constructHeader.cjs.map +1 -1
  30. package/dist/core/headers/constructHeader.js +4 -3
  31. package/dist/core/headers/constructHeader.js.map +1 -1
  32. package/dist/core/headers/coreHeadersFeature.cjs +1 -6
  33. package/dist/core/headers/coreHeadersFeature.cjs.map +1 -1
  34. package/dist/core/headers/coreHeadersFeature.js +2 -7
  35. package/dist/core/headers/coreHeadersFeature.js.map +1 -1
  36. package/dist/core/headers/coreHeadersFeature.types.d.cts +6 -4
  37. package/dist/core/headers/coreHeadersFeature.types.d.ts +6 -4
  38. package/dist/core/headers/coreHeadersFeature.utils.cjs +43 -36
  39. package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
  40. package/dist/core/headers/coreHeadersFeature.utils.d.cts +24 -19
  41. package/dist/core/headers/coreHeadersFeature.utils.d.ts +24 -19
  42. package/dist/core/headers/coreHeadersFeature.utils.js +44 -37
  43. package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
  44. package/dist/core/reactivity/coreReactivityFeature.types.d.cts +4 -0
  45. package/dist/core/reactivity/coreReactivityFeature.types.d.ts +4 -0
  46. package/dist/core/row-models/coreRowModelsFeature.utils.cjs +48 -36
  47. package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +1 -1
  48. package/dist/core/row-models/coreRowModelsFeature.utils.d.cts +48 -36
  49. package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +48 -36
  50. package/dist/core/row-models/coreRowModelsFeature.utils.js +48 -36
  51. package/dist/core/row-models/coreRowModelsFeature.utils.js.map +1 -1
  52. package/dist/core/rows/constructRow.cjs +8 -6
  53. package/dist/core/rows/constructRow.cjs.map +1 -1
  54. package/dist/core/rows/constructRow.js +8 -6
  55. package/dist/core/rows/constructRow.js.map +1 -1
  56. package/dist/core/rows/coreRowsFeature.types.d.cts +4 -4
  57. package/dist/core/rows/coreRowsFeature.types.d.ts +4 -4
  58. package/dist/core/rows/coreRowsFeature.utils.cjs +43 -32
  59. package/dist/core/rows/coreRowsFeature.utils.cjs.map +1 -1
  60. package/dist/core/rows/coreRowsFeature.utils.d.cts +34 -28
  61. package/dist/core/rows/coreRowsFeature.utils.d.ts +34 -28
  62. package/dist/core/rows/coreRowsFeature.utils.js +43 -32
  63. package/dist/core/rows/coreRowsFeature.utils.js.map +1 -1
  64. package/dist/core/table/constructTable.cjs +9 -5
  65. package/dist/core/table/constructTable.cjs.map +1 -1
  66. package/dist/core/table/constructTable.js +9 -5
  67. package/dist/core/table/constructTable.js.map +1 -1
  68. package/dist/core/table/coreTablesFeature.types.d.cts +6 -2
  69. package/dist/core/table/coreTablesFeature.types.d.ts +6 -2
  70. package/dist/core/table/coreTablesFeature.utils.cjs +7 -3
  71. package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
  72. package/dist/core/table/coreTablesFeature.utils.d.cts +2 -2
  73. package/dist/core/table/coreTablesFeature.utils.d.ts +2 -2
  74. package/dist/core/table/coreTablesFeature.utils.js +7 -3
  75. package/dist/core/table/coreTablesFeature.utils.js.map +1 -1
  76. package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +16 -10
  77. package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +16 -10
  78. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +26 -18
  79. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -1
  80. package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +26 -18
  81. package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +26 -18
  82. package/dist/features/column-faceting/columnFacetingFeature.utils.js +26 -18
  83. package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -1
  84. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs +8 -5
  85. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +1 -1
  86. package/dist/features/column-faceting/createFacetedMinMaxValues.js +8 -5
  87. package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +1 -1
  88. package/dist/features/column-faceting/createFacetedRowModel.cjs +8 -3
  89. package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
  90. package/dist/features/column-faceting/createFacetedRowModel.js +8 -3
  91. package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
  92. package/dist/features/column-faceting/createFacetedUniqueValues.cjs +7 -4
  93. package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -1
  94. package/dist/features/column-faceting/createFacetedUniqueValues.js +7 -4
  95. package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -1
  96. package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +21 -11
  97. package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +21 -11
  98. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +39 -28
  99. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
  100. package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +39 -28
  101. package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +39 -28
  102. package/dist/features/column-filtering/columnFilteringFeature.utils.js +39 -28
  103. package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
  104. package/dist/features/column-filtering/createFilteredRowModel.cjs +11 -5
  105. package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
  106. package/dist/features/column-filtering/createFilteredRowModel.js +11 -5
  107. package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
  108. package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +18 -14
  109. package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +18 -14
  110. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs +55 -43
  111. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs.map +1 -1
  112. package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +55 -43
  113. package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +55 -43
  114. package/dist/features/column-grouping/columnGroupingFeature.utils.js +55 -43
  115. package/dist/features/column-grouping/columnGroupingFeature.utils.js.map +1 -1
  116. package/dist/features/column-ordering/columnOrderingFeature.types.d.cts +14 -5
  117. package/dist/features/column-ordering/columnOrderingFeature.types.d.ts +14 -5
  118. package/dist/features/column-ordering/columnOrderingFeature.utils.cjs +46 -29
  119. package/dist/features/column-ordering/columnOrderingFeature.utils.cjs.map +1 -1
  120. package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +30 -23
  121. package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +30 -23
  122. package/dist/features/column-ordering/columnOrderingFeature.utils.js +46 -29
  123. package/dist/features/column-ordering/columnOrderingFeature.utils.js.map +1 -1
  124. package/dist/features/column-pinning/columnPinningFeature.types.d.cts +43 -31
  125. package/dist/features/column-pinning/columnPinningFeature.types.d.ts +43 -31
  126. package/dist/features/column-pinning/columnPinningFeature.utils.cjs +152 -115
  127. package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
  128. package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +116 -95
  129. package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +116 -95
  130. package/dist/features/column-pinning/columnPinningFeature.utils.js +153 -116
  131. package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
  132. package/dist/features/column-resizing/columnResizingFeature.types.d.cts +9 -9
  133. package/dist/features/column-resizing/columnResizingFeature.types.d.ts +9 -9
  134. package/dist/features/column-resizing/columnResizingFeature.utils.cjs +28 -19
  135. package/dist/features/column-resizing/columnResizingFeature.utils.cjs.map +1 -1
  136. package/dist/features/column-resizing/columnResizingFeature.utils.d.cts +28 -19
  137. package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +28 -19
  138. package/dist/features/column-resizing/columnResizingFeature.utils.js +28 -19
  139. package/dist/features/column-resizing/columnResizingFeature.utils.js.map +1 -1
  140. package/dist/features/column-sizing/columnSizingFeature.cjs +28 -4
  141. package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
  142. package/dist/features/column-sizing/columnSizingFeature.js +28 -4
  143. package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
  144. package/dist/features/column-sizing/columnSizingFeature.types.d.cts +19 -12
  145. package/dist/features/column-sizing/columnSizingFeature.types.d.ts +19 -12
  146. package/dist/features/column-sizing/columnSizingFeature.utils.cjs +52 -41
  147. package/dist/features/column-sizing/columnSizingFeature.utils.cjs.map +1 -1
  148. package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +52 -41
  149. package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +52 -41
  150. package/dist/features/column-sizing/columnSizingFeature.utils.js +52 -41
  151. package/dist/features/column-sizing/columnSizingFeature.utils.js.map +1 -1
  152. package/dist/features/column-visibility/columnVisibilityFeature.cjs +23 -14
  153. package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
  154. package/dist/features/column-visibility/columnVisibilityFeature.js +24 -15
  155. package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
  156. package/dist/features/column-visibility/columnVisibilityFeature.types.d.cts +19 -12
  157. package/dist/features/column-visibility/columnVisibilityFeature.types.d.ts +19 -12
  158. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs +91 -52
  159. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs.map +1 -1
  160. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +63 -40
  161. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +63 -40
  162. package/dist/features/column-visibility/columnVisibilityFeature.utils.js +91 -53
  163. package/dist/features/column-visibility/columnVisibilityFeature.utils.js.map +1 -1
  164. package/dist/features/global-filtering/globalFilteringFeature.types.d.cts +10 -5
  165. package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +10 -5
  166. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs +20 -14
  167. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
  168. package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +20 -14
  169. package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +20 -14
  170. package/dist/features/global-filtering/globalFilteringFeature.utils.js +20 -14
  171. package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
  172. package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +16 -15
  173. package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +16 -15
  174. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs +58 -43
  175. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs.map +1 -1
  176. package/dist/features/row-expanding/rowExpandingFeature.utils.d.cts +56 -41
  177. package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +56 -41
  178. package/dist/features/row-expanding/rowExpandingFeature.utils.js +58 -43
  179. package/dist/features/row-expanding/rowExpandingFeature.utils.js.map +1 -1
  180. package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +19 -12
  181. package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +19 -12
  182. package/dist/features/row-pagination/rowPaginationFeature.utils.cjs +49 -32
  183. package/dist/features/row-pagination/rowPaginationFeature.utils.cjs.map +1 -1
  184. package/dist/features/row-pagination/rowPaginationFeature.utils.d.cts +49 -32
  185. package/dist/features/row-pagination/rowPaginationFeature.utils.d.ts +49 -32
  186. package/dist/features/row-pagination/rowPaginationFeature.utils.js +49 -32
  187. package/dist/features/row-pagination/rowPaginationFeature.utils.js.map +1 -1
  188. package/dist/features/row-pinning/rowPinningFeature.types.d.cts +12 -8
  189. package/dist/features/row-pinning/rowPinningFeature.types.d.ts +12 -8
  190. package/dist/features/row-pinning/rowPinningFeature.utils.cjs +52 -36
  191. package/dist/features/row-pinning/rowPinningFeature.utils.cjs.map +1 -1
  192. package/dist/features/row-pinning/rowPinningFeature.utils.d.cts +39 -29
  193. package/dist/features/row-pinning/rowPinningFeature.utils.d.ts +39 -29
  194. package/dist/features/row-pinning/rowPinningFeature.utils.js +52 -36
  195. package/dist/features/row-pinning/rowPinningFeature.utils.js.map +1 -1
  196. package/dist/features/row-selection/rowSelectionFeature.types.d.cts +30 -24
  197. package/dist/features/row-selection/rowSelectionFeature.types.d.ts +30 -24
  198. package/dist/features/row-selection/rowSelectionFeature.utils.cjs +95 -72
  199. package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
  200. package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +89 -69
  201. package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +89 -69
  202. package/dist/features/row-selection/rowSelectionFeature.utils.js +95 -72
  203. package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
  204. package/dist/features/row-sorting/createSortedRowModel.cjs +13 -8
  205. package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
  206. package/dist/features/row-sorting/createSortedRowModel.js +13 -8
  207. package/dist/features/row-sorting/createSortedRowModel.js.map +1 -1
  208. package/dist/features/row-sorting/rowSortingFeature.types.d.cts +10 -8
  209. package/dist/features/row-sorting/rowSortingFeature.types.d.ts +10 -8
  210. package/dist/features/row-sorting/rowSortingFeature.utils.cjs +63 -46
  211. package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -1
  212. package/dist/features/row-sorting/rowSortingFeature.utils.d.cts +61 -44
  213. package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +61 -44
  214. package/dist/features/row-sorting/rowSortingFeature.utils.js +63 -46
  215. package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -1
  216. package/dist/fns/aggregationFns.cjs +47 -16
  217. package/dist/fns/aggregationFns.cjs.map +1 -1
  218. package/dist/fns/aggregationFns.d.cts +33 -9
  219. package/dist/fns/aggregationFns.d.ts +33 -9
  220. package/dist/fns/aggregationFns.js +47 -17
  221. package/dist/fns/aggregationFns.js.map +1 -1
  222. package/dist/fns/filterFns.cjs +48 -17
  223. package/dist/fns/filterFns.cjs.map +1 -1
  224. package/dist/fns/filterFns.d.cts +42 -15
  225. package/dist/fns/filterFns.d.ts +42 -15
  226. package/dist/fns/filterFns.js +48 -17
  227. package/dist/fns/filterFns.js.map +1 -1
  228. package/dist/helpers/columnHelper.cjs +9 -4
  229. package/dist/helpers/columnHelper.cjs.map +1 -1
  230. package/dist/helpers/columnHelper.d.cts +9 -4
  231. package/dist/helpers/columnHelper.d.ts +9 -4
  232. package/dist/helpers/columnHelper.js +9 -4
  233. package/dist/helpers/columnHelper.js.map +1 -1
  234. package/dist/helpers/tableOptions.cjs.map +1 -1
  235. package/dist/helpers/tableOptions.d.cts +12 -9
  236. package/dist/helpers/tableOptions.d.ts +12 -9
  237. package/dist/helpers/tableOptions.js.map +1 -1
  238. package/dist/index.cjs +0 -4
  239. package/dist/index.d.cts +2 -2
  240. package/dist/index.d.ts +2 -2
  241. package/dist/index.js +2 -2
  242. package/dist/static-functions.cjs +1 -0
  243. package/dist/static-functions.d.cts +2 -2
  244. package/dist/static-functions.d.ts +2 -2
  245. package/dist/static-functions.js +2 -2
  246. package/dist/store-reactivity-bindings.cjs +1 -0
  247. package/dist/store-reactivity-bindings.cjs.map +1 -1
  248. package/dist/store-reactivity-bindings.js +1 -0
  249. package/dist/store-reactivity-bindings.js.map +1 -1
  250. package/dist/types/ColumnDef.d.cts +38 -0
  251. package/dist/types/ColumnDef.d.ts +38 -0
  252. package/dist/types/TableOptions.d.cts +15 -0
  253. package/dist/types/TableOptions.d.ts +15 -0
  254. package/dist/types/TableState.d.cts +12 -0
  255. package/dist/types/TableState.d.ts +12 -0
  256. package/dist/utils.cjs +18 -39
  257. package/dist/utils.cjs.map +1 -1
  258. package/dist/utils.d.cts +1 -23
  259. package/dist/utils.d.ts +1 -23
  260. package/dist/utils.js +19 -36
  261. package/dist/utils.js.map +1 -1
  262. package/package.json +5 -3
  263. package/skills/column-definitions/SKILL.md +333 -0
  264. package/skills/column-layout/SKILL.md +328 -0
  265. package/skills/column-layout/references/subsystems.md +220 -0
  266. package/skills/customizing-feature-behavior/SKILL.md +416 -0
  267. package/skills/filtering/SKILL.md +357 -0
  268. package/skills/filtering/references/faceting-and-fuzzy.md +191 -0
  269. package/skills/grouping/SKILL.md +448 -0
  270. package/skills/migrate-v8-to-v9/SKILL.md +495 -0
  271. package/skills/pagination/SKILL.md +385 -0
  272. package/skills/row-expanding/SKILL.md +348 -0
  273. package/skills/row-pinning/SKILL.md +269 -0
  274. package/skills/row-selection/SKILL.md +391 -0
  275. package/skills/setup/SKILL.md +400 -0
  276. package/skills/sorting/SKILL.md +344 -0
  277. package/skills/state-management/SKILL.md +388 -0
  278. package/src/core/cells/constructCell.ts +3 -2
  279. package/src/core/cells/coreCellsFeature.utils.ts +11 -8
  280. package/src/core/columns/constructColumn.ts +5 -3
  281. package/src/core/columns/coreColumnsFeature.types.ts +7 -6
  282. package/src/core/columns/coreColumnsFeature.utils.ts +43 -29
  283. package/src/core/headers/buildHeaderGroups.ts +29 -30
  284. package/src/core/headers/constructHeader.ts +3 -2
  285. package/src/core/headers/coreHeadersFeature.ts +2 -27
  286. package/src/core/headers/coreHeadersFeature.types.ts +6 -4
  287. package/src/core/headers/coreHeadersFeature.utils.ts +52 -61
  288. package/src/core/reactivity/coreReactivityFeature.types.ts +4 -0
  289. package/src/core/row-models/coreRowModelsFeature.utils.ts +48 -36
  290. package/src/core/rows/constructRow.ts +6 -4
  291. package/src/core/rows/coreRowsFeature.types.ts +4 -4
  292. package/src/core/rows/coreRowsFeature.utils.ts +45 -32
  293. package/src/core/table/constructTable.ts +6 -4
  294. package/src/core/table/coreTablesFeature.types.ts +6 -2
  295. package/src/core/table/coreTablesFeature.utils.ts +5 -3
  296. package/src/features/column-faceting/columnFacetingFeature.types.ts +16 -10
  297. package/src/features/column-faceting/columnFacetingFeature.utils.ts +26 -18
  298. package/src/features/column-faceting/createFacetedMinMaxValues.ts +8 -10
  299. package/src/features/column-faceting/createFacetedRowModel.ts +10 -6
  300. package/src/features/column-faceting/createFacetedUniqueValues.ts +4 -3
  301. package/src/features/column-filtering/columnFilteringFeature.types.ts +21 -11
  302. package/src/features/column-filtering/columnFilteringFeature.utils.ts +39 -28
  303. package/src/features/column-filtering/createFilteredRowModel.ts +14 -8
  304. package/src/features/column-grouping/columnGroupingFeature.types.ts +18 -14
  305. package/src/features/column-grouping/columnGroupingFeature.utils.ts +55 -43
  306. package/src/features/column-ordering/columnOrderingFeature.types.ts +14 -5
  307. package/src/features/column-ordering/columnOrderingFeature.utils.ts +44 -29
  308. package/src/features/column-pinning/columnPinningFeature.types.ts +43 -31
  309. package/src/features/column-pinning/columnPinningFeature.utils.ts +164 -128
  310. package/src/features/column-resizing/columnResizingFeature.types.ts +9 -9
  311. package/src/features/column-resizing/columnResizingFeature.utils.ts +28 -19
  312. package/src/features/column-sizing/columnSizingFeature.ts +16 -0
  313. package/src/features/column-sizing/columnSizingFeature.types.ts +19 -12
  314. package/src/features/column-sizing/columnSizingFeature.utils.ts +52 -41
  315. package/src/features/column-visibility/columnVisibilityFeature.ts +8 -0
  316. package/src/features/column-visibility/columnVisibilityFeature.types.ts +22 -12
  317. package/src/features/column-visibility/columnVisibilityFeature.utils.ts +101 -56
  318. package/src/features/global-filtering/globalFilteringFeature.types.ts +10 -5
  319. package/src/features/global-filtering/globalFilteringFeature.utils.ts +20 -14
  320. package/src/features/row-expanding/rowExpandingFeature.types.ts +16 -15
  321. package/src/features/row-expanding/rowExpandingFeature.utils.ts +58 -43
  322. package/src/features/row-pagination/rowPaginationFeature.types.ts +19 -12
  323. package/src/features/row-pagination/rowPaginationFeature.utils.ts +49 -32
  324. package/src/features/row-pinning/rowPinningFeature.types.ts +12 -8
  325. package/src/features/row-pinning/rowPinningFeature.utils.ts +59 -47
  326. package/src/features/row-selection/rowSelectionFeature.types.ts +30 -24
  327. package/src/features/row-selection/rowSelectionFeature.utils.ts +109 -88
  328. package/src/features/row-sorting/createSortedRowModel.ts +16 -13
  329. package/src/features/row-sorting/rowSortingFeature.types.ts +10 -8
  330. package/src/features/row-sorting/rowSortingFeature.utils.ts +63 -46
  331. package/src/fns/aggregationFns.ts +53 -17
  332. package/src/fns/filterFns.ts +48 -17
  333. package/src/helpers/columnHelper.ts +9 -4
  334. package/src/helpers/tableOptions.ts +12 -9
  335. package/src/store-reactivity-bindings.ts +1 -0
  336. package/src/types/ColumnDef.ts +38 -0
  337. package/src/types/TableOptions.ts +15 -0
  338. package/src/types/TableState.ts +12 -0
  339. package/src/utils.ts +19 -46
@@ -3,9 +3,10 @@ import type { TableFeatures } from '../types/TableFeatures'
3
3
  import type { TableOptions } from '../types/TableOptions'
4
4
 
5
5
  /**
6
- * Returns table options while preserving generic inference.
6
+ * Preserves table option inference when reusable options omit `columns`.
7
7
  *
8
- * This helper is useful when composing reusable table options outside of a framework adapter call.
8
+ * This is useful for composing shared options that will receive columns later
9
+ * from a framework adapter or table factory.
9
10
  */
10
11
  export function tableOptions<
11
12
  TFeatures extends TableFeatures,
@@ -19,7 +20,7 @@ export function tableOptions<
19
20
  }
20
21
 
21
22
  /**
22
- * Returns table options while preserving generic inference when `data` is supplied later.
23
+ * Preserves table option inference when reusable options omit `data`.
23
24
  */
24
25
  export function tableOptions<
25
26
  TFeatures extends TableFeatures,
@@ -33,7 +34,8 @@ export function tableOptions<
33
34
  }
34
35
 
35
36
  /**
36
- * Returns table options while preserving generic inference when both `data` and `columns` are supplied later.
37
+ * Preserves table option inference when reusable options omit both `data` and
38
+ * `columns`.
37
39
  */
38
40
  export function tableOptions<
39
41
  TFeatures extends TableFeatures,
@@ -47,7 +49,7 @@ export function tableOptions<
47
49
  }
48
50
 
49
51
  /**
50
- * Returns a fully specified table options object without changing its runtime value.
52
+ * Preserves inference for a fully specified table options object.
51
53
  */
52
54
  export function tableOptions<
53
55
  TFeatures extends TableFeatures,
@@ -55,7 +57,7 @@ export function tableOptions<
55
57
  >(options: TableOptions<TFeatures, TData>): TableOptions<TFeatures, TData>
56
58
 
57
59
  /**
58
- * Returns table options while preserving generic inference when `_features` is supplied by a wrapper.
60
+ * Preserves inference when a wrapper supplies `_features`.
59
61
  */
60
62
  export function tableOptions<
61
63
  TFeatures extends TableFeatures,
@@ -65,7 +67,7 @@ export function tableOptions<
65
67
  ): Omit<TableOptions<TFeatures, TData>, '_features'>
66
68
 
67
69
  /**
68
- * Returns table options while preserving generic inference when `data` and `_features` are supplied by a wrapper.
70
+ * Preserves inference when a wrapper supplies both `data` and `_features`.
69
71
  */
70
72
  export function tableOptions<
71
73
  TFeatures extends TableFeatures,
@@ -75,7 +77,7 @@ export function tableOptions<
75
77
  ): Omit<TableOptions<TFeatures, TData>, 'data' | '_features'>
76
78
 
77
79
  /**
78
- * Returns table options while preserving generic inference when `columns` and `_features` are supplied by a wrapper.
80
+ * Preserves inference when a wrapper supplies both `columns` and `_features`.
79
81
  */
80
82
  export function tableOptions<
81
83
  TFeatures extends TableFeatures,
@@ -85,7 +87,8 @@ export function tableOptions<
85
87
  ): Omit<TableOptions<TFeatures, TData>, 'columns' | '_features'>
86
88
 
87
89
  /**
88
- * Returns table options while preserving generic inference when `data`, `columns`, and `_features` are supplied by a wrapper.
90
+ * Preserves inference when a wrapper supplies `data`, `columns`, and
91
+ * `_features`.
89
92
  */
90
93
  export function tableOptions<
91
94
  TFeatures extends TableFeatures,
@@ -20,6 +20,7 @@ export function storeReactivityBindings(): TableReactivityBindings {
20
20
  return {
21
21
  createOptionsStore: true,
22
22
  batch,
23
+ schedule: (fn) => queueMicrotask(fn),
23
24
  untrack: (fn) => fn(),
24
25
  createReadonlyAtom: (fn, options) => {
25
26
  return createAtom(() => fn(), {
@@ -27,11 +27,23 @@ export interface ColumnMeta<
27
27
  TValue extends CellData = CellData,
28
28
  > {}
29
29
 
30
+ /**
31
+ * Reads a cell value from an original row object.
32
+ *
33
+ * The row index is provided for accessors that need stable position-aware
34
+ * derived values.
35
+ */
30
36
  export type AccessorFn<
31
37
  TData extends RowData,
32
38
  TValue extends CellData = CellData,
33
39
  > = (originalRow: TData, index: number) => TValue
34
40
 
41
+ /**
42
+ * A renderable column template value.
43
+ *
44
+ * Strings render directly; functions receive the relevant cell/header context
45
+ * and can return framework-specific render output.
46
+ */
35
47
  export type ColumnDefTemplate<TProps extends object> =
36
48
  | string
37
49
  | ((props: TProps) => any)
@@ -43,7 +55,13 @@ export type StringOrTemplateHeader<
43
55
  > = string | ColumnDefTemplate<HeaderContext<TFeatures, TData, TValue>>
44
56
 
45
57
  export interface StringHeaderIdentifier {
58
+ /**
59
+ * Header text used both for rendering and as a fallback column id.
60
+ */
46
61
  header: string
62
+ /**
63
+ * Optional explicit id that overrides the header-derived id.
64
+ */
47
65
  id?: string
48
66
  }
49
67
 
@@ -52,7 +70,13 @@ export interface IdIdentifier<
52
70
  TData extends RowData,
53
71
  TValue extends CellData = CellData,
54
72
  > {
73
+ /**
74
+ * Explicit stable column id.
75
+ */
55
76
  id: string
77
+ /**
78
+ * Header text or template used to render this column's header.
79
+ */
56
80
  header?: StringOrTemplateHeader<TFeatures, TData, TValue>
57
81
  }
58
82
  type ColumnIdentifiers<
@@ -66,9 +90,23 @@ interface ColumnDefBase_Core<
66
90
  TData extends RowData,
67
91
  TValue extends CellData = CellData,
68
92
  > {
93
+ /**
94
+ * Produces the values used by faceting/grouping for this column.
95
+ *
96
+ * When omitted, the normal accessor value is wrapped in a single-item array.
97
+ */
69
98
  getUniqueValues?: AccessorFn<TData, Array<unknown>>
99
+ /**
100
+ * Footer template rendered with header context.
101
+ */
70
102
  footer?: ColumnDefTemplate<HeaderContext<TFeatures, TData, TValue>>
103
+ /**
104
+ * Cell template rendered with cell context.
105
+ */
71
106
  cell?: ColumnDefTemplate<CellContext<TFeatures, TData, TValue>>
107
+ /**
108
+ * User-defined metadata available on the resolved column definition.
109
+ */
72
110
  meta?: ColumnMeta<TFeatures, TData, TValue>
73
111
  }
74
112
 
@@ -24,6 +24,10 @@ export interface TableOptions_Plugins<
24
24
  TData extends RowData,
25
25
  > {}
26
26
 
27
+ /**
28
+ * Core options that are always available on a table, before optional feature
29
+ * options are mixed in.
30
+ */
27
31
  export interface TableOptions_Core<
28
32
  TFeatures extends TableFeatures,
29
33
  TData extends RowData,
@@ -48,6 +52,13 @@ export type DebugOptions<TFeatures extends TableFeatures> = {
48
52
  debugTable?: boolean
49
53
  } & DebugKeysFor<CoreFeatures & TFeatures>
50
54
 
55
+ /**
56
+ * Complete table options for a specific feature set.
57
+ *
58
+ * Feature options are included only when their feature is present in
59
+ * `TFeatures`, then custom feature/plugin options and debug options are mixed
60
+ * in.
61
+ */
51
62
  export type TableOptions<
52
63
  TFeatures extends TableFeatures,
53
64
  TData extends RowData,
@@ -104,6 +115,10 @@ export type TableOptions<
104
115
  // ExtractFeatureTypes<'TableOptions', TFeatures> &
105
116
  // TableOptions_Plugins<TFeatures, TData>
106
117
 
118
+ /**
119
+ * Internal broad option shape used where feature code may need to read options
120
+ * from features that are not present in the current generic feature set.
121
+ */
107
122
  export type TableOptions_All<
108
123
  TFeatures extends TableFeatures,
109
124
  TData extends RowData,
@@ -20,6 +20,12 @@ import type { ExtractFeatureTypes, TableFeatures } from './TableFeatures'
20
20
  */
21
21
  export interface TableState_Plugins<TFeatures extends TableFeatures> {}
22
22
 
23
+ /**
24
+ * Complete table state for a specific feature set.
25
+ *
26
+ * State slices are included only when their feature is present in `TFeatures`,
27
+ * then custom feature/plugin state is mixed in.
28
+ */
23
29
  export type TableState<TFeatures extends TableFeatures> = UnionToIntersection<
24
30
  | ('columnFilteringFeature' extends keyof TFeatures
25
31
  ? TableState_ColumnFiltering
@@ -71,6 +77,12 @@ export type TableState<TFeatures extends TableFeatures> = UnionToIntersection<
71
77
  // > &
72
78
  // TableState_Plugins<TFeatures>
73
79
 
80
+ /**
81
+ * Internal broad state shape containing every stock feature state slice.
82
+ *
83
+ * Feature internals use this when they may need to inspect optional slices owned
84
+ * by other features.
85
+ */
74
86
  export type TableState_All = Partial<
75
87
  TableState_ColumnFiltering &
76
88
  TableState_ColumnGrouping &
package/src/utils.ts CHANGED
@@ -32,8 +32,10 @@ export function cloneState<T>(value: T): T {
32
32
  }
33
33
 
34
34
  const copy: Record<string, unknown> = {}
35
+ const keys = Object.keys(value)
35
36
 
36
- for (const key of Object.keys(value)) {
37
+ for (let i = 0; i < keys.length; i++) {
38
+ const key = keys[i]!
37
39
  copy[key] = cloneState((value as Record<string, unknown>)[key])
38
40
  }
39
41
 
@@ -43,11 +45,6 @@ export function cloneState<T>(value: T): T {
43
45
  return value
44
46
  }
45
47
 
46
- /**
47
- * A no-operation function used as a safe default callback.
48
- */
49
- export function noop() {}
50
-
51
48
  /**
52
49
  * Creates a table state updater for a single state slice.
53
50
  *
@@ -73,13 +70,6 @@ export function isFunction<T extends AnyFunction>(d: any): d is T {
73
70
  return d instanceof Function
74
71
  }
75
72
 
76
- /**
77
- * Returns whether a value is an array containing only numbers.
78
- */
79
- export function isNumberArray(d: any): d is Array<number> {
80
- return Array.isArray(d) && d.every((val) => typeof val === 'number')
81
- }
82
-
83
73
  /**
84
74
  * Flattens a tree of nodes by recursively reading child nodes.
85
75
  *
@@ -106,29 +96,6 @@ export function flattenBy<TNode>(
106
96
  return flat
107
97
  }
108
98
 
109
- /**
110
- * Symbol used to attach internal memo metadata to wrapped functions.
111
- *
112
- * This is exported so diagnostics can recognize memoized functions without
113
- * depending on a string property name.
114
- */
115
- export const $internalMemoFnMeta = Symbol('memoFnMeta')
116
- export type MemoFnMeta = { originalArgsLength?: number }
117
-
118
- /**
119
- * @internal
120
- */
121
- function setMemoFnMeta(fn: Function, meta: MemoFnMeta) {
122
- Object.defineProperty(fn, $internalMemoFnMeta, { value: meta })
123
- }
124
-
125
- /**
126
- * @internal
127
- */
128
- export function getMemoFnMeta(fn: any): MemoFnMeta | null {
129
- return (typeof fn === 'function' && fn[$internalMemoFnMeta]) ?? null
130
- }
131
-
132
99
  interface MemoOptions<TDeps extends ReadonlyArray<any>, TDepArgs, TResult> {
133
100
  fn: (...args: NoInfer<TDeps>) => TResult
134
101
  memoDeps?: (depArgs?: TDepArgs) => [...TDeps] | undefined
@@ -159,10 +126,15 @@ export const memo = <TDeps extends ReadonlyArray<any>, TDepArgs, TResult>({
159
126
  const memoizedFn = (depArgs?: TDepArgs): TResult => {
160
127
  onBeforeCompare?.()
161
128
  const newDeps = memoDeps?.(depArgs)
162
- const depsChanged =
163
- !newDeps ||
164
- newDeps.length !== deps?.length ||
165
- newDeps.some((dep: any, index: number) => deps?.[index] !== dep)
129
+ let depsChanged = !newDeps || newDeps.length !== deps?.length
130
+ if (!depsChanged && newDeps) {
131
+ for (let i = 0; i < newDeps.length; i++) {
132
+ if (newDeps[i] !== deps![i]) {
133
+ depsChanged = true
134
+ break
135
+ }
136
+ }
137
+ }
166
138
  onAfterCompare?.(depsChanged)
167
139
 
168
140
  if (!depsChanged) {
@@ -178,8 +150,6 @@ export const memo = <TDeps extends ReadonlyArray<any>, TDepArgs, TResult>({
178
150
  return result
179
151
  }
180
152
 
181
- setMemoFnMeta(memoizedFn, { originalArgsLength: fn.length })
182
-
183
153
  return memoizedFn
184
154
  }
185
155
 
@@ -283,6 +253,11 @@ export function tableMemo<
283
253
  console.groupEnd()
284
254
  }
285
255
 
256
+ const onAfterUpdateHandler = () => {
257
+ const { schedule, untrack } = table._reactivity
258
+ schedule(() => untrack(() => onAfterUpdate?.()))
259
+ }
260
+
286
261
  const debugOptions =
287
262
  process.env.NODE_ENV === 'development'
288
263
  ? {
@@ -313,12 +288,12 @@ export function tableMemo<
313
288
  Math.round((endCalcTime - startCalcTime) * 100) / 100
314
289
  logTime(executionTime, true)
315
290
  }
316
- queueMicrotask(() => onAfterUpdate?.())
291
+ onAfterUpdateHandler()
317
292
  },
318
293
  }
319
294
  : {
320
295
  onAfterUpdate: () => {
321
- queueMicrotask(() => onAfterUpdate?.())
296
+ onAfterUpdateHandler()
322
297
  },
323
298
  }
324
299
 
@@ -440,8 +415,6 @@ export function assignPrototypeAPIs<
440
415
  return fn(this, ...args)
441
416
  }
442
417
  }
443
-
444
- setMemoFnMeta(prototype[fnKey], { originalArgsLength: fn.length })
445
418
  }
446
419
  }
447
420