@mui/x-data-grid 6.18.1 → 7.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +149 -0
- package/DataGrid/DataGrid.js +0 -10
- package/DataGrid/useDataGridProps.js +9 -14
- package/colDef/gridActionsColDef.js +1 -2
- package/colDef/gridBooleanColDef.js +0 -1
- package/colDef/gridBooleanOperators.js +3 -4
- package/colDef/gridCheckboxSelectionColDef.js +0 -1
- package/colDef/gridDateOperators.js +10 -11
- package/colDef/gridNumericColDef.js +1 -3
- package/colDef/gridNumericOperators.d.ts +2 -2
- package/colDef/gridNumericOperators.js +13 -14
- package/colDef/gridSingleSelectOperators.js +5 -6
- package/colDef/gridStringColDef.js +1 -3
- package/colDef/gridStringOperators.d.ts +2 -2
- package/colDef/gridStringOperators.js +11 -12
- package/constants/defaultGridSlotsComponents.js +17 -17
- package/hooks/features/export/useGridPrintExport.js +7 -10
- package/hooks/features/filter/gridFilterUtils.js +14 -68
- package/hooks/features/rows/useGridRows.js +4 -1
- package/index.js +1 -1
- package/internals/index.d.ts +0 -1
- package/internals/index.js +0 -1
- package/internals/utils/computeSlots.d.ts +4 -6
- package/internals/utils/computeSlots.js +2 -8
- package/internals/utils/index.d.ts +0 -1
- package/internals/utils/index.js +0 -1
- package/internals/utils/useProps.d.ts +1 -8
- package/internals/utils/useProps.js +5 -8
- package/joy/icons.d.ts +1 -2
- package/joy/joySlots.d.ts +1 -2
- package/legacy/DataGrid/DataGrid.js +0 -10
- package/legacy/DataGrid/useDataGridProps.js +10 -18
- package/legacy/colDef/gridActionsColDef.js +1 -2
- package/legacy/colDef/gridBooleanColDef.js +0 -1
- package/legacy/colDef/gridBooleanOperators.js +3 -4
- package/legacy/colDef/gridCheckboxSelectionColDef.js +0 -1
- package/legacy/colDef/gridDateOperators.js +10 -11
- package/legacy/colDef/gridNumericColDef.js +1 -3
- package/legacy/colDef/gridNumericOperators.js +13 -14
- package/legacy/colDef/gridSingleSelectOperators.js +5 -6
- package/legacy/colDef/gridStringColDef.js +1 -3
- package/legacy/colDef/gridStringOperators.js +11 -12
- package/legacy/constants/defaultGridSlotsComponents.js +17 -17
- package/legacy/hooks/features/export/useGridPrintExport.js +7 -10
- package/legacy/hooks/features/filter/gridFilterUtils.js +14 -68
- package/legacy/hooks/features/rows/useGridRows.js +2 -1
- package/legacy/index.js +1 -1
- package/legacy/internals/index.js +0 -1
- package/legacy/internals/utils/computeSlots.js +2 -8
- package/legacy/internals/utils/index.js +0 -1
- package/legacy/internals/utils/useProps.js +5 -6
- package/legacy/locales/csCZ.js +2 -2
- package/legacy/material/index.js +48 -48
- package/locales/csCZ.js +2 -2
- package/material/index.js +48 -48
- package/models/colDef/gridColDef.d.ts +4 -14
- package/models/colDef/index.d.ts +1 -1
- package/models/gridFilterOperator.d.ts +4 -16
- package/models/gridIconSlotsComponent.d.ts +35 -36
- package/models/gridSlotsComponent.d.ts +31 -34
- package/models/index.d.ts +1 -1
- package/models/props/DataGridProps.d.ts +3 -14
- package/modern/DataGrid/DataGrid.js +0 -10
- package/modern/DataGrid/useDataGridProps.js +7 -9
- package/modern/colDef/gridActionsColDef.js +1 -2
- package/modern/colDef/gridBooleanColDef.js +0 -1
- package/modern/colDef/gridBooleanOperators.js +3 -4
- package/modern/colDef/gridCheckboxSelectionColDef.js +0 -1
- package/modern/colDef/gridDateOperators.js +10 -11
- package/modern/colDef/gridNumericColDef.js +1 -3
- package/modern/colDef/gridNumericOperators.js +13 -14
- package/modern/colDef/gridSingleSelectOperators.js +5 -6
- package/modern/colDef/gridStringColDef.js +1 -3
- package/modern/colDef/gridStringOperators.js +11 -12
- package/modern/constants/defaultGridSlotsComponents.js +17 -17
- package/modern/hooks/features/export/useGridPrintExport.js +6 -10
- package/modern/hooks/features/filter/gridFilterUtils.js +14 -67
- package/modern/hooks/features/rows/useGridRows.js +1 -1
- package/modern/index.js +1 -1
- package/modern/internals/index.js +0 -1
- package/modern/internals/utils/computeSlots.js +2 -8
- package/modern/internals/utils/index.js +0 -1
- package/modern/internals/utils/useProps.js +5 -8
- package/modern/locales/csCZ.js +2 -2
- package/modern/material/index.js +48 -48
- package/node/DataGrid/DataGrid.js +0 -10
- package/node/DataGrid/useDataGridProps.js +6 -8
- package/node/colDef/gridActionsColDef.js +1 -2
- package/node/colDef/gridBooleanColDef.js +0 -1
- package/node/colDef/gridBooleanOperators.js +3 -4
- package/node/colDef/gridCheckboxSelectionColDef.js +0 -1
- package/node/colDef/gridDateOperators.js +10 -11
- package/node/colDef/gridNumericColDef.js +1 -3
- package/node/colDef/gridNumericOperators.js +14 -14
- package/node/colDef/gridSingleSelectOperators.js +5 -6
- package/node/colDef/gridStringColDef.js +1 -3
- package/node/colDef/gridStringOperators.js +12 -12
- package/node/constants/defaultGridSlotsComponents.js +17 -17
- package/node/hooks/features/export/useGridPrintExport.js +5 -9
- package/node/hooks/features/filter/gridFilterUtils.js +14 -67
- package/node/hooks/features/rows/useGridRows.js +1 -1
- package/node/index.js +1 -1
- package/node/internals/index.js +1 -13
- package/node/internals/utils/computeSlots.js +2 -7
- package/node/internals/utils/index.js +0 -11
- package/node/internals/utils/useProps.js +4 -8
- package/node/locales/csCZ.js +2 -2
- package/node/material/index.js +48 -48
- package/package.json +1 -1
- package/colDef/utils.d.ts +0 -21
- package/colDef/utils.js +0 -51
- package/internals/utils/slotsMigration.d.ts +0 -4
- package/internals/utils/slotsMigration.js +0 -13
- package/legacy/colDef/utils.js +0 -51
- package/legacy/internals/utils/slotsMigration.js +0 -14
- package/modern/colDef/utils.js +0 -51
- package/modern/internals/utils/slotsMigration.js +0 -13
- package/node/colDef/utils.js +0 -63
- package/node/internals/utils/slotsMigration.js +0 -21
|
@@ -24,7 +24,6 @@ import { GridColumnVisibilityModel } from '../../hooks/features/columns/gridColu
|
|
|
24
24
|
import { GridCellModesModel, GridRowModesModel } from '../api/gridEditingApi';
|
|
25
25
|
import { GridColumnGroupingModel } from '../gridColumnGrouping';
|
|
26
26
|
import { GridPaginationModel } from '../gridPaginationProps';
|
|
27
|
-
import { UncapitalizeObjectKeys } from '../../internals/utils';
|
|
28
27
|
export interface GridExperimentalFeatures {
|
|
29
28
|
/**
|
|
30
29
|
* Enables the column grouping.
|
|
@@ -51,7 +50,7 @@ export type DataGridProps<R extends GridValidRowModel = any> = Omit<Partial<Data
|
|
|
51
50
|
/**
|
|
52
51
|
* The props of the `DataGrid` component after the pre-processing phase.
|
|
53
52
|
*/
|
|
54
|
-
export interface DataGridProcessedProps<R extends GridValidRowModel = any> extends DataGridPropsWithDefaultValues, DataGridPropsWithComplexDefaultValueAfterProcessing,
|
|
53
|
+
export interface DataGridProcessedProps<R extends GridValidRowModel = any> extends DataGridPropsWithDefaultValues, DataGridPropsWithComplexDefaultValueAfterProcessing, DataGridPropsWithoutDefaultValue<R> {
|
|
55
54
|
}
|
|
56
55
|
/**
|
|
57
56
|
* The props of the `DataGrid` component after the pre-processing phase that the user should not be able to override.
|
|
@@ -62,7 +61,7 @@ export type DataGridForcedPropsKey = 'checkboxSelectionVisibleOnly' | 'disableMu
|
|
|
62
61
|
* The `DataGrid` options with a default value that must be merged with the value given through props.
|
|
63
62
|
*/
|
|
64
63
|
export interface DataGridPropsWithComplexDefaultValueAfterProcessing {
|
|
65
|
-
slots:
|
|
64
|
+
slots: GridSlotsComponent;
|
|
66
65
|
localeText: GridLocaleText;
|
|
67
66
|
}
|
|
68
67
|
/**
|
|
@@ -71,13 +70,8 @@ export interface DataGridPropsWithComplexDefaultValueAfterProcessing {
|
|
|
71
70
|
export interface DataGridPropsWithComplexDefaultValueBeforeProcessing {
|
|
72
71
|
/**
|
|
73
72
|
* Overridable components.
|
|
74
|
-
* @deprecated Use `slots` instead.
|
|
75
73
|
*/
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* Overridable components.
|
|
79
|
-
*/
|
|
80
|
-
slots?: UncapitalizeObjectKeys<Partial<GridSlotsComponent>>;
|
|
74
|
+
slots?: Partial<GridSlotsComponent>;
|
|
81
75
|
/**
|
|
82
76
|
* Set the locale text of the grid.
|
|
83
77
|
* You can find all the translation keys supported in [the source](https://github.com/mui/mui-x/blob/HEAD/packages/grid/x-data-grid/src/constants/localeTextConstants.ts) in the GitHub repository.
|
|
@@ -703,11 +697,6 @@ export interface DataGridPropsWithoutDefaultValue<R extends GridValidRowModel =
|
|
|
703
697
|
* Overridable components props dynamically passed to the component at rendering.
|
|
704
698
|
*/
|
|
705
699
|
slotProps?: GridSlotsComponentsProps;
|
|
706
|
-
/**
|
|
707
|
-
* Overridable components props dynamically passed to the component at rendering.
|
|
708
|
-
* @deprecated Use the `slotProps` prop instead.
|
|
709
|
-
*/
|
|
710
|
-
componentsProps?: GridSlotsComponentsProps;
|
|
711
700
|
/**
|
|
712
701
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
713
702
|
*/
|
|
@@ -125,16 +125,6 @@ DataGridRaw.propTypes = {
|
|
|
125
125
|
* If defined, the grid will ignore the `hide` property in [[GridColDef]].
|
|
126
126
|
*/
|
|
127
127
|
columnVisibilityModel: PropTypes.object,
|
|
128
|
-
/**
|
|
129
|
-
* Overridable components.
|
|
130
|
-
* @deprecated Use `slots` instead.
|
|
131
|
-
*/
|
|
132
|
-
components: PropTypes.object,
|
|
133
|
-
/**
|
|
134
|
-
* Overridable components props dynamically passed to the component at rendering.
|
|
135
|
-
* @deprecated Use the `slotProps` prop instead.
|
|
136
|
-
*/
|
|
137
|
-
componentsProps: PropTypes.object,
|
|
138
128
|
/**
|
|
139
129
|
* Set the density of the grid.
|
|
140
130
|
* @default "standard"
|
|
@@ -4,7 +4,7 @@ import { useThemeProps } from '@mui/material/styles';
|
|
|
4
4
|
import { GRID_DEFAULT_LOCALE_TEXT } from '../constants';
|
|
5
5
|
import { DATA_GRID_DEFAULT_SLOTS_COMPONENTS } from '../constants/defaultGridSlotsComponents';
|
|
6
6
|
import { GridEditModes } from '../models';
|
|
7
|
-
import { computeSlots, useProps
|
|
7
|
+
import { computeSlots, useProps } from '../internals/utils';
|
|
8
8
|
const DATA_GRID_FORCED_PROPS = {
|
|
9
9
|
disableMultipleColumnsFiltering: true,
|
|
10
10
|
disableMultipleColumnsSorting: true,
|
|
@@ -72,21 +72,19 @@ export const DATA_GRID_PROPS_DEFAULT_VALUES = {
|
|
|
72
72
|
clipboardCopyCellDelimiter: '\t',
|
|
73
73
|
rowPositionsDebounceMs: 166
|
|
74
74
|
};
|
|
75
|
-
const defaultSlots =
|
|
75
|
+
const defaultSlots = DATA_GRID_DEFAULT_SLOTS_COMPONENTS;
|
|
76
76
|
export const useDataGridProps = inProps => {
|
|
77
|
-
const
|
|
77
|
+
const themedProps = useProps(useThemeProps({
|
|
78
78
|
props: inProps,
|
|
79
79
|
name: 'MuiDataGrid'
|
|
80
80
|
}));
|
|
81
81
|
const localeText = React.useMemo(() => _extends({}, GRID_DEFAULT_LOCALE_TEXT, themedProps.localeText), [themedProps.localeText]);
|
|
82
82
|
const slots = React.useMemo(() => computeSlots({
|
|
83
83
|
defaultSlots,
|
|
84
|
-
slots: themedProps.slots
|
|
85
|
-
|
|
86
|
-
}), [components, themedProps.slots]);
|
|
84
|
+
slots: themedProps.slots
|
|
85
|
+
}), [themedProps.slots]);
|
|
87
86
|
return React.useMemo(() => _extends({}, DATA_GRID_PROPS_DEFAULT_VALUES, themedProps, {
|
|
88
87
|
localeText,
|
|
89
|
-
slots
|
|
90
|
-
|
|
91
|
-
}, DATA_GRID_FORCED_PROPS), [themedProps, localeText, slots, componentsProps]);
|
|
88
|
+
slots
|
|
89
|
+
}, DATA_GRID_FORCED_PROPS), [themedProps, localeText, slots]);
|
|
92
90
|
};
|
|
@@ -14,6 +14,5 @@ export const GRID_ACTIONS_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {
|
|
|
14
14
|
disableColumnMenu: true,
|
|
15
15
|
disableExport: true,
|
|
16
16
|
renderCell: renderActionsCell,
|
|
17
|
-
getApplyQuickFilterFn: undefined
|
|
18
|
-
getApplyQuickFilterFnV7: undefined
|
|
17
|
+
getApplyQuickFilterFn: undefined
|
|
19
18
|
});
|
|
@@ -36,7 +36,6 @@ export const GRID_BOOLEAN_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {
|
|
|
36
36
|
valueFormatter: gridBooleanFormatter,
|
|
37
37
|
filterOperators: getGridBooleanOperators(),
|
|
38
38
|
getApplyQuickFilterFn: undefined,
|
|
39
|
-
getApplyQuickFilterFnV7: undefined,
|
|
40
39
|
// @ts-ignore
|
|
41
40
|
aggregable: false,
|
|
42
41
|
// @ts-ignore
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { GridFilterInputBoolean } from '../components/panel/filterPanel/GridFilterInputBoolean';
|
|
2
|
-
|
|
3
|
-
export const getGridBooleanOperators = () => convertLegacyOperators([{
|
|
2
|
+
export const getGridBooleanOperators = () => [{
|
|
4
3
|
value: 'is',
|
|
5
|
-
|
|
4
|
+
getApplyFilterFn: filterItem => {
|
|
6
5
|
if (!filterItem.value) {
|
|
7
6
|
return null;
|
|
8
7
|
}
|
|
@@ -12,4 +11,4 @@ export const getGridBooleanOperators = () => convertLegacyOperators([{
|
|
|
12
11
|
};
|
|
13
12
|
},
|
|
14
13
|
InputComponent: GridFilterInputBoolean
|
|
15
|
-
}]
|
|
14
|
+
}];
|
|
@@ -19,7 +19,6 @@ export const GRID_CHECKBOX_SELECTION_COL_DEF = _extends({}, GRID_BOOLEAN_COL_DEF
|
|
|
19
19
|
disableReorder: true,
|
|
20
20
|
disableExport: true,
|
|
21
21
|
getApplyQuickFilterFn: undefined,
|
|
22
|
-
getApplyQuickFilterFnV7: undefined,
|
|
23
22
|
valueGetter: params => {
|
|
24
23
|
const selectionLookup = selectedIdsLookupSelector(params.api.state, params.api.instanceId);
|
|
25
24
|
return selectionLookup[params.id] !== undefined;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { GridFilterInputDate } from '../components/panel/filterPanel/GridFilterInputDate';
|
|
2
|
-
import { convertLegacyOperators } from './utils';
|
|
3
2
|
const dateRegex = /(\d+)-(\d+)-(\d+)/;
|
|
4
3
|
const dateTimeRegex = /(\d+)-(\d+)-(\d+)T(\d+):(\d+)/;
|
|
5
4
|
function buildApplyFilterFn(filterItem, compareFn, showTime, keepHours) {
|
|
@@ -22,9 +21,9 @@ function buildApplyFilterFn(filterItem, compareFn, showTime, keepHours) {
|
|
|
22
21
|
return compareFn(timeToCompare, time);
|
|
23
22
|
};
|
|
24
23
|
}
|
|
25
|
-
export const getGridDateOperators = showTime =>
|
|
24
|
+
export const getGridDateOperators = showTime => [{
|
|
26
25
|
value: 'is',
|
|
27
|
-
|
|
26
|
+
getApplyFilterFn: filterItem => {
|
|
28
27
|
return buildApplyFilterFn(filterItem, (value1, value2) => value1 === value2, showTime);
|
|
29
28
|
},
|
|
30
29
|
InputComponent: GridFilterInputDate,
|
|
@@ -33,7 +32,7 @@ export const getGridDateOperators = showTime => convertLegacyOperators([{
|
|
|
33
32
|
}
|
|
34
33
|
}, {
|
|
35
34
|
value: 'not',
|
|
36
|
-
|
|
35
|
+
getApplyFilterFn: filterItem => {
|
|
37
36
|
return buildApplyFilterFn(filterItem, (value1, value2) => value1 !== value2, showTime);
|
|
38
37
|
},
|
|
39
38
|
InputComponent: GridFilterInputDate,
|
|
@@ -42,7 +41,7 @@ export const getGridDateOperators = showTime => convertLegacyOperators([{
|
|
|
42
41
|
}
|
|
43
42
|
}, {
|
|
44
43
|
value: 'after',
|
|
45
|
-
|
|
44
|
+
getApplyFilterFn: filterItem => {
|
|
46
45
|
return buildApplyFilterFn(filterItem, (value1, value2) => value1 > value2, showTime);
|
|
47
46
|
},
|
|
48
47
|
InputComponent: GridFilterInputDate,
|
|
@@ -51,7 +50,7 @@ export const getGridDateOperators = showTime => convertLegacyOperators([{
|
|
|
51
50
|
}
|
|
52
51
|
}, {
|
|
53
52
|
value: 'onOrAfter',
|
|
54
|
-
|
|
53
|
+
getApplyFilterFn: filterItem => {
|
|
55
54
|
return buildApplyFilterFn(filterItem, (value1, value2) => value1 >= value2, showTime);
|
|
56
55
|
},
|
|
57
56
|
InputComponent: GridFilterInputDate,
|
|
@@ -60,7 +59,7 @@ export const getGridDateOperators = showTime => convertLegacyOperators([{
|
|
|
60
59
|
}
|
|
61
60
|
}, {
|
|
62
61
|
value: 'before',
|
|
63
|
-
|
|
62
|
+
getApplyFilterFn: filterItem => {
|
|
64
63
|
return buildApplyFilterFn(filterItem, (value1, value2) => value1 < value2, showTime, !showTime);
|
|
65
64
|
},
|
|
66
65
|
InputComponent: GridFilterInputDate,
|
|
@@ -69,7 +68,7 @@ export const getGridDateOperators = showTime => convertLegacyOperators([{
|
|
|
69
68
|
}
|
|
70
69
|
}, {
|
|
71
70
|
value: 'onOrBefore',
|
|
72
|
-
|
|
71
|
+
getApplyFilterFn: filterItem => {
|
|
73
72
|
return buildApplyFilterFn(filterItem, (value1, value2) => value1 <= value2, showTime);
|
|
74
73
|
},
|
|
75
74
|
InputComponent: GridFilterInputDate,
|
|
@@ -78,7 +77,7 @@ export const getGridDateOperators = showTime => convertLegacyOperators([{
|
|
|
78
77
|
}
|
|
79
78
|
}, {
|
|
80
79
|
value: 'isEmpty',
|
|
81
|
-
|
|
80
|
+
getApplyFilterFn: () => {
|
|
82
81
|
return value => {
|
|
83
82
|
return value == null;
|
|
84
83
|
};
|
|
@@ -86,10 +85,10 @@ export const getGridDateOperators = showTime => convertLegacyOperators([{
|
|
|
86
85
|
requiresFilterValue: false
|
|
87
86
|
}, {
|
|
88
87
|
value: 'isNotEmpty',
|
|
89
|
-
|
|
88
|
+
getApplyFilterFn: () => {
|
|
90
89
|
return value => {
|
|
91
90
|
return value != null;
|
|
92
91
|
};
|
|
93
92
|
},
|
|
94
93
|
requiresFilterValue: false
|
|
95
|
-
}]
|
|
94
|
+
}];
|
|
@@ -3,7 +3,6 @@ import { gridNumberComparator } from '../hooks/features/sorting/gridSortingUtils
|
|
|
3
3
|
import { isNumber } from '../utils/utils';
|
|
4
4
|
import { getGridNumericOperators, getGridNumericQuickFilterFn } from './gridNumericOperators';
|
|
5
5
|
import { GRID_STRING_COL_DEF } from './gridStringColDef';
|
|
6
|
-
import { convertQuickFilterV7ToLegacy } from './utils';
|
|
7
6
|
export const GRID_NUMERIC_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {
|
|
8
7
|
type: 'number',
|
|
9
8
|
align: 'right',
|
|
@@ -14,6 +13,5 @@ export const GRID_NUMERIC_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {
|
|
|
14
13
|
value
|
|
15
14
|
}) => isNumber(value) ? value.toLocaleString() : value || '',
|
|
16
15
|
filterOperators: getGridNumericOperators(),
|
|
17
|
-
getApplyQuickFilterFn:
|
|
18
|
-
getApplyQuickFilterFnV7: getGridNumericQuickFilterFn
|
|
16
|
+
getApplyQuickFilterFn: getGridNumericQuickFilterFn
|
|
19
17
|
});
|
|
@@ -1,23 +1,22 @@
|
|
|
1
1
|
import { GridFilterInputValue } from '../components/panel/filterPanel/GridFilterInputValue';
|
|
2
2
|
import { GridFilterInputMultipleValue } from '../components/panel/filterPanel/GridFilterInputMultipleValue';
|
|
3
|
-
import { convertLegacyOperators, tagInternalFilter } from './utils';
|
|
4
3
|
const parseNumericValue = value => {
|
|
5
4
|
if (value == null) {
|
|
6
5
|
return null;
|
|
7
6
|
}
|
|
8
7
|
return Number(value);
|
|
9
8
|
};
|
|
10
|
-
export const getGridNumericQuickFilterFn =
|
|
9
|
+
export const getGridNumericQuickFilterFn = value => {
|
|
11
10
|
if (value == null || Number.isNaN(value) || value === '') {
|
|
12
11
|
return null;
|
|
13
12
|
}
|
|
14
13
|
return columnValue => {
|
|
15
14
|
return parseNumericValue(columnValue) === parseNumericValue(value);
|
|
16
15
|
};
|
|
17
|
-
}
|
|
18
|
-
export const getGridNumericOperators = () =>
|
|
16
|
+
};
|
|
17
|
+
export const getGridNumericOperators = () => [{
|
|
19
18
|
value: '=',
|
|
20
|
-
|
|
19
|
+
getApplyFilterFn: filterItem => {
|
|
21
20
|
if (filterItem.value == null || Number.isNaN(filterItem.value)) {
|
|
22
21
|
return null;
|
|
23
22
|
}
|
|
@@ -31,7 +30,7 @@ export const getGridNumericOperators = () => convertLegacyOperators([{
|
|
|
31
30
|
}
|
|
32
31
|
}, {
|
|
33
32
|
value: '!=',
|
|
34
|
-
|
|
33
|
+
getApplyFilterFn: filterItem => {
|
|
35
34
|
if (filterItem.value == null || Number.isNaN(filterItem.value)) {
|
|
36
35
|
return null;
|
|
37
36
|
}
|
|
@@ -45,7 +44,7 @@ export const getGridNumericOperators = () => convertLegacyOperators([{
|
|
|
45
44
|
}
|
|
46
45
|
}, {
|
|
47
46
|
value: '>',
|
|
48
|
-
|
|
47
|
+
getApplyFilterFn: filterItem => {
|
|
49
48
|
if (filterItem.value == null || Number.isNaN(filterItem.value)) {
|
|
50
49
|
return null;
|
|
51
50
|
}
|
|
@@ -62,7 +61,7 @@ export const getGridNumericOperators = () => convertLegacyOperators([{
|
|
|
62
61
|
}
|
|
63
62
|
}, {
|
|
64
63
|
value: '>=',
|
|
65
|
-
|
|
64
|
+
getApplyFilterFn: filterItem => {
|
|
66
65
|
if (filterItem.value == null || Number.isNaN(filterItem.value)) {
|
|
67
66
|
return null;
|
|
68
67
|
}
|
|
@@ -79,7 +78,7 @@ export const getGridNumericOperators = () => convertLegacyOperators([{
|
|
|
79
78
|
}
|
|
80
79
|
}, {
|
|
81
80
|
value: '<',
|
|
82
|
-
|
|
81
|
+
getApplyFilterFn: filterItem => {
|
|
83
82
|
if (filterItem.value == null || Number.isNaN(filterItem.value)) {
|
|
84
83
|
return null;
|
|
85
84
|
}
|
|
@@ -96,7 +95,7 @@ export const getGridNumericOperators = () => convertLegacyOperators([{
|
|
|
96
95
|
}
|
|
97
96
|
}, {
|
|
98
97
|
value: '<=',
|
|
99
|
-
|
|
98
|
+
getApplyFilterFn: filterItem => {
|
|
100
99
|
if (filterItem.value == null || Number.isNaN(filterItem.value)) {
|
|
101
100
|
return null;
|
|
102
101
|
}
|
|
@@ -113,7 +112,7 @@ export const getGridNumericOperators = () => convertLegacyOperators([{
|
|
|
113
112
|
}
|
|
114
113
|
}, {
|
|
115
114
|
value: 'isEmpty',
|
|
116
|
-
|
|
115
|
+
getApplyFilterFn: () => {
|
|
117
116
|
return value => {
|
|
118
117
|
return value == null;
|
|
119
118
|
};
|
|
@@ -121,7 +120,7 @@ export const getGridNumericOperators = () => convertLegacyOperators([{
|
|
|
121
120
|
requiresFilterValue: false
|
|
122
121
|
}, {
|
|
123
122
|
value: 'isNotEmpty',
|
|
124
|
-
|
|
123
|
+
getApplyFilterFn: () => {
|
|
125
124
|
return value => {
|
|
126
125
|
return value != null;
|
|
127
126
|
};
|
|
@@ -129,7 +128,7 @@ export const getGridNumericOperators = () => convertLegacyOperators([{
|
|
|
129
128
|
requiresFilterValue: false
|
|
130
129
|
}, {
|
|
131
130
|
value: 'isAnyOf',
|
|
132
|
-
|
|
131
|
+
getApplyFilterFn: filterItem => {
|
|
133
132
|
if (!Array.isArray(filterItem.value) || filterItem.value.length === 0) {
|
|
134
133
|
return null;
|
|
135
134
|
}
|
|
@@ -141,4 +140,4 @@ export const getGridNumericOperators = () => convertLegacyOperators([{
|
|
|
141
140
|
InputComponentProps: {
|
|
142
141
|
type: 'number'
|
|
143
142
|
}
|
|
144
|
-
}]
|
|
143
|
+
}];
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
import { GridFilterInputSingleSelect } from '../components/panel/filterPanel/GridFilterInputSingleSelect';
|
|
2
2
|
import { GridFilterInputMultipleSingleSelect } from '../components/panel/filterPanel/GridFilterInputMultipleSingleSelect';
|
|
3
3
|
import { isObject } from '../utils/utils';
|
|
4
|
-
import { convertLegacyOperators } from './utils';
|
|
5
4
|
const parseObjectValue = value => {
|
|
6
5
|
if (value == null || !isObject(value)) {
|
|
7
6
|
return value;
|
|
8
7
|
}
|
|
9
8
|
return value.value;
|
|
10
9
|
};
|
|
11
|
-
export const getGridSingleSelectOperators = () =>
|
|
10
|
+
export const getGridSingleSelectOperators = () => [{
|
|
12
11
|
value: 'is',
|
|
13
|
-
|
|
12
|
+
getApplyFilterFn: filterItem => {
|
|
14
13
|
if (filterItem.value == null || filterItem.value === '') {
|
|
15
14
|
return null;
|
|
16
15
|
}
|
|
@@ -19,7 +18,7 @@ export const getGridSingleSelectOperators = () => convertLegacyOperators([{
|
|
|
19
18
|
InputComponent: GridFilterInputSingleSelect
|
|
20
19
|
}, {
|
|
21
20
|
value: 'not',
|
|
22
|
-
|
|
21
|
+
getApplyFilterFn: filterItem => {
|
|
23
22
|
if (filterItem.value == null || filterItem.value === '') {
|
|
24
23
|
return null;
|
|
25
24
|
}
|
|
@@ -28,7 +27,7 @@ export const getGridSingleSelectOperators = () => convertLegacyOperators([{
|
|
|
28
27
|
InputComponent: GridFilterInputSingleSelect
|
|
29
28
|
}, {
|
|
30
29
|
value: 'isAnyOf',
|
|
31
|
-
|
|
30
|
+
getApplyFilterFn: filterItem => {
|
|
32
31
|
if (!Array.isArray(filterItem.value) || filterItem.value.length === 0) {
|
|
33
32
|
return null;
|
|
34
33
|
}
|
|
@@ -36,4 +35,4 @@ export const getGridSingleSelectOperators = () => convertLegacyOperators([{
|
|
|
36
35
|
return value => filterItemValues.includes(parseObjectValue(value));
|
|
37
36
|
},
|
|
38
37
|
InputComponent: GridFilterInputMultipleSingleSelect
|
|
39
|
-
}]
|
|
38
|
+
}];
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { renderEditInputCell } from '../components/cell/GridEditInputCell';
|
|
2
2
|
import { gridStringOrNumberComparator } from '../hooks/features/sorting/gridSortingUtils';
|
|
3
3
|
import { getGridStringOperators, getGridStringQuickFilterFn } from './gridStringOperators';
|
|
4
|
-
import { convertQuickFilterV7ToLegacy } from './utils';
|
|
5
4
|
|
|
6
5
|
/**
|
|
7
6
|
* TODO: Move pro and premium properties outside of this Community file
|
|
@@ -24,6 +23,5 @@ export const GRID_STRING_COL_DEF = {
|
|
|
24
23
|
align: 'left',
|
|
25
24
|
filterOperators: getGridStringOperators(),
|
|
26
25
|
renderEditCell: renderEditInputCell,
|
|
27
|
-
getApplyQuickFilterFn:
|
|
28
|
-
getApplyQuickFilterFnV7: getGridStringQuickFilterFn
|
|
26
|
+
getApplyQuickFilterFn: getGridStringQuickFilterFn
|
|
29
27
|
};
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { GridFilterInputValue } from '../components/panel/filterPanel/GridFilterInputValue';
|
|
2
2
|
import { escapeRegExp } from '../utils/utils';
|
|
3
3
|
import { GridFilterInputMultipleValue } from '../components/panel/filterPanel/GridFilterInputMultipleValue';
|
|
4
|
-
import { convertLegacyOperators, tagInternalFilter } from './utils';
|
|
5
4
|
import { removeDiacritics } from '../hooks/features/filter/gridFilterUtils';
|
|
6
|
-
export const getGridStringQuickFilterFn =
|
|
5
|
+
export const getGridStringQuickFilterFn = value => {
|
|
7
6
|
if (!value) {
|
|
8
7
|
return null;
|
|
9
8
|
}
|
|
@@ -15,10 +14,10 @@ export const getGridStringQuickFilterFn = tagInternalFilter(value => {
|
|
|
15
14
|
}
|
|
16
15
|
return columnValue != null ? filterRegex.test(columnValue.toString()) : false;
|
|
17
16
|
};
|
|
18
|
-
}
|
|
19
|
-
export const getGridStringOperators = (disableTrim = false) =>
|
|
17
|
+
};
|
|
18
|
+
export const getGridStringOperators = (disableTrim = false) => [{
|
|
20
19
|
value: 'contains',
|
|
21
|
-
|
|
20
|
+
getApplyFilterFn: filterItem => {
|
|
22
21
|
if (!filterItem.value) {
|
|
23
22
|
return null;
|
|
24
23
|
}
|
|
@@ -31,7 +30,7 @@ export const getGridStringOperators = (disableTrim = false) => convertLegacyOper
|
|
|
31
30
|
InputComponent: GridFilterInputValue
|
|
32
31
|
}, {
|
|
33
32
|
value: 'equals',
|
|
34
|
-
|
|
33
|
+
getApplyFilterFn: filterItem => {
|
|
35
34
|
if (!filterItem.value) {
|
|
36
35
|
return null;
|
|
37
36
|
}
|
|
@@ -47,7 +46,7 @@ export const getGridStringOperators = (disableTrim = false) => convertLegacyOper
|
|
|
47
46
|
InputComponent: GridFilterInputValue
|
|
48
47
|
}, {
|
|
49
48
|
value: 'startsWith',
|
|
50
|
-
|
|
49
|
+
getApplyFilterFn: filterItem => {
|
|
51
50
|
if (!filterItem.value) {
|
|
52
51
|
return null;
|
|
53
52
|
}
|
|
@@ -60,7 +59,7 @@ export const getGridStringOperators = (disableTrim = false) => convertLegacyOper
|
|
|
60
59
|
InputComponent: GridFilterInputValue
|
|
61
60
|
}, {
|
|
62
61
|
value: 'endsWith',
|
|
63
|
-
|
|
62
|
+
getApplyFilterFn: filterItem => {
|
|
64
63
|
if (!filterItem.value) {
|
|
65
64
|
return null;
|
|
66
65
|
}
|
|
@@ -73,7 +72,7 @@ export const getGridStringOperators = (disableTrim = false) => convertLegacyOper
|
|
|
73
72
|
InputComponent: GridFilterInputValue
|
|
74
73
|
}, {
|
|
75
74
|
value: 'isEmpty',
|
|
76
|
-
|
|
75
|
+
getApplyFilterFn: () => {
|
|
77
76
|
return value => {
|
|
78
77
|
return value === '' || value == null;
|
|
79
78
|
};
|
|
@@ -81,7 +80,7 @@ export const getGridStringOperators = (disableTrim = false) => convertLegacyOper
|
|
|
81
80
|
requiresFilterValue: false
|
|
82
81
|
}, {
|
|
83
82
|
value: 'isNotEmpty',
|
|
84
|
-
|
|
83
|
+
getApplyFilterFn: () => {
|
|
85
84
|
return value => {
|
|
86
85
|
return value !== '' && value != null;
|
|
87
86
|
};
|
|
@@ -89,7 +88,7 @@ export const getGridStringOperators = (disableTrim = false) => convertLegacyOper
|
|
|
89
88
|
requiresFilterValue: false
|
|
90
89
|
}, {
|
|
91
90
|
value: 'isAnyOf',
|
|
92
|
-
|
|
91
|
+
getApplyFilterFn: filterItem => {
|
|
93
92
|
if (!Array.isArray(filterItem.value) || filterItem.value.length === 0) {
|
|
94
93
|
return null;
|
|
95
94
|
}
|
|
@@ -103,4 +102,4 @@ export const getGridStringOperators = (disableTrim = false) => convertLegacyOper
|
|
|
103
102
|
}) : false;
|
|
104
103
|
},
|
|
105
104
|
InputComponent: GridFilterInputMultipleValue
|
|
106
|
-
}]
|
|
105
|
+
}];
|
|
@@ -9,21 +9,21 @@ import materialSlots from '../material';
|
|
|
9
9
|
// TODO: camelCase these key. It's a private helper now.
|
|
10
10
|
// Remove then need to call `uncapitalizeObjectKeys`.
|
|
11
11
|
export const DATA_GRID_DEFAULT_SLOTS_COMPONENTS = _extends({}, materialSlots, {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
12
|
+
cell: GridCellV7,
|
|
13
|
+
skeletonCell: GridSkeletonCell,
|
|
14
|
+
columnHeaderFilterIconButton: GridColumnHeaderFilterIconButton,
|
|
15
|
+
columnMenu: GridColumnMenu,
|
|
16
|
+
columnHeaders: GridColumnHeaders,
|
|
17
|
+
footer: GridFooter,
|
|
18
|
+
footerRowCount: GridRowCount,
|
|
19
|
+
toolbar: null,
|
|
20
|
+
preferencesPanel: GridPreferencesPanel,
|
|
21
|
+
loadingOverlay: GridLoadingOverlay,
|
|
22
|
+
noResultsOverlay: GridNoResultsOverlay,
|
|
23
|
+
noRowsOverlay: GridNoRowsOverlay,
|
|
24
|
+
pagination: GridPagination,
|
|
25
|
+
filterPanel: GridFilterPanel,
|
|
26
|
+
columnsPanel: GridColumnsPanel,
|
|
27
|
+
panel: GridPanel,
|
|
28
|
+
row: GridRow
|
|
29
29
|
});
|
|
@@ -7,7 +7,7 @@ import { gridColumnDefinitionsSelector, gridColumnVisibilityModelSelector } from
|
|
|
7
7
|
import { gridClasses } from '../../../constants/gridClasses';
|
|
8
8
|
import { useGridApiMethod } from '../../utils/useGridApiMethod';
|
|
9
9
|
import { gridRowsMetaSelector } from '../rows/gridRowsMetaSelector';
|
|
10
|
-
import { getColumnsToExport } from './utils';
|
|
10
|
+
import { defaultGetRowsToExport, getColumnsToExport } from './utils';
|
|
11
11
|
import { mergeStateWithPaginationModel } from '../pagination/useGridPagination';
|
|
12
12
|
import { useGridRegisterPipeProcessor } from '../../core/pipeProcessing';
|
|
13
13
|
import { GridPrintExportMenuItem } from '../../../components/toolbar/GridToolbarExport';
|
|
@@ -118,12 +118,10 @@ export const useGridPrintExport = (apiRef, props) => {
|
|
|
118
118
|
// the footer is always being placed at the bottom of the page as if all rows are exported
|
|
119
119
|
// so if getRowsToExport is being used to only export a subset of rows then we need to
|
|
120
120
|
// adjust the footer position to be correctly placed at the bottom of the grid
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
gridFooterElement.style.top = `${computedTotalHeight - gridFooterElementHeight}px`;
|
|
126
|
-
}
|
|
121
|
+
const gridFooterElement = gridClone.querySelector(`.${gridClasses.footerContainer}`);
|
|
122
|
+
gridFooterElement.style.position = 'absolute';
|
|
123
|
+
gridFooterElement.style.width = '100%';
|
|
124
|
+
gridFooterElement.style.top = `${computedTotalHeight - gridFooterElementHeight}px`;
|
|
127
125
|
|
|
128
126
|
// printDoc.body.appendChild(gridClone); should be enough but a clone isolation bug in Safari
|
|
129
127
|
// prevents us to do it
|
|
@@ -226,9 +224,7 @@ export const useGridPrintExport = (apiRef, props) => {
|
|
|
226
224
|
apiRef.current.forceUpdate();
|
|
227
225
|
}
|
|
228
226
|
await updateGridColumnsForPrint(options?.fields, options?.allColumns, options?.includeCheckboxes);
|
|
229
|
-
|
|
230
|
-
updateGridRowsForPrint(options.getRowsToExport);
|
|
231
|
-
}
|
|
227
|
+
updateGridRowsForPrint(options?.getRowsToExport ?? defaultGetRowsToExport);
|
|
232
228
|
apiRef.current.unstable_setVirtualization(false);
|
|
233
229
|
await raf(); // wait for the state changes to take action
|
|
234
230
|
const printWindow = buildPrintWindow(options?.fileName);
|