wip:milestone 0 fixes
Some checks failed
CI/CD Pipeline / unit-tests (push) Failing after 1m16s
CI/CD Pipeline / integration-tests (push) Failing after 2m32s
CI/CD Pipeline / lint (push) Successful in 5m22s
CI/CD Pipeline / e2e-tests (push) Has been skipped
CI/CD Pipeline / build (push) Has been skipped

This commit is contained in:
2026-03-15 12:35:42 +02:00
parent 6708cf28a7
commit cffdf8af86
61266 changed files with 4511646 additions and 1938 deletions

View File

@@ -0,0 +1,19 @@
import _extends from "@babel/runtime/helpers/esm/extends";
import { GRID_STRING_COL_DEF } from './gridStringColDef';
import { renderActionsCell } from '../components/cell/GridActionsCell';
export var GRID_ACTIONS_COLUMN_TYPE = 'actions';
export var GRID_ACTIONS_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {
sortable: false,
filterable: false,
// @ts-ignore
aggregable: false,
width: 100,
align: 'center',
headerAlign: 'center',
headerName: '',
disableColumnMenu: true,
disableExport: true,
renderCell: renderActionsCell,
getApplyQuickFilterFn: undefined,
getApplyQuickFilterFnV7: undefined
});

View File

@@ -0,0 +1,45 @@
import _extends from "@babel/runtime/helpers/esm/extends";
import { GRID_STRING_COL_DEF } from './gridStringColDef';
import { renderBooleanCell } from '../components/cell/GridBooleanCell';
import { renderEditBooleanCell } from '../components/cell/GridEditBooleanCell';
import { gridNumberComparator } from '../hooks/features/sorting/gridSortingUtils';
import { getGridBooleanOperators } from './gridBooleanOperators';
function gridBooleanFormatter(_ref) {
var value = _ref.value,
api = _ref.api;
return value ? api.getLocaleText('booleanCellTrueLabel') : api.getLocaleText('booleanCellFalseLabel');
}
var stringToBoolean = function stringToBoolean(value) {
switch (value.toLowerCase().trim()) {
case 'true':
case 'yes':
case '1':
return true;
case 'false':
case 'no':
case '0':
case 'null':
case 'undefined':
return false;
default:
return undefined;
}
};
export var GRID_BOOLEAN_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {
type: 'boolean',
align: 'center',
headerAlign: 'center',
renderCell: renderBooleanCell,
renderEditCell: renderEditBooleanCell,
sortComparator: gridNumberComparator,
valueFormatter: gridBooleanFormatter,
filterOperators: getGridBooleanOperators(),
getApplyQuickFilterFn: undefined,
getApplyQuickFilterFnV7: undefined,
// @ts-ignore
aggregable: false,
// @ts-ignore
pastedValueParser: function pastedValueParser(value) {
return stringToBoolean(value);
}
});

View File

@@ -0,0 +1,17 @@
import { GridFilterInputBoolean } from '../components/panel/filterPanel/GridFilterInputBoolean';
import { convertLegacyOperators } from './utils';
export var getGridBooleanOperators = function getGridBooleanOperators() {
return convertLegacyOperators([{
value: 'is',
getApplyFilterFnV7: function getApplyFilterFnV7(filterItem) {
if (!filterItem.value) {
return null;
}
var valueAsBoolean = filterItem.value === 'true';
return function (value) {
return Boolean(value) === valueAsBoolean;
};
},
InputComponent: GridFilterInputBoolean
}]);
};

View File

