@mui/x-data-grid 7.22.2 → 8.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.
Files changed (109) hide show
  1. package/CHANGELOG.md +142 -155
  2. package/README.md +2 -2
  3. package/components/GridDetailPanels.js +0 -1
  4. package/components/GridPinnedRows.js +0 -1
  5. package/components/GridRow.d.ts +2 -2
  6. package/components/GridRow.js +3 -28
  7. package/components/base/GridOverlays.js +10 -8
  8. package/components/cell/GridActionsCell.js +1 -2
  9. package/components/cell/GridActionsCellItem.js +1 -2
  10. package/components/cell/GridCell.d.ts +41 -3
  11. package/components/cell/GridCell.js +1 -9
  12. package/components/cell/GridEditInputCell.js +0 -67
  13. package/components/containers/GridRootStyles.js +1 -0
  14. package/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +1 -2
  15. package/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +1 -2
  16. package/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +1 -2
  17. package/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +3 -4
  18. package/components/panel/GridPanel.d.ts +1 -1
  19. package/components/toolbar/GridToolbar.d.ts +2 -2
  20. package/components/toolbar/GridToolbar.js +12 -4
  21. package/components/toolbar/GridToolbarColumnsButton.js +1 -1
  22. package/components/toolbar/GridToolbarDensitySelector.js +2 -4
  23. package/components/toolbar/GridToolbarExport.d.ts +2 -2
  24. package/components/toolbar/GridToolbarExport.js +9 -6
  25. package/components/toolbar/GridToolbarExportContainer.js +1 -2
  26. package/components/toolbar/index.d.ts +1 -1
  27. package/hooks/features/columnResize/useGridColumnResize.js +4 -2
  28. package/hooks/features/export/useGridCsvExport.js +1 -1
  29. package/hooks/features/export/useGridPrintExport.js +1 -1
  30. package/hooks/features/pagination/useGridPaginationModel.js +2 -2
  31. package/hooks/features/rows/gridRowsUtils.d.ts +1 -1
  32. package/hooks/features/rows/gridRowsUtils.js +1 -5
  33. package/hooks/features/virtualization/useGridVirtualScroller.js +4 -4
  34. package/hooks/utils/useGridSelector.d.ts +3 -2
  35. package/hooks/utils/useGridSelector.js +27 -2
  36. package/index.d.ts +0 -1
  37. package/index.js +1 -1
  38. package/locales/plPL.js +25 -28
  39. package/locales/trTR.js +2 -2
  40. package/material/index.js +4 -0
  41. package/models/gridSlotsComponent.d.ts +10 -0
  42. package/models/gridSlotsComponentsProps.d.ts +8 -0
  43. package/models/props/DataGridProps.d.ts +1 -1
  44. package/modern/components/GridDetailPanels.js +0 -1
  45. package/modern/components/GridPinnedRows.js +0 -1
  46. package/modern/components/GridRow.js +3 -28
  47. package/modern/components/base/GridOverlays.js +10 -8
  48. package/modern/components/cell/GridActionsCell.js +1 -2
  49. package/modern/components/cell/GridActionsCellItem.js +1 -2
  50. package/modern/components/cell/GridCell.js +1 -9
  51. package/modern/components/cell/GridEditInputCell.js +0 -67
  52. package/modern/components/containers/GridRootStyles.js +1 -0
  53. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +1 -2
  54. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +1 -2
  55. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +1 -2
  56. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +3 -4
  57. package/modern/components/toolbar/GridToolbar.js +12 -4
  58. package/modern/components/toolbar/GridToolbarColumnsButton.js +1 -1
  59. package/modern/components/toolbar/GridToolbarDensitySelector.js +2 -4
  60. package/modern/components/toolbar/GridToolbarExport.js +9 -6
  61. package/modern/components/toolbar/GridToolbarExportContainer.js +1 -2
  62. package/modern/hooks/features/columnResize/useGridColumnResize.js +4 -2
  63. package/modern/hooks/features/export/useGridCsvExport.js +1 -1
  64. package/modern/hooks/features/export/useGridPrintExport.js +1 -1
  65. package/modern/hooks/features/pagination/useGridPaginationModel.js +2 -2
  66. package/modern/hooks/features/rows/gridRowsUtils.js +1 -5
  67. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +4 -4
  68. package/modern/hooks/utils/useGridSelector.js +27 -2
  69. package/modern/index.js +1 -1
  70. package/modern/locales/plPL.js +25 -28
  71. package/modern/locales/trTR.js +2 -2
  72. package/modern/material/index.js +4 -0
  73. package/modern/utils/createSelector.js +11 -1
  74. package/modern/utils/utils.js +1 -3
  75. package/node/components/GridDetailPanels.js +0 -1
  76. package/node/components/GridPinnedRows.js +0 -1
  77. package/node/components/GridRow.js +3 -28
  78. package/node/components/base/GridOverlays.js +10 -8
  79. package/node/components/cell/GridActionsCell.js +1 -2
  80. package/node/components/cell/GridActionsCellItem.js +1 -2
  81. package/node/components/cell/GridCell.js +1 -9
  82. package/node/components/cell/GridEditInputCell.js +0 -67
  83. package/node/components/containers/GridRootStyles.js +1 -0
  84. package/node/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +1 -2
  85. package/node/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +1 -2
  86. package/node/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +1 -2
  87. package/node/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +3 -4
  88. package/node/components/toolbar/GridToolbar.js +12 -4
  89. package/node/components/toolbar/GridToolbarColumnsButton.js +3 -3
  90. package/node/components/toolbar/GridToolbarDensitySelector.js +2 -4
  91. package/node/components/toolbar/GridToolbarExport.js +9 -6
  92. package/node/components/toolbar/GridToolbarExportContainer.js +1 -2
  93. package/node/hooks/features/columnResize/useGridColumnResize.js +4 -2
  94. package/node/hooks/features/export/useGridCsvExport.js +2 -2
  95. package/node/hooks/features/export/useGridPrintExport.js +2 -2
  96. package/node/hooks/features/pagination/useGridPaginationModel.js +2 -2
  97. package/node/hooks/features/rows/gridRowsUtils.js +2 -8
  98. package/node/hooks/features/virtualization/useGridVirtualScroller.js +4 -4
  99. package/node/hooks/utils/useGridSelector.js +29 -3
  100. package/node/index.js +1 -1
  101. package/node/locales/plPL.js +25 -28
  102. package/node/locales/trTR.js +2 -2
  103. package/node/material/index.js +4 -0
  104. package/node/utils/createSelector.js +11 -1
  105. package/node/utils/utils.js +1 -3
  106. package/package.json +3 -3
  107. package/utils/createSelector.d.ts +1 -1
  108. package/utils/createSelector.js +11 -1
  109. package/utils/utils.js +1 -3
