@tanstack/table-core 9.0.0-beta.2 → 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 +3 -8
  190. package/dist/types/Cell.d.ts +3 -8
  191. package/dist/types/Column.d.cts +3 -8
  192. package/dist/types/Column.d.ts +3 -8
  193. package/dist/types/ColumnDef.d.cts +3 -8
  194. package/dist/types/ColumnDef.d.ts +3 -8
  195. package/dist/types/Header.d.cts +3 -8
  196. package/dist/types/Header.d.ts +3 -8
  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 +3 -8
  200. package/dist/types/Row.d.ts +3 -8
  201. package/dist/types/RowModel.d.cts +4 -10
  202. package/dist/types/RowModel.d.ts +4 -10
  203. package/dist/types/RowModelFns.d.cts +3 -8
  204. package/dist/types/RowModelFns.d.ts +3 -8
  205. package/dist/types/Table.d.cts +3 -8
  206. package/dist/types/Table.d.ts +3 -8
  207. package/dist/types/TableFeatures.d.cts +13 -39
  208. package/dist/types/TableFeatures.d.ts +13 -39
  209. package/dist/types/TableOptions.d.cts +3 -4
  210. package/dist/types/TableOptions.d.ts +3 -4
  211. package/dist/types/TableState.d.cts +5 -10
  212. package/dist/types/TableState.d.ts +5 -10
  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 +3 -19
  260. package/src/types/Column.ts +2 -18
  261. package/src/types/ColumnDef.ts +2 -18
  262. package/src/types/Header.ts +2 -18
  263. package/src/types/HeaderGroup.ts +2 -13
  264. package/src/types/Row.ts +2 -17
  265. package/src/types/RowModel.ts +3 -25
  266. package/src/types/RowModelFns.ts +2 -17
  267. package/src/types/Table.ts +2 -17
  268. package/src/types/TableFeatures.ts +51 -112
  269. package/src/types/TableOptions.ts +1 -12
  270. package/src/types/TableState.ts +4 -30
  271. package/src/utils.ts +5 -4
@@ -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',
@@ -20,140 +20,96 @@ import {
20
20
  table_resetGrouping,
21
21
  table_setGrouping,
22
22
  } from './columnGroupingFeature.utils'
23
- import type { RowData } from '../../types/type-utils'
24
- import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
25
- // import type {
26
- // CachedRowModel_Grouped,
27
- // Cell_ColumnGrouping,
28
- // ColumnDef_ColumnGrouping,
29
- // Column_ColumnGrouping,
30
- // CreateRowModel_Grouped,
31
- // RowModelFns_ColumnGrouping,
32
- // Row_ColumnGrouping,
33
- // TableOptions_ColumnGrouping,
34
- // TableState_ColumnGrouping,
35
- // Table_ColumnGrouping,
36
- // } from './columnGroupingFeature.types'
37
-
38
- export interface ColumnGroupingFeatureConstructors<
39
- TFeatures extends TableFeatures,
40
- TData extends RowData,
41
- > {
42
- // CachedRowModel: CachedRowModel_Grouped<TFeatures, TData>
43
- // Cell: Cell_ColumnGrouping
44
- // Column: Column_ColumnGrouping<TFeatures, TData>
45
- // ColumnDef: ColumnDef_ColumnGrouping<TFeatures, TData>
46
- // CreateRowModels: CreateRowModel_Grouped<TFeatures, TData>
47
- // Row: Row_ColumnGrouping
48
- // RowModelFns: RowModelFns_ColumnGrouping<TFeatures, TData>
49
- // Table: Table_ColumnGrouping<TFeatures, TData>
50
- // TableOptions: TableOptions_ColumnGrouping
51
- // TableState: TableState_ColumnGrouping
52
- }
23
+ import type { TableFeature } from '../../types/TableFeatures'
53
24
 
54
25
  /**
55
- * Creates the stock column grouping feature.
56
- *
57
- * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
26
+ * Feature that adds column grouping state, aggregation defaults, and grouped row APIs.
58
27
  */
