@mui/x-data-grid 7.0.0-beta.0 → 7.0.0-beta.2
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 +406 -1
- package/DataGrid/DataGrid.d.ts +1 -1
- package/DataGrid/DataGrid.js +1 -1
- package/DataGrid/useDataGridComponent.js +1 -1
- package/DataGrid/useDataGridProps.js +3 -1
- package/colDef/gridBooleanColDef.js +3 -6
- package/colDef/gridCheckboxSelectionColDef.js +4 -3
- package/colDef/gridDateColDef.d.ts +3 -4
- package/colDef/gridDateColDef.js +10 -16
- package/colDef/gridNumericColDef.js +1 -3
- package/colDef/gridSingleSelectColDef.js +7 -12
- package/components/GridPagination.d.ts +1 -1
- package/components/GridPagination.js +12 -2
- package/components/GridRow.js +7 -5
- package/components/GridScrollbarFillerCell.js +0 -3
- package/components/base/GridFooterPlaceholder.js +1 -1
- package/components/cell/GridActionsCell.js +3 -3
- package/components/cell/GridActionsCellItem.d.ts +13 -1
- package/components/cell/GridActionsCellItem.js +27 -15
- package/components/cell/GridEditInputCell.js +1 -1
- package/components/columnSelection/GridCellCheckboxRenderer.js +1 -1
- package/components/columnSelection/GridHeaderCheckbox.d.ts +1 -1
- package/components/columnsManagement/GridColumnsManagement.d.ts +7 -0
- package/components/columnsManagement/GridColumnsManagement.js +26 -21
- package/components/columnsManagement/utils.d.ts +1 -1
- package/components/containers/GridRootStyles.js +10 -2
- package/components/panel/filterPanel/GridFilterInputBoolean.js +1 -1
- package/components/panel/filterPanel/GridFilterInputSingleSelect.js +1 -1
- package/components/panel/filterPanel/GridFilterPanel.js +1 -1
- package/constants/gridClasses.d.ts +5 -0
- package/constants/gridClasses.js +1 -1
- package/hooks/features/columns/useGridColumnSpanning.js +3 -1
- package/hooks/features/editing/useGridCellEditing.js +2 -5
- package/hooks/features/editing/useGridRowEditing.js +2 -5
- package/hooks/features/filter/gridFilterUtils.js +1 -1
- package/hooks/features/rows/gridRowsUtils.js +1 -1
- package/hooks/features/rows/useGridParamsApi.d.ts +1 -2
- package/hooks/features/rows/useGridParamsApi.js +14 -49
- package/hooks/features/rows/useGridRows.js +2 -2
- package/hooks/features/virtualization/useGridVirtualScroller.d.ts +0 -1
- package/hooks/features/virtualization/useGridVirtualScroller.js +9 -10
- package/index.js +1 -1
- package/internals/utils/propValidation.js +1 -1
- package/joy/joySlots.js +2 -2
- package/legacy/DataGrid/DataGrid.js +1 -1
- package/legacy/DataGrid/useDataGridComponent.js +1 -1
- package/legacy/DataGrid/useDataGridProps.js +3 -1
- package/legacy/colDef/gridBooleanColDef.js +3 -5
- package/legacy/colDef/gridCheckboxSelectionColDef.js +4 -3
- package/legacy/colDef/gridDateColDef.js +10 -14
- package/legacy/colDef/gridNumericColDef.js +1 -2
- package/legacy/colDef/gridSingleSelectColDef.js +7 -10
- package/legacy/components/GridPagination.js +10 -2
- package/legacy/components/GridRow.js +7 -5
- package/legacy/components/GridScrollbarFillerCell.js +1 -3
- package/legacy/components/base/GridFooterPlaceholder.js +1 -1
- package/legacy/components/cell/GridActionsCell.js +3 -3
- package/legacy/components/cell/GridActionsCellItem.js +30 -17
- package/legacy/components/cell/GridEditInputCell.js +1 -1
- package/legacy/components/columnSelection/GridCellCheckboxRenderer.js +1 -1
- package/legacy/components/columnsManagement/GridColumnsManagement.js +38 -31
- package/legacy/components/containers/GridRootStyles.js +9 -3
- package/legacy/components/panel/filterPanel/GridFilterInputBoolean.js +1 -1
- package/legacy/components/panel/filterPanel/GridFilterInputSingleSelect.js +1 -1
- package/legacy/components/panel/filterPanel/GridFilterPanel.js +1 -1
- package/legacy/constants/gridClasses.js +1 -1
- package/legacy/hooks/features/columns/useGridColumnSpanning.js +3 -1
- package/legacy/hooks/features/editing/useGridCellEditing.js +2 -5
- package/legacy/hooks/features/editing/useGridRowEditing.js +2 -5
- package/legacy/hooks/features/filter/gridFilterUtils.js +2 -2
- package/legacy/hooks/features/rows/gridRowsUtils.js +1 -1
- package/legacy/hooks/features/rows/useGridParamsApi.js +14 -47
- package/legacy/hooks/features/rows/useGridRows.js +2 -2
- package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +9 -10
- package/legacy/index.js +1 -1
- package/legacy/internals/utils/propValidation.js +1 -1
- package/legacy/joy/joySlots.js +2 -2
- package/legacy/locales/daDK.js +12 -12
- package/legacy/locales/heIL.js +7 -8
- package/locales/daDK.js +12 -12
- package/locales/heIL.js +7 -8
- package/models/api/gridApiCommon.d.ts +1 -1
- package/models/api/gridFilterApi.d.ts +1 -1
- package/models/api/gridLocaleTextApi.d.ts +3 -3
- package/models/colDef/gridColDef.d.ts +11 -17
- package/models/colDef/index.d.ts +1 -1
- package/models/events/gridEventLookup.d.ts +1 -1
- package/models/gridSlotsComponent.d.ts +34 -36
- package/models/gridSlotsComponentsProps.d.ts +73 -54
- package/models/params/gridCellParams.d.ts +0 -26
- package/models/props/DataGridProps.d.ts +2 -2
- package/modern/DataGrid/DataGrid.js +1 -1
- package/modern/DataGrid/useDataGridComponent.js +1 -1
- package/modern/DataGrid/useDataGridProps.js +3 -1
- package/modern/colDef/gridBooleanColDef.js +3 -6
- package/modern/colDef/gridCheckboxSelectionColDef.js +4 -3
- package/modern/colDef/gridDateColDef.js +10 -16
- package/modern/colDef/gridNumericColDef.js +1 -3
- package/modern/colDef/gridSingleSelectColDef.js +7 -12
- package/modern/components/GridPagination.js +12 -2
- package/modern/components/GridRow.js +6 -5
- package/modern/components/GridScrollbarFillerCell.js +0 -3
- package/modern/components/base/GridFooterPlaceholder.js +1 -1
- package/modern/components/cell/GridActionsCell.js +3 -3
- package/modern/components/cell/GridActionsCellItem.js +27 -15
- package/modern/components/cell/GridEditInputCell.js +1 -1
- package/modern/components/columnSelection/GridCellCheckboxRenderer.js +1 -1
- package/modern/components/columnsManagement/GridColumnsManagement.js +26 -21
- package/modern/components/containers/GridRootStyles.js +10 -2
- package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +1 -1
- package/modern/components/panel/filterPanel/GridFilterInputSingleSelect.js +1 -1
- package/modern/components/panel/filterPanel/GridFilterPanel.js +1 -1
- package/modern/constants/gridClasses.js +1 -1
- package/modern/hooks/features/columns/useGridColumnSpanning.js +3 -1
- package/modern/hooks/features/editing/useGridCellEditing.js +2 -5
- package/modern/hooks/features/editing/useGridRowEditing.js +2 -5
- package/modern/hooks/features/filter/gridFilterUtils.js +1 -1
- package/modern/hooks/features/rows/gridRowsUtils.js +1 -1
- package/modern/hooks/features/rows/useGridParamsApi.js +14 -47
- package/modern/hooks/features/rows/useGridRows.js +2 -2
- package/modern/hooks/features/virtualization/useGridVirtualScroller.js +9 -10
- package/modern/index.js +1 -1
- package/modern/internals/utils/propValidation.js +1 -1
- package/modern/joy/joySlots.js +2 -2
- package/modern/locales/daDK.js +12 -12
- package/modern/locales/heIL.js +7 -8
- package/node/DataGrid/DataGrid.js +1 -1
- package/node/DataGrid/useDataGridComponent.js +1 -1
- package/node/DataGrid/useDataGridProps.js +3 -1
- package/node/colDef/gridBooleanColDef.js +3 -6
- package/node/colDef/gridCheckboxSelectionColDef.js +4 -3
- package/node/colDef/gridDateColDef.js +13 -19
- package/node/colDef/gridNumericColDef.js +1 -3
- package/node/colDef/gridSingleSelectColDef.js +7 -12
- package/node/components/GridPagination.js +12 -2
- package/node/components/GridRow.js +6 -5
- package/node/components/GridScrollbarFillerCell.js +0 -3
- package/node/components/base/GridFooterPlaceholder.js +1 -1
- package/node/components/cell/GridActionsCell.js +3 -3
- package/node/components/cell/GridActionsCellItem.js +27 -15
- package/node/components/cell/GridEditInputCell.js +1 -1
- package/node/components/columnSelection/GridCellCheckboxRenderer.js +1 -1
- package/node/components/columnsManagement/GridColumnsManagement.js +26 -21
- package/node/components/containers/GridRootStyles.js +10 -2
- package/node/components/panel/filterPanel/GridFilterInputBoolean.js +1 -1
- package/node/components/panel/filterPanel/GridFilterInputSingleSelect.js +1 -1
- package/node/components/panel/filterPanel/GridFilterPanel.js +1 -1
- package/node/constants/gridClasses.js +1 -1
- package/node/hooks/features/columns/useGridColumnSpanning.js +3 -1
- package/node/hooks/features/editing/useGridCellEditing.js +2 -5
- package/node/hooks/features/editing/useGridRowEditing.js +2 -5
- package/node/hooks/features/filter/gridFilterUtils.js +1 -1
- package/node/hooks/features/rows/gridRowsUtils.js +2 -2
- package/node/hooks/features/rows/useGridParamsApi.js +14 -47
- package/node/hooks/features/rows/useGridRows.js +2 -2
- package/node/hooks/features/virtualization/useGridVirtualScroller.js +9 -10
- package/node/index.js +1 -1
- package/node/internals/utils/propValidation.js +1 -1
- package/node/joy/joySlots.js +2 -2
- package/node/locales/daDK.js +12 -12
- package/node/locales/heIL.js +7 -8
- package/package.json +5 -5
|
@@ -13,24 +13,22 @@ var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
|
|
|
13
13
|
var _ListItemIcon = _interopRequireDefault(require("@mui/material/ListItemIcon"));
|
|
14
14
|
var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
|
|
15
15
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
16
|
-
const _excluded = ["label", "icon", "showInMenu", "onClick"]
|
|
16
|
+
const _excluded = ["label", "icon", "showInMenu", "onClick"],
|
|
17
|
+
_excluded2 = ["label", "icon", "showInMenu", "onClick", "closeMenuOnClick", "closeMenu"];
|
|
17
18
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
18
19
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
19
20
|
const GridActionsCellItem = exports.GridActionsCellItem = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
20
|
-
const {
|
|
21
|
-
label,
|
|
22
|
-
icon,
|
|
23
|
-
showInMenu,
|
|
24
|
-
onClick
|
|
25
|
-
} = props,
|
|
26
|
-
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
27
21
|
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
22
|
+
if (!props.showInMenu) {
|
|
23
|
+
const {
|
|
24
|
+
label,
|
|
25
|
+
icon,
|
|
26
|
+
onClick
|
|
27
|
+
} = props,
|
|
28
|
+
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
29
|
+
const handleClick = event => {
|
|
30
|
+
onClick?.(event);
|
|
31
|
+
};
|
|
34
32
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseIconButton, (0, _extends2.default)({
|
|
35
33
|
ref: ref,
|
|
36
34
|
size: "small",
|
|
@@ -44,10 +42,24 @@ const GridActionsCellItem = exports.GridActionsCellItem = /*#__PURE__*/React.for
|
|
|
44
42
|
})
|
|
45
43
|
}));
|
|
46
44
|
}
|
|
45
|
+
const {
|
|
46
|
+
label,
|
|
47
|
+
icon,
|
|
48
|
+
onClick,
|
|
49
|
+
closeMenuOnClick = true,
|
|
50
|
+
closeMenu
|
|
51
|
+
} = props,
|
|
52
|
+
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded2);
|
|
53
|
+
const handleClick = event => {
|
|
54
|
+
onClick?.(event);
|
|
55
|
+
if (closeMenuOnClick) {
|
|
56
|
+
closeMenu?.();
|
|
57
|
+
}
|
|
58
|
+
};
|
|
47
59
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_MenuItem.default, (0, _extends2.default)({
|
|
48
60
|
ref: ref
|
|
49
61
|
}, other, {
|
|
50
|
-
onClick:
|
|
62
|
+
onClick: handleClick,
|
|
51
63
|
children: [icon && /*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemIcon.default, {
|
|
52
64
|
children: icon
|
|
53
65
|
}), label]
|
|
@@ -66,7 +66,7 @@ const GridEditInputCell = exports.GridEditInputCell = /*#__PURE__*/React.forward
|
|
|
66
66
|
const column = apiRef.current.getColumn(field);
|
|
67
67
|
let parsedValue = newValue;
|
|
68
68
|
if (column.valueParser) {
|
|
69
|
-
parsedValue = column.valueParser(newValue, apiRef.current.
|
|
69
|
+
parsedValue = column.valueParser(newValue, apiRef.current.getRow(id), column, apiRef);
|
|
70
70
|
}
|
|
71
71
|
setValueState(parsedValue);
|
|
72
72
|
apiRef.current.setEditCellValue({
|
|
@@ -93,7 +93,7 @@ const GridCellCheckboxForwardRef = exports.GridCellCheckboxForwardRef = /*#__PUR
|
|
|
93
93
|
},
|
|
94
94
|
onKeyDown: handleKeyDown,
|
|
95
95
|
disabled: !isSelectable,
|
|
96
|
-
touchRippleRef: rippleRef
|
|
96
|
+
touchRippleRef: rippleRef /* FIXME: typing error */
|
|
97
97
|
}, rootProps.slotProps?.baseCheckbox, other));
|
|
98
98
|
});
|
|
99
99
|
process.env.NODE_ENV !== "production" ? GridCellCheckboxForwardRef.propTypes = {
|
|
@@ -51,6 +51,7 @@ function GridColumnsManagement(props) {
|
|
|
51
51
|
autoFocusSearchField = true,
|
|
52
52
|
disableShowHideToggle = false,
|
|
53
53
|
disableResetButton = false,
|
|
54
|
+
toggleAllMode = 'all',
|
|
54
55
|
getTogglableColumns
|
|
55
56
|
} = props;
|
|
56
57
|
const isResetDisabled = React.useMemo(() => (0, _utils2.checkColumnVisibilityModelsSame)(columnVisibilityModel, initialColumnVisibilityModel), [columnVisibilityModel, initialColumnVisibilityModel]);
|
|
@@ -70,11 +71,21 @@ function GridColumnsManagement(props) {
|
|
|
70
71
|
} = event.target;
|
|
71
72
|
apiRef.current.setColumnVisibility(field, columnVisibilityModel[field] === false);
|
|
72
73
|
};
|
|
74
|
+
const currentColumns = React.useMemo(() => {
|
|
75
|
+
const togglableColumns = getTogglableColumns ? getTogglableColumns(sortedColumns) : null;
|
|
76
|
+
const togglableSortedColumns = togglableColumns ? sortedColumns.filter(({
|
|
77
|
+
field
|
|
78
|
+
}) => togglableColumns.includes(field)) : sortedColumns;
|
|
79
|
+
if (!searchValue) {
|
|
80
|
+
return togglableSortedColumns;
|
|
81
|
+
}
|
|
82
|
+
return togglableSortedColumns.filter(column => searchPredicate(column, searchValue.toLowerCase()));
|
|
83
|
+
}, [sortedColumns, searchValue, searchPredicate, getTogglableColumns]);
|
|
73
84
|
const toggleAllColumns = React.useCallback(isVisible => {
|
|
74
85
|
const currentModel = (0, _gridColumnsSelector.gridColumnVisibilityModelSelector)(apiRef);
|
|
75
86
|
const newModel = (0, _extends2.default)({}, currentModel);
|
|
76
87
|
const togglableColumns = getTogglableColumns ? getTogglableColumns(columns) : null;
|
|
77
|
-
columns.forEach(col => {
|
|
88
|
+
(toggleAllMode === 'filteredOnly' ? currentColumns : columns).forEach(col => {
|
|
78
89
|
if (col.hideable && (togglableColumns == null || togglableColumns.includes(col.field))) {
|
|
79
90
|
if (isVisible) {
|
|
80
91
|
// delete the key from the model instead of setting it to `true`
|
|
@@ -85,20 +96,10 @@ function GridColumnsManagement(props) {
|
|
|
85
96
|
}
|
|
86
97
|
});
|
|
87
98
|
return apiRef.current.setColumnVisibilityModel(newModel);
|
|
88
|
-
}, [apiRef, columns, getTogglableColumns]);
|
|
99
|
+
}, [apiRef, columns, getTogglableColumns, toggleAllMode, currentColumns]);
|
|
89
100
|
const handleSearchValueChange = React.useCallback(event => {
|
|
90
101
|
setSearchValue(event.target.value);
|
|
91
102
|
}, []);
|
|
92
|
-
const currentColumns = React.useMemo(() => {
|
|
93
|
-
const togglableColumns = getTogglableColumns ? getTogglableColumns(sortedColumns) : null;
|
|
94
|
-
const togglableSortedColumns = togglableColumns ? sortedColumns.filter(({
|
|
95
|
-
field
|
|
96
|
-
}) => togglableColumns.includes(field)) : sortedColumns;
|
|
97
|
-
if (!searchValue) {
|
|
98
|
-
return togglableSortedColumns;
|
|
99
|
-
}
|
|
100
|
-
return togglableSortedColumns.filter(column => searchPredicate(column, searchValue.toLowerCase()));
|
|
101
|
-
}, [sortedColumns, searchValue, searchPredicate, getTogglableColumns]);
|
|
102
103
|
const hideableColumns = React.useMemo(() => currentColumns.filter(col => col.hideable), [currentColumns]);
|
|
103
104
|
const allHideableColumnsVisible = React.useMemo(() => hideableColumns.every(column => columnVisibilityModel[column.field] == null || columnVisibilityModel[column.field] !== false), [columnVisibilityModel, hideableColumns]);
|
|
104
105
|
const allHideableColumnsHidden = React.useMemo(() => hideableColumns.every(column => columnVisibilityModel[column.field] === false), [columnVisibilityModel, hideableColumns]);
|
|
@@ -169,14 +170,11 @@ function GridColumnsManagement(props) {
|
|
|
169
170
|
checked: allHideableColumnsVisible,
|
|
170
171
|
indeterminate: !allHideableColumnsVisible && !allHideableColumnsHidden,
|
|
171
172
|
onClick: () => toggleAllColumns(!allHideableColumnsVisible),
|
|
172
|
-
name: apiRef.current.getLocaleText('columnsManagementShowHideAllText')
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
[`.MuiFormControlLabel-label`]: {
|
|
176
|
-
textTransform: 'uppercase',
|
|
177
|
-
fontSize: '14px'
|
|
173
|
+
name: apiRef.current.getLocaleText('columnsManagementShowHideAllText'),
|
|
174
|
+
sx: {
|
|
175
|
+
p: 0.5
|
|
178
176
|
}
|
|
179
|
-
},
|
|
177
|
+
}, rootProps.slotProps?.baseCheckbox)),
|
|
180
178
|
label: apiRef.current.getLocaleText('columnsManagementShowHideAllText')
|
|
181
179
|
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {}), !disableResetButton ? /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseButton, (0, _extends2.default)({
|
|
182
180
|
onClick: () => apiRef.current.setColumnVisibilityModel(initialColumnVisibilityModel),
|
|
@@ -218,7 +216,14 @@ process.env.NODE_ENV !== "production" ? GridColumnsManagement.propTypes = {
|
|
|
218
216
|
*/
|
|
219
217
|
getTogglableColumns: _propTypes.default.func,
|
|
220
218
|
searchPredicate: _propTypes.default.func,
|
|
221
|
-
sort: _propTypes.default.oneOf(['asc', 'desc'])
|
|
219
|
+
sort: _propTypes.default.oneOf(['asc', 'desc']),
|
|
220
|
+
/**
|
|
221
|
+
* Changes the behavior of the `Show/Hide All` toggle when the search field is used:
|
|
222
|
+
* - `all`: Will toggle all columns.
|
|
223
|
+
* - `filteredOnly`: Will only toggle columns that match the search criteria.
|
|
224
|
+
* @default 'all'
|
|
225
|
+
*/
|
|
226
|
+
toggleAllMode: _propTypes.default.oneOf(['all', 'filteredOnly'])
|
|
222
227
|
} : void 0;
|
|
223
228
|
const GridColumnsManagementBody = (0, _styles.styled)('div', {
|
|
224
229
|
name: 'MuiDataGrid',
|
|
@@ -251,7 +256,7 @@ const GridColumnsManagementFooter = (0, _styles.styled)('div', {
|
|
|
251
256
|
})(({
|
|
252
257
|
theme
|
|
253
258
|
}) => ({
|
|
254
|
-
padding: theme.spacing(0.5, 1, 0.5,
|
|
259
|
+
padding: theme.spacing(0.5, 1, 0.5, 3),
|
|
255
260
|
display: 'flex',
|
|
256
261
|
justifyContent: 'space-between',
|
|
257
262
|
borderTop: `1px solid ${theme.palette.divider}`
|
|
@@ -247,6 +247,12 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
|
|
|
247
247
|
[`& .${_gridClasses.gridClasses.cell} > *`]: {
|
|
248
248
|
overflow: 'visible !important',
|
|
249
249
|
whiteSpace: 'nowrap'
|
|
250
|
+
},
|
|
251
|
+
[`& .${_gridClasses.gridClasses.groupingCriteriaCell}`]: {
|
|
252
|
+
width: 'unset'
|
|
253
|
+
},
|
|
254
|
+
[`& .${_gridClasses.gridClasses.treeDataGroupingCell}`]: {
|
|
255
|
+
width: 'unset'
|
|
250
256
|
}
|
|
251
257
|
},
|
|
252
258
|
[`& .${_gridClasses.gridClasses.columnHeader}, & .${_gridClasses.gridClasses.cell}`]: {
|
|
@@ -561,8 +567,10 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
|
|
|
561
567
|
}
|
|
562
568
|
}
|
|
563
569
|
},
|
|
564
|
-
[`& .${_gridClasses.gridClasses.
|
|
565
|
-
|
|
570
|
+
[`& .${_gridClasses.gridClasses.cellOffsetLeft}`]: {
|
|
571
|
+
flex: '0 0 auto',
|
|
572
|
+
display: 'inline-block',
|
|
573
|
+
width: 'var(--DataGrid-offsetLeft)'
|
|
566
574
|
},
|
|
567
575
|
[`& .${_gridClasses.gridClasses.columnHeaderDraggableContainer}`]: {
|
|
568
576
|
display: 'flex',
|
|
@@ -74,7 +74,7 @@ function GridFilterInputBoolean(props) {
|
|
|
74
74
|
ref: focusElementRef,
|
|
75
75
|
tabIndex
|
|
76
76
|
}
|
|
77
|
-
}, others
|
|
77
|
+
}, others /* FIXME: typing error */, baseSelectProps, {
|
|
78
78
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseSelectOption, (0, _extends2.default)({}, baseSelectOptionProps, {
|
|
79
79
|
native: isSelectNative,
|
|
80
80
|
value: "",
|
|
@@ -114,7 +114,7 @@ function GridFilterInputSingleSelect(props) {
|
|
|
114
114
|
placeholder: placeholder ?? apiRef.current.getLocaleText('filterPanelInputPlaceholder')
|
|
115
115
|
},
|
|
116
116
|
native: isSelectNative
|
|
117
|
-
}, others
|
|
117
|
+
}, others /* FIXME: typing error */, rootProps.slotProps?.baseSelect, {
|
|
118
118
|
children: renderSingleSelectOptions({
|
|
119
119
|
column: resolvedColumn,
|
|
120
120
|
OptionComponent: rootProps.slots.baseSelectOption,
|
|
@@ -139,7 +139,7 @@ const GridFilterPanel = exports.GridFilterPanel = /*#__PURE__*/React.forwardRef(
|
|
|
139
139
|
}
|
|
140
140
|
return apiRef.current.setFilterModel((0, _extends2.default)({}, filterModel, {
|
|
141
141
|
items: readOnlyFilters
|
|
142
|
-
}));
|
|
142
|
+
}), 'removeAllFilterItems');
|
|
143
143
|
}, [apiRef, readOnlyFilters, filterModel, validFilters]);
|
|
144
144
|
React.useEffect(() => {
|
|
145
145
|
if (logicOperators.length > 0 && filterModel.logicOperator && !logicOperators.includes(filterModel.logicOperator)) {
|
|
@@ -9,4 +9,4 @@ var _utils = require("@mui/utils");
|
|
|
9
9
|
function getDataGridUtilityClass(slot) {
|
|
10
10
|
return (0, _utils.unstable_generateUtilityClass)('MuiDataGrid', slot);
|
|
11
11
|
}
|
|
12
|
-
const gridClasses = exports.gridClasses = (0, _utils.unstable_generateUtilityClasses)('MuiDataGrid', ['actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'autoHeight', 'autosizing', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--withRenderer', 'cell--rangeTop', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell--pinnedLeft', 'cell--pinnedRight', 'cell--selectionMode', 'cell', 'cellContent', 'cellCheckbox', 'cellEmpty', 'cellSkeleton', 'checkboxInput', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderDropZone', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnGroupHeader', 'columnHeader--filledGroup', 'columnHeader--emptyGroup', 'columnHeader--showColumnBorder', 'columnHeaders', 'columnHeadersInner', 'columnHeadersInner--scrollable', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsManagement', 'columnsManagementRow', 'columnsManagementHeader', 'columnsManagementFooter', 'container--top', 'container--bottom', 'detailPanel', 'detailPanels', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'footerCell', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'filler', 'filler--pinnedLeft', 'filler--pinnedRight', 'filterForm', 'filterFormDeleteIcon', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'headerFilterRow', 'iconButtonContainer', 'iconSeparator', 'main', 'main--hasPinnedRight', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'overlayWrapper', 'overlayWrapperInner', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'root--disableUserSelection', 'row', 'row--editable', 'row--editing', 'row--firstVisible', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', 'row--detailPanelExpanded', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'scrollbar', 'scrollbar--vertical', 'scrollbar--horizontal', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'virtualScroller', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pinnedColumns', 'pinnedColumnHeaders', 'pinnedColumnHeaders--left', 'pinnedColumnHeaders--right', 'withVerticalBorder', 'withBorderColor', 'cell--withRightBorder', 'cell--withLeftBorder', 'columnHeader--withRightBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pinnedRowsRenderZone']);
|
|
12
|
+
const gridClasses = exports.gridClasses = (0, _utils.unstable_generateUtilityClasses)('MuiDataGrid', ['actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'autoHeight', 'autosizing', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--withRenderer', 'cell--rangeTop', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell--pinnedLeft', 'cell--pinnedRight', 'cell--selectionMode', 'cell', 'cellContent', 'cellCheckbox', 'cellEmpty', 'cellSkeleton', 'cellOffsetLeft', 'checkboxInput', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderDropZone', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnGroupHeader', 'columnHeader--filledGroup', 'columnHeader--emptyGroup', 'columnHeader--showColumnBorder', 'columnHeaders', 'columnHeadersInner', 'columnHeadersInner--scrollable', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsManagement', 'columnsManagementRow', 'columnsManagementHeader', 'columnsManagementFooter', 'container--top', 'container--bottom', 'detailPanel', 'detailPanels', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'footerCell', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'filler', 'filler--pinnedLeft', 'filler--pinnedRight', 'filterForm', 'filterFormDeleteIcon', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'headerFilterRow', 'iconButtonContainer', 'iconSeparator', 'main', 'main--hasPinnedRight', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'overlayWrapper', 'overlayWrapperInner', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'root--disableUserSelection', 'row', 'row--editable', 'row--editing', 'row--firstVisible', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', 'row--detailPanelExpanded', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'scrollbar', 'scrollbar--vertical', 'scrollbar--horizontal', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'virtualScroller', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pinnedColumns', 'pinnedColumnHeaders', 'pinnedColumnHeaders--left', 'pinnedColumnHeaders--right', 'withVerticalBorder', 'withBorderColor', 'cell--withRightBorder', 'cell--withLeftBorder', 'columnHeader--withRightBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pinnedRowsRenderZone']);
|
|
@@ -68,7 +68,9 @@ function calculateCellColSpan(params) {
|
|
|
68
68
|
} = params;
|
|
69
69
|
const columnsLength = columns.length;
|
|
70
70
|
const column = columns[columnIndex];
|
|
71
|
-
const
|
|
71
|
+
const row = apiRef.current.getRow(rowId);
|
|
72
|
+
const value = apiRef.current.getRowValue(row, column);
|
|
73
|
+
const colSpan = typeof column.colSpan === 'function' ? column.colSpan(value, row, column, apiRef) : column.colSpan;
|
|
72
74
|
if (!colSpan || colSpan === 1) {
|
|
73
75
|
setCellColSpanInfo(lookup, rowId, columnIndex, {
|
|
74
76
|
spannedByColSpan: false,
|
|
@@ -343,7 +343,7 @@ const useGridCellEditing = (apiRef, props) => {
|
|
|
343
343
|
const row = apiRef.current.getRow(id);
|
|
344
344
|
let parsedValue = value;
|
|
345
345
|
if (column.valueParser && !skipValueParser) {
|
|
346
|
-
parsedValue = column.valueParser(value,
|
|
346
|
+
parsedValue = column.valueParser(value, row, column, apiRef);
|
|
347
347
|
}
|
|
348
348
|
let editingState = (0, _gridEditingSelectors.gridEditRowsStateSelector)(apiRef.current.state);
|
|
349
349
|
let newProps = (0, _extends2.default)({}, editingState[id][field], {
|
|
@@ -391,10 +391,7 @@ const useGridCellEditing = (apiRef, props) => {
|
|
|
391
391
|
const {
|
|
392
392
|
value
|
|
393
393
|
} = editingState[id][field];
|
|
394
|
-
return column.valueSetter ? column.valueSetter({
|
|
395
|
-
value,
|
|
396
|
-
row
|
|
397
|
-
}) : (0, _extends2.default)({}, row, {
|
|
394
|
+
return column.valueSetter ? column.valueSetter(value, row, column, apiRef) : (0, _extends2.default)({}, row, {
|
|
398
395
|
[field]: value
|
|
399
396
|
});
|
|
400
397
|
}, [apiRef]);
|
|
@@ -418,7 +418,7 @@ const useGridRowEditing = (apiRef, props) => {
|
|
|
418
418
|
const row = apiRef.current.getRow(id);
|
|
419
419
|
let parsedValue = value;
|
|
420
420
|
if (column.valueParser && !skipValueParser) {
|
|
421
|
-
parsedValue = column.valueParser(value,
|
|
421
|
+
parsedValue = column.valueParser(value, row, column, apiRef);
|
|
422
422
|
}
|
|
423
423
|
let editingState = (0, _gridEditingSelectors.gridEditRowsStateSelector)(apiRef.current.state);
|
|
424
424
|
let newProps = (0, _extends2.default)({}, editingState[id][field], {
|
|
@@ -518,10 +518,7 @@ const useGridRowEditing = (apiRef, props) => {
|
|
|
518
518
|
Object.entries(editingState[id]).forEach(([field, fieldProps]) => {
|
|
519
519
|
const column = apiRef.current.getColumn(field);
|
|
520
520
|
if (column.valueSetter) {
|
|
521
|
-
rowUpdate = column.valueSetter(
|
|
522
|
-
value: fieldProps.value,
|
|
523
|
-
row: rowUpdate
|
|
524
|
-
});
|
|
521
|
+
rowUpdate = column.valueSetter(fieldProps.value, rowUpdate, column, apiRef);
|
|
525
522
|
} else {
|
|
526
523
|
rowUpdate[field] = fieldProps.value;
|
|
527
524
|
}
|
|
@@ -99,7 +99,7 @@ const getFilterCallbackFromItem = (filterItem, apiRef) => {
|
|
|
99
99
|
let parsedValue;
|
|
100
100
|
if (column.valueParser) {
|
|
101
101
|
const parser = column.valueParser;
|
|
102
|
-
parsedValue = Array.isArray(filterItem.value) ? filterItem.value?.map(x => parser(x)) : parser(filterItem.value);
|
|
102
|
+
parsedValue = Array.isArray(filterItem.value) ? filterItem.value?.map(x => parser(x, undefined, column, apiRef)) : parser(filterItem.value, undefined, column, apiRef);
|
|
103
103
|
} else {
|
|
104
104
|
parsedValue = filterItem.value;
|
|
105
105
|
}
|
|
@@ -12,7 +12,7 @@ exports.getMinimalContentHeight = getMinimalContentHeight;
|
|
|
12
12
|
exports.updateCacheWithNewRows = exports.isAutoGeneratedRow = exports.getTreeNodeDescendants = exports.getTopLevelRowCount = exports.getRowsStateFromCache = exports.getRowIdFromRowModel = void 0;
|
|
13
13
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
14
14
|
var _gridRowsSelector = require("./gridRowsSelector");
|
|
15
|
-
var
|
|
15
|
+
var _gridDimensionsSelectors = require("../dimensions/gridDimensionsSelectors");
|
|
16
16
|
const GRID_ROOT_GROUP_ID = exports.GRID_ROOT_GROUP_ID = `auto-generated-group-node-root`;
|
|
17
17
|
const GRID_ID_AUTOGENERATED = exports.GRID_ID_AUTOGENERATED = Symbol('mui.id_autogenerated');
|
|
18
18
|
const buildRootGroup = () => ({
|
|
@@ -299,6 +299,6 @@ function calculatePinnedRowsHeight(apiRef) {
|
|
|
299
299
|
};
|
|
300
300
|
}
|
|
301
301
|
function getMinimalContentHeight(apiRef) {
|
|
302
|
-
const dimensions = (0,
|
|
302
|
+
const dimensions = (0, _gridDimensionsSelectors.gridDimensionsSelector)(apiRef.current.state);
|
|
303
303
|
return `var(--DataGrid-overlayHeight, ${2 * dimensions.rowHeight}px)`;
|
|
304
304
|
}
|
|
@@ -7,7 +7,6 @@ exports.MissingRowIdError = void 0;
|
|
|
7
7
|
exports.useGridParamsApi = useGridParamsApi;
|
|
8
8
|
var React = _interopRequireWildcard(require("react"));
|
|
9
9
|
var _domUtils = require("../../../utils/domUtils");
|
|
10
|
-
var _gridRowsUtils = require("./gridRowsUtils");
|
|
11
10
|
var _useGridApiMethod = require("../../utils/useGridApiMethod");
|
|
12
11
|
var _gridFocusStateSelector = require("../focus/gridFocusStateSelector");
|
|
13
12
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
@@ -23,10 +22,7 @@ class MissingRowIdError extends Error {}
|
|
|
23
22
|
* TODO: Impossible priority - useGridFocus also needs to be after useGridParamsApi
|
|
24
23
|
*/
|
|
25
24
|
exports.MissingRowIdError = MissingRowIdError;
|
|
26
|
-
function useGridParamsApi(apiRef
|
|
27
|
-
const {
|
|
28
|
-
getRowId
|
|
29
|
-
} = props;
|
|
25
|
+
function useGridParamsApi(apiRef) {
|
|
30
26
|
const getColumnHeaderParams = React.useCallback(field => ({
|
|
31
27
|
field,
|
|
32
28
|
colDef: apiRef.current.getColumn(field)
|
|
@@ -43,28 +39,6 @@ function useGridParamsApi(apiRef, props) {
|
|
|
43
39
|
};
|
|
44
40
|
return params;
|
|
45
41
|
}, [apiRef]);
|
|
46
|
-
const getBaseCellParams = React.useCallback((id, field) => {
|
|
47
|
-
const row = apiRef.current.getRow(id);
|
|
48
|
-
const rowNode = apiRef.current.getRowNode(id);
|
|
49
|
-
if (!row || !rowNode) {
|
|
50
|
-
throw new MissingRowIdError(`No row with id #${id} found`);
|
|
51
|
-
}
|
|
52
|
-
const cellFocus = (0, _gridFocusStateSelector.gridFocusCellSelector)(apiRef);
|
|
53
|
-
const cellTabIndex = (0, _gridFocusStateSelector.gridTabIndexCellSelector)(apiRef);
|
|
54
|
-
const params = {
|
|
55
|
-
id,
|
|
56
|
-
field,
|
|
57
|
-
row,
|
|
58
|
-
rowNode,
|
|
59
|
-
value: row[field],
|
|
60
|
-
colDef: apiRef.current.getColumn(field),
|
|
61
|
-
cellMode: apiRef.current.getCellMode(id, field),
|
|
62
|
-
api: apiRef.current,
|
|
63
|
-
hasFocus: cellFocus !== null && cellFocus.field === field && cellFocus.id === id,
|
|
64
|
-
tabIndex: cellTabIndex && cellTabIndex.field === field && cellTabIndex.id === id ? 0 : -1
|
|
65
|
-
};
|
|
66
|
-
return params;
|
|
67
|
-
}, [apiRef]);
|
|
68
42
|
const getCellParams = React.useCallback((id, field) => {
|
|
69
43
|
const colDef = apiRef.current.getColumn(field);
|
|
70
44
|
const value = apiRef.current.getCellValue(id, field);
|
|
@@ -89,12 +63,7 @@ function useGridParamsApi(apiRef, props) {
|
|
|
89
63
|
isEditable: false
|
|
90
64
|
};
|
|
91
65
|
if (colDef && colDef.valueFormatter) {
|
|
92
|
-
params.formattedValue = colDef.valueFormatter(
|
|
93
|
-
id,
|
|
94
|
-
field: params.field,
|
|
95
|
-
value: params.value,
|
|
96
|
-
api: apiRef.current
|
|
97
|
-
});
|
|
66
|
+
params.formattedValue = colDef.valueFormatter(value, row, colDef, apiRef);
|
|
98
67
|
}
|
|
99
68
|
params.isEditable = colDef && apiRef.current.isCellEditable(params);
|
|
100
69
|
return params;
|
|
@@ -108,30 +77,28 @@ function useGridParamsApi(apiRef, props) {
|
|
|
108
77
|
}
|
|
109
78
|
return rowModel[field];
|
|
110
79
|
}
|
|
111
|
-
|
|
112
|
-
|
|
80
|
+
const row = apiRef.current.getRow(id);
|
|
81
|
+
if (!row) {
|
|
82
|
+
throw new MissingRowIdError(`No row with id #${id} found`);
|
|
83
|
+
}
|
|
84
|
+
const value = row[colDef.field];
|
|
85
|
+
return colDef.valueGetter(value, row, colDef, apiRef);
|
|
86
|
+
}, [apiRef]);
|
|
113
87
|
const getRowValue = React.useCallback((row, colDef) => {
|
|
114
|
-
const id = _gridRowsUtils.GRID_ID_AUTOGENERATED in row ? row[_gridRowsUtils.GRID_ID_AUTOGENERATED] : getRowId?.(row) ?? row.id;
|
|
115
88
|
const field = colDef.field;
|
|
116
89
|
if (!colDef || !colDef.valueGetter) {
|
|
117
90
|
return row[field];
|
|
118
91
|
}
|
|
119
|
-
|
|
120
|
-
|
|
92
|
+
const value = row[colDef.field];
|
|
93
|
+
return colDef.valueGetter(value, row, colDef, apiRef);
|
|
94
|
+
}, [apiRef]);
|
|
121
95
|
const getRowFormattedValue = React.useCallback((row, colDef) => {
|
|
122
96
|
const value = getRowValue(row, colDef);
|
|
123
97
|
if (!colDef || !colDef.valueFormatter) {
|
|
124
98
|
return value;
|
|
125
99
|
}
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
return colDef.valueFormatter({
|
|
129
|
-
id,
|
|
130
|
-
field,
|
|
131
|
-
value,
|
|
132
|
-
api: apiRef.current
|
|
133
|
-
});
|
|
134
|
-
}, [apiRef, getRowId, getRowValue]);
|
|
100
|
+
return colDef.valueFormatter(value, row, colDef, apiRef);
|
|
101
|
+
}, [apiRef, getRowValue]);
|
|
135
102
|
const getColumnHeaderElement = React.useCallback(field => {
|
|
136
103
|
if (!apiRef.current.rootElementRef.current) {
|
|
137
104
|
return null;
|
|
@@ -131,7 +131,7 @@ const useGridRows = (apiRef, props) => {
|
|
|
131
131
|
}, [logger, props.getRowId, props.loading, props.rowCount, throttledRowsChange, apiRef]);
|
|
132
132
|
const updateRows = React.useCallback(updates => {
|
|
133
133
|
if (props.signature === _useGridApiEventHandler.GridSignature.DataGrid && updates.length > 1) {
|
|
134
|
-
throw new Error([
|
|
134
|
+
throw new Error(['MUI X: You cannot update several rows at once in `apiRef.current.updateRows` on the DataGrid.', 'You need to upgrade to DataGridPro or DataGridPremium component to unlock this feature.'].join('\n'));
|
|
135
135
|
}
|
|
136
136
|
const nonPinnedRowsUpdates = [];
|
|
137
137
|
updates.forEach(update => {
|
|
@@ -256,7 +256,7 @@ const useGridRows = (apiRef, props) => {
|
|
|
256
256
|
}, [apiRef, logger]);
|
|
257
257
|
const replaceRows = React.useCallback((firstRowToRender, newRows) => {
|
|
258
258
|
if (props.signature === _useGridApiEventHandler.GridSignature.DataGrid && newRows.length > 1) {
|
|
259
|
-
throw new Error([
|
|
259
|
+
throw new Error(['MUI X: You cannot replace rows using `apiRef.current.unstable_replaceRows` on the DataGrid.', 'You need to upgrade to DataGridPro or DataGridPremium component to unlock this feature.'].join('\n'));
|
|
260
260
|
}
|
|
261
261
|
if (newRows.length === 0) {
|
|
262
262
|
return;
|
|
@@ -57,7 +57,6 @@ const useGridVirtualScroller = () => {
|
|
|
57
57
|
const gridRootRef = apiRef.current.rootElementRef;
|
|
58
58
|
const mainRef = apiRef.current.mainElementRef;
|
|
59
59
|
const scrollerRef = apiRef.current.virtualScrollerRef;
|
|
60
|
-
const renderZoneRef = React.useRef(null);
|
|
61
60
|
const scrollbarVerticalRef = React.useRef(null);
|
|
62
61
|
const scrollbarHorizontalRef = React.useRef(null);
|
|
63
62
|
const contentHeight = dimensions.contentSize.height;
|
|
@@ -255,6 +254,14 @@ const useGridVirtualScroller = () => {
|
|
|
255
254
|
id,
|
|
256
255
|
model
|
|
257
256
|
} = renderedRows[i];
|
|
257
|
+
const rowIndexInPage = (currentPage?.range?.firstRowIndex || 0) + firstRowToRender + i;
|
|
258
|
+
let index = rowIndexOffset + rowIndexInPage;
|
|
259
|
+
if (isRowWithFocusedCellNotInRange && cellFocus?.id === id) {
|
|
260
|
+
index = indexOfRowWithFocusedCell;
|
|
261
|
+
isRowWithFocusedCellRendered = true;
|
|
262
|
+
} else if (isRowWithFocusedCellRendered) {
|
|
263
|
+
index -= 1;
|
|
264
|
+
}
|
|
258
265
|
const isRowNotVisible = isRowWithFocusedCellNotInRange && cellFocus.id === id;
|
|
259
266
|
const baseRowHeight = !apiRef.current.rowHasAutoHeight(id) ? apiRef.current.unstable_getRowHeight(id) : 'auto';
|
|
260
267
|
let isSelected;
|
|
@@ -265,7 +272,7 @@ const useGridVirtualScroller = () => {
|
|
|
265
272
|
}
|
|
266
273
|
let isFirstVisible = false;
|
|
267
274
|
if (params.position === undefined) {
|
|
268
|
-
isFirstVisible =
|
|
275
|
+
isFirstVisible = rowIndexInPage === 0;
|
|
269
276
|
}
|
|
270
277
|
let isLastVisible = false;
|
|
271
278
|
if (isLastSection) {
|
|
@@ -287,13 +294,6 @@ const useGridVirtualScroller = () => {
|
|
|
287
294
|
const cellParams = apiRef.current.getCellParams(id, cellTabIndex.field);
|
|
288
295
|
tabbableCell = cellParams.cellMode === 'view' ? cellTabIndex.field : null;
|
|
289
296
|
}
|
|
290
|
-
let index = rowIndexOffset + (currentPage?.range?.firstRowIndex || 0) + firstRowToRender + i;
|
|
291
|
-
if (isRowWithFocusedCellNotInRange && cellFocus?.id === id) {
|
|
292
|
-
index = indexOfRowWithFocusedCell;
|
|
293
|
-
isRowWithFocusedCellRendered = true;
|
|
294
|
-
} else if (isRowWithFocusedCellRendered) {
|
|
295
|
-
index -= 1;
|
|
296
|
-
}
|
|
297
297
|
rows.push( /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.row, (0, _extends2.default)({
|
|
298
298
|
row: model,
|
|
299
299
|
rowId: id,
|
|
@@ -394,7 +394,6 @@ const useGridVirtualScroller = () => {
|
|
|
394
394
|
role: 'presentation'
|
|
395
395
|
}),
|
|
396
396
|
getRenderZoneProps: () => ({
|
|
397
|
-
ref: renderZoneRef,
|
|
398
397
|
role: 'rowgroup'
|
|
399
398
|
}),
|
|
400
399
|
getScrollbarVerticalProps: () => ({
|
package/node/index.js
CHANGED
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.validateProps = exports.propValidatorsDataGrid = void 0;
|
|
7
|
-
const propValidatorsDataGrid = exports.propValidatorsDataGrid = [props => props.autoPageSize && props.autoHeight && ['MUI X: `<DataGrid autoPageSize={true} autoHeight={true} />` are not valid props.', 'You
|
|
7
|
+
const propValidatorsDataGrid = exports.propValidatorsDataGrid = [props => props.autoPageSize && props.autoHeight && ['MUI X: `<DataGrid autoPageSize={true} autoHeight={true} />` are not valid props.', 'You cannot use both the `autoPageSize` and `autoHeight` props at the same time because `autoHeight` scales the height of the Data Grid according to the `pageSize`.', '', 'Please remove one of these two props.'].join('\n') || undefined];
|
|
8
8
|
const warnedOnceMap = new Set();
|
|
9
9
|
const warnOnce = message => {
|
|
10
10
|
if (!warnedOnceMap.has(message)) {
|
package/node/joy/joySlots.js
CHANGED
|
@@ -406,8 +406,8 @@ const joySlots = (0, _extends2.default)({}, _icons.default, {
|
|
|
406
406
|
baseSelect: Select,
|
|
407
407
|
baseSelectOption: Option,
|
|
408
408
|
baseInputLabel: InputLabel,
|
|
409
|
-
baseFormControl: _FormControl.default
|
|
410
|
-
baseTooltip: _Tooltip.default
|
|
409
|
+
baseFormControl: _FormControl.default /* FIXME: typing error */,
|
|
410
|
+
baseTooltip: _Tooltip.default /* FIXME: typing error */,
|
|
411
411
|
pagination: Pagination,
|
|
412
412
|
loadingOverlay: LoadingOverlay
|
|
413
413
|
});
|
package/node/locales/daDK.js
CHANGED
|
@@ -17,8 +17,8 @@ const daDKGrid = {
|
|
|
17
17
|
toolbarDensityStandard: 'Standard',
|
|
18
18
|
toolbarDensityComfortable: 'Luftig',
|
|
19
19
|
// Columns selector toolbar button text
|
|
20
|
-
toolbarColumns: '
|
|
21
|
-
toolbarColumnsLabel: 'Vælg
|
|
20
|
+
toolbarColumns: 'Kolonner',
|
|
21
|
+
toolbarColumnsLabel: 'Vælg kolonner',
|
|
22
22
|
// Filters toolbar button text
|
|
23
23
|
toolbarFilters: 'Filtre',
|
|
24
24
|
toolbarFiltersLabel: 'Vis filtre',
|
|
@@ -45,12 +45,12 @@ const daDKGrid = {
|
|
|
45
45
|
filterPanelRemoveAll: 'Fjern alle',
|
|
46
46
|
filterPanelDeleteIconLabel: 'Slet',
|
|
47
47
|
filterPanelLogicOperator: 'Logisk operator',
|
|
48
|
-
filterPanelOperator: '
|
|
48
|
+
filterPanelOperator: 'Operator',
|
|
49
49
|
filterPanelOperatorAnd: 'Og',
|
|
50
50
|
filterPanelOperatorOr: 'Eller',
|
|
51
|
-
filterPanelColumns: '
|
|
51
|
+
filterPanelColumns: 'Kolonner',
|
|
52
52
|
filterPanelInputLabel: 'Værdi',
|
|
53
|
-
filterPanelInputPlaceholder: '
|
|
53
|
+
filterPanelInputPlaceholder: 'Filterværdi',
|
|
54
54
|
// Filter operators text
|
|
55
55
|
filterOperatorContains: 'indeholder',
|
|
56
56
|
filterOperatorEquals: 'lig med',
|
|
@@ -97,10 +97,10 @@ const daDKGrid = {
|
|
|
97
97
|
filterValueFalse: 'negativ',
|
|
98
98
|
// Column menu text
|
|
99
99
|
columnMenuLabel: 'Menu',
|
|
100
|
-
columnMenuShowColumns: 'Vis
|
|
100
|
+
columnMenuShowColumns: 'Vis kolonner',
|
|
101
101
|
columnMenuManageColumns: 'Administrer kolonner',
|
|
102
|
-
columnMenuFilter: '
|
|
103
|
-
columnMenuHideColumn: 'Skjul',
|
|
102
|
+
columnMenuFilter: 'Filtrer',
|
|
103
|
+
columnMenuHideColumn: 'Skjul kolonne',
|
|
104
104
|
columnMenuUnsort: 'Fjern sortering',
|
|
105
105
|
columnMenuSortAsc: 'Sorter stigende',
|
|
106
106
|
columnMenuSortDesc: 'Sorter faldende',
|
|
@@ -130,13 +130,13 @@ const daDKGrid = {
|
|
|
130
130
|
pinToRight: 'Fastgør til højre',
|
|
131
131
|
unpin: 'Frigiv',
|
|
132
132
|
// Tree Data
|
|
133
|
-
treeDataGroupingHeaderName: '
|
|
133
|
+
treeDataGroupingHeaderName: 'Gruppe',
|
|
134
134
|
treeDataExpand: 'Vis underelementer',
|
|
135
135
|
treeDataCollapse: 'Skjul underelementer',
|
|
136
136
|
// Grouping columns
|
|
137
|
-
groupingColumnHeaderName: '
|
|
137
|
+
groupingColumnHeaderName: 'Gruppe',
|
|
138
138
|
groupColumn: name => `Gruppér efter ${name}`,
|
|
139
|
-
unGroupColumn: name => `Fjern
|
|
139
|
+
unGroupColumn: name => `Fjern gruppering efter ${name}`,
|
|
140
140
|
// Master/detail
|
|
141
141
|
detailPanelToggle: 'Udvid/kollaps detaljepanel',
|
|
142
142
|
expandDetailPanel: 'Udvid',
|
|
@@ -144,7 +144,7 @@ const daDKGrid = {
|
|
|
144
144
|
// Row reordering text
|
|
145
145
|
rowReorderingHeaderName: 'Omarrangering af rækker',
|
|
146
146
|
// Aggregation
|
|
147
|
-
aggregationMenuItemHeader: '
|
|
147
|
+
aggregationMenuItemHeader: 'Aggregering',
|
|
148
148
|
aggregationFunctionLabelSum: 'sum',
|
|
149
149
|
aggregationFunctionLabelAvg: 'gns',
|
|
150
150
|
aggregationFunctionLabelMin: 'min',
|