@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,4 +1,4 @@
1
- import { tableMemo } from '../../utils'
1
+ import { makeObjectMap, tableMemo } from '../../utils'
2
2
  import { table_getColumn } from '../../core/columns/coreColumnsFeature.utils'
3
3
  import {
4
4
  column_getCanGlobalFilter,
@@ -13,8 +13,6 @@ import type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'
13
13
  import type { Table, Table_Internal } from '../../types/Table'
14
14
  import type { Row } from '../../types/Row'
15
15
  import type {
16
- FilterFn,
17
- FilterFns,
18
16
  ResolvedColumnFilter,
19
17
  Row_ColumnFiltering,
20
18
  } from './columnFilteringFeature.types'
@@ -23,16 +21,20 @@ import type {
23
21
  * Creates a memoized filtered row model factory.
24
22
  *
25
23
  * The factory reads the relevant table state atoms and options, then returns a row model function used by the table row-model pipeline.
24
+ *
25
+ * Register the filter functions you use with the `filterFns` slot on the
26
+ * `features` option:
27
+ * `tableFeatures({ columnFilteringFeature, filteredRowModel: createFilteredRowModel(), filterFns: { includesString: filterFn_includesString } })`.
28
+ * Importing individual `filterFn_*` functions keeps unused built-ins out of
29
+ * your bundle; filter functions passed directly to the `filterFn` column
30
+ * option need no registration at all.
26
31
  */
27
32
  export function createFilteredRowModel<
28
33
  TFeatures extends TableFeatures,
29
34
  TData extends RowData = any,
30
- >(
31
- filterFns: Record<keyof FilterFns, FilterFn<TFeatures, RowData>>,
32
- ): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {
35
+ >(): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {
33
36
  return (_table) => {
34
37
  const table = _table as unknown as Table_Internal<TFeatures, TData>
35
- if (!table._rowModelFns.filterFns) table._rowModelFns.filterFns = filterFns
36
38
  return tableMemo({
37
39
  feature: 'columnFilteringFeature',
38
40
  table,
@@ -62,8 +64,8 @@ function _createFilteredRowModel<
62
64
  >
63
65
  for (let i = 0; i < flatRows.length; i++) {
64
66
  const row = flatRows[i]!
65
- row.columnFilters = {}
66
- row.columnFiltersMeta = {}
67
+ row.columnFilters = makeObjectMap()
68
+ row.columnFiltersMeta = makeObjectMap()
67
69
  }
68
70
  return rowModel
69
71
  }
@@ -80,7 +82,13 @@ function _createFilteredRowModel<
80
82
  return
81
83
  }
82
84
 
83
- const filterFn = column_getFilterFn(column)!
85
+ const filterFn = column_getFilterFn(column)
86
+
87
+ // A dev warning has already fired in column_getFilterFn; ignore the
88
+ // filter instead of crashing when its filter fn is not registered.
89
+ if (!filterFn) {
90
+ return
91
+ }
84
92
 
85
93
  resolvedColumnFilters.push({
86
94
  id: columnFilter.id,
@@ -117,7 +125,8 @@ function _createFilteredRowModel<
117
125
  >
118
126
  for (let i = 0; i < flatRows.length; i++) {
119
127
  const row = flatRows[i]!
120
- row.columnFilters = {}
128
+ row.columnFilters = makeObjectMap()
129
+ row.columnFiltersMeta = makeObjectMap()
121
130
 
122
131
  if (resolvedColumnFilters.length) {
123
132
  for (let j = 0; j < resolvedColumnFilters.length; j++) {
@@ -130,9 +139,10 @@ function _createFilteredRowModel<
130
139
  id,
131
140
  currentColumnFilter.resolvedValue,
132
141
  (filterMeta) => {
133
- !row.columnFiltersMeta
134
- ? (row.columnFiltersMeta = {})
135
- : (row.columnFiltersMeta[id] = filterMeta)
142
+ if (!row.columnFiltersMeta) {
143
+ row.columnFiltersMeta = makeObjectMap()
144
+ }
145
+ row.columnFiltersMeta[id] = filterMeta
136
146
  },
137
147
  )
138
148
  }
@@ -149,9 +159,10 @@ function _createFilteredRowModel<
149
159
  id,
150
160
  currentGlobalFilter.resolvedValue,
151
161
  (filterMeta) => {
152
- !row.columnFiltersMeta
153
- ? (row.columnFiltersMeta = {})
154
- : (row.columnFiltersMeta[id] = filterMeta)
162
+ if (!row.columnFiltersMeta) {
163
+ row.columnFiltersMeta = makeObjectMap()
164
+ }
165
+ row.columnFiltersMeta[id] = filterMeta
155
166
  },
156
167
  )
157
168
  ) {
@@ -0,0 +1,533 @@
1
+ import type {
2
+ CreatedFilterFn,
3
+ ExtractFilterMeta,
4
+ FilterFnDef,
5
+ } from './columnFilteringFeature.types'
6
+ import type { RowData } from '../../types/type-utils'
7
+ import type { TableFeatures } from '../../types/TableFeatures'
8
+ import type { Row } from '../../types/Row'
9
+
10
+ /**
11
+ * Builds a `FilterFn` from a value-level comparator plus optional resolvers.
12
+ *
13
+ * The `filter` comparator receives the row's data value (already passed
14
+ * through `resolveDataValue` when one is defined) and the filter value
15
+ * (already passed through `resolveFilterValue` by the table). Keeping
16
+ * normalization in the resolvers means a variant of an existing filter
17
+ * function only has to swap the resolvers, not re-implement the comparison.
18
+ *
19
+ * The definition is attached to the returned function, so a variant can be
20
+ * created by spreading a built-in filter function and overriding what differs:
21
+ *
22
+ * ```ts
23
+ * const normalize = (value: unknown) =>
24
+ * String(value ?? '')
25
+ * .toLowerCase()
26
+ * .normalize('NFD')
27
+ * .replace(/\p{Diacritic}/gu, '')
28
+ *
29
+ * const includesStringIgnoreDiacritics = constructFilterFn({
30
+ * ...filterFn_includesString,
31
+ * resolveFilterValue: normalize,
32
+ * resolveDataValue: normalize,
33
+ * })
34
+ * ```
35
+ *
36
+ * Note: the table applies `resolveFilterValue` once per filter before any rows
37
+ * are tested. When calling a filter function directly (outside of a table),
38
+ * apply it yourself: `fn(row, columnId, fn.resolveFilterValue?.(value) ?? value)`.
39
+ */
40
+ export function constructFilterFn<
41
+ TFeatures extends TableFeatures = any,
42
+ TData extends RowData = any,
43
+ >(def: FilterFnDef<TFeatures, TData>): CreatedFilterFn<TFeatures, TData> {
44
+ const filterFn: CreatedFilterFn<TFeatures, TData> = Object.assign(
45
+ <TRowFeatures extends TableFeatures, TRowData extends RowData>(
46
+ row: Row<TRowFeatures, TRowData>,
47
+ columnId: string,
48
+ filterValue: any,
49
+ addMeta?: (meta: ExtractFilterMeta<TRowFeatures>) => void,
50
+ ): boolean => {
51
+ const rawValue = row.getValue(columnId)
52
+ const dataValue = filterFn.resolveDataValue
53
+ ? filterFn.resolveDataValue(rawValue)
54
+ : rawValue
55
+ // The def's comparator is typed against the factory's TFeatures/TData;
56
+ // the caller's row generics are erased at this boundary.
57
+ return filterFn.filter(
58
+ dataValue,
59
+ filterValue,
60
+ row as any,
61
+ columnId,
62
+ addMeta as any,
63
+ )
64
+ },
65
+ def,
66
+ )
67
+ return filterFn
68
+ }
69
+
70
+ // Basic filters
71
+
72
+ /**
73
+ * Keeps rows whose column value is strictly equal to the filter value.
74
+ *
75
+ * Uses JavaScript `===` comparison and auto-removes empty filter values.
76
+ */
77
+ export const filterFn_equals = constructFilterFn({
78
+ filter: (dataValue, filterValue) => dataValue === filterValue,
79
+ autoRemove: (val: any) => testFalsy(val),
80
+ })
81
+
82
+ /**
83
+ * Keeps rows whose column value is loosely equal to the filter value.
84
+ *
85
+ * Uses JavaScript `==` comparison and auto-removes empty filter values. This is
86
+ * useful for matching string input against numeric row values.
87
+ */
88
+ export const filterFn_weakEquals = constructFilterFn({
89
+ filter: (dataValue, filterValue) => dataValue == filterValue,
90
+ autoRemove: (val: any) => testFalsy(val),
91
+ })
92
+
93
+ // String filters
94
+
95
+ /**
96
+ * Keeps rows whose stringified column value includes the filter text.
97
+ *
98
+ * Matching is case-sensitive and empty filter values are auto-removed.
99
+ */
100
+ export const filterFn_includesStringSensitive = constructFilterFn({
101
+ filter: (dataValue, filterValue) => Boolean(dataValue?.includes(filterValue)),
102
+ autoRemove: (val: any) => testFalsy(val),
103
+ resolveFilterValue: (val: any) => String(val),
104
+ resolveDataValue: (val: any) => (val == null ? undefined : String(val)),
105
+ })
106
+
107
+ /**
108
+ * Keeps rows whose stringified column value includes the filter text.
109
+ *
110
+ * Both values are lowercased before comparison, and empty filter values are
111
+ * auto-removed.
112
+ */
113
+ export const filterFn_includesString = constructFilterFn({
114
+ filter: (dataValue, filterValue) => Boolean(dataValue?.includes(filterValue)),
115
+ autoRemove: (val: any) => testFalsy(val),
116
+ resolveFilterValue: (val: any) => String(val).toLowerCase(),
117
+ resolveDataValue: (val: any) =>
118
+ val == null ? undefined : String(val).toLowerCase(),
119
+ })
120
+
121
+ /**
122
+ * Keeps rows whose stringified column value equals the filter text.
123
+ *
124
+ * Both values are lowercased before comparison, and empty filter values are
125
+ * auto-removed.
126
+ */
127
+ export const filterFn_equalsString = constructFilterFn({
128
+ filter: (dataValue, filterValue) => dataValue === filterValue,
129
+ autoRemove: (val: any) => testFalsy(val),
130
+ resolveFilterValue: (val: any) => String(val).toLowerCase(),
131
+ resolveDataValue: (val: any) =>
132
+ val == null ? undefined : String(val).toLowerCase(),
133
+ })
134
+
135
+ /**
136
+ * Keeps rows whose stringified column value exactly equals the filter text.
137
+ *
138
+ * Matching is case-sensitive and empty filter values are auto-removed.
139
+ */
140
+ export const filterFn_equalsStringSensitive = constructFilterFn({
141
+ filter: (dataValue, filterValue) => dataValue === filterValue,
142
+ autoRemove: (val: any) => testFalsy(val),
143
+ resolveFilterValue: (val: any) => String(val),
144
+ resolveDataValue: (val: any) => (val == null ? undefined : String(val)),
145
+ })
146
+
147
+ /**
148
+ * Keeps rows whose stringified column value starts with the filter text.
149
+ *
150
+ * Both values are lowercased before comparison, and empty filter values are
151
+ * auto-removed.
152
+ */
153
+ export const filterFn_startsWith = constructFilterFn({
154
+ filter: (dataValue, filterValue) =>
155
+ Boolean(dataValue?.startsWith(filterValue)),
156
+ autoRemove: (val: any) => testFalsy(val),
157
+ resolveFilterValue: (val: any) => String(val).toLowerCase(),
158
+ resolveDataValue: (val: any) =>
159
+ val == null ? undefined : String(val).toLowerCase(),
160
+ })
161
+
162
+ /**
163
+ * Keeps rows whose stringified column value ends with the filter text.
164
+ *
165
+ * Both values are lowercased before comparison, and empty filter values are
166
+ * auto-removed.
167
+ */
168
+ export const filterFn_endsWith = constructFilterFn({
169
+ filter: (dataValue, filterValue) => Boolean(dataValue?.endsWith(filterValue)),
170
+ autoRemove: (val: any) => testFalsy(val),
171
+ resolveFilterValue: (val: any) => String(val).toLowerCase(),
172
+ resolveDataValue: (val: any) =>
173
+ val == null ? undefined : String(val).toLowerCase(),
174
+ })
175
+
176
+ // Blank filters
177
+
178
+ /**
179
+ * Keeps rows whose column value is empty.
180
+ *
181
+ * A value is empty when it is nullish or stringifies to whitespace only. The
182
+ * filter value acts as an on/off flag: `false` and blank values are
183
+ * auto-removed.
184
+ */
185
+ export const filterFn_empty = constructFilterFn({
186
+ filter: (dataValue) => testValueEmpty(dataValue),
187
+ autoRemove: (val: any) => testFalsy(val) || val === false,
188
+ })
189
+
190
+ /**
191
+ * Keeps rows whose column value is not empty.
192
+ *
193
+ * A value is empty when it is nullish or stringifies to whitespace only. The
194
+ * filter value acts as an on/off flag: `false` and blank values are
195
+ * auto-removed.
196
+ */
197
+ export const filterFn_notEmpty = constructFilterFn({
198
+ filter: (dataValue) => !testValueEmpty(dataValue),
199
+ autoRemove: (val: any) => testFalsy(val) || val === false,
200
+ })
201
+
202
+ // Number filters
203
+
204
+ /**
205
+ * Keeps rows whose value is greater than the filter value.
206
+ *
207
+ * Numeric values are compared numerically when both sides can be coerced to
208
+ * numbers; otherwise normalized strings are compared.
209
+ */
210
+ export const filterFn_greaterThan = constructFilterFn({
211
+ filter: (dataValue, filterValue) =>
212
+ compareGreaterThan(dataValue, filterValue),
213
+ autoRemove: (val: any) => testFalsy(val),
214
+ })
215
+
216
+ /**
217
+ * Keeps rows whose value is greater than or equal to the filter value.
218
+ *
219
+ * Delegates to the built-in greater-than and strict-equality comparisons.
220
+ */
221
+ export const filterFn_greaterThanOrEqualTo = constructFilterFn({
222
+ filter: (dataValue, filterValue) =>
223
+ compareGreaterThanOrEqualTo(dataValue, filterValue),
224
+ autoRemove: (val: any) => testFalsy(val),
225
+ })
226
+
227
+ /**
228
+ * Keeps rows whose value is less than the filter value.
229
+ *
230
+ * This is implemented as the inverse of greater-than-or-equal comparison.
231
+ */
232
+ export const filterFn_lessThan = constructFilterFn({
233
+ filter: (dataValue, filterValue) =>
234
+ !compareGreaterThanOrEqualTo(dataValue, filterValue),
235
+ autoRemove: (val: any) => testFalsy(val),
236
+ })
237
+
238
+ /**
239
+ * Keeps rows whose value is less than or equal to the filter value.
240
+ *
241
+ * This is implemented as the inverse of greater-than comparison.
242
+ */
243
+ export const filterFn_lessThanOrEqualTo = constructFilterFn({
244
+ filter: (dataValue, filterValue) =>
245
+ !compareGreaterThan(dataValue, filterValue),
246
+ autoRemove: (val: any) => testFalsy(val),
247
+ })
248
+
249
+ // Range filters
250
+
251
+ /**
252
+ * Keeps rows whose value falls between an exclusive min/max pair.
253
+ *
254
+ * Blank range endpoints are treated as open-ended.
255
+ */
256
+ export const filterFn_between = constructFilterFn({
257
+ filter: (dataValue, filterValues: [unknown, unknown]) =>
258
+ compareBetween(dataValue, filterValues, false),
259
+ autoRemove: (val: any) =>
260
+ testFalsy(val) ||
261
+ (Array.isArray(val) && testFalsy(val[0]) && testFalsy(val[1])),
262
+ })
263
+
264
+ /**
265
+ * Keeps rows whose value falls between an inclusive min/max pair.
266
+ *
267
+ * Blank range endpoints are treated as open-ended.
268
+ */
269
+ export const filterFn_betweenInclusive = constructFilterFn({
270
+ filter: (dataValue, filterValues: [unknown, unknown]) =>
271
+ compareBetween(dataValue, filterValues, true),
272
+ autoRemove: (val: any) =>
273
+ testFalsy(val) ||
274
+ (Array.isArray(val) && testFalsy(val[0]) && testFalsy(val[1])),
275
+ })
276
+
277
+ /**
278
+ * Keeps rows whose numeric value is inside an inclusive `[min, max]` range.
279
+ *
280
+ * Filter values are normalized so blank endpoints become open-ended and
281
+ * reversed endpoints are swapped.
282
+ */
283
+ export const filterFn_inNumberRange = constructFilterFn({
284
+ filter: (dataValue: number, filterValue: [number, number]) => {
285
+ const [min, max] = filterValue
286
+ return dataValue >= min && dataValue <= max
287
+ },
288
+ resolveFilterValue: (val: [any, any]) => {
289
+ const [unsafeMin, unsafeMax] = val
290
+
291
+ const parsedMin =
292
+ typeof unsafeMin !== 'number' ? parseFloat(unsafeMin) : unsafeMin
293
+ const parsedMax =
294
+ typeof unsafeMax !== 'number' ? parseFloat(unsafeMax) : unsafeMax
295
+
296
+ let min =
297
+ unsafeMin === null || Number.isNaN(parsedMin) ? -Infinity : parsedMin
298
+ let max =
299
+ unsafeMax === null || Number.isNaN(parsedMax) ? Infinity : parsedMax
300
+
301
+ if (min > max) {
302
+ const temp = min
303
+ min = max
304
+ max = temp
305
+ }
306
+
307
+ return [min, max] as const
308
+ },
309
+ autoRemove: (val: any) =>
310
+ testFalsy(val) ||
311
+ (Array.isArray(val) && testFalsy(val[0]) && testFalsy(val[1])),
312
+ })
313
+
314
+ // Date filters
315
+
316
+ /**
317
+ * Keeps rows whose date value is inside an inclusive `[min, max]` date range.
318
+ *
319
+ * Row values and range endpoints may be `Date` objects, timestamps, or
320
+ * parseable date strings. Blank or invalid endpoints become open-ended and
321
+ * reversed endpoints are swapped. Rows without a valid date never match.
322
+ */
323
+ export const filterFn_inDateRange = constructFilterFn({
324
+ filter: (dataValue: number, filterValue: [number, number]) => {
325
+ const [min, max] = filterValue
326
+ return dataValue >= min && dataValue <= max
327
+ },
328
+ resolveFilterValue: (val: [any, any]) => {
329
+ const [unsafeMin, unsafeMax] = val
330
+
331
+ const parsedMin = toDateTimestamp(unsafeMin)
332
+ const parsedMax = toDateTimestamp(unsafeMax)
333
+
334
+ let min = Number.isNaN(parsedMin) ? -Infinity : parsedMin
335
+ let max = Number.isNaN(parsedMax) ? Infinity : parsedMax
336
+
337
+ if (min > max) {
338
+ const temp = min
339
+ min = max
340
+ max = temp
341
+ }
342
+
343
+ return [min, max] as const
344
+ },
345
+ resolveDataValue: (val: any) => toDateTimestamp(val),
346
+ autoRemove: (val: any) =>
347
+ testFalsy(val) ||
348
+ (Array.isArray(val) && testFalsy(val[0]) && testFalsy(val[1])),
349
+ })
350
+
351
+ // Array filters
352
+
353
+ /**
354
+ * Keeps rows whose scalar column value equals at least one filter value.
355
+ */
356
+ export const filterFn_arrHas = constructFilterFn({
357
+ filter: (dataValue, filterValue: Array<unknown>) => {
358
+ for (let i = 0; i < filterValue.length; i++) {
359
+ if (dataValue === filterValue[i]) {
360
+ return true
361
+ }
362
+ }
363
+ return false
364
+ },
365
+ autoRemove: (val: any) => testFalsy(val) || !val?.length,
366
+ })
367
+
368
+ /**
369
+ * Keeps rows whose array or string column value includes at least one filter value.
370
+ */
371
+ export const filterFn_arrIncludes = constructFilterFn({
372
+ filter: (dataValue, filterValue: Array<unknown>) => {
373
+ if (typeof dataValue !== 'string' && !Array.isArray(dataValue)) {
374
+ return false
375
+ }
376
+
377
+ for (let i = 0; i < filterValue.length; i++) {
378
+ if (dataValue.includes(filterValue[i] as any)) {
379
+ return true
380
+ }
381
+ }
382
+ return false
383
+ },
384
+ autoRemove: (val: any) => testFalsy(val) || !val?.length,
385
+ })
386
+
387
+ /**
388
+ * Keeps rows whose array column value includes every filter value.
389
+ */
390
+ export const filterFn_arrIncludesAll = constructFilterFn({
391
+ filter: (dataValue, filterValue: Array<unknown>) => {
392
+ if (!Array.isArray(dataValue)) return false
393
+ for (let i = 0; i < filterValue.length; i++) {
394
+ if (!dataValue.includes(filterValue[i])) {
395
+ return false
396
+ }
397
+ }
398
+ return true
399
+ },
400
+ autoRemove: (val: any) => testFalsy(val) || !val?.length,
401
+ })
402
+
403
+ /**
404
+ * Keeps rows whose array column value includes at least one filter value.
405
+ */
406
+ export const filterFn_arrIncludesSome = constructFilterFn({
407
+ filter: (dataValue, filterValue: Array<unknown>) => {
408
+ if (!Array.isArray(dataValue)) return false
409
+ for (let i = 0; i < filterValue.length; i++) {
410
+ if (dataValue.includes(filterValue[i])) {
411
+ return true
412
+ }
413
+ }
414
+ return false
415
+ },
416
+ autoRemove: (val: any) => testFalsy(val) || !val?.length,
417
+ })
418
+
419
+ // Export
420
+
421
+ /**
422
+ * The built-in filter function registry.
423
+ *
424
+ * Registering this full object opts out of tree-shaking: every built-in
425
+ * filter function ends up in your bundle. Prefer importing the `filterFn_*`
426
+ * functions you actually use and registering just those in the `filterFns`
427
+ * slot, or passing them directly to the `filterFn` column option.
428
+ *
429
+ * @deprecated Import individual `filterFn_*` functions instead for a smaller
430
+ * bundle. This export still works and is not going away in v9, but built-in
431
+ * name resolution (including `filterFn: 'auto'`) only finds functions you
432
+ * register yourself.
433
+ */
434
+ export const filterFns = {
435
+ arrIncludes: filterFn_arrIncludes,
436
+ arrIncludesAll: filterFn_arrIncludesAll,
437
+ arrHas: filterFn_arrHas,
438
+ arrIncludesSome: filterFn_arrIncludesSome,
439
+ between: filterFn_between,
440
+ betweenInclusive: filterFn_betweenInclusive,
441
+ empty: filterFn_empty,
442
+ endsWith: filterFn_endsWith,
443
+ equals: filterFn_equals,
444
+ equalsString: filterFn_equalsString,
445
+ equalsStringSensitive: filterFn_equalsStringSensitive,
446
+ inDateRange: filterFn_inDateRange,
447
+ inNumberRange: filterFn_inNumberRange,
448
+ includesString: filterFn_includesString,
449
+ includesStringSensitive: filterFn_includesStringSensitive,
450
+ notEmpty: filterFn_notEmpty,
451
+ startsWith: filterFn_startsWith,
452
+ weakEquals: filterFn_weakEquals,
453
+ }
454
+
455
+ export type BuiltInFilterFn = keyof typeof filterFns
456
+
457
+ // Utils
458
+
459
+ function testFalsy(val: any) {
460
+ return val === undefined || val === null || val === ''
461
+ }
462
+
463
+ function testValueEmpty(dataValue: any) {
464
+ return dataValue == null || String(dataValue).trim() === ''
465
+ }
466
+
467
+ function toDateTimestamp(value: any): number {
468
+ if (value instanceof Date) {
469
+ return value.getTime()
470
+ }
471
+ if (typeof value === 'number') {
472
+ return value
473
+ }
474
+ // Guard nullish and blank values explicitly: `new Date(null)` is the epoch,
475
+ // not an invalid date.
476
+ if (value == null || value === '') {
477
+ return NaN
478
+ }
479
+ return new Date(value).getTime()
480
+ }
481
+
482
+ function compareGreaterThan(dataValue: any, filterValue: any): boolean {
483
+ const numericDataValue = dataValue == null ? 0 : +dataValue
484
+ const numericFilterValue = Number(filterValue)
485
+
486
+ if (!isNaN(numericFilterValue) && !isNaN(numericDataValue)) {
487
+ return numericDataValue > numericFilterValue
488
+ }
489
+
490
+ const stringDataValue = String(dataValue ?? '')
491
+ .toLowerCase()
492
+ .trim()
493
+ const stringFilterValue = String(filterValue).toLowerCase().trim()
494
+ return stringDataValue > stringFilterValue
495
+ }
496
+
497
+ function compareGreaterThanOrEqualTo(dataValue: any, filterValue: any) {
498
+ return dataValue === filterValue || compareGreaterThan(dataValue, filterValue)
499
+ }
500
+
501
+ function compareBetween(
502
+ dataValue: any,
503
+ filterValues: [unknown, unknown],
504
+ inclusive: boolean,
505
+ ): boolean {
506
+ const min = filterValues[0]
507
+ const hasMin = min !== '' && min !== undefined
508
+ if (hasMin) {
509
+ const passesMin = inclusive
510
+ ? compareGreaterThanOrEqualTo(dataValue, min)
511
+ : compareGreaterThan(dataValue, min)
512
+ if (!passesMin) {
513
+ return false
514
+ }
515
+ }
516
+
517
+ const max = filterValues[1]
518
+ if (max === '' || max === undefined) {
519
+ return true
520
+ }
521
+
522
+ if (hasMin) {
523
+ const numericMin = Number(min)
524
+ const numericMax = Number(max)
525
+ if (!isNaN(numericMin) && !isNaN(numericMax) && numericMin > numericMax) {
526
+ return true
527
+ }
528
+ }
529
+
530
+ return inclusive
531
+ ? !compareGreaterThan(dataValue, max)
532
+ : !compareGreaterThanOrEqualTo(dataValue, max)
533
+ }
@@ -1,4 +1,5 @@
1
1
  import { constructRow } from '../../core/rows/constructRow'
2
+ import { makeObjectMap } from '../../utils'
2
3
  import type { Row_ColumnFiltering } from './columnFilteringFeature.types'
3
4
  import type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'
4
5
  import type { Row } from '../../types/Row'
@@ -37,7 +38,7 @@ function filterRowModelFromLeafs<
37
38
  table: Table_Internal<TFeatures, TData>,
38
39
  ): RowModel<TFeatures, TData> {
39
40
  const newFilteredFlatRows: Array<Row<TFeatures, TData>> = []
40
- const newFilteredRowsById: Record<string, Row<TFeatures, TData>> = {}
41
+ const newFilteredRowsById = makeObjectMap<Row<TFeatures, TData>>()
41
42
  const maxDepth = table.options.maxLeafRowFilterDepth ?? 100
42
43
 
43
44
  const recurseFilterRows = (
@@ -109,7 +110,7 @@ function filterRowModelFromRoot<
109
110
  table: Table_Internal<TFeatures, TData>,
110
111
  ): RowModel<TFeatures, TData> {
111
112
  const newFilteredFlatRows: Array<Row<TFeatures, TData>> = []
112
- const newFilteredRowsById: Record<string, Row<TFeatures, TData>> = {}
113
+ const newFilteredRowsById = makeObjectMap<Row<TFeatures, TData>>()
113
114
  const maxDepth = table.options.maxLeafRowFilterDepth ?? 100
114
115
 
115
116
  // Filters top level and nested rows