@mui/x-data-grid 8.0.0-alpha.0 → 8.0.0-alpha.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.
Files changed (216) hide show
  1. package/CHANGELOG.md +651 -6
  2. package/DataGrid/DataGrid.js +9 -9
  3. package/README.md +2 -2
  4. package/components/GridLoadingOverlay.d.ts +2 -2
  5. package/components/GridLoadingOverlay.js +4 -4
  6. package/components/GridPagination.js +2 -1
  7. package/components/base/GridOverlays.d.ts +4 -3
  8. package/components/base/GridOverlays.js +2 -24
  9. package/components/base/index.d.ts +0 -1
  10. package/components/base/index.js +1 -2
  11. package/components/cell/GridCell.js +10 -10
  12. package/components/columnSelection/GridCellCheckboxRenderer.js +2 -3
  13. package/components/columnSelection/GridHeaderCheckbox.js +2 -3
  14. package/components/columnsManagement/GridColumnsManagement.d.ts +2 -0
  15. package/components/columnsManagement/GridColumnsManagement.js +53 -6
  16. package/components/toolbar/GridToolbarColumnsButton.js +3 -4
  17. package/components/toolbar/GridToolbarDensitySelector.js +3 -4
  18. package/components/toolbar/GridToolbarExportContainer.js +3 -4
  19. package/components/toolbar/GridToolbarFilterButton.d.ts +2 -0
  20. package/components/toolbar/GridToolbarFilterButton.js +7 -6
  21. package/components/toolbar/GridToolbarQuickFilter.js +1 -0
  22. package/components/virtualization/GridVirtualScroller.js +5 -3
  23. package/constants/dataGridPropsDefaultValues.js +2 -3
  24. package/constants/gridClasses.d.ts +24 -0
  25. package/constants/gridClasses.js +1 -1
  26. package/constants/localeTextConstants.js +11 -0
  27. package/hooks/features/columnHeaders/useGridColumnHeaders.js +2 -2
  28. package/hooks/features/dimensions/gridDimensionsApi.d.ts +0 -4
  29. package/hooks/features/dimensions/useGridDimensions.js +3 -19
  30. package/hooks/features/index.d.ts +1 -0
  31. package/hooks/features/index.js +1 -0
  32. package/hooks/features/listView/gridListViewSelectors.d.ts +3 -1
  33. package/hooks/features/listView/gridListViewSelectors.js +3 -1
  34. package/hooks/features/listView/index.d.ts +1 -0
  35. package/hooks/features/listView/index.js +1 -0
  36. package/hooks/features/overlays/useGridOverlays.d.ts +7 -4
  37. package/hooks/features/overlays/useGridOverlays.js +19 -1
  38. package/hooks/features/rowSelection/useGridRowSelection.js +0 -9
  39. package/hooks/features/rowSelection/utils.js +2 -2
  40. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +1 -1
  41. package/hooks/features/virtualization/useGridVirtualScroller.js +55 -15
  42. package/index.js +1 -1
  43. package/internals/index.d.ts +1 -0
  44. package/internals/index.js +1 -0
  45. package/joy/joySlots.js +7 -2
  46. package/locales/arSD.js +12 -0
  47. package/locales/beBY.js +12 -0
  48. package/locales/bgBG.js +13 -0
  49. package/locales/csCZ.js +13 -0
  50. package/locales/daDK.js +13 -0
  51. package/locales/deDE.js +11 -0
  52. package/locales/elGR.js +12 -0
  53. package/locales/esES.js +15 -4
  54. package/locales/faIR.js +13 -0
  55. package/locales/fiFI.js +13 -0
  56. package/locales/frFR.js +13 -0
  57. package/locales/heIL.js +13 -0
  58. package/locales/hrHR.js +13 -0
  59. package/locales/huHU.js +13 -0
  60. package/locales/isIS.js +12 -0
  61. package/locales/itIT.js +13 -0
  62. package/locales/jaJP.js +13 -0
  63. package/locales/koKR.js +12 -0
  64. package/locales/nbNO.js +13 -0
  65. package/locales/nlNL.js +13 -0
  66. package/locales/nnNO.js +13 -0
  67. package/locales/plPL.js +13 -0
  68. package/locales/ptBR.js +11 -0
  69. package/locales/ptPT.js +11 -0
  70. package/locales/roRO.js +12 -0
  71. package/locales/ruRU.js +13 -0
  72. package/locales/skSK.js +12 -0
  73. package/locales/svSE.js +17 -5
  74. package/locales/trTR.js +13 -0
  75. package/locales/ukUA.js +12 -0
  76. package/locales/urPK.js +12 -0
  77. package/locales/viVN.js +13 -0
  78. package/locales/zhCN.js +15 -4
  79. package/locales/zhHK.js +12 -0
  80. package/locales/zhTW.js +12 -0
  81. package/models/api/gridCoreApi.d.ts +1 -1
  82. package/models/api/gridLocaleTextApi.d.ts +10 -0
  83. package/models/colDef/gridColDef.d.ts +28 -24
  84. package/models/gridDataSource.d.ts +12 -12
  85. package/models/props/DataGridProps.d.ts +9 -9
  86. package/modern/DataGrid/DataGrid.js +9 -9
  87. package/modern/components/GridLoadingOverlay.js +4 -4
  88. package/modern/components/GridPagination.js +2 -1
  89. package/modern/components/base/GridOverlays.js +2 -24
  90. package/modern/components/base/index.js +1 -2
  91. package/modern/components/cell/GridCell.js +10 -10
  92. package/modern/components/columnSelection/GridCellCheckboxRenderer.js +2 -3
  93. package/modern/components/columnSelection/GridHeaderCheckbox.js +2 -3
  94. package/modern/components/columnsManagement/GridColumnsManagement.js +53 -6
  95. package/modern/components/toolbar/GridToolbarColumnsButton.js +3 -4
  96. package/modern/components/toolbar/GridToolbarDensitySelector.js +3 -4
  97. package/modern/components/toolbar/GridToolbarExportContainer.js +3 -4
  98. package/modern/components/toolbar/GridToolbarFilterButton.js +7 -6
  99. package/modern/components/toolbar/GridToolbarQuickFilter.js +1 -0
  100. package/modern/components/virtualization/GridVirtualScroller.js +5 -3
  101. package/modern/constants/dataGridPropsDefaultValues.js +2 -3
  102. package/modern/constants/gridClasses.js +1 -1
  103. package/modern/constants/localeTextConstants.js +11 -0
  104. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +2 -2
  105. package/modern/hooks/features/dimensions/useGridDimensions.js +3 -19
  106. package/modern/hooks/features/index.js +1 -0
  107. package/modern/hooks/features/listView/gridListViewSelectors.js +3 -1
  108. package/modern/hooks/features/listView/index.js +1 -0
  109. package/modern/hooks/features/overlays/useGridOverlays.js +19 -1
  110. package/modern/hooks/features/rowSelection/useGridRowSelection.js +0 -9
  111. package/modern/hooks/features/rowSelection/utils.js +2 -2
  112. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +55 -15
  113. package/modern/index.js +1 -1
  114. package/modern/internals/index.js +1 -0
  115. package/modern/joy/joySlots.js +7 -2
  116. package/modern/locales/arSD.js +12 -0
  117. package/modern/locales/beBY.js +12 -0
  118. package/modern/locales/bgBG.js +13 -0
  119. package/modern/locales/csCZ.js +13 -0
  120. package/modern/locales/daDK.js +13 -0
  121. package/modern/locales/deDE.js +11 -0
  122. package/modern/locales/elGR.js +12 -0
  123. package/modern/locales/esES.js +15 -4
  124. package/modern/locales/faIR.js +13 -0
  125. package/modern/locales/fiFI.js +13 -0
  126. package/modern/locales/frFR.js +13 -0
  127. package/modern/locales/heIL.js +13 -0
  128. package/modern/locales/hrHR.js +13 -0
  129. package/modern/locales/huHU.js +13 -0
  130. package/modern/locales/isIS.js +12 -0
  131. package/modern/locales/itIT.js +13 -0
  132. package/modern/locales/jaJP.js +13 -0
  133. package/modern/locales/koKR.js +12 -0
  134. package/modern/locales/nbNO.js +13 -0
  135. package/modern/locales/nlNL.js +13 -0
  136. package/modern/locales/nnNO.js +13 -0
  137. package/modern/locales/plPL.js +13 -0
  138. package/modern/locales/ptBR.js +11 -0
  139. package/modern/locales/ptPT.js +11 -0
  140. package/modern/locales/roRO.js +12 -0
  141. package/modern/locales/ruRU.js +13 -0
  142. package/modern/locales/skSK.js +12 -0
  143. package/modern/locales/svSE.js +17 -5
  144. package/modern/locales/trTR.js +13 -0
  145. package/modern/locales/ukUA.js +12 -0
  146. package/modern/locales/urPK.js +12 -0
  147. package/modern/locales/viVN.js +13 -0
  148. package/modern/locales/zhCN.js +15 -4
  149. package/modern/locales/zhHK.js +12 -0
  150. package/modern/locales/zhTW.js +12 -0
  151. package/node/DataGrid/DataGrid.js +9 -9
  152. package/node/components/GridLoadingOverlay.js +4 -4
  153. package/node/components/GridPagination.js +2 -1
  154. package/node/components/base/GridOverlays.js +2 -24
  155. package/node/components/base/index.js +0 -11
  156. package/node/components/cell/GridCell.js +10 -10
  157. package/node/components/columnSelection/GridCellCheckboxRenderer.js +2 -3
  158. package/node/components/columnSelection/GridHeaderCheckbox.js +2 -3
  159. package/node/components/columnsManagement/GridColumnsManagement.js +53 -6
  160. package/node/components/toolbar/GridToolbarColumnsButton.js +3 -4
  161. package/node/components/toolbar/GridToolbarDensitySelector.js +3 -4
  162. package/node/components/toolbar/GridToolbarExportContainer.js +3 -4
  163. package/node/components/toolbar/GridToolbarFilterButton.js +7 -6
  164. package/node/components/toolbar/GridToolbarQuickFilter.js +1 -0
  165. package/node/components/virtualization/GridVirtualScroller.js +5 -3
  166. package/node/constants/dataGridPropsDefaultValues.js +2 -3
  167. package/node/constants/gridClasses.js +1 -1
  168. package/node/constants/localeTextConstants.js +11 -0
  169. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +2 -2
  170. package/node/hooks/features/dimensions/useGridDimensions.js +2 -18
  171. package/node/hooks/features/index.js +11 -0
  172. package/node/hooks/features/listView/gridListViewSelectors.js +3 -1
  173. package/node/hooks/features/listView/index.js +16 -0
  174. package/node/hooks/features/overlays/useGridOverlays.js +21 -1
  175. package/node/hooks/features/rowSelection/useGridRowSelection.js +0 -9
  176. package/node/hooks/features/rowSelection/utils.js +2 -2
  177. package/node/hooks/features/virtualization/useGridVirtualScroller.js +55 -15
  178. package/node/index.js +1 -1
  179. package/node/internals/index.js +9 -2
  180. package/node/joy/joySlots.js +7 -2
  181. package/node/locales/arSD.js +12 -0
  182. package/node/locales/beBY.js +12 -0
  183. package/node/locales/bgBG.js +13 -0
  184. package/node/locales/csCZ.js +13 -0
  185. package/node/locales/daDK.js +13 -0
  186. package/node/locales/deDE.js +11 -0
  187. package/node/locales/elGR.js +12 -0
  188. package/node/locales/esES.js +15 -4
  189. package/node/locales/faIR.js +13 -0
  190. package/node/locales/fiFI.js +13 -0
  191. package/node/locales/frFR.js +13 -0
  192. package/node/locales/heIL.js +13 -0
  193. package/node/locales/hrHR.js +13 -0
  194. package/node/locales/huHU.js +13 -0
  195. package/node/locales/isIS.js +12 -0
  196. package/node/locales/itIT.js +13 -0
  197. package/node/locales/jaJP.js +13 -0
  198. package/node/locales/koKR.js +12 -0
  199. package/node/locales/nbNO.js +13 -0
  200. package/node/locales/nlNL.js +13 -0
  201. package/node/locales/nnNO.js +13 -0
  202. package/node/locales/plPL.js +13 -0
  203. package/node/locales/ptBR.js +11 -0
  204. package/node/locales/ptPT.js +11 -0
  205. package/node/locales/roRO.js +12 -0
  206. package/node/locales/ruRU.js +13 -0
  207. package/node/locales/skSK.js +12 -0
  208. package/node/locales/svSE.js +17 -5
  209. package/node/locales/trTR.js +13 -0
  210. package/node/locales/ukUA.js +12 -0
  211. package/node/locales/urPK.js +12 -0
  212. package/node/locales/viVN.js +13 -0
  213. package/node/locales/zhCN.js +15 -4
  214. package/node/locales/zhHK.js +12 -0
  215. package/node/locales/zhTW.js +12 -0
  216. package/package.json +4 -4