@@ -0,0 +1,33 @@
import _extends from "@babel/runtime/helpers/esm/extends";
import * as React from 'react';
import { GridCellCheckboxRenderer } from '../components/columnSelection/GridCellCheckboxRenderer';
import { GridHeaderCheckbox } from '../components/columnSelection/GridHeaderCheckbox';
import { selectedIdsLookupSelector } from '../hooks/features/rowSelection/gridRowSelectionSelector';
import { GRID_BOOLEAN_COL_DEF } from './gridBooleanColDef';
import { jsx as _jsx } from "react/jsx-runtime";
export var GRID_CHECKBOX_SELECTION_FIELD = '__check__';
export var GRID_CHECKBOX_SELECTION_COL_DEF = _extends({}, GRID_BOOLEAN_COL_DEF, {
field: GRID_CHECKBOX_SELECTION_FIELD,
type: 'checkboxSelection',
width: 50,
resizable: false,
sortable: false,
filterable: false,
// @ts-ignore
aggregable: false,
disableColumnMenu: true,
disableReorder: true,
disableExport: true,
getApplyQuickFilterFn: undefined,
getApplyQuickFilterFnV7: undefined,
valueGetter: function valueGetter(params) {
var selectionLookup = selectedIdsLookupSelector(params.api.state, params.api.instanceId);
return selectionLookup[params.id] !== undefined;
},
renderHeader: function renderHeader(params) {
return /*#__PURE__*/_jsx(GridHeaderCheckbox, _extends({}, params));
},
renderCell: function renderCell(params) {
return /*#__PURE__*/_jsx(GridCellCheckboxRenderer, _extends({}, params));
}
});

View File

@@ -0,0 +1,66 @@
import _extends from "@babel/runtime/helpers/esm/extends";
import { gridDateComparator } from '../hooks/features/sorting/gridSortingUtils';
import { getGridDateOperators } from './gridDateOperators';
import { GRID_STRING_COL_DEF } from './gridStringColDef';
import { renderEditDateCell } from '../components/cell/GridEditDateCell';
function throwIfNotDateObject(_ref) {
var value = _ref.value,
columnType = _ref.columnType,
rowId = _ref.rowId,
field = _ref.field;
if (!(value instanceof Date)) {
throw new Error(["MUI: `".concat(columnType, "` column type only accepts `Date` objects as values."), 'Use `valueGetter` to transform the value into a `Date` object.', "Row ID: ".concat(rowId, ", field: \"").concat(field, "\".")].join('\n'));
}
}
export function gridDateFormatter(_ref2) {
var value = _ref2.value,
field = _ref2.field,
id = _ref2.id;
if (!value) {
return '';
}
throwIfNotDateObject({
value: value,
columnType: 'date',
rowId: id,
field: field
});
return value.toLocaleDateString();
}
export function gridDateTimeFormatter(_ref3) {
var value = _ref3.value,
field = _ref3.field,
id = _ref3.id;
if (!value) {
return '';
}
throwIfNotDateObject({
value: value,
columnType: 'dateTime',
rowId: id,
field: field
});
return value.toLocaleString();
}
export var GRID_DATE_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {
type: 'date',
sortComparator: gridDateComparator,
valueFormatter: gridDateFormatter,
filterOperators: getGridDateOperators(),
renderEditCell: renderEditDateCell,
// @ts-ignore
pastedValueParser: function pastedValueParser(value) {
return new Date(value);
}
});
export var GRID_DATETIME_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {
type: 'dateTime',
sortComparator: gridDateComparator,
valueFormatter: gridDateTimeFormatter,
filterOperators: getGridDateOperators(true),
renderEditCell: renderEditDateCell,
// @ts-ignore
pastedValueParser: function pastedValueParser(value) {
return new Date(value);
}
});

View File

