@tanstack/table-core 9.0.0-alpha.47 → 9.0.0-alpha.48

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 (246) hide show
  1. package/README.md +10 -0
  2. package/dist/core/cells/coreCellsFeature.utils.cjs +11 -8
  3. package/dist/core/cells/coreCellsFeature.utils.cjs.map +1 -1
  4. package/dist/core/cells/coreCellsFeature.utils.d.cts +11 -8
  5. package/dist/core/cells/coreCellsFeature.utils.d.ts +11 -8
  6. package/dist/core/cells/coreCellsFeature.utils.js +11 -8
  7. package/dist/core/cells/coreCellsFeature.utils.js.map +1 -1
  8. package/dist/core/columns/coreColumnsFeature.types.d.cts +7 -6
  9. package/dist/core/columns/coreColumnsFeature.types.d.ts +7 -6
  10. package/dist/core/columns/coreColumnsFeature.utils.cjs +37 -27
  11. package/dist/core/columns/coreColumnsFeature.utils.cjs.map +1 -1
  12. package/dist/core/columns/coreColumnsFeature.utils.d.cts +37 -27
  13. package/dist/core/columns/coreColumnsFeature.utils.d.ts +37 -27
  14. package/dist/core/columns/coreColumnsFeature.utils.js +37 -27
  15. package/dist/core/columns/coreColumnsFeature.utils.js.map +1 -1
  16. package/dist/core/headers/coreHeadersFeature.types.d.cts +6 -4
  17. package/dist/core/headers/coreHeadersFeature.types.d.ts +6 -4
  18. package/dist/core/headers/coreHeadersFeature.utils.cjs +23 -18
  19. package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
  20. package/dist/core/headers/coreHeadersFeature.utils.d.cts +23 -18
  21. package/dist/core/headers/coreHeadersFeature.utils.d.ts +23 -18
  22. package/dist/core/headers/coreHeadersFeature.utils.js +23 -18
  23. package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
  24. package/dist/core/row-models/coreRowModelsFeature.utils.cjs +48 -36
  25. package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +1 -1
  26. package/dist/core/row-models/coreRowModelsFeature.utils.d.cts +48 -36
  27. package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +48 -36
  28. package/dist/core/row-models/coreRowModelsFeature.utils.js +48 -36
  29. package/dist/core/row-models/coreRowModelsFeature.utils.js.map +1 -1
  30. package/dist/core/rows/coreRowsFeature.types.d.cts +4 -4
  31. package/dist/core/rows/coreRowsFeature.types.d.ts +4 -4
  32. package/dist/core/rows/coreRowsFeature.utils.cjs +34 -28
  33. package/dist/core/rows/coreRowsFeature.utils.cjs.map +1 -1
  34. package/dist/core/rows/coreRowsFeature.utils.d.cts +34 -28
  35. package/dist/core/rows/coreRowsFeature.utils.d.ts +34 -28
  36. package/dist/core/rows/coreRowsFeature.utils.js +34 -28
  37. package/dist/core/rows/coreRowsFeature.utils.js.map +1 -1
  38. package/dist/core/table/coreTablesFeature.types.d.cts +6 -2
  39. package/dist/core/table/coreTablesFeature.types.d.ts +6 -2
  40. package/dist/core/table/coreTablesFeature.utils.cjs +2 -2
  41. package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
  42. package/dist/core/table/coreTablesFeature.utils.d.cts +2 -2
  43. package/dist/core/table/coreTablesFeature.utils.d.ts +2 -2
  44. package/dist/core/table/coreTablesFeature.utils.js +2 -2
  45. package/dist/core/table/coreTablesFeature.utils.js.map +1 -1
  46. package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +16 -10
  47. package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +16 -10
  48. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +26 -18
  49. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -1
  50. package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +26 -18
  51. package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +26 -18
  52. package/dist/features/column-faceting/columnFacetingFeature.utils.js +26 -18
  53. package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -1
  54. package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +21 -11
  55. package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +21 -11
  56. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +39 -28
  57. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
  58. package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +39 -28
  59. package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +39 -28
  60. package/dist/features/column-filtering/columnFilteringFeature.utils.js +39 -28
  61. package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
  62. package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +18 -14
  63. package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +18 -14
  64. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs +55 -43
  65. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs.map +1 -1
  66. package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +55 -43
  67. package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +55 -43
  68. package/dist/features/column-grouping/columnGroupingFeature.utils.js +55 -43
  69. package/dist/features/column-grouping/columnGroupingFeature.utils.js.map +1 -1
  70. package/dist/features/column-ordering/columnOrderingFeature.types.d.cts +14 -5
  71. package/dist/features/column-ordering/columnOrderingFeature.types.d.ts +14 -5
  72. package/dist/features/column-ordering/columnOrderingFeature.utils.cjs +30 -23
  73. package/dist/features/column-ordering/columnOrderingFeature.utils.cjs.map +1 -1
  74. package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +30 -23
  75. package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +30 -23
  76. package/dist/features/column-ordering/columnOrderingFeature.utils.js +30 -23
  77. package/dist/features/column-ordering/columnOrderingFeature.utils.js.map +1 -1
  78. package/dist/features/column-pinning/columnPinningFeature.types.d.cts +43 -31
  79. package/dist/features/column-pinning/columnPinningFeature.types.d.ts +43 -31
  80. package/dist/features/column-pinning/columnPinningFeature.utils.cjs +111 -91
  81. package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
  82. package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +111 -91
  83. package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +111 -91
  84. package/dist/features/column-pinning/columnPinningFeature.utils.js +111 -91
  85. package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
  86. package/dist/features/column-resizing/columnResizingFeature.types.d.cts +9 -9
  87. package/dist/features/column-resizing/columnResizingFeature.types.d.ts +9 -9
  88. package/dist/features/column-resizing/columnResizingFeature.utils.cjs +28 -19
  89. package/dist/features/column-resizing/columnResizingFeature.utils.cjs.map +1 -1
  90. package/dist/features/column-resizing/columnResizingFeature.utils.d.cts +28 -19
  91. package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +28 -19
  92. package/dist/features/column-resizing/columnResizingFeature.utils.js +28 -19
  93. package/dist/features/column-resizing/columnResizingFeature.utils.js.map +1 -1
  94. package/dist/features/column-sizing/columnSizingFeature.types.d.cts +19 -12
  95. package/dist/features/column-sizing/columnSizingFeature.types.d.ts +19 -12
  96. package/dist/features/column-sizing/columnSizingFeature.utils.cjs +52 -41
  97. package/dist/features/column-sizing/columnSizingFeature.utils.cjs.map +1 -1
  98. package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +52 -41
  99. package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +52 -41
  100. package/dist/features/column-sizing/columnSizingFeature.utils.js +52 -41
  101. package/dist/features/column-sizing/columnSizingFeature.utils.js.map +1 -1
  102. package/dist/features/column-visibility/columnVisibilityFeature.types.d.cts +16 -13
  103. package/dist/features/column-visibility/columnVisibilityFeature.types.d.ts +16 -13
  104. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs +54 -42
  105. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs.map +1 -1
  106. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +54 -42
  107. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +54 -42
  108. package/dist/features/column-visibility/columnVisibilityFeature.utils.js +54 -42
  109. package/dist/features/column-visibility/columnVisibilityFeature.utils.js.map +1 -1
  110. package/dist/features/global-filtering/globalFilteringFeature.types.d.cts +10 -5
  111. package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +10 -5
  112. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs +20 -14
  113. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
  114. package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +20 -14
  115. package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +20 -14
  116. package/dist/features/global-filtering/globalFilteringFeature.utils.js +20 -14
  117. package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
  118. package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +16 -15
  119. package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +16 -15
  120. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs +56 -41
  121. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs.map +1 -1
  122. package/dist/features/row-expanding/rowExpandingFeature.utils.d.cts +56 -41
  123. package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +56 -41
  124. package/dist/features/row-expanding/rowExpandingFeature.utils.js +56 -41
  125. package/dist/features/row-expanding/rowExpandingFeature.utils.js.map +1 -1
  126. package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +19 -12
  127. package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +19 -12
  128. package/dist/features/row-pagination/rowPaginationFeature.utils.cjs +49 -32
  129. package/dist/features/row-pagination/rowPaginationFeature.utils.cjs.map +1 -1
  130. package/dist/features/row-pagination/rowPaginationFeature.utils.d.cts +49 -32
  131. package/dist/features/row-pagination/rowPaginationFeature.utils.d.ts +49 -32
  132. package/dist/features/row-pagination/rowPaginationFeature.utils.js +49 -32
  133. package/dist/features/row-pagination/rowPaginationFeature.utils.js.map +1 -1
  134. package/dist/features/row-pinning/rowPinningFeature.types.d.cts +12 -8
  135. package/dist/features/row-pinning/rowPinningFeature.types.d.ts +12 -8
  136. package/dist/features/row-pinning/rowPinningFeature.utils.cjs +39 -29
  137. package/dist/features/row-pinning/rowPinningFeature.utils.cjs.map +1 -1
  138. package/dist/features/row-pinning/rowPinningFeature.utils.d.cts +39 -29
  139. package/dist/features/row-pinning/rowPinningFeature.utils.d.ts +39 -29
  140. package/dist/features/row-pinning/rowPinningFeature.utils.js +39 -29
  141. package/dist/features/row-pinning/rowPinningFeature.utils.js.map +1 -1
  142. package/dist/features/row-selection/rowSelectionFeature.types.d.cts +30 -24
  143. package/dist/features/row-selection/rowSelectionFeature.types.d.ts +30 -24
  144. package/dist/features/row-selection/rowSelectionFeature.utils.cjs +89 -69
  145. package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
  146. package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +89 -69
  147. package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +89 -69
  148. package/dist/features/row-selection/rowSelectionFeature.utils.js +89 -69
  149. package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
  150. package/dist/features/row-sorting/rowSortingFeature.types.d.cts +10 -8
  151. package/dist/features/row-sorting/rowSortingFeature.types.d.ts +10 -8
  152. package/dist/features/row-sorting/rowSortingFeature.utils.cjs +61 -44
  153. package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -1
  154. package/dist/features/row-sorting/rowSortingFeature.utils.d.cts +61 -44
  155. package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +61 -44
  156. package/dist/features/row-sorting/rowSortingFeature.utils.js +61 -44
  157. package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -1
  158. package/dist/fns/aggregationFns.cjs +33 -9
  159. package/dist/fns/aggregationFns.cjs.map +1 -1
  160. package/dist/fns/aggregationFns.d.cts +33 -9
  161. package/dist/fns/aggregationFns.d.ts +33 -9
  162. package/dist/fns/aggregationFns.js +33 -9
  163. package/dist/fns/aggregationFns.js.map +1 -1
  164. package/dist/fns/filterFns.cjs +48 -17
  165. package/dist/fns/filterFns.cjs.map +1 -1
  166. package/dist/fns/filterFns.d.cts +42 -15
  167. package/dist/fns/filterFns.d.ts +42 -15
  168. package/dist/fns/filterFns.js +48 -17
  169. package/dist/fns/filterFns.js.map +1 -1
  170. package/dist/helpers/columnHelper.cjs +9 -4
  171. package/dist/helpers/columnHelper.cjs.map +1 -1
  172. package/dist/helpers/columnHelper.d.cts +9 -4
  173. package/dist/helpers/columnHelper.d.ts +9 -4
  174. package/dist/helpers/columnHelper.js +9 -4
  175. package/dist/helpers/columnHelper.js.map +1 -1
  176. package/dist/helpers/tableOptions.cjs.map +1 -1
  177. package/dist/helpers/tableOptions.d.cts +12 -9
  178. package/dist/helpers/tableOptions.d.ts +12 -9
  179. package/dist/helpers/tableOptions.js.map +1 -1
  180. package/dist/types/ColumnDef.d.cts +38 -0
  181. package/dist/types/ColumnDef.d.ts +38 -0
  182. package/dist/types/TableOptions.d.cts +15 -0
  183. package/dist/types/TableOptions.d.ts +15 -0
  184. package/dist/types/TableState.d.cts +12 -0
  185. package/dist/types/TableState.d.ts +12 -0
  186. package/package.json +5 -3
  187. package/skills/column-definitions/SKILL.md +333 -0
  188. package/skills/column-layout/SKILL.md +328 -0
  189. package/skills/column-layout/references/subsystems.md +220 -0
  190. package/skills/customizing-feature-behavior/SKILL.md +416 -0
  191. package/skills/filtering/SKILL.md +357 -0
  192. package/skills/filtering/references/faceting-and-fuzzy.md +191 -0
  193. package/skills/grouping/SKILL.md +448 -0
  194. package/skills/migrate-v8-to-v9/SKILL.md +495 -0
  195. package/skills/pagination/SKILL.md +385 -0
  196. package/skills/row-expanding/SKILL.md +348 -0
  197. package/skills/row-pinning/SKILL.md +269 -0
  198. package/skills/row-selection/SKILL.md +391 -0
  199. package/skills/setup/SKILL.md +400 -0
  200. package/skills/sorting/SKILL.md +344 -0
  201. package/skills/state-management/SKILL.md +388 -0
  202. package/src/core/cells/coreCellsFeature.utils.ts +11 -8
  203. package/src/core/columns/coreColumnsFeature.types.ts +7 -6
  204. package/src/core/columns/coreColumnsFeature.utils.ts +37 -27
  205. package/src/core/headers/coreHeadersFeature.types.ts +6 -4
  206. package/src/core/headers/coreHeadersFeature.utils.ts +23 -18
  207. package/src/core/row-models/coreRowModelsFeature.utils.ts +48 -36
  208. package/src/core/rows/coreRowsFeature.types.ts +4 -4
  209. package/src/core/rows/coreRowsFeature.utils.ts +34 -28
  210. package/src/core/table/coreTablesFeature.types.ts +6 -2
  211. package/src/core/table/coreTablesFeature.utils.ts +2 -2
  212. package/src/features/column-faceting/columnFacetingFeature.types.ts +16 -10
  213. package/src/features/column-faceting/columnFacetingFeature.utils.ts +26 -18
  214. package/src/features/column-filtering/columnFilteringFeature.types.ts +21 -11
  215. package/src/features/column-filtering/columnFilteringFeature.utils.ts +39 -28
  216. package/src/features/column-grouping/columnGroupingFeature.types.ts +18 -14
  217. package/src/features/column-grouping/columnGroupingFeature.utils.ts +55 -43
  218. package/src/features/column-ordering/columnOrderingFeature.types.ts +14 -5
  219. package/src/features/column-ordering/columnOrderingFeature.utils.ts +30 -23
  220. package/src/features/column-pinning/columnPinningFeature.types.ts +43 -31
  221. package/src/features/column-pinning/columnPinningFeature.utils.ts +111 -91
  222. package/src/features/column-resizing/columnResizingFeature.types.ts +9 -9
  223. package/src/features/column-resizing/columnResizingFeature.utils.ts +28 -19
  224. package/src/features/column-sizing/columnSizingFeature.types.ts +19 -12
  225. package/src/features/column-sizing/columnSizingFeature.utils.ts +52 -41
  226. package/src/features/column-visibility/columnVisibilityFeature.types.ts +16 -13
  227. package/src/features/column-visibility/columnVisibilityFeature.utils.ts +54 -42
  228. package/src/features/global-filtering/globalFilteringFeature.types.ts +10 -5
  229. package/src/features/global-filtering/globalFilteringFeature.utils.ts +20 -14
  230. package/src/features/row-expanding/rowExpandingFeature.types.ts +16 -15
  231. package/src/features/row-expanding/rowExpandingFeature.utils.ts +56 -41
  232. package/src/features/row-pagination/rowPaginationFeature.types.ts +19 -12
  233. package/src/features/row-pagination/rowPaginationFeature.utils.ts +49 -32
  234. package/src/features/row-pinning/rowPinningFeature.types.ts +12 -8
  235. package/src/features/row-pinning/rowPinningFeature.utils.ts +39 -29
  236. package/src/features/row-selection/rowSelectionFeature.types.ts +30 -24
  237. package/src/features/row-selection/rowSelectionFeature.utils.ts +89 -69
  238. package/src/features/row-sorting/rowSortingFeature.types.ts +10 -8
  239. package/src/features/row-sorting/rowSortingFeature.utils.ts +61 -44
  240. package/src/fns/aggregationFns.ts +33 -9
  241. package/src/fns/filterFns.ts +48 -17
  242. package/src/helpers/columnHelper.ts +9 -4
  243. package/src/helpers/tableOptions.ts +12 -9
  244. package/src/types/ColumnDef.ts +38 -0
  245. package/src/types/TableOptions.ts +15 -0
  246. package/src/types/TableState.ts +12 -0
