UNPKG

@tanstack/table-core

Version:

Headless UI for building powerful tables & datagrids for TS/JS.

67 lines (57 loc) 2.63 kB
import { RowModel } from '..' import { Table, RowData, TableFeature } from '../types' export interface GlobalFacetingInstance<TData extends RowData> { _getGlobalFacetedMinMaxValues?: () => undefined | [number, number] _getGlobalFacetedRowModel?: () => RowModel<TData> _getGlobalFacetedUniqueValues?: () => Map<any, number> /** * Currently, this function returns the built-in `includesString` filter function. In future releases, it may return more dynamic filter functions based on the nature of the data provided. * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/global-faceting#getglobalautofilterfn) * @link [Guide](https://tanstack.com/table/v8/docs/guide/global-faceting) */ getGlobalFacetedMinMaxValues: () => undefined | [number, number] /** * Returns the row model for the table after **global** filtering has been applied. * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/global-faceting#getglobalfacetedrowmodel) * @link [Guide](https://tanstack.com/table/v8/docs/guide/global-faceting) */ getGlobalFacetedRowModel: () => RowModel<TData> /** * Returns the faceted unique values for the global filter. * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/global-faceting#getglobalfaceteduniquevalues) * @link [Guide](https://tanstack.com/table/v8/docs/guide/global-faceting) */ getGlobalFacetedUniqueValues: () => Map<any, number> } // export const GlobalFaceting: TableFeature = { createTable: <TData extends RowData>(table: Table<TData>): void => { table._getGlobalFacetedRowModel = table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, '__global__') table.getGlobalFacetedRowModel = () => { if (table.options.manualFiltering || !table._getGlobalFacetedRowModel) { return table.getPreFilteredRowModel() } return table._getGlobalFacetedRowModel() } table._getGlobalFacetedUniqueValues = table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, '__global__') table.getGlobalFacetedUniqueValues = () => { if (!table._getGlobalFacetedUniqueValues) { return new Map() } return table._getGlobalFacetedUniqueValues() } table._getGlobalFacetedMinMaxValues = table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, '__global__') table.getGlobalFacetedMinMaxValues = () => { if (!table._getGlobalFacetedMinMaxValues) { return } return table._getGlobalFacetedMinMaxValues() } }, }