@tanstack/table-core 9.0.0-beta.2 → 9.0.0-beta.7

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 (278) 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/features/row-sorting/rowSortingFeature.utils.cjs +8 -5
  170. package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -1
  171. package/dist/features/row-sorting/rowSortingFeature.utils.js +8 -5
  172. package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -1
  173. package/dist/fns/aggregationFns.cjs +18 -18
  174. package/dist/fns/aggregationFns.cjs.map +1 -1
  175. package/dist/fns/aggregationFns.d.cts +21 -19
  176. package/dist/fns/aggregationFns.d.ts +21 -19
  177. package/dist/fns/aggregationFns.js +18 -18
  178. package/dist/fns/aggregationFns.js.map +1 -1
  179. package/dist/fns/filterFns.cjs +51 -65
  180. package/dist/fns/filterFns.cjs.map +1 -1
  181. package/dist/fns/filterFns.d.cts +82 -28
  182. package/dist/fns/filterFns.d.ts +82 -28
  183. package/dist/fns/filterFns.js +51 -65
  184. package/dist/fns/filterFns.js.map +1 -1
  185. package/dist/fns/sortFns.cjs +18 -6
  186. package/dist/fns/sortFns.cjs.map +1 -1
  187. package/dist/fns/sortFns.d.cts +15 -13
  188. package/dist/fns/sortFns.d.ts +15 -13
  189. package/dist/fns/sortFns.js +18 -6
  190. package/dist/fns/sortFns.js.map +1 -1
  191. package/dist/index.cjs +0 -20
  192. package/dist/index.d.cts +34 -34
  193. package/dist/index.d.ts +34 -34
  194. package/dist/index.js +21 -21
  195. package/dist/types/Cell.d.cts +3 -8
  196. package/dist/types/Cell.d.ts +3 -8
  197. package/dist/types/Column.d.cts +3 -8
  198. package/dist/types/Column.d.ts +3 -8
  199. package/dist/types/ColumnDef.d.cts +3 -8
  200. package/dist/types/ColumnDef.d.ts +3 -8
  201. package/dist/types/Header.d.cts +3 -8
  202. package/dist/types/Header.d.ts +3 -8
  203. package/dist/types/HeaderGroup.d.cts +3 -8
  204. package/dist/types/HeaderGroup.d.ts +3 -8
  205. package/dist/types/Row.d.cts +3 -8
  206. package/dist/types/Row.d.ts +3 -8
  207. package/dist/types/RowModel.d.cts +4 -10
  208. package/dist/types/RowModel.d.ts +4 -10
  209. package/dist/types/RowModelFns.d.cts +3 -8
  210. package/dist/types/RowModelFns.d.ts +3 -8
  211. package/dist/types/Table.d.cts +3 -8
  212. package/dist/types/Table.d.ts +3 -8
  213. package/dist/types/TableFeatures.d.cts +13 -39
  214. package/dist/types/TableFeatures.d.ts +13 -39
  215. package/dist/types/TableOptions.d.cts +3 -4
  216. package/dist/types/TableOptions.d.ts +3 -4
  217. package/dist/types/TableState.d.cts +5 -10
  218. package/dist/types/TableState.d.ts +5 -10
  219. package/dist/utils.cjs.map +1 -1
  220. package/dist/utils.d.cts +1 -1
  221. package/dist/utils.d.ts +1 -1
  222. package/dist/utils.js.map +1 -1
  223. package/package.json +1 -1
  224. package/src/core/cells/coreCellsFeature.ts +17 -39
  225. package/src/core/columns/coreColumnsFeature.ts +56 -83
  226. package/src/core/headers/buildHeaderGroups.ts +1 -1
  227. package/src/core/headers/coreHeadersFeature.ts +42 -64
  228. package/src/core/headers/coreHeadersFeature.utils.ts +1 -1
  229. package/src/core/row-models/coreRowModelsFeature.ts +43 -64
  230. package/src/core/row-models/coreRowModelsFeature.types.ts +2 -6
  231. package/src/core/row-models/createCoreRowModel.ts +1 -1
  232. package/src/core/rows/coreRowsFeature.ts +45 -72
  233. package/src/core/table/constructTable.ts +10 -7
  234. package/src/core/table/coreTablesFeature.ts +13 -35
  235. package/src/core/table/coreTablesFeature.utils.ts +1 -1
  236. package/src/features/column-faceting/columnFacetingFeature.ts +71 -102
  237. package/src/features/column-faceting/createFacetedMinMaxValues.ts +1 -1
  238. package/src/features/column-faceting/createFacetedRowModel.ts +1 -1
  239. package/src/features/column-faceting/createFacetedUniqueValues.ts +1 -1
  240. package/src/features/column-filtering/columnFilteringFeature.ts +60 -103
  241. package/src/features/column-filtering/columnFilteringFeature.types.ts +3 -3
  242. package/src/features/column-filtering/columnFilteringFeature.utils.ts +4 -4
  243. package/src/features/column-filtering/createFilteredRowModel.ts +2 -2
  244. package/src/features/column-grouping/columnGroupingFeature.ts +82 -126
  245. package/src/features/column-grouping/createGroupedRowModel.ts +1 -1
  246. package/src/features/column-ordering/columnOrderingFeature.ts +52 -84
  247. package/src/features/column-pinning/columnPinningFeature.ts +268 -304
  248. package/src/features/column-pinning/columnPinningFeature.utils.ts +5 -5
  249. package/src/features/column-resizing/columnResizingFeature.ts +44 -78
  250. package/src/features/column-sizing/columnSizingFeature.ts +115 -152
  251. package/src/features/column-visibility/columnVisibilityFeature.ts +92 -129
  252. package/src/features/global-filtering/globalFilteringFeature.ts +45 -79
  253. package/src/features/global-filtering/globalFilteringFeature.utils.ts +4 -2
  254. package/src/features/row-expanding/createExpandedRowModel.ts +1 -1
  255. package/src/features/row-expanding/rowExpandingFeature.ts +65 -101
  256. package/src/features/row-pagination/createPaginatedRowModel.ts +1 -1
  257. package/src/features/row-pagination/rowPaginationFeature.ts +69 -103
  258. package/src/features/row-pinning/rowPinningFeature.ts +72 -104
  259. package/src/features/row-selection/rowSelectionFeature.ts +103 -135
  260. package/src/features/row-sorting/createSortedRowModel.ts +1 -1
  261. package/src/features/row-sorting/rowSortingFeature.ts +73 -114
  262. package/src/features/row-sorting/rowSortingFeature.utils.ts +8 -6
  263. package/src/fns/aggregationFns.ts +26 -42
  264. package/src/fns/filterFns.ts +231 -264
  265. package/src/fns/sortFns.ts +51 -29
  266. package/src/types/Cell.ts +3 -19
  267. package/src/types/Column.ts +2 -18
  268. package/src/types/ColumnDef.ts +2 -18
  269. package/src/types/Header.ts +2 -18
  270. package/src/types/HeaderGroup.ts +2 -13
  271. package/src/types/Row.ts +2 -17
  272. package/src/types/RowModel.ts +3 -25
  273. package/src/types/RowModelFns.ts +2 -17
  274. package/src/types/Table.ts +2 -17
  275. package/src/types/TableFeatures.ts +51 -112
  276. package/src/types/TableOptions.ts +1 -12
  277. package/src/types/TableState.ts +4 -30
  278. package/src/utils.ts +5 -4
