@tanstack/table-core 9.0.0-beta.1 → 9.0.0-beta.5

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 (271) hide show
  1. package/dist/core/cells/coreCellsFeature.cjs +11 -20
  2. package/dist/core/cells/coreCellsFeature.cjs.map +1 -1
  3. package/dist/core/cells/coreCellsFeature.d.cts +4 -12
  4. package/dist/core/cells/coreCellsFeature.d.ts +4 -12
  5. package/dist/core/cells/coreCellsFeature.js +12 -20
  6. package/dist/core/cells/coreCellsFeature.js.map +1 -1
  7. package/dist/core/columns/coreColumnsFeature.cjs +59 -68
  8. package/dist/core/columns/coreColumnsFeature.cjs.map +1 -1
  9. package/dist/core/columns/coreColumnsFeature.d.cts +4 -12
  10. package/dist/core/columns/coreColumnsFeature.d.ts +4 -12
  11. package/dist/core/columns/coreColumnsFeature.js +60 -68
  12. package/dist/core/columns/coreColumnsFeature.js.map +1 -1
  13. package/dist/core/headers/buildHeaderGroups.cjs.map +1 -1
  14. package/dist/core/headers/buildHeaderGroups.js.map +1 -1
  15. package/dist/core/headers/coreHeadersFeature.cjs +44 -53
  16. package/dist/core/headers/coreHeadersFeature.cjs.map +1 -1
  17. package/dist/core/headers/coreHeadersFeature.d.cts +4 -12
  18. package/dist/core/headers/coreHeadersFeature.d.ts +4 -12
  19. package/dist/core/headers/coreHeadersFeature.js +45 -53
  20. package/dist/core/headers/coreHeadersFeature.js.map +1 -1
  21. package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
  22. package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
  23. package/dist/core/row-models/coreRowModelsFeature.cjs +17 -26
  24. package/dist/core/row-models/coreRowModelsFeature.cjs.map +1 -1
  25. package/dist/core/row-models/coreRowModelsFeature.d.cts +4 -12
  26. package/dist/core/row-models/coreRowModelsFeature.d.ts +4 -12
  27. package/dist/core/row-models/coreRowModelsFeature.js +18 -26
  28. package/dist/core/row-models/coreRowModelsFeature.js.map +1 -1
  29. package/dist/core/row-models/coreRowModelsFeature.types.d.cts +3 -5
  30. package/dist/core/row-models/coreRowModelsFeature.types.d.ts +3 -5
  31. package/dist/core/row-models/createCoreRowModel.cjs.map +1 -1
  32. package/dist/core/row-models/createCoreRowModel.js.map +1 -1
  33. package/dist/core/rows/coreRowsFeature.cjs +27 -36
  34. package/dist/core/rows/coreRowsFeature.cjs.map +1 -1
  35. package/dist/core/rows/coreRowsFeature.d.cts +4 -12
  36. package/dist/core/rows/coreRowsFeature.d.ts +4 -12
  37. package/dist/core/rows/coreRowsFeature.js +28 -36
  38. package/dist/core/rows/coreRowsFeature.js.map +1 -1
  39. package/dist/core/table/constructTable.cjs +2 -2
  40. package/dist/core/table/constructTable.cjs.map +1 -1
  41. package/dist/core/table/constructTable.js +2 -2
  42. package/dist/core/table/constructTable.js.map +1 -1
  43. package/dist/core/table/coreTablesFeature.cjs +7 -16
  44. package/dist/core/table/coreTablesFeature.cjs.map +1 -1
  45. package/dist/core/table/coreTablesFeature.d.cts +4 -12
  46. package/dist/core/table/coreTablesFeature.d.ts +4 -12
  47. package/dist/core/table/coreTablesFeature.js +8 -16
  48. package/dist/core/table/coreTablesFeature.js.map +1 -1
  49. package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
  50. package/dist/core/table/coreTablesFeature.utils.js.map +1 -1
  51. package/dist/features/column-faceting/columnFacetingFeature.cjs +49 -61
  52. package/dist/features/column-faceting/columnFacetingFeature.cjs.map +1 -1
  53. package/dist/features/column-faceting/columnFacetingFeature.d.cts +4 -15
  54. package/dist/features/column-faceting/columnFacetingFeature.d.ts +4 -15
  55. package/dist/features/column-faceting/columnFacetingFeature.js +50 -61
  56. package/dist/features/column-faceting/columnFacetingFeature.js.map +1 -1
  57. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +1 -1
  58. package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +1 -1
  59. package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
  60. package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
  61. package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -1
  62. package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -1
  63. package/dist/features/column-filtering/columnFilteringFeature.cjs +40 -53
  64. package/dist/features/column-filtering/columnFilteringFeature.cjs.map +1 -1
  65. package/dist/features/column-filtering/columnFilteringFeature.d.cts +4 -16
  66. package/dist/features/column-filtering/columnFilteringFeature.d.ts +4 -16
  67. package/dist/features/column-filtering/columnFilteringFeature.js +41 -53
  68. package/dist/features/column-filtering/columnFilteringFeature.js.map +1 -1
  69. package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +3 -3
  70. package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +3 -3
  71. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
  72. package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +1 -1
  73. package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +1 -1
  74. package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
  75. package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
  76. package/dist/features/column-filtering/createFilteredRowModel.d.cts +1 -1
  77. package/dist/features/column-filtering/createFilteredRowModel.d.ts +1 -1
  78. package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
  79. package/dist/features/column-grouping/columnGroupingFeature.cjs +57 -69
  80. package/dist/features/column-grouping/columnGroupingFeature.cjs.map +1 -1
  81. package/dist/features/column-grouping/columnGroupingFeature.d.cts +4 -15
  82. package/dist/features/column-grouping/columnGroupingFeature.d.ts +4 -15
  83. package/dist/features/column-grouping/columnGroupingFeature.js +58 -69
  84. package/dist/features/column-grouping/columnGroupingFeature.js.map +1 -1
  85. package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -1
  86. package/dist/features/column-grouping/createGroupedRowModel.js.map +1 -1
  87. package/dist/features/column-ordering/columnOrderingFeature.cjs +47 -59
  88. package/dist/features/column-ordering/columnOrderingFeature.cjs.map +1 -1
  89. package/dist/features/column-ordering/columnOrderingFeature.d.cts +4 -15
  90. package/dist/features/column-ordering/columnOrderingFeature.d.ts +4 -15
  91. package/dist/features/column-ordering/columnOrderingFeature.js +48 -59
  92. package/dist/features/column-ordering/columnOrderingFeature.js.map +1 -1
  93. package/dist/features/column-pinning/columnPinningFeature.cjs +209 -221
  94. package/dist/features/column-pinning/columnPinningFeature.cjs.map +1 -1
  95. package/dist/features/column-pinning/columnPinningFeature.d.cts +4 -15
  96. package/dist/features/column-pinning/columnPinningFeature.d.ts +4 -15
  97. package/dist/features/column-pinning/columnPinningFeature.js +210 -221
  98. package/dist/features/column-pinning/columnPinningFeature.js.map +1 -1
  99. package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
  100. package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +12 -12
  101. package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +12 -12
  102. package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
  103. package/dist/features/column-resizing/columnResizingFeature.cjs +31 -43
  104. package/dist/features/column-resizing/columnResizingFeature.cjs.map +1 -1
  105. package/dist/features/column-resizing/columnResizingFeature.d.cts +4 -15
  106. package/dist/features/column-resizing/columnResizingFeature.d.ts +4 -15
  107. package/dist/features/column-resizing/columnResizingFeature.js +32 -43
  108. package/dist/features/column-resizing/columnResizingFeature.js.map +1 -1
  109. package/dist/features/column-sizing/columnSizingFeature.cjs +112 -125
  110. package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
  111. package/dist/features/column-sizing/columnSizingFeature.d.cts +4 -16
  112. package/dist/features/column-sizing/columnSizingFeature.d.ts +4 -16
  113. package/dist/features/column-sizing/columnSizingFeature.js +113 -125
  114. package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
  115. package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +3 -3
  116. package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +3 -3
  117. package/dist/features/column-visibility/columnVisibilityFeature.cjs +83 -95
  118. package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
  119. package/dist/features/column-visibility/columnVisibilityFeature.d.cts +4 -15
  120. package/dist/features/column-visibility/columnVisibilityFeature.d.ts +4 -15
  121. package/dist/features/column-visibility/columnVisibilityFeature.js +84 -95
  122. package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
  123. package/dist/features/global-filtering/globalFilteringFeature.cjs +31 -43
  124. package/dist/features/global-filtering/globalFilteringFeature.cjs.map +1 -1
  125. package/dist/features/global-filtering/globalFilteringFeature.d.cts +4 -15
  126. package/dist/features/global-filtering/globalFilteringFeature.d.ts +4 -15
  127. package/dist/features/global-filtering/globalFilteringFeature.js +32 -43
  128. package/dist/features/global-filtering/globalFilteringFeature.js.map +1 -1
  129. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
  130. package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +4 -2
  131. package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +4 -2
  132. package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
  133. package/dist/features/row-expanding/createExpandedRowModel.cjs.map +1 -1
  134. package/dist/features/row-expanding/createExpandedRowModel.js.map +1 -1
  135. package/dist/features/row-expanding/rowExpandingFeature.cjs +37 -49
  136. package/dist/features/row-expanding/rowExpandingFeature.cjs.map +1 -1
  137. package/dist/features/row-expanding/rowExpandingFeature.d.cts +4 -15
  138. package/dist/features/row-expanding/rowExpandingFeature.d.ts +4 -15
  139. package/dist/features/row-expanding/rowExpandingFeature.js +38 -49
  140. package/dist/features/row-expanding/rowExpandingFeature.js.map +1 -1
  141. package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +1 -1
  142. package/dist/features/row-pagination/createPaginatedRowModel.js.map +1 -1
  143. package/dist/features/row-pagination/rowPaginationFeature.cjs +35 -47
  144. package/dist/features/row-pagination/rowPaginationFeature.cjs.map +1 -1
  145. package/dist/features/row-pagination/rowPaginationFeature.d.cts +4 -15
  146. package/dist/features/row-pagination/rowPaginationFeature.d.ts +4 -15
  147. package/dist/features/row-pagination/rowPaginationFeature.js +36 -47
  148. package/dist/features/row-pagination/rowPaginationFeature.js.map +1 -1
  149. package/dist/features/row-pinning/rowPinningFeature.cjs +55 -67
  150. package/dist/features/row-pinning/rowPinningFeature.cjs.map +1 -1
  151. package/dist/features/row-pinning/rowPinningFeature.d.cts +4 -15
  152. package/dist/features/row-pinning/rowPinningFeature.d.ts +4 -15
  153. package/dist/features/row-pinning/rowPinningFeature.js +56 -67
  154. package/dist/features/row-pinning/rowPinningFeature.js.map +1 -1
  155. package/dist/features/row-selection/rowSelectionFeature.cjs +65 -77
  156. package/dist/features/row-selection/rowSelectionFeature.cjs.map +1 -1
  157. package/dist/features/row-selection/rowSelectionFeature.d.cts +4 -15
  158. package/dist/features/row-selection/rowSelectionFeature.d.ts +4 -15
  159. package/dist/features/row-selection/rowSelectionFeature.js +66 -77
  160. package/dist/features/row-selection/rowSelectionFeature.js.map +1 -1
  161. package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
  162. package/dist/features/row-sorting/createSortedRowModel.js.map +1 -1
  163. package/dist/features/row-sorting/rowSortingFeature.cjs +45 -57
  164. package/dist/features/row-sorting/rowSortingFeature.cjs.map +1 -1
  165. package/dist/features/row-sorting/rowSortingFeature.d.cts +4 -15
  166. package/dist/features/row-sorting/rowSortingFeature.d.ts +4 -15
  167. package/dist/features/row-sorting/rowSortingFeature.js +46 -57
  168. package/dist/features/row-sorting/rowSortingFeature.js.map +1 -1
  169. package/dist/fns/aggregationFns.cjs +18 -18
  170. package/dist/fns/aggregationFns.cjs.map +1 -1
  171. package/dist/fns/aggregationFns.d.cts +21 -19
  172. package/dist/fns/aggregationFns.d.ts +21 -19
  173. package/dist/fns/aggregationFns.js +18 -18
  174. package/dist/fns/aggregationFns.js.map +1 -1
  175. package/dist/fns/filterFns.cjs +51 -65
  176. package/dist/fns/filterFns.cjs.map +1 -1
  177. package/dist/fns/filterFns.d.cts +82 -28
  178. package/dist/fns/filterFns.d.ts +82 -28
  179. package/dist/fns/filterFns.js +51 -65
  180. package/dist/fns/filterFns.js.map +1 -1
  181. package/dist/fns/sortFns.cjs.map +1 -1
  182. package/dist/fns/sortFns.d.cts +15 -13
  183. package/dist/fns/sortFns.d.ts +15 -13
  184. package/dist/fns/sortFns.js.map +1 -1
  185. package/dist/index.cjs +0 -20
  186. package/dist/index.d.cts +34 -34
  187. package/dist/index.d.ts +34 -34
  188. package/dist/index.js +21 -21
  189. package/dist/types/Cell.d.cts +7 -9
  190. package/dist/types/Cell.d.ts +7 -9
  191. package/dist/types/Column.d.cts +16 -9
  192. package/dist/types/Column.d.ts +16 -9
  193. package/dist/types/ColumnDef.d.cts +13 -8
  194. package/dist/types/ColumnDef.d.ts +13 -8
  195. package/dist/types/Header.d.cts +8 -9
  196. package/dist/types/Header.d.ts +8 -9
  197. package/dist/types/HeaderGroup.d.cts +3 -8
  198. package/dist/types/HeaderGroup.d.ts +3 -8
  199. package/dist/types/Row.d.cts +13 -9
  200. package/dist/types/Row.d.ts +13 -9
  201. package/dist/types/RowModel.d.cts +21 -11
  202. package/dist/types/RowModel.d.ts +21 -11
  203. package/dist/types/RowModelFns.d.cts +9 -9
  204. package/dist/types/RowModelFns.d.ts +9 -9
  205. package/dist/types/Table.d.cts +20 -9
  206. package/dist/types/Table.d.ts +20 -9
  207. package/dist/types/TableFeatures.d.cts +14 -38
  208. package/dist/types/TableFeatures.d.ts +14 -38
  209. package/dist/types/TableOptions.d.cts +20 -5
  210. package/dist/types/TableOptions.d.ts +20 -5
  211. package/dist/types/TableState.d.cts +20 -11
  212. package/dist/types/TableState.d.ts +20 -11
  213. package/dist/utils.cjs.map +1 -1
  214. package/dist/utils.d.cts +1 -1
  215. package/dist/utils.d.ts +1 -1
  216. package/dist/utils.js.map +1 -1
  217. package/package.json +1 -1
  218. package/src/core/cells/coreCellsFeature.ts +17 -39
  219. package/src/core/columns/coreColumnsFeature.ts +56 -83
  220. package/src/core/headers/buildHeaderGroups.ts +1 -1
  221. package/src/core/headers/coreHeadersFeature.ts +42 -64
  222. package/src/core/headers/coreHeadersFeature.utils.ts +1 -1
  223. package/src/core/row-models/coreRowModelsFeature.ts +43 -64
  224. package/src/core/row-models/coreRowModelsFeature.types.ts +2 -6
  225. package/src/core/row-models/createCoreRowModel.ts +1 -1
  226. package/src/core/rows/coreRowsFeature.ts +45 -72
  227. package/src/core/table/constructTable.ts +10 -7
  228. package/src/core/table/coreTablesFeature.ts +13 -35
  229. package/src/core/table/coreTablesFeature.utils.ts +1 -1
  230. package/src/features/column-faceting/columnFacetingFeature.ts +71 -102
  231. package/src/features/column-faceting/createFacetedMinMaxValues.ts +1 -1
  232. package/src/features/column-faceting/createFacetedRowModel.ts +1 -1
  233. package/src/features/column-faceting/createFacetedUniqueValues.ts +1 -1
  234. package/src/features/column-filtering/columnFilteringFeature.ts +60 -103
  235. package/src/features/column-filtering/columnFilteringFeature.types.ts +3 -3
  236. package/src/features/column-filtering/columnFilteringFeature.utils.ts +4 -4
  237. package/src/features/column-filtering/createFilteredRowModel.ts +2 -2
  238. package/src/features/column-grouping/columnGroupingFeature.ts +82 -126
  239. package/src/features/column-grouping/createGroupedRowModel.ts +1 -1
  240. package/src/features/column-ordering/columnOrderingFeature.ts +52 -84
  241. package/src/features/column-pinning/columnPinningFeature.ts +268 -304
  242. package/src/features/column-pinning/columnPinningFeature.utils.ts +5 -5
  243. package/src/features/column-resizing/columnResizingFeature.ts +44 -78
  244. package/src/features/column-sizing/columnSizingFeature.ts +115 -152
  245. package/src/features/column-visibility/columnVisibilityFeature.ts +92 -129
  246. package/src/features/global-filtering/globalFilteringFeature.ts +45 -79
  247. package/src/features/global-filtering/globalFilteringFeature.utils.ts +4 -2
  248. package/src/features/row-expanding/createExpandedRowModel.ts +1 -1
  249. package/src/features/row-expanding/rowExpandingFeature.ts +65 -101
  250. package/src/features/row-pagination/createPaginatedRowModel.ts +1 -1
  251. package/src/features/row-pagination/rowPaginationFeature.ts +69 -103
  252. package/src/features/row-pinning/rowPinningFeature.ts +72 -104
  253. package/src/features/row-selection/rowSelectionFeature.ts +103 -135
  254. package/src/features/row-sorting/createSortedRowModel.ts +1 -1
  255. package/src/features/row-sorting/rowSortingFeature.ts +73 -114
  256. package/src/fns/aggregationFns.ts +26 -42
  257. package/src/fns/filterFns.ts +231 -264
  258. package/src/fns/sortFns.ts +18 -19
  259. package/src/types/Cell.ts +8 -28
  260. package/src/types/Column.ts +18 -53
  261. package/src/types/ColumnDef.ts +20 -47
  262. package/src/types/Header.ts +8 -30
  263. package/src/types/HeaderGroup.ts +2 -13
  264. package/src/types/Row.ts +15 -36
  265. package/src/types/RowModel.ts +28 -67
  266. package/src/types/RowModelFns.ts +11 -30
  267. package/src/types/Table.ts +23 -64
  268. package/src/types/TableFeatures.ts +60 -109
  269. package/src/types/TableOptions.ts +32 -71
  270. package/src/types/TableState.ts +20 -73
  271. package/src/utils.ts +5 -4