@@ -0,0 +1,116 @@
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
import { GridFilterInputDate } from '../components/panel/filterPanel/GridFilterInputDate';
import { convertLegacyOperators } from './utils';
var dateRegex = /(\d+)-(\d+)-(\d+)/;
var dateTimeRegex = /(\d+)-(\d+)-(\d+)T(\d+):(\d+)/;
function buildApplyFilterFn(filterItem, compareFn, showTime, keepHours) {
if (!filterItem.value) {
return null;
}
var _slice$map = filterItem.value.match(showTime ? dateTimeRegex : dateRegex).slice(1).map(Number),
_slice$map2 = _slicedToArray(_slice$map, 5),
year = _slice$map2[0],
month = _slice$map2[1],
day = _slice$map2[2],
hour = _slice$map2[3],
minute = _slice$map2[4];
var time = new Date(year, month - 1, day, hour || 0, minute || 0).getTime();
return function (value) {
if (!value) {
return false;
}
if (keepHours) {
return compareFn(value.getTime(), time);
}
// Make a copy of the date to not reset the hours in the original object
var dateCopy = new Date(value);
var timeToCompare = dateCopy.setHours(showTime ? value.getHours() : 0, showTime ? value.getMinutes() : 0, 0, 0);
return compareFn(timeToCompare, time);
};
}
export var getGridDateOperators = function getGridDateOperators(showTime) {
return convertLegacyOperators([{
value: 'is',
getApplyFilterFnV7: function getApplyFilterFnV7(filterItem) {
return buildApplyFilterFn(filterItem, function (value1, value2) {
return value1 === value2;
}, showTime);
},
InputComponent: GridFilterInputDate,
InputComponentProps: {
type: showTime ? 'datetime-local' : 'date'
}
}, {
value: 'not',
getApplyFilterFnV7: function getApplyFilterFnV7(filterItem) {
return buildApplyFilterFn(filterItem, function (value1, value2) {
return value1 !== value2;
}, showTime);
},
InputComponent: GridFilterInputDate,
InputComponentProps: {
type: showTime ? 'datetime-local' : 'date'
}
}, {
value: 'after',
getApplyFilterFnV7: function getApplyFilterFnV7(filterItem) {
return buildApplyFilterFn(filterItem, function (value1, value2) {
return value1 > value2;
}, showTime);
},
InputComponent: GridFilterInputDate,
InputComponentProps: {
type: showTime ? 'datetime-local' : 'date'
}
}, {
value: 'onOrAfter',
getApplyFilterFnV7: function getApplyFilterFnV7(filterItem) {
return buildApplyFilterFn(filterItem, function (value1, value2) {
return value1 >= value2;
}, showTime);
},
InputComponent: GridFilterInputDate,
InputComponentProps: {
type: showTime ? 'datetime-local' : 'date'
}
}, {
value: 'before',
getApplyFilterFnV7: function getApplyFilterFnV7(filterItem) {
return buildApplyFilterFn(filterItem, function (value1, value2) {
return value1 < value2;
}, showTime, !showTime);
},
InputComponent: GridFilterInputDate,
InputComponentProps: {
type: showTime ? 'datetime-local' : 'date'
}
}, {
value: 'onOrBefore',
getApplyFilterFnV7: function getApplyFilterFnV7(filterItem) {
return buildApplyFilterFn(filterItem, function (value1, value2) {
return value1 <= value2;
}, showTime);
},
InputComponent: GridFilterInputDate,
InputComponentProps: {
type: showTime ? 'datetime-local' : 'date'
}
}, {
value: 'isEmpty',
getApplyFilterFnV7: function getApplyFilterFnV7() {
return function (value) {
return value == null;
};
},
requiresFilterValue: false
}, {
value: 'isNotEmpty',
getApplyFilterFnV7: function getApplyFilterFnV7() {
return function (value) {
return value != null;
};
},
requiresFilterValue: false
}]);
};

View File

@@ -0,0 +1,19 @@
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
import { GRID_STRING_COL_DEF } from './gridStringColDef';
import { GRID_NUMERIC_COL_DEF } from './gridNumericColDef';
import { GRID_DATE_COL_DEF, GRID_DATETIME_COL_DEF } from './gridDateColDef';
import { GRID_BOOLEAN_COL_DEF } from './gridBooleanColDef';
import { GRID_SINGLE_SELECT_COL_DEF } from './gridSingleSelectColDef';
import { GRID_ACTIONS_COL_DEF, GRID_ACTIONS_COLUMN_TYPE } from './gridActionsColDef';
export var DEFAULT_GRID_COL_TYPE_KEY = '__default__';
export var getGridDefaultColumnTypes = function getGridDefaultColumnTypes() {
var nativeColumnTypes = _defineProperty(_defineProperty({
string: GRID_STRING_COL_DEF,
number: GRID_NUMERIC_COL_DEF,
date: GRID_DATE_COL_DEF,
dateTime: GRID_DATETIME_COL_DEF,
boolean: GRID_BOOLEAN_COL_DEF,
singleSelect: GRID_SINGLE_SELECT_COL_DEF
}, GRID_ACTIONS_COLUMN_TYPE, GRID_ACTIONS_COL_DEF), DEFAULT_GRID_COL_TYPE_KEY, GRID_STRING_COL_DEF);
return nativeColumnTypes;
};

View File

