@mui/x-data-grid 8.0.0-alpha.3 → 8.0.0-alpha.5
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 +377 -0
- package/DataGrid/DataGrid.js +7 -11
- package/DataGrid/useDataGridProps.js +3 -3
- package/README.md +1 -1
- package/components/GridRow.js +13 -2
- package/components/cell/GridActionsCell.js +8 -1
- package/components/cell/GridActionsCellItem.js +4 -6
- package/components/cell/GridCell.js +1 -1
- package/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +6 -11
- package/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +6 -11
- package/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +6 -11
- package/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +13 -22
- package/components/panel/GridColumnsPanel.js +1 -2
- package/components/panel/GridPanelContent.js +7 -3
- package/components/panel/GridPanelFooter.d.ts +1 -1
- package/components/panel/GridPanelFooter.js +4 -3
- package/components/panel/filterPanel/GridFilterForm.js +15 -15
- package/components/toolbar/GridToolbarDensitySelector.js +3 -5
- package/components/toolbar/GridToolbarFilterButton.d.ts +1 -1
- package/components/toolbar/GridToolbarFilterButton.js +3 -0
- package/components/toolbar/GridToolbarQuickFilter.js +27 -23
- package/components/virtualization/GridMainContainer.js +1 -1
- package/constants/dataGridPropsDefaultValues.js +1 -1
- package/hooks/core/useGridStateInitialization.js +3 -3
- package/hooks/features/columnGrouping/gridColumnGroupsSelector.d.ts +4 -4
- package/hooks/features/columnHeaders/useGridColumnHeaders.js +10 -3
- package/hooks/features/columnResize/columnResizeSelector.d.ts +1 -1
- package/hooks/features/columnResize/gridColumnResizeApi.d.ts +6 -0
- package/hooks/features/columnResize/gridColumnResizeApi.js +2 -1
- package/hooks/features/columnResize/useGridColumnResize.d.ts +1 -1
- package/hooks/features/columnResize/useGridColumnResize.js +9 -4
- package/hooks/features/columns/gridColumnsSelector.d.ts +12 -12
- package/hooks/features/columns/gridColumnsUtils.d.ts +1 -1
- package/hooks/features/columns/gridColumnsUtils.js +2 -1
- package/hooks/features/density/densitySelector.d.ts +1 -1
- package/hooks/features/filter/gridFilterSelector.d.ts +17 -17
- package/hooks/features/filter/useGridFilter.js +1 -1
- package/hooks/features/focus/gridFocusStateSelector.d.ts +8 -8
- package/hooks/features/headerFiltering/gridHeaderFilteringSelectors.d.ts +3 -3
- package/hooks/features/overlays/useGridOverlays.js +3 -1
- package/hooks/features/pagination/gridPaginationSelector.d.ts +15 -9
- package/hooks/features/rowSelection/gridRowSelectionSelector.d.ts +3 -3
- package/hooks/features/rowSelection/useGridRowSelection.js +5 -4
- package/hooks/features/rowSelection/utils.d.ts +1 -1
- package/hooks/features/rows/gridRowSpanningSelectors.d.ts +3 -3
- package/hooks/features/rows/gridRowsSelector.d.ts +23 -12
- package/hooks/features/rows/useGridRowSpanning.d.ts +1 -1
- package/hooks/features/rows/useGridRowSpanning.js +16 -8
- package/hooks/features/rows/useGridRows.js +5 -5
- package/hooks/features/sorting/gridSortingSelector.d.ts +10 -5
- package/hooks/features/sorting/gridSortingSelector.js +11 -0
- package/hooks/features/sorting/index.d.ts +2 -1
- package/hooks/features/sorting/index.js +1 -1
- package/hooks/features/sorting/useGridSorting.js +1 -1
- package/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +5 -5
- package/hooks/features/virtualization/useGridVirtualScroller.js +11 -8
- package/hooks/utils/useGridSelector.d.ts +4 -6
- package/hooks/utils/useGridSelector.js +6 -44
- package/index.js +1 -1
- package/internals/index.d.ts +2 -2
- package/internals/index.js +2 -2
- package/internals/utils/index.d.ts +0 -1
- package/internals/utils/index.js +0 -1
- package/locales/koKR.js +45 -49
- package/locales/roRO.js +18 -20
- package/material/index.js +30 -4
- package/models/api/gridStateApi.d.ts +1 -1
- package/models/controlStateItem.d.ts +2 -2
- package/models/gridBaseSlots.d.ts +21 -0
- package/models/gridBaseSlots.js +1 -0
- package/models/gridSlotsComponentsProps.d.ts +25 -5
- package/models/props/DataGridProps.d.ts +1 -6
- package/modern/DataGrid/DataGrid.js +7 -11
- package/modern/DataGrid/useDataGridProps.js +3 -3
- package/modern/components/GridRow.js +13 -2
- package/modern/components/cell/GridActionsCell.js +8 -1
- package/modern/components/cell/GridActionsCellItem.js +4 -6
- package/modern/components/cell/GridCell.js +1 -1
- package/modern/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +6 -11
- package/modern/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +6 -11
- package/modern/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +6 -11
- package/modern/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +13 -22
- package/modern/components/panel/GridColumnsPanel.js +1 -2
- package/modern/components/panel/GridPanelContent.js +7 -3
- package/modern/components/panel/GridPanelFooter.js +4 -3
- package/modern/components/panel/filterPanel/GridFilterForm.js +15 -15
- package/modern/components/toolbar/GridToolbarDensitySelector.js +3 -5
- package/modern/components/toolbar/GridToolbarFilterButton.js +3 -0
- package/modern/components/toolbar/GridToolbarQuickFilter.js +27 -23
- package/modern/components/virtualization/GridMainContainer.js +1 -1
- package/modern/constants/dataGridPropsDefaultValues.js +1 -1
- package/modern/hooks/core/useGridStateInitialization.js +3 -3
- package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +10 -3
- package/modern/hooks/features/columnResize/gridColumnResizeApi.js +2 -1
- package/modern/hooks/features/columnResize/useGridColumnResize.js +9 -4
- package/modern/hooks/features/columns/gridColumnsUtils.js +2 -1
- package/modern/hooks/features/filter/useGridFilter.js +1 -1
- package/modern/hooks/features/overlays/useGridOverlays.js +3 -1
- package/modern/hooks/features/rowSelection/useGridRowSelection.js +5 -4
- package/modern/hooks/features/rows/useGridRowSpanning.js +16 -8
- package/modern/hooks/features/rows/useGridRows.js +5 -5
- package/modern/hooks/features/sorting/gridSortingSelector.js +11 -0
- package/modern/hooks/features/sorting/index.js +1 -1
- package/modern/hooks/features/sorting/useGridSorting.js +1 -1
- package/modern/hooks/features/virtualization/useGridVirtualScroller.js +11 -8
- package/modern/hooks/utils/useGridSelector.js +6 -44
- package/modern/index.js +1 -1
- package/modern/internals/index.js +2 -2
- package/modern/internals/utils/index.js +0 -1
- package/modern/locales/koKR.js +45 -49
- package/modern/locales/roRO.js +18 -20
- package/modern/material/index.js +30 -4
- package/modern/models/gridBaseSlots.js +1 -0
- package/modern/utils/createSelector.js +1 -120
- package/node/DataGrid/DataGrid.js +7 -11
- package/node/DataGrid/useDataGridProps.js +2 -2
- package/node/components/GridRow.js +13 -2
- package/node/components/cell/GridActionsCell.js +8 -1
- package/node/components/cell/GridActionsCellItem.js +3 -5
- package/node/components/cell/GridCell.js +1 -1
- package/node/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +5 -10
- package/node/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +5 -10
- package/node/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +5 -10
- package/node/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +13 -22
- package/node/components/panel/GridColumnsPanel.js +1 -2
- package/node/components/panel/GridPanelContent.js +7 -3
- package/node/components/panel/GridPanelFooter.js +5 -4
- package/node/components/panel/filterPanel/GridFilterForm.js +15 -15
- package/node/components/toolbar/GridToolbarDensitySelector.js +3 -5
- package/node/components/toolbar/GridToolbarFilterButton.js +3 -0
- package/node/components/toolbar/GridToolbarQuickFilter.js +27 -23
- package/node/components/virtualization/GridMainContainer.js +1 -1
- package/node/constants/dataGridPropsDefaultValues.js +1 -1
- package/node/hooks/core/useGridStateInitialization.js +3 -3
- package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +10 -3
- package/node/hooks/features/columnResize/gridColumnResizeApi.js +2 -1
- package/node/hooks/features/columnResize/useGridColumnResize.js +9 -4
- package/node/hooks/features/columns/gridColumnsUtils.js +2 -1
- package/node/hooks/features/filter/useGridFilter.js +1 -1
- package/node/hooks/features/overlays/useGridOverlays.js +3 -1
- package/node/hooks/features/rowSelection/useGridRowSelection.js +5 -4
- package/node/hooks/features/rows/useGridRowSpanning.js +16 -8
- package/node/hooks/features/rows/useGridRows.js +5 -5
- package/node/hooks/features/sorting/gridSortingSelector.js +12 -1
- package/node/hooks/features/sorting/index.js +24 -16
- package/node/hooks/features/sorting/useGridSorting.js +1 -1
- package/node/hooks/features/virtualization/useGridVirtualScroller.js +11 -8
- package/node/hooks/utils/useGridSelector.js +8 -47
- package/node/index.js +1 -1
- package/node/internals/index.js +8 -22
- package/node/internals/utils/index.js +0 -11
- package/node/locales/koKR.js +45 -49
- package/node/locales/roRO.js +18 -20
- package/node/material/index.js +31 -4
- package/node/models/gridBaseSlots.js +5 -0
- package/node/utils/createSelector.js +4 -125
- package/package.json +2 -2
- package/utils/createSelector.d.ts +4 -16
- package/utils/createSelector.js +1 -120
- package/internals/utils/useProps.d.ts +0 -1
- package/internals/utils/useProps.js +0 -24
- package/joy/icons.d.ts +0 -32
- package/joy/icons.js +0 -431
- package/joy/index.d.ts +0 -2
- package/joy/index.js +0 -2
- package/joy/joySlots.d.ts +0 -3
- package/joy/joySlots.js +0 -389
- package/joy/package.json +0 -6
- package/modern/internals/utils/useProps.js +0 -24
- package/modern/joy/icons.js +0 -431
- package/modern/joy/index.js +0 -2
- package/modern/joy/joySlots.js +0 -389
- package/node/internals/utils/useProps.js +0 -30
- package/node/joy/icons.js +0 -439
- package/node/joy/index.js +0 -13
- package/node/joy/joySlots.js +0 -397
|
@@ -11,7 +11,7 @@ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runt
|
|
|
11
11
|
var React = _interopRequireWildcard(require("react"));
|
|
12
12
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
13
|
var _clsx = _interopRequireDefault(require("clsx"));
|
|
14
|
-
var
|
|
14
|
+
var _styles = require("@mui/material/styles");
|
|
15
15
|
var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
|
|
16
16
|
var _gridClasses = require("../../constants/gridClasses");
|
|
17
17
|
var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
|
|
@@ -26,16 +26,17 @@ const useUtilityClasses = ownerState => {
|
|
|
26
26
|
};
|
|
27
27
|
return (0, _composeClasses.default)(slots, _gridClasses.getDataGridUtilityClass, classes);
|
|
28
28
|
};
|
|
29
|
-
const GridPanelFooterRoot = (0,
|
|
29
|
+
const GridPanelFooterRoot = (0, _styles.styled)('div', {
|
|
30
30
|
name: 'MuiDataGrid',
|
|
31
31
|
slot: 'PanelFooter',
|
|
32
32
|
overridesResolver: (props, styles) => styles.panelFooter
|
|
33
33
|
})(({
|
|
34
34
|
theme
|
|
35
35
|
}) => ({
|
|
36
|
-
padding: theme.spacing(
|
|
36
|
+
padding: theme.spacing(1),
|
|
37
37
|
display: 'flex',
|
|
38
|
-
justifyContent: 'space-between'
|
|
38
|
+
justifyContent: 'space-between',
|
|
39
|
+
borderTop: `1px solid ${theme.palette.divider}`
|
|
39
40
|
}));
|
|
40
41
|
function GridPanelFooter(props) {
|
|
41
42
|
const {
|
|
@@ -47,27 +47,22 @@ const GridFilterFormRoot = (0, _styles.styled)('div', {
|
|
|
47
47
|
theme
|
|
48
48
|
}) => ({
|
|
49
49
|
display: 'flex',
|
|
50
|
-
|
|
50
|
+
gap: theme.spacing(1.5)
|
|
51
51
|
}));
|
|
52
52
|
const FilterFormDeleteIcon = (0, _styles.styled)('div', {
|
|
53
53
|
name: 'MuiDataGrid',
|
|
54
54
|
slot: 'FilterFormDeleteIcon',
|
|
55
55
|
overridesResolver: (_, styles) => styles.filterFormDeleteIcon
|
|
56
|
-
})(
|
|
57
|
-
theme
|
|
58
|
-
}) => ({
|
|
56
|
+
})({
|
|
59
57
|
flexShrink: 0,
|
|
60
|
-
justifyContent: '
|
|
61
|
-
|
|
62
|
-
marginBottom: theme.spacing(0.2)
|
|
63
|
-
}));
|
|
58
|
+
justifyContent: 'center'
|
|
59
|
+
});
|
|
64
60
|
const FilterFormLogicOperatorInput = (0, _styles.styled)('div', {
|
|
65
61
|
name: 'MuiDataGrid',
|
|
66
62
|
slot: 'FilterFormLogicOperatorInput',
|
|
67
63
|
overridesResolver: (_, styles) => styles.filterFormLogicOperatorInput
|
|
68
64
|
})({
|
|
69
|
-
minWidth:
|
|
70
|
-
marginRight: 5,
|
|
65
|
+
minWidth: 75,
|
|
71
66
|
justifyContent: 'end'
|
|
72
67
|
});
|
|
73
68
|
const FilterFormColumnInput = (0, _styles.styled)('div', {
|
|
@@ -269,7 +264,6 @@ const GridFilterForm = exports.GridFilterForm = /*#__PURE__*/React.forwardRef(fu
|
|
|
269
264
|
ownerState: rootProps
|
|
270
265
|
}, other, {
|
|
271
266
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(FilterFormDeleteIcon, (0, _extends2.default)({
|
|
272
|
-
variant: "standard",
|
|
273
267
|
as: rootProps.slots.baseFormControl
|
|
274
268
|
}, baseFormControlProps, deleteIconProps, {
|
|
275
269
|
className: (0, _clsx.default)(classes.deleteIcon, baseFormControlProps.className, deleteIconProps.className),
|
|
@@ -286,7 +280,8 @@ const GridFilterForm = exports.GridFilterForm = /*#__PURE__*/React.forwardRef(fu
|
|
|
286
280
|
})
|
|
287
281
|
}))
|
|
288
282
|
})), /*#__PURE__*/(0, _jsxRuntime.jsx)(FilterFormLogicOperatorInput, (0, _extends2.default)({
|
|
289
|
-
variant: "
|
|
283
|
+
variant: "outlined",
|
|
284
|
+
size: "small",
|
|
290
285
|
as: rootProps.slots.baseFormControl
|
|
291
286
|
}, baseFormControlProps, logicOperatorInputProps, {
|
|
292
287
|
sx: [hasLogicOperatorColumn ? {
|
|
@@ -316,7 +311,8 @@ const GridFilterForm = exports.GridFilterForm = /*#__PURE__*/React.forwardRef(fu
|
|
|
316
311
|
}), apiRef.current.getLocaleText(getLogicOperatorLocaleKey(logicOperator))))
|
|
317
312
|
}))
|
|
318
313
|
})), /*#__PURE__*/(0, _jsxRuntime.jsxs)(FilterFormColumnInput, (0, _extends2.default)({
|
|
319
|
-
variant: "
|
|
314
|
+
variant: "outlined",
|
|
315
|
+
size: "small",
|
|
320
316
|
as: rootProps.slots.baseFormControl
|
|
321
317
|
}, baseFormControlProps, columnInputProps, {
|
|
322
318
|
className: (0, _clsx.default)(classes.columnInput, baseFormControlProps.className, columnInputProps.className),
|
|
@@ -341,7 +337,8 @@ const GridFilterForm = exports.GridFilterForm = /*#__PURE__*/React.forwardRef(fu
|
|
|
341
337
|
}), getColumnLabel(col)))
|
|
342
338
|
}))]
|
|
343
339
|
})), /*#__PURE__*/(0, _jsxRuntime.jsxs)(FilterFormOperatorInput, (0, _extends2.default)({
|
|
344
|
-
variant: "
|
|
340
|
+
variant: "outlined",
|
|
341
|
+
size: "small",
|
|
345
342
|
as: rootProps.slots.baseFormControl
|
|
346
343
|
}, baseFormControlProps, operatorInputProps, {
|
|
347
344
|
className: (0, _clsx.default)(classes.operatorInput, baseFormControlProps.className, operatorInputProps.className),
|
|
@@ -367,12 +364,15 @@ const GridFilterForm = exports.GridFilterForm = /*#__PURE__*/React.forwardRef(fu
|
|
|
367
364
|
}), operator.label || apiRef.current.getLocaleText(`filterOperator${(0, _utils.unstable_capitalize)(operator.value)}`)))
|
|
368
365
|
}))]
|
|
369
366
|
})), /*#__PURE__*/(0, _jsxRuntime.jsx)(FilterFormValueInput, (0, _extends2.default)({
|
|
370
|
-
variant: "
|
|
367
|
+
variant: "outlined",
|
|
368
|
+
size: "small",
|
|
371
369
|
as: rootProps.slots.baseFormControl
|
|
372
370
|
}, baseFormControlProps, valueInputPropsOther, {
|
|
373
371
|
className: (0, _clsx.default)(classes.valueInput, baseFormControlProps.className, valueInputPropsOther.className),
|
|
374
372
|
ownerState: rootProps,
|
|
375
373
|
children: currentOperator?.InputComponent ? /*#__PURE__*/(0, _jsxRuntime.jsx)(currentOperator.InputComponent, (0, _extends2.default)({
|
|
374
|
+
variant: "outlined",
|
|
375
|
+
size: "small",
|
|
376
376
|
apiRef: apiRef,
|
|
377
377
|
item: item,
|
|
378
378
|
applyValue: applyFilterChanges,
|
|
@@ -10,7 +10,6 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
10
10
|
var React = _interopRequireWildcard(require("react"));
|
|
11
11
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
12
12
|
var _utils = require("@mui/utils");
|
|
13
|
-
var _ListItemIcon = _interopRequireDefault(require("@mui/material/ListItemIcon"));
|
|
14
13
|
var _densitySelector = require("../../hooks/features/density/densitySelector");
|
|
15
14
|
var _keyboardUtils = require("../../utils/keyboardUtils");
|
|
16
15
|
var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
|
|
@@ -80,12 +79,11 @@ const GridToolbarDensitySelector = exports.GridToolbarDensitySelector = /*#__PUR
|
|
|
80
79
|
if (rootProps.disableDensitySelector) {
|
|
81
80
|
return null;
|
|
82
81
|
}
|
|
83
|
-
const densityElements = densityOptions.map((option, index) => /*#__PURE__*/(0, _jsxRuntime.
|
|
82
|
+
const densityElements = densityOptions.map((option, index) => /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseMenuItem, {
|
|
84
83
|
onClick: () => handleDensityUpdate(option.value),
|
|
85
84
|
selected: option.value === density,
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
}), option.label]
|
|
85
|
+
iconStart: option.icon,
|
|
86
|
+
children: option.label
|
|
89
87
|
}, index));
|
|
90
88
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
|
|
91
89
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseTooltip, (0, _extends2.default)({
|
|
@@ -39,6 +39,9 @@ const GridToolbarFilterListRoot = (0, _styles.styled)('ul', {
|
|
|
39
39
|
margin: theme.spacing(1, 1, 0.5),
|
|
40
40
|
padding: theme.spacing(0, 1)
|
|
41
41
|
}));
|
|
42
|
+
|
|
43
|
+
// FIXME(v8:romgrk): override slotProps
|
|
44
|
+
|
|
42
45
|
const GridToolbarFilterButton = exports.GridToolbarFilterButton = /*#__PURE__*/React.forwardRef(function GridToolbarFilterButton(props, ref) {
|
|
43
46
|
const {
|
|
44
47
|
slotProps = {}
|
|
@@ -15,6 +15,7 @@ var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
|
|
|
15
15
|
var _styles = require("@mui/material/styles");
|
|
16
16
|
var _utils = require("@mui/utils");
|
|
17
17
|
var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
|
|
18
|
+
var _OutlinedInput = require("@mui/material/OutlinedInput");
|
|
18
19
|
var _constants = require("../../constants");
|
|
19
20
|
var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
|
|
20
21
|
var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
|
|
@@ -39,13 +40,8 @@ const GridToolbarQuickFilterRoot = (0, _styles.styled)(_TextField.default, {
|
|
|
39
40
|
})(({
|
|
40
41
|
theme
|
|
41
42
|
}) => ({
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
'& input': {
|
|
45
|
-
marginLeft: theme.spacing(0.5)
|
|
46
|
-
},
|
|
47
|
-
'& .MuiInput-underline:before': {
|
|
48
|
-
borderBottom: `1px solid ${(theme.vars || theme).palette.divider}`
|
|
43
|
+
[`.${_OutlinedInput.outlinedInputClasses.root}`]: {
|
|
44
|
+
fontSize: theme.typography.body2.fontSize
|
|
49
45
|
},
|
|
50
46
|
[`& input[type="search"]::-webkit-search-decoration,
|
|
51
47
|
& input[type="search"]::-webkit-search-cancel-button,
|
|
@@ -99,7 +95,8 @@ function GridToolbarQuickFilter(props) {
|
|
|
99
95
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(GridToolbarQuickFilterRoot, (0, _extends2.default)({
|
|
100
96
|
as: rootProps.slots.baseTextField,
|
|
101
97
|
ownerState: rootProps,
|
|
102
|
-
variant: "
|
|
98
|
+
variant: "outlined",
|
|
99
|
+
size: "small",
|
|
103
100
|
value: searchValue,
|
|
104
101
|
onChange: handleSearchValueChange,
|
|
105
102
|
className: (0, _clsx.default)(classes.root, className),
|
|
@@ -108,23 +105,30 @@ function GridToolbarQuickFilter(props) {
|
|
|
108
105
|
type: "search"
|
|
109
106
|
}, other, {
|
|
110
107
|
InputProps: (0, _extends2.default)({
|
|
111
|
-
startAdornment: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
endAdornment: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseIconButton, (0, _extends2.default)({
|
|
115
|
-
"aria-label": apiRef.current.getLocaleText('toolbarQuickFilterDeleteIconLabel'),
|
|
116
|
-
size: "small",
|
|
117
|
-
sx: [searchValue ? {
|
|
118
|
-
visibility: 'visible'
|
|
119
|
-
} : {
|
|
120
|
-
visibility: 'hidden'
|
|
121
|
-
}],
|
|
122
|
-
onClick: handleSearchReset
|
|
123
|
-
}, rootProps.slotProps?.baseIconButton, {
|
|
124
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.quickFilterClearIcon, {
|
|
108
|
+
startAdornment: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseInputAdornment, {
|
|
109
|
+
position: "start",
|
|
110
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.quickFilterIcon, {
|
|
125
111
|
fontSize: "small"
|
|
126
112
|
})
|
|
127
|
-
})
|
|
113
|
+
}),
|
|
114
|
+
endAdornment: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseInputAdornment, {
|
|
115
|
+
position: "end",
|
|
116
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseIconButton, (0, _extends2.default)({
|
|
117
|
+
"aria-label": apiRef.current.getLocaleText('toolbarQuickFilterDeleteIconLabel'),
|
|
118
|
+
size: "small",
|
|
119
|
+
edge: "end",
|
|
120
|
+
sx: [searchValue ? {
|
|
121
|
+
visibility: 'visible'
|
|
122
|
+
} : {
|
|
123
|
+
visibility: 'hidden'
|
|
124
|
+
}],
|
|
125
|
+
onClick: handleSearchReset
|
|
126
|
+
}, rootProps.slotProps?.baseIconButton, {
|
|
127
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.quickFilterClearIcon, {
|
|
128
|
+
fontSize: "small"
|
|
129
|
+
})
|
|
130
|
+
}))
|
|
131
|
+
})
|
|
128
132
|
}, other.InputProps)
|
|
129
133
|
}, rootProps.slotProps?.baseTextField));
|
|
130
134
|
}
|
|
@@ -38,7 +38,7 @@ const GridMainContainer = exports.GridMainContainer = /*#__PURE__*/React.forward
|
|
|
38
38
|
ownerState: rootProps,
|
|
39
39
|
className: props.className,
|
|
40
40
|
tabIndex: -1
|
|
41
|
-
}, ariaAttributes, {
|
|
41
|
+
}, ariaAttributes, rootProps.slotProps?.main, {
|
|
42
42
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(GridPanelAnchor, {
|
|
43
43
|
role: "presentation",
|
|
44
44
|
"data-id": "gridPanelAnchor"
|
|
@@ -54,11 +54,11 @@ const DATA_GRID_PROPS_DEFAULT_VALUES = exports.DATA_GRID_PROPS_DEFAULT_VALUES =
|
|
|
54
54
|
rows: [],
|
|
55
55
|
rowSelection: true,
|
|
56
56
|
rowSpacingType: 'margin',
|
|
57
|
+
rowSpanning: false,
|
|
57
58
|
showCellVerticalBorder: false,
|
|
58
59
|
showColumnVerticalBorder: false,
|
|
59
60
|
sortingMode: 'client',
|
|
60
61
|
sortingOrder: ['asc', 'desc', null],
|
|
61
62
|
throttleRowsMs: 0,
|
|
62
|
-
unstable_rowSpanning: false,
|
|
63
63
|
virtualizeColumnsWithAutoRowHeight: false
|
|
64
64
|
};
|
|
@@ -32,8 +32,8 @@ const useGridStateInitialization = apiRef => {
|
|
|
32
32
|
const updatedControlStateIds = [];
|
|
33
33
|
Object.keys(controlStateMapRef.current).forEach(stateId => {
|
|
34
34
|
const controlState = controlStateMapRef.current[stateId];
|
|
35
|
-
const oldSubState = controlState.stateSelector(apiRef.current.state, apiRef.current.instanceId);
|
|
36
|
-
const newSubState = controlState.stateSelector(newState, apiRef.current.instanceId);
|
|
35
|
+
const oldSubState = controlState.stateSelector(apiRef.current.state, undefined, apiRef.current.instanceId);
|
|
36
|
+
const newSubState = controlState.stateSelector(newState, undefined, apiRef.current.instanceId);
|
|
37
37
|
if (newSubState === oldSubState) {
|
|
38
38
|
return;
|
|
39
39
|
}
|
|
@@ -65,7 +65,7 @@ const useGridStateInitialization = apiRef => {
|
|
|
65
65
|
hasPropChanged
|
|
66
66
|
} = updatedControlStateIds[0];
|
|
67
67
|
const controlState = controlStateMapRef.current[stateId];
|
|
68
|
-
const model = controlState.stateSelector(newState, apiRef.current.instanceId);
|
|
68
|
+
const model = controlState.stateSelector(newState, undefined, apiRef.current.instanceId);
|
|
69
69
|
if (controlState.propOnChange && hasPropChanged) {
|
|
70
70
|
controlState.propOnChange(model, {
|
|
71
71
|
reason,
|
|
@@ -55,7 +55,7 @@ const useGridColumnHeaders = props => {
|
|
|
55
55
|
const isRtl = (0, _RtlProvider.useRtl)();
|
|
56
56
|
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
57
57
|
const dimensions = (0, _utils.useGridSelector)(apiRef, _dimensions.gridDimensionsSelector);
|
|
58
|
-
const
|
|
58
|
+
const hasColumnVirtualization = (0, _utils.useGridSelector)(apiRef, _virtualization.gridVirtualizationColumnEnabledSelector);
|
|
59
59
|
const columnGroupsModel = (0, _utils.useGridSelector)(apiRef, _gridColumnGroupsSelector.gridColumnGroupsUnwrappedModelSelector);
|
|
60
60
|
const columnPositions = (0, _utils.useGridSelector)(apiRef, _columns.gridColumnPositionsSelector);
|
|
61
61
|
const renderContext = (0, _utils.useGridSelector)(apiRef, _virtualization.gridRenderContextColumnsSelector);
|
|
@@ -95,8 +95,15 @@ const useGridColumnHeaders = props => {
|
|
|
95
95
|
renderContext: currentContext = renderContext,
|
|
96
96
|
maxLastColumn = visibleColumns.length
|
|
97
97
|
} = params || {};
|
|
98
|
-
|
|
99
|
-
|
|
98
|
+
let firstColumnToRender;
|
|
99
|
+
let lastColumnToRender;
|
|
100
|
+
if (!rootProps.disableVirtualization && !hasColumnVirtualization) {
|
|
101
|
+
firstColumnToRender = 0;
|
|
102
|
+
lastColumnToRender = maxLastColumn;
|
|
103
|
+
} else {
|
|
104
|
+
firstColumnToRender = currentContext.firstColumnIndex;
|
|
105
|
+
lastColumnToRender = currentContext.lastColumnIndex;
|
|
106
|
+
}
|
|
100
107
|
const renderedColumns = visibleColumns.slice(firstColumnToRender, lastColumnToRender);
|
|
101
108
|
return {
|
|
102
109
|
renderedColumns,
|
|
@@ -469,6 +469,7 @@ const useGridColumnResize = (apiRef, props) => {
|
|
|
469
469
|
return;
|
|
470
470
|
}
|
|
471
471
|
apiRef.current.autosizeColumns((0, _extends2.default)({}, props.autosizeOptions, {
|
|
472
|
+
disableColumnVirtualization: false,
|
|
472
473
|
columns: [column.field]
|
|
473
474
|
}));
|
|
474
475
|
});
|
|
@@ -495,8 +496,10 @@ const useGridColumnResize = (apiRef, props) => {
|
|
|
495
496
|
options.columns = options.columns.filter(c => state.columnVisibilityModel[c] !== false);
|
|
496
497
|
const columns = options.columns.map(c => apiRef.current.state.columns.lookup[c]);
|
|
497
498
|
try {
|
|
498
|
-
|
|
499
|
-
|
|
499
|
+
if (!props.disableVirtualization && options.disableColumnVirtualization) {
|
|
500
|
+
apiRef.current.unstable_setColumnVirtualization(false);
|
|
501
|
+
await columnVirtualizationDisabled();
|
|
502
|
+
}
|
|
500
503
|
const widthByField = extractColumnWidths(apiRef, options, columns);
|
|
501
504
|
const newColumns = columns.map(column => (0, _extends2.default)({}, column, {
|
|
502
505
|
width: widthByField[column.field],
|
|
@@ -528,10 +531,12 @@ const useGridColumnResize = (apiRef, props) => {
|
|
|
528
531
|
}
|
|
529
532
|
});
|
|
530
533
|
} finally {
|
|
531
|
-
|
|
534
|
+
if (!props.disableVirtualization) {
|
|
535
|
+
apiRef.current.unstable_setColumnVirtualization(true);
|
|
536
|
+
}
|
|
532
537
|
isAutosizingRef.current = false;
|
|
533
538
|
}
|
|
534
|
-
}, [apiRef, columnVirtualizationDisabled]);
|
|
539
|
+
}, [apiRef, columnVirtualizationDisabled, props.disableVirtualization]);
|
|
535
540
|
|
|
536
541
|
/**
|
|
537
542
|
* EFFECTS
|
|
@@ -334,6 +334,7 @@ function getTotalHeaderHeight(apiRef, props) {
|
|
|
334
334
|
const maxDepth = (0, _gridColumnGroupsSelector.gridColumnGroupsHeaderMaxDepthSelector)(apiRef);
|
|
335
335
|
const isHeaderFilteringEnabled = (0, _gridHeaderFilteringSelectors.gridHeaderFilteringEnabledSelector)(apiRef);
|
|
336
336
|
const columnHeadersHeight = Math.floor(props.columnHeaderHeight * densityFactor);
|
|
337
|
+
const columnGroupHeadersHeight = Math.floor((props.columnGroupHeaderHeight ?? props.columnHeaderHeight) * densityFactor);
|
|
337
338
|
const filterHeadersHeight = isHeaderFilteringEnabled ? Math.floor((props.headerFilterHeight ?? props.columnHeaderHeight) * densityFactor) : 0;
|
|
338
|
-
return columnHeadersHeight
|
|
339
|
+
return columnHeadersHeight + columnGroupHeadersHeight * maxDepth + filterHeadersHeight;
|
|
339
340
|
}
|
|
@@ -68,7 +68,7 @@ const useGridFilter = (apiRef, props) => {
|
|
|
68
68
|
});
|
|
69
69
|
const updateFilteredRows = React.useCallback(() => {
|
|
70
70
|
apiRef.current.setState(state => {
|
|
71
|
-
const filterModel = (0, _gridFilterSelector.gridFilterModelSelector)(state, apiRef.current.instanceId);
|
|
71
|
+
const filterModel = (0, _gridFilterSelector.gridFilterModelSelector)(state, undefined, apiRef.current.instanceId);
|
|
72
72
|
const filterState = apiRef.current.getFilterState(filterModel);
|
|
73
73
|
const newState = (0, _extends2.default)({}, state, {
|
|
74
74
|
filter: (0, _extends2.default)({}, state.filter, filterState)
|
|
@@ -13,6 +13,7 @@ var _useGridApiContext = require("../../utils/useGridApiContext");
|
|
|
13
13
|
var _useGridRootProps = require("../../utils/useGridRootProps");
|
|
14
14
|
var _filter = require("../filter");
|
|
15
15
|
var _rows = require("../rows");
|
|
16
|
+
var _gridRowsSelector = require("../rows/gridRowsSelector");
|
|
16
17
|
var _GridOverlays = require("../../../components/base/GridOverlays");
|
|
17
18
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
18
19
|
/**
|
|
@@ -24,7 +25,8 @@ const useGridOverlays = () => {
|
|
|
24
25
|
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
25
26
|
const totalRowCount = (0, _utils.useGridSelector)(apiRef, _rows.gridRowCountSelector);
|
|
26
27
|
const visibleRowCount = (0, _utils.useGridSelector)(apiRef, _filter.gridExpandedRowCountSelector);
|
|
27
|
-
const
|
|
28
|
+
const pinnedRowsCount = (0, _utils.useGridSelector)(apiRef, _gridRowsSelector.gridPinnedRowsCountSelector);
|
|
29
|
+
const noRows = totalRowCount === 0 && pinnedRowsCount === 0;
|
|
28
30
|
const loading = (0, _utils.useGridSelector)(apiRef, _rows.gridRowsLoadingSelector);
|
|
29
31
|
const showNoRowsOverlay = !loading && noRows;
|
|
30
32
|
const showNoResultsOverlay = !loading && totalRowCount > 0 && visibleRowCount === 0;
|
|
@@ -322,11 +322,12 @@ const useGridRowSelection = (apiRef, props) => {
|
|
|
322
322
|
|
|
323
323
|
const isMultipleSelectionDisabled = !checkboxSelection && !hasCtrlKey && !(0, _keyboardUtils.isKeyboardEvent)(event);
|
|
324
324
|
const resetSelection = !canHaveMultipleSelection || isMultipleSelectionDisabled;
|
|
325
|
-
const
|
|
326
|
-
if (
|
|
327
|
-
apiRef.current.selectRow(id,
|
|
325
|
+
const selectedRowsCount = apiRef.current.getSelectedRows().size;
|
|
326
|
+
if (canHaveMultipleSelection && selectedRowsCount > 1 && !hasCtrlKey) {
|
|
327
|
+
apiRef.current.selectRow(id, true, resetSelection);
|
|
328
328
|
} else {
|
|
329
|
-
apiRef.current.
|
|
329
|
+
const isSelected = apiRef.current.isRowSelected(id);
|
|
330
|
+
apiRef.current.selectRow(id, !isSelected, resetSelection);
|
|
330
331
|
}
|
|
331
332
|
}, [apiRef, canHaveMultipleSelection, checkboxSelection]);
|
|
332
333
|
const handleRowClick = React.useCallback((params, event) => {
|
|
@@ -14,6 +14,7 @@ var _gridColumnsSelector = require("../columns/gridColumnsSelector");
|
|
|
14
14
|
var _useGridVisibleRows = require("../../utils/useGridVisibleRows");
|
|
15
15
|
var _gridVirtualizationSelectors = require("../virtualization/gridVirtualizationSelectors");
|
|
16
16
|
var _useGridSelector = require("../../utils/useGridSelector");
|
|
17
|
+
var _gridRowsSelector = require("./gridRowsSelector");
|
|
17
18
|
var _gridRowSpanningUtils = require("./gridRowSpanningUtils");
|
|
18
19
|
var _gridCheckboxSelectionColDef = require("../../../colDef/gridCheckboxSelectionColDef");
|
|
19
20
|
const EMPTY_STATE = {
|
|
@@ -43,7 +44,7 @@ const computeRowSpanningState = (apiRef, colDefs, visibleRows, range, rangeToPro
|
|
|
43
44
|
if (skippedFields.has(colDef.field)) {
|
|
44
45
|
return;
|
|
45
46
|
}
|
|
46
|
-
for (let index = rangeToProcess.firstRowIndex; index
|
|
47
|
+
for (let index = rangeToProcess.firstRowIndex; index < rangeToProcess.lastRowIndex; index += 1) {
|
|
47
48
|
const row = visibleRows[index];
|
|
48
49
|
if (hiddenCells[row.id]?.[colDef.field]) {
|
|
49
50
|
continue;
|
|
@@ -137,7 +138,7 @@ const computeRowSpanningState = (apiRef, colDefs, visibleRows, range, rangeToPro
|
|
|
137
138
|
* @requires filterStateInitializer (method) - should be initialized before
|
|
138
139
|
*/
|
|
139
140
|
const rowSpanningStateInitializer = (state, props, apiRef) => {
|
|
140
|
-
if (props.
|
|
141
|
+
if (props.rowSpanning) {
|
|
141
142
|
const rowIds = state.rows.dataRowIds || [];
|
|
142
143
|
const orderedFields = state.columns.orderedFields || [];
|
|
143
144
|
const dataRowIdToModelLookup = state.rows.dataRowIdToModelLookup;
|
|
@@ -150,7 +151,7 @@ const rowSpanningStateInitializer = (state, props, apiRef) => {
|
|
|
150
151
|
}
|
|
151
152
|
const rangeToProcess = {
|
|
152
153
|
firstRowIndex: 0,
|
|
153
|
-
lastRowIndex: Math.min(DEFAULT_ROWS_TO_PROCESS
|
|
154
|
+
lastRowIndex: Math.min(DEFAULT_ROWS_TO_PROCESS, Math.max(rowIds.length, 0))
|
|
154
155
|
};
|
|
155
156
|
const rows = rowIds.map(id => ({
|
|
156
157
|
id,
|
|
@@ -182,10 +183,11 @@ const useGridRowSpanning = (apiRef, props) => {
|
|
|
182
183
|
} = (0, _useGridVisibleRows.useGridVisibleRows)(apiRef, props);
|
|
183
184
|
const renderContext = (0, _useGridSelector.useGridSelector)(apiRef, _gridVirtualizationSelectors.gridRenderContextSelector);
|
|
184
185
|
const colDefs = (0, _useGridSelector.useGridSelector)(apiRef, _gridColumnsSelector.gridVisibleColumnDefinitionsSelector);
|
|
186
|
+
const tree = (0, _useGridSelector.useGridSelector)(apiRef, _gridRowsSelector.gridRowTreeSelector);
|
|
185
187
|
const processedRange = (0, _useLazyRef.default)(() => {
|
|
186
188
|
return Object.keys(apiRef.current.state.rowSpanning.spannedCells).length > 0 ? {
|
|
187
189
|
firstRowIndex: 0,
|
|
188
|
-
lastRowIndex: Math.min(DEFAULT_ROWS_TO_PROCESS
|
|
190
|
+
lastRowIndex: Math.min(DEFAULT_ROWS_TO_PROCESS, Math.max(apiRef.current.state.rows.dataRowIds.length, 0))
|
|
189
191
|
} : EMPTY_RANGE;
|
|
190
192
|
});
|
|
191
193
|
const lastRange = React.useRef(EMPTY_RANGE);
|
|
@@ -197,7 +199,7 @@ const useGridRowSpanning = (apiRef, props) => {
|
|
|
197
199
|
// - The `paginationModel` is updated
|
|
198
200
|
// - The rows are updated
|
|
199
201
|
(resetState = true) => {
|
|
200
|
-
if (!props.
|
|
202
|
+
if (!props.rowSpanning) {
|
|
201
203
|
if (apiRef.current.state.rowSpanning !== EMPTY_STATE) {
|
|
202
204
|
apiRef.current.setState(state => (0, _extends2.default)({}, state, {
|
|
203
205
|
rowSpanning: EMPTY_STATE
|
|
@@ -213,7 +215,7 @@ const useGridRowSpanning = (apiRef, props) => {
|
|
|
213
215
|
}
|
|
214
216
|
const rangeToProcess = (0, _gridRowSpanningUtils.getUnprocessedRange)({
|
|
215
217
|
firstRowIndex: renderContext.firstRowIndex,
|
|
216
|
-
lastRowIndex: Math.min(renderContext.lastRowIndex
|
|
218
|
+
lastRowIndex: Math.min(renderContext.lastRowIndex, range.lastRowIndex + 1)
|
|
217
219
|
}, processedRange.current);
|
|
218
220
|
if (rangeToProcess === null) {
|
|
219
221
|
return;
|
|
@@ -242,15 +244,21 @@ const useGridRowSpanning = (apiRef, props) => {
|
|
|
242
244
|
}
|
|
243
245
|
});
|
|
244
246
|
});
|
|
245
|
-
}, [apiRef, props.
|
|
247
|
+
}, [apiRef, props.rowSpanning, range, renderContext, visibleRows, colDefs, processedRange]);
|
|
246
248
|
const prevRenderContext = React.useRef(renderContext);
|
|
247
249
|
const isFirstRender = React.useRef(true);
|
|
248
250
|
const shouldResetState = React.useRef(false);
|
|
251
|
+
const previousTree = React.useRef(tree);
|
|
249
252
|
React.useEffect(() => {
|
|
250
253
|
const firstRender = isFirstRender.current;
|
|
251
254
|
if (isFirstRender.current) {
|
|
252
255
|
isFirstRender.current = false;
|
|
253
256
|
}
|
|
257
|
+
if (tree !== previousTree.current) {
|
|
258
|
+
previousTree.current = tree;
|
|
259
|
+
updateRowSpanningState(true);
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
254
262
|
if (range && lastRange.current && (0, _gridRowSpanningUtils.isRowRangeUpdated)(range, lastRange.current)) {
|
|
255
263
|
lastRange.current = range;
|
|
256
264
|
shouldResetState.current = true;
|
|
@@ -264,6 +272,6 @@ const useGridRowSpanning = (apiRef, props) => {
|
|
|
264
272
|
return;
|
|
265
273
|
}
|
|
266
274
|
updateRowSpanningState();
|
|
267
|
-
}, [updateRowSpanningState, renderContext, range, lastRange]);
|
|
275
|
+
}, [updateRowSpanningState, renderContext, range, lastRange, tree]);
|
|
268
276
|
};
|
|
269
277
|
exports.useGridRowSpanning = useGridRowSpanning;
|
|
@@ -248,7 +248,7 @@ const useGridRows = (apiRef, props) => {
|
|
|
248
248
|
throw new Error(`MUI X: The row reordering do not support reordering of footer or grouping rows.`);
|
|
249
249
|
}
|
|
250
250
|
apiRef.current.setState(state => {
|
|
251
|
-
const group = (0, _gridRowsSelector.gridRowTreeSelector)(state, apiRef.current.instanceId)[_gridRowsUtils.GRID_ROOT_GROUP_ID];
|
|
251
|
+
const group = (0, _gridRowsSelector.gridRowTreeSelector)(state, undefined, apiRef.current.instanceId)[_gridRowsUtils.GRID_ROOT_GROUP_ID];
|
|
252
252
|
const allRows = group.children;
|
|
253
253
|
const oldIndex = allRows.findIndex(row => row === rowId);
|
|
254
254
|
if (oldIndex === -1 || oldIndex === targetIndex) {
|
|
@@ -401,10 +401,10 @@ const useGridRows = (apiRef, props) => {
|
|
|
401
401
|
const applyHydrateRowsProcessor = React.useCallback(() => {
|
|
402
402
|
apiRef.current.setState(state => {
|
|
403
403
|
const response = apiRef.current.unstable_applyPipeProcessors('hydrateRows', {
|
|
404
|
-
tree: (0, _gridRowsSelector.gridRowTreeSelector)(state, apiRef.current.instanceId),
|
|
405
|
-
treeDepths: (0, _gridRowsSelector.gridRowTreeDepthsSelector)(state, apiRef.current.instanceId),
|
|
406
|
-
dataRowIds: (0, _gridRowsSelector.gridDataRowIdsSelector)(state, apiRef.current.instanceId),
|
|
407
|
-
dataRowIdToModelLookup: (0, _gridRowsSelector.gridRowsLookupSelector)(state, apiRef.current.instanceId)
|
|
404
|
+
tree: (0, _gridRowsSelector.gridRowTreeSelector)(state, undefined, apiRef.current.instanceId),
|
|
405
|
+
treeDepths: (0, _gridRowsSelector.gridRowTreeDepthsSelector)(state, undefined, apiRef.current.instanceId),
|
|
406
|
+
dataRowIds: (0, _gridRowsSelector.gridDataRowIdsSelector)(state, undefined, apiRef.current.instanceId),
|
|
407
|
+
dataRowIdToModelLookup: (0, _gridRowsSelector.gridRowsLookupSelector)(state, undefined, apiRef.current.instanceId)
|
|
408
408
|
});
|
|
409
409
|
return (0, _extends2.default)({}, state, {
|
|
410
410
|
rows: (0, _extends2.default)({}, state.rows, response, {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.gridSortedRowIdsSelector = exports.gridSortedRowEntriesSelector = exports.gridSortModelSelector = exports.gridSortColumnLookupSelector = void 0;
|
|
6
|
+
exports.gridSortedRowIndexLookupSelector = exports.gridSortedRowIdsSelector = exports.gridSortedRowEntriesSelector = exports.gridSortModelSelector = exports.gridSortColumnLookupSelector = void 0;
|
|
7
7
|
var _createSelector = require("../../../utils/createSelector");
|
|
8
8
|
var _gridRowsSelector = require("../rows/gridRowsSelector");
|
|
9
9
|
var _gridRowsUtils = require("../rows/gridRowsUtils");
|
|
@@ -61,4 +61,15 @@ const gridSortColumnLookupSelector = exports.gridSortColumnLookupSelector = (0,
|
|
|
61
61
|
return res;
|
|
62
62
|
}, {});
|
|
63
63
|
return result;
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* @category Sorting
|
|
68
|
+
* @ignore - do not document.
|
|
69
|
+
*/
|
|
70
|
+
const gridSortedRowIndexLookupSelector = exports.gridSortedRowIndexLookupSelector = (0, _createSelector.createSelectorMemoized)(gridSortedRowIdsSelector, sortedIds => {
|
|
71
|
+
return sortedIds.reduce((acc, id, index) => {
|
|
72
|
+
acc[id] = index;
|
|
73
|
+
return acc;
|
|
74
|
+
}, Object.create(null));
|
|
64
75
|
});
|
|
@@ -3,11 +3,6 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
var _exportNames = {
|
|
7
|
-
gridDateComparator: true,
|
|
8
|
-
gridNumberComparator: true,
|
|
9
|
-
gridStringOrNumberComparator: true
|
|
10
|
-
};
|
|
11
6
|
Object.defineProperty(exports, "gridDateComparator", {
|
|
12
7
|
enumerable: true,
|
|
13
8
|
get: function () {
|
|
@@ -20,6 +15,30 @@ Object.defineProperty(exports, "gridNumberComparator", {
|
|
|
20
15
|
return _gridSortingUtils.gridNumberComparator;
|
|
21
16
|
}
|
|
22
17
|
});
|
|
18
|
+
Object.defineProperty(exports, "gridSortColumnLookupSelector", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _gridSortingSelector.gridSortColumnLookupSelector;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "gridSortModelSelector", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () {
|
|
27
|
+
return _gridSortingSelector.gridSortModelSelector;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(exports, "gridSortedRowEntriesSelector", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function () {
|
|
33
|
+
return _gridSortingSelector.gridSortedRowEntriesSelector;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(exports, "gridSortedRowIdsSelector", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function () {
|
|
39
|
+
return _gridSortingSelector.gridSortedRowIdsSelector;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
23
42
|
Object.defineProperty(exports, "gridStringOrNumberComparator", {
|
|
24
43
|
enumerable: true,
|
|
25
44
|
get: function () {
|
|
@@ -27,15 +46,4 @@ Object.defineProperty(exports, "gridStringOrNumberComparator", {
|
|
|
27
46
|
}
|
|
28
47
|
});
|
|
29
48
|
var _gridSortingSelector = require("./gridSortingSelector");
|
|
30
|
-
Object.keys(_gridSortingSelector).forEach(function (key) {
|
|
31
|
-
if (key === "default" || key === "__esModule") return;
|
|
32
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
33
|
-
if (key in exports && exports[key] === _gridSortingSelector[key]) return;
|
|
34
|
-
Object.defineProperty(exports, key, {
|
|
35
|
-
enumerable: true,
|
|
36
|
-
get: function () {
|
|
37
|
-
return _gridSortingSelector[key];
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
});
|
|
41
49
|
var _gridSortingUtils = require("./gridSortingUtils");
|
|
@@ -97,7 +97,7 @@ const useGridSorting = (apiRef, props) => {
|
|
|
97
97
|
})
|
|
98
98
|
});
|
|
99
99
|
}
|
|
100
|
-
const sortModel = (0, _gridSortingSelector.gridSortModelSelector)(state, apiRef.current.instanceId);
|
|
100
|
+
const sortModel = (0, _gridSortingSelector.gridSortModelSelector)(state, undefined, apiRef.current.instanceId);
|
|
101
101
|
const sortRowList = (0, _gridSortingUtils.buildAggregatedSortingApplier)(sortModel, apiRef);
|
|
102
102
|
const sortedRows = apiRef.current.applyStrategyProcessor('sorting', {
|
|
103
103
|
sortRowList
|