59
- export function constructColumnGroupingFeature<
60
- TFeatures extends TableFeatures,
61
- TData extends RowData,
62
- >(): TableFeature<ColumnGroupingFeatureConstructors<TFeatures, TData>> {
63
- return {
64
- getInitialState: (initialState) => {
65
- return {
66
- grouping: getDefaultGroupingState(),
67
- ...initialState,
68
- }
69
- },
28
+ export const columnGroupingFeature: TableFeature = {
29
+ getInitialState: (initialState) => {
30
+ return {
31
+ grouping: getDefaultGroupingState(),
32
+ ...initialState,
33
+ }
34
+ },
70
35
 
71
- getDefaultColumnDef: () => {
72
- return {
73
- aggregatedCell: ({ getValue }: any) => getValue()?.toString?.() ?? null,
74
- aggregationFn: 'auto',
75
- }
76
- },
36
+ getDefaultColumnDef: () => {
37
+ return {
38
+ aggregatedCell: ({ getValue }: any) => getValue()?.toString?.() ?? null,
39
+ aggregationFn: 'auto',
40
+ }
41
+ },
77
42
 
78
- getDefaultTableOptions: (table) => {
79
- return {
80
- onGroupingChange: makeStateUpdater('grouping', table),
81
- groupedColumnMode: 'reorder',
82
- }
83
- },
43
+ getDefaultTableOptions: (table) => {
44
+ return {
45
+ onGroupingChange: makeStateUpdater('grouping', table),
46
+ groupedColumnMode: 'reorder',
47
+ }
48
+ },
84
49
 
85
- assignCellPrototype: (prototype, table) => {
86
- assignPrototypeAPIs('columnGroupingFeature', prototype, table, {
87
- cell_getIsGrouped: {
88
- fn: (cell) => cell_getIsGrouped(cell),
89
- },
90
- cell_getIsPlaceholder: {
91
- fn: (cell) => cell_getIsPlaceholder(cell),
92
- },
93
- cell_getIsAggregated: {
94
- fn: (cell) => cell_getIsAggregated(cell),
95
- },
96
- })
97
- },
50
+ assignCellPrototype: (prototype, table) => {
51
+ assignPrototypeAPIs('columnGroupingFeature', prototype, table, {
52
+ cell_getIsGrouped: {
53
+ fn: (cell) => cell_getIsGrouped(cell),
54
+ },
55
+ cell_getIsPlaceholder: {
56
+ fn: (cell) => cell_getIsPlaceholder(cell),
57
+ },
58
+ cell_getIsAggregated: {
59
+ fn: (cell) => cell_getIsAggregated(cell),
60
+ },
61
+ })
62
+ },
98
63
 
99
- assignColumnPrototype: (prototype, table) => {
100
- assignPrototypeAPIs('columnGroupingFeature', prototype, table, {
101
- column_toggleGrouping: {
102
- fn: (column) => column_toggleGrouping(column),
103
- },
104
- column_getCanGroup: {
105
- fn: (column) => column_getCanGroup(column),
106
- },
107
- column_getIsGrouped: {
108
- fn: (column) => column_getIsGrouped(column),
109
- },
110
- column_getGroupedIndex: {
111
- fn: (column) => column_getGroupedIndex(column),
112
- },
113
- column_getToggleGroupingHandler: {
114
- fn: (column) => column_getToggleGroupingHandler(column),
115
- },
116
- column_getAutoAggregationFn: {
117
- fn: (column) => column_getAutoAggregationFn(column),
118
- },
119
- column_getAggregationFn: {
120
- fn: (column) => column_getAggregationFn(column),
121
- },
122
- })
123
- },
64
+ assignColumnPrototype: (prototype, table) => {
65
+ assignPrototypeAPIs('columnGroupingFeature', prototype, table, {
66
+ column_toggleGrouping: {
67
+ fn: (column) => column_toggleGrouping(column),
68
+ },
69
+ column_getCanGroup: {
70
+ fn: (column) => column_getCanGroup(column),
71
+ },
72
+ column_getIsGrouped: {
73
+ fn: (column) => column_getIsGrouped(column),
74
+ },
75
+ column_getGroupedIndex: {
76
+ fn: (column) => column_getGroupedIndex(column),
77
+ },
78
+ column_getToggleGroupingHandler: {
79
+ fn: (column) => column_getToggleGroupingHandler(column),
80
+ },
81
+ column_getAutoAggregationFn: {
82
+ fn: (column) => column_getAutoAggregationFn(column),
83
+ },
84
+ column_getAggregationFn: {
85
+ fn: (column) => column_getAggregationFn(column),
86
+ },
87
+ })
88
+ },
124
89
 
125
- assignRowPrototype: (prototype, table) => {
126
- assignPrototypeAPIs('columnGroupingFeature', prototype, table, {
127
- row_getIsGrouped: {
128
- fn: (row) => row_getIsGrouped(row),
129
- },
130
- row_getGroupingValue: {
131
- fn: (row, columnId) => row_getGroupingValue(row, columnId),
132
- },
133
- })
134
- },
90
+ assignRowPrototype: (prototype, table) => {
91
+ assignPrototypeAPIs('columnGroupingFeature', prototype, table, {
92
+ row_getIsGrouped: {
93
+ fn: (row) => row_getIsGrouped(row),
94
+ },
95
+ row_getGroupingValue: {
96
+ fn: (row, columnId) => row_getGroupingValue(row, columnId),
97
+ },
98
+ })
99
+ },
135
100
 
136
- initRowInstanceData: (row) => {
137
- ;(row as any)._groupingValuesCache = {}
138
- },
101
+ initRowInstanceData: (row) => {
102
+ ;(row as any)._groupingValuesCache = {}
103
+ },
139
104
 
140
- constructTableAPIs: (table) => {
141
- assignTableAPIs('columnGroupingFeature', table, {
142
- table_setGrouping: {
143
- fn: (updater) => table_setGrouping(table, updater),
144
- },
145
- table_resetGrouping: {
146
- fn: (defaultState) => table_resetGrouping(table, defaultState),
147
- },
148
- })
149
- },
150
- }
105
+ constructTableAPIs: (table) => {
106
+ assignTableAPIs('columnGroupingFeature', table, {
107
+ table_setGrouping: {
108
+ fn: (updater) => table_setGrouping(table, updater),
109
+ },
110
+ table_resetGrouping: {
111
+ fn: (defaultState) => table_resetGrouping(table, defaultState),
112
+ },
113
+ })
114
+ },
151
115
  }
152
-
153
- /**
154
- * The stock column grouping feature.
155
- *
156
- * Register this feature to add grouping state, aggregation defaults, grouped
157
- * row-model support, and table/row/column/cell grouping APIs.
158
- */
159
- export const columnGroupingFeature = constructColumnGroupingFeature()
@@ -31,7 +31,7 @@ export function createGroupedRowModel<
31
31
  aggregationFns: Record<keyof AggregationFns, AggregationFn<TFeatures, TData>>,
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.aggregationFns)
36
36
  table._rowModelFns.aggregationFns = aggregationFns