@@ -0,0 +1,22 @@
import _extends from "@babel/runtime/helpers/esm/extends";
import { gridNumberComparator } from '../hooks/features/sorting/gridSortingUtils';
import { isNumber } from '../utils/utils';
import { getGridNumericOperators, getGridNumericQuickFilterFn } from './gridNumericOperators';
import { GRID_STRING_COL_DEF } from './gridStringColDef';
import { convertQuickFilterV7ToLegacy } from './utils';
export var GRID_NUMERIC_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {
type: 'number',
align: 'right',
headerAlign: 'right',
sortComparator: gridNumberComparator,
valueParser: function valueParser(value) {
return value === '' ? null : Number(value);
},
valueFormatter: function valueFormatter(_ref) {
var value = _ref.value;
return isNumber(value) ? value.toLocaleString() : value || '';
},
filterOperators: getGridNumericOperators(),
getApplyQuickFilterFn: convertQuickFilterV7ToLegacy(getGridNumericQuickFilterFn),
getApplyQuickFilterFnV7: getGridNumericQuickFilterFn
});

View File

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

View File

@@ -0,0 +1,76 @@
import _extends from "@babel/runtime/helpers/esm/extends";
import _typeof from "@babel/runtime/helpers/esm/typeof";
import { GRID_STRING_COL_DEF } from './gridStringColDef';
import { renderEditSingleSelectCell } from '../components/cell/GridEditSingleSelectCell';
import { getGridSingleSelectOperators } from './gridSingleSelectOperators';
import { isSingleSelectColDef } from '../components/panel/filterPanel/filterPanelUtils';
import { isObject } from '../utils/utils';
var isArrayOfObjects = function isArrayOfObjects(options) {
return _typeof(options[0]) === 'object';
};
var defaultGetOptionValue = function defaultGetOptionValue(value) {
return isObject(value) ? value.value : value;
};
var defaultGetOptionLabel = function defaultGetOptionLabel(value) {
return isObject(value) ? value.label : String(value);
};
export var GRID_SINGLE_SELECT_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {
type: 'singleSelect',
getOptionLabel: defaultGetOptionLabel,
getOptionValue: defaultGetOptionValue,
valueFormatter: function valueFormatter(params) {
var id = params.id,
field = params.field,
value = params.value,
api = params.api;
var colDef = params.api.getColumn(field);
if (!isSingleSelectColDef(colDef)) {
return '';
}
var valueOptions;
if (typeof colDef.valueOptions === 'function') {
valueOptions = colDef.valueOptions({
id: id,
row: id ? api.getRow(id) : null,
field: field
});
} else {
valueOptions = colDef.valueOptions;
}
if (value == null) {
return '';
}
if (!valueOptions) {
return value;
}
if (!isArrayOfObjects(valueOptions)) {
return colDef.getOptionLabel(value);
}
var valueOption = valueOptions.find(function (option) {
return colDef.getOptionValue(option) === value;
});
return valueOption ? colDef.getOptionLabel(valueOption) : '';
},
renderEditCell: renderEditSingleSelectCell,
filterOperators: getGridSingleSelectOperators(),
// @ts-ignore
pastedValueParser: function pastedValueParser(value, params) {
var colDef = params.colDef;
var colDefValueOptions = colDef.valueOptions;
var valueOptions = typeof colDefValueOptions === 'function' ? colDefValueOptions({
field: colDef.field
}) : colDefValueOptions || [];
var getOptionValue = colDef.getOptionValue;
var valueOption = valueOptions.find(function (option) {
if (getOptionValue(option) === value) {
return true;
}
return false;
});
if (valueOption) {
return value;
}
// do not paste the value if it is not in the valueOptions
return undefined;
}
});

View File