@@ -12,6 +12,8 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
12
12
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
13
13
  var _FormControlLabel = _interopRequireDefault(require("@mui/material/FormControlLabel"));
14
14
  var _styles = require("@mui/material/styles");
15
+ var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
16
+ var _InputBase = require("@mui/material/InputBase");
15
17
  var _gridColumnsSelector = require("../../hooks/features/columns/gridColumnsSelector");
16
18
  var _useGridSelector = require("../../hooks/utils/useGridSelector");
17
19
  var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
@@ -29,6 +31,7 @@ const useUtilityClasses = ownerState => {
29
31
  const slots = {
30
32
  root: ['columnsManagement'],
31
33
  header: ['columnsManagementHeader'],
34
+ searchInput: ['columnsManagementSearchInput'],
32
35
  footer: ['columnsManagementFooter'],
33
36
  row: ['columnsManagementRow']
34
37
  };
@@ -51,7 +54,8 @@ function GridColumnsManagement(props) {
51
54
  disableShowHideToggle = false,
52
55
  disableResetButton = false,
53
56
  toggleAllMode = 'all',
54
- getTogglableColumns
57
+ getTogglableColumns,
58
+ searchInputProps
55
59
  } = props;
56
60
  const isResetDisabled = React.useMemo(() => (0, _utils.checkColumnVisibilityModelsSame)(columnVisibilityModel, initialColumnVisibilityModel), [columnVisibilityModel, initialColumnVisibilityModel]);
57
61
  const sortedColumns = React.useMemo(() => {
@@ -118,28 +122,52 @@ function GridColumnsManagement(props) {
118
122
  }
119
123
  return false;
120
124
  };
125
+ const handleSearchReset = React.useCallback(() => {
126
+ setSearchValue('');
127
+ searchInputRef.current.focus();
128
+ }, []);
121
129
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
122
130
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(GridColumnsManagementHeader, {
123
131
  className: classes.header,
124
132
  ownerState: rootProps,
125
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseTextField, (0, _extends2.default)({
133
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(SearchInput, (0, _extends2.default)({
134
+ as: rootProps.slots.baseTextField,
135
+ ownerState: rootProps,
126
136
  placeholder: apiRef.current.getLocaleText('columnsManagementSearchTitle'),
127
137
  inputRef: searchInputRef,
138
+ className: classes.searchInput,
128
139
  value: searchValue,
129
140
  onChange: handleSearchValueChange,
130
141
  variant: "outlined",
131
142
  size: "small",
143
+ type: "search",
132
144
  InputProps: {
133
145
  startAdornment: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseInputAdornment, {
134
146
  position: "start",
135
147
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.quickFilterIcon, {})
136
148
  }),
137
- sx: {
138
- pl: 1.5
139
- }
149
+ endAdornment: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseIconButton, (0, _extends2.default)({
150
+ "aria-label": apiRef.current.getLocaleText('columnsManagementDeleteIconLabel'),
151
+ size: "small",
152
+ sx: [searchValue ? {
153
+ visibility: 'visible'
154
+ } : {
155
+ visibility: 'hidden'
156
+ }],
157
+ tabIndex: -1,
158
+ onClick: handleSearchReset
159
+ }, rootProps.slotProps?.baseIconButton, {
160
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.quickFilterClearIcon, {
161
+ fontSize: "small"
162
+ })
163
+ }))
164
+ },
165
+ inputProps: {
166
+ 'aria-label': apiRef.current.getLocaleText('columnsManagementSearchTitle')
140
167
  },
168
+ autoComplete: "off",
141
169
  fullWidth: true
142
- }, rootProps.slotProps?.baseTextField))
170
+ }, rootProps.slotProps?.baseTextField, searchInputProps))
143
171
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(GridColumnsManagementBody, {
144
172
  className: classes.root,
145
173
  ownerState: rootProps,
@@ -214,6 +242,7 @@ process.env.NODE_ENV !== "production" ? GridColumnsManagement.propTypes = {
214
242
  * @returns {GridColDef['field'][]} The list of togglable columns' field names.
215
243
  */
216
244
  getTogglableColumns: _propTypes.default.func,
245
+ searchInputProps: _propTypes.default.object,
217
246
  searchPredicate: _propTypes.default.func,
218
247
  sort: _propTypes.default.oneOf(['asc', 'desc']),
219
248
  /**
@@ -248,6 +277,24 @@ const GridColumnsManagementHeader = (0, _styles.styled)('div', {
248
277
  }) => ({
249
278
  padding: theme.spacing(1.5, 3)
250
279
  }));
280
+ const SearchInput = (0, _styles.styled)(_TextField.default, {
281
+ name: 'MuiDataGrid',
282
+ slot: 'ColumnsManagementSearchInput',
283
+ overridesResolver: (props, styles) => styles.columnsManagementSearchInput
284
+ })(({
285
+ theme
286
+ }) => ({
287
+ [`& .${_InputBase.inputBaseClasses.root}`]: {
288
+ padding: theme.spacing(0, 1.5, 0, 1.5)
289
+ },
290
+ [`& .${_InputBase.inputBaseClasses.input}::-webkit-search-decoration,
291
+ & .${_InputBase.inputBaseClasses.input}::-webkit-search-cancel-button,
292
+ & .${_InputBase.inputBaseClasses.input}::-webkit-search-results-button,
293
+ & .${_InputBase.inputBaseClasses.input}::-webkit-search-results-decoration`]: {
294
+ /* clears the 'X' icon from Chrome */
295
+ display: 'none'
296
+ }
297
+ }));
251
298
  const GridColumnsManagementFooter = (0, _styles.styled)('div', {
252
299
  name: 'MuiDataGrid',
253
300
  slot: 'ColumnsManagementFooter',
@@ -44,7 +44,7 @@ const GridToolbarColumnsButton = exports.GridToolbarColumnsButton = /*#__PURE__*
44
44
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseTooltip, (0, _extends2.default)({
45
45
  title: apiRef.current.getLocaleText('toolbarColumnsLabel'),
46
46
  enterDelay: 1000
47
- }, tooltipProps, rootProps.slotProps?.baseTooltip, {
47
+ }, rootProps.slotProps?.baseTooltip, tooltipProps, {
48
48
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseButton, (0, _extends2.default)({
49
49
  ref: ref,
50
50
  id: columnButtonId,
@@ -53,10 +53,9 @@ const GridToolbarColumnsButton = exports.GridToolbarColumnsButton = /*#__PURE__*
53
53
  "aria-haspopup": "menu",
54
54
  "aria-expanded": isOpen,
55
55
  "aria-controls": isOpen ? columnPanelId : undefined,
56
- startIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnSelectorIcon, {})
57
- }, buttonProps, {
56
+ startIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnSelectorIcon, {}),
58
57
  onClick: showColumns
59
- }, rootProps.slotProps?.baseButton, {
58
+ }, rootProps.slotProps?.baseButton, buttonProps, {
60
59
  children: apiRef.current.getLocaleText('toolbarColumns')
61
60
  }))
62
61
  }));
@@ -91,7 +91,7 @@ const GridToolbarDensitySelector = exports.GridToolbarDensitySelector = /*#__PUR
91
91
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseTooltip, (0, _extends2.default)({
92
92
  title: apiRef.current.getLocaleText('toolbarDensityLabel'),
93
93
  enterDelay: 1000
94
- }, tooltipProps, rootProps.slotProps?.baseTooltip, {
94
+ }, rootProps.slotProps?.baseTooltip, tooltipProps, {
95
95
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseButton, (0, _extends2.default)({
96
96
  ref: handleRef,
97
97
  size: "small",
@@ -100,10 +100,9 @@ const GridToolbarDensitySelector = exports.GridToolbarDensitySelector = /*#__PUR
100
100
  "aria-haspopup": "menu",
101
101
  "aria-expanded": open,
102
102
  "aria-controls": open ? densityMenuId : undefined,
103
- id: densityButtonId
104
- }, buttonProps, {
103
+ id: densityButtonId,
105
104
  onClick: handleDensitySelectorOpen
106
- }, rootProps.slotProps?.baseButton, {
105
+ }, rootProps.slotProps?.baseButton, buttonProps, {
107
106
  children: apiRef.current.getLocaleText('toolbarDensity')
108
107
  }))
109
108
  })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridMenu.GridMenu, {
@@ -50,7 +50,7 @@ const GridToolbarExportContainer = exports.GridToolbarExportContainer = /*#__PUR
50
50
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseTooltip, (0, _extends2.default)({
51
51
  title: apiRef.current.getLocaleText('toolbarExportLabel'),
52
52
  enterDelay: 1000
53
- }, tooltipProps, rootProps.slotProps?.baseTooltip, {
53
+ }, rootProps.slotProps?.baseTooltip, tooltipProps, {
54
54
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseButton, (0, _extends2.default)({
55
55
  ref: handleRef,
56
56
  size: "small",
@@ -59,10 +59,9 @@ const GridToolbarExportContainer = exports.GridToolbarExportContainer = /*#__PUR
59
59
  "aria-label": apiRef.current.getLocaleText('toolbarExportLabel'),
60
60
  "aria-haspopup": "menu",
61
61
  "aria-controls": open ? exportMenuId : undefined,
62
- id: exportButtonId
63
- }, buttonProps, {
62
+ id: exportButtonId,
64
63
  onClick: handleMenuOpen
65
- }, rootProps.slotProps?.baseButton, {
64
+ }, rootProps.slotProps?.baseButton, buttonProps, {
66
65
  children: apiRef.current.getLocaleText('toolbarExport')
67
66
  }))
68
67
  })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridMenu.GridMenu, {
@@ -45,6 +45,7 @@ const GridToolbarFilterButton = exports.GridToolbarFilterButton = /*#__PURE__*/R
45
45
  } = props;
46
46
  const buttonProps = slotProps.button || {};
47
47
  const tooltipProps = slotProps.tooltip || {};
48
+ const badgeProps = slotProps.badge || {};
48
49
  const apiRef = (0, _useGridApiContext.useGridApiContext)();
49
50
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
50
51
  const activeFilters = (0, _useGridSelector.useGridSelector)(apiRef, _gridFilterSelector.gridFilterActiveItemsSelector);
@@ -102,7 +103,7 @@ const GridToolbarFilterButton = exports.GridToolbarFilterButton = /*#__PURE__*/R
102
103
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseTooltip, (0, _extends2.default)({
103
104
  title: tooltipContentNode,
104
105
  enterDelay: 1000
105
- }, tooltipProps, rootProps.slotProps?.baseTooltip, {
106
+ }, rootProps.slotProps?.baseTooltip, tooltipProps, {
106
107
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseButton, (0, _extends2.default)({
107
108
  ref: ref,
108
109
  id: filterButtonId,
@@ -111,14 +112,14 @@ const GridToolbarFilterButton = exports.GridToolbarFilterButton = /*#__PURE__*/R
111
112
  "aria-controls": isOpen ? filterPanelId : undefined,
112
113
  "aria-expanded": isOpen,
113
114
  "aria-haspopup": true,
114
- startIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseBadge, {
115
+ startIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseBadge, (0, _extends2.default)({
115
116
  badgeContent: activeFilters.length,
116
- color: "primary",
117
+ color: "primary"
118
+ }, rootProps.slotProps?.baseBadge, badgeProps, {
117
119
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.openFilterButtonIcon, {})
118
- })
119
- }, buttonProps, {
120
+ })),
120
121
  onClick: toggleFilter
121
- }, rootProps.slotProps?.baseButton, {
122
+ }, rootProps.slotProps?.baseButton, buttonProps, {
122
123
  children: apiRef.current.getLocaleText('toolbarFilters')
123
124
  }))