@@ -1 +1 @@
1
- {"version":3,"file":"columnFacetingFeature.utils.js","names":[],"sources":["../../../src/features/column-faceting/columnFacetingFeature.utils.ts"],"sourcesContent":["import type { CellData, RowData } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Column_Internal } from '../../types/Column'\n\n/**\n * Returns faceted min max values for a column.\n *\n * This derives the value from the column definition, table options, and the feature state atoms registered on the table.\n *\n * @example\n * ```ts\n * const value = column_getFacetedMinMaxValues(column)\n * ```\n */\nexport function column_getFacetedMinMaxValues<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n table: Table_Internal<TFeatures, TData>,\n): [number, number] | undefined {\n const facetedMinMaxValuesFn =\n table.options._rowModels?.facetedMinMaxValues?.(table, column.id) ??\n (() => undefined)\n return facetedMinMaxValuesFn()\n}\n\n/**\n * Returns faceted row model for a column.\n *\n * This derives the value from the column definition, table options, and the feature state atoms registered on the table.\n *\n * @example\n * ```ts\n * const value = column_getFacetedRowModel(column)\n * ```\n */\nexport function column_getFacetedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue> | undefined,\n table: Table_Internal<TFeatures, TData>,\n): RowModel<TFeatures, TData> {\n const facetedRowModelFn =\n table.options._rowModels?.facetedRowModel?.(table, column?.id ?? '') ??\n (() => table.getPreFilteredRowModel())\n return facetedRowModelFn()\n}\n\n/**\n * Returns faceted unique values for a column.\n *\n * This derives the value from the column definition, table options, and the feature state atoms registered on the table.\n *\n * @example\n * ```ts\n * const value = column_getFacetedUniqueValues(column)\n * ```\n */\nexport function column_getFacetedUniqueValues<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n table: Table_Internal<TFeatures, TData>,\n): Map<any, number> {\n const facetedUniqueValuesFn =\n table.options._rowModels?.facetedUniqueValues?.(table, column.id) ??\n (() => new Map<any, number>())\n return facetedUniqueValuesFn()\n}\n\n/**\n * Returns global faceted min max values for the table.\n *\n * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.\n *\n * @example\n * ```ts\n * const value = table_getGlobalFacetedMinMaxValues(table)\n * ```\n */\nexport function table_getGlobalFacetedMinMaxValues<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): undefined | [number, number] {\n const facetedMinMaxValuesFn =\n table.options._rowModels?.facetedMinMaxValues?.(table, '__global__') ??\n (() => undefined)\n return facetedMinMaxValuesFn()\n}\n\n/**\n * Returns global faceted row model for the table.\n *\n * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.\n *\n * @example\n * ```ts\n * const value = table_getGlobalFacetedRowModel(table)\n * ```\n */\nexport function table_getGlobalFacetedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {\n const facetedRowModelFn =\n table.options._rowModels?.facetedRowModel?.(table, '__global__') ??\n (() => table.getPreFilteredRowModel())\n return facetedRowModelFn()\n}\n\n/**\n * Returns global faceted unique values for the table.\n *\n * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.\n *\n * @example\n * ```ts\n * const value = table_getGlobalFacetedUniqueValues(table)\n * ```\n */\nexport function table_getGlobalFacetedUniqueValues<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): Map<any, number> {\n const facetedUniqueValuesFn =\n table.options._rowModels?.facetedUniqueValues?.(table, '__global__') ??\n (() => new Map())\n return facetedUniqueValuesFn()\n}\n"],"mappings":";;;;;;;;;;;AAgBA,SAAgB,8BAKd,QACA,OAC8B;;CAI9B,kCAFE,MAAM,QAAQ,4GAAY,iIAAsB,OAAO,OAAO,GAAG,YAC1D,UACqB;;;;;;;;;;;;AAahC,SAAgB,0BAKd,QACA,OAC4B;;CAI5B,mCAFE,MAAM,QAAQ,8GAAY,8HAAkB,wDAAO,OAAQ,OAAM,GAAG,YAC7D,MAAM,wBAAwB,IACb;;;;;;;;;;;;AAa5B,SAAgB,8BAKd,QACA,OACkB;;CAIlB,mCAFE,MAAM,QAAQ,8GAAY,kIAAsB,OAAO,OAAO,GAAG,4BAC1D,IAAI,KAAkB,IACD;;;;;;;;;;;;AAahC,SAAgB,mCAGd,OAAuE;;CAIvE,mCAFE,MAAM,QAAQ,8GAAY,kIAAsB,OAAO,aAAa,YAC7D,UACqB;;;;;;;;;;;;AAahC,SAAgB,+BAGd,OAAqE;;CAIrE,mCAFE,MAAM,QAAQ,+GAAY,gIAAkB,OAAO,aAAa,YACzD,MAAM,wBAAwB,IACb;;;;;;;;;;;;AAa5B,SAAgB,mCAGd,OAA2D;;CAI3D,oCAFE,MAAM,QAAQ,iHAAY,qIAAsB,OAAO,aAAa,4BAC7D,IAAI,KAAK,IACY"}
1
+ {"version":3,"file":"columnFacetingFeature.utils.js","names":[],"sources":["../../../src/features/column-faceting/columnFacetingFeature.utils.ts"],"sourcesContent":["import type { CellData, RowData } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Column_Internal } from '../../types/Column'\n\n/**\n * Computes min and max numeric facet values for one column.\n *\n * The configured `facetedMinMaxValues` row-model factory owns the calculation.\n * If no factory is registered, the result is `undefined`.\n *\n * @example\n * ```ts\n * const range = column_getFacetedMinMaxValues(column, table)\n * ```\n */\nexport function column_getFacetedMinMaxValues<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n table: Table_Internal<TFeatures, TData>,\n): [number, number] | undefined {\n const facetedMinMaxValuesFn =\n table.options._rowModels?.facetedMinMaxValues?.(table, column.id) ??\n (() => undefined)\n return facetedMinMaxValuesFn()\n}\n\n/**\n * Computes the row model used to derive one column's facet values.\n *\n * The faceted row model normally applies every other active filter while\n * excluding this column's own filter. If no factory is registered, the\n * pre-filtered row model is returned.\n *\n * @example\n * ```ts\n * const rows = column_getFacetedRowModel(column, table)\n * ```\n */\nexport function column_getFacetedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue> | undefined,\n table: Table_Internal<TFeatures, TData>,\n): RowModel<TFeatures, TData> {\n const facetedRowModelFn =\n table.options._rowModels?.facetedRowModel?.(table, column?.id ?? '') ??\n (() => table.getPreFilteredRowModel())\n return facetedRowModelFn()\n}\n\n/**\n * Computes unique facet values and their occurrence counts for one column.\n *\n * The configured `facetedUniqueValues` row-model factory owns the calculation.\n * If no factory is registered, an empty `Map` is returned.\n *\n * @example\n * ```ts\n * const values = column_getFacetedUniqueValues(column, table)\n * ```\n */\nexport function column_getFacetedUniqueValues<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n table: Table_Internal<TFeatures, TData>,\n): Map<any, number> {\n const facetedUniqueValuesFn =\n table.options._rowModels?.facetedUniqueValues?.(table, column.id) ??\n (() => new Map<any, number>())\n return facetedUniqueValuesFn()\n}\n\n/**\n * Computes min and max numeric facet values for the global filter context.\n *\n * The global context is requested with the internal `__global__` column id. If\n * no factory is registered, the result is `undefined`.\n *\n * @example\n * ```ts\n * const range = table_getGlobalFacetedMinMaxValues(table)\n * ```\n */\nexport function table_getGlobalFacetedMinMaxValues<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): undefined | [number, number] {\n const facetedMinMaxValuesFn =\n table.options._rowModels?.facetedMinMaxValues?.(table, '__global__') ??\n (() => undefined)\n return facetedMinMaxValuesFn()\n}\n\n/**\n * Computes the row model used to derive global facet values.\n *\n * The global context is requested with the internal `__global__` column id. If\n * no faceted row-model factory is registered, the pre-filtered row model is\n * returned.\n *\n * @example\n * ```ts\n * const rows = table_getGlobalFacetedRowModel(table)\n * ```\n */\nexport function table_getGlobalFacetedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {\n const facetedRowModelFn =\n table.options._rowModels?.facetedRowModel?.(table, '__global__') ??\n (() => table.getPreFilteredRowModel())\n return facetedRowModelFn()\n}\n\n/**\n * Computes unique values and occurrence counts for the global filter context.\n *\n * The global context is requested with the internal `__global__` column id. If\n * no factory is registered, an empty `Map` is returned.\n *\n * @example\n * ```ts\n * const values = table_getGlobalFacetedUniqueValues(table)\n * ```\n */\nexport function table_getGlobalFacetedUniqueValues<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): Map<any, number> {\n const facetedUniqueValuesFn =\n table.options._rowModels?.facetedUniqueValues?.(table, '__global__') ??\n (() => new Map())\n return facetedUniqueValuesFn()\n}\n"],"mappings":";;;;;;;;;;;;AAiBA,SAAgB,8BAKd,QACA,OAC8B;;CAI9B,kCAFE,MAAM,QAAQ,4GAAY,iIAAsB,OAAO,OAAO,GAAG,YAC1D,UACqB;;;;;;;;;;;;;;AAehC,SAAgB,0BAKd,QACA,OAC4B;;CAI5B,mCAFE,MAAM,QAAQ,8GAAY,8HAAkB,wDAAO,OAAQ,OAAM,GAAG,YAC7D,MAAM,wBAAwB,IACb;;;;;;;;;;;;;AAc5B,SAAgB,8BAKd,QACA,OACkB;;CAIlB,mCAFE,MAAM,QAAQ,8GAAY,kIAAsB,OAAO,OAAO,GAAG,4BAC1D,IAAI,KAAkB,IACD;;;;;;;;;;;;;AAchC,SAAgB,mCAGd,OAAuE;;CAIvE,mCAFE,MAAM,QAAQ,8GAAY,kIAAsB,OAAO,aAAa,YAC7D,UACqB;;;;;;;;;;;;;;AAehC,SAAgB,+BAGd,OAAqE;;CAIrE,mCAFE,MAAM,QAAQ,+GAAY,gIAAkB,OAAO,aAAa,YACzD,MAAM,wBAAwB,IACb;;;;;;;;;;;;;AAc5B,SAAgB,mCAGd,OAA2D;;CAI3D,oCAFE,MAAM,QAAQ,iHAAY,qIAAsB,OAAO,aAAa,4BAC7D,IAAI,KAAK,IACY"}
@@ -36,7 +36,10 @@ type CustomFilterFns<TFeatures extends TableFeatures, TData extends RowData> = R
36
36
  type FilterFnOption<TFeatures extends TableFeatures, TData extends RowData> = 'auto' | BuiltInFilterFn | keyof FilterFns | FilterFn<TFeatures, TData>;