37
37
  return tableMemo({
@@ -12,94 +12,62 @@ import {
12
12
  table_resetColumnOrder,
13
13
  table_setColumnOrder,
14
14
  } from './columnOrderingFeature.utils'
15
- import type { RowData } from '../../types/type-utils'
16
- import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
17
- // import type {
18
- // Column_ColumnOrdering,
19
- // TableOptions_ColumnOrdering,
20
- // TableState_ColumnOrdering,
21
- // Table_ColumnOrdering,
22
- // } from './columnOrderingFeature.types'
23
-
24
- export interface ColumnOrderingFeatureConstructors<
25
- TFeatures extends TableFeatures,
26
- TData extends RowData,
27
- > {
28
- // Column: Column_ColumnOrdering
29
- // Table: Table_ColumnOrdering<TFeatures, TData>
30
- // TableOptions: TableOptions_ColumnOrdering
31
- // TableState: TableState_ColumnOrdering
32
- }
15
+ import type { TableFeature } from '../../types/TableFeatures'
33
16
 
34
17
  /**
35
- * Creates the stock column ordering feature.
36
- *
37
- * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
18
+ * Feature that adds column ordering state and APIs for ordering leaf columns.
38
19
  */
39
- export function constructColumnOrderingFeature<
40
- TFeatures extends TableFeatures,
41
- TData extends RowData,
42
- >(): TableFeature<ColumnOrderingFeatureConstructors<TFeatures, TData>> {
43
- return {
44
- getInitialState: (initialState) => {
45
- return {
46
- columnOrder: getDefaultColumnOrderState(),
47
- ...initialState,
48
- }
49
- },
20
+ export const columnOrderingFeature: TableFeature = {
21
+ getInitialState: (initialState) => {
22
+ return {
23
+ columnOrder: getDefaultColumnOrderState(),
24
+ ...initialState,
25
+ }
26
+ },
50
27
 
51
- getDefaultTableOptions: (table) => {
52
- return {
53
- onColumnOrderChange: makeStateUpdater('columnOrder', table),
54
- }
55
- },
28
+ getDefaultTableOptions: (table) => {
29
+ return {
30
+ onColumnOrderChange: makeStateUpdater('columnOrder', table),
31
+ }
32
+ },
56
33
 
57
- assignColumnPrototype: (prototype, table) => {
58
- assignPrototypeAPIs('columnOrderingFeature', prototype, table, {
59
- column_getIndex: {
60
- fn: (column, position) => column_getIndex(column, position),
61
- memoDeps: (column, position) => [
62
- position,
63
- column.table.atoms.columnOrder?.get(),
64
- column.table.atoms.columnPinning?.get(),
65
- column.table.atoms.grouping?.get(),
66
- column.table.atoms.columnVisibility?.get(),
67
- ],
68
- },
69
- column_getIsFirstColumn: {
70
- fn: (column, position) => column_getIsFirstColumn(column, position),
71
- },
72
- column_getIsLastColumn: {
73
- fn: (column, position) => column_getIsLastColumn(column, position),
74
- },
75
- })
76
- },
34
+ assignColumnPrototype: (prototype, table) => {
35
+ assignPrototypeAPIs('columnOrderingFeature', prototype, table, {
36
+ column_getIndex: {
37
+ fn: (column, position) => column_getIndex(column, position),
38
+ memoDeps: (column, position) => [
39
+ position,
40
+ column.table.atoms.columnOrder?.get(),
41
+ column.table.atoms.columnPinning?.get(),
42
+ column.table.atoms.grouping?.get(),
43
+ column.table.atoms.columnVisibility?.get(),
44
+ ],
45
+ },
46
+ column_getIsFirstColumn: {
47
+ fn: (column, position) => column_getIsFirstColumn(column, position),
48
+ },
49
+ column_getIsLastColumn: {
50
+ fn: (column, position) => column_getIsLastColumn(column, position),
51
+ },
52
+ })
53
+ },
77
54
 
78
- constructTableAPIs: (table) => {
79
- assignTableAPIs('columnOrderingFeature', table, {
80
- table_setColumnOrder: {
81
- fn: (updater) => table_setColumnOrder(table, updater),
82
- },
83
- table_resetColumnOrder: {
84
- fn: (defaultState) => table_resetColumnOrder(table, defaultState),
85
- },
86
- table_getOrderColumnsFn: {
87
- fn: () => table_getOrderColumnsFn(table),
88
- memoDeps: () => [
89
- table.atoms.columnOrder?.get(),
90
- table.atoms.grouping?.get(),
91
- table.options.groupedColumnMode,
92
- ],
93
- },
94
- })
95
- },
96
- }
55
+ constructTableAPIs: (table) => {
56
+ assignTableAPIs('columnOrderingFeature', table, {
57
+ table_setColumnOrder: {
58
+ fn: (updater) => table_setColumnOrder(table, updater),
59
+ },
60
+ table_resetColumnOrder: {
61
+ fn: (defaultState) => table_resetColumnOrder(table, defaultState),
62
+ },
63
+ table_getOrderColumnsFn: {
64
+ fn: () => table_getOrderColumnsFn(table),
65
+ memoDeps: () => [
66
+ table.atoms.columnOrder?.get(),
67
+ table.atoms.grouping?.get(),
68
+ table.options.groupedColumnMode,
69
+ ],
70
+ },
71
+ })
72
+ },
97
73
  }
98
-
99
- /**
100
- * The stock column ordering feature.
101
- *
102
- * Register this feature to add column order state and APIs for deriving the
103
- * ordered leaf column list alongside grouping and pinning.
104
- */
105
- export const columnOrderingFeature = constructColumnOrderingFeature()