@mui/x-data-grid-pro
Version:
The Pro plan edition of the MUI X Data Grid components.
67 lines (65 loc) • 2.09 kB
JavaScript
;
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;