@@ -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 as Record<string, unknown>)[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
  }
@@ -11,110 +11,79 @@ import {
11
11
  table_getGlobalFacetedRowModel,
12
12
  table_getGlobalFacetedUniqueValues,
13
13
  } from './columnFacetingFeature.utils'
14
- import type { RowData } from '../../types/type-utils'
15
- import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
16
- import type { Column_Internal } from '../../types/Column'
17
- // import type {
18
- // CachedRowModel_Faceted,
19
- // Column_ColumnFaceting,
20
- // CreateRowModel_Faceted,
21
- // } from './columnFacetingFeature.types'
22
-
23
- export interface ColumnFacetingFeatureConstructors<
24
- TFeatures extends TableFeatures,
25
- TData extends RowData,
26
- > {
27
- // CachedRowModel: CachedRowModel_Faceted<TFeatures, TData>
28
- // Column: Column_ColumnFaceting<TFeatures, TData>
29
- // CreateRowModels: CreateRowModel_Faceted<TFeatures, TData>
30
- }
14
+ import type { TableFeature } from '../../types/TableFeatures'
31
15
 
32
16
  /**
33
- * Creates the stock column faceting feature.
34
- *
35
- * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
17
+ * Feature that derives faceted row models, unique values, and min/max values for filters.
36
18
  */