124
125
  }));
@@ -86,6 +86,7 @@ function GridToolbarQuickFilter(props) {
86
86
  apiRef.current.setQuickFilterValues(newQuickFilterValues);
87
87
  }, [apiRef, quickFilterParser]);
88
88
  const debouncedUpdateSearchValue = React.useMemo(() => (0, _utils.unstable_debounce)(updateSearchValue, debounceMs), [updateSearchValue, debounceMs]);
89
+ React.useEffect(() => debouncedUpdateSearchValue.clear, [debouncedUpdateSearchValue]);
89
90
  const handleSearchValueChange = React.useCallback(event => {
90
91
  const newSearchValue = event.target.value;
91
92
  setSearchValue(newSearchValue);
@@ -18,7 +18,6 @@ var _gridClasses = require("../../constants/gridClasses");
18
18
  var _dimensions = require("../../hooks/features/dimensions");
19
19
  var _useGridVirtualScroller = require("../../hooks/features/virtualization/useGridVirtualScroller");
20
20
  var _useGridOverlays = require("../../hooks/features/overlays/useGridOverlays");
21
- var _GridOverlays = require("../base/GridOverlays");
22
21
  var _GridHeaders = require("../GridHeaders");
23
22
  var _GridMainContainer = require("./GridMainContainer");
24
23
  var _GridTopContainer = require("./GridTopContainer");
@@ -63,7 +62,10 @@ function GridVirtualScroller(props) {
63
62
  const apiRef = (0, _useGridApiContext.useGridApiContext)();
64
63
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
65
64
  const dimensions = (0, _useGridSelector.useGridSelector)(apiRef, _dimensions.gridDimensionsSelector);
66
- const overlaysProps = (0, _useGridOverlays.useGridOverlays)();
65
+ const {
66
+ getOverlay,
67
+ overlaysProps
68
+ } = (0, _useGridOverlays.useGridOverlays)();
67
69
  const classes = useUtilityClasses(rootProps, dimensions, overlaysProps.loadingOverlayVariant);
68
70
  const virtualScroller = (0, _useGridVirtualScroller.useGridVirtualScroller)();
69
71
  const {
@@ -92,7 +94,7 @@ function GridVirtualScroller(props) {
92
94
  position: "top",
93
95
  virtualScroller: virtualScroller
94
96
  })]
95
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridOverlays.GridOverlays, (0, _extends2.default)({}, overlaysProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollerContent.GridVirtualScrollerContent, (0, _extends2.default)({}, getContentProps(), {
97
+ }), getOverlay(), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollerContent.GridVirtualScrollerContent, (0, _extends2.default)({}, getContentProps(), {
96
98
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_GridVirtualScrollerRenderZone.GridVirtualScrollerRenderZone, (0, _extends2.default)({}, getRenderZoneProps(), {
97
99
  children: [rows, /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.detailPanels, {
98
100
  virtualScroller: virtualScroller
@@ -40,8 +40,6 @@ const DATA_GRID_PROPS_DEFAULT_VALUES = exports.DATA_GRID_PROPS_DEFAULT_VALUES =
40
40
  hideFooterSelectedRowCount: false,
41
41
  ignoreDiacritics: false,
42
42
  ignoreValueFormatterDuringExport: false,
43
- // TODO v8: Update to 'select'
44
- indeterminateCheckboxAction: 'deselect',
45
43
  keepColumnPositionIfDraggedOutside: false,
46
44
  keepNonExistentRowsSelected: false,
47
45
  loading: false,
@@ -62,5 +60,6 @@ const DATA_GRID_PROPS_DEFAULT_VALUES = exports.DATA_GRID_PROPS_DEFAULT_VALUES =
62
60
  sortingMode: 'client',
63
61
  sortingOrder: ['asc', 'desc', null],
64
62
  throttleRowsMs: 0,
65
- unstable_rowSpanning: false
63
+ unstable_rowSpanning: false,
64
+ virtualizeColumnsWithAutoRowHeight: false
66
65
  };
@@ -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--flex', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--rangeTop', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell--pinnedLeft', 'cell--pinnedRight', 'cell--selectionMode', 'cell', 'cellCheckbox', 'cellEmpty', 'cellSkeleton', 'cellOffsetLeft', 'checkboxInput', 'columnHeader', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader--pinnedLeft', 'columnHeader--pinnedRight', 'columnHeader--last', 'columnHeader--lastUnpinned', 'columnHeader--siblingFocused', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnHeader--filledGroup', 'columnHeader--emptyGroup', 'columnHeaders', '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--borderBottom', 'filler--pinnedLeft', 'filler--pinnedRight', 'filterForm', 'filterFormDeleteIcon', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'headerFilterRow', 'iconButtonContainer', 'iconSeparator', 'main', 'main--hasPinnedRight', 'main--hasSkeletonLoadingOverlay', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'overlayWrapper', 'overlayWrapperInner', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'root--disableUserSelection', 'root--noToolbar', 'row', 'row--editable', 'row--editing', 'row--firstVisible', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', 'row--detailPanelExpanded', 'row--borderBottom', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'rowSkeleton', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'scrollbar', 'scrollbar--vertical', 'scrollbar--horizontal', 'scrollbarFiller', 'scrollbarFiller--header', 'scrollbarFiller--borderTop', 'scrollbarFiller--borderBottom', 'scrollbarFiller--pinnedRight', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'virtualScroller', 'virtualScroller--hasScrollX', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pinnedColumns', 'withVerticalBorder', 'withBorderColor', 'cell--withRightBorder', 'cell--withLeftBorder', 'columnHeader--withRightBorder', 'columnHeader--withLeftBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'treeDataGroupingCellLoadingContainer', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'groupingCriteriaCellLoadingContainer', '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--flex', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--rangeTop', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell--pinnedLeft', 'cell--pinnedRight', 'cell--selectionMode', 'cell', 'cellCheckbox', 'cellEmpty', 'cellSkeleton', 'cellOffsetLeft', 'checkboxInput', 'columnHeader', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader--pinnedLeft', 'columnHeader--pinnedRight', 'columnHeader--last', 'columnHeader--lastUnpinned', 'columnHeader--siblingFocused', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnHeader--filledGroup', 'columnHeader--emptyGroup', 'columnHeaders', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsManagement', 'columnsManagementRow', 'columnsManagementHeader', 'columnsManagementSearchInput', 'columnsManagementFooter', 'container--top', 'container--bottom', 'detailPanel', 'detailPanels', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'footerCell', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'filler', 'filler--borderBottom', 'filler--pinnedLeft', 'filler--pinnedRight', 'filterForm', 'filterFormDeleteIcon', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'headerFilterRow', 'iconButtonContainer', 'iconSeparator', 'main', 'main--hasPinnedRight', 'main--hasSkeletonLoadingOverlay', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'overlayWrapper', 'overlayWrapperInner', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'root--disableUserSelection', 'root--noToolbar', 'row', 'row--editable', 'row--editing', 'row--firstVisible', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', 'row--detailPanelExpanded', 'row--borderBottom', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'rowSkeleton', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'scrollbar', 'scrollbar--vertical', 'scrollbar--horizontal', 'scrollbarFiller', 'scrollbarFiller--header', 'scrollbarFiller--borderTop', 'scrollbarFiller--borderBottom', 'scrollbarFiller--pinnedRight', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'toolbarPromptControl', 'toolbarPromptControl--recording', 'toolbarPromptControlRecordingIndicator', 'toolbarPromptControlRecordButton', 'toolbarPromptControlSendButton', 'virtualScroller', 'virtualScroller--hasScrollX', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pinnedColumns', 'withVerticalBorder', 'withBorderColor', 'cell--withRightBorder', 'cell--withLeftBorder', 'columnHeader--withRightBorder', 'columnHeader--withLeftBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'treeDataGroupingCellLoadingContainer', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'groupingCriteriaCellLoadingContainer', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pinnedRowsRenderZone']);
@@ -27,6 +27,16 @@ const GRID_DEFAULT_LOCALE_TEXT = exports.GRID_DEFAULT_LOCALE_TEXT = {
27
27
  toolbarQuickFilterPlaceholder: 'Search…',
28
28
  toolbarQuickFilterLabel: 'Search',
29
29
  toolbarQuickFilterDeleteIconLabel: 'Clear',
30
+ // Prompt toolbar field
31
+ toolbarPromptControlPlaceholder: 'Type a prompt…',
32
+ toolbarPromptControlWithRecordingPlaceholder: 'Type or record a prompt…',
33
+ toolbarPromptControlRecordingPlaceholder: 'Listening for prompt…',
34
+ toolbarPromptControlLabel: 'Prompt input',
35
+ toolbarPromptControlRecordButtonDefaultLabel: 'Record',
36
+ toolbarPromptControlRecordButtonActiveLabel: 'Stop recording',
37
+ toolbarPromptControlSendActionLabel: 'Send',
38
+ toolbarPromptControlSendActionAriaLabel: 'Send prompt',
39
+ toolbarPromptControlErrorMessage: 'An error occurred while processing the request. Please try again with a different prompt.',
30
40
  // Export selector toolbar button text
31
41
  toolbarExport: 'Export',
32
42
  toolbarExportLabel: 'Export',
@@ -38,6 +48,7 @@ const GRID_DEFAULT_LOCALE_TEXT = exports.GRID_DEFAULT_LOCALE_TEXT = {
38
48
  columnsManagementNoColumns: 'No columns',
39
49
  columnsManagementShowHideAllText: 'Show/Hide All',
40
50
  columnsManagementReset: 'Reset',
51
+ columnsManagementDeleteIconLabel: 'Clear',
41
52
  // Filter panel text
42
53
  filterPanelAddFilter: 'Add filter',
43
54
  filterPanelRemoveAll: 'Remove all',
@@ -291,7 +291,7 @@ const useGridColumnHeaders = props => {
291
291
  fields: headerInfo.fields,
292
292
  colIndex: headerInfo.colIndex,
293
293
  depth: depth,
294
- isLastColumn: headerInfo.colIndex === visibleColumns.length - headerInfo.fields.length,
294
+ isLastColumn: index === visibleColumnGroupHeader.length - 1,
295
295
  maxDepth: headerGroupingMaxDepth,
296
296
  height: dimensions.groupHeaderHeight,
297
297
  hasFocus: hasFocus,
@@ -299,7 +299,7 @@ const useGridColumnHeaders = props => {
299
299
  pinnedPosition: pinnedPosition,
300
300
  style: style,
301
301
  indexInSection: indexInSection,
302
- sectionLength: rowStructure.length,
302
+ sectionLength: visibleColumnGroupHeader.length,
303
303
  gridHasFiller: gridHasFiller
304
304
  }, index);
305
305
  });
@@ -76,28 +76,13 @@ function useGridDimensions(apiRef, props) {
76
76
  const rightPinnedWidth = pinnedColumns.right.reduce((w, col) => w + col.computedWidth, 0);
77
77
  const [savedSize, setSavedSize] = React.useState();
78
78
  const debouncedSetSavedSize = React.useMemo(() => (0, _throttle.throttle)(setSavedSize, props.resizeThrottleMs), [props.resizeThrottleMs]);
79
- const previousSize = React.useRef();
79
+ React.useEffect(() => debouncedSetSavedSize.clear, [debouncedSetSavedSize]);
80
80
  const getRootDimensions = () => apiRef.current.state.dimensions;
81
81
  const setDimensions = (0, _utils.unstable_useEventCallback)(dimensions => {
82
82
  apiRef.current.setState(state => (0, _extends2.default)({}, state, {
83
83
  dimensions
84
84
  }));
85
85
  });
86
- const resize = React.useCallback(() => {
87
- const element = apiRef.current.mainElementRef.current;
88
- if (!element) {
89
- return;
90
- }
91
- const computedStyle = (0, _utils.unstable_ownerWindow)(element).getComputedStyle(element);
92
- const newSize = {
93
- width: parseFloat(computedStyle.width) || 0,
94
- height: parseFloat(computedStyle.height) || 0
95
- };
96
- if (!previousSize.current || !areElementSizesEqual(previousSize.current, newSize)) {
97
- apiRef.current.publishEvent('resize', newSize);
98
- previousSize.current = newSize;
99
- }
100
- }, [apiRef]);
101
86
  const getViewportPageSize = React.useCallback(() => {
102
87
  const dimensions = (0, _gridDimensionsSelectors.gridDimensionsSelector)(apiRef.current.state);
103
88
  if (!dimensions.isReady) {
@@ -208,7 +193,6 @@ function useGridDimensions(apiRef, props) {
208
193
  apiRef.current.updateRenderContext?.();
209
194
  }, [apiRef, setDimensions, props.scrollbarSize, props.autoHeight, rowsMeta.currentPageTotalHeight, rowHeight, headerHeight, groupHeaderHeight, headerFilterHeight, columnsTotalWidth, headersTotalHeight, leftPinnedWidth, rightPinnedWidth]);
210
195
  const apiPublic = {
211
- resize,
212
196
  getRootDimensions
213
197
  };
214
198
  const apiPrivate = {
@@ -248,7 +232,7 @@ function useGridDimensions(apiRef, props) {
248
232
  rootDimensionsRef.current = size;
249
233
 
250
234
  // jsdom has no layout capabilities
251
- const isJSDOM = /jsdom/.test(window.navigator.userAgent);
235
+ const isJSDOM = /jsdom|HappyDOM/.test(window.navigator.userAgent);
252
236
  if (size.height === 0 && !errorShown.current && !props.autoHeight && !isJSDOM) {
253
237
  logger.error(['The parent DOM element of the Data Grid has an empty height.', 'Please make sure that this element has an intrinsic height.', 'The grid displays with a height of 0px.', '', 'More details: https://mui.com/r/x-data-grid-no-dimensions.'].join('\n'));
254
238
  errorShown.current = true;
@@ -91,6 +91,17 @@ Object.keys(_focus).forEach(function (key) {
91
91
  }
92
92
  });
93
93
  });
94
+ var _listView = require("./listView");
95
+ Object.keys(_listView).forEach(function (key) {
96
+ if (key === "default" || key === "__esModule") return;
97
+ if (key in exports && exports[key] === _listView[key]) return;
98
+ Object.defineProperty(exports, key, {
99
+ enumerable: true,
100
+ get: function () {
101
+ return _listView[key];
102
+ }
103
+ });
104
+ });
94
105
  var _pagination = require("./pagination");
95
106
  Object.keys(_pagination).forEach(function (key) {
96
107
  if (key === "default" || key === "__esModule") return;
@@ -5,7 +5,9 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.gridListColumnSelector = void 0;
7
7
  /**
8
- * Get a list column definition
8
+ * Get the list column definition
9
+ * @category List View
10
+ * @ignore - Do not document
9
11
  */
10
12
  const gridListColumnSelector = state => state.listViewColumn;
11
13
  exports.gridListColumnSelector = gridListColumnSelector;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _gridListViewSelectors = require("./gridListViewSelectors");
7
+ Object.keys(_gridListViewSelectors).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _gridListViewSelectors[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _gridListViewSelectors[key];
14
+ }
15
+ });
16
+ });
@@ -1,14 +1,20 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
8
  exports.useGridOverlays = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var React = _interopRequireWildcard(require("react"));
7
11
  var _utils = require("../../utils");
8
12
  var _useGridApiContext = require("../../utils/useGridApiContext");
9
13
  var _useGridRootProps = require("../../utils/useGridRootProps");
10
14
  var _filter = require("../filter");
11
15
  var _rows = require("../rows");
16
+ var _GridOverlays = require("../../../components/base/GridOverlays");
17
+ var _jsxRuntime = require("react/jsx-runtime");
12
18
  /**
13
19
  * Uses the grid state to determine which overlay to display.
14
20
  * Returns the active overlay type and the active loading overlay variant.
@@ -34,9 +40,23 @@ const useGridOverlays = () => {
34
40
  overlayType = 'loadingOverlay';
35
41
  loadingOverlayVariant = rootProps.slotProps?.loadingOverlay?.[noRows ? 'noRowsVariant' : 'variant'] || null;
36
42
  }
37
- return {
43
+ const overlaysProps = {
38
44
  overlayType,
39
45
  loadingOverlayVariant
40
46
  };
47
+ const getOverlay = () => {
48
+ if (!overlayType) {
49
+ return null;
50
+ }
51
+ const Overlay = rootProps.slots?.[overlayType];
52
+ const overlayProps = rootProps.slotProps?.[overlayType];
53
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridOverlays.GridOverlayWrapper, (0, _extends2.default)({}, overlaysProps, {
54
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Overlay, (0, _extends2.default)({}, overlayProps))
55
+ }));
56
+ };
57
+ return {
58
+ getOverlay,
59
+ overlaysProps
60
+ };
41
61
  };
42
62
  exports.useGridOverlays = useGridOverlays;
@@ -257,11 +257,7 @@ const useGridRowSelection = (apiRef, props) => {
257
257
  /*
258
258
  * EVENTS
259
259
  */
260
- const isFirstRender = React.useRef(true);
261
260
  const removeOutdatedSelection = React.useCallback((sortModelUpdated = false) => {
262
- if (isFirstRender.current) {
263
- return;
264
- }
265
261
  const currentSelection = (0, _gridRowSelectionSelector.gridRowSelectionStateSelector)(apiRef.current.state);
266
262
  const rowsLookup = (0, _gridRowsSelector.gridRowsLookupSelector)(apiRef);
267
263
  const filteredRowsLookup = (0, _gridFilterSelector.gridFilteredRowsLookupSelector)(apiRef);
@@ -489,10 +485,5 @@ const useGridRowSelection = (apiRef, props) => {
489
485
  React.useEffect(() => {
490
486
  runIfRowSelectionIsEnabled(removeOutdatedSelection);
491
487
  }, [removeOutdatedSelection, runIfRowSelectionIsEnabled]);
492
- React.useEffect(() => {
493
- if (isFirstRender.current) {
494
- isFirstRender.current = false;
495
- }
496
- }, []);
497
488
  };
498
489
  exports.useGridRowSelection = useGridRowSelection;
@@ -14,8 +14,8 @@ var _gridRowSelectionSelector = require("./gridRowSelectionSelector");
14
14
  var _gridRowsSelector = require("../rows/gridRowsSelector");
15
15
  var _createSelector = require("../../../utils/createSelector");
16
16
  const ROW_SELECTION_PROPAGATION_DEFAULT = exports.ROW_SELECTION_PROPAGATION_DEFAULT = {
17
- parents: false,
18
- descendants: false
17
+ parents: true,
18
+ descendants: true
19
19
  };
20
20
  function getGridRowGroupSelectableDescendants(apiRef, groupId) {
21
21
  const rowTree = (0, _gridRowsSelector.gridRowTreeSelector)(apiRef);