UNPKG

@mui/x-data-grid

Version:

The community edition of the data grid component (MUI X).

144 lines 3.6 kB
import { GridFilterInputValue } from '../components/panel/filterPanel/GridFilterInputValue'; import { GridFilterInputMultipleValue } from '../components/panel/filterPanel/GridFilterInputMultipleValue'; import { convertLegacyOperators, tagInternalFilter } from './utils'; const parseNumericValue = value => { if (value == null) { return null; } return Number(value); }; export const getGridNumericQuickFilterFn = tagInternalFilter(value => { if (value == null || Number.isNaN(value) || value === '') { return null; } return columnValue => { return parseNumericValue(columnValue) === parseNumericValue(value); }; }); export const getGridNumericOperators = () => convertLegacyOperators([{ value: '=', getApplyFilterFnV7: filterItem => { if (filterItem.value == null || Number.isNaN(filterItem.value)) { return null; } return value => { return parseNumericValue(value) === filterItem.value; }; }, InputComponent: GridFilterInputValue, InputComponentProps: { type: 'number' } }, { value: '!=', getApplyFilterFnV7: filterItem => { if (filterItem.value == null || Number.isNaN(filterItem.value)) { return null; } return value => { return parseNumericValue(value) !== filterItem.value; }; }, InputComponent: GridFilterInputValue, InputComponentProps: { type: 'number' } }, { value: '>', getApplyFilterFnV7: filterItem => { if (filterItem.value == null || Number.isNaN(filterItem.value)) { return null; } return value => { if (value == null) { return false; } return parseNumericValue(value) > filterItem.value; }; }, InputComponent: GridFilterInputValue, InputComponentProps: { type: 'number' } }, { value: '>=', getApplyFilterFnV7: filterItem => { if (filterItem.value == null || Number.isNaN(filterItem.value)) { return null; } return value => { if (value == null) { return false; } return parseNumericValue(value) >= filterItem.value; }; }, InputComponent: GridFilterInputValue, InputComponentProps: { type: 'number' } }, { value: '<', getApplyFilterFnV7: filterItem => { if (filterItem.value == null || Number.isNaN(filterItem.value)) { return null; } return value => { if (value == null) { return false; } return parseNumericValue(value) < filterItem.value; }; }, InputComponent: GridFilterInputValue, InputComponentProps: { type: 'number' } }, { value: '<=', getApplyFilterFnV7: filterItem => { if (filterItem.value == null || Number.isNaN(filterItem.value)) { return null; } return value => { if (value == null) { return false; } return parseNumericValue(value) <= filterItem.value; }; }, InputComponent: GridFilterInputValue, InputComponentProps: { type: 'number' } }, { value: 'isEmpty', getApplyFilterFnV7: () => { return value => { return value == null; }; }, requiresFilterValue: false }, { value: 'isNotEmpty', getApplyFilterFnV7: () => { return value => { return value != null; }; }, requiresFilterValue: false }, { value: 'isAnyOf', getApplyFilterFnV7: filterItem => { if (!Array.isArray(filterItem.value) || filterItem.value.length === 0) { return null; } return value => { return value != null && filterItem.value.includes(Number(value)); }; }, InputComponent: GridFilterInputMultipleValue, InputComponentProps: { type: 'number' } }]);