@@ -10,7 +10,6 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
10
10
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
11
  var React = _interopRequireWildcard(require("react"));
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
- var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
14
13
  var _ListItemIcon = _interopRequireDefault(require("@mui/material/ListItemIcon"));
15
14
  var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
16
15
  var _jsxRuntime = require("react/jsx-runtime");
@@ -55,7 +54,7 @@ const GridActionsCellItem = exports.GridActionsCellItem = /*#__PURE__*/React.for
55
54
  closeMenu?.();
56
55
  }
57
56
  };
58
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_MenuItem.default, (0, _extends2.default)({
57
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(rootProps.slots.baseMenuItem, (0, _extends2.default)({
59
58
  ref: ref
60
59
  }, other, {
61
60
  onClick: handleClick,
@@ -26,7 +26,7 @@ var _cellBorderUtils = require("../../utils/cellBorderUtils");
26
26
  var _gridColumnsInterfaces = require("../../hooks/features/columns/gridColumnsInterfaces");
27
27
  var _gridRowSpanningSelectors = require("../../hooks/features/rows/gridRowSpanningSelectors");
28
28
  var _jsxRuntime = require("react/jsx-runtime");
29
- const _excluded = ["column", "rowId", "editCellState", "align", "children", "colIndex", "width", "className", "style", "gridHasScrollX", "colSpan", "disableDragEvents", "isNotVisible", "pinnedOffset", "pinnedPosition", "sectionIndex", "sectionLength", "gridHasFiller", "onClick", "onDoubleClick", "onMouseDown", "onMouseUp", "onMouseOver", "onKeyDown", "onKeyUp", "onDragEnter", "onDragOver"],
29
+ const _excluded = ["column", "rowId", "editCellState", "align", "children", "colIndex", "width", "className", "style", "colSpan", "disableDragEvents", "isNotVisible", "pinnedOffset", "pinnedPosition", "sectionIndex", "sectionLength", "gridHasFiller", "onClick", "onDoubleClick", "onMouseDown", "onMouseUp", "onMouseOver", "onKeyDown", "onKeyUp", "onDragEnter", "onDragOver"],
30
30
  _excluded2 = ["changeReason", "unstable_updateValueOnRender"];
31
31
  let PinnedPosition = exports.PinnedPosition = /*#__PURE__*/function (PinnedPosition) {
32
32
  PinnedPosition[PinnedPosition["NONE"] = 0] = "NONE";
@@ -350,7 +350,6 @@ process.env.NODE_ENV !== "production" ? GridCell.propTypes = {
350
350
  // | To update them edit the TypeScript types and run "pnpm proptypes" |
351
351
  // ----------------------------------------------------------------------
352
352
  align: _propTypes.default.oneOf(['center', 'left', 'right']).isRequired,
353
- className: _propTypes.default.string,
354
353
  colIndex: _propTypes.default.number.isRequired,
355
354
  colSpan: _propTypes.default.number,
356
355
  column: _propTypes.default.object.isRequired,
@@ -363,13 +362,6 @@ process.env.NODE_ENV !== "production" ? GridCell.propTypes = {
363
362
  }),
364
363
  gridHasFiller: _propTypes.default.bool.isRequired,
365
364
  isNotVisible: _propTypes.default.bool.isRequired,
366
- onClick: _propTypes.default.func,
367
- onDoubleClick: _propTypes.default.func,
368
- onDragEnter: _propTypes.default.func,
369
- onDragOver: _propTypes.default.func,
370
- onKeyDown: _propTypes.default.func,
371
- onMouseDown: _propTypes.default.func,
372
- onMouseUp: _propTypes.default.func,
373
365
  pinnedOffset: _propTypes.default.number.isRequired,
374
366
  pinnedPosition: _propTypes.default.oneOf([0, 1, 2, 3]).isRequired,
375
367
  rowId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired,
@@ -9,7 +9,6 @@ exports.renderEditInputCell = exports.GridEditInputCell = void 0;
9
9
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
  var React = _interopRequireWildcard(require("react"));
12
- var _propTypes = _interopRequireDefault(require("prop-types"));
13
12
  var _utils = require("@mui/utils");
14
13
  var _styles = require("@mui/material/styles");
15
14
  var _InputBase = _interopRequireDefault(require("@mui/material/InputBase"));
@@ -102,71 +101,5 @@ const GridEditInputCell = exports.GridEditInputCell = /*#__PURE__*/React.forward
102
101
  }) : undefined
103
102
  }, other));
104
103
  });
