@mui/x-data-grid
Version:
The Community plan edition of the Data Grid components (MUI X).
58 lines • 2.73 kB
TypeScript
import * as React from 'react';
import { RefObject } from '@mui/x-internals/types';
import { GridFilterItem } from "./gridFilterItem.js";
import type { GridColDef } from './colDef/gridColDef';
import type { GridValidRowModel } from './gridRows';
import type { GridApiCommunity } from './api/gridApiCommunity';
import type { GridFilterInputValueProps } from './gridFilterInputComponent';
type ApplyFilterFn<R extends GridValidRowModel = any, V = any, F = V> = (value: V, row: R, column: GridColDef<R, V, F>, apiRef: RefObject<GridApiCommunity>) => boolean;
export type GetApplyFilterFn<R extends GridValidRowModel = any, V = any, F = V> = (filterItem: GridFilterItem, column: GridColDef<R, V, F>) => null | ApplyFilterFn<R, V, F>;
/**
* Filter operator definition interface.
* @demos
* - [Custom filter operator](/x/react-data-grid/filtering/customization/#create-a-custom-operator)
*/
export interface GridFilterOperator<R extends GridValidRowModel = any, V = any, F = V, I extends GridFilterInputValueProps<any> = GridFilterInputValueProps> {
/**
* The label of the filter operator.
*/
label?: string;
/**
* The label of the filter shown in header filter row.
*/
headerLabel?: string;
/**
* The name of the filter operator.
* It will be matched with the `operator` property of the filter items.
*/
value: string;
/**
* The callback that generates a filtering function for a given filter item and column.
* This function can return `null` to skip filtering for this item and column.
* @param {GridFilterItem} filterItem The filter item with which we want to filter the column.
* @param {GridColDef} column The column from which we want to filter the rows.
* @returns {null | ApplyFilterFn} The function to call to check if a row pass this filter item or not.
*/
getApplyFilterFn: GetApplyFilterFn<R, V, F>;
/**
* The input component to render in the filter panel for this filter operator.
*/
InputComponent?: React.JSXElementConstructor<I>;
/**
* The props to pass to the input component in the filter panel for this filter operator.
*/
InputComponentProps?: Partial<I>;
/**
* Converts the value of a filter item to a human-readable form.
* @param {GridFilterItem['value']} value The filter item value.
* @returns {string} The value formatted to be displayed in the UI of filter button tooltip.
*/
getValueAsString?: (value: GridFilterItem['value']) => string;
/**
* If `false`, filter operator doesn't require user-entered value to work.
* Usually should be set to `false` for filter operators that don't have `InputComponent` (for example `isEmpty`)
* @default true
*/
requiresFilterValue?: boolean;
}
export {};