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

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 (602) hide show
  1. package/README.md +2 -0
  2. package/dist/core/cells/constructCell.cjs +1 -4
  3. package/dist/core/cells/constructCell.cjs.map +1 -1
  4. package/dist/core/cells/constructCell.d.cts +4 -4
  5. package/dist/core/cells/constructCell.d.ts +4 -4
  6. package/dist/core/cells/constructCell.js +1 -4
  7. package/dist/core/cells/constructCell.js.map +1 -1
  8. package/dist/core/cells/coreCellsFeature.types.d.cts +7 -7
  9. package/dist/core/cells/coreCellsFeature.types.d.ts +7 -7
  10. package/dist/core/cells/coreCellsFeature.utils.d.cts +4 -4
  11. package/dist/core/cells/coreCellsFeature.utils.d.ts +4 -4
  12. package/dist/core/columns/constructColumn.cjs +4 -5
  13. package/dist/core/columns/constructColumn.cjs.map +1 -1
  14. package/dist/core/columns/constructColumn.d.cts +3 -3
  15. package/dist/core/columns/constructColumn.d.ts +3 -3
  16. package/dist/core/columns/constructColumn.js +4 -5
  17. package/dist/core/columns/constructColumn.js.map +1 -1
  18. package/dist/core/columns/coreColumnsFeature.cjs +12 -18
  19. package/dist/core/columns/coreColumnsFeature.cjs.map +1 -1
  20. package/dist/core/columns/coreColumnsFeature.js +12 -18
  21. package/dist/core/columns/coreColumnsFeature.js.map +1 -1
  22. package/dist/core/columns/coreColumnsFeature.types.d.cts +7 -7
  23. package/dist/core/columns/coreColumnsFeature.types.d.ts +7 -7
  24. package/dist/core/columns/coreColumnsFeature.utils.cjs +4 -8
  25. package/dist/core/columns/coreColumnsFeature.utils.cjs.map +1 -1
  26. package/dist/core/columns/coreColumnsFeature.utils.d.cts +9 -9
  27. package/dist/core/columns/coreColumnsFeature.utils.d.ts +9 -9
  28. package/dist/core/columns/coreColumnsFeature.utils.js +5 -9
  29. package/dist/core/columns/coreColumnsFeature.utils.js.map +1 -1
  30. package/dist/core/coreFeatures.cjs.map +1 -1
  31. package/dist/core/coreFeatures.d.cts +1 -1
  32. package/dist/core/coreFeatures.d.ts +1 -1
  33. package/dist/core/coreFeatures.js.map +1 -1
  34. package/dist/core/headers/buildHeaderGroups.cjs +1 -2
  35. package/dist/core/headers/buildHeaderGroups.cjs.map +1 -1
  36. package/dist/core/headers/buildHeaderGroups.d.cts +2 -2
  37. package/dist/core/headers/buildHeaderGroups.d.ts +2 -2
  38. package/dist/core/headers/buildHeaderGroups.js +1 -2
  39. package/dist/core/headers/buildHeaderGroups.js.map +1 -1
  40. package/dist/core/headers/constructHeader.cjs +1 -4
  41. package/dist/core/headers/constructHeader.cjs.map +1 -1
  42. package/dist/core/headers/constructHeader.d.cts +2 -2
  43. package/dist/core/headers/constructHeader.d.ts +2 -2
  44. package/dist/core/headers/constructHeader.js +1 -4
  45. package/dist/core/headers/constructHeader.js.map +1 -1
  46. package/dist/core/headers/coreHeadersFeature.cjs +8 -11
  47. package/dist/core/headers/coreHeadersFeature.cjs.map +1 -1
  48. package/dist/core/headers/coreHeadersFeature.js +8 -11
  49. package/dist/core/headers/coreHeadersFeature.js.map +1 -1
  50. package/dist/core/headers/coreHeadersFeature.types.d.cts +6 -6
  51. package/dist/core/headers/coreHeadersFeature.types.d.ts +6 -6
  52. package/dist/core/headers/coreHeadersFeature.utils.cjs +8 -10
  53. package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
  54. package/dist/core/headers/coreHeadersFeature.utils.d.cts +6 -6
  55. package/dist/core/headers/coreHeadersFeature.utils.d.ts +6 -6
  56. package/dist/core/headers/coreHeadersFeature.utils.js +8 -10
  57. package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
  58. package/dist/core/row-models/coreRowModelsFeature.types.d.cts +7 -15
  59. package/dist/core/row-models/coreRowModelsFeature.types.d.ts +7 -15
  60. package/dist/core/row-models/coreRowModelsFeature.utils.cjs +8 -26
  61. package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +1 -1
  62. package/dist/core/row-models/coreRowModelsFeature.utils.d.cts +16 -16
  63. package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +16 -16
  64. package/dist/core/row-models/coreRowModelsFeature.utils.js +8 -26
  65. package/dist/core/row-models/coreRowModelsFeature.utils.js.map +1 -1
  66. package/dist/core/row-models/createCoreRowModel.cjs +4 -6
  67. package/dist/core/row-models/createCoreRowModel.cjs.map +1 -1
  68. package/dist/core/row-models/createCoreRowModel.d.cts +2 -2
  69. package/dist/core/row-models/createCoreRowModel.d.ts +2 -2
  70. package/dist/core/row-models/createCoreRowModel.js +5 -7
  71. package/dist/core/row-models/createCoreRowModel.js.map +1 -1
  72. package/dist/core/rows/constructRow.cjs +6 -10
  73. package/dist/core/rows/constructRow.cjs.map +1 -1
  74. package/dist/core/rows/constructRow.d.cts +2 -2
  75. package/dist/core/rows/constructRow.d.ts +2 -2
  76. package/dist/core/rows/constructRow.js +7 -10
  77. package/dist/core/rows/constructRow.js.map +1 -1
  78. package/dist/core/rows/coreRowsFeature.cjs +18 -2
  79. package/dist/core/rows/coreRowsFeature.cjs.map +1 -1
  80. package/dist/core/rows/coreRowsFeature.js +19 -3
  81. package/dist/core/rows/coreRowsFeature.js.map +1 -1
  82. package/dist/core/rows/coreRowsFeature.types.d.cts +41 -7
  83. package/dist/core/rows/coreRowsFeature.types.d.ts +41 -7
  84. package/dist/core/rows/coreRowsFeature.utils.cjs +62 -8
  85. package/dist/core/rows/coreRowsFeature.utils.cjs.map +1 -1
  86. package/dist/core/rows/coreRowsFeature.utils.d.cts +24 -5
  87. package/dist/core/rows/coreRowsFeature.utils.d.ts +24 -5
  88. package/dist/core/rows/coreRowsFeature.utils.js +61 -10
  89. package/dist/core/rows/coreRowsFeature.utils.js.map +1 -1
  90. package/dist/core/table/constructTable.cjs +24 -14
  91. package/dist/core/table/constructTable.cjs.map +1 -1
  92. package/dist/core/table/constructTable.d.cts +1 -1
  93. package/dist/core/table/constructTable.d.ts +1 -1
  94. package/dist/core/table/constructTable.js +24 -14
  95. package/dist/core/table/constructTable.js.map +1 -1
  96. package/dist/core/table/coreTablesFeature.types.d.cts +32 -19
  97. package/dist/core/table/coreTablesFeature.types.d.ts +32 -19
  98. package/dist/core/table/coreTablesFeature.utils.cjs +38 -14
  99. package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
  100. package/dist/core/table/coreTablesFeature.utils.d.cts +10 -7
  101. package/dist/core/table/coreTablesFeature.utils.d.ts +10 -7
  102. package/dist/core/table/coreTablesFeature.utils.js +38 -14
  103. package/dist/core/table/coreTablesFeature.utils.js.map +1 -1
  104. package/dist/experimental-worker-plugin.cjs +14 -0
  105. package/dist/experimental-worker-plugin.d.cts +5 -0
  106. package/dist/experimental-worker-plugin.d.ts +5 -0
  107. package/dist/experimental-worker-plugin.js +6 -0
  108. package/dist/features/column-faceting/columnFacetingFeature.cjs +12 -18
  109. package/dist/features/column-faceting/columnFacetingFeature.cjs.map +1 -1
  110. package/dist/features/column-faceting/columnFacetingFeature.js +12 -18
  111. package/dist/features/column-faceting/columnFacetingFeature.js.map +1 -1
  112. package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +15 -33
  113. package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +15 -33
  114. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +23 -12
  115. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -1
  116. package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +9 -9
  117. package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +9 -9
  118. package/dist/features/column-faceting/columnFacetingFeature.utils.js +24 -12
  119. package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -1
  120. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs +7 -4
  121. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +1 -1
  122. package/dist/features/column-faceting/createFacetedMinMaxValues.d.cts +1 -1
  123. package/dist/features/column-faceting/createFacetedMinMaxValues.d.ts +1 -1
  124. package/dist/features/column-faceting/createFacetedMinMaxValues.js +8 -5
  125. package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +1 -1
  126. package/dist/features/column-faceting/createFacetedRowModel.cjs +10 -15
  127. package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
  128. package/dist/features/column-faceting/createFacetedRowModel.d.cts +2 -2
  129. package/dist/features/column-faceting/createFacetedRowModel.d.ts +2 -2
  130. package/dist/features/column-faceting/createFacetedRowModel.js +10 -15
  131. package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
  132. package/dist/features/column-faceting/createFacetedUniqueValues.cjs +10 -6
  133. package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -1
  134. package/dist/features/column-faceting/createFacetedUniqueValues.d.cts +1 -1
  135. package/dist/features/column-faceting/createFacetedUniqueValues.d.ts +1 -1
  136. package/dist/features/column-faceting/createFacetedUniqueValues.js +11 -7
  137. package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -1
  138. package/dist/features/column-filtering/columnFilteringFeature.cjs +2 -2
  139. package/dist/features/column-filtering/columnFilteringFeature.cjs.map +1 -1
  140. package/dist/features/column-filtering/columnFilteringFeature.js +3 -3
  141. package/dist/features/column-filtering/columnFilteringFeature.js.map +1 -1
  142. package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +83 -29
  143. package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +83 -29
  144. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +23 -17
  145. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
  146. package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +18 -14
  147. package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +18 -14
  148. package/dist/features/column-filtering/columnFilteringFeature.utils.js +23 -17
  149. package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
  150. package/dist/features/column-filtering/createFilteredRowModel.cjs +29 -25
  151. package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
  152. package/dist/features/column-filtering/createFilteredRowModel.d.cts +10 -4
  153. package/dist/features/column-filtering/createFilteredRowModel.d.ts +10 -4
  154. package/dist/features/column-filtering/createFilteredRowModel.js +30 -26
  155. package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
  156. package/dist/features/column-filtering/filterFns.cjs +399 -0
  157. package/dist/features/column-filtering/filterFns.cjs.map +1 -0
  158. package/dist/features/column-filtering/filterFns.d.cts +210 -0
  159. package/dist/features/column-filtering/filterFns.d.ts +210 -0
  160. package/dist/features/column-filtering/filterFns.js +375 -0
  161. package/dist/features/column-filtering/filterFns.js.map +1 -0
  162. package/dist/features/column-filtering/filterRowsUtils.cjs +3 -2
  163. package/dist/features/column-filtering/filterRowsUtils.cjs.map +1 -1
  164. package/dist/features/column-filtering/filterRowsUtils.js +3 -2
  165. package/dist/features/column-filtering/filterRowsUtils.js.map +1 -1
  166. package/dist/features/column-grouping/columnGroupingFeature.cjs +4 -16
  167. package/dist/features/column-grouping/columnGroupingFeature.cjs.map +1 -1
  168. package/dist/features/column-grouping/columnGroupingFeature.d.cts +1 -1
  169. package/dist/features/column-grouping/columnGroupingFeature.d.ts +1 -1
  170. package/dist/features/column-grouping/columnGroupingFeature.js +6 -18
  171. package/dist/features/column-grouping/columnGroupingFeature.js.map +1 -1
  172. package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +14 -50
  173. package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +14 -50
  174. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs +6 -61
  175. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs.map +1 -1
  176. package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +12 -49
  177. package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +12 -49
  178. package/dist/features/column-grouping/columnGroupingFeature.utils.js +8 -60
  179. package/dist/features/column-grouping/columnGroupingFeature.utils.js.map +1 -1
  180. package/dist/features/column-grouping/createGroupedRowModel.cjs +37 -24
  181. package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -1
  182. package/dist/features/column-grouping/createGroupedRowModel.d.cts +6 -4
  183. package/dist/features/column-grouping/createGroupedRowModel.d.ts +6 -4
  184. package/dist/features/column-grouping/createGroupedRowModel.js +39 -26
  185. package/dist/features/column-grouping/createGroupedRowModel.js.map +1 -1
  186. package/dist/features/column-ordering/columnOrderingFeature.cjs +17 -21
  187. package/dist/features/column-ordering/columnOrderingFeature.cjs.map +1 -1
  188. package/dist/features/column-ordering/columnOrderingFeature.js +18 -22
  189. package/dist/features/column-ordering/columnOrderingFeature.js.map +1 -1
  190. package/dist/features/column-ordering/columnOrderingFeature.types.d.cts +28 -3
  191. package/dist/features/column-ordering/columnOrderingFeature.types.d.ts +28 -3
  192. package/dist/features/column-ordering/columnOrderingFeature.utils.cjs +35 -15
  193. package/dist/features/column-ordering/columnOrderingFeature.utils.cjs.map +1 -1
  194. package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +26 -14
  195. package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +26 -14
  196. package/dist/features/column-ordering/columnOrderingFeature.utils.js +36 -17
  197. package/dist/features/column-ordering/columnOrderingFeature.utils.js.map +1 -1
  198. package/dist/features/column-pinning/columnPinningFeature.cjs +124 -143
  199. package/dist/features/column-pinning/columnPinningFeature.cjs.map +1 -1
  200. package/dist/features/column-pinning/columnPinningFeature.d.cts +6 -1
  201. package/dist/features/column-pinning/columnPinningFeature.d.ts +6 -1
  202. package/dist/features/column-pinning/columnPinningFeature.js +125 -144
  203. package/dist/features/column-pinning/columnPinningFeature.js.map +1 -1
  204. package/dist/features/column-pinning/columnPinningFeature.types.d.cts +52 -41
  205. package/dist/features/column-pinning/columnPinningFeature.types.d.ts +52 -41
  206. package/dist/features/column-pinning/columnPinningFeature.utils.cjs +161 -162
  207. package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
  208. package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +101 -92
  209. package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +101 -92
  210. package/dist/features/column-pinning/columnPinningFeature.utils.js +148 -149
  211. package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
  212. package/dist/features/column-resizing/columnResizingFeature.types.d.cts +1 -4
  213. package/dist/features/column-resizing/columnResizingFeature.types.d.ts +1 -4
  214. package/dist/features/column-resizing/columnResizingFeature.utils.cjs +84 -44
  215. package/dist/features/column-resizing/columnResizingFeature.utils.cjs.map +1 -1
  216. package/dist/features/column-resizing/columnResizingFeature.utils.d.cts +6 -6
  217. package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +6 -6
  218. package/dist/features/column-resizing/columnResizingFeature.utils.js +85 -45
  219. package/dist/features/column-resizing/columnResizingFeature.utils.js.map +1 -1
  220. package/dist/features/column-sizing/columnSizingFeature.cjs +33 -67
  221. package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
  222. package/dist/features/column-sizing/columnSizingFeature.js +34 -68
  223. package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
  224. package/dist/features/column-sizing/columnSizingFeature.types.d.cts +52 -9
  225. package/dist/features/column-sizing/columnSizingFeature.types.d.ts +52 -9
  226. package/dist/features/column-sizing/columnSizingFeature.utils.cjs +88 -45
  227. package/dist/features/column-sizing/columnSizingFeature.utils.cjs.map +1 -1
  228. package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +43 -25
  229. package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +43 -25
  230. package/dist/features/column-sizing/columnSizingFeature.utils.js +88 -46
  231. package/dist/features/column-sizing/columnSizingFeature.utils.js.map +1 -1
  232. package/dist/features/column-visibility/columnVisibilityFeature.cjs +25 -36
  233. package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
  234. package/dist/features/column-visibility/columnVisibilityFeature.js +25 -36
  235. package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
  236. package/dist/features/column-visibility/columnVisibilityFeature.types.d.cts +3 -3
  237. package/dist/features/column-visibility/columnVisibilityFeature.types.d.ts +3 -3
  238. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs +30 -29
  239. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs.map +1 -1
  240. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +18 -18
  241. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +18 -18
  242. package/dist/features/column-visibility/columnVisibilityFeature.utils.js +31 -30
  243. package/dist/features/column-visibility/columnVisibilityFeature.utils.js.map +1 -1
  244. package/dist/features/global-filtering/globalFilteringFeature.cjs +1 -2
  245. package/dist/features/global-filtering/globalFilteringFeature.cjs.map +1 -1
  246. package/dist/features/global-filtering/globalFilteringFeature.js +1 -2
  247. package/dist/features/global-filtering/globalFilteringFeature.js.map +1 -1
  248. package/dist/features/global-filtering/globalFilteringFeature.types.d.cts +2 -2
  249. package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +2 -2
  250. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs +6 -6
  251. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
  252. package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +8 -11
  253. package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +8 -11
  254. package/dist/features/global-filtering/globalFilteringFeature.utils.js +6 -6
  255. package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
  256. package/dist/features/row-aggregation/aggregationFns.cjs +246 -0
  257. package/dist/features/row-aggregation/aggregationFns.cjs.map +1 -0
  258. package/dist/features/row-aggregation/aggregationFns.d.cts +68 -0
  259. package/dist/features/row-aggregation/aggregationFns.d.ts +68 -0
  260. package/dist/features/row-aggregation/aggregationFns.js +235 -0
  261. package/dist/features/row-aggregation/aggregationFns.js.map +1 -0
  262. package/dist/features/row-aggregation/rowAggregationFeature.cjs +39 -0
  263. package/dist/features/row-aggregation/rowAggregationFeature.cjs.map +1 -0
  264. package/dist/features/row-aggregation/rowAggregationFeature.d.cts +10 -0
  265. package/dist/features/row-aggregation/rowAggregationFeature.d.ts +10 -0
  266. package/dist/features/row-aggregation/rowAggregationFeature.js +39 -0
  267. package/dist/features/row-aggregation/rowAggregationFeature.js.map +1 -0
  268. package/dist/features/row-aggregation/rowAggregationFeature.types.cjs +13 -0
  269. package/dist/features/row-aggregation/rowAggregationFeature.types.cjs.map +1 -0
  270. package/dist/features/row-aggregation/rowAggregationFeature.types.d.cts +195 -0
  271. package/dist/features/row-aggregation/rowAggregationFeature.types.d.ts +195 -0
  272. package/dist/features/row-aggregation/rowAggregationFeature.types.js +12 -0
  273. package/dist/features/row-aggregation/rowAggregationFeature.types.js.map +1 -0
  274. package/dist/features/row-aggregation/rowAggregationFeature.utils.cjs +212 -0
  275. package/dist/features/row-aggregation/rowAggregationFeature.utils.cjs.map +1 -0
  276. package/dist/features/row-aggregation/rowAggregationFeature.utils.d.cts +34 -0
  277. package/dist/features/row-aggregation/rowAggregationFeature.utils.d.ts +34 -0
  278. package/dist/features/row-aggregation/rowAggregationFeature.utils.js +206 -0
  279. package/dist/features/row-aggregation/rowAggregationFeature.utils.js.map +1 -0
  280. package/dist/features/row-expanding/createExpandedRowModel.cjs +6 -10
  281. package/dist/features/row-expanding/createExpandedRowModel.cjs.map +1 -1
  282. package/dist/features/row-expanding/createExpandedRowModel.d.cts +2 -2
  283. package/dist/features/row-expanding/createExpandedRowModel.d.ts +2 -2
  284. package/dist/features/row-expanding/createExpandedRowModel.js +6 -10
  285. package/dist/features/row-expanding/createExpandedRowModel.js.map +1 -1
  286. package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +6 -15
  287. package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +6 -15
  288. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs +28 -26
  289. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs.map +1 -1
  290. package/dist/features/row-expanding/rowExpandingFeature.utils.d.cts +10 -10
  291. package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +10 -10
  292. package/dist/features/row-expanding/rowExpandingFeature.utils.js +29 -27
  293. package/dist/features/row-expanding/rowExpandingFeature.utils.js.map +1 -1
  294. package/dist/features/row-pagination/createPaginatedRowModel.cjs +6 -10
  295. package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +1 -1
  296. package/dist/features/row-pagination/createPaginatedRowModel.d.cts +2 -2
  297. package/dist/features/row-pagination/createPaginatedRowModel.d.ts +2 -2
  298. package/dist/features/row-pagination/createPaginatedRowModel.js +6 -10
  299. package/dist/features/row-pagination/createPaginatedRowModel.js.map +1 -1
  300. package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +5 -14
  301. package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +5 -14
  302. package/dist/features/row-pagination/rowPaginationFeature.utils.cjs +9 -15
  303. package/dist/features/row-pagination/rowPaginationFeature.utils.cjs.map +1 -1
  304. package/dist/features/row-pagination/rowPaginationFeature.utils.d.cts +17 -17
  305. package/dist/features/row-pagination/rowPaginationFeature.utils.d.ts +17 -17
  306. package/dist/features/row-pagination/rowPaginationFeature.utils.js +9 -15
  307. package/dist/features/row-pagination/rowPaginationFeature.utils.js.map +1 -1
  308. package/dist/features/row-pinning/rowPinningFeature.cjs +4 -16
  309. package/dist/features/row-pinning/rowPinningFeature.cjs.map +1 -1
  310. package/dist/features/row-pinning/rowPinningFeature.js +4 -16
  311. package/dist/features/row-pinning/rowPinningFeature.js.map +1 -1
  312. package/dist/features/row-pinning/rowPinningFeature.types.d.cts +2 -2
  313. package/dist/features/row-pinning/rowPinningFeature.types.d.ts +2 -2
  314. package/dist/features/row-pinning/rowPinningFeature.utils.cjs +9 -14
  315. package/dist/features/row-pinning/rowPinningFeature.utils.cjs.map +1 -1
  316. package/dist/features/row-pinning/rowPinningFeature.utils.d.cts +7 -7
  317. package/dist/features/row-pinning/rowPinningFeature.utils.d.ts +7 -7
  318. package/dist/features/row-pinning/rowPinningFeature.utils.js +9 -14
  319. package/dist/features/row-pinning/rowPinningFeature.utils.js.map +1 -1
  320. package/dist/features/row-selection/rowSelectionFeature.cjs +66 -22
  321. package/dist/features/row-selection/rowSelectionFeature.cjs.map +1 -1
  322. package/dist/features/row-selection/rowSelectionFeature.js +67 -23
  323. package/dist/features/row-selection/rowSelectionFeature.js.map +1 -1
  324. package/dist/features/row-selection/rowSelectionFeature.types.d.cts +49 -11
  325. package/dist/features/row-selection/rowSelectionFeature.types.d.ts +49 -11
  326. package/dist/features/row-selection/rowSelectionFeature.utils.cjs +128 -72
  327. package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
  328. package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +57 -30
  329. package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +57 -30
  330. package/dist/features/row-selection/rowSelectionFeature.utils.js +129 -74
  331. package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
  332. package/dist/features/row-sorting/createSortedRowModel.cjs +69 -50
  333. package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
  334. package/dist/features/row-sorting/createSortedRowModel.d.cts +10 -4
  335. package/dist/features/row-sorting/createSortedRowModel.d.ts +10 -4
  336. package/dist/features/row-sorting/createSortedRowModel.js +70 -51
  337. package/dist/features/row-sorting/createSortedRowModel.js.map +1 -1
  338. package/dist/features/row-sorting/rowSortingFeature.types.d.cts +54 -22
  339. package/dist/features/row-sorting/rowSortingFeature.types.d.ts +54 -22
  340. package/dist/features/row-sorting/rowSortingFeature.utils.cjs +31 -17
  341. package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -1
  342. package/dist/features/row-sorting/rowSortingFeature.utils.d.cts +16 -16
  343. package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +16 -16
  344. package/dist/features/row-sorting/rowSortingFeature.utils.js +31 -17
  345. package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -1
  346. package/dist/features/row-sorting/sortFns.cjs +226 -0
  347. package/dist/features/row-sorting/sortFns.cjs.map +1 -0
  348. package/dist/features/row-sorting/sortFns.d.cts +98 -0
  349. package/dist/features/row-sorting/sortFns.d.ts +98 -0
  350. package/dist/features/row-sorting/sortFns.js +217 -0
  351. package/dist/features/row-sorting/sortFns.js.map +1 -0
  352. package/dist/features/stockFeatures.cjs +2 -0
  353. package/dist/features/stockFeatures.cjs.map +1 -1
  354. package/dist/features/stockFeatures.d.cts +2 -0
  355. package/dist/features/stockFeatures.d.ts +2 -0
  356. package/dist/features/stockFeatures.js +2 -0
  357. package/dist/features/stockFeatures.js.map +1 -1
  358. package/dist/flex-render.d.cts +1 -1
  359. package/dist/flex-render.d.ts +1 -1
  360. package/dist/helpers/columnHelper.cjs.map +1 -1
  361. package/dist/helpers/columnHelper.d.cts +2 -2
  362. package/dist/helpers/columnHelper.d.ts +2 -2
  363. package/dist/helpers/columnHelper.js.map +1 -1
  364. package/dist/helpers/metaHelper.cjs +30 -0
  365. package/dist/helpers/metaHelper.cjs.map +1 -0
  366. package/dist/helpers/metaHelper.d.cts +26 -0
  367. package/dist/helpers/metaHelper.d.ts +26 -0
  368. package/dist/helpers/metaHelper.js +29 -0
  369. package/dist/helpers/metaHelper.js.map +1 -0
  370. package/dist/helpers/tableFeatures.cjs +32 -3
  371. package/dist/helpers/tableFeatures.cjs.map +1 -1
  372. package/dist/helpers/tableFeatures.d.cts +34 -5
  373. package/dist/helpers/tableFeatures.d.ts +34 -5
  374. package/dist/helpers/tableFeatures.js +32 -3
  375. package/dist/helpers/tableFeatures.js.map +1 -1
  376. package/dist/index.cjs +23 -3
  377. package/dist/index.d.cts +31 -28
  378. package/dist/index.d.ts +31 -28
  379. package/dist/index.js +8 -5
  380. package/dist/static-functions.cjs +30 -19
  381. package/dist/static-functions.d.cts +8 -7
  382. package/dist/static-functions.d.ts +8 -7
  383. package/dist/static-functions.js +8 -7
  384. package/dist/store-reactivity-bindings.cjs +3 -3
  385. package/dist/store-reactivity-bindings.cjs.map +1 -1
  386. package/dist/store-reactivity-bindings.d.cts +1 -1
  387. package/dist/store-reactivity-bindings.d.ts +1 -1
  388. package/dist/store-reactivity-bindings.js +3 -3
  389. package/dist/store-reactivity-bindings.js.map +1 -1
  390. package/dist/types/Cell.d.cts +4 -2
  391. package/dist/types/Cell.d.ts +4 -2
  392. package/dist/types/Column.d.cts +15 -15
  393. package/dist/types/Column.d.ts +15 -15
  394. package/dist/types/ColumnDef.d.cts +30 -14
  395. package/dist/types/ColumnDef.d.ts +30 -14
  396. package/dist/types/Header.d.cts +2 -2
  397. package/dist/types/Header.d.ts +2 -2
  398. package/dist/types/HeaderGroup.d.cts +2 -2
  399. package/dist/types/HeaderGroup.d.ts +2 -2
  400. package/dist/types/Row.d.cts +6 -4
  401. package/dist/types/Row.d.ts +6 -4
  402. package/dist/types/RowModel.d.cts +11 -23
  403. package/dist/types/RowModel.d.ts +11 -23
  404. package/dist/types/RowModelFns.d.cts +4 -4
  405. package/dist/types/RowModelFns.d.ts +4 -4
  406. package/dist/types/Table.d.cts +26 -31
  407. package/dist/types/Table.d.ts +26 -31
  408. package/dist/types/TableFeatures.d.cts +350 -22
  409. package/dist/types/TableFeatures.d.ts +350 -22
  410. package/dist/types/TableOptions.d.cts +22 -14
  411. package/dist/types/TableOptions.d.ts +22 -14
  412. package/dist/types/TableState.d.cts +6 -6
  413. package/dist/types/TableState.d.ts +6 -6
  414. package/dist/types/type-utils.d.cts +8 -1
  415. package/dist/types/type-utils.d.ts +8 -1
  416. package/dist/utils.cjs +51 -29
  417. package/dist/utils.cjs.map +1 -1
  418. package/dist/utils.d.cts +30 -8
  419. package/dist/utils.d.ts +30 -8
  420. package/dist/utils.js +49 -30
  421. package/dist/utils.js.map +1 -1
  422. package/dist/worker/createTableWorker.cjs +189 -0
  423. package/dist/worker/createTableWorker.cjs.map +1 -0
  424. package/dist/worker/createTableWorker.d.cts +102 -0
  425. package/dist/worker/createTableWorker.d.ts +102 -0
  426. package/dist/worker/createTableWorker.js +186 -0
  427. package/dist/worker/createTableWorker.js.map +1 -0
  428. package/dist/worker/createWorkerRowModel.cjs +78 -0
  429. package/dist/worker/createWorkerRowModel.cjs.map +1 -0
  430. package/dist/worker/createWorkerRowModel.d.cts +42 -0
  431. package/dist/worker/createWorkerRowModel.d.ts +42 -0
  432. package/dist/worker/createWorkerRowModel.js +78 -0
  433. package/dist/worker/createWorkerRowModel.js.map +1 -0
  434. package/dist/worker/initTableWorker.cjs +100 -0
  435. package/dist/worker/initTableWorker.cjs.map +1 -0
  436. package/dist/worker/initTableWorker.d.cts +33 -0
  437. package/dist/worker/initTableWorker.d.ts +33 -0
  438. package/dist/worker/initTableWorker.js +100 -0
  439. package/dist/worker/initTableWorker.js.map +1 -0
  440. package/dist/worker/rebuildRowModel.cjs +72 -0
  441. package/dist/worker/rebuildRowModel.cjs.map +1 -0
  442. package/dist/worker/rebuildRowModel.d.cts +9 -0
  443. package/dist/worker/rebuildRowModel.d.ts +9 -0
  444. package/dist/worker/rebuildRowModel.js +72 -0
  445. package/dist/worker/rebuildRowModel.js.map +1 -0
  446. package/dist/worker/serializeRowModel.cjs +53 -0
  447. package/dist/worker/serializeRowModel.cjs.map +1 -0
  448. package/dist/worker/serializeRowModel.js +52 -0
  449. package/dist/worker/serializeRowModel.js.map +1 -0
  450. package/dist/worker/tableWorkerProtocol.cjs +29 -0
  451. package/dist/worker/tableWorkerProtocol.cjs.map +1 -0
  452. package/dist/worker/tableWorkerProtocol.d.cts +88 -0
  453. package/dist/worker/tableWorkerProtocol.d.ts +88 -0
  454. package/dist/worker/tableWorkerProtocol.js +27 -0
  455. package/dist/worker/tableWorkerProtocol.js.map +1 -0
  456. package/package.json +8 -3
  457. package/skills/aggregation/SKILL.md +141 -0
  458. package/skills/api-not-found/SKILL.md +113 -0
  459. package/skills/client-vs-server/SKILL.md +164 -0
  460. package/skills/column-faceting/SKILL.md +97 -0
  461. package/skills/column-filtering/SKILL.md +87 -0
  462. package/skills/column-ordering/SKILL.md +75 -0
  463. package/skills/column-pinning/SKILL.md +89 -0
  464. package/skills/column-resizing/SKILL.md +91 -0
  465. package/skills/column-sizing/SKILL.md +72 -0
  466. package/skills/column-visibility/SKILL.md +75 -0
  467. package/skills/core/SKILL.md +175 -0
  468. package/skills/custom-features/SKILL.md +235 -0
  469. package/skills/expanding/SKILL.md +80 -0
  470. package/skills/global-filtering/SKILL.md +84 -0
  471. package/skills/grouping/SKILL.md +51 -401
  472. package/skills/migrate-v8-to-v9/SKILL.md +274 -416
  473. package/skills/pagination/SKILL.md +37 -344
  474. package/skills/row-pinning/SKILL.md +47 -234
  475. package/skills/row-selection/SKILL.md +75 -302
  476. package/skills/sorting/SKILL.md +45 -303
  477. package/skills/table-features/SKILL.md +159 -0
  478. package/skills/typescript/SKILL.md +126 -0
  479. package/src/core/cells/coreCellsFeature.types.ts +6 -6
  480. package/src/core/columns/constructColumn.ts +6 -0
  481. package/src/core/columns/coreColumnsFeature.types.ts +8 -8
  482. package/src/core/columns/coreColumnsFeature.utils.ts +4 -4
  483. package/src/core/coreFeatures.ts +1 -1
  484. package/src/core/headers/buildHeaderGroups.ts +4 -2
  485. package/src/core/headers/coreHeadersFeature.types.ts +12 -12
  486. package/src/core/headers/coreHeadersFeature.utils.ts +7 -8
  487. package/src/core/row-models/coreRowModelsFeature.types.ts +6 -20
  488. package/src/core/row-models/coreRowModelsFeature.utils.ts +8 -8
  489. package/src/core/row-models/createCoreRowModel.ts +7 -6
  490. package/src/core/rows/constructRow.ts +4 -2
  491. package/src/core/rows/coreRowsFeature.ts +21 -0
  492. package/src/core/rows/coreRowsFeature.types.ts +45 -8
  493. package/src/core/rows/coreRowsFeature.utils.ts +93 -5
  494. package/src/core/table/constructTable.ts +44 -6
  495. package/src/core/table/coreTablesFeature.types.ts +45 -20
  496. package/src/core/table/coreTablesFeature.utils.ts +59 -19
  497. package/src/experimental-worker-plugin.ts +22 -0
  498. package/src/features/column-faceting/columnFacetingFeature.types.ts +17 -48
  499. package/src/features/column-faceting/columnFacetingFeature.utils.ts +53 -18
  500. package/src/features/column-faceting/createFacetedMinMaxValues.ts +33 -7
  501. package/src/features/column-faceting/createFacetedRowModel.ts +8 -1
  502. package/src/features/column-faceting/createFacetedUniqueValues.ts +41 -10
  503. package/src/features/column-filtering/columnFilteringFeature.ts +3 -2
  504. package/src/features/column-filtering/columnFilteringFeature.types.ts +117 -41
  505. package/src/features/column-filtering/columnFilteringFeature.utils.ts +37 -23
  506. package/src/features/column-filtering/createFilteredRowModel.ts +28 -17
  507. package/src/features/column-filtering/filterFns.ts +533 -0
  508. package/src/features/column-filtering/filterRowsUtils.ts +3 -2
  509. package/src/features/column-grouping/columnGroupingFeature.ts +3 -21
  510. package/src/features/column-grouping/columnGroupingFeature.types.ts +21 -95
  511. package/src/features/column-grouping/columnGroupingFeature.utils.ts +4 -87
  512. package/src/features/column-grouping/createGroupedRowModel.ts +46 -45
  513. package/src/features/column-ordering/columnOrderingFeature.ts +12 -7
  514. package/src/features/column-ordering/columnOrderingFeature.types.ts +29 -3
  515. package/src/features/column-ordering/columnOrderingFeature.utils.ts +59 -8
  516. package/src/features/column-pinning/columnPinningFeature.ts +76 -59
  517. package/src/features/column-pinning/columnPinningFeature.types.ts +53 -42
  518. package/src/features/column-pinning/columnPinningFeature.utils.ts +184 -170
  519. package/src/features/column-resizing/columnResizingFeature.types.ts +1 -4
  520. package/src/features/column-resizing/columnResizingFeature.utils.ts +120 -52
  521. package/src/features/column-sizing/columnSizingFeature.ts +24 -24
  522. package/src/features/column-sizing/columnSizingFeature.types.ts +53 -8
  523. package/src/features/column-sizing/columnSizingFeature.utils.ts +143 -62
  524. package/src/features/column-visibility/columnVisibilityFeature.ts +4 -0
  525. package/src/features/column-visibility/columnVisibilityFeature.types.ts +4 -4
  526. package/src/features/column-visibility/columnVisibilityFeature.utils.ts +48 -30
  527. package/src/features/global-filtering/globalFilteringFeature.types.ts +4 -4
  528. package/src/features/global-filtering/globalFilteringFeature.utils.ts +13 -5
  529. package/src/features/row-aggregation/aggregationFns.ts +345 -0
  530. package/src/features/row-aggregation/rowAggregationFeature.ts +60 -0
  531. package/src/features/row-aggregation/rowAggregationFeature.types.ts +339 -0
  532. package/src/features/row-aggregation/rowAggregationFeature.utils.ts +430 -0
  533. package/src/features/row-expanding/rowExpandingFeature.types.ts +8 -23
  534. package/src/features/row-expanding/rowExpandingFeature.utils.ts +38 -13
  535. package/src/features/row-pagination/createPaginatedRowModel.ts +1 -1
  536. package/src/features/row-pagination/rowPaginationFeature.types.ts +6 -21
  537. package/src/features/row-pagination/rowPaginationFeature.utils.ts +1 -1
  538. package/src/features/row-pinning/rowPinningFeature.types.ts +4 -4
  539. package/src/features/row-selection/rowSelectionFeature.ts +53 -3
  540. package/src/features/row-selection/rowSelectionFeature.types.ts +54 -10
  541. package/src/features/row-selection/rowSelectionFeature.utils.ts +273 -91
  542. package/src/features/row-sorting/createSortedRowModel.ts +107 -75
  543. package/src/features/row-sorting/rowSortingFeature.types.ts +87 -34
  544. package/src/features/row-sorting/rowSortingFeature.utils.ts +49 -23
  545. package/src/features/row-sorting/sortFns.ts +366 -0
  546. package/src/features/stockFeatures.ts +3 -0
  547. package/src/helpers/columnHelper.ts +4 -4
  548. package/src/helpers/metaHelper.ts +24 -0
  549. package/src/helpers/tableFeatures.ts +37 -5
  550. package/src/index.ts +8 -8
  551. package/src/static-functions.ts +1 -0
  552. package/src/store-reactivity-bindings.ts +1 -1
  553. package/src/types/Cell.ts +4 -2
  554. package/src/types/Column.ts +13 -9
  555. package/src/types/ColumnDef.ts +40 -10
  556. package/src/types/Header.ts +2 -2
  557. package/src/types/HeaderGroup.ts +6 -6
  558. package/src/types/Row.ts +6 -4
  559. package/src/types/RowModel.ts +19 -74
  560. package/src/types/RowModelFns.ts +10 -10
  561. package/src/types/Table.ts +52 -27
  562. package/src/types/TableFeatures.ts +392 -14
  563. package/src/types/TableOptions.ts +67 -14
  564. package/src/types/TableState.ts +15 -1
  565. package/src/types/type-utils.ts +8 -0
  566. package/src/utils.ts +60 -8
  567. package/src/worker/createTableWorker.ts +357 -0
  568. package/src/worker/createWorkerRowModel.ts +121 -0
  569. package/src/worker/initTableWorker.ts +164 -0
  570. package/src/worker/rebuildRowModel.ts +120 -0
  571. package/src/worker/serializeRowModel.ts +80 -0
  572. package/src/worker/tableWorkerProtocol.ts +105 -0
  573. package/dist/fns/aggregationFns.cjs +0 -161
  574. package/dist/fns/aggregationFns.cjs.map +0 -1
  575. package/dist/fns/aggregationFns.d.cts +0 -85
  576. package/dist/fns/aggregationFns.d.ts +0 -85
  577. package/dist/fns/aggregationFns.js +0 -151
  578. package/dist/fns/aggregationFns.js.map +0 -1
  579. package/dist/fns/filterFns.cjs +0 -201
  580. package/dist/fns/filterFns.cjs.map +0 -1
  581. package/dist/fns/filterFns.d.cts +0 -167
  582. package/dist/fns/filterFns.d.ts +0 -167
  583. package/dist/fns/filterFns.js +0 -185
  584. package/dist/fns/filterFns.js.map +0 -1
  585. package/dist/fns/sortFns.cjs +0 -118
  586. package/dist/fns/sortFns.cjs.map +0 -1
  587. package/dist/fns/sortFns.d.cts +0 -65
  588. package/dist/fns/sortFns.d.ts +0 -65
  589. package/dist/fns/sortFns.js +0 -110
  590. package/dist/fns/sortFns.js.map +0 -1
  591. package/skills/column-definitions/SKILL.md +0 -333
  592. package/skills/column-layout/SKILL.md +0 -328
  593. package/skills/column-layout/references/subsystems.md +0 -220
  594. package/skills/customizing-feature-behavior/SKILL.md +0 -416
  595. package/skills/filtering/SKILL.md +0 -357
  596. package/skills/filtering/references/faceting-and-fuzzy.md +0 -191
  597. package/skills/row-expanding/SKILL.md +0 -348
  598. package/skills/setup/SKILL.md +0 -400
  599. package/skills/state-management/SKILL.md +0 -388
  600. package/src/fns/aggregationFns.ts +0 -245
  601. package/src/fns/filterFns.ts +0 -382
  602. package/src/fns/sortFns.ts +0 -217
