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

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/aggregation/aggregationFeature.cjs +39 -0
  109. package/dist/features/aggregation/aggregationFeature.cjs.map +1 -0
  110. package/dist/features/aggregation/aggregationFeature.d.cts +10 -0
  111. package/dist/features/aggregation/aggregationFeature.d.ts +10 -0
  112. package/dist/features/aggregation/aggregationFeature.js +39 -0
  113. package/dist/features/aggregation/aggregationFeature.js.map +1 -0
  114. package/dist/features/aggregation/aggregationFeature.types.cjs +13 -0
  115. package/dist/features/aggregation/aggregationFeature.types.cjs.map +1 -0
  116. package/dist/features/aggregation/aggregationFeature.types.d.cts +195 -0
  117. package/dist/features/aggregation/aggregationFeature.types.d.ts +195 -0
  118. package/dist/features/aggregation/aggregationFeature.types.js +12 -0
  119. package/dist/features/aggregation/aggregationFeature.types.js.map +1 -0
  120. package/dist/features/aggregation/aggregationFeature.utils.cjs +212 -0
  121. package/dist/features/aggregation/aggregationFeature.utils.cjs.map +1 -0
  122. package/dist/features/aggregation/aggregationFeature.utils.d.cts +34 -0
  123. package/dist/features/aggregation/aggregationFeature.utils.d.ts +34 -0
  124. package/dist/features/aggregation/aggregationFeature.utils.js +206 -0
  125. package/dist/features/aggregation/aggregationFeature.utils.js.map +1 -0
  126. package/dist/features/aggregation/aggregationFns.cjs +246 -0
  127. package/dist/features/aggregation/aggregationFns.cjs.map +1 -0
  128. package/dist/features/aggregation/aggregationFns.d.cts +68 -0
  129. package/dist/features/aggregation/aggregationFns.d.ts +68 -0
  130. package/dist/features/aggregation/aggregationFns.js +235 -0
  131. package/dist/features/aggregation/aggregationFns.js.map +1 -0
  132. package/dist/features/column-faceting/columnFacetingFeature.cjs +12 -18
  133. package/dist/features/column-faceting/columnFacetingFeature.cjs.map +1 -1
  134. package/dist/features/column-faceting/columnFacetingFeature.js +12 -18
  135. package/dist/features/column-faceting/columnFacetingFeature.js.map +1 -1
  136. package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +15 -33
  137. package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +15 -33
  138. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +23 -12
  139. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -1
  140. package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +9 -9
  141. package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +9 -9
  142. package/dist/features/column-faceting/columnFacetingFeature.utils.js +24 -12
  143. package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -1
  144. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs +7 -4
  145. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +1 -1
  146. package/dist/features/column-faceting/createFacetedMinMaxValues.d.cts +1 -1
  147. package/dist/features/column-faceting/createFacetedMinMaxValues.d.ts +1 -1
  148. package/dist/features/column-faceting/createFacetedMinMaxValues.js +8 -5
  149. package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +1 -1
  150. package/dist/features/column-faceting/createFacetedRowModel.cjs +10 -15
  151. package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
  152. package/dist/features/column-faceting/createFacetedRowModel.d.cts +2 -2
  153. package/dist/features/column-faceting/createFacetedRowModel.d.ts +2 -2
  154. package/dist/features/column-faceting/createFacetedRowModel.js +10 -15
  155. package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
  156. package/dist/features/column-faceting/createFacetedUniqueValues.cjs +10 -6
  157. package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -1
  158. package/dist/features/column-faceting/createFacetedUniqueValues.d.cts +1 -1
  159. package/dist/features/column-faceting/createFacetedUniqueValues.d.ts +1 -1
  160. package/dist/features/column-faceting/createFacetedUniqueValues.js +11 -7
  161. package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -1
  162. package/dist/features/column-filtering/columnFilteringFeature.cjs +2 -2
  163. package/dist/features/column-filtering/columnFilteringFeature.cjs.map +1 -1
  164. package/dist/features/column-filtering/columnFilteringFeature.js +3 -3
  165. package/dist/features/column-filtering/columnFilteringFeature.js.map +1 -1
  166. package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +83 -29
  167. package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +83 -29
  168. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +23 -17
  169. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
  170. package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +18 -14
  171. package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +18 -14
  172. package/dist/features/column-filtering/columnFilteringFeature.utils.js +23 -17
  173. package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
  174. package/dist/features/column-filtering/createFilteredRowModel.cjs +29 -25
  175. package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
  176. package/dist/features/column-filtering/createFilteredRowModel.d.cts +10 -4
  177. package/dist/features/column-filtering/createFilteredRowModel.d.ts +10 -4
  178. package/dist/features/column-filtering/createFilteredRowModel.js +30 -26
  179. package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
  180. package/dist/features/column-filtering/filterFns.cjs +399 -0
  181. package/dist/features/column-filtering/filterFns.cjs.map +1 -0
  182. package/dist/features/column-filtering/filterFns.d.cts +210 -0
  183. package/dist/features/column-filtering/filterFns.d.ts +210 -0
  184. package/dist/features/column-filtering/filterFns.js +375 -0
  185. package/dist/features/column-filtering/filterFns.js.map +1 -0
  186. package/dist/features/column-filtering/filterRowsUtils.cjs +3 -2
  187. package/dist/features/column-filtering/filterRowsUtils.cjs.map +1 -1
  188. package/dist/features/column-filtering/filterRowsUtils.js +3 -2
  189. package/dist/features/column-filtering/filterRowsUtils.js.map +1 -1
  190. package/dist/features/column-grouping/columnGroupingFeature.cjs +4 -16
  191. package/dist/features/column-grouping/columnGroupingFeature.cjs.map +1 -1
  192. package/dist/features/column-grouping/columnGroupingFeature.d.cts +1 -1
  193. package/dist/features/column-grouping/columnGroupingFeature.d.ts +1 -1
  194. package/dist/features/column-grouping/columnGroupingFeature.js +6 -18
  195. package/dist/features/column-grouping/columnGroupingFeature.js.map +1 -1
  196. package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +14 -50
  197. package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +14 -50
  198. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs +6 -61
  199. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs.map +1 -1
  200. package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +12 -49
  201. package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +12 -49
  202. package/dist/features/column-grouping/columnGroupingFeature.utils.js +8 -60
  203. package/dist/features/column-grouping/columnGroupingFeature.utils.js.map +1 -1
  204. package/dist/features/column-grouping/createGroupedRowModel.cjs +37 -24
  205. package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -1
  206. package/dist/features/column-grouping/createGroupedRowModel.d.cts +6 -4
  207. package/dist/features/column-grouping/createGroupedRowModel.d.ts +6 -4
  208. package/dist/features/column-grouping/createGroupedRowModel.js +39 -26
  209. package/dist/features/column-grouping/createGroupedRowModel.js.map +1 -1
  210. package/dist/features/column-ordering/columnOrderingFeature.cjs +17 -21
  211. package/dist/features/column-ordering/columnOrderingFeature.cjs.map +1 -1
  212. package/dist/features/column-ordering/columnOrderingFeature.js +18 -22
  213. package/dist/features/column-ordering/columnOrderingFeature.js.map +1 -1
  214. package/dist/features/column-ordering/columnOrderingFeature.types.d.cts +28 -3
  215. package/dist/features/column-ordering/columnOrderingFeature.types.d.ts +28 -3
  216. package/dist/features/column-ordering/columnOrderingFeature.utils.cjs +35 -15
  217. package/dist/features/column-ordering/columnOrderingFeature.utils.cjs.map +1 -1
  218. package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +26 -14
  219. package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +26 -14
  220. package/dist/features/column-ordering/columnOrderingFeature.utils.js +36 -17
  221. package/dist/features/column-ordering/columnOrderingFeature.utils.js.map +1 -1
  222. package/dist/features/column-pinning/columnPinningFeature.cjs +124 -143
  223. package/dist/features/column-pinning/columnPinningFeature.cjs.map +1 -1
  224. package/dist/features/column-pinning/columnPinningFeature.d.cts +6 -1
  225. package/dist/features/column-pinning/columnPinningFeature.d.ts +6 -1
  226. package/dist/features/column-pinning/columnPinningFeature.js +125 -144
  227. package/dist/features/column-pinning/columnPinningFeature.js.map +1 -1
  228. package/dist/features/column-pinning/columnPinningFeature.types.d.cts +52 -41
  229. package/dist/features/column-pinning/columnPinningFeature.types.d.ts +52 -41
  230. package/dist/features/column-pinning/columnPinningFeature.utils.cjs +161 -162
  231. package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
  232. package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +101 -92
  233. package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +101 -92
  234. package/dist/features/column-pinning/columnPinningFeature.utils.js +148 -149
  235. package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
  236. package/dist/features/column-resizing/columnResizingFeature.types.d.cts +1 -4
  237. package/dist/features/column-resizing/columnResizingFeature.types.d.ts +1 -4
  238. package/dist/features/column-resizing/columnResizingFeature.utils.cjs +84 -44
  239. package/dist/features/column-resizing/columnResizingFeature.utils.cjs.map +1 -1
  240. package/dist/features/column-resizing/columnResizingFeature.utils.d.cts +6 -6
  241. package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +6 -6
  242. package/dist/features/column-resizing/columnResizingFeature.utils.js +85 -45
  243. package/dist/features/column-resizing/columnResizingFeature.utils.js.map +1 -1
  244. package/dist/features/column-sizing/columnSizingFeature.cjs +33 -67
  245. package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
  246. package/dist/features/column-sizing/columnSizingFeature.js +34 -68
  247. package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
  248. package/dist/features/column-sizing/columnSizingFeature.types.d.cts +52 -9
  249. package/dist/features/column-sizing/columnSizingFeature.types.d.ts +52 -9
  250. package/dist/features/column-sizing/columnSizingFeature.utils.cjs +88 -45
  251. package/dist/features/column-sizing/columnSizingFeature.utils.cjs.map +1 -1
  252. package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +43 -25
  253. package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +43 -25
  254. package/dist/features/column-sizing/columnSizingFeature.utils.js +88 -46
  255. package/dist/features/column-sizing/columnSizingFeature.utils.js.map +1 -1
  256. package/dist/features/column-visibility/columnVisibilityFeature.cjs +25 -36
  257. package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
  258. package/dist/features/column-visibility/columnVisibilityFeature.js +25 -36
  259. package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
  260. package/dist/features/column-visibility/columnVisibilityFeature.types.d.cts +3 -3
  261. package/dist/features/column-visibility/columnVisibilityFeature.types.d.ts +3 -3
  262. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs +30 -29
  263. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs.map +1 -1
  264. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +18 -18
  265. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +18 -18
  266. package/dist/features/column-visibility/columnVisibilityFeature.utils.js +31 -30
  267. package/dist/features/column-visibility/columnVisibilityFeature.utils.js.map +1 -1
  268. package/dist/features/global-filtering/globalFilteringFeature.cjs +1 -2
  269. package/dist/features/global-filtering/globalFilteringFeature.cjs.map +1 -1
  270. package/dist/features/global-filtering/globalFilteringFeature.js +1 -2
  271. package/dist/features/global-filtering/globalFilteringFeature.js.map +1 -1
  272. package/dist/features/global-filtering/globalFilteringFeature.types.d.cts +2 -2
  273. package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +2 -2
  274. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs +6 -6
  275. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
  276. package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +8 -11
  277. package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +8 -11
  278. package/dist/features/global-filtering/globalFilteringFeature.utils.js +6 -6
  279. package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
  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/aggregation/aggregationFeature.ts +60 -0
  499. package/src/features/aggregation/aggregationFeature.types.ts +339 -0
  500. package/src/features/aggregation/aggregationFeature.utils.ts +430 -0
  501. package/src/features/aggregation/aggregationFns.ts +345 -0
  502. package/src/features/column-faceting/columnFacetingFeature.types.ts +17 -48
  503. package/src/features/column-faceting/columnFacetingFeature.utils.ts +53 -18
  504. package/src/features/column-faceting/createFacetedMinMaxValues.ts +33 -7
  505. package/src/features/column-faceting/createFacetedRowModel.ts +8 -1
  506. package/src/features/column-faceting/createFacetedUniqueValues.ts +41 -10
  507. package/src/features/column-filtering/columnFilteringFeature.ts +3 -2
  508. package/src/features/column-filtering/columnFilteringFeature.types.ts +117 -41
  509. package/src/features/column-filtering/columnFilteringFeature.utils.ts +37 -23
  510. package/src/features/column-filtering/createFilteredRowModel.ts +28 -17
  511. package/src/features/column-filtering/filterFns.ts +533 -0
  512. package/src/features/column-filtering/filterRowsUtils.ts +3 -2
  513. package/src/features/column-grouping/columnGroupingFeature.ts +3 -21
  514. package/src/features/column-grouping/columnGroupingFeature.types.ts +21 -95
  515. package/src/features/column-grouping/columnGroupingFeature.utils.ts +4 -87
  516. package/src/features/column-grouping/createGroupedRowModel.ts +46 -45
  517. package/src/features/column-ordering/columnOrderingFeature.ts +12 -7
  518. package/src/features/column-ordering/columnOrderingFeature.types.ts +29 -3
  519. package/src/features/column-ordering/columnOrderingFeature.utils.ts +59 -8
  520. package/src/features/column-pinning/columnPinningFeature.ts +76 -59
  521. package/src/features/column-pinning/columnPinningFeature.types.ts +53 -42
  522. package/src/features/column-pinning/columnPinningFeature.utils.ts +184 -170
  523. package/src/features/column-resizing/columnResizingFeature.types.ts +1 -4
  524. package/src/features/column-resizing/columnResizingFeature.utils.ts +120 -52
  525. package/src/features/column-sizing/columnSizingFeature.ts +24 -24
  526. package/src/features/column-sizing/columnSizingFeature.types.ts +53 -8
  527. package/src/features/column-sizing/columnSizingFeature.utils.ts +143 -62
  528. package/src/features/column-visibility/columnVisibilityFeature.ts +4 -0
  529. package/src/features/column-visibility/columnVisibilityFeature.types.ts +4 -4
  530. package/src/features/column-visibility/columnVisibilityFeature.utils.ts +48 -30
  531. package/src/features/global-filtering/globalFilteringFeature.types.ts +4 -4
  532. package/src/features/global-filtering/globalFilteringFeature.utils.ts +13 -5
  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,13 +1,23 @@
1
- import { CellData, OnChangeFn, RowData, Updater } from "../../types/type-utils.js";
2
- import { BuiltInFilterFn } from "../../fns/filterFns.js";
3
- import { Column } from "../../types/Column.js";
1
+ import { CellData, OnChangeFn, RowData, TransformDataValueFn, Updater } from "../../types/type-utils.js";
2
+ import { BuiltInFilterFn } from "./filterFns.js";
4
3
  import { Row } from "../../types/Row.js";
5
- import { TableFeatures } from "../../types/TableFeatures.js";
6
- import { Table } from "../../types/Table.js";
7
4
  import { RowModel } from "../../core/row-models/coreRowModelsFeature.types.js";
5
+ import { Column } from "../../types/Column.js";
6
+ import { IsAny, TableFeatures } from "../../types/TableFeatures.js";
8
7
 
9
8
  //#region src/features/column-filtering/columnFilteringFeature.types.d.ts
10
9
  interface FilterMeta {}
10
+ /**
11
+ * Resolves the type of the filter meta attached to rows for a feature set.
12
+ *
13
+ * When the features object declares a `filterMeta` type-only slot
14
+ * (`tableFeatures({ ..., filterMeta: {} as MyFilterMeta })`), that type wins.
15
+ * Otherwise this falls back to the global declaration-merged `FilterMeta`
16
+ * interface.
17
+ */
18
+ type ExtractFilterMeta<TFeatures extends TableFeatures> = IsAny<TFeatures> extends true ? FilterMeta : TFeatures extends {
19
+ filterMeta: infer TFilterMeta extends object;
20
+ } ? TFilterMeta : FilterMeta;
11
21
  interface FilterFns {}
12
22
  interface TableState_ColumnFiltering {
13
23
  columnFilters: ColumnFiltersState;
@@ -17,24 +27,77 @@ interface ColumnFilter {
17
27
  id: string;
18
28
  value: unknown;
19
29
  }
20
- interface ResolvedColumnFilter<TFeatures extends TableFeatures, TData extends RowData> {
30
+ interface ResolvedColumnFilter<in out TFeatures extends TableFeatures, in out TData extends RowData> {
21
31
  filterFn: FilterFn<TFeatures, TData>;
22
32
  id: string;
23
33
  resolvedValue: unknown;
24
34
  }
25
- interface RowModelFns_ColumnFiltering<TFeatures extends TableFeatures, TData extends RowData> {
26
- filterFns: Record<keyof FilterFns, FilterFn<TFeatures, RowData>>;
35
+ interface RowModelFns_ColumnFiltering<in out TFeatures extends TableFeatures, in out TData extends RowData> {
36
+ filterFns: Record<string, FilterFn<TFeatures, TData>>;
27
37
  }
28
- interface FilterFn<TFeatures extends TableFeatures, TData extends RowData> {
29
- (row: Row<TFeatures, TData>, columnId: string, filterValue: any, addMeta?: (meta: FilterMeta) => void): boolean;
38
+ interface FilterFn<in out TFeatures extends TableFeatures, in out TData extends RowData> {
39
+ (row: Row<TFeatures, TData>, columnId: string, filterValue: any, addMeta?: (meta: ExtractFilterMeta<TFeatures>) => void): boolean;
40
+ /**
41
+ * Removes the filter from `state.columnFilters` when the filter value fails
42
+ * this test (e.g. empty strings for text filters).
43
+ */
30
44
  autoRemove?: ColumnFilterAutoRemoveTestFn<TFeatures, TData>;
45
+ /**
46
+ * Normalizes the filter value before filtering runs.
47
+ *
48
+ * The table applies this once per filter (not per row) and passes the
49
+ * resolved value to the filter function as `filterValue`.
50
+ */
31
51
  resolveFilterValue?: TransformFilterValueFn<TFeatures, TData>;
52
+ /**
53
+ * Normalizes each row's value before it is compared against the filter
54
+ * value. Only honored by filter functions built with `constructFilterFn`
55
+ * (including all built-in filter functions).
56
+ */
57
+ resolveDataValue?: TransformDataValueFn;
58
+ }
59
+ /**
60
+ * The definition object accepted by `constructFilterFn`.
61
+ *
62
+ * `filter` is a value-level comparator: it receives the row's (resolved) data
63
+ * value and the (resolved) filter value instead of the whole row, so
64
+ * normalization concerns stay in `resolveDataValue`/`resolveFilterValue`.
65
+ */
66
+ interface FilterFnDef<in out TFeatures extends TableFeatures, in out TData extends RowData> {
67
+ filter: (dataValue: any, filterValue: any, row: Row<TFeatures, TData>, columnId: string, addMeta?: (meta: ExtractFilterMeta<TFeatures>) => void) => boolean;
68
+ autoRemove?: (filterValue: any) => boolean;
69
+ resolveFilterValue?: (filterValue: any) => any;
70
+ resolveDataValue?: TransformDataValueFn;
71
+ }
72
+ /**
73
+ * The shape returned by `constructFilterFn`: a `FilterFn` with its definition
74
+ * attached, so variants can be built by spreading it into another
75
+ * `constructFilterFn` call.
76
+ *
77
+ * The call signature is generic so a created filter function can be used with
78
+ * any table's rows, regardless of the feature set it was defined against.
79
+ */
80
+ interface CreatedFilterFn<in out TFeatures extends TableFeatures, in out TData extends RowData> extends FilterFnDef<TFeatures, TData> {
81
+ <TRowFeatures extends TableFeatures, TRowData extends RowData>(row: Row<TRowFeatures, TRowData>, columnId: string, filterValue: any, addMeta?: (meta: ExtractFilterMeta<TRowFeatures>) => void): boolean;
32
82
  }
33
83
  type TransformFilterValueFn<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData> = (value: any, column?: Column<TFeatures, TData, TValue>) => TValue;
34
84
  type ColumnFilterAutoRemoveTestFn<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData> = (value: any, column?: Column<TFeatures, TData, TValue>) => boolean;
35
- type CustomFilterFns<TFeatures extends TableFeatures, TData extends RowData> = Record<string, FilterFn<TFeatures, RowData>>;
36
- type FilterFnOption<TFeatures extends TableFeatures, TData extends RowData> = 'auto' | BuiltInFilterFn | keyof FilterFns | FilterFn<TFeatures, RowData>;
37
- interface ColumnDef_ColumnFiltering<TFeatures extends TableFeatures, TData extends RowData> {
85
+ type CustomFilterFns<TFeatures extends TableFeatures, TData extends RowData> = Record<string, FilterFn<TFeatures, TData>>;
86
+ /**
87
+ * Resolves the valid string names for `columnDef.filterFn` and
88
+ * `options.globalFilterFn` for a feature set.
89
+ *
90
+ * When the features object declares a `filterFns` registry
91
+ * (`tableFeatures({ ..., filterFns })`), its keys are the only valid names; a
92
+ * name is only assignable if a filter function is actually registered for it.
93
+ * Otherwise this falls back to the global declaration-merged `FilterFns`
94
+ * interface.
95
+ */
96
+ type ExtractFilterFnKeys<TFeatures extends TableFeatures> = IsAny<TFeatures> extends true ? keyof FilterFns | BuiltInFilterFn : TFeatures extends {
97
+ filterFns: infer TFilterFns extends object;
98
+ } ? Extract<keyof TFilterFns, string> : keyof FilterFns;
99
+ type FilterFnOption<TFeatures extends TableFeatures, TData extends RowData> = 'auto' | ExtractFilterFnKeys<TFeatures> | FilterFn<TFeatures, TData>;
100
+ interface ColumnDef_ColumnFiltering<in out TFeatures extends TableFeatures, in out TData extends RowData> {
38
101
  /**
39
102
  * Enables this column to participate in column-specific filtering.
40
103
  *
@@ -47,7 +110,7 @@ interface ColumnDef_ColumnFiltering<TFeatures extends TableFeatures, TData exten
47
110
  */
48
111
  filterFn?: FilterFnOption<TFeatures, TData>;
49
112
  }
50
- interface Column_ColumnFiltering<TFeatures extends TableFeatures, TData extends RowData> {
113
+ interface Column_ColumnFiltering<in out TFeatures extends TableFeatures, in out TData extends RowData> {
51
114
  /**
52
115
  * Returns an automatically calculated filter function for the column based off of the columns first known value.
53
116
  */
@@ -80,7 +143,7 @@ interface Column_ColumnFiltering<TFeatures extends TableFeatures, TData extends
80
143
  */
81
144
  setFilterValue: (updater: Updater<any>) => void;
82
145
  }
83
- interface Row_ColumnFiltering<TFeatures extends TableFeatures, TData extends RowData> {
146
+ interface Row_ColumnFiltering<in out TFeatures extends TableFeatures, in out _TData extends RowData> {
84
147
  /**
85
148
  * The column filters map for the row. This object tracks whether a row is passing/failing specific filters by their column ID.
86
149
  */
@@ -88,9 +151,9 @@ interface Row_ColumnFiltering<TFeatures extends TableFeatures, TData extends Row
88
151
  /**
89
152
  * The column filters meta map for the row. This object tracks any filter meta for a row as optionally provided during the filtering process.
90
153
  */
91
- columnFiltersMeta: Record<string, FilterMeta>;
154
+ columnFiltersMeta: Record<string, ExtractFilterMeta<TFeatures>>;
92
155
  }
93
- interface TableOptions_ColumnFiltering<TFeatures extends TableFeatures, TData extends RowData> {
156
+ interface TableOptions_ColumnFiltering<in out _TFeatures extends TableFeatures, in out _TData extends RowData> {
94
157
  /**
95
158
  * Enables column-specific filtering for all columns that also allow it.
96
159
  */
@@ -133,7 +196,7 @@ interface Table_ColumnFiltering {
133
196
  */
134
197
  setColumnFilters: (updater: Updater<ColumnFiltersState>) => void;
135
198
  }
136
- interface Table_RowModels_Filtered<TFeatures extends TableFeatures, TData extends RowData> {
199
+ interface Table_RowModels_Filtered<in out TFeatures extends TableFeatures, in out TData extends RowData> {
137
200
  /**
138
201
  * Resolves the row model after column and global filters have been applied.
139
202
  */
@@ -143,18 +206,9 @@ interface Table_RowModels_Filtered<TFeatures extends TableFeatures, TData extend
143
206
  */
144
207
  getPreFilteredRowModel: () => RowModel<TFeatures, TData>;
145
208
  }
146
- interface CreateRowModel_Filtered<TFeatures extends TableFeatures, TData extends RowData> {
147
- /**
148
- * If provided, this factory is called once per table and should return a
149
- * function that calculates the filtered row model.
150
- * - For server-side filtering, this function is unnecessary and can be ignored since the server should already return the filtered row model.
151
- * - For client-side filtering, pass the exported `createFilteredRowModel()` or implement your own factory.
152
- */
153
- filteredRowModel?: (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData>;
154
- }
155
- interface CachedRowModel_Filtered<TFeatures extends TableFeatures, TData extends RowData> {
209
+ interface CachedRowModel_Filtered<in out TFeatures extends TableFeatures, in out TData extends RowData> {
156
210
  filteredRowModel: () => RowModel<TFeatures, TData>;
157
211
  }
158
212
  //#endregion
159
- export { CachedRowModel_Filtered, ColumnDef_ColumnFiltering, ColumnFilter, ColumnFilterAutoRemoveTestFn, ColumnFiltersState, Column_ColumnFiltering, CreateRowModel_Filtered, CustomFilterFns, FilterFn, FilterFnOption, FilterFns, FilterMeta, ResolvedColumnFilter, RowModelFns_ColumnFiltering, Row_ColumnFiltering, TableOptions_ColumnFiltering, TableState_ColumnFiltering, Table_ColumnFiltering, Table_RowModels_Filtered, TransformFilterValueFn };
213
+ export { CachedRowModel_Filtered, ColumnDef_ColumnFiltering, ColumnFilter, ColumnFilterAutoRemoveTestFn, ColumnFiltersState, Column_ColumnFiltering, CreatedFilterFn, CustomFilterFns, ExtractFilterFnKeys, ExtractFilterMeta, FilterFn, FilterFnDef, FilterFnOption, FilterFns, FilterMeta, ResolvedColumnFilter, RowModelFns_ColumnFiltering, Row_ColumnFiltering, TableOptions_ColumnFiltering, TableState_ColumnFiltering, Table_ColumnFiltering, Table_RowModels_Filtered, TransformFilterValueFn };
160
214
  //# sourceMappingURL=columnFilteringFeature.types.d.ts.map
@@ -19,8 +19,12 @@ function getDefaultColumnFiltersState() {
19
19
  * Chooses a built-in filter function from the column's first core row value.
20
20
  *
21
21
  * Strings use `includesString`, numbers use `inNumberRange`, booleans and
22
- * objects use `equals`, arrays use `arrIncludes`, and unknown values fall back
23
- * to `weakEquals`.
22
+ * objects use `equals`, dates use `inDateRange`, arrays use `arrIncludes`,
23
+ * and unknown values fall back to `weakEquals`.
24
+ *
25
+ * The chosen filter function is looked up in the table's `filterFns`
26
+ * registry. When it is not registered there, this returns `undefined` and
27
+ * warns in development instead of substituting a different filter function.
24
28
  *
25
29
  * @example
26
30
  * ```ts
@@ -31,12 +35,17 @@ function column_getAutoFilterFn(column) {
31
35
  const filterFns = column.table._rowModelFns.filterFns;
32
36
  const firstRow = column.table.getCoreRowModel().flatRows[0];
33
37
  const value = firstRow ? firstRow.getValue(column.id) : void 0;
34
- if (typeof value === "string") return filterFns === null || filterFns === void 0 ? void 0 : filterFns.includesString;
35
- if (typeof value === "number") return filterFns === null || filterFns === void 0 ? void 0 : filterFns.inNumberRange;
36
- if (typeof value === "boolean") return filterFns === null || filterFns === void 0 ? void 0 : filterFns.equals;
37
- if (value !== null && typeof value === "object") return filterFns === null || filterFns === void 0 ? void 0 : filterFns.equals;
38
- if (Array.isArray(value)) return filterFns === null || filterFns === void 0 ? void 0 : filterFns.arrIncludes;
39
- return filterFns === null || filterFns === void 0 ? void 0 : filterFns.weakEquals;
38
+ let filterFnName;
39
+ if (typeof value === "string") filterFnName = "includesString";
40
+ else if (typeof value === "number") filterFnName = "inNumberRange";
41
+ else if (typeof value === "boolean") filterFnName = "equals";
42
+ else if (Array.isArray(value)) filterFnName = "arrIncludes";
43
+ else if (Object.prototype.toString.call(value) === "[object Date]") filterFnName = "inDateRange";
44
+ else if (value !== null && typeof value === "object") filterFnName = "equals";
45
+ else filterFnName = "weakEquals";
46
+ const filterFn = filterFns?.[filterFnName];
47
+ if (process.env.NODE_ENV === "development" && !filterFn) console.warn(`filterFn '${filterFnName}' (auto) for column '${column.id}' is not registered`);
48
+ return filterFn;
40
49
  }
41
50
  /**
42
51
  * Resolves the filter function configured for a column.
@@ -53,9 +62,9 @@ function column_getAutoFilterFn(column) {
53
62
  function column_getFilterFn(column) {
54
63
  let filterFn = null;
55
64
  const filterFns = column.table._rowModelFns.filterFns;
56
- filterFn = require_utils.isFunction(column.columnDef.filterFn) ? column.columnDef.filterFn : column.columnDef.filterFn === "auto" ? column_getAutoFilterFn(column) : filterFns === null || filterFns === void 0 ? void 0 : filterFns[column.columnDef.filterFn];
57
- if (process.env.NODE_ENV === "development" && !filterFn) console.warn(`Could not find a valid 'column.filterFn' for column with the ID: ${column.id}.`);
58
- return filterFn;
65
+ filterFn = require_utils.isFunction(column.columnDef.filterFn) ? column.columnDef.filterFn : column.columnDef.filterFn === "auto" ? column_getAutoFilterFn(column) : filterFns?.[column.columnDef.filterFn];
66
+ if (process.env.NODE_ENV === "development" && !filterFn && column.columnDef.filterFn !== "auto") console.warn(`filterFn '${String(column.columnDef.filterFn)}' for column '${column.id}' is not registered`);
67
+ return filterFn ?? void 0;
59
68
  }
60
69
  /**
61
70
  * Checks whether column filtering is enabled for this accessor column.
@@ -96,8 +105,7 @@ function column_getIsFiltered(column) {
96
105
  * ```
97
106
  */
98
107
  function column_getFilterValue(column) {
99
- var _column$table$atoms$c;
100
- return (_column$table$atoms$c = column.table.atoms.columnFilters) === null || _column$table$atoms$c === void 0 || (_column$table$atoms$c = _column$table$atoms$c.get()) === null || _column$table$atoms$c === void 0 || (_column$table$atoms$c = _column$table$atoms$c.find((d) => d.id === column.id)) === null || _column$table$atoms$c === void 0 ? void 0 : _column$table$atoms$c.value;
108
+ return column.table.atoms.columnFilters?.get()?.find((d) => d.id === column.id)?.value;
101
109
  }
102
110
  /**
103
111
  * Finds this column's position in the ordered `state.columnFilters` array.
@@ -110,8 +118,7 @@ function column_getFilterValue(column) {
110
118
  * ```
111
119
  */
112
120
  function column_getFilterIndex(column) {
113
- var _column$table$atoms$c2;
114
- return ((_column$table$atoms$c2 = column.table.atoms.columnFilters) === null || _column$table$atoms$c2 === void 0 || (_column$table$atoms$c2 = _column$table$atoms$c2.get()) === null || _column$table$atoms$c2 === void 0 ? void 0 : _column$table$atoms$c2.findIndex((d) => d.id === column.id)) ?? -1;
121
+ return column.table.atoms.columnFilters?.get()?.findIndex((d) => d.id === column.id) ?? -1;
115
122
  }
116
123
  /**
117
124
  * Adds, updates, or removes this column's filter value.
@@ -155,7 +162,6 @@ function column_setFilterValue(column, value) {
155
162
  * ```
156
163
  */
157
164
  function table_setColumnFilters(table, updater) {
158
- var _table$options$onColu, _table$options;
159
165
  const leafColumnsById = table.getAllLeafColumnsById();
160
166
  const updateFn = (old) => {
161
167
  return require_utils.functionalUpdate(updater, old).filter((filter) => {
@@ -166,7 +172,7 @@ function table_setColumnFilters(table, updater) {
166
172
  return true;
167
173
  });
168
174
  };
169
- (_table$options$onColu = (_table$options = table.options).onColumnFiltersChange) === null || _table$options$onColu === void 0 || _table$options$onColu.call(_table$options, updateFn);
175
+ table.options.onColumnFiltersChange?.(updateFn);
170
176
  }
171
177
  /**
172
178
  * Resets `columnFilters` to the configured initial state or feature default.
@@ -1 +1 @@
1
- {"version":3,"file":"columnFilteringFeature.utils.cjs","names":["isFunction","functionalUpdate","cloneState"],"sources":["../../../src/features/column-filtering/columnFilteringFeature.utils.ts"],"sourcesContent":["import { cloneState, functionalUpdate, isFunction } from '../../utils'\nimport type { CellData, RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Column_Internal } from '../../types/Column'\nimport type {\n ColumnFiltersState,\n FilterFn,\n} from './columnFilteringFeature.types'\n\n/**\n * Creates the default column filter state.\n *\n * The feature default is an empty array, meaning no column filters are active.\n * Reset APIs use this value when `defaultState` is `true`.\n *\n * @example\n * ```ts\n * const filters = getDefaultColumnFiltersState()\n * ```\n */\nexport function getDefaultColumnFiltersState(): ColumnFiltersState {\n return []\n}\n\n/**\n * Chooses a built-in filter function from the column's first core row value.\n *\n * Strings use `includesString`, numbers use `inNumberRange`, booleans and\n * objects use `equals`, arrays use `arrIncludes`, and unknown values fall back\n * to `weakEquals`.\n *\n * @example\n * ```ts\n * const filterFn = column_getAutoFilterFn(column)\n * ```\n */\nexport function column_getAutoFilterFn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n const filterFns: Record<string, FilterFn<TFeatures, RowData>> | undefined =\n column.table._rowModelFns.filterFns\n\n const firstRow = column.table.getCoreRowModel().flatRows[0]\n\n const value = firstRow ? firstRow.getValue(column.id) : undefined\n\n if (typeof value === 'string') {\n return filterFns?.includesString\n }\n\n if (typeof value === 'number') {\n return filterFns?.inNumberRange\n }\n\n if (typeof value === 'boolean') {\n return filterFns?.equals\n }\n\n if (value !== null && typeof value === 'object') {\n return filterFns?.equals\n }\n\n if (Array.isArray(value)) {\n return filterFns?.arrIncludes\n }\n\n return filterFns?.weakEquals\n}\n\n/**\n * Resolves the filter function configured for a column.\n *\n * Function-valued `columnDef.filterFn` is returned directly, `'auto'` delegates\n * to `column_getAutoFilterFn`, and string values are looked up in the table's\n * filter function registry.\n *\n * @example\n * ```ts\n * const filterFn = column_getFilterFn(column)\n * ```\n */\nexport function column_getFilterFn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n): FilterFn<TFeatures, TData> | undefined {\n let filterFn = null\n const filterFns: Record<string, FilterFn<TFeatures, RowData>> | undefined =\n column.table._rowModelFns.filterFns\n filterFn = isFunction(column.columnDef.filterFn)\n ? column.columnDef.filterFn\n : column.columnDef.filterFn === 'auto'\n ? column_getAutoFilterFn(column)\n : filterFns?.[column.columnDef.filterFn as string]\n\n if (process.env.NODE_ENV === 'development' && !filterFn) {\n console.warn(\n `Could not find a valid 'column.filterFn' for column with the ID: ${column.id}.`,\n )\n }\n\n return filterFn as FilterFn<TFeatures, TData> | undefined\n}\n\n/**\n * Checks whether column filtering is enabled for this accessor column.\n *\n * The column must have an accessor and filtering must be enabled by the column\n * definition, `enableColumnFilters`, and the table-wide `enableFilters` option.\n *\n * @example\n * ```ts\n * const canFilter = column_getCanFilter(column)\n * ```\n */\nexport function column_getCanFilter<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n return (\n (column.columnDef.enableColumnFilter ?? true) &&\n (column.table.options.enableColumnFilters ?? true) &&\n (column.table.options.enableFilters ?? true) &&\n !!column.accessorFn\n )\n}\n\n/**\n * Checks whether this column currently has an entry in `state.columnFilters`.\n *\n * This only reflects filter state presence; it does not indicate whether the\n * filter removes any rows.\n *\n * @example\n * ```ts\n * const isFiltered = column_getIsFiltered(column)\n * ```\n */\nexport function column_getIsFiltered<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n return column_getFilterIndex(column) > -1\n}\n\n/**\n * Reads this column's current filter value from `state.columnFilters`.\n *\n * Missing filter entries return `undefined`.\n *\n * @example\n * ```ts\n * const value = column_getFilterValue(column)\n * ```\n */\nexport function column_getFilterValue<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n return column.table.atoms.columnFilters\n ?.get()\n ?.find((d) => d.id === column.id)?.value\n}\n\n/**\n * Finds this column's position in the ordered `state.columnFilters` array.\n *\n * The result is `-1` when the column has no active filter.\n *\n * @example\n * ```ts\n * const index = column_getFilterIndex(column)\n * ```\n */\nexport function column_getFilterIndex<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): number {\n return (\n column.table.atoms.columnFilters\n ?.get()\n ?.findIndex((d) => d.id === column.id) ?? -1\n )\n}\n\n/**\n * Adds, updates, or removes this column's filter value.\n *\n * The incoming value may be an updater. After resolution, `autoRemove` rules\n * decide whether the filter should be removed instead of stored.\n *\n * @example\n * ```ts\n * column_setFilterValue(column, (old) => String(old ?? '').trim())\n * ```\n */\nexport function column_setFilterValue<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>, value: any) {\n table_setColumnFilters(column.table, (old) => {\n const filterFn = column_getFilterFn(column)\n const previousFilter = old.find((d) => d.id === column.id)\n\n const newFilter = functionalUpdate(\n value,\n previousFilter ? previousFilter.value : undefined,\n )\n\n if (shouldAutoRemoveFilter(filterFn, newFilter, column)) {\n return old.filter((d) => d.id !== column.id)\n }\n\n const newFilterObj = { id: column.id, value: newFilter }\n\n if (previousFilter) {\n return old.map((d) => {\n if (d.id === column.id) {\n return newFilterObj\n }\n return d\n })\n }\n\n if (old.length) {\n return [...old, newFilterObj]\n }\n\n return [newFilterObj]\n })\n}\n\n/**\n * Routes a column filter updater through the table's filter change handler.\n *\n * The resolved filters are cleaned before they are emitted: filters for known\n * columns are removed when their filter function says the value should be\n * auto-removed.\n *\n * @example\n * ```ts\n * table_setColumnFilters(table, (old) => old.filter((filter) => filter.id !== 'age'))\n * ```\n */\nexport function table_setColumnFilters<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<ColumnFiltersState>,\n) {\n const leafColumnsById = table.getAllLeafColumnsById()\n\n const updateFn = (old: ColumnFiltersState) => {\n return functionalUpdate(updater, old).filter((filter) => {\n const column = leafColumnsById[filter.id]\n\n if (column) {\n const filterFn = column_getFilterFn(column)\n\n if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {\n return false\n }\n }\n\n return true\n })\n }\n\n table.options.onColumnFiltersChange?.(updateFn)\n}\n\n/**\n * Resets `columnFilters` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.columnFilters` when it\n * exists. Passing `true` ignores initial state and resets to `[]`.\n *\n * @example\n * ```ts\n * table_resetColumnFilters(table)\n * table_resetColumnFilters(table, true)\n * ```\n */\nexport function table_resetColumnFilters<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setColumnFilters(\n table,\n defaultState ? [] : cloneState(table.initialState.columnFilters ?? []),\n )\n}\n\n/**\n * Returns whether a filter value should be removed from filter state.\n *\n * This checks the filter function's `autoRemove` hook and built-in empty-value rules.\n *\n * @example\n * ```ts\n * const removeFilter = shouldAutoRemoveFilter(filterFn, value, column)\n * ```\n */\nexport function shouldAutoRemoveFilter<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n filterFn?: FilterFn<TFeatures, TData>,\n value?: any,\n column?: Column_Internal<TFeatures, TData, TValue>,\n) {\n return (\n (filterFn && filterFn.autoRemove\n ? filterFn.autoRemove(value, column as Column_Internal<TFeatures, TData>)\n : false) ||\n typeof value === 'undefined' ||\n (typeof value === 'string' && !value)\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"columnFilteringFeature.utils.cjs","names":["isFunction","functionalUpdate","cloneState"],"sources":["../../../src/features/column-filtering/columnFilteringFeature.utils.ts"],"sourcesContent":["import { cloneState, functionalUpdate, isFunction } from '../../utils'\nimport type { CellData, RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Column_Internal } from '../../types/Column'\nimport type {\n ColumnFiltersState,\n FilterFn,\n} from './columnFilteringFeature.types'\n\n/**\n * Creates the default column filter state.\n *\n * The feature default is an empty array, meaning no column filters are active.\n * Reset APIs use this value when `defaultState` is `true`.\n *\n * @example\n * ```ts\n * const filters = getDefaultColumnFiltersState()\n * ```\n */\nexport function getDefaultColumnFiltersState(): ColumnFiltersState {\n return []\n}\n\n/**\n * Chooses a built-in filter function from the column's first core row value.\n *\n * Strings use `includesString`, numbers use `inNumberRange`, booleans and\n * objects use `equals`, dates use `inDateRange`, arrays use `arrIncludes`,\n * and unknown values fall back to `weakEquals`.\n *\n * The chosen filter function is looked up in the table's `filterFns`\n * registry. When it is not registered there, this returns `undefined` and\n * warns in development instead of substituting a different filter function.\n *\n * @example\n * ```ts\n * const filterFn = column_getAutoFilterFn(column)\n * ```\n */\nexport function column_getAutoFilterFn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n const filterFns: Record<string, FilterFn<TFeatures, TData>> | undefined =\n column.table._rowModelFns.filterFns\n\n const firstRow = column.table.getCoreRowModel().flatRows[0]\n\n const value = firstRow ? firstRow.getValue(column.id) : undefined\n\n let filterFnName: string\n\n if (typeof value === 'string') {\n filterFnName = 'includesString'\n } else if (typeof value === 'number') {\n filterFnName = 'inNumberRange'\n } else if (typeof value === 'boolean') {\n filterFnName = 'equals'\n } else if (Array.isArray(value)) {\n filterFnName = 'arrIncludes'\n } else if (Object.prototype.toString.call(value) === '[object Date]') {\n filterFnName = 'inDateRange'\n } else if (value !== null && typeof value === 'object') {\n filterFnName = 'equals'\n } else {\n filterFnName = 'weakEquals'\n }\n\n const filterFn = filterFns?.[filterFnName]\n\n if (process.env.NODE_ENV === 'development' && !filterFn) {\n console.warn(\n `filterFn '${filterFnName}' (auto) for column '${column.id}' is not registered`,\n )\n }\n\n return filterFn\n}\n\n/**\n * Resolves the filter function configured for a column.\n *\n * Function-valued `columnDef.filterFn` is returned directly, `'auto'` delegates\n * to `column_getAutoFilterFn`, and string values are looked up in the table's\n * filter function registry.\n *\n * @example\n * ```ts\n * const filterFn = column_getFilterFn(column)\n * ```\n */\nexport function column_getFilterFn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n): FilterFn<TFeatures, TData> | undefined {\n let filterFn = null\n const filterFns: Record<string, FilterFn<TFeatures, TData>> | undefined =\n column.table._rowModelFns.filterFns\n filterFn = isFunction(column.columnDef.filterFn)\n ? column.columnDef.filterFn\n : column.columnDef.filterFn === 'auto'\n ? column_getAutoFilterFn(column)\n : filterFns?.[column.columnDef.filterFn as string]\n\n if (\n process.env.NODE_ENV === 'development' &&\n !filterFn &&\n column.columnDef.filterFn !== 'auto' // the auto picker warns on its own\n ) {\n console.warn(\n `filterFn '${String(column.columnDef.filterFn)}' for column '${column.id}' is not registered`,\n )\n }\n\n return filterFn ?? undefined\n}\n\n/**\n * Checks whether column filtering is enabled for this accessor column.\n *\n * The column must have an accessor and filtering must be enabled by the column\n * definition, `enableColumnFilters`, and the table-wide `enableFilters` option.\n *\n * @example\n * ```ts\n * const canFilter = column_getCanFilter(column)\n * ```\n */\nexport function column_getCanFilter<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n return (\n (column.columnDef.enableColumnFilter ?? true) &&\n (column.table.options.enableColumnFilters ?? true) &&\n (column.table.options.enableFilters ?? true) &&\n !!column.accessorFn\n )\n}\n\n/**\n * Checks whether this column currently has an entry in `state.columnFilters`.\n *\n * This only reflects filter state presence; it does not indicate whether the\n * filter removes any rows.\n *\n * @example\n * ```ts\n * const isFiltered = column_getIsFiltered(column)\n * ```\n */\nexport function column_getIsFiltered<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n return column_getFilterIndex(column) > -1\n}\n\n/**\n * Reads this column's current filter value from `state.columnFilters`.\n *\n * Missing filter entries return `undefined`.\n *\n * @example\n * ```ts\n * const value = column_getFilterValue(column)\n * ```\n */\nexport function column_getFilterValue<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n return column.table.atoms.columnFilters\n ?.get()\n ?.find((d) => d.id === column.id)?.value\n}\n\n/**\n * Finds this column's position in the ordered `state.columnFilters` array.\n *\n * The result is `-1` when the column has no active filter.\n *\n * @example\n * ```ts\n * const index = column_getFilterIndex(column)\n * ```\n */\nexport function column_getFilterIndex<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): number {\n return (\n column.table.atoms.columnFilters\n ?.get()\n ?.findIndex((d) => d.id === column.id) ?? -1\n )\n}\n\n/**\n * Adds, updates, or removes this column's filter value.\n *\n * The incoming value may be an updater. After resolution, `autoRemove` rules\n * decide whether the filter should be removed instead of stored.\n *\n * @example\n * ```ts\n * column_setFilterValue(column, (old) => String(old ?? '').trim())\n * ```\n */\nexport function column_setFilterValue<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>, value: any) {\n table_setColumnFilters(column.table, (old) => {\n const filterFn = column_getFilterFn(column)\n const previousFilter = old.find((d) => d.id === column.id)\n\n const newFilter = functionalUpdate(\n value,\n previousFilter ? previousFilter.value : undefined,\n )\n\n if (shouldAutoRemoveFilter(filterFn, newFilter, column)) {\n return old.filter((d) => d.id !== column.id)\n }\n\n const newFilterObj = { id: column.id, value: newFilter }\n\n if (previousFilter) {\n return old.map((d) => {\n if (d.id === column.id) {\n return newFilterObj\n }\n return d\n })\n }\n\n if (old.length) {\n return [...old, newFilterObj]\n }\n\n return [newFilterObj]\n })\n}\n\n/**\n * Routes a column filter updater through the table's filter change handler.\n *\n * The resolved filters are cleaned before they are emitted: filters for known\n * columns are removed when their filter function says the value should be\n * auto-removed.\n *\n * @example\n * ```ts\n * table_setColumnFilters(table, (old) => old.filter((filter) => filter.id !== 'age'))\n * ```\n */\nexport function table_setColumnFilters<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<ColumnFiltersState>,\n) {\n const leafColumnsById = table.getAllLeafColumnsById()\n\n const updateFn = (old: ColumnFiltersState) => {\n return functionalUpdate(updater, old).filter((filter) => {\n const column = leafColumnsById[filter.id]\n\n if (column) {\n const filterFn = column_getFilterFn(column)\n\n if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {\n return false\n }\n }\n\n return true\n })\n }\n\n table.options.onColumnFiltersChange?.(updateFn)\n}\n\n/**\n * Resets `columnFilters` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.columnFilters` when it\n * exists. Passing `true` ignores initial state and resets to `[]`.\n *\n * @example\n * ```ts\n * table_resetColumnFilters(table)\n * table_resetColumnFilters(table, true)\n * ```\n */\nexport function table_resetColumnFilters<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setColumnFilters(\n table,\n defaultState ? [] : cloneState(table.initialState.columnFilters ?? []),\n )\n}\n\n/**\n * Returns whether a filter value should be removed from filter state.\n *\n * This checks the filter function's `autoRemove` hook and built-in empty-value rules.\n *\n * @example\n * ```ts\n * const removeFilter = shouldAutoRemoveFilter(filterFn, value, column)\n * ```\n */\nexport function shouldAutoRemoveFilter<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n filterFn?: FilterFn<TFeatures, TData>,\n value?: any,\n column?: Column_Internal<TFeatures, TData, TValue>,\n) {\n return (\n (filterFn && filterFn.autoRemove\n ? filterFn.autoRemove(value, column as any)\n : false) ||\n typeof value === 'undefined' ||\n (typeof value === 'string' && !value)\n )\n}\n"],"mappings":";;;;;;;;;;;;;;AAqBA,SAAgB,+BAAmD;CACjE,OAAO,CAAC;AACV;;;;;;;;;;;;;;;;;AAkBA,SAAgB,uBAId,QAAmD;CACnD,MAAM,YACJ,OAAO,MAAM,aAAa;CAE5B,MAAM,WAAW,OAAO,MAAM,gBAAgB,CAAC,CAAC,SAAS;CAEzD,MAAM,QAAQ,WAAW,SAAS,SAAS,OAAO,EAAE,IAAI;CAExD,IAAI;CAEJ,IAAI,OAAO,UAAU,UACnB,eAAe;MACV,IAAI,OAAO,UAAU,UAC1B,eAAe;MACV,IAAI,OAAO,UAAU,WAC1B,eAAe;MACV,IAAI,MAAM,QAAQ,KAAK,GAC5B,eAAe;MACV,IAAI,OAAO,UAAU,SAAS,KAAK,KAAK,MAAM,iBACnD,eAAe;MACV,IAAI,UAAU,QAAQ,OAAO,UAAU,UAC5C,eAAe;MAEf,eAAe;CAGjB,MAAM,WAAW,YAAY;CAE7B,IAAI,QAAQ,IAAI,aAAa,iBAAiB,CAAC,UAC7C,QAAQ,KACN,aAAa,aAAa,uBAAuB,OAAO,GAAG,oBAC7D;CAGF,OAAO;AACT;;;;;;;;;;;;;AAcA,SAAgB,mBAKd,QACwC;CACxC,IAAI,WAAW;CACf,MAAM,YACJ,OAAO,MAAM,aAAa;CAC5B,WAAWA,yBAAW,OAAO,UAAU,QAAQ,IAC3C,OAAO,UAAU,WACjB,OAAO,UAAU,aAAa,SAC5B,uBAAuB,MAAM,IAC7B,YAAY,OAAO,UAAU;CAEnC,IACE,QAAQ,IAAI,aAAa,iBACzB,CAAC,YACD,OAAO,UAAU,aAAa,QAE9B,QAAQ,KACN,aAAa,OAAO,OAAO,UAAU,QAAQ,EAAE,gBAAgB,OAAO,GAAG,oBAC3E;CAGF,OAAO,YAAY;AACrB;;;;;;;;;;;;AAaA,SAAgB,oBAId,QAAmD;CACnD,QACG,OAAO,UAAU,sBAAsB,UACvC,OAAO,MAAM,QAAQ,uBAAuB,UAC5C,OAAO,MAAM,QAAQ,iBAAiB,SACvC,CAAC,CAAC,OAAO;AAEb;;;;;;;;;;;;AAaA,SAAgB,qBAId,QAAmD;CACnD,OAAO,sBAAsB,MAAM,IAAI;AACzC;;;;;;;;;;;AAYA,SAAgB,sBAId,QAAmD;CACnD,OAAO,OAAO,MAAM,MAAM,eACtB,IAAI,CAAC,EACL,MAAM,MAAM,EAAE,OAAO,OAAO,EAAE,CAAC,EAAE;AACvC;;;;;;;;;;;AAYA,SAAgB,sBAId,QAA2D;CAC3D,OACE,OAAO,MAAM,MAAM,eACf,IAAI,CAAC,EACL,WAAW,MAAM,EAAE,OAAO,OAAO,EAAE,KAAK;AAEhD;;;;;;;;;;;;AAaA,SAAgB,sBAId,QAAmD,OAAY;CAC/D,uBAAuB,OAAO,QAAQ,QAAQ;EAC5C,MAAM,WAAW,mBAAmB,MAAM;EAC1C,MAAM,iBAAiB,IAAI,MAAM,MAAM,EAAE,OAAO,OAAO,EAAE;EAEzD,MAAM,YAAYC,+BAChB,OACA,iBAAiB,eAAe,QAAQ,MAC1C;EAEA,IAAI,uBAAuB,UAAU,WAAW,MAAM,GACpD,OAAO,IAAI,QAAQ,MAAM,EAAE,OAAO,OAAO,EAAE;EAG7C,MAAM,eAAe;GAAE,IAAI,OAAO;GAAI,OAAO;EAAU;EAEvD,IAAI,gBACF,OAAO,IAAI,KAAK,MAAM;GACpB,IAAI,EAAE,OAAO,OAAO,IAClB,OAAO;GAET,OAAO;EACT,CAAC;EAGH,IAAI,IAAI,QACN,OAAO,CAAC,GAAG,KAAK,YAAY;EAG9B,OAAO,CAAC,YAAY;CACtB,CAAC;AACH;;;;;;;;;;;;;AAcA,SAAgB,uBAId,OACA,SACA;CACA,MAAM,kBAAkB,MAAM,sBAAsB;CAEpD,MAAM,YAAY,QAA4B;EAC5C,OAAOA,+BAAiB,SAAS,GAAG,CAAC,CAAC,QAAQ,WAAW;GACvD,MAAM,SAAS,gBAAgB,OAAO;GAEtC,IAAI,QAGF;QAAI,uBAFa,mBAAmB,MAEF,GAAG,OAAO,OAAO,MAAM,GACvD,OAAO;GACT;GAGF,OAAO;EACT,CAAC;CACH;CAEA,MAAM,QAAQ,wBAAwB,QAAQ;AAChD;;;;;;;;;;;;;AAcA,SAAgB,yBAGd,OAAyC,cAAwB;CACjE,uBACE,OACA,eAAe,CAAC,IAAIC,yBAAW,MAAM,aAAa,iBAAiB,CAAC,CAAC,CACvE;AACF;;;;;;;;;;;AAYA,SAAgB,uBAKd,UACA,OACA,QACA;CACA,QACG,YAAY,SAAS,aAClB,SAAS,WAAW,OAAO,MAAa,IACxC,UACJ,OAAO,UAAU,eAChB,OAAO,UAAU,YAAY,CAAC;AAEnC"}
@@ -1,8 +1,8 @@
1
1
  import { CellData, RowData, Updater } from "../../types/type-utils.cjs";
2
2
  import { ColumnFiltersState, FilterFn } from "./columnFilteringFeature.types.cjs";
3
- import { Column_Internal } from "../../types/Column.cjs";
3
+ import { Table } from "../../types/Table.cjs";
4
+ import { Column } from "../../types/Column.cjs";
4
5
  import { TableFeatures } from "../../types/TableFeatures.cjs";
5
- import { Table_Internal } from "../../types/Table.cjs";
6
6
 
7
7
  //#region src/features/column-filtering/columnFilteringFeature.utils.d.ts
8
8
  /**
@@ -21,15 +21,19 @@ declare function getDefaultColumnFiltersState(): ColumnFiltersState;
21
21
  * Chooses a built-in filter function from the column's first core row value.
22
22
  *
23
23
  * Strings use `includesString`, numbers use `inNumberRange`, booleans and
24
- * objects use `equals`, arrays use `arrIncludes`, and unknown values fall back
25
- * to `weakEquals`.
24
+ * objects use `equals`, dates use `inDateRange`, arrays use `arrIncludes`,
25
+ * and unknown values fall back to `weakEquals`.
26
+ *
27
+ * The chosen filter function is looked up in the table's `filterFns`
28
+ * registry. When it is not registered there, this returns `undefined` and
29
+ * warns in development instead of substituting a different filter function.
26
30
  *
27
31
  * @example
28
32
  * ```ts
29
33
  * const filterFn = column_getAutoFilterFn(column)
30
34
  * ```
31
35
  */
32
- declare function column_getAutoFilterFn<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column_Internal<TFeatures, TData, TValue>): FilterFn<TFeatures, RowData> | undefined;
36
+ declare function column_getAutoFilterFn<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column<TFeatures, TData, TValue>): FilterFn<TFeatures, TData> | undefined;
33
37
  /**
34
38
  * Resolves the filter function configured for a column.
35
39
  *
@@ -42,7 +46,7 @@ declare function column_getAutoFilterFn<TFeatures extends TableFeatures, TData e
42
46
  * const filterFn = column_getFilterFn(column)
43
47
  * ```
44
48
  */
45
- declare function column_getFilterFn<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column_Internal<TFeatures, TData, TValue>): FilterFn<TFeatures, TData> | undefined;
49
+ declare function column_getFilterFn<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column<TFeatures, TData, TValue>): FilterFn<TFeatures, TData> | undefined;
46
50
  /**
47
51
  * Checks whether column filtering is enabled for this accessor column.
48
52
  *
@@ -54,7 +58,7 @@ declare function column_getFilterFn<TFeatures extends TableFeatures, TData exten
54
58
  * const canFilter = column_getCanFilter(column)
55
59
  * ```
56
60
  */
57
- declare function column_getCanFilter<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column_Internal<TFeatures, TData, TValue>): boolean;
61
+ declare function column_getCanFilter<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column<TFeatures, TData, TValue>): boolean;
58
62
  /**
59
63
  * Checks whether this column currently has an entry in `state.columnFilters`.
60
64
  *
@@ -66,7 +70,7 @@ declare function column_getCanFilter<TFeatures extends TableFeatures, TData exte
66
70
  * const isFiltered = column_getIsFiltered(column)
67
71
  * ```
68
72
  */
69
- declare function column_getIsFiltered<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column_Internal<TFeatures, TData, TValue>): boolean;
73
+ declare function column_getIsFiltered<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column<TFeatures, TData, TValue>): boolean;
70
74
  /**
71
75
  * Reads this column's current filter value from `state.columnFilters`.
72
76
  *
@@ -77,7 +81,7 @@ declare function column_getIsFiltered<TFeatures extends TableFeatures, TData ext
77
81
  * const value = column_getFilterValue(column)
78
82
  * ```
79
83
  */
80
- declare function column_getFilterValue<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column_Internal<TFeatures, TData, TValue>): unknown;
84
+ declare function column_getFilterValue<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column<TFeatures, TData, TValue>): unknown;
81
85
  /**
82
86
  * Finds this column's position in the ordered `state.columnFilters` array.
83
87
  *
@@ -88,7 +92,7 @@ declare function column_getFilterValue<TFeatures extends TableFeatures, TData ex
88
92
  * const index = column_getFilterIndex(column)
89
93
  * ```
90
94
  */
91
- declare function column_getFilterIndex<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column_Internal<TFeatures, TData, TValue>): number;
95
+ declare function column_getFilterIndex<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column<TFeatures, TData, TValue>): number;
92
96
  /**
93
97
  * Adds, updates, or removes this column's filter value.
94
98
  *
@@ -100,7 +104,7 @@ declare function column_getFilterIndex<TFeatures extends TableFeatures, TData ex
100
104
  * column_setFilterValue(column, (old) => String(old ?? '').trim())
101
105
  * ```
102
106
  */
103
- declare function column_setFilterValue<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column_Internal<TFeatures, TData, TValue>, value: any): void;
107
+ declare function column_setFilterValue<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column<TFeatures, TData, TValue>, value: any): void;
104
108
  /**
105
109
  * Routes a column filter updater through the table's filter change handler.
106
110
  *
@@ -113,7 +117,7 @@ declare function column_setFilterValue<TFeatures extends TableFeatures, TData ex
113
117
  * table_setColumnFilters(table, (old) => old.filter((filter) => filter.id !== 'age'))
114
118
  * ```
115
119
  */
116
- declare function table_setColumnFilters<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>, updater: Updater<ColumnFiltersState>): void;
120
+ declare function table_setColumnFilters<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>, updater: Updater<ColumnFiltersState>): void;
117
121
  /**
118
122
  * Resets `columnFilters` to the configured initial state or feature default.
119
123
  *
@@ -126,7 +130,7 @@ declare function table_setColumnFilters<TFeatures extends TableFeatures, TData e
126
130
  * table_resetColumnFilters(table, true)
127
131
  * ```
128
132
  */
129
- declare function table_resetColumnFilters<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean): void;
133
+ declare function table_resetColumnFilters<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>, defaultState?: boolean): void;
130
134
  /**
131
135
  * Returns whether a filter value should be removed from filter state.
132
136
  *
@@ -137,7 +141,7 @@ declare function table_resetColumnFilters<TFeatures extends TableFeatures, TData
137
141
  * const removeFilter = shouldAutoRemoveFilter(filterFn, value, column)
138
142
  * ```
139
143
  */
140
- declare function shouldAutoRemoveFilter<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(filterFn?: FilterFn<TFeatures, TData>, value?: any, column?: Column_Internal<TFeatures, TData, TValue>): boolean;
144
+ declare function shouldAutoRemoveFilter<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(filterFn?: FilterFn<TFeatures, TData>, value?: any, column?: Column<TFeatures, TData, TValue>): boolean;
141
145
  //#endregion
142
146
  export { column_getAutoFilterFn, column_getCanFilter, column_getFilterFn, column_getFilterIndex, column_getFilterValue, column_getIsFiltered, column_setFilterValue, getDefaultColumnFiltersState, shouldAutoRemoveFilter, table_resetColumnFilters, table_setColumnFilters };
143
147
  //# sourceMappingURL=columnFilteringFeature.utils.d.cts.map
@@ -1,8 +1,8 @@
1
1
  import { CellData, RowData, Updater } from "../../types/type-utils.js";
2
2
  import { ColumnFiltersState, FilterFn } from "./columnFilteringFeature.types.js";
3
- import { Column_Internal } from "../../types/Column.js";
3
+ import { Table } from "../../types/Table.js";
4
+ import { Column } from "../../types/Column.js";
4
5
  import { TableFeatures } from "../../types/TableFeatures.js";
5
- import { Table_Internal } from "../../types/Table.js";
6
6
 
7
7
  //#region src/features/column-filtering/columnFilteringFeature.utils.d.ts
8
8
  /**
@@ -21,15 +21,19 @@ declare function getDefaultColumnFiltersState(): ColumnFiltersState;
21
21
  * Chooses a built-in filter function from the column's first core row value.
22
22
  *
23
23
  * Strings use `includesString`, numbers use `inNumberRange`, booleans and
24
- * objects use `equals`, arrays use `arrIncludes`, and unknown values fall back
25
- * to `weakEquals`.
24
+ * objects use `equals`, dates use `inDateRange`, arrays use `arrIncludes`,
25
+ * and unknown values fall back to `weakEquals`.
26
+ *
27
+ * The chosen filter function is looked up in the table's `filterFns`
28
+ * registry. When it is not registered there, this returns `undefined` and
29
+ * warns in development instead of substituting a different filter function.
26
30
  *
27
31
  * @example
28
32
  * ```ts
29
33
  * const filterFn = column_getAutoFilterFn(column)
30
34
  * ```
31
35
  */
32
- declare function column_getAutoFilterFn<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column_Internal<TFeatures, TData, TValue>): FilterFn<TFeatures, RowData> | undefined;
36
+ declare function column_getAutoFilterFn<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column<TFeatures, TData, TValue>): FilterFn<TFeatures, TData> | undefined;
33
37
  /**
34
38
  * Resolves the filter function configured for a column.
35
39
  *
@@ -42,7 +46,7 @@ declare function column_getAutoFilterFn<TFeatures extends TableFeatures, TData e
42
46
  * const filterFn = column_getFilterFn(column)
43
47
  * ```
44
48
  */
45
- declare function column_getFilterFn<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column_Internal<TFeatures, TData, TValue>): FilterFn<TFeatures, TData> | undefined;
49
+ declare function column_getFilterFn<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column<TFeatures, TData, TValue>): FilterFn<TFeatures, TData> | undefined;
46
50
  /**
47
51
  * Checks whether column filtering is enabled for this accessor column.
48
52
  *
@@ -54,7 +58,7 @@ declare function column_getFilterFn<TFeatures extends TableFeatures, TData exten
54
58
  * const canFilter = column_getCanFilter(column)
55
59
  * ```
56
60
  */
57
- declare function column_getCanFilter<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column_Internal<TFeatures, TData, TValue>): boolean;
61
+ declare function column_getCanFilter<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column<TFeatures, TData, TValue>): boolean;
58
62
  /**
59
63
  * Checks whether this column currently has an entry in `state.columnFilters`.
60
64
  *
@@ -66,7 +70,7 @@ declare function column_getCanFilter<TFeatures extends TableFeatures, TData exte
66
70
  * const isFiltered = column_getIsFiltered(column)
67
71
  * ```
68
72
  */
69
- declare function column_getIsFiltered<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column_Internal<TFeatures, TData, TValue>): boolean;
73
+ declare function column_getIsFiltered<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column<TFeatures, TData, TValue>): boolean;
70
74
  /**
71
75
  * Reads this column's current filter value from `state.columnFilters`.
72
76
  *
@@ -77,7 +81,7 @@ declare function column_getIsFiltered<TFeatures extends TableFeatures, TData ext
77
81
  * const value = column_getFilterValue(column)
78
82
  * ```
79
83
  */
80
- declare function column_getFilterValue<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column_Internal<TFeatures, TData, TValue>): unknown;
84
+ declare function column_getFilterValue<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column<TFeatures, TData, TValue>): unknown;
81
85
  /**
82
86
  * Finds this column's position in the ordered `state.columnFilters` array.
83
87
  *
@@ -88,7 +92,7 @@ declare function column_getFilterValue<TFeatures extends TableFeatures, TData ex
88
92
  * const index = column_getFilterIndex(column)
89
93
  * ```
90
94
  */
91
- declare function column_getFilterIndex<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column_Internal<TFeatures, TData, TValue>): number;
95
+ declare function column_getFilterIndex<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column<TFeatures, TData, TValue>): number;
92
96
  /**
93
97
  * Adds, updates, or removes this column's filter value.
94
98
  *
@@ -100,7 +104,7 @@ declare function column_getFilterIndex<TFeatures extends TableFeatures, TData ex
100
104
  * column_setFilterValue(column, (old) => String(old ?? '').trim())
101
105
  * ```
102
106
  */
103
- declare function column_setFilterValue<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column_Internal<TFeatures, TData, TValue>, value: any): void;
107
+ declare function column_setFilterValue<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column<TFeatures, TData, TValue>, value: any): void;
104
108
  /**
105
109
  * Routes a column filter updater through the table's filter change handler.
106
110
  *
@@ -113,7 +117,7 @@ declare function column_setFilterValue<TFeatures extends TableFeatures, TData ex
113
117
  * table_setColumnFilters(table, (old) => old.filter((filter) => filter.id !== 'age'))
114
118
  * ```
115
119
  */
116
- declare function table_setColumnFilters<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>, updater: Updater<ColumnFiltersState>): void;
120
+ declare function table_setColumnFilters<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>, updater: Updater<ColumnFiltersState>): void;
117
121
  /**
118
122
  * Resets `columnFilters` to the configured initial state or feature default.
119
123
  *
@@ -126,7 +130,7 @@ declare function table_setColumnFilters<TFeatures extends TableFeatures, TData e
126
130
  * table_resetColumnFilters(table, true)
127
131
  * ```
128
132
  */
129
- declare function table_resetColumnFilters<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean): void;
133
+ declare function table_resetColumnFilters<TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>, defaultState?: boolean): void;
130
134
  /**
131
135
  * Returns whether a filter value should be removed from filter state.
132
136
  *
@@ -137,7 +141,7 @@ declare function table_resetColumnFilters<TFeatures extends TableFeatures, TData
137
141
  * const removeFilter = shouldAutoRemoveFilter(filterFn, value, column)
138
142
  * ```
139
143
  */
140
- declare function shouldAutoRemoveFilter<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(filterFn?: FilterFn<TFeatures, TData>, value?: any, column?: Column_Internal<TFeatures, TData, TValue>): boolean;
144
+ declare function shouldAutoRemoveFilter<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(filterFn?: FilterFn<TFeatures, TData>, value?: any, column?: Column<TFeatures, TData, TValue>): boolean;
141
145
  //#endregion
142
146
  export { column_getAutoFilterFn, column_getCanFilter, column_getFilterFn, column_getFilterIndex, column_getFilterValue, column_getIsFiltered, column_setFilterValue, getDefaultColumnFiltersState, shouldAutoRemoveFilter, table_resetColumnFilters, table_setColumnFilters };
143
147
  //# sourceMappingURL=columnFilteringFeature.utils.d.ts.map