37
37
  interface ColumnDef_ColumnFiltering<TFeatures extends TableFeatures, TData extends RowData> {
38
38
  /**
39
- * Enables/disables the **column** filter for this column.
39
+ * Enables this column to participate in column-specific filtering.
40
+ *
41
+ * Defaults to `true`; table-level `enableColumnFilters` and `enableFilters`
42
+ * must also allow filtering.
40
43
  */
41
44
  enableColumnFilter?: boolean;
42
45
  /**
@@ -50,7 +53,7 @@ interface Column_ColumnFiltering<TFeatures extends TableFeatures, TData extends
50
53
  */
51
54
  getAutoFilterFn: () => FilterFn<TFeatures, TData>;
52
55
  /**
53
- * Returns whether or not the column can be **column** filtered.
56
+ * Checks whether this accessor column can currently be column-filtered.
54
57
  */
55
58
  getCanFilter: () => boolean;
56
59
  /**
@@ -62,15 +65,18 @@ interface Column_ColumnFiltering<TFeatures extends TableFeatures, TData extends
62
65
  */
63
66
  getFilterIndex: () => number;
64
67
  /**
65
- * Returns the current filter value for the column.
68
+ * Reads this column's current value from `state.columnFilters`.
66
69
  */
67
70
  getFilterValue: () => unknown;
68
71
  /**
69
- * Returns whether or not the column is currently filtered.
72
+ * Checks whether this column has an active entry in `state.columnFilters`.
70
73
  */
71
74
  getIsFiltered: () => boolean;
72
75
  /**
73
- * A function that sets the current filter value for the column. You can pass it a value or an updater function for immutability-safe operations on existing values.
76
+ * Adds, updates, or removes this column's filter value.
77
+ *
78
+ * Updater functions receive the previous filter value. Values that satisfy
79
+ * the filter function's `autoRemove` rule are removed from filter state.
74
80
  */
75
81
  setFilterValue: (updater: Updater<any>) => void;
76
82
  }