@@ -1,3 +1,4 @@
1
+ import { makeObjectMap } from '../../utils'
1
2
  import type { CellData, RowData } from '../../types/type-utils'
2
3
  import type { TableFeatures } from '../../types/TableFeatures'
3
4
  import type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'
@@ -23,9 +24,16 @@ export function column_getFacetedMinMaxValues<
23
24
  column: Column_Internal<TFeatures, TData, TValue>,
24
25
  table: Table_Internal<TFeatures, TData>,
25
26
  ): [number, number] | undefined {
26
- const facetedMinMaxValuesFn =
27
- table.options.rowModels?.facetedMinMaxValues?.(table, column.id) ??
28
- (() => undefined)
27
+ const facetedMinMaxValues = (table._rowModels.facetedMinMaxValues ??=
28
+ makeObjectMap())
29
+ let facetedMinMaxValuesFn = facetedMinMaxValues[column.id]
30
+
31
+ if (!facetedMinMaxValuesFn) {
32
+ facetedMinMaxValuesFn = facetedMinMaxValues[column.id] =
33
+ table.options.features.facetedMinMaxValues?.(table, column.id) ??
34
+ (() => undefined)
35
+ }
36
+
29
37
  return facetedMinMaxValuesFn()
30
38
  }
31
39
 