105
- process.env.NODE_ENV !== "production" ? GridEditInputCell.propTypes = {
106
- // ----------------------------- Warning --------------------------------
107
- // | These PropTypes are generated from the TypeScript type definitions |
108
- // | To update them edit the TypeScript types and run "pnpm proptypes" |
109
- // ----------------------------------------------------------------------
110
- /**
111
- * GridApi that let you manipulate the grid.
112
- */
113
- api: _propTypes.default.object.isRequired,
114
- /**
115
- * The mode of the cell.
116
- */
117
- cellMode: _propTypes.default.oneOf(['edit', 'view']).isRequired,
118
- changeReason: _propTypes.default.oneOf(['debouncedSetEditCellValue', 'setEditCellValue']),
119
- /**
120
- * The column of the row that the current cell belongs to.
121
- */
122
- colDef: _propTypes.default.object.isRequired,
123
- debounceMs: _propTypes.default.number,
124
- /**
125
- * The column field of the cell that triggered the event.
126
- */
127
- field: _propTypes.default.string.isRequired,
128
- /**
129
- * The cell value formatted with the column valueFormatter.
130
- */
131
- formattedValue: _propTypes.default.any,
132
- /**
133
- * If true, the cell is the active element.
134
- */
135
- hasFocus: _propTypes.default.bool.isRequired,
136
- /**
137
- * The grid row id.
138
- */
139
- id: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired,
140
- /**
141
- * If true, the cell is editable.
142
- */
143
- isEditable: _propTypes.default.bool,
144
- isProcessingProps: _propTypes.default.bool,
145
- isValidating: _propTypes.default.bool,
146
- /**
147
- * Callback called when the value is changed by the user.
148
- * @param {React.ChangeEvent<HTMLInputElement>} event The event source of the callback.
149
- * @param {Date | null} newValue The value that is going to be passed to `apiRef.current.setEditCellValue`.
150
- * @returns {Promise<void> | void} A promise to be awaited before calling `apiRef.current.setEditCellValue`
151
- */
152
- onValueChange: _propTypes.default.func,
153
- /**
154
- * The row model of the row that the current cell belongs to.
155
- */
156
- row: _propTypes.default.any.isRequired,
157
- /**
158
- * The node of the row that the current cell belongs to.
159
- */
160
- rowNode: _propTypes.default.object.isRequired,
161
- /**
162
- * the tabIndex value.
163
- */
164
- tabIndex: _propTypes.default.oneOf([-1, 0]).isRequired,
165
- /**
166
- * The cell value.
167
- * If the column has `valueGetter`, use `params.row` to directly access the fields.
168
- */
169
- value: _propTypes.default.any
170
- } : void 0;
171
104
  const renderEditInputCell = params => /*#__PURE__*/(0, _jsxRuntime.jsx)(GridEditInputCell, (0, _extends2.default)({}, params));
172
105
  exports.renderEditInputCell = renderEditInputCell;
@@ -551,6 +551,7 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
551
551
  lineHeight: 'inherit'
552
552
  },
553
553
  [`& .${_gridClasses.gridClasses.cellEmpty}`]: {
554
+ flex: 1,
554
555
  padding: 0,
555
556
  height: 'unset'
556
557
  },
@@ -8,7 +8,6 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.GridColumnMenuFilterItem = GridColumnMenuFilterItem;
9
9
  var React = _interopRequireWildcard(require("react"));
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
- var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
12
11
  var _ListItemIcon = _interopRequireDefault(require("@mui/material/ListItemIcon"));
13
12
  var _ListItemText = _interopRequireDefault(require("@mui/material/ListItemText"));
14
13
  var _useGridApiContext = require("../../../../hooks/utils/useGridApiContext");