@@ -7,72 +7,50 @@ import {
7
7
  table_getHeaderGroups,
8
8
  table_getLeafHeaders,
9
9
  } from './coreHeadersFeature.utils'
10
- import type { RowData } from '../../types/type-utils'
11
- import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
12
- // import type { Header_Header, Table_Headers } from './coreHeadersFeature.types'
13
-
14
- export interface CoreHeadersFeatureConstructors<
15
- TFeatures extends TableFeatures,
16
- TData extends RowData,
17
- > {
18
- // Header: Header_Header<TFeatures, TData>
19
- // Table: Table_Headers<TFeatures, TData>
20
- }
10
+ import type { TableFeature } from '../../types/TableFeatures'
21
11
 
22
12
  /**
23
- * Creates the stock core headers feature.
24
- *
25
- * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
13
+ * Core feature that builds header groups and exposes header context APIs.
26
14
  */
27
- export function constructCoreHeadersFeature<
28
- TFeatures extends TableFeatures,
29
- TData extends RowData,
30
- >(): TableFeature<CoreHeadersFeatureConstructors<TFeatures, TData>> {
31
- return {
32
- assignHeaderPrototype: (prototype, table) => {
33
- assignPrototypeAPIs('coreHeadersFeature', prototype, table, {
34
- header_getLeafHeaders: {
35
- fn: (header) => header_getLeafHeaders(header),
36
- memoDeps: (header) => [header.column.table.options.columns],
37
- },
38
- header_getContext: {
39
- fn: (header) => header_getContext(header),
40
- memoDeps: (header) => [header.column.table.options.columns],
41
- },
42
- })
43
- },
15
+ export const coreHeadersFeature: TableFeature = {
16
+ assignHeaderPrototype: (prototype, table) => {
17
+ assignPrototypeAPIs('coreHeadersFeature', prototype, table, {
18
+ header_getLeafHeaders: {
19
+ fn: (header) => header_getLeafHeaders(header),
20
+ memoDeps: (header) => [header.column.table.options.columns],
21
+ },
22
+ header_getContext: {
23
+ fn: (header) => header_getContext(header),
24
+ memoDeps: (header) => [header.column.table.options.columns],
25
+ },
26
+ })
27
+ },
44
28
 
45
- constructTableAPIs: (table) => {
46
- assignTableAPIs('coreHeadersFeature', table, {
47
- table_getHeaderGroups: {
48
- fn: () => table_getHeaderGroups(table),
49
- memoDeps: () => [
50
- table.options.columns,
51
- table.atoms.columnOrder?.get(),
52
- table.atoms.grouping?.get(),
53
- table.atoms.columnPinning?.get(),
54
- table.atoms.columnVisibility?.get(),
55
- table.options.groupedColumnMode,
56
- ],
57
- },
58
- table_getFooterGroups: {
59
- fn: () => table_getFooterGroups(table),
60
- memoDeps: () => [table.getHeaderGroups()],
61
- },
62
- table_getFlatHeaders: {
63
- fn: () => table_getFlatHeaders(table),
64
- memoDeps: () => [table.getHeaderGroups()],
65
- },
66
- table_getLeafHeaders: {
67
- fn: () => table_getLeafHeaders(table),
68
- memoDeps: () => [table.getHeaderGroups()],
69
- },
70
- })
71
- },
72
- }
29
+ constructTableAPIs: (table) => {
30
+ assignTableAPIs('coreHeadersFeature', table, {
31
+ table_getHeaderGroups: {
32
+ fn: () => table_getHeaderGroups(table),
33
+ memoDeps: () => [
34
+ table.options.columns,
35
+ table.atoms.columnOrder?.get(),
36
+ table.atoms.grouping?.get(),
37
+ table.atoms.columnPinning?.get(),
38
+ table.atoms.columnVisibility?.get(),
39
+ table.options.groupedColumnMode,
40
+ ],
41
+ },
42
+ table_getFooterGroups: {
43
+ fn: () => table_getFooterGroups(table),
44
+ memoDeps: () => [table.getHeaderGroups()],
45
+ },
46
+ table_getFlatHeaders: {
47
+ fn: () => table_getFlatHeaders(table),
48
+ memoDeps: () => [table.getHeaderGroups()],
49
+ },
50
+ table_getLeafHeaders: {
51
+ fn: () => table_getLeafHeaders(table),
52
+ memoDeps: () => [table.getHeaderGroups()],
53
+ },
54
+ })
55
+ },
73
56
  }
74
-
75
- /**
76
- * The Core Headers feature provides the core header functionality.
77
- */
78
- export const coreHeadersFeature = constructCoreHeadersFeature()
@@ -86,7 +86,7 @@ export function table_getHeaderGroups<
86
86
  table,
87
87
  'getVisibleLeafColumns',
88
88
  table_getVisibleLeafColumns,
89
- ) as Array<Column<TFeatures, TData, unknown>>
89
+ )
90
90
 