@@ -49,9 +57,17 @@ export function column_getFacetedRowModel<
49
57
  column: Column_Internal<TFeatures, TData, TValue> | undefined,
50
58
  table: Table_Internal<TFeatures, TData>,
51
59
  ): RowModel<TFeatures, TData> {
52
- const facetedRowModelFn =
53
- table.options.rowModels?.facetedRowModel?.(table, column?.id ?? '') ??
54
- (() => table.getPreFilteredRowModel())
60
+ const columnId = column?.id ?? ''
61
+ const facetedRowModels = (table._rowModels.facetedRowModels ??=
62
+ makeObjectMap())
63
+ let facetedRowModelFn = facetedRowModels[columnId]
64
+
65
+ if (!facetedRowModelFn) {
66
+ facetedRowModelFn = facetedRowModels[columnId] =
67
+ table.options.features.facetedRowModel?.(table, columnId) ??
68
+ (() => table.getPreFilteredRowModel())
69
+ }
70
+
55
71
  return facetedRowModelFn()
56
72
  }
57
73
 
@@ -74,9 +90,16 @@ export function column_getFacetedUniqueValues<
74
90
  column: Column_Internal<TFeatures, TData, TValue>,
75
91
  table: Table_Internal<TFeatures, TData>,
76
92
  ): Map<any, number> {
77
- const facetedUniqueValuesFn =
78
- table.options.rowModels?.facetedUniqueValues?.(table, column.id) ??
79
- (() => new Map<any, number>())
93
+ const facetedUniqueValues = (table._rowModels.facetedUniqueValues ??=
94
+ makeObjectMap())
95
+ let facetedUniqueValuesFn = facetedUniqueValues[column.id]
96
+
97
+ if (!facetedUniqueValuesFn) {
98
+ facetedUniqueValuesFn = facetedUniqueValues[column.id] =
99
+ table.options.features.facetedUniqueValues?.(table, column.id) ??
100
+ (() => new Map<any, number>())
101
+ }
102
+
80
103
  return facetedUniqueValuesFn()
81
104
  }