@@ -28,7 +27,7 @@ function GridColumnMenuFilterItem(props) {
28
27
  if (rootProps.disableColumnFilter || !colDef.filterable) {
29
28
  return null;
30
29
  }
31
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_MenuItem.default, {
30
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(rootProps.slots.baseMenuItem, {
32
31
  onClick: showFilter,
33
32
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemIcon.default, {
34
33
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnMenuFilterIcon, {
@@ -8,7 +8,6 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.GridColumnMenuHideItem = GridColumnMenuHideItem;
9
9
  var React = _interopRequireWildcard(require("react"));
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
- var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
12
11
  var _ListItemIcon = _interopRequireDefault(require("@mui/material/ListItemIcon"));
13
12
  var _ListItemText = _interopRequireDefault(require("@mui/material/ListItemText"));
14
13
  var _useGridApiContext = require("../../../../hooks/utils/useGridApiContext");
@@ -44,7 +43,7 @@ function GridColumnMenuHideItem(props) {
44
43
  if (colDef.hideable === false) {
45
44
  return null;
46
45
  }
47
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_MenuItem.default, {
46
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(rootProps.slots.baseMenuItem, {
48
47
  onClick: toggleColumn,
49
48
  disabled: disabled,
50
49
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemIcon.default, {
@@ -8,7 +8,6 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.GridColumnMenuManageItem = GridColumnMenuManageItem;
9
9
  var React = _interopRequireWildcard(require("react"));
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
- var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
12
11
  var _ListItemIcon = _interopRequireDefault(require("@mui/material/ListItemIcon"));
13
12
  var _ListItemText = _interopRequireDefault(require("@mui/material/ListItemText"));
14
13
  var _gridPreferencePanelsValue = require("../../../../hooks/features/preferencesPanel/gridPreferencePanelsValue");
@@ -28,7 +27,7 @@ function GridColumnMenuManageItem(props) {
28
27
  if (rootProps.disableColumnSelector) {
29
28
  return null;
30
29
  }
31
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_MenuItem.default, {
30
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(rootProps.slots.baseMenuItem, {
32
31
  onClick: showColumns,
33
32
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemIcon.default, {
34
33
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnMenuManageColumnsIcon, {
@@ -8,7 +8,6 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.GridColumnMenuSortItem = GridColumnMenuSortItem;
9
9
  var React = _interopRequireWildcard(require("react"));
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
- var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
12
11
  var _ListItemIcon = _interopRequireDefault(require("@mui/material/ListItemIcon"));
13
12
  var _ListItemText = _interopRequireDefault(require("@mui/material/ListItemText"));
14
13
  var _useGridSelector = require("../../../../hooks/utils/useGridSelector");
@@ -45,7 +44,7 @@ function GridColumnMenuSortItem(props) {
45
44
  return typeof label === 'function' ? label(colDef) : label;
46
45
  };
47
46
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
48
- children: [sortingOrder.includes('asc') && sortDirection !== 'asc' ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_MenuItem.default, {
47
+ children: [sortingOrder.includes('asc') && sortDirection !== 'asc' ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(rootProps.slots.baseMenuItem, {
49
48
  onClick: onSortMenuItemClick,
50
49
  "data-value": "asc",
51
50
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemIcon.default, {
@@ -55,7 +54,7 @@ function GridColumnMenuSortItem(props) {
55
54
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemText.default, {
56
55
  children: getLabel('columnMenuSortAsc')
57
56
  })]
58
- }) : null, sortingOrder.includes('desc') && sortDirection !== 'desc' ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_MenuItem.default, {
57
+ }) : null, sortingOrder.includes('desc') && sortDirection !== 'desc' ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(rootProps.slots.baseMenuItem, {
59
58
  onClick: onSortMenuItemClick,
60
59
  "data-value": "desc",
61
60
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemIcon.default, {
@@ -65,7 +64,7 @@ function GridColumnMenuSortItem(props) {
65
64
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemText.default, {
66
65
  children: getLabel('columnMenuSortDesc')
67
66
  })]
68
- }) : null, sortingOrder.includes(null) && sortDirection != null ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_MenuItem.default, {
67
+ }) : null, sortingOrder.includes(null) && sortDirection != null ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(rootProps.slots.baseMenuItem, {
69
68
  onClick: onSortMenuItemClick,
70
69
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemIcon.default, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemText.default, {
71
70
  children: apiRef.current.getLocaleText('columnMenuUnsort')
@@ -22,14 +22,15 @@ const _excluded = ["className", "csvOptions", "printOptions", "excelOptions", "s
22
22
  const GridToolbar = exports.GridToolbar = /*#__PURE__*/React.forwardRef(function GridToolbar(props, ref) {
23
23
  // TODO v7: think about where export option should be passed.
24
24
  // from slotProps={{ toolbarExport: { ...exportOption } }} seems to be more appropriate
25
- const {
25
+ const _ref = props,
26
+ {
26
27
  csvOptions,
27
28
  printOptions,
28
29
  excelOptions,
29
30
  showQuickFilter = false,
30
31
  quickFilterProps = {}
31
- } = props,
32
- other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
32
+ } = _ref,
33
+ other = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
33
34
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
34
35
  if (rootProps.disableColumnFilter && rootProps.disableColumnSelector && rootProps.disableDensitySelector && !showQuickFilter) {
35
36
  return null;
@@ -40,7 +41,7 @@ const GridToolbar = exports.GridToolbar = /*#__PURE__*/React.forwardRef(function
40
41
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_GridToolbarColumnsButton.GridToolbarColumnsButton, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridToolbarFilterButton.GridToolbarFilterButton, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridToolbarDensitySelector.GridToolbarDensitySelector, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridToolbarExport.GridToolbarExport, {
41
42
  csvOptions: csvOptions,
42
43
  printOptions: printOptions
43
- // TODO: remove the reference to excelOptions in community package
44
+ // @ts-ignore
44
45
  ,
45
46
  excelOptions: excelOptions
46
47
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
@@ -55,6 +56,8 @@ process.env.NODE_ENV !== "production" ? GridToolbar.propTypes = {
55
56
  // | These PropTypes are generated from the TypeScript type definitions |
56
57
  // | To update them edit the TypeScript types and run "pnpm proptypes" |
57
58
  // ----------------------------------------------------------------------
59
+ csvOptions: _propTypes.default.object,
60
+ printOptions: _propTypes.default.object,
58
61
  /**
59
62
  * Props passed to the quick filter component.
60
63
  */
@@ -64,5 +67,10 @@ process.env.NODE_ENV !== "production" ? GridToolbar.propTypes = {
64
67
  * @default false
65
68
  */
66
69
  showQuickFilter: _propTypes.default.bool,
70
+ /**
71
+ * The props used for each slot inside.
72
+ * @default {}
73
+ */
74
+ slotProps: _propTypes.default.object,
67
75
  sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object])
68
76
  } : void 0;
@@ -9,7 +9,7 @@ exports.GridToolbarColumnsButton = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var React = _interopRequireWildcard(require("react"));
11
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
- var _utils = require("@mui/material/utils");
12
+ var _useId = _interopRequireDefault(require("@mui/utils/useId"));
13
13
  var _useGridSelector = require("../../hooks/utils/useGridSelector");
14
14
  var _gridPreferencePanelSelector = require("../../hooks/features/preferencesPanel/gridPreferencePanelSelector");
15
15
  var _gridPreferencePanelsValue = require("../../hooks/features/preferencesPanel/gridPreferencePanelsValue");
@@ -22,8 +22,8 @@ const GridToolbarColumnsButton = exports.GridToolbarColumnsButton = /*#__PURE__*
22
22
  } = props;
23
23
  const buttonProps = slotProps.button || {};
24
24
  const tooltipProps = slotProps.tooltip || {};
25
- const columnButtonId = (0, _utils.unstable_useId)();
26
- const columnPanelId = (0, _utils.unstable_useId)();
25
+ const columnButtonId = (0, _useId.default)();
26
+ const columnPanelId = (0, _useId.default)();
27
27
  const apiRef = (0, _useGridApiContext.useGridApiContext)();
28
28
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
29
29
  const preferencePanel = (0, _useGridSelector.useGridSelector)(apiRef, _gridPreferencePanelSelector.gridPreferencePanelStateSelector);
@@ -10,8 +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 _MenuList = _interopRequireDefault(require("@mui/material/MenuList"));
14
- var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
15
13
  var _ListItemIcon = _interopRequireDefault(require("@mui/material/ListItemIcon"));
16
14
  var _densitySelector = require("../../hooks/features/density/densitySelector");
17
15
  var _keyboardUtils = require("../../utils/keyboardUtils");
@@ -82,7 +80,7 @@ const GridToolbarDensitySelector = exports.GridToolbarDensitySelector = /*#__PUR
82
80
  if (rootProps.disableDensitySelector) {
83
81
  return null;
84
82
  }
85
- const densityElements = densityOptions.map((option, index) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_MenuItem.default, {
83
+ const densityElements = densityOptions.map((option, index) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(rootProps.slots.baseMenuItem, {
86
84
  onClick: () => handleDensityUpdate(option.value),
87
85
  selected: option.value === density,
88
86
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemIcon.default, {
@@ -113,7 +111,7 @@ const GridToolbarDensitySelector = exports.GridToolbarDensitySelector = /*#__PUR
113
111
  target: buttonRef.current,
114
112
  onClose: handleDensitySelectorClose,
115
113
  position: "bottom-start",
116
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_MenuList.default, {
114
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseMenuList, {
117
115
  id: densityMenuId,
118
116
  className: _gridClasses.gridClasses.menuList,
119
117
  "aria-labelledby": densityButtonId,
@@ -12,7 +12,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
12
12
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
13
13
  var React = _interopRequireWildcard(require("react"));
14
14
  var _propTypes = _interopRequireDefault(require("prop-types"));
15
- var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
15
+ var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
16
16
  var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
17
17
  var _GridToolbarExportContainer = require("./GridToolbarExportContainer");
18
18
  var _jsxRuntime = require("react/jsx-runtime");
@@ -21,12 +21,13 @@ const _excluded = ["hideMenu", "options"],
21
21
  _excluded3 = ["csvOptions", "printOptions", "excelOptions"];
22
22
  function GridCsvExportMenuItem(props) {
23
23
  const apiRef = (0, _useGridApiContext.useGridApiContext)();
24
+ const rootProps = (0, _useGridRootProps.useGridRootProps)();
24
25
  const {
25
26
  hideMenu,
26
27
  options
27
28
  } = props,
28
29
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
29
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_MenuItem.default, (0, _extends2.default)({
30
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseMenuItem, (0, _extends2.default)({
30
31
  onClick: () => {
31
32
  apiRef.current.exportDataAsCsv(options);
32
33
  hideMenu?.();
@@ -57,12 +58,13 @@ process.env.NODE_ENV !== "production" ? GridCsvExportMenuItem.propTypes = {
57
58
  } : void 0;
58
59
  function GridPrintExportMenuItem(props) {
59
60
  const apiRef = (0, _useGridApiContext.useGridApiContext)();
61
+ const rootProps = (0, _useGridRootProps.useGridRootProps)();
60
62
  const {
61
63
  hideMenu,
62
64
  options
63
65
  } = props,
64
66
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded2);
65
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_MenuItem.default, (0, _extends2.default)({
67
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseMenuItem, (0, _extends2.default)({
66
68
  onClick: () => {
67
69
  apiRef.current.exportDataAsPrint(options);
68
70
  hideMenu?.();
@@ -92,12 +94,13 @@ process.env.NODE_ENV !== "production" ? GridPrintExportMenuItem.propTypes = {
92
94
  })
93
95
  } : void 0;
94
96
  const GridToolbarExport = exports.GridToolbarExport = /*#__PURE__*/React.forwardRef(function GridToolbarExport(props, ref) {
95
- const {
97
+ const _ref = props,
98
+ {
96
99
  csvOptions = {},
97
100
  printOptions = {},
98
101
  excelOptions
99
- } = props,
100
- other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded3);
102
+ } = _ref,
103
+ other = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded3);
101
104
  const apiRef = (0, _useGridApiContext.useGridApiContext)();
102
105
  const preProcessedButtons = apiRef.current.unstable_applyPipeProcessors('exportMenu', [], {
103
106
  excelOptions,
@@ -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 _MenuList = _interopRequireDefault(require("@mui/material/MenuList"));
14
13
  var _keyboardUtils = require("../../utils/keyboardUtils");
15
14
  var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
16
15
  var _GridMenu = require("../menu/GridMenu");
@@ -71,7 +70,7 @@ const GridToolbarExportContainer = exports.GridToolbarExportContainer = /*#__PUR
71
70
  target: buttonRef.current,
72
71
  onClose: handleMenuClose,
73
72
  position: "bottom-start",
74
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_MenuList.default, {
73
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseMenuList, {
75
74
  id: exportMenuId,
76
75
  className: _gridClasses.gridClasses.menuList,
77
76
  "aria-labelledby": exportButtonId,
@@ -202,8 +202,10 @@ const useGridColumnResize = (apiRef, props) => {
202
202
  const prevWidth = refs.columnHeaderElement.offsetWidth;
203
203
  const widthDiff = newWidth - prevWidth;
204
204
  const columnWidthDiff = newWidth - refs.initialColWidth;
205
- const newTotalWidth = refs.initialTotalWidth + columnWidthDiff;
206
- apiRef.current.rootElementRef?.current?.style.setProperty('--DataGrid-rowWidth', `${newTotalWidth}px`);
205
+ if (columnWidthDiff > 0) {
206
+ const newTotalWidth = refs.initialTotalWidth + columnWidthDiff;
207
+ apiRef.current.rootElementRef?.current?.style.setProperty('--DataGrid-rowWidth', `${newTotalWidth}px`);
208
+ }
207
209
  refs.colDef.computedWidth = newWidth;
208
210
  refs.colDef.width = newWidth;
209
211
  refs.colDef.flex = 0;
@@ -12,7 +12,7 @@ var _exportAs = require("../../../utils/exportAs");
12
12
  var _csvSerializer = require("./serializers/csvSerializer");
13
13
  var _utils = require("./utils");
14
14
  var _pipeProcessing = require("../../core/pipeProcessing");
15
- var _GridToolbarExport = require("../../../components/toolbar/GridToolbarExport");
15
+ var _toolbar = require("../../../components/toolbar");
16
16
  var _jsxRuntime = require("react/jsx-runtime");
17
17
  /**
18
18
  * @requires useGridColumns (state)
@@ -71,7 +71,7 @@ const useGridCsvExport = (apiRef, props) => {
71
71
  return initialValue;
72
72
  }
73
73
  return [...initialValue, {
74
- component: /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridToolbarExport.GridCsvExportMenuItem, {
74
+ component: /*#__PURE__*/(0, _jsxRuntime.jsx)(_toolbar.GridCsvExportMenuItem, {
75
75
  options: options.csvOptions
76
76
  }),
77
77
  componentName: 'csvExport'
@@ -19,7 +19,7 @@ var _gridRowsUtils = require("../rows/gridRowsUtils");
19
19
  var _utils2 = require("./utils");
20
20
  var _useGridPaginationModel = require("../pagination/useGridPaginationModel");
21
21
  var _pipeProcessing = require("../../core/pipeProcessing");
22
- var _GridToolbarExport = require("../../../components/toolbar/GridToolbarExport");
22
+ var _toolbar = require("../../../components/toolbar");
23
23
  var _gridColumnsUtils = require("../columns/gridColumnsUtils");
24
24
  var _gridCheckboxSelectionColDef = require("../../../colDef/gridCheckboxSelectionColDef");
25
25
  var _jsxRuntime = require("react/jsx-runtime");
@@ -288,7 +288,7 @@ const useGridPrintExport = (apiRef, props) => {
288
288
  return initialValue;
289
289
  }
290
290
  return [...initialValue, {
291
- component: /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridToolbarExport.GridPrintExportMenuItem, {
291
+ component: /*#__PURE__*/(0, _jsxRuntime.jsx)(_toolbar.GridPrintExportMenuItem, {
292
292
  options: options.printOptions
293
293
  }),
294
294
  componentName: 'printExport'
@@ -84,7 +84,7 @@ const useGridPaginationModel = (apiRef, props) => {
84
84
  pagination: (0, _extends2.default)({}, state.pagination, {
85
85
  paginationModel: getDerivedPaginationModel(state.pagination, props.signature, paginationModel)
86
86
  })
87
- }));
87
+ }), 'setPaginationModel');
88
88
  }, [apiRef, logger, props.signature]);
89
89
  const paginationModelApi = {
90
90
  setPage,
@@ -122,7 +122,7 @@ const useGridPaginationModel = (apiRef, props) => {
122
122
  pagination: (0, _extends2.default)({}, state.pagination, {
123
123
  paginationModel: getDerivedPaginationModel(state.pagination, props.signature, paginationModel)
124
124
  })
125
- }));
125
+ }), 'stateRestorePreProcessing');
126
126
  return params;
127
127
  }, [apiRef, props.autoPageSize, props.signature]);
128
128
  (0, _pipeProcessing.useGridRegisterPipeProcessor)(apiRef, 'exportState', stateExportPreProcessing);
@@ -8,12 +8,9 @@ exports.buildRootGroup = exports.GRID_ROOT_GROUP_ID = exports.GRID_ID_AUTOGENERA
8
8
  exports.calculatePinnedRowsHeight = calculatePinnedRowsHeight;
9
9
  exports.checkGridRowIdIsValid = checkGridRowIdIsValid;
10
10
  exports.computeRowsUpdates = computeRowsUpdates;
11
- exports.createRowsInternalCache = void 0;
12
- exports.getMinimalContentHeight = getMinimalContentHeight;
13
- exports.updateCacheWithNewRows = exports.rowHeightWarning = exports.isAutogeneratedRowNode = exports.isAutogeneratedRow = exports.getValidRowHeight = exports.getTreeNodeDescendants = exports.getTopLevelRowCount = exports.getRowsStateFromCache = exports.getRowIdFromRowModel = exports.getRowHeightWarning = void 0;
11
+ exports.updateCacheWithNewRows = exports.rowHeightWarning = exports.minimalContentHeight = exports.isAutogeneratedRowNode = exports.isAutogeneratedRow = exports.getValidRowHeight = exports.getTreeNodeDescendants = exports.getTopLevelRowCount = exports.getRowsStateFromCache = exports.getRowIdFromRowModel = exports.getRowHeightWarning = exports.createRowsInternalCache = void 0;
14
12
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
15
13
  var _gridRowsSelector = require("./gridRowsSelector");
16
- var _gridDimensionsSelectors = require("../dimensions/gridDimensionsSelectors");
17
14
  const GRID_ROOT_GROUP_ID = exports.GRID_ROOT_GROUP_ID = `auto-generated-group-node-root`;
18
15
  const GRID_ID_AUTOGENERATED = exports.GRID_ID_AUTOGENERATED = Symbol('mui.id_autogenerated');
19
16
  const buildRootGroup = () => ({
@@ -307,10 +304,7 @@ function calculatePinnedRowsHeight(apiRef) {
307
304
  bottom: bottomPinnedRowsHeight
308
305
  };
309
306
  }
310
- function getMinimalContentHeight(apiRef) {
311
- const dimensions = (0, _gridDimensionsSelectors.gridDimensionsSelector)(apiRef.current.state);
312
- return `var(--DataGrid-overlayHeight, ${2 * dimensions.rowHeight}px)`;
313
- }
307
+ const minimalContentHeight = exports.minimalContentHeight = 'var(--DataGrid-overlayHeight, calc(var(--height) * 2))';
314
308
  function computeRowsUpdates(apiRef, updates, getRowId) {
315
309
  const nonPinnedRowsUpdates = [];
316
310
  updates.forEach(update => {
@@ -32,11 +32,11 @@ var _utils3 = require("../../../utils/utils");
32
32
  var _gridRowSelectionSelector = require("../rowSelection/gridRowSelectionSelector");
33
33
  var _gridRowsMetaSelector = require("../rows/gridRowsMetaSelector");
34
34
  var _gridColumnsUtils = require("../columns/gridColumnsUtils");
35
- var _gridRowsUtils = require("../rows/gridRowsUtils");
36
35
  var _gridVirtualizationSelectors = require("./gridVirtualizationSelectors");
37
36
  var _useGridVirtualization = require("./useGridVirtualization");
38
37
  var _gridRowSpanningSelectors = require("../rows/gridRowSpanningSelectors");
39
38
  var _gridListViewSelectors = require("../listView/gridListViewSelectors");
39
+ var _gridRowsUtils = require("../rows/gridRowsUtils");
40
40
  var _jsxRuntime = require("react/jsx-runtime");
41
41
  const MINIMUM_COLUMN_WIDTH = 50;
42
42
  var ScrollDirection = /*#__PURE__*/function (ScrollDirection) {
@@ -392,11 +392,11 @@ const useGridVirtualScroller = () => {
392
392
  flexBasis: contentHeight,
393
393
  flexShrink: 0
394
394
  };
395
- if (rootProps.autoHeight && currentPage.rows.length === 0) {
396
- size.flexBasis = (0, _gridRowsUtils.getMinimalContentHeight)(apiRef); // Give room to show the overlay when there no rows.
395
+ if (size.flexBasis === 0) {
396
+ size.flexBasis = _gridRowsUtils.minimalContentHeight; // Give room to show the overlay when there no rows.
397
397
  }
398
398
  return size;
399
- }, [apiRef, columnsTotalWidth, contentHeight, needsHorizontalScrollbar, rootProps.autoHeight, currentPage.rows.length]);
399
+ }, [columnsTotalWidth, contentHeight, needsHorizontalScrollbar]);
400
400
  React.useEffect(() => {
401
401
  apiRef.current.publishEvent('virtualScrollerContentSizeChange');
402
402
  }, [apiRef, contentSize]);
@@ -4,7 +4,7 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.useGridSelectorV8 = exports.useGridSelector = exports.objectShallowCompare = void 0;
7
+ exports.useGridSelectorV8 = exports.useGridSelector = exports.objectShallowCompare = exports.argsEqual = void 0;
8
8
  var React = _interopRequireWildcard(require("react"));
9
9
  var _fastObjectShallowCompare = require("@mui/x-internals/fastObjectShallowCompare");
10
10
  var _warning = require("@mui/x-internals/warning");
@@ -30,10 +30,27 @@ function applySelectorV8(apiRef, selector, args, instanceId) {
30
30
  }
31
31
  const defaultCompare = Object.is;
32
32
  const objectShallowCompare = exports.objectShallowCompare = _fastObjectShallowCompare.fastObjectShallowCompare;
33
+ const arrayShallowCompare = (a, b) => {
34
+ if (a === b) {
35
+ return true;
36
+ }
37
+ return a.length === b.length && a.every((v, i) => v === b[i]);
38
+ };
39
+ const argsEqual = (prev, curr) => {
40
+ let fn = Object.is;
41
+ if (curr instanceof Array) {
42
+ fn = arrayShallowCompare;
43
+ } else if (curr instanceof Object) {
44
+ fn = objectShallowCompare;
45
+ }
46
+ return fn(prev, curr);
47
+ };
48
+ exports.argsEqual = argsEqual;
33
49
  const createRefs = () => ({
34
50
  state: null,
35
51
  equals: null,
36
- selector: null
52
+ selector: null,
53
+ args: null
37
54
  });
38
55
 
39
56
  // TODO v8: Remove this function
@@ -79,9 +96,18 @@ const useGridSelectorV8 = (apiRef, selector, args = undefined, equals = defaultC
79
96
  refs.current.state = state;
80
97
  refs.current.equals = equals;
81
98
  refs.current.selector = selector;
99
+ const prevArgs = refs.current.args;
100
+ refs.current.args = args;
101
+ if (didInit && !argsEqual(prevArgs, args)) {
102
+ const newState = applySelectorV8(apiRef, refs.current.selector, refs.current.args, apiRef.current.instanceId);
103
+ if (!refs.current.equals(refs.current.state, newState)) {
104
+ refs.current.state = newState;
105
+ setState(newState);
106
+ }
107
+ }
82
108
  (0, _useOnMount.useOnMount)(() => {
83
109
  return apiRef.current.store.subscribe(() => {
84
- const newState = applySelectorV8(apiRef, refs.current.selector, args, apiRef.current.instanceId);
110
+ const newState = applySelectorV8(apiRef, refs.current.selector, refs.current.args, apiRef.current.instanceId);
85
111
  if (!refs.current.equals(refs.current.state, newState)) {
86
112
  refs.current.state = newState;
87
113
  setState(newState);
package/node/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v7.22.2
2
+ * @mui/x-data-grid v8.0.0-alpha.0
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the