@@ -0,0 +1,47 @@
import { GridFilterInputSingleSelect } from '../components/panel/filterPanel/GridFilterInputSingleSelect';
import { GridFilterInputMultipleSingleSelect } from '../components/panel/filterPanel/GridFilterInputMultipleSingleSelect';
import { isObject } from '../utils/utils';
import { convertLegacyOperators } from './utils';
var parseObjectValue = function parseObjectValue(value) {
if (value == null || !isObject(value)) {
return value;
}
return value.value;
};
export var getGridSingleSelectOperators = function getGridSingleSelectOperators() {
return convertLegacyOperators([{
value: 'is',
getApplyFilterFnV7: function getApplyFilterFnV7(filterItem) {
if (filterItem.value == null || filterItem.value === '') {
return null;
}
return function (value) {
return parseObjectValue(value) === parseObjectValue(filterItem.value);
};
},
InputComponent: GridFilterInputSingleSelect
}, {
value: 'not',
getApplyFilterFnV7: function getApplyFilterFnV7(filterItem) {
if (filterItem.value == null || filterItem.value === '') {
return null;
}
return function (value) {
return parseObjectValue(value) !== parseObjectValue(filterItem.value);
};
},
InputComponent: GridFilterInputSingleSelect
}, {
value: 'isAnyOf',
getApplyFilterFnV7: function getApplyFilterFnV7(filterItem) {
if (!Array.isArray(filterItem.value) || filterItem.value.length === 0) {
return null;
}
var filterItemValues = filterItem.value.map(parseObjectValue);
return function (value) {
return filterItemValues.includes(parseObjectValue(value));
};
},
InputComponent: GridFilterInputMultipleSingleSelect
}]);
};

View File

@@ -0,0 +1,29 @@
import { renderEditInputCell } from '../components/cell/GridEditInputCell';
import { gridStringOrNumberComparator } from '../hooks/features/sorting/gridSortingUtils';
import { getGridStringOperators, getGridStringQuickFilterFn } from './gridStringOperators';
import { convertQuickFilterV7ToLegacy } from './utils';
/**
* TODO: Move pro and premium properties outside of this Community file
*/
export var GRID_STRING_COL_DEF = {
width: 100,
minWidth: 50,
maxWidth: Infinity,
hideable: true,
sortable: true,
resizable: true,
filterable: true,
groupable: true,
pinnable: true,
// @ts-ignore
aggregable: true,
editable: false,
sortComparator: gridStringOrNumberComparator,
type: 'string',
align: 'left',
filterOperators: getGridStringOperators(),
renderEditCell: renderEditInputCell,
getApplyQuickFilterFn: convertQuickFilterV7ToLegacy(getGridStringQuickFilterFn),
getApplyQuickFilterFnV7: getGridStringQuickFilterFn
};

View File