82
105
 
@@ -95,9 +118,13 @@ export function table_getGlobalFacetedMinMaxValues<
95
118
  TFeatures extends TableFeatures,
96
119
  TData extends RowData,
97
120
  >(table: Table_Internal<TFeatures, TData>): undefined | [number, number] {
98
- const facetedMinMaxValuesFn =
99
- table.options.rowModels?.facetedMinMaxValues?.(table, '__global__') ??
100
- (() => undefined)
121
+ if (!table._rowModels.globalFacetedMinMaxValues) {
122
+ table._rowModels.globalFacetedMinMaxValues =
123
+ table.options.features.facetedMinMaxValues?.(table, '__global__') ??
124
+ (() => undefined)
125
+ }
126
+
127
+ const facetedMinMaxValuesFn = table._rowModels.globalFacetedMinMaxValues
101
128
  return facetedMinMaxValuesFn()
102
129
  }
103
130
 
@@ -117,9 +144,13 @@ export function table_getGlobalFacetedRowModel<
117
144
  TFeatures extends TableFeatures,
118
145
  TData extends RowData,
119
146
  >(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {
120
- const facetedRowModelFn =
121
- table.options.rowModels?.facetedRowModel?.(table, '__global__') ??
122
- (() => table.getPreFilteredRowModel())
147
+ if (!table._rowModels.globalFacetedRowModel) {
148
+ table._rowModels.globalFacetedRowModel =
149
+ table.options.features.facetedRowModel?.(table, '__global__') ??
150
+ (() => table.getPreFilteredRowModel())
151
+ }
152
+
153
+ const facetedRowModelFn = table._rowModels.globalFacetedRowModel
123
154
  return facetedRowModelFn()
124
155
  }
125
156
 
@@ -138,8 +169,12 @@ export function table_getGlobalFacetedUniqueValues<
138
169
  TFeatures extends TableFeatures,
139
170
  TData extends RowData,
140
171
  >(table: Table_Internal<TFeatures, TData>): Map<any, number> {
141
- const facetedUniqueValuesFn =
142
- table.options.rowModels?.facetedUniqueValues?.(table, '__global__') ??
143
- (() => new Map())
172
+ if (!table._rowModels.globalFacetedUniqueValues) {
173
+ table._rowModels.globalFacetedUniqueValues =
174
+ table.options.features.facetedUniqueValues?.(table, '__global__') ??
175
+ (() => new Map())
176
+ }
177
+
178
+ const facetedUniqueValuesFn = table._rowModels.globalFacetedUniqueValues
144
179
  return facetedUniqueValuesFn()
145
180
  }
@@ -1,5 +1,9 @@
1
1
  import { callMemoOrStaticFn, tableMemo } from '../../utils'
2
- import { column_getFacetedRowModel } from './columnFacetingFeature.utils'
2
+ import { column_getCanGlobalFilter } from '../global-filtering/globalFilteringFeature.utils'
3
+ import {
4
+ column_getFacetedRowModel,
5
+ table_getGlobalFacetedRowModel,
6
+ } from './columnFacetingFeature.utils'
3
7
  import type { Row } from '../../types/Row'
4
8
  import type { Table, Table_Internal } from '../../types/Table'
5
9
  import type { TableFeatures } from '../../types/TableFeatures'
@@ -21,9 +25,18 @@ export function createFacetedMinMaxValues<
21
25
  const table = _table as unknown as Table_Internal<TFeatures, TData>
22
26
  return tableMemo({
23
27
  feature: 'columnFacetingFeature',
24
- fn: (flatRows) => _createFacetedMinMaxValues(columnId, flatRows),
28
+ fn: (flatRows) => _createFacetedMinMaxValues(table, columnId, flatRows),
25
29
  fnName: 'table.getFacetedMinMaxValues',
26
30
  memoDeps: () => {
31
+ if (columnId === '__global__') {
32
+ return [
33
+ callMemoOrStaticFn(
34
+ table,
35
+ 'getGlobalFacetedRowModel',
36
+ table_getGlobalFacetedRowModel,
37
+ ).flatRows,
38
+ ]
39
+ }
27
40
  const column = table.getColumn(columnId)
28
41
  if (!column) return [table.getPreFilteredRowModel().flatRows]
29
42
  return [
@@ -44,21 +57,34 @@ function _createFacetedMinMaxValues<
44
57
  TFeatures extends TableFeatures,
45
58
  TData extends RowData = any,
46
59
  >(
60
+ table: Table_Internal<TFeatures, TData>,
47
61
  columnId: string,
48
62
  flatRows: Array<Row<TFeatures, TData>>,
49
63
  ): undefined | [number, number] {
50
64
  if (!flatRows.length) return undefined
51
65
 
66
+ // The global context aggregates values across every column that
67
+ // participates in global filtering
68
+ const columnIds =
69
+ columnId === '__global__'
70
+ ? table
71
+ .getAllLeafColumns()
72
+ .filter((column) => column_getCanGlobalFilter(column))
73
+ .map((column) => column.id)
74
+ : [columnId]
75
+
52
76
  let facetedMinValue = Number.POSITIVE_INFINITY
53
77
  let facetedMaxValue = Number.NEGATIVE_INFINITY
54
78
  let foundAny = false
55
79
 
56
80
  for (let i = 0; i < flatRows.length; i++) {
57
- const value = Number(flatRows[i]!.getValue(columnId))
58
- if (Number.isNaN(value)) continue
59
- foundAny = true
60
- if (value < facetedMinValue) facetedMinValue = value
61
- if (value > facetedMaxValue) facetedMaxValue = value
81
+ for (let c = 0; c < columnIds.length; c++) {
82
+ const value = Number(flatRows[i]!.getValue(columnIds[c]!))
83
+ if (Number.isNaN(value)) continue
84
+ foundAny = true
85
+ if (value < facetedMinValue) facetedMinValue = value
86
+ if (value > facetedMaxValue) facetedMaxValue = value
87
+ }
62
88
  }
63
89
 
64
90
  if (!foundAny) return undefined
@@ -67,7 +67,14 @@ function _createFacetedRowModel<
67
67
  if (id !== columnId) filterableIds.push(id)
68
68
  }
69
69
  }
70
- if (globalFilter) filterableIds.push('__global__')
70
+ // The global context excludes the global filter itself, mirroring how a
71
+ // column's faceted model excludes that column's own filter
72
+ if (globalFilter && columnId !== '__global__')
73
+ filterableIds.push('__global__')
74
+
75
+ if (!filterableIds.length) {
76
+ return preRowModel
77
+ }
71
78
 
72
79
  const filterRowsImpl = (
73
80
  row: Row<TFeatures, TData> & Partial<Row_ColumnFiltering<TFeatures, TData>>,
@@ -1,5 +1,9 @@
1
1
  import { callMemoOrStaticFn, tableMemo } from '../../utils'
2
- import { column_getFacetedRowModel } from './columnFacetingFeature.utils'
2
+ import { column_getCanGlobalFilter } from '../global-filtering/globalFilteringFeature.utils'
3
+ import {
4
+ column_getFacetedRowModel,
5
+ table_getGlobalFacetedRowModel,
6
+ } from './columnFacetingFeature.utils'
3
7
  import type { Row } from '../../types/Row'
4
8
  import type { Table, Table_Internal } from '../../types/Table'
5
9
  import type { TableFeatures } from '../../types/TableFeatures'
@@ -24,6 +28,15 @@ export function createFacetedUniqueValues<
24
28
  table,
25
29
  fnName: 'table.getFacetedUniqueValues',
26
30
  memoDeps: () => {
31
+ if (columnId === '__global__') {
32
+ return [
33
+ callMemoOrStaticFn(
34
+ table,
35
+ 'getGlobalFacetedRowModel',
36
+ table_getGlobalFacetedRowModel,
37
+ ).flatRows,
38
+ ]
39
+ }
27
40
  const column = table.getColumn(columnId)
28
41
  if (!column) return [table.getPreFilteredRowModel().flatRows]
29
42
  return [
@@ -35,7 +48,7 @@ export function createFacetedUniqueValues<
35
48
  ).flatRows,
36
49
  ]
37
50
  },
38
- fn: (flatRows) => _createFacetedUniqueValues(columnId, flatRows),
51
+ fn: (flatRows) => _createFacetedUniqueValues(table, columnId, flatRows),
39
52
  })
40
53
  }
41
54
  }