91
91
  // Fast path: no columns are pinned — skip per-side lookups, partition, and spread.
92
92
  if (!left.length && !right.length) {
@@ -13,71 +13,50 @@ import {
13
13
  table_getRowModel,
14
14
  table_getSortedRowModel,
15
15
  } from './coreRowModelsFeature.utils'
16
- import type { RowData } from '../../types/type-utils'
17
- import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
18
- // import type { Table_RowModels } from './coreRowModelsFeature.types'
19
-
20
- export interface CoreRowModelsFeatureConstructors<
21
- TFeatures extends TableFeatures,
22
- TData extends RowData,
23
- > {
24
- // Table: Table_RowModels<TFeatures, TData>
25
- }
16
+ import type { TableFeature } from '../../types/TableFeatures'
26
17
 
27
18
  /**
28
- * Creates the stock core row models feature.
29
- *
30
- * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
19
+ * Core feature that wires table row-model accessors and row-model caches.
31
20
  */
32
- export function constructCoreRowModelsFeature<
33
- TFeatures extends TableFeatures,
34
- TData extends RowData,
35
- >(): TableFeature<CoreRowModelsFeatureConstructors<TFeatures, TData>> {
36
- return {
37
- constructTableAPIs: (table) => {
38
- assignTableAPIs('coreRowModelsFeature', table, {
39
- table_getCoreRowModel: {
40
- fn: () => table_getCoreRowModel(table),
41
- },
42
- table_getPreFilteredRowModel: {
43
- fn: () => table_getPreFilteredRowModel(table),
44
- },
45
- table_getFilteredRowModel: {
46
- fn: () => table_getFilteredRowModel(table),
47
- },
48
- table_getPreGroupedRowModel: {
49
- fn: () => table_getPreGroupedRowModel(table),
50
- },
51
- table_getGroupedRowModel: {
52
- fn: () => table_getGroupedRowModel(table),
53
- },
54
- table_getPreSortedRowModel: {
55
- fn: () => table_getPreSortedRowModel(table),
56
- },
57
- table_getSortedRowModel: {
58
- fn: () => table_getSortedRowModel(table),
59
- },
60
- table_getPreExpandedRowModel: {
61
- fn: () => table_getPreExpandedRowModel(table),
62
- },
63
- table_getExpandedRowModel: {
64
- fn: () => table_getExpandedRowModel(table),
65
- },
66
- table_getPrePaginatedRowModel: {
67
- fn: () => table_getPrePaginatedRowModel(table),
68
- },
69
- table_getPaginatedRowModel: {
70
- fn: () => table_getPaginatedRowModel(table),
71
- },
72
- table_getRowModel: {
73
- fn: () => table_getRowModel(table),
74
- },
75
- })
76
- },
77
- }
21
+ export const coreRowModelsFeature: TableFeature = {
22
+ constructTableAPIs: (table) => {
23
+ assignTableAPIs('coreRowModelsFeature', table, {
24
+ table_getCoreRowModel: {
25
+ fn: () => table_getCoreRowModel(table),
26
+ },
27
+ table_getPreFilteredRowModel: {
28
+ fn: () => table_getPreFilteredRowModel(table),
29
+ },
30
+ table_getFilteredRowModel: {
31
+ fn: () => table_getFilteredRowModel(table),
32
+ },
33
+ table_getPreGroupedRowModel: {
34
+ fn: () => table_getPreGroupedRowModel(table),
35
+ },
36
+ table_getGroupedRowModel: {
37
+ fn: () => table_getGroupedRowModel(table),
38
+ },
39
+ table_getPreSortedRowModel: {
40
+ fn: () => table_getPreSortedRowModel(table),
41
+ },
42
+ table_getSortedRowModel: {
43
+ fn: () => table_getSortedRowModel(table),
44
+ },
45
+ table_getPreExpandedRowModel: {
46
+ fn: () => table_getPreExpandedRowModel(table),
47
+ },
48
+ table_getExpandedRowModel: {
49
+ fn: () => table_getExpandedRowModel(table),
50
+ },
51
+ table_getPrePaginatedRowModel: {
52
+ fn: () => table_getPrePaginatedRowModel(table),
53
+ },
54
+ table_getPaginatedRowModel: {
55
+ fn: () => table_getPaginatedRowModel(table),
56
+ },
57
+ table_getRowModel: {
58
+ fn: () => table_getRowModel(table),
59
+ },
60
+ })
61
+ },
78
62
  }
79
-
80
- /**
81
- * The Core Row Models feature provides the core row model functionality.
82
- */
83
- export const coreRowModelsFeature = constructCoreRowModelsFeature()
@@ -18,12 +18,10 @@ export interface RowModel<
18
18
  rowsById: Record<string, Row<TFeatures, TData>>
19
19
  }
20
20
 
21
- export interface CreateRowModel_Plugins {}
22
-
23
21
  export interface CreateRowModel_Core<
24
22
  TFeatures extends TableFeatures,
25
23
  TData extends RowData,
26
- > extends CreateRowModel_Plugins {
24
+ > {
27
25
  /**
28
26
  * Optional factory for the core row model. When omitted, the built-in
29
27
  * `createCoreRowModel()` factory is used.
@@ -33,12 +31,10 @@ export interface CreateRowModel_Core<
33
31
  ) => () => RowModel<TFeatures, TData>
34
32
  }
35
33
 
36
- export interface CachedRowModel_Plugins {}
37
-
38
34
  export interface CachedRowModel_Core<
39
35
  TFeatures extends TableFeatures,
40
36
  TData extends RowData,
41
- > extends CachedRowModel_Plugins {
37
+ > {
42
38
  coreRowModel: () => RowModel<TFeatures, TData>
43
39
  }
44
40
 
@@ -17,7 +17,7 @@ export function createCoreRowModel<
17
17
  TData extends RowData,
18
18
  >(): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {
19
19
  return (_table) => {
20
- const table: Table_Internal<TFeatures, TData> = _table
20
+ const table = _table as unknown as Table_Internal<TFeatures, TData>
21
21
  return tableMemo({
22
22
  feature: 'coreRowModelsFeature',
23
23
  table,
@@ -11,79 +11,52 @@ import {
11
11
  table_getRow,
12
12
  table_getRowId,
13
13
  } from './coreRowsFeature.utils'
14
- import type { RowData } from '../../types/type-utils'
15
- import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
16
- // import type {
17
- // Row_Row,
18
- // TableOptions_Rows,
19
- // Table_Rows,
20
- // } from './coreRowsFeature.types'
21
-
22
- export interface CoreRowsFeatureConstructors<
23
- TFeatures extends TableFeatures,
24
- TData extends RowData,
25
- > {
26
- // Row: Row_Row<TFeatures, TData>
27
- // TableOptions: TableOptions_Rows<TFeatures, TData>
28
- // Table: Table_Rows<TFeatures, TData>
29
- }
14
+ import type { TableFeature } from '../../types/TableFeatures'
30
15
 
31
16
  /**
32
- * Creates the stock core rows feature.
33
- *
34
- * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
17
+ * Core feature that creates row APIs for values, cells, and tree traversal.
35
18
  */
36
- export function constructCoreRowsFeature<
37
- TFeatures extends TableFeatures,
38
- TData extends RowData,
39
- >(): TableFeature<CoreRowsFeatureConstructors<TFeatures, TData>> {
40
- return {
41
- assignRowPrototype: (prototype, table) => {
42
- assignPrototypeAPIs('coreRowsFeature', prototype, table, {
43
- row_getAllCellsByColumnId: {
44
- fn: (row) => row_getAllCellsByColumnId(row),
45
- memoDeps: (row) => [row.getAllCells()],
46
- },
47
- row_getAllCells: {
48
- fn: (row) => row_getAllCells(row),
49
- memoDeps: (row) => [row.table.getAllLeafColumns()],
50
- },
51
- row_getLeafRows: {
52
- fn: (row) => row_getLeafRows(row),
53
- },
54
- row_getParentRow: {
55
- fn: (row) => row_getParentRow(row),
56
- },
57
- row_getParentRows: {
58
- fn: (row) => row_getParentRows(row),
59
- },
60
- row_getUniqueValues: {
61
- fn: (row, columnId) => row_getUniqueValues(row, columnId),
62
- },
63
- row_getValue: {
64
- fn: (row, columnId) => row_getValue(row, columnId),
65
- },
66
- row_renderValue: {
67
- fn: (row, columnId) => row_renderValue(row, columnId),
68
- },
69
- })
70
- },
71
- constructTableAPIs: (table) => {
72
- assignTableAPIs('coreRowsFeature', table, {
73
- table_getRowId: {
74
- fn: (originalRow, index, parent) =>
75
- table_getRowId(originalRow, table, index, parent),
76
- },
77
- table_getRow: {
78
- fn: (id: string, searchAll?: boolean) =>
79
- table_getRow(table, id, searchAll),
80
- },
81
- })
82
- },
83
- }
19
+ export const coreRowsFeature: TableFeature = {
20
+ assignRowPrototype: (prototype, table) => {
21
+ assignPrototypeAPIs('coreRowsFeature', prototype, table, {
22
+ row_getAllCellsByColumnId: {
23
+ fn: (row) => row_getAllCellsByColumnId(row),
24
+ memoDeps: (row) => [row.getAllCells()],
25
+ },
26
+ row_getAllCells: {
27
+ fn: (row) => row_getAllCells(row),
28
+ memoDeps: (row) => [row.table.getAllLeafColumns()],
29
+ },
30
+ row_getLeafRows: {
31
+ fn: (row) => row_getLeafRows(row),
32
+ },
33
+ row_getParentRow: {
34
+ fn: (row) => row_getParentRow(row),
35
+ },
36
+ row_getParentRows: {
37
+ fn: (row) => row_getParentRows(row),
38
+ },
39
+ row_getUniqueValues: {
40
+ fn: (row, columnId) => row_getUniqueValues(row, columnId),
41
+ },
42
+ row_getValue: {
43
+ fn: (row, columnId) => row_getValue(row, columnId),
44
+ },
45
+ row_renderValue: {
46
+ fn: (row, columnId) => row_renderValue(row, columnId),
47
+ },
48
+ })
49
+ },
50
+ constructTableAPIs: (table) => {
51
+ assignTableAPIs('coreRowsFeature', table, {
52
+ table_getRowId: {
53
+ fn: (originalRow, index, parent) =>
54
+ table_getRowId(originalRow, table, index, parent),
55
+ },
56
+ table_getRow: {
57
+ fn: (id: string, searchAll?: boolean) =>
58
+ table_getRow(table, id, searchAll),
59
+ },
60
+ })
61
+ },
84
62
  }
85
-
86
- /**
87
- * The Core Rows feature provides the core row functionality.
88
- */
89
- export const coreRowsFeature = constructCoreRowsFeature()
@@ -7,7 +7,7 @@ import type { RowData } from '../../types/type-utils'
7
7
  import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
8
8
  import type { Table, Table_Internal } from '../../types/Table'
9
9
  import type { TableOptions } from '../../types/TableOptions'
10
- import type { TableState } from '../../types/TableState'
10
+ import type { TableState, TableState_All } from '../../types/TableState'
11
11
 
12
12
  /**
13
13
  * Builds the initial table state from registered features and user initial state.
@@ -44,7 +44,7 @@ export function constructTable<
44
44
  atoms: {},
45
45
  } as Table_Internal<TFeatures, TData>
46
46
 
47
- const featuresList: Array<TableFeature<{}>> = Object.values(table._features)
47
+ const featuresList: Array<TableFeature> = Object.values(table._features)
48
48
 
49
49
  const defaultOptions = featuresList.reduce((obj, feature) => {
50
50
  return Object.assign(obj, feature.getDefaultTableOptions?.(table))
@@ -100,7 +100,7 @@ export function constructTable<
100
100
  )
101
101
 
102
102
  const stateKeys = Object.keys(table.initialState) as Array<
103
- string & keyof TableState<TFeatures>
103
+ string & keyof TableState_All
104
104
  >
105
105
 
106
106
  for (let i = 0; i < stateKeys.length; i++) {
@@ -115,11 +115,14 @@ export function constructTable<
115
115
  // create readonly derived atom: on each get(), read either external atom or base atom
116
116
  ;(table.atoms as any)[key] = _reactivity.createReadonlyAtom(
117
117
  () => {
118
- const externalAtom = table.options.atoms?.[key]
118
+ const externalAtoms = table.options.atoms as
119
+ | Partial<Record<keyof TableState_All, Atom<unknown>>>
120
+ | undefined
121
+ const externalAtom = externalAtoms?.[key]
119
122
  if (externalAtom) {
120
123
  return externalAtom.get()
121
124
  }
122
- return table.baseAtoms[key].get()
125
+ return table.baseAtoms[key]!.get()
123
126
  },
124
127
  { debugName: `table/atoms/${key}` },
125
128
  )
@@ -130,10 +133,10 @@ export function constructTable<
130
133
  table.store = atomToStore(
131
134
  _reactivity.createReadonlyAtom(
132
135
  () => {
133
- const snapshot = {} as TableState<TFeatures>
136
+ const snapshot = {} as TableState<TFeatures> & TableState_All
134
137
  for (let i = 0; i < stateKeys.length; i++) {
135
138
  const key = stateKeys[i]!
136
- snapshot[key] = table.atoms[key].get()
139
+ ;(snapshot as Record<string, unknown>)[key] = table.atoms[key]!.get()
137
140
  }
138
141
  return snapshot
139
142
  },
@@ -1,41 +1,19 @@
1
1
  import { assignTableAPIs } from '../../utils'
2
2
  import { table_reset, table_setOptions } from './coreTablesFeature.utils'
3
- import type { RowData } from '../../types/type-utils'
4
- import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
5
- // import type { TableOptions_Table, Table_Table } from './coreTablesFeature.types'
6
-
7
- export interface CoreTablesFeatureConstructors<
8
- TFeatures extends TableFeatures,
9
- TData extends RowData,
10
- > {
11
- // Table: Table_Table<TFeatures, TData>
12
- // TableOptions: TableOptions_Table<TFeatures, TData>
13
- }
3
+ import type { TableFeature } from '../../types/TableFeatures'
14
4
 
15
5
  /**
16
- * Creates the stock core tables feature.
17
- *
18
- * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
6
+ * Core feature that adds base table instance APIs such as reset and setOptions.
19
7
  */
20
- export function constructCoreTablesFeature<
21
- TFeatures extends TableFeatures,
22
- TData extends RowData,
23
- >(): TableFeature<CoreTablesFeatureConstructors<TFeatures, TData>> {
24
- return {
25
- constructTableAPIs: (table) => {
26
- assignTableAPIs('coreTablesFeature', table, {
27
- table_reset: {
28
- fn: () => table_reset(table),
29
- },
30
- table_setOptions: {
31
- fn: (updater) => table_setOptions(table, updater),
32
- },
33
- })
34
- },
35
- }
8
+ export const coreTablesFeature: TableFeature = {
9
+ constructTableAPIs: (table) => {
10
+ assignTableAPIs('coreTablesFeature', table, {
11
+ table_reset: {
12
+ fn: () => table_reset(table),
13
+ },
14
+ table_setOptions: {
15
+ fn: (updater) => table_setOptions(table, updater),
16
+ },
17
+ })
18
+ },
36
19
  }
37
-
38
- /**
39
- * The Core Tables feature provides the core table functionality for handling state and options.
40
- */
41
- export const coreTablesFeature = constructCoreTablesFeature()
@@ -59,7 +59,7 @@ export function table_reset<
59
59
  const keys = Object.keys(snap) as Array<keyof typeof snap>
60
60
  for (let i = 0; i < keys.length; i++) {
61
61
  const key = keys[i]!
62
- ;(table.baseAtoms as any)[key].set(snap[key] as any)
62
+ ;(table.baseAtoms as any)[key].set(snap[key])
63
63
  }
64
64
  })
65
65
  }