UNPKG

@mui/x-data-grid-pro

Version:

The Pro plan edition of the MUI X Data Grid components.

67 lines (65 loc) 2.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getGridMultiSelectOperators = void 0; var _internals = require("@mui/x-data-grid/internals"); var _GridFilterInputMultipleMultiSelect = require("../components/panel/filterPanel/GridFilterInputMultipleMultiSelect"); const parseObjectValue = value => { if (value == null || !(0, _internals.isObject)(value)) { return value; } return value.value; }; /** * Returns filter operators for the `multiSelect` column type. * Operators: contains, doesNotContain, isEmpty, isNotEmpty */ const getGridMultiSelectOperators = () => [{ value: 'contains', getApplyFilterFn: filterItem => { if (!Array.isArray(filterItem.value) || filterItem.value.length === 0) { return null; } const filterSet = new Set(filterItem.value.map(parseObjectValue)); return cellValue => { if (!Array.isArray(cellValue)) { return false; } return cellValue.some(val => filterSet.has(parseObjectValue(val))); }; }, InputComponent: _GridFilterInputMultipleMultiSelect.GridFilterInputMultipleMultiSelect }, { value: 'doesNotContain', getApplyFilterFn: filterItem => { if (!Array.isArray(filterItem.value) || filterItem.value.length === 0) { return null; } const filterSet = new Set(filterItem.value.map(parseObjectValue)); return cellValue => { if (!Array.isArray(cellValue)) { return true; } return !cellValue.some(val => filterSet.has(parseObjectValue(val))); }; }, InputComponent: _GridFilterInputMultipleMultiSelect.GridFilterInputMultipleMultiSelect }, { value: 'isEmpty', getApplyFilterFn: () => { return cellValue => { return !cellValue || !Array.isArray(cellValue) || cellValue.length === 0; }; }, requiresFilterValue: false }, { value: 'isNotEmpty', getApplyFilterFn: () => { return cellValue => { return Array.isArray(cellValue) && cellValue.length > 0; }; }, requiresFilterValue: false }]; exports.getGridMultiSelectOperators = getGridMultiSelectOperators;