@@ -43,21 +56,39 @@ export function createFacetedUniqueValues<
43
56
  function _createFacetedUniqueValues<
44
57
  TFeatures extends TableFeatures,
45
58
  TData extends RowData = any,
46
- >(columnId: string, flatRows: Array<Row<TFeatures, TData>>): Map<any, number> {
59
+ >(
60
+ table: Table_Internal<TFeatures, TData>,
61
+ columnId: string,
62
+ flatRows: Array<Row<TFeatures, TData>>,
63
+ ): Map<any, number> {
64
+ // The global context aggregates unique values across every column that
65
+ // participates in global filtering
66
+ const columnIds =
67
+ columnId === '__global__'
68
+ ? table
69
+ .getAllLeafColumns()
70
+ .filter((column) => column_getCanGlobalFilter(column))
71
+ .map((column) => column.id)
72
+ : [columnId]
73
+
47
74
  const facetedUniqueValues = new Map<any, number>()
48
75
 
49
76
  for (let i = 0; i < flatRows.length; i++) {
50
- const values = flatRows[i]!.getUniqueValues(columnId)
77
+ for (let c = 0; c < columnIds.length; c++) {
78
+ // the declared return type is Array, but rows return undefined for
79
+ // columns without an accessor (e.g. display columns)
80
+ const values = flatRows[i]!.getUniqueValues(columnIds[c]!) as
81
+ | Array<unknown>
82
+ | undefined
83
+ if (!values) continue
51
84
 
52
- for (let j = 0; j < values.length; j++) {
53
- const value = values[j]
54
- if (facetedUniqueValues.has(value)) {
85
+ for (let j = 0; j < values.length; j++) {
86
+ const value = values[j]
87
+ const previousValue = facetedUniqueValues.get(value)
55
88
  facetedUniqueValues.set(
56
89
  value,
57
- (facetedUniqueValues.get(value) ?? 0) + 1,
90
+ previousValue === undefined ? 1 : previousValue + 1,
58
91
  )
59
- } else {
60
- facetedUniqueValues.set(value, 1)
61
92
  }
62
93
  }
63
94
  }
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  assignPrototypeAPIs,
3
3
  assignTableAPIs,
4
+ makeObjectMap,
4
5
  makeStateUpdater,
5
6
  } from '../../utils'
6
7
  import {
@@ -69,8 +70,8 @@ export const columnFilteringFeature: TableFeature = {
69
70
  },
70
71
 
71
72
  initRowInstanceData: (row) => {
72
- ;(row as any).columnFilters = {}
73
- ;(row as any).columnFiltersMeta = {}
73
+ ;(row as any).columnFilters = makeObjectMap()
74
+ ;(row as any).columnFiltersMeta = makeObjectMap()
74
75
  },
75
76
 
76
77
  constructTableAPIs: (table) => {
@@ -1,18 +1,33 @@
1
- import type { Table } from '../../types/Table'
2
- import type { BuiltInFilterFn } from '../../fns/filterFns'
1
+ import type { BuiltInFilterFn } from './filterFns'
3
2
  import type {
4
3
  CellData,
5
4
  OnChangeFn,
6
5
  RowData,
6
+ TransformDataValueFn,
7
7
  Updater,
8
8
  } from '../../types/type-utils'
9
- import type { TableFeatures } from '../../types/TableFeatures'
9
+ import type { IsAny, TableFeatures } from '../../types/TableFeatures'
10
10
  import type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'
11
11
  import type { Row } from '../../types/Row'
12
12
  import type { Column } from '../../types/Column'
13
13
 
14
14
  export interface FilterMeta {}
15
15
 
16
+ /**
17
+ * Resolves the type of the filter meta attached to rows for a feature set.
18
+ *
19
+ * When the features object declares a `filterMeta` type-only slot
20
+ * (`tableFeatures({ ..., filterMeta: {} as MyFilterMeta })`), that type wins.
21
+ * Otherwise this falls back to the global declaration-merged `FilterMeta`
22
+ * interface.
23
+ */
24
+ export type ExtractFilterMeta<TFeatures extends TableFeatures> =
25
+ IsAny<TFeatures> extends true
26
+ ? FilterMeta
27
+ : TFeatures extends { filterMeta: infer TFilterMeta extends object }
28
+ ? TFilterMeta
29
+ : FilterMeta
30
+
16
31
  export interface FilterFns {}
17
32
 
18
33
  export interface TableState_ColumnFiltering {
@@ -27,8 +42,8 @@ export interface ColumnFilter {
27
42
  }
28
43
 
29
44
  export interface ResolvedColumnFilter<
30
- TFeatures extends TableFeatures,
31
- TData extends RowData,
45
+ in out TFeatures extends TableFeatures,
46
+ in out TData extends RowData,
32
47
  > {
33
48
  filterFn: FilterFn<TFeatures, TData>
34
49
  id: string
@@ -36,24 +51,83 @@ export interface ResolvedColumnFilter<
36
51
  }
37
52
 
38
53
  export interface RowModelFns_ColumnFiltering<
39
- TFeatures extends TableFeatures,
40
- TData extends RowData,
54
+ in out TFeatures extends TableFeatures,
55
+ in out TData extends RowData,
41
56
  > {
42
- filterFns: Record<keyof FilterFns, FilterFn<TFeatures, RowData>>
57
+ filterFns: Record<string, FilterFn<TFeatures, TData>>
43
58
  }
44
59
 
45
60
  export interface FilterFn<
46
- TFeatures extends TableFeatures,
47
- TData extends RowData,
61
+ in out TFeatures extends TableFeatures,
62
+ in out TData extends RowData,
48
63
  > {
49
64
  (
50
65
  row: Row<TFeatures, TData>,
51
66
  columnId: string,
52
67
  filterValue: any,
53
- addMeta?: (meta: FilterMeta) => void,
68
+ addMeta?: (meta: ExtractFilterMeta<TFeatures>) => void,
54
69
  ): boolean
70
+ /**
71
+ * Removes the filter from `state.columnFilters` when the filter value fails
72
+ * this test (e.g. empty strings for text filters).
73
+ */
55
74
  autoRemove?: ColumnFilterAutoRemoveTestFn<TFeatures, TData>
75
+ /**
76
+ * Normalizes the filter value before filtering runs.
77
+ *
78
+ * The table applies this once per filter (not per row) and passes the
79
+ * resolved value to the filter function as `filterValue`.
80
+ */
56
81
  resolveFilterValue?: TransformFilterValueFn<TFeatures, TData>
82
+ /**
83
+ * Normalizes each row's value before it is compared against the filter
84
+ * value. Only honored by filter functions built with `constructFilterFn`
85
+ * (including all built-in filter functions).
86
+ */
87
+ resolveDataValue?: TransformDataValueFn
88
+ }
89
+
90
+ /**
91
+ * The definition object accepted by `constructFilterFn`.
92
+ *
93
+ * `filter` is a value-level comparator: it receives the row's (resolved) data
94
+ * value and the (resolved) filter value instead of the whole row, so
95
+ * normalization concerns stay in `resolveDataValue`/`resolveFilterValue`.
96
+ */
97
+ export interface FilterFnDef<
98
+ in out TFeatures extends TableFeatures,
99
+ in out TData extends RowData,
100
+ > {
101
+ filter: (
102
+ dataValue: any,
103
+ filterValue: any,
104
+ row: Row<TFeatures, TData>,
105
+ columnId: string,
106
+ addMeta?: (meta: ExtractFilterMeta<TFeatures>) => void,
107
+ ) => boolean
108
+ autoRemove?: (filterValue: any) => boolean
109
+ resolveFilterValue?: (filterValue: any) => any
110
+ resolveDataValue?: TransformDataValueFn
111
+ }
112
+
113
+ /**
114
+ * The shape returned by `constructFilterFn`: a `FilterFn` with its definition
115
+ * attached, so variants can be built by spreading it into another
116
+ * `constructFilterFn` call.
117
+ *
118
+ * The call signature is generic so a created filter function can be used with
119
+ * any table's rows, regardless of the feature set it was defined against.
120
+ */
121
+ export interface CreatedFilterFn<
122
+ in out TFeatures extends TableFeatures,
123
+ in out TData extends RowData,
124
+ > extends FilterFnDef<TFeatures, TData> {
125
+ <TRowFeatures extends TableFeatures, TRowData extends RowData>(
126
+ row: Row<TRowFeatures, TRowData>,
127
+ columnId: string,
128
+ filterValue: any,
129
+ addMeta?: (meta: ExtractFilterMeta<TRowFeatures>) => void,
130
+ ): boolean
57
131
  }
58
132
 
59
133
  export type TransformFilterValueFn<
@@ -71,16 +145,33 @@ export type ColumnFilterAutoRemoveTestFn<
71
145
  export type CustomFilterFns<
72
146
  TFeatures extends TableFeatures,
73
147
  TData extends RowData,
74
- > = Record<string, FilterFn<TFeatures, RowData>>
148
+ > = Record<string, FilterFn<TFeatures, TData>>
149
+
150
+ /**
151
+ * Resolves the valid string names for `columnDef.filterFn` and
152
+ * `options.globalFilterFn` for a feature set.
153
+ *
154
+ * When the features object declares a `filterFns` registry
155
+ * (`tableFeatures({ ..., filterFns })`), its keys are the only valid names; a
156
+ * name is only assignable if a filter function is actually registered for it.
157
+ * Otherwise this falls back to the global declaration-merged `FilterFns`
158
+ * interface.
159
+ */
160
+ export type ExtractFilterFnKeys<TFeatures extends TableFeatures> =
161
+ IsAny<TFeatures> extends true
162
+ ? keyof FilterFns | BuiltInFilterFn
163
+ : TFeatures extends { filterFns: infer TFilterFns extends object }
164
+ ? Extract<keyof TFilterFns, string>
165
+ : keyof FilterFns
75
166
 
76
167
  export type FilterFnOption<
77
168
  TFeatures extends TableFeatures,
78
169
  TData extends RowData,
79
- > = 'auto' | BuiltInFilterFn | keyof FilterFns | FilterFn<TFeatures, RowData>
170
+ > = 'auto' | ExtractFilterFnKeys<TFeatures> | FilterFn<TFeatures, TData>
80
171
 
81
172
  export interface ColumnDef_ColumnFiltering<
82
- TFeatures extends TableFeatures,
83
- TData extends RowData,
173
+ in out TFeatures extends TableFeatures,
174
+ in out TData extends RowData,
84
175
  > {
85
176
  /**
86
177
  * Enables this column to participate in column-specific filtering.
@@ -96,8 +187,8 @@ export interface ColumnDef_ColumnFiltering<
96
187
  }
97
188
 
98
189
  export interface Column_ColumnFiltering<
99
- TFeatures extends TableFeatures,
100
- TData extends RowData,
190
+ in out TFeatures extends TableFeatures,
191
+ in out TData extends RowData,
101
192
  > {
102
193
  /**
103
194
  * Returns an automatically calculated filter function for the column based off of the columns first known value.
@@ -133,8 +224,8 @@ export interface Column_ColumnFiltering<
133
224
  }
134
225
 
135
226
  export interface Row_ColumnFiltering<
136
- TFeatures extends TableFeatures,
137
- TData extends RowData,
227
+ in out TFeatures extends TableFeatures,
228
+ in out _TData extends RowData,
138
229
  > {
139
230
  /**
140
231
  * The column filters map for the row. This object tracks whether a row is passing/failing specific filters by their column ID.
@@ -143,12 +234,12 @@ export interface Row_ColumnFiltering<
143
234
  /**
144
235
  * The column filters meta map for the row. This object tracks any filter meta for a row as optionally provided during the filtering process.
145
236
  */
146
- columnFiltersMeta: Record<string, FilterMeta>
237
+ columnFiltersMeta: Record<string, ExtractFilterMeta<TFeatures>>
147
238
  }
148
239
 
149
240
  export interface TableOptions_ColumnFiltering<
150
- TFeatures extends TableFeatures,
151
- TData extends RowData,
241
+ in out _TFeatures extends TableFeatures,
242
+ in out _TData extends RowData,
152
243
  > {
153
244
  /**
154
245
  * Enables column-specific filtering for all columns that also allow it.
@@ -196,8 +287,8 @@ export interface Table_ColumnFiltering {
196
287
  }
197
288
 
198
289
  export interface Table_RowModels_Filtered<
199
- TFeatures extends TableFeatures,
200
- TData extends RowData,
290
+ in out TFeatures extends TableFeatures,
291
+ in out TData extends RowData,
201
292
  > {
202
293
  /**
203
294
  * Resolves the row model after column and global filters have been applied.
@@ -209,24 +300,9 @@ export interface Table_RowModels_Filtered<
209
300
  getPreFilteredRowModel: () => RowModel<TFeatures, TData>
210
301
  }
211
302
 
212
- export interface CreateRowModel_Filtered<
213
- TFeatures extends TableFeatures,
214
- TData extends RowData,
215
- > {
216
- /**
217
- * If provided, this factory is called once per table and should return a
218
- * function that calculates the filtered row model.
219
- * - For server-side filtering, this function is unnecessary and can be ignored since the server should already return the filtered row model.
220
- * - For client-side filtering, pass the exported `createFilteredRowModel()` or implement your own factory.
221
- */
222
- filteredRowModel?: (
223
- table: Table<TFeatures, TData>,
224
- ) => () => RowModel<TFeatures, TData>
225
- }
226
-
227
303
  export interface CachedRowModel_Filtered<
228
- TFeatures extends TableFeatures,
229
- TData extends RowData,
304
+ in out TFeatures extends TableFeatures,
305
+ in out TData extends RowData,
230
306
  > {
231
307
  filteredRowModel: () => RowModel<TFeatures, TData>
232
308
  }
@@ -27,8 +27,12 @@ export function getDefaultColumnFiltersState(): ColumnFiltersState {
27
27
  * Chooses a built-in filter function from the column's first core row value.
28
28
  *
29
29
  * Strings use `includesString`, numbers use `inNumberRange`, booleans and
30
- * objects use `equals`, arrays use `arrIncludes`, and unknown values fall back
31
- * to `weakEquals`.
30
+ * objects use `equals`, dates use `inDateRange`, arrays use `arrIncludes`,
31
+ * and unknown values fall back to `weakEquals`.
32
+ *
33
+ * The chosen filter function is looked up in the table's `filterFns`
34
+ * registry. When it is not registered there, this returns `undefined` and
35
+ * warns in development instead of substituting a different filter function.
32
36
  *
33
37
  * @example
34
38
  * ```ts
@@ -40,34 +44,40 @@ export function column_getAutoFilterFn<
40
44
  TData extends RowData,
41
45
  TValue extends CellData = CellData,
42
46
  >(column: Column_Internal<TFeatures, TData, TValue>) {
43
- const filterFns: Record<string, FilterFn<TFeatures, RowData>> | undefined =
47
+ const filterFns: Record<string, FilterFn<TFeatures, TData>> | undefined =
44
48
  column.table._rowModelFns.filterFns
45
49
 
46
50
  const firstRow = column.table.getCoreRowModel().flatRows[0]
47
51
 
48
52
  const value = firstRow ? firstRow.getValue(column.id) : undefined
49
53
 
50
- if (typeof value === 'string') {
51
- return filterFns?.includesString
52
- }
54
+ let filterFnName: string
53
55
 
54
- if (typeof value === 'number') {
55
- return filterFns?.inNumberRange
56
+ if (typeof value === 'string') {
57
+ filterFnName = 'includesString'
58
+ } else if (typeof value === 'number') {
59
+ filterFnName = 'inNumberRange'
60
+ } else if (typeof value === 'boolean') {
61
+ filterFnName = 'equals'
62
+ } else if (Array.isArray(value)) {
63
+ filterFnName = 'arrIncludes'
64
+ } else if (Object.prototype.toString.call(value) === '[object Date]') {
65
+ filterFnName = 'inDateRange'
66
+ } else if (value !== null && typeof value === 'object') {
67
+ filterFnName = 'equals'
68
+ } else {
69
+ filterFnName = 'weakEquals'
56
70
  }
57
71
 
58
- if (typeof value === 'boolean') {
59
- return filterFns?.equals
60
- }
72
+ const filterFn = filterFns?.[filterFnName]
61
73
 
62
- if (value !== null && typeof value === 'object') {
63
- return filterFns?.equals
64
- }
65
-
66
- if (Array.isArray(value)) {
67
- return filterFns?.arrIncludes
74
+ if (process.env.NODE_ENV === 'development' && !filterFn) {
75
+ console.warn(
76
+ `filterFn '${filterFnName}' (auto) for column '${column.id}' is not registered`,
77
+ )
68
78
  }
69
79
 
70
- return filterFns?.weakEquals
80
+ return filterFn
71
81
  }
72
82
 
73
83
  /**
@@ -90,7 +100,7 @@ export function column_getFilterFn<
90
100
  column: Column_Internal<TFeatures, TData, TValue>,
91
101
  ): FilterFn<TFeatures, TData> | undefined {
92
102
  let filterFn = null
93
- const filterFns: Record<string, FilterFn<TFeatures, RowData>> | undefined =
103
+ const filterFns: Record<string, FilterFn<TFeatures, TData>> | undefined =
94
104
  column.table._rowModelFns.filterFns
95
105
  filterFn = isFunction(column.columnDef.filterFn)
96
106
  ? column.columnDef.filterFn
@@ -98,13 +108,17 @@ export function column_getFilterFn<
98
108
  ? column_getAutoFilterFn(column)
99
109
  : filterFns?.[column.columnDef.filterFn as string]
100
110
 
101
- if (process.env.NODE_ENV === 'development' && !filterFn) {
111
+ if (
112
+ process.env.NODE_ENV === 'development' &&
113
+ !filterFn &&
114
+ column.columnDef.filterFn !== 'auto' // the auto picker warns on its own
115
+ ) {
102
116
  console.warn(
103
- `Could not find a valid 'column.filterFn' for column with the ID: ${column.id}.`,
117
+ `filterFn '${String(column.columnDef.filterFn)}' for column '${column.id}' is not registered`,
104
118
  )
105
119
  }
106
120
 
107
- return filterFn as FilterFn<TFeatures, TData> | undefined
121
+ return filterFn ?? undefined
108
122
  }
109
123
 
110
124
  /**
@@ -323,7 +337,7 @@ export function shouldAutoRemoveFilter<
323
337
  ) {
324
338
  return (
325
339
  (filterFn && filterFn.autoRemove
326
- ? filterFn.autoRemove(value, column as Column_Internal<TFeatures, TData>)
340
+ ? filterFn.autoRemove(value, column as any)
327
341
  : false) ||
328
342
  typeof value === 'undefined' ||
329
343
  (typeof value === 'string' && !value)