37
- export function constructColumnFacetingFeature<
38
- TFeatures extends TableFeatures,
39
- TData extends RowData,
40
- >(): TableFeature<ColumnFacetingFeatureConstructors<TFeatures, TData>> {
41
- return {
42
- assignColumnPrototype: (prototype, table) => {
43
- assignPrototypeAPIs('columnFacetingFeature', prototype, table, {
44
- column_getFacetedRowModel: {
45
- memoDeps: () => [
46
- table.getPreFilteredRowModel().rows,
47
- table.atoms.columnFilters?.get(),
48
- table.atoms.globalFilter?.get(),
49
- table.getFilteredRowModel().rows,
50
- ],
51
- fn: (column) => column_getFacetedRowModel(column, column.table),
52
- },
53
- column_getFacetedMinMaxValues: {
54
- memoDeps: (column: Column_Internal<TFeatures, TData>) => [
55
- callMemoOrStaticFn(
56
- column,
57
- 'getFacetedRowModel',
58
- column_getFacetedRowModel,
59
- column.table,
60
- ).flatRows,
61
- ],
62
- fn: (column) => column_getFacetedMinMaxValues(column, column.table),
63
- },
64
- column_getFacetedUniqueValues: {
65
- memoDeps: (column: Column_Internal<TFeatures, TData>) => [
66
- callMemoOrStaticFn(
67
- column,
68
- 'getFacetedRowModel',
69
- column_getFacetedRowModel,
70
- column.table,
71
- ).flatRows,
72
- ],
73
- fn: (column) => column_getFacetedUniqueValues(column, column.table),
74
- },
75
- })
76
- },
19
+ export const columnFacetingFeature: TableFeature = {
20
+ assignColumnPrototype: (prototype, table) => {
21
+ assignPrototypeAPIs('columnFacetingFeature', prototype, table, {
22
+ column_getFacetedRowModel: {
23
+ memoDeps: () => [
24
+ table.getPreFilteredRowModel().rows,
25
+ table.atoms.columnFilters?.get(),
26
+ table.atoms.globalFilter?.get(),
27
+ table.getFilteredRowModel().rows,
28
+ ],
29
+ fn: (column) => column_getFacetedRowModel(column, column.table),
30
+ },
31
+ column_getFacetedMinMaxValues: {
32
+ memoDeps: (column) => [
33
+ callMemoOrStaticFn(
34
+ column,
35
+ 'getFacetedRowModel',
36
+ column_getFacetedRowModel,
37
+ column.table,
38
+ ).flatRows,
39
+ ],
40
+ fn: (column) => column_getFacetedMinMaxValues(column, column.table),
41
+ },
42
+ column_getFacetedUniqueValues: {
43
+ memoDeps: (column) => [
44
+ callMemoOrStaticFn(
45
+ column,
46
+ 'getFacetedRowModel',
47
+ column_getFacetedRowModel,
48
+ column.table,
49
+ ).flatRows,
50
+ ],
51
+ fn: (column) => column_getFacetedUniqueValues(column, column.table),
52
+ },
53
+ })
54
+ },
77
55
 
78
- constructTableAPIs: (table) => {
79
- assignTableAPIs('columnFacetingFeature', table, {
80
- table_getGlobalFacetedRowModel: {
81
- memoDeps: () => [
82
- table.getPreFilteredRowModel().rows,
83
- table.atoms.columnFilters?.get(),
84
- table.atoms.globalFilter?.get(),
85
- table.getFilteredRowModel().rows,
86
- ],
87
- fn: () => table_getGlobalFacetedRowModel(table),
88
- },
89
- table_getGlobalFacetedMinMaxValues: {
90
- memoDeps: () => [
91
- callMemoOrStaticFn(
92
- table,
93
- 'getGlobalFacetedRowModel',
94
- table_getGlobalFacetedRowModel,
95
- ).flatRows,
96
- ],
97
- fn: () => table_getGlobalFacetedMinMaxValues(table),
98
- },
99
- table_getGlobalFacetedUniqueValues: {
100
- memoDeps: () => [
101
- callMemoOrStaticFn(
102
- table,
103
- 'getGlobalFacetedRowModel',
104
- table_getGlobalFacetedRowModel,
105
- ).flatRows,
106
- ],
107
- fn: () => table_getGlobalFacetedUniqueValues(table),
108
- },
109
- })
110
- },
111
- }
56
+ constructTableAPIs: (table) => {
57
+ assignTableAPIs('columnFacetingFeature', table, {
58
+ table_getGlobalFacetedRowModel: {
59
+ memoDeps: () => [
60
+ table.getPreFilteredRowModel().rows,
61
+ table.atoms.columnFilters?.get(),
62
+ table.atoms.globalFilter?.get(),
63
+ table.getFilteredRowModel().rows,
64
+ ],
65
+ fn: () => table_getGlobalFacetedRowModel(table),
66
+ },
67
+ table_getGlobalFacetedMinMaxValues: {
68
+ memoDeps: () => [
69
+ callMemoOrStaticFn(
70
+ table,
71
+ 'getGlobalFacetedRowModel',
72
+ table_getGlobalFacetedRowModel,
73
+ ).flatRows,
74
+ ],
75
+ fn: () => table_getGlobalFacetedMinMaxValues(table),
76
+ },
77
+ table_getGlobalFacetedUniqueValues: {
78
+ memoDeps: () => [
79
+ callMemoOrStaticFn(
80
+ table,
81
+ 'getGlobalFacetedRowModel',
82
+ table_getGlobalFacetedRowModel,
83
+ ).flatRows,
84
+ ],
85
+ fn: () => table_getGlobalFacetedUniqueValues(table),
86
+ },
87
+ })
88
+ },
112
89
  }
113
-
114
- /**
115
- * The stock column faceting feature.
116
- *
117
- * Register this feature to add faceted row model, unique value, and min/max
118
- * helpers for column and global filter UIs.
119
- */
120
- export const columnFacetingFeature = constructColumnFacetingFeature()
@@ -18,7 +18,7 @@ export function createFacetedMinMaxValues<
18
18
  columnId: string,
19
19
  ) => () => undefined | [number, number] {
20
20
  return (_table, columnId) => {
21
- const table: Table_Internal<TFeatures, TData> = _table
21
+ const table = _table as unknown as Table_Internal<TFeatures, TData>
22
22
  return tableMemo({
23
23
  feature: 'columnFacetingFeature',
24
24
  fn: (flatRows) => _createFacetedMinMaxValues(columnId, flatRows),
@@ -23,7 +23,7 @@ export function createFacetedRowModel<
23
23
  columnId: string,
24
24
  ) => () => RowModel<TFeatures, TData> {
25
25
  return (_table, columnId) => {
26
- const table: Table_Internal<TFeatures, TData> = _table
26
+ const table = _table as unknown as Table_Internal<TFeatures, TData>
27
27
  return tableMemo({
28
28
  feature: 'columnFacetingFeature',
29
29
  table,
@@ -18,7 +18,7 @@ export function createFacetedUniqueValues<
18
18
  columnId: string,
19
19
  ) => () => Map<any, number> {
20
20
  return (_table, columnId) => {
21
- const table: Table_Internal<TFeatures, TData> = _table
21
+ const table = _table as unknown as Table_Internal<TFeatures, TData>
22
22
  return tableMemo({
23
23
  feature: 'columnFacetingFeature',
24
24
  table,
@@ -15,115 +15,72 @@ import {
15
15
  table_resetColumnFilters,
16
16
  table_setColumnFilters,
17
17
  } from './columnFilteringFeature.utils'
18
- import type { RowData } from '../../types/type-utils'
19
- import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
20
- // import type {
21
- // CachedRowModel_Filtered,
22
- // ColumnDef_ColumnFiltering,
23
- // Column_ColumnFiltering,
24
- // CreateRowModel_Filtered,
25
- // RowModelFns_ColumnFiltering,
26
- // Row_ColumnFiltering,
27
- // TableOptions_ColumnFiltering,
28
- // TableState_ColumnFiltering,
29
- // Table_ColumnFiltering,
30
- // } from './columnFilteringFeature.types'
31
-
32
- export interface ColumnFilteringFeatureConstructors<
33
- TFeatures extends TableFeatures,
34
- TData extends RowData,
35
- > {
36
- // CachedRowModel: CachedRowModel_Filtered<TFeatures, TData>
37
- // Column: Column_ColumnFiltering<TFeatures, TData>
38
- // ColumnDef: ColumnDef_ColumnFiltering<TFeatures, TData>
39
- // CreateRowModels: CreateRowModel_Filtered<TFeatures, TData>
40
- // Row: Row_ColumnFiltering<TFeatures, TData>
41
- // RowModelFns: RowModelFns_ColumnFiltering<TFeatures, TData>
42
- // Table: Table_ColumnFiltering<TFeatures, TData>
43
- // TableOptions: TableOptions_ColumnFiltering<TFeatures, TData>
44
- // TableState: TableState_ColumnFiltering
45
- }
18
+ import type { TableFeature } from '../../types/TableFeatures'
46
19
 
47
20
  /**
48
- * Creates the stock column filtering feature.
49
- *
50
- * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
21
+ * Feature that adds per-column filtering state, options, and column/table filter APIs.
51
22
  */
52
- export function constructColumnFilteringFeature<
53
- TFeatures extends TableFeatures,
54
- TData extends RowData,
55
- >(): TableFeature<ColumnFilteringFeatureConstructors<TFeatures, TData>> {
56
- return {
57
- getInitialState: (initialState) => {
58
- return {
59
- columnFilters: getDefaultColumnFiltersState(),
60
- ...initialState,
61
- }
62
- },
23
+ export const columnFilteringFeature: TableFeature = {
24
+ getInitialState: (initialState) => {
25
+ return {
26
+ columnFilters: getDefaultColumnFiltersState(),
27
+ ...initialState,
28
+ }
29
+ },
63
30
 
64
- getDefaultColumnDef: () => {
65
- return {
66
- filterFn: 'auto',
67
- }
68
- },
31
+ getDefaultColumnDef: () => {
32
+ return {
33
+ filterFn: 'auto',
34
+ }
35
+ },
69
36
 
70
- getDefaultTableOptions: (table) => {
71
- return {
72
- onColumnFiltersChange: makeStateUpdater('columnFilters', table),
73
- filterFromLeafRows: false,
74
- maxLeafRowFilterDepth: 100,
75
- }
76
- },
37
+ getDefaultTableOptions: (table) => {
38
+ return {
39
+ onColumnFiltersChange: makeStateUpdater('columnFilters', table),
40
+ filterFromLeafRows: false,
41
+ maxLeafRowFilterDepth: 100,
42
+ }
43
+ },
77
44
 
78
- assignColumnPrototype: (prototype, table) => {
79
- assignPrototypeAPIs('columnFilteringFeature', prototype, table, {
80
- column_getAutoFilterFn: {
81
- fn: (column) => column_getAutoFilterFn(column),
82
- },
83
- column_getFilterFn: {
84
- fn: (column) => column_getFilterFn(column),
85
- },
86
- column_getCanFilter: {
87
- fn: (column) => column_getCanFilter(column),
88
- },
89
- column_getIsFiltered: {
90
- fn: (column) => column_getIsFiltered(column),
91
- },
92
- column_getFilterValue: {
93
- fn: (column) => column_getFilterValue(column),
94
- },
95
- column_getFilterIndex: {
96
- fn: (column) => column_getFilterIndex(column),
97
- },
98
- column_setFilterValue: {
99
- fn: (column, value) => column_setFilterValue(column, value),
100
- },
101
- })
102
- },
45
+ assignColumnPrototype: (prototype, table) => {
46
+ assignPrototypeAPIs('columnFilteringFeature', prototype, table, {
47
+ column_getAutoFilterFn: {
48
+ fn: (column) => column_getAutoFilterFn(column),
49
+ },
50
+ column_getFilterFn: {
51
+ fn: (column) => column_getFilterFn(column),
52
+ },
53
+ column_getCanFilter: {
54
+ fn: (column) => column_getCanFilter(column),
55
+ },
56
+ column_getIsFiltered: {
57
+ fn: (column) => column_getIsFiltered(column),
58
+ },
59
+ column_getFilterValue: {
60
+ fn: (column) => column_getFilterValue(column),
61
+ },
62
+ column_getFilterIndex: {
63
+ fn: (column) => column_getFilterIndex(column),
64
+ },
65
+ column_setFilterValue: {
66
+ fn: (column, value) => column_setFilterValue(column, value),
67
+ },
68
+ })
69
+ },
103
70
 
104
- initRowInstanceData: (row) => {
105
- ;(row as any).columnFilters = {}
106
- ;(row as any).columnFiltersMeta = {}
107
- },
71
+ initRowInstanceData: (row) => {
72
+ ;(row as any).columnFilters = {}
73
+ ;(row as any).columnFiltersMeta = {}
74
+ },
108
75
 
109
- constructTableAPIs: (table) => {
110
- assignTableAPIs('columnFilteringFeature', table, {
111
- table_setColumnFilters: {
112
- fn: (updater) => table_setColumnFilters(table, updater),
113
- },
114
- table_resetColumnFilters: {
115
- fn: (defaultState) => table_resetColumnFilters(table, defaultState),
116
- },
117
- })
118
- },
119
- }
76
+ constructTableAPIs: (table) => {
77
+ assignTableAPIs('columnFilteringFeature', table, {
78
+ table_setColumnFilters: {
79
+ fn: (updater) => table_setColumnFilters(table, updater),
80
+ },
81
+ table_resetColumnFilters: {
82
+ fn: (defaultState) => table_resetColumnFilters(table, defaultState),
83
+ },
84
+ })
85
+ },
120
86
  }
121
-
122
- /**
123
- * The stock column filtering feature.
124
- *
125
- * Register this feature to add column filter state, filter defaults, and
126
- * table/row/column APIs for client-side or manual column filtering. Global
127
- * filtering is provided by `globalFilteringFeature`.
128
- */
129
- export const columnFilteringFeature = constructColumnFilteringFeature()
@@ -39,7 +39,7 @@ export interface RowModelFns_ColumnFiltering<
39
39
  TFeatures extends TableFeatures,
40
40
  TData extends RowData,
41
41
  > {
42
- filterFns: Record<keyof FilterFns, FilterFn<TFeatures, TData>>
42
+ filterFns: Record<keyof FilterFns, FilterFn<TFeatures, RowData>>
43
43
  }
44
44
 
45
45
  export interface FilterFn<
@@ -71,12 +71,12 @@ export type ColumnFilterAutoRemoveTestFn<
71
71
  export type CustomFilterFns<
72
72
  TFeatures extends TableFeatures,
73
73
  TData extends RowData,
74
- > = Record<string, FilterFn<TFeatures, TData>>
74
+ > = Record<string, FilterFn<TFeatures, RowData>>
75
75
 
76
76
  export type FilterFnOption<
77
77
  TFeatures extends TableFeatures,
78
78
  TData extends RowData,
79
- > = 'auto' | BuiltInFilterFn | keyof FilterFns | FilterFn<TFeatures, TData>
79
+ > = 'auto' | BuiltInFilterFn | keyof FilterFns | FilterFn<TFeatures, RowData>
80
80
 
81
81
  export interface ColumnDef_ColumnFiltering<
82
82
  TFeatures extends TableFeatures,
@@ -40,7 +40,7 @@ export function column_getAutoFilterFn<
40
40
  TData extends RowData,
41
41
  TValue extends CellData = CellData,
42
42
  >(column: Column_Internal<TFeatures, TData, TValue>) {
43
- const filterFns: Record<string, FilterFn<TFeatures, TData>> | undefined =
43
+ const filterFns: Record<string, FilterFn<TFeatures, RowData>> | undefined =
44
44
  column.table._rowModelFns.filterFns
45
45
 
46
46
  const firstRow = column.table.getCoreRowModel().flatRows[0]
@@ -90,7 +90,7 @@ export function column_getFilterFn<
90
90
  column: Column_Internal<TFeatures, TData, TValue>,
91
91
  ): FilterFn<TFeatures, TData> | undefined {
92
92
  let filterFn = null
93
- const filterFns: Record<string, FilterFn<TFeatures, TData>> | undefined =
93
+ const filterFns: Record<string, FilterFn<TFeatures, RowData>> | undefined =
94
94
  column.table._rowModelFns.filterFns
95
95
  filterFn = isFunction(column.columnDef.filterFn)
96
96
  ? column.columnDef.filterFn
@@ -104,7 +104,7 @@ export function column_getFilterFn<
104
104
  )
105
105
  }
106
106
 
107
- return filterFn
107
+ return filterFn as FilterFn<TFeatures, TData> | undefined
108
108
  }
109
109
 
110
110
  /**
@@ -323,7 +323,7 @@ export function shouldAutoRemoveFilter<
323
323
  ) {
324
324
  return (
325
325
  (filterFn && filterFn.autoRemove
326
- ? filterFn.autoRemove(value, column)
326
+ ? filterFn.autoRemove(value, column as Column_Internal<TFeatures, TData>)
327
327
  : false) ||
328
328
  typeof value === 'undefined' ||
329
329
  (typeof value === 'string' && !value)
@@ -28,10 +28,10 @@ export function createFilteredRowModel<
28
28
  TFeatures extends TableFeatures,
29
29
  TData extends RowData = any,
30
30
  >(
31
- filterFns: Record<keyof FilterFns, FilterFn<TFeatures, TData>>,
31
+ filterFns: Record<keyof FilterFns, FilterFn<TFeatures, RowData>>,
32
32
  ): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {
33
33
  return (_table) => {
34
- const table: Table_Internal<TFeatures, TData> = _table
34
+ const table = _table as unknown as Table_Internal<TFeatures, TData>
35
35
  if (!table._rowModelFns.filterFns) table._rowModelFns.filterFns = filterFns
36
36
  return tableMemo({
37
37
  feature: 'columnFilteringFeature',