@@ -0,0 +1,113 @@
import { GridFilterInputValue } from '../components/panel/filterPanel/GridFilterInputValue';
import { escapeRegExp } from '../utils/utils';
import { GridFilterInputMultipleValue } from '../components/panel/filterPanel/GridFilterInputMultipleValue';
import { convertLegacyOperators, tagInternalFilter } from './utils';
import { removeDiacritics } from '../hooks/features/filter/gridFilterUtils';
export var getGridStringQuickFilterFn = tagInternalFilter(function (value) {
if (!value) {
return null;
}
var filterRegex = new RegExp(escapeRegExp(value), 'i');
return function (_, row, column, apiRef) {
var columnValue = apiRef.current.getRowFormattedValue(row, column);
if (apiRef.current.ignoreDiacritics) {
columnValue = removeDiacritics(columnValue);
}
return columnValue != null ? filterRegex.test(columnValue.toString()) : false;
};
});
export var getGridStringOperators = function getGridStringOperators() {
var disableTrim = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
return convertLegacyOperators([{
value: 'contains',
getApplyFilterFnV7: function getApplyFilterFnV7(filterItem) {
if (!filterItem.value) {
return null;
}
var filterItemValue = disableTrim ? filterItem.value : filterItem.value.trim();
var filterRegex = new RegExp(escapeRegExp(filterItemValue), 'i');
return function (value) {
return value != null ? filterRegex.test(String(value)) : false;
};
},
InputComponent: GridFilterInputValue
}, {
value: 'equals',
getApplyFilterFnV7: function getApplyFilterFnV7(filterItem) {
if (!filterItem.value) {
return null;
}
var filterItemValue = disableTrim ? filterItem.value : filterItem.value.trim();
var collator = new Intl.Collator(undefined, {
sensitivity: 'base',
usage: 'search'
});
return function (value) {
return value != null ? collator.compare(filterItemValue, value.toString()) === 0 : false;
};
},
InputComponent: GridFilterInputValue
}, {
value: 'startsWith',
getApplyFilterFnV7: function getApplyFilterFnV7(filterItem) {
if (!filterItem.value) {
return null;
}
var filterItemValue = disableTrim ? filterItem.value : filterItem.value.trim();
var filterRegex = new RegExp("^".concat(escapeRegExp(filterItemValue), ".*$"), 'i');
return function (value) {
return value != null ? filterRegex.test(value.toString()) : false;
};
},
InputComponent: GridFilterInputValue
}, {
value: 'endsWith',
getApplyFilterFnV7: function getApplyFilterFnV7(filterItem) {
if (!filterItem.value) {
return null;
}
var filterItemValue = disableTrim ? filterItem.value : filterItem.value.trim();
var filterRegex = new RegExp(".*".concat(escapeRegExp(filterItemValue), "$"), 'i');
return function (value) {
return value != null ? filterRegex.test(value.toString()) : false;
};
},
InputComponent: GridFilterInputValue
}, {
value: 'isEmpty',
getApplyFilterFnV7: function getApplyFilterFnV7() {
return function (value) {
return value === '' || value == null;
};
},
requiresFilterValue: false
}, {
value: 'isNotEmpty',
getApplyFilterFnV7: function getApplyFilterFnV7() {
return function (value) {
return value !== '' && value != null;
};
},
requiresFilterValue: false
}, {
value: 'isAnyOf',
getApplyFilterFnV7: function getApplyFilterFnV7(filterItem) {
if (!Array.isArray(filterItem.value) || filterItem.value.length === 0) {
return null;
}
var filterItemValue = disableTrim ? filterItem.value : filterItem.value.map(function (val) {
return val.trim();
});
var collator = new Intl.Collator(undefined, {
sensitivity: 'base',
usage: 'search'
});
return function (value) {
return value != null ? filterItemValue.some(function (filterValue) {
return collator.compare(filterValue, value.toString() || '') === 0;
}) : false;
};
},
InputComponent: GridFilterInputMultipleValue
}]);
};

View File

@@ -0,0 +1,13 @@
export * from './gridActionsColDef';
export * from './gridBooleanColDef';
export * from './gridCheckboxSelectionColDef';
export * from './gridDateColDef';
export * from './gridNumericColDef';
export * from './gridSingleSelectColDef';
export * from './gridStringColDef';
export * from './gridBooleanOperators';
export * from './gridDateOperators';
export * from './gridNumericOperators';
export * from './gridSingleSelectOperators';
export * from './gridStringOperators';
export * from './gridDefaultColumnTypes';

View File

@@ -0,0 +1,51 @@
import _extends from "@babel/runtime/helpers/esm/extends";
/**
* A global API ref, for v7-to-legacy converter
*/
export var GLOBAL_API_REF = {
current: null
};
/**
* A tagger to determine if the filter is internal or custom user-supplied.
* To be a valid internal filter, the v7 function *must* be defined/redefined at
* the same time as the legacy one.
* https://github.com/mui/mui-x/pull/9254#discussion_r1231095551
*/
export function tagInternalFilter(fn) {
fn.isInternal = true;
return fn;
}
export function isInternalFilter(fn) {
return fn !== undefined && fn.isInternal === true;
}
export function convertFilterV7ToLegacy(fn) {
return tagInternalFilter(function (filterItem, column) {
var filterFn = fn(filterItem, column);
if (!filterFn) {
return filterFn;
}
return function (cellParams) {
return filterFn(cellParams.value, cellParams.row, column, GLOBAL_API_REF.current);
};
});
}
export function convertLegacyOperators(ops) {
return ops.map(function (op) {
return _extends({}, op, {
getApplyFilterFn: convertFilterV7ToLegacy(op.getApplyFilterFnV7),
getApplyFilterFnV7: tagInternalFilter(op.getApplyFilterFnV7)
});
});
}
export function convertQuickFilterV7ToLegacy(fn) {
return tagInternalFilter(function (filterItem, column, apiRef) {
var filterFn = fn(filterItem, column, apiRef);
if (!filterFn) {
return filterFn;
}
return function (cellParams) {
return filterFn(cellParams.value, cellParams.row, column, apiRef);
};
});
}