UNPKG

@mui/x-data-grid

Version:

The Community plan edition of the Data Grid components (MUI X).

143 lines 3.48 kB
import { GridFilterInputValue } from "../components/panel/filterPanel/GridFilterInputValue.js"; import { GridFilterInputMultipleValue } from "../components/panel/filterPanel/GridFilterInputMultipleValue.js"; const parseNumericValue = value => { if (value == null) { return null; } return Number(value); }; export const getGridNumericQuickFilterFn = value => { if (value == null || Number.isNaN(value) || value === '') { return null; } return columnValue => { return parseNumericValue(columnValue) === parseNumericValue(value); }; }; export const getGridNumericOperators = () => [{ value: '=', getApplyFilterFn: filterItem => { if (filterItem.value == null || Number.isNaN(filterItem.value)) { return null; } return value => { return parseNumericValue(value) === filterItem.value; }; }, InputComponent: GridFilterInputValue, InputComponentProps: { type: 'number' } }, { value: '!=', getApplyFilterFn: filterItem => { if (filterItem.value == null || Number.isNaN(filterItem.value)) { return null; } return value => { return parseNumericValue(value) !== filterItem.value; }; }, InputComponent: GridFilterInputValue, InputComponentProps: { type: 'number' } }, { value: '>', getApplyFilterFn: 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: '>=', getApplyFilterFn: 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: '<', getApplyFilterFn: 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: '<=', getApplyFilterFn: 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', getApplyFilterFn: () => { return value => { return value == null; }; }, requiresFilterValue: false }, { value: 'isNotEmpty', getApplyFilterFn: () => { return value => { return value != null; }; }, requiresFilterValue: false }, { value: 'isAnyOf', getApplyFilterFn: 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' } }];