@@ -86,11 +92,13 @@ interface Row_ColumnFiltering<TFeatures extends TableFeatures, TData extends Row
86
92
  }
87
93
  interface TableOptions_ColumnFiltering<TFeatures extends TableFeatures, TData extends RowData> {
88
94
  /**
89
- * Enables/disables **column** filtering for all columns.
95
+ * Enables column-specific filtering for all columns that also allow it.
90
96
  */
91
97
  enableColumnFilters?: boolean;
92
98
  /**
93
- * Enables/disables all filtering for the table.
99
+ * Enables all filtering features for the table.
100
+ *
101
+ * Set this to `false` to disable both column filtering and global filtering.
94
102
  */
95
103
  enableFilters?: boolean;
96
104
  /**
@@ -115,21 +123,23 @@ interface TableOptions_ColumnFiltering<TFeatures extends TableFeatures, TData ex
115
123
  }
116
124
  interface Table_ColumnFiltering {
117
125
  /**
118
- * Resets the **columnFilters** state to `initialState.columnFilters`, or `true` can be passed to force a default blank state reset to `[]`.
126
+ * Resets `columnFilters` to `initialState.columnFilters`.
127
+ *
128
+ * Pass `true` to ignore initial state and reset to `[]`.
119
129
  */
120
130
  resetColumnFilters: (defaultState?: boolean) => void;
121
131
  /**
122
- * Sets column filter state using a value or updater.
132
+ * Updates column filter state with a next array or updater function.
123
133
  */
124
134
  setColumnFilters: (updater: Updater<ColumnFiltersState>) => void;
125
135
  }
126
136
  interface Table_RowModels_Filtered<TFeatures extends TableFeatures, TData extends RowData> {
127
137
  /**
128
- * Returns the row model for the table after **column** filtering has been applied.
138
+ * Resolves the row model after column and global filters have been applied.
129
139
  */
130
140
  getFilteredRowModel: () => RowModel<TFeatures, TData>;
131
141
  /**
132
- * Returns the row model for the table before any **column** filtering has been applied.
142
+ * Reads the row model immediately before filtering.
133
143
  */
134
144
  getPreFilteredRowModel: () => RowModel<TFeatures, TData>;
135
145
  }
@@ -36,7 +36,10 @@ type CustomFilterFns<TFeatures extends TableFeatures, TData extends RowData> = R
36
36
  type FilterFnOption<TFeatures extends TableFeatures, TData extends RowData> = 'auto' | BuiltInFilterFn | keyof FilterFns | FilterFn<TFeatures, TData>;
37
37
  interface ColumnDef_ColumnFiltering<TFeatures extends TableFeatures, TData extends RowData> {
38
38
  /**
39
- * Enables/disables the **column** filter for this column.
39
+ * Enables this column to participate in column-specific filtering.
40
+ *
41
+ * Defaults to `true`; table-level `enableColumnFilters` and `enableFilters`
42
+ * must also allow filtering.
40
43
  */
41
44
  enableColumnFilter?: boolean;
42
45
  /**
@@ -50,7 +53,7 @@ interface Column_ColumnFiltering<TFeatures extends TableFeatures, TData extends
50
53
  */
51
54
  getAutoFilterFn: () => FilterFn<TFeatures, TData>;
52
55
  /**
53
- * Returns whether or not the column can be **column** filtered.
56
+ * Checks whether this accessor column can currently be column-filtered.
54
57
  */
55
58
  getCanFilter: () => boolean;
56
59
  /**
@@ -62,15 +65,18 @@ interface Column_ColumnFiltering<TFeatures extends TableFeatures, TData extends
62
65
  */
63
66
  getFilterIndex: () => number;
64
67
  /**
65
- * Returns the current filter value for the column.
68
+ * Reads this column's current value from `state.columnFilters`.
66
69
  */
67
70
  getFilterValue: () => unknown;
68
71
  /**
69
- * Returns whether or not the column is currently filtered.
72
+ * Checks whether this column has an active entry in `state.columnFilters`.
70
73
  */
71
74
  getIsFiltered: () => boolean;
72
75
  /**
73
- * A function that sets the current filter value for the column. You can pass it a value or an updater function for immutability-safe operations on existing values.
76
+ * Adds, updates, or removes this column's filter value.
77
+ *
78
+ * Updater functions receive the previous filter value. Values that satisfy
79
+ * the filter function's `autoRemove` rule are removed from filter state.
74
80
  */
75
81
  setFilterValue: (updater: Updater<any>) => void;
76
82
  }
@@ -86,11 +92,13 @@ interface Row_ColumnFiltering<TFeatures extends TableFeatures, TData extends Row
86
92
  }
87
93
  interface TableOptions_ColumnFiltering<TFeatures extends TableFeatures, TData extends RowData> {
88
94
  /**
89
- * Enables/disables **column** filtering for all columns.
95
+ * Enables column-specific filtering for all columns that also allow it.
90
96
  */
91
97
  enableColumnFilters?: boolean;
92
98
  /**
93
- * Enables/disables all filtering for the table.
99
+ * Enables all filtering features for the table.
100
+ *
101
+ * Set this to `false` to disable both column filtering and global filtering.
94
102
  */
95
103
  enableFilters?: boolean;
96
104
  /**
@@ -115,21 +123,23 @@ interface TableOptions_ColumnFiltering<TFeatures extends TableFeatures, TData ex
115
123
  }
116
124
  interface Table_ColumnFiltering {
117
125
  /**
118
- * Resets the **columnFilters** state to `initialState.columnFilters`, or `true` can be passed to force a default blank state reset to `[]`.
126
+ * Resets `columnFilters` to `initialState.columnFilters`.
127
+ *
128
+ * Pass `true` to ignore initial state and reset to `[]`.
119
129
  */
120
130
  resetColumnFilters: (defaultState?: boolean) => void;
121
131
  /**
122
- * Sets column filter state using a value or updater.
132
+ * Updates column filter state with a next array or updater function.
123
133
  */
124
134
  setColumnFilters: (updater: Updater<ColumnFiltersState>) => void;
125
135
  }
126
136
  interface Table_RowModels_Filtered<TFeatures extends TableFeatures, TData extends RowData> {
127
137
  /**
128
- * Returns the row model for the table after **column** filtering has been applied.
138
+ * Resolves the row model after column and global filters have been applied.
129
139
  */
130
140
  getFilteredRowModel: () => RowModel<TFeatures, TData>;
131
141
  /**
132
- * Returns the row model for the table before any **column** filtering has been applied.
142
+ * Reads the row model immediately before filtering.
133
143
  */
134
144
  getPreFilteredRowModel: () => RowModel<TFeatures, TData>;
135
145
  }
@@ -2,26 +2,29 @@ const require_utils = require('../../utils.cjs');
2
2
 
3
3
  //#region src/features/column-filtering/columnFilteringFeature.utils.ts
4
4
  /**
5
- * Returns the default column filters state.
5
+ * Creates the default column filter state.
6
6
  *
7
- * Feature constructors use this value to initialize the table state or option defaults when no user value is provided.
7
+ * The feature default is an empty array, meaning no column filters are active.
8
+ * Reset APIs use this value when `defaultState` is `true`.
8
9
  *
9
10
  * @example
10
11
  * ```ts
11
- * const initialValue = getDefaultColumnFiltersState()
12
+ * const filters = getDefaultColumnFiltersState()
12
13
  * ```
13
14
  */
14
15
  function getDefaultColumnFiltersState() {
15
16
  return [];
16
17
  }
17
18
  /**
18
- * Infers filter fn for a column.
19
+ * Chooses a built-in filter function from the column's first core row value.
19
20
  *
20
- * The inference uses the column definition, table options, and sampled row values when needed.
21
+ * Strings use `includesString`, numbers use `inNumberRange`, booleans and
22
+ * objects use `equals`, arrays use `arrIncludes`, and unknown values fall back
23
+ * to `weakEquals`.
21
24
  *
22
25
  * @example
23
26
  * ```ts
24
- * const value = column_getAutoFilterFn(column)
27
+ * const filterFn = column_getAutoFilterFn(column)
25
28
  * ```
26
29
  */
27
30
  function column_getAutoFilterFn(column) {
@@ -36,13 +39,15 @@ function column_getAutoFilterFn(column) {
36
39
  return filterFns === null || filterFns === void 0 ? void 0 : filterFns.weakEquals;
37
40
  }
38
41
  /**
39
- * Returns filter fn for a column.
42
+ * Resolves the filter function configured for a column.
40
43
  *
41
- * This derives the value from the column definition, table options, and the feature state atoms registered on the table.
44
+ * Function-valued `columnDef.filterFn` is returned directly, `'auto'` delegates
45
+ * to `column_getAutoFilterFn`, and string values are looked up in the table's
46
+ * filter function registry.
42
47
  *
43
48
  * @example
44
49
  * ```ts
45
- * const value = column_getFilterFn(column)
50
+ * const filterFn = column_getFilterFn(column)
46
51
  * ```
47
52
  */
48
53
  function column_getFilterFn(column) {
@@ -53,35 +58,37 @@ function column_getFilterFn(column) {
53
58
  return filterFn;
54
59
  }
55
60
  /**
56
- * Returns whether a column can use filter.
61
+ * Checks whether column filtering is enabled for this accessor column.
57
62
  *
58
- * This combines column options, table options, and any required accessor or feature state for the capability.
63
+ * The column must have an accessor and filtering must be enabled by the column
64
+ * definition, `enableColumnFilters`, and the table-wide `enableFilters` option.
59
65
  *
60
66
  * @example
61
67
  * ```ts
62
- * const value = column_getCanFilter(column)
68
+ * const canFilter = column_getCanFilter(column)
63
69
  * ```
64
70
  */
65
71
  function column_getCanFilter(column) {
66
72
  return (column.columnDef.enableColumnFilter ?? true) && (column.table.options.enableColumnFilters ?? true) && (column.table.options.enableFilters ?? true) && !!column.accessorFn;
67
73
  }
68
74
  /**
69
- * Returns is filtered for a column.
75
+ * Checks whether this column currently has an entry in `state.columnFilters`.
70
76
  *
71
- * This derives the value from the column definition, table options, and the feature state atoms registered on the table.
77
+ * This only reflects filter state presence; it does not indicate whether the
78
+ * filter removes any rows.
72
79
  *
73
80
  * @example
74
81
  * ```ts
75
- * const value = column_getIsFiltered(column)
82
+ * const isFiltered = column_getIsFiltered(column)
76
83
  * ```
77
84
  */
78
85
  function column_getIsFiltered(column) {
79
86
  return column_getFilterIndex(column) > -1;
80
87
  }
81
88
  /**
82
- * Returns filter value for a column.
89
+ * Reads this column's current filter value from `state.columnFilters`.
83
90
  *
84
- * This derives the value from the column definition, table options, and the feature state atoms registered on the table.
91
+ * Missing filter entries return `undefined`.
85
92
  *
86
93
  * @example
87
94
  * ```ts
@@ -93,13 +100,13 @@ function column_getFilterValue(column) {
93
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;
94
101
  }
95
102
  /**
96
- * Returns filter index for a column.
103
+ * Finds this column's position in the ordered `state.columnFilters` array.
97
104
  *
98
- * This derives the value from the column definition, table options, and the feature state atoms registered on the table.
105
+ * The result is `-1` when the column has no active filter.
99
106
  *
100
107
  * @example
101
108
  * ```ts
102
- * const value = column_getFilterIndex(column)
109
+ * const index = column_getFilterIndex(column)
103
110
  * ```
104
111
  */
105
112
  function column_getFilterIndex(column) {
@@ -107,13 +114,14 @@ function column_getFilterIndex(column) {
107
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;
108
115
  }
109
116
  /**
110
- * Updates filter value for a column.
117
+ * Adds, updates, or removes this column's filter value.
111
118
  *
112
- * This delegates to the owning table state updater so external state, external atoms, and internal state stay synchronized.
119
+ * The incoming value may be an updater. After resolution, `autoRemove` rules
120
+ * decide whether the filter should be removed instead of stored.
113
121
  *
114
122
  * @example
115
123
  * ```ts
116
- * column_setFilterValue(column, (old) => old)
124
+ * column_setFilterValue(column, (old) => String(old ?? '').trim())
117
125
  * ```
118
126
  */
119
127
  function column_setFilterValue(column, value) {
@@ -135,13 +143,15 @@ function column_setFilterValue(column, value) {
135
143
  });
136
144
  }
137
145
  /**
138
- * Updates the table's column filters state slice.
146
+ * Routes a column filter updater through the table's filter change handler.
139
147
  *
140
- * The updater follows TanStack Table updater semantics and is routed through the corresponding `on*Change` option or backing atom.
148
+ * The resolved filters are cleaned before they are emitted: filters for known
149
+ * columns are removed when their filter function says the value should be
150
+ * auto-removed.
141
151
  *
142
152
  * @example
143
153
  * ```ts
144
- * table_setColumnFilters(table, (old) => old)
154
+ * table_setColumnFilters(table, (old) => old.filter((filter) => filter.id !== 'age'))
145
155
  * ```
146
156
  */
147
157
  function table_setColumnFilters(table, updater) {
@@ -159,9 +169,10 @@ function table_setColumnFilters(table, updater) {
159
169
  (_table$options$onColu = (_table$options = table.options).onColumnFiltersChange) === null || _table$options$onColu === void 0 || _table$options$onColu.call(_table$options, updateFn);
160
170
  }
161
171
  /**
162
- * Resets the table's column filters state slice.
172
+ * Resets `columnFilters` to the configured initial state or feature default.
163
173
  *
164
- * By default the reset uses `table.initialState`; when supported, a blank/default reset bypasses the saved initial value.
174
+ * With no argument, the reset clones `table.initialState.columnFilters` when it
175
+ * exists. Passing `true` ignores initial state and resets to `[]`.
165
176
  *
166
177
  * @example
167
178
  * ```ts
@@ -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 * Returns the default column filters state.\n *\n * Feature constructors use this value to initialize the table state or option defaults when no user value is provided.\n *\n * @example\n * ```ts\n * const initialValue = getDefaultColumnFiltersState()\n * ```\n */\nexport function getDefaultColumnFiltersState(): ColumnFiltersState {\n return []\n}\n\n/**\n * Infers filter fn for a column.\n *\n * The inference uses the column definition, table options, and sampled row values when needed.\n *\n * @example\n * ```ts\n * const value = 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 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 * Returns filter fn for a column.\n *\n * This derives the value from the column definition, table options, and the feature state atoms registered on the table.\n *\n * @example\n * ```ts\n * const value = 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 (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\n}\n\n/**\n * Returns whether a column can use filter.\n *\n * This combines column options, table options, and any required accessor or feature state for the capability.\n *\n * @example\n * ```ts\n * const value = 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 * Returns is filtered for a column.\n *\n * This derives the value from the column definition, table options, and the feature state atoms registered on the table.\n *\n * @example\n * ```ts\n * const value = 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 * Returns filter value for a column.\n *\n * This derives the value from the column definition, table options, and the feature state atoms registered on the table.\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 * Returns filter index for a column.\n *\n * This derives the value from the column definition, table options, and the feature state atoms registered on the table.\n *\n * @example\n * ```ts\n * const value = 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 * Updates filter value for a column.\n *\n * This delegates to the owning table state updater so external state, external atoms, and internal state stay synchronized.\n *\n * @example\n * ```ts\n * column_setFilterValue(column, (old) => old)\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 * Updates the table's column filters state slice.\n *\n * The updater follows TanStack Table updater semantics and is routed through the corresponding `on*Change` option or backing atom.\n *\n * @example\n * ```ts\n * table_setColumnFilters(table, (old) => old)\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 the table's column filters state slice.\n *\n * By default the reset uses `table.initialState`; when supported, a blank/default reset bypasses the saved initial value.\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)\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`, 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, 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 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, 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 (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\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)\n : false) ||\n typeof value === 'undefined' ||\n (typeof value === 'string' && !value)\n )\n}\n"],"mappings":"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"}
@@ -6,64 +6,71 @@ import { Table_Internal } from "../../types/Table.cjs";
6
6
 
7
7
  //#region src/features/column-filtering/columnFilteringFeature.utils.d.ts
8
8
  /**
9
- * Returns the default column filters state.
9
+ * Creates the default column filter state.
10
10
  *
11
- * Feature constructors use this value to initialize the table state or option defaults when no user value is provided.
11
+ * The feature default is an empty array, meaning no column filters are active.
12
+ * Reset APIs use this value when `defaultState` is `true`.
12
13
  *
13
14
  * @example
14
15
  * ```ts
15
- * const initialValue = getDefaultColumnFiltersState()
16
+ * const filters = getDefaultColumnFiltersState()
16
17
  * ```
17
18
  */
18
19
  declare function getDefaultColumnFiltersState(): ColumnFiltersState;
19
20
  /**
20
- * Infers filter fn for a column.
21
+ * Chooses a built-in filter function from the column's first core row value.
21
22
  *
22
- * The inference uses the column definition, table options, and sampled row values when needed.
23
+ * Strings use `includesString`, numbers use `inNumberRange`, booleans and
24
+ * objects use `equals`, arrays use `arrIncludes`, and unknown values fall back
25
+ * to `weakEquals`.
23
26
  *
24
27
  * @example
25
28
  * ```ts
26
- * const value = column_getAutoFilterFn(column)
29
+ * const filterFn = column_getAutoFilterFn(column)
27
30
  * ```
28
31
  */
29
32
  declare function column_getAutoFilterFn<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column_Internal<TFeatures, TData, TValue>): FilterFn<TFeatures, TData> | undefined;
30
33
  /**
31
- * Returns filter fn for a column.
34
+ * Resolves the filter function configured for a column.
32
35
  *
33
- * This derives the value from the column definition, table options, and the feature state atoms registered on the table.
36
+ * Function-valued `columnDef.filterFn` is returned directly, `'auto'` delegates
37
+ * to `column_getAutoFilterFn`, and string values are looked up in the table's
38
+ * filter function registry.
34
39
  *
35
40
  * @example
36
41
  * ```ts
37
- * const value = column_getFilterFn(column)
42
+ * const filterFn = column_getFilterFn(column)
38
43
  * ```
39
44
  */
40
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;
41
46
  /**
42
- * Returns whether a column can use filter.
47
+ * Checks whether column filtering is enabled for this accessor column.
43
48
  *
44
- * This combines column options, table options, and any required accessor or feature state for the capability.
49
+ * The column must have an accessor and filtering must be enabled by the column
50
+ * definition, `enableColumnFilters`, and the table-wide `enableFilters` option.
45
51
  *
46
52
  * @example
47
53
  * ```ts
48
- * const value = column_getCanFilter(column)
54
+ * const canFilter = column_getCanFilter(column)
49
55
  * ```
50
56
  */
51
57
  declare function column_getCanFilter<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column_Internal<TFeatures, TData, TValue>): boolean;
52
58
  /**
53
- * Returns is filtered for a column.
59
+ * Checks whether this column currently has an entry in `state.columnFilters`.
54
60
  *
55
- * This derives the value from the column definition, table options, and the feature state atoms registered on the table.
61
+ * This only reflects filter state presence; it does not indicate whether the
62
+ * filter removes any rows.
56
63
  *
57
64
  * @example
58
65
  * ```ts
59
- * const value = column_getIsFiltered(column)
66
+ * const isFiltered = column_getIsFiltered(column)
60
67
  * ```
61
68
  */
62
69
  declare function column_getIsFiltered<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column_Internal<TFeatures, TData, TValue>): boolean;
63
70
  /**
64
- * Returns filter value for a column.
71
+ * Reads this column's current filter value from `state.columnFilters`.
65
72
  *
66
- * This derives the value from the column definition, table options, and the feature state atoms registered on the table.
73
+ * Missing filter entries return `undefined`.
67
74
  *
68
75
  * @example
69
76
  * ```ts
@@ -72,42 +79,46 @@ declare function column_getIsFiltered<TFeatures extends TableFeatures, TData ext
72
79
  */
73
80
  declare function column_getFilterValue<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column_Internal<TFeatures, TData, TValue>): unknown;
74
81
  /**
75
- * Returns filter index for a column.
82
+ * Finds this column's position in the ordered `state.columnFilters` array.
76
83
  *
77
- * This derives the value from the column definition, table options, and the feature state atoms registered on the table.
84
+ * The result is `-1` when the column has no active filter.
78
85
  *
79
86
  * @example
80
87
  * ```ts
81
- * const value = column_getFilterIndex(column)
88
+ * const index = column_getFilterIndex(column)
82
89
  * ```
83
90
  */
84
91
  declare function column_getFilterIndex<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column_Internal<TFeatures, TData, TValue>): number;
85
92
  /**
86
- * Updates filter value for a column.
93
+ * Adds, updates, or removes this column's filter value.
87
94
  *
88
- * This delegates to the owning table state updater so external state, external atoms, and internal state stay synchronized.
95
+ * The incoming value may be an updater. After resolution, `autoRemove` rules
96
+ * decide whether the filter should be removed instead of stored.
89
97
  *
90
98
  * @example
91
99
  * ```ts
92
- * column_setFilterValue(column, (old) => old)
100
+ * column_setFilterValue(column, (old) => String(old ?? '').trim())
93
101
  * ```
94
102
  */
95
103
  declare function column_setFilterValue<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column_Internal<TFeatures, TData, TValue>, value: any): void;
96
104
  /**
97
- * Updates the table's column filters state slice.
105
+ * Routes a column filter updater through the table's filter change handler.
98
106
  *
99
- * The updater follows TanStack Table updater semantics and is routed through the corresponding `on*Change` option or backing atom.
107
+ * The resolved filters are cleaned before they are emitted: filters for known
108
+ * columns are removed when their filter function says the value should be
109
+ * auto-removed.
100
110
  *
101
111
  * @example
102
112
  * ```ts
103
- * table_setColumnFilters(table, (old) => old)
113
+ * table_setColumnFilters(table, (old) => old.filter((filter) => filter.id !== 'age'))
104
114
  * ```
105
115
  */
106
116
  declare function table_setColumnFilters<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>, updater: Updater<ColumnFiltersState>): void;
107
117
  /**
108
- * Resets the table's column filters state slice.
118
+ * Resets `columnFilters` to the configured initial state or feature default.
109
119
  *
110
- * By default the reset uses `table.initialState`; when supported, a blank/default reset bypasses the saved initial value.
120
+ * With no argument, the reset clones `table.initialState.columnFilters` when it
121
+ * exists. Passing `true` ignores initial state and resets to `[]`.
111
122
  *
112
123
  * @example
113
124
  * ```ts