@mui/x-data-grid 8.0.0-alpha.4 → 8.0.0-alpha.6

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 (254) hide show
  1. package/CHANGELOG.md +182 -0
  2. package/DataGrid/DataGrid.js +6 -9
  3. package/DataGrid/useDataGridProps.js +3 -3
  4. package/components/GridColumnHeaders.d.ts +1 -1
  5. package/components/GridColumnHeaders.js +4 -4
  6. package/components/GridFooter.d.ts +2 -1
  7. package/components/GridFooter.js +4 -4
  8. package/components/GridLoadingOverlay.d.ts +1 -1
  9. package/components/GridLoadingOverlay.js +10 -8
  10. package/components/GridNoResultsOverlay.d.ts +2 -1
  11. package/components/GridNoResultsOverlay.js +4 -4
  12. package/components/GridNoRowsOverlay.d.ts +2 -1
  13. package/components/GridNoRowsOverlay.js +4 -4
  14. package/components/GridPagination.d.ts +1 -1
  15. package/components/GridPagination.js +5 -3
  16. package/components/GridRow.d.ts +1 -1
  17. package/components/GridRow.js +15 -3
  18. package/components/GridRowCount.d.ts +1 -1
  19. package/components/GridRowCount.js +3 -2
  20. package/components/GridSelectedRowCount.d.ts +4 -1
  21. package/components/GridSelectedRowCount.js +3 -2
  22. package/components/GridSkeletonLoadingOverlay.d.ts +1 -1
  23. package/components/GridSkeletonLoadingOverlay.js +4 -3
  24. package/components/cell/GridActionsCellItem.d.ts +1 -1
  25. package/components/cell/GridActionsCellItem.js +7 -8
  26. package/components/cell/GridCell.d.ts +1 -1
  27. package/components/cell/GridCell.js +3 -2
  28. package/components/cell/GridEditInputCell.d.ts +1 -1
  29. package/components/cell/GridEditInputCell.js +72 -3
  30. package/components/cell/GridSkeletonCell.js +1 -2
  31. package/components/columnHeaders/GridBaseColumnHeaders.d.ts +1 -1
  32. package/components/columnHeaders/GridBaseColumnHeaders.js +4 -3
  33. package/components/columnHeaders/GridColumnHeaderTitle.js +5 -3
  34. package/components/columnHeaders/GridGenericColumnHeaderItem.d.ts +1 -1
  35. package/components/columnHeaders/GridGenericColumnHeaderItem.js +3 -2
  36. package/components/columnHeaders/GridIconButtonContainer.d.ts +1 -1
  37. package/components/columnHeaders/GridIconButtonContainer.js +5 -3
  38. package/components/columnSelection/GridCellCheckboxRenderer.d.ts +2 -2
  39. package/components/columnSelection/GridCellCheckboxRenderer.js +5 -3
  40. package/components/columnSelection/GridHeaderCheckbox.d.ts +1 -1
  41. package/components/columnSelection/GridHeaderCheckbox.js +5 -3
  42. package/components/containers/GridFooterContainer.d.ts +1 -1
  43. package/components/containers/GridFooterContainer.js +5 -3
  44. package/components/containers/GridOverlay.d.ts +1 -1
  45. package/components/containers/GridOverlay.js +5 -3
  46. package/components/containers/GridRoot.d.ts +1 -1
  47. package/components/containers/GridRoot.js +5 -3
  48. package/components/containers/GridToolbarContainer.d.ts +1 -1
  49. package/components/containers/GridToolbarContainer.js +3 -2
  50. package/components/menu/columnMenu/GridColumnMenu.d.ts +2 -2
  51. package/components/menu/columnMenu/GridColumnMenu.js +5 -5
  52. package/components/menu/columnMenu/GridColumnMenuContainer.d.ts +1 -1
  53. package/components/menu/columnMenu/GridColumnMenuContainer.js +3 -2
  54. package/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +6 -11
  55. package/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +6 -11
  56. package/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +6 -11
  57. package/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +13 -22
  58. package/components/panel/GridPanel.d.ts +1 -1
  59. package/components/panel/GridPanel.js +3 -2
  60. package/components/panel/GridPanelWrapper.d.ts +1 -1
  61. package/components/panel/GridPanelWrapper.js +5 -3
  62. package/components/panel/filterPanel/GridFilterForm.d.ts +1 -1
  63. package/components/panel/filterPanel/GridFilterForm.js +3 -2
  64. package/components/panel/filterPanel/GridFilterInputBoolean.d.ts +1 -1
  65. package/components/panel/filterPanel/GridFilterInputBoolean.js +9 -9
  66. package/components/panel/filterPanel/GridFilterInputValue.js +17 -10
  67. package/components/panel/filterPanel/GridFilterPanel.d.ts +1 -1
  68. package/components/panel/filterPanel/GridFilterPanel.js +4 -4
  69. package/components/panel/filterPanel/index.d.ts +2 -1
  70. package/components/panel/filterPanel/index.js +1 -1
  71. package/components/toolbar/GridToolbar.d.ts +1 -1
  72. package/components/toolbar/GridToolbar.js +4 -4
  73. package/components/toolbar/GridToolbarColumnsButton.d.ts +1 -1
  74. package/components/toolbar/GridToolbarColumnsButton.js +3 -2
  75. package/components/toolbar/GridToolbarDensitySelector.d.ts +1 -1
  76. package/components/toolbar/GridToolbarDensitySelector.js +6 -7
  77. package/components/toolbar/GridToolbarExport.d.ts +1 -1
  78. package/components/toolbar/GridToolbarExport.js +2 -1
  79. package/components/toolbar/GridToolbarExportContainer.d.ts +1 -1
  80. package/components/toolbar/GridToolbarExportContainer.js +3 -2
  81. package/components/toolbar/GridToolbarFilterButton.d.ts +2 -2
  82. package/components/toolbar/GridToolbarFilterButton.js +6 -2
  83. package/components/toolbar/GridToolbarQuickFilter.js +27 -23
  84. package/components/virtualization/GridMainContainer.d.ts +3 -1
  85. package/components/virtualization/GridMainContainer.js +4 -3
  86. package/components/virtualization/GridVirtualScrollbar.d.ts +1 -1
  87. package/components/virtualization/GridVirtualScrollbar.js +2 -1
  88. package/components/virtualization/GridVirtualScrollerContent.d.ts +2 -0
  89. package/components/virtualization/GridVirtualScrollerContent.js +5 -5
  90. package/components/virtualization/GridVirtualScrollerRenderZone.d.ts +2 -0
  91. package/components/virtualization/GridVirtualScrollerRenderZone.js +5 -3
  92. package/hooks/features/columnHeaders/useGridColumnHeaders.js +10 -3
  93. package/hooks/features/columnResize/gridColumnResizeApi.d.ts +6 -0
  94. package/hooks/features/columnResize/gridColumnResizeApi.js +2 -1
  95. package/hooks/features/columnResize/useGridColumnResize.d.ts +1 -1
  96. package/hooks/features/columnResize/useGridColumnResize.js +9 -4
  97. package/hooks/features/columns/gridColumnsUtils.d.ts +1 -1
  98. package/hooks/features/columns/gridColumnsUtils.js +2 -1
  99. package/hooks/features/rows/useGridRowSpanning.js +76 -87
  100. package/index.js +1 -1
  101. package/internals/utils/index.d.ts +0 -1
  102. package/internals/utils/index.js +0 -1
  103. package/locales/koKR.js +45 -49
  104. package/locales/nlNL.js +5 -6
  105. package/material/index.js +36 -4
  106. package/models/gridBaseSlots.d.ts +36 -0
  107. package/models/gridBaseSlots.js +1 -0
  108. package/models/gridSlotsComponent.d.ts +16 -1
  109. package/models/gridSlotsComponentsProps.d.ts +38 -5
  110. package/models/props/DataGridProps.d.ts +0 -5
  111. package/modern/DataGrid/DataGrid.js +6 -9
  112. package/modern/DataGrid/useDataGridProps.js +3 -3
  113. package/modern/components/GridColumnHeaders.js +4 -4
  114. package/modern/components/GridFooter.js +4 -4
  115. package/modern/components/GridLoadingOverlay.js +10 -8
  116. package/modern/components/GridNoResultsOverlay.js +4 -4
  117. package/modern/components/GridNoRowsOverlay.js +4 -4
  118. package/modern/components/GridPagination.js +5 -3
  119. package/modern/components/GridRow.js +15 -3
  120. package/modern/components/GridRowCount.js +3 -2
  121. package/modern/components/GridSelectedRowCount.js +3 -2
  122. package/modern/components/GridSkeletonLoadingOverlay.js +4 -3
  123. package/modern/components/cell/GridActionsCellItem.js +7 -8
  124. package/modern/components/cell/GridCell.js +3 -2
  125. package/modern/components/cell/GridEditInputCell.js +72 -3
  126. package/modern/components/cell/GridSkeletonCell.js +1 -2
  127. package/modern/components/columnHeaders/GridBaseColumnHeaders.js +4 -3
  128. package/modern/components/columnHeaders/GridColumnHeaderTitle.js +5 -3
  129. package/modern/components/columnHeaders/GridGenericColumnHeaderItem.js +3 -2
  130. package/modern/components/columnHeaders/GridIconButtonContainer.js +5 -3
  131. package/modern/components/columnSelection/GridCellCheckboxRenderer.js +5 -3
  132. package/modern/components/columnSelection/GridHeaderCheckbox.js +5 -3
  133. package/modern/components/containers/GridFooterContainer.js +5 -3
  134. package/modern/components/containers/GridOverlay.js +5 -3
  135. package/modern/components/containers/GridRoot.js +5 -3
  136. package/modern/components/containers/GridToolbarContainer.js +3 -2
  137. package/modern/components/menu/columnMenu/GridColumnMenu.js +5 -5
  138. package/modern/components/menu/columnMenu/GridColumnMenuContainer.js +3 -2
  139. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +6 -11
  140. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +6 -11
  141. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +6 -11
  142. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +13 -22
  143. package/modern/components/panel/GridPanel.js +3 -2
  144. package/modern/components/panel/GridPanelWrapper.js +5 -3
  145. package/modern/components/panel/filterPanel/GridFilterForm.js +3 -2
  146. package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +9 -9
  147. package/modern/components/panel/filterPanel/GridFilterInputValue.js +17 -10
  148. package/modern/components/panel/filterPanel/GridFilterPanel.js +4 -4
  149. package/modern/components/panel/filterPanel/index.js +1 -1
  150. package/modern/components/toolbar/GridToolbar.js +4 -4
  151. package/modern/components/toolbar/GridToolbarColumnsButton.js +3 -2
  152. package/modern/components/toolbar/GridToolbarDensitySelector.js +6 -7
  153. package/modern/components/toolbar/GridToolbarExport.js +2 -1
  154. package/modern/components/toolbar/GridToolbarExportContainer.js +3 -2
  155. package/modern/components/toolbar/GridToolbarFilterButton.js +6 -2
  156. package/modern/components/toolbar/GridToolbarQuickFilter.js +27 -23
  157. package/modern/components/virtualization/GridMainContainer.js +4 -3
  158. package/modern/components/virtualization/GridVirtualScrollbar.js +2 -1
  159. package/modern/components/virtualization/GridVirtualScrollerContent.js +5 -5
  160. package/modern/components/virtualization/GridVirtualScrollerRenderZone.js +5 -3
  161. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +10 -3
  162. package/modern/hooks/features/columnResize/gridColumnResizeApi.js +2 -1
  163. package/modern/hooks/features/columnResize/useGridColumnResize.js +9 -4
  164. package/modern/hooks/features/columns/gridColumnsUtils.js +2 -1
  165. package/modern/hooks/features/rows/useGridRowSpanning.js +76 -87
  166. package/modern/index.js +1 -1
  167. package/modern/internals/utils/index.js +0 -1
  168. package/modern/locales/koKR.js +45 -49
  169. package/modern/locales/nlNL.js +5 -6
  170. package/modern/material/index.js +36 -4
  171. package/modern/models/gridBaseSlots.js +1 -0
  172. package/modern/utils/utils.js +6 -1
  173. package/node/DataGrid/DataGrid.js +6 -9
  174. package/node/DataGrid/useDataGridProps.js +2 -2
  175. package/node/components/GridColumnHeaders.js +4 -4
  176. package/node/components/GridFooter.js +4 -4
  177. package/node/components/GridLoadingOverlay.js +10 -8
  178. package/node/components/GridNoResultsOverlay.js +4 -4
  179. package/node/components/GridNoRowsOverlay.js +4 -4
  180. package/node/components/GridPagination.js +5 -3
  181. package/node/components/GridRow.js +15 -3
  182. package/node/components/GridRowCount.js +3 -2
  183. package/node/components/GridSelectedRowCount.js +3 -2
  184. package/node/components/GridSkeletonLoadingOverlay.js +4 -3
  185. package/node/components/cell/GridActionsCellItem.js +6 -7
  186. package/node/components/cell/GridCell.js +3 -2
  187. package/node/components/cell/GridEditInputCell.js +72 -3
  188. package/node/components/cell/GridSkeletonCell.js +1 -2
  189. package/node/components/columnHeaders/GridBaseColumnHeaders.js +4 -3
  190. package/node/components/columnHeaders/GridColumnHeaderTitle.js +5 -3
  191. package/node/components/columnHeaders/GridGenericColumnHeaderItem.js +3 -2
  192. package/node/components/columnHeaders/GridIconButtonContainer.js +5 -3
  193. package/node/components/columnSelection/GridCellCheckboxRenderer.js +5 -3
  194. package/node/components/columnSelection/GridHeaderCheckbox.js +5 -3
  195. package/node/components/containers/GridFooterContainer.js +5 -3
  196. package/node/components/containers/GridOverlay.js +5 -3
  197. package/node/components/containers/GridRoot.js +5 -3
  198. package/node/components/containers/GridToolbarContainer.js +3 -2
  199. package/node/components/menu/columnMenu/GridColumnMenu.js +5 -5
  200. package/node/components/menu/columnMenu/GridColumnMenuContainer.js +3 -2
  201. package/node/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +5 -10
  202. package/node/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +5 -10
  203. package/node/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +5 -10
  204. package/node/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +13 -22
  205. package/node/components/panel/GridPanel.js +3 -2
  206. package/node/components/panel/GridPanelWrapper.js +5 -3
  207. package/node/components/panel/filterPanel/GridFilterForm.js +3 -2
  208. package/node/components/panel/filterPanel/GridFilterInputBoolean.js +10 -11
  209. package/node/components/panel/filterPanel/GridFilterInputValue.js +17 -10
  210. package/node/components/panel/filterPanel/GridFilterPanel.js +4 -4
  211. package/node/components/panel/filterPanel/index.js +7 -11
  212. package/node/components/toolbar/GridToolbar.js +4 -4
  213. package/node/components/toolbar/GridToolbarColumnsButton.js +3 -2
  214. package/node/components/toolbar/GridToolbarDensitySelector.js +6 -7
  215. package/node/components/toolbar/GridToolbarExport.js +2 -1
  216. package/node/components/toolbar/GridToolbarExportContainer.js +3 -2
  217. package/node/components/toolbar/GridToolbarFilterButton.js +6 -2
  218. package/node/components/toolbar/GridToolbarQuickFilter.js +27 -23
  219. package/node/components/virtualization/GridMainContainer.js +4 -3
  220. package/node/components/virtualization/GridVirtualScrollbar.js +2 -1
  221. package/node/components/virtualization/GridVirtualScrollerContent.js +5 -5
  222. package/node/components/virtualization/GridVirtualScrollerRenderZone.js +5 -3
  223. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +10 -3
  224. package/node/hooks/features/columnResize/gridColumnResizeApi.js +2 -1
  225. package/node/hooks/features/columnResize/useGridColumnResize.js +9 -4
  226. package/node/hooks/features/columns/gridColumnsUtils.js +2 -1
  227. package/node/hooks/features/rows/useGridRowSpanning.js +74 -85
  228. package/node/index.js +1 -1
  229. package/node/internals/utils/index.js +0 -11
  230. package/node/locales/koKR.js +45 -49
  231. package/node/locales/nlNL.js +5 -6
  232. package/node/material/index.js +37 -4
  233. package/node/models/gridBaseSlots.js +5 -0
  234. package/node/utils/utils.js +8 -1
  235. package/package.json +2 -2
  236. package/utils/utils.d.ts +1 -0
  237. package/utils/utils.js +6 -1
  238. package/internals/utils/useProps.d.ts +0 -1
  239. package/internals/utils/useProps.js +0 -24
  240. package/joy/icons.d.ts +0 -32
  241. package/joy/icons.js +0 -431
  242. package/joy/index.d.ts +0 -2
  243. package/joy/index.js +0 -2
  244. package/joy/joySlots.d.ts +0 -3
  245. package/joy/joySlots.js +0 -389
  246. package/joy/package.json +0 -6
  247. package/modern/internals/utils/useProps.js +0 -24
  248. package/modern/joy/icons.js +0 -431
  249. package/modern/joy/index.js +0 -2
  250. package/modern/joy/joySlots.js +0 -389
  251. package/node/internals/utils/useProps.js +0 -30
  252. package/node/joy/icons.js +0 -439
  253. package/node/joy/index.js +0 -13
  254. package/node/joy/joySlots.js +0 -397
@@ -3,6 +3,7 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
3
3
  const _excluded = ["className", "csvOptions", "printOptions", "excelOptions", "showQuickFilter", "quickFilterProps"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
+ import { forwardRef } from '@mui/x-internals/forwardRef';
6
7
  import { GridToolbarContainer } from "../containers/GridToolbarContainer.js";
7
8
  import { GridToolbarColumnsButton } from "./GridToolbarColumnsButton.js";
8
9
  import { GridToolbarDensitySelector } from "./GridToolbarDensitySelector.js";
@@ -11,7 +12,7 @@ import { GridToolbarExport } from "./GridToolbarExport.js";
11
12
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
12
13
  import { GridToolbarQuickFilter } from "./GridToolbarQuickFilter.js";
13
14
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
- const GridToolbar = /*#__PURE__*/React.forwardRef(function GridToolbar(props, ref) {
15
+ const GridToolbar = forwardRef(function GridToolbar(props, ref) {
15
16
  // TODO v7: think about where export option should be passed.
16
17
  // from slotProps={{ toolbarExport: { ...exportOption } }} seems to be more appropriate
17
18
  const _ref = props,
@@ -27,9 +28,8 @@ const GridToolbar = /*#__PURE__*/React.forwardRef(function GridToolbar(props, re
27
28
  if (rootProps.disableColumnFilter && rootProps.disableColumnSelector && rootProps.disableDensitySelector && !showQuickFilter) {
28
29
  return null;
29
30
  }
30
- return /*#__PURE__*/_jsxs(GridToolbarContainer, _extends({
31
- ref: ref
32
- }, other, {
31
+ return /*#__PURE__*/_jsxs(GridToolbarContainer, _extends({}, other, {
32
+ ref: ref,
33
33
  children: [/*#__PURE__*/_jsx(GridToolbarColumnsButton, {}), /*#__PURE__*/_jsx(GridToolbarFilterButton, {}), /*#__PURE__*/_jsx(GridToolbarDensitySelector, {}), /*#__PURE__*/_jsx(GridToolbarExport, {
34
34
  csvOptions: csvOptions,
35
35
  printOptions: printOptions
@@ -11,5 +11,5 @@ interface GridToolbarColumnsButtonProps {
11
11
  tooltip?: Partial<TooltipProps>;
12
12
  };
13
13
  }
14
- declare const GridToolbarColumnsButton: React.ForwardRefExoticComponent<GridToolbarColumnsButtonProps & React.RefAttributes<HTMLButtonElement>>;
14
+ declare const GridToolbarColumnsButton: React.ForwardRefExoticComponent<GridToolbarColumnsButtonProps> | React.ForwardRefExoticComponent<GridToolbarColumnsButtonProps & React.RefAttributes<HTMLButtonElement>>;
15
15
  export { GridToolbarColumnsButton };
@@ -2,13 +2,14 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
3
  import PropTypes from 'prop-types';
4
4
  import useId from '@mui/utils/useId';
5
+ import { forwardRef } from '@mui/x-internals/forwardRef';
5
6
  import { useGridSelector } from "../../hooks/utils/useGridSelector.js";
6
7
  import { gridPreferencePanelStateSelector } from "../../hooks/features/preferencesPanel/gridPreferencePanelSelector.js";
7
8
  import { GridPreferencePanelsValue } from "../../hooks/features/preferencesPanel/gridPreferencePanelsValue.js";
8
9
  import { useGridApiContext } from "../../hooks/utils/useGridApiContext.js";
9
10
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
10
11
  import { jsx as _jsx } from "react/jsx-runtime";
11
- const GridToolbarColumnsButton = /*#__PURE__*/React.forwardRef(function GridToolbarColumnsButton(props, ref) {
12
+ const GridToolbarColumnsButton = forwardRef(function GridToolbarColumnsButton(props, ref) {
12
13
  const {
13
14
  slotProps = {}
14
15
  } = props;
@@ -38,7 +39,6 @@ const GridToolbarColumnsButton = /*#__PURE__*/React.forwardRef(function GridTool
38
39
  enterDelay: 1000
39
40
  }, rootProps.slotProps?.baseTooltip, tooltipProps, {
40
41
  children: /*#__PURE__*/_jsx(rootProps.slots.baseButton, _extends({
41
- ref: ref,
42
42
  id: columnButtonId,
43
43
  size: "small",
44
44
  "aria-label": apiRef.current.getLocaleText('toolbarColumnsLabel'),
@@ -48,6 +48,7 @@ const GridToolbarColumnsButton = /*#__PURE__*/React.forwardRef(function GridTool
48
48
  startIcon: /*#__PURE__*/_jsx(rootProps.slots.columnSelectorIcon, {}),
49
49
  onClick: showColumns
50
50
  }, rootProps.slotProps?.baseButton, buttonProps, {
51
+ ref: ref,
51
52
  children: apiRef.current.getLocaleText('toolbarColumns')
52
53
  }))
53
54
  }));
@@ -11,5 +11,5 @@ interface GridToolbarDensitySelectorProps {
11
11
  tooltip?: Partial<TooltipProps>;
12
12
  };
13
13
  }
14
- declare const GridToolbarDensitySelector: React.ForwardRefExoticComponent<GridToolbarDensitySelectorProps & React.RefAttributes<HTMLButtonElement>>;
14
+ declare const GridToolbarDensitySelector: React.ForwardRefExoticComponent<GridToolbarDensitySelectorProps> | React.ForwardRefExoticComponent<GridToolbarDensitySelectorProps & React.RefAttributes<HTMLButtonElement>>;
15
15
  export { GridToolbarDensitySelector };
@@ -2,7 +2,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
3
  import PropTypes from 'prop-types';
4
4
  import { unstable_useId as useId, unstable_useForkRef as useForkRef } from '@mui/utils';
5
- import ListItemIcon from '@mui/material/ListItemIcon';
5
+ import { forwardRef } from '@mui/x-internals/forwardRef';
6
6
  import { gridDensitySelector } from "../../hooks/features/density/densitySelector.js";
7
7
  import { isHideMenuKey } from "../../utils/keyboardUtils.js";
8
8
  import { useGridApiContext } from "../../hooks/utils/useGridApiContext.js";
@@ -11,7 +11,7 @@ import { GridMenu } from "../menu/GridMenu.js";
11
11
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
12
12
  import { gridClasses } from "../../constants/gridClasses.js";
13
13
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
- const GridToolbarDensitySelector = /*#__PURE__*/React.forwardRef(function GridToolbarDensitySelector(props, ref) {
14
+ const GridToolbarDensitySelector = forwardRef(function GridToolbarDensitySelector(props, ref) {
15
15
  const {
16
16
  slotProps = {}
17
17
  } = props;
@@ -72,12 +72,11 @@ const GridToolbarDensitySelector = /*#__PURE__*/React.forwardRef(function GridTo
72
72
  if (rootProps.disableDensitySelector) {
73
73
  return null;
74
74
  }
75
- const densityElements = densityOptions.map((option, index) => /*#__PURE__*/_jsxs(rootProps.slots.baseMenuItem, {
75
+ const densityElements = densityOptions.map((option, index) => /*#__PURE__*/_jsx(rootProps.slots.baseMenuItem, {
76
76
  onClick: () => handleDensityUpdate(option.value),
77
77
  selected: option.value === density,
78
- children: [/*#__PURE__*/_jsx(ListItemIcon, {
79
- children: option.icon
80
- }), option.label]
78
+ iconStart: option.icon,
79
+ children: option.label
81
80
  }, index));
82
81
  return /*#__PURE__*/_jsxs(React.Fragment, {
83
82
  children: [/*#__PURE__*/_jsx(rootProps.slots.baseTooltip, _extends({
@@ -85,7 +84,6 @@ const GridToolbarDensitySelector = /*#__PURE__*/React.forwardRef(function GridTo
85
84
  enterDelay: 1000
86
85
  }, rootProps.slotProps?.baseTooltip, tooltipProps, {
87
86
  children: /*#__PURE__*/_jsx(rootProps.slots.baseButton, _extends({
88
- ref: handleRef,
89
87
  size: "small",
90
88
  startIcon: startIcon,
91
89
  "aria-label": apiRef.current.getLocaleText('toolbarDensityLabel'),
@@ -95,6 +93,7 @@ const GridToolbarDensitySelector = /*#__PURE__*/React.forwardRef(function GridTo
95
93
  id: densityButtonId,
96
94
  onClick: handleDensitySelectorOpen
97
95
  }, rootProps.slotProps?.baseButton, buttonProps, {
96
+ ref: handleRef,
98
97
  children: apiRef.current.getLocaleText('toolbarDensity')
99
98
  }))
100
99
  })), /*#__PURE__*/_jsx(GridMenu, {
@@ -36,5 +36,5 @@ declare function GridPrintExportMenuItem(props: GridPrintExportMenuItemProps): R
36
36
  declare namespace GridPrintExportMenuItem {
37
37
  var propTypes: any;
38
38
  }
39
- declare const GridToolbarExport: React.ForwardRefExoticComponent<GridToolbarExportProps & React.RefAttributes<HTMLButtonElement>>;
39
+ declare const GridToolbarExport: React.ForwardRefExoticComponent<GridToolbarExportProps> | React.ForwardRefExoticComponent<GridToolbarExportProps & React.RefAttributes<HTMLButtonElement>>;
40
40
  export { GridToolbarExport, GridCsvExportMenuItem, GridPrintExportMenuItem };
@@ -5,6 +5,7 @@ const _excluded = ["hideMenu", "options"],
5
5
  _excluded3 = ["csvOptions", "printOptions", "excelOptions"];
6
6
  import * as React from 'react';
7
7
  import PropTypes from 'prop-types';
8
+ import { forwardRef } from '@mui/x-internals/forwardRef';
8
9
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
9
10
  import { useGridApiContext } from "../../hooks/utils/useGridApiContext.js";
10
11
  import { GridToolbarExportContainer } from "./GridToolbarExportContainer.js";
@@ -83,7 +84,7 @@ process.env.NODE_ENV !== "production" ? GridPrintExportMenuItem.propTypes = {
83
84
  pageStyle: PropTypes.oneOfType([PropTypes.func, PropTypes.string])
84
85
  })
85
86
  } : void 0;
86
- const GridToolbarExport = /*#__PURE__*/React.forwardRef(function GridToolbarExport(props, ref) {
87
+ const GridToolbarExport = forwardRef(function GridToolbarExport(props, ref) {
87
88
  const _ref = props,
88
89
  {
89
90
  csvOptions = {},
@@ -11,7 +11,7 @@ interface GridToolbarExportContainerProps {
11
11
  tooltip?: Partial<TooltipProps>;
12
12
  };
13
13
  }
14
- declare const GridToolbarExportContainer: React.ForwardRefExoticComponent<GridToolbarExportContainerProps & {
14
+ declare const GridToolbarExportContainer: React.ForwardRefExoticComponent<React.PropsWithChildren<GridToolbarExportContainerProps>> | React.ForwardRefExoticComponent<GridToolbarExportContainerProps & {
15
15
  children?: React.ReactNode | undefined;
16
16
  } & React.RefAttributes<HTMLButtonElement>>;
17
17
  export { GridToolbarExportContainer };
@@ -2,13 +2,14 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
3
  import PropTypes from 'prop-types';
4
4
  import { unstable_useId as useId, unstable_useForkRef as useForkRef } from '@mui/utils';
5
+ import { forwardRef } from '@mui/x-internals/forwardRef';
5
6
  import { isHideMenuKey } from "../../utils/keyboardUtils.js";
6
7
  import { useGridApiContext } from "../../hooks/utils/useGridApiContext.js";
7
8
  import { GridMenu } from "../menu/GridMenu.js";
8
9
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
9
10
  import { gridClasses } from "../../constants/gridClasses.js";
10
11
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
- const GridToolbarExportContainer = /*#__PURE__*/React.forwardRef(function GridToolbarExportContainer(props, ref) {
12
+ const GridToolbarExportContainer = forwardRef(function GridToolbarExportContainer(props, ref) {
12
13
  const {
13
14
  children,
14
15
  slotProps = {}
@@ -44,7 +45,6 @@ const GridToolbarExportContainer = /*#__PURE__*/React.forwardRef(function GridTo
44
45
  enterDelay: 1000
45
46
  }, rootProps.slotProps?.baseTooltip, tooltipProps, {
46
47
  children: /*#__PURE__*/_jsx(rootProps.slots.baseButton, _extends({
47
- ref: handleRef,
48
48
  size: "small",
49
49
  startIcon: /*#__PURE__*/_jsx(rootProps.slots.exportIcon, {}),
50
50
  "aria-expanded": open,
@@ -54,6 +54,7 @@ const GridToolbarExportContainer = /*#__PURE__*/React.forwardRef(function GridTo
54
54
  id: exportButtonId,
55
55
  onClick: handleMenuOpen
56
56
  }, rootProps.slotProps?.baseButton, buttonProps, {
57
+ ref: handleRef,
57
58
  children: apiRef.current.getLocaleText('toolbarExport')
58
59
  }))
59
60
  })), /*#__PURE__*/_jsx(GridMenu, {
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { ButtonProps } from '@mui/material/Button';
3
3
  import { TooltipProps } from '@mui/material/Tooltip';
4
- import { BadgeProps } from '@mui/material/Badge';
4
+ import { BadgeProps } from '../../models/gridBaseSlots';
5
5
  export interface GridToolbarFilterButtonProps {
6
6
  /**
7
7
  * The props used for each slot inside.
@@ -13,5 +13,5 @@ export interface GridToolbarFilterButtonProps {
13
13
  badge?: Partial<BadgeProps>;
14
14
  };
15
15
  }
16
- declare const GridToolbarFilterButton: React.ForwardRefExoticComponent<GridToolbarFilterButtonProps & React.RefAttributes<HTMLButtonElement>>;
16
+ declare const GridToolbarFilterButton: React.ForwardRefExoticComponent<GridToolbarFilterButtonProps> | React.ForwardRefExoticComponent<GridToolbarFilterButtonProps & React.RefAttributes<HTMLButtonElement>>;
17
17
  export { GridToolbarFilterButton };
@@ -3,6 +3,7 @@ import * as React from 'react';
3
3
  import PropTypes from 'prop-types';
4
4
  import { styled } from '@mui/material/styles';
5
5
  import { unstable_composeClasses as composeClasses, unstable_capitalize as capitalize, unstable_useId as useId } from '@mui/utils';
6
+ import { forwardRef } from '@mui/x-internals/forwardRef';
6
7
  import { gridColumnLookupSelector } from "../../hooks/features/columns/gridColumnsSelector.js";
7
8
  import { useGridSelector } from "../../hooks/utils/useGridSelector.js";
8
9
  import { gridFilterActiveItemsSelector } from "../../hooks/features/filter/gridFilterSelector.js";
@@ -31,7 +32,10 @@ const GridToolbarFilterListRoot = styled('ul', {
31
32
  margin: theme.spacing(1, 1, 0.5),
32
33
  padding: theme.spacing(0, 1)
33
34
  }));
34
- const GridToolbarFilterButton = /*#__PURE__*/React.forwardRef(function GridToolbarFilterButton(props, ref) {
35
+
36
+ // FIXME(v8:romgrk): override slotProps
37
+
38
+ const GridToolbarFilterButton = forwardRef(function GridToolbarFilterButton(props, ref) {
35
39
  const {
36
40
  slotProps = {}
37
41
  } = props;
@@ -97,7 +101,6 @@ const GridToolbarFilterButton = /*#__PURE__*/React.forwardRef(function GridToolb
97
101
  enterDelay: 1000
98
102
  }, rootProps.slotProps?.baseTooltip, tooltipProps, {
99
103
  children: /*#__PURE__*/_jsx(rootProps.slots.baseButton, _extends({
100
- ref: ref,
101
104
  id: filterButtonId,
102
105
  size: "small",
103
106
  "aria-label": apiRef.current.getLocaleText('toolbarFiltersLabel'),
@@ -112,6 +115,7 @@ const GridToolbarFilterButton = /*#__PURE__*/React.forwardRef(function GridToolb
112
115
  })),
113
116
  onClick: toggleFilter
114
117
  }, rootProps.slotProps?.baseButton, buttonProps, {
118
+ ref: ref,
115
119
  children: apiRef.current.getLocaleText('toolbarFilters')
116
120
  }))
117
121
  }));
@@ -8,6 +8,7 @@ import TextField from '@mui/material/TextField';
8
8
  import { styled } from '@mui/material/styles';
9
9
  import { unstable_debounce as debounce } from '@mui/utils';
10
10
  import composeClasses from '@mui/utils/composeClasses';
11
+ import { outlinedInputClasses } from '@mui/material/OutlinedInput';
11
12
  import { getDataGridUtilityClass } from "../../constants/index.js";
12
13
  import { useGridApiContext } from "../../hooks/utils/useGridApiContext.js";
13
14
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
@@ -31,13 +32,8 @@ const GridToolbarQuickFilterRoot = styled(TextField, {
31
32
  })(({
32
33
  theme
33
34
  }) => ({
34
- width: 'auto',
35
- paddingBottom: theme.spacing(0.5),
36
- '& input': {
37
- marginLeft: theme.spacing(0.5)
38
- },
39
- '& .MuiInput-underline:before': {
40
- borderBottom: `1px solid ${(theme.vars || theme).palette.divider}`
35
+ [`.${outlinedInputClasses.root}`]: {
36
+ fontSize: theme.typography.body2.fontSize
41
37
  },
42
38
  [`& input[type="search"]::-webkit-search-decoration,
43
39
  & input[type="search"]::-webkit-search-cancel-button,
@@ -91,7 +87,8 @@ function GridToolbarQuickFilter(props) {
91
87
  return /*#__PURE__*/_jsx(GridToolbarQuickFilterRoot, _extends({
92
88
  as: rootProps.slots.baseTextField,
93
89
  ownerState: rootProps,
94
- variant: "standard",
90
+ variant: "outlined",
91
+ size: "small",
95
92
  value: searchValue,
96
93
  onChange: handleSearchValueChange,
97
94
  className: clsx(classes.root, className),
@@ -100,23 +97,30 @@ function GridToolbarQuickFilter(props) {
100
97
  type: "search"
101
98
  }, other, {
102
99
  InputProps: _extends({
103
- startAdornment: /*#__PURE__*/_jsx(rootProps.slots.quickFilterIcon, {
104
- fontSize: "small"
105
- }),
106
- endAdornment: /*#__PURE__*/_jsx(rootProps.slots.baseIconButton, _extends({
107
- "aria-label": apiRef.current.getLocaleText('toolbarQuickFilterDeleteIconLabel'),
108
- size: "small",
109
- sx: [searchValue ? {
110
- visibility: 'visible'
111
- } : {
112
- visibility: 'hidden'
113
- }],
114
- onClick: handleSearchReset
115
- }, rootProps.slotProps?.baseIconButton, {
116
- children: /*#__PURE__*/_jsx(rootProps.slots.quickFilterClearIcon, {
100
+ startAdornment: /*#__PURE__*/_jsx(rootProps.slots.baseInputAdornment, {
101
+ position: "start",
102
+ children: /*#__PURE__*/_jsx(rootProps.slots.quickFilterIcon, {
117
103
  fontSize: "small"
118
104
  })
119
- }))
105
+ }),
106
+ endAdornment: /*#__PURE__*/_jsx(rootProps.slots.baseInputAdornment, {
107
+ position: "end",
108
+ children: /*#__PURE__*/_jsx(rootProps.slots.baseIconButton, _extends({
109
+ "aria-label": apiRef.current.getLocaleText('toolbarQuickFilterDeleteIconLabel'),
110
+ size: "small",
111
+ edge: "end",
112
+ sx: [searchValue ? {
113
+ visibility: 'visible'
114
+ } : {
115
+ visibility: 'hidden'
116
+ }],
117
+ onClick: handleSearchReset
118
+ }, rootProps.slotProps?.baseIconButton, {
119
+ children: /*#__PURE__*/_jsx(rootProps.slots.quickFilterClearIcon, {
120
+ fontSize: "small"
121
+ })
122
+ }))
123
+ })
120
124
  }, other.InputProps)
121
125
  }, rootProps.slotProps?.baseTextField));
122
126
  }
@@ -1,5 +1,7 @@
1
1
  import * as React from 'react';
2
- export declare const GridMainContainer: React.ForwardRefExoticComponent<{
2
+ export declare const GridMainContainer: React.ForwardRefExoticComponent<React.PropsWithChildren<{
3
+ className: string;
4
+ }>> | React.ForwardRefExoticComponent<{
3
5
  className: string;
4
6
  } & {
5
7
  children?: React.ReactNode | undefined;
@@ -1,6 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
3
  import { styled } from '@mui/system';
4
+ import { forwardRef } from '@mui/x-internals/forwardRef';
4
5
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
5
6
  import { useGridConfiguration } from "../../hooks/utils/useGridConfiguration.js";
6
7
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
@@ -21,16 +22,16 @@ const Element = styled('div', {
21
22
  display: 'flex',
22
23
  flexDirection: 'column'
23
24
  });
24
- export const GridMainContainer = /*#__PURE__*/React.forwardRef((props, ref) => {
25
+ export const GridMainContainer = forwardRef((props, ref) => {
25
26
  const rootProps = useGridRootProps();
26
27
  const configuration = useGridConfiguration();
27
28
  const ariaAttributes = configuration.hooks.useGridAriaAttributes();
28
29
  return /*#__PURE__*/_jsxs(Element, _extends({
29
- ref: ref,
30
30
  ownerState: rootProps,
31
31
  className: props.className,
32
32
  tabIndex: -1
33
- }, ariaAttributes, {
33
+ }, ariaAttributes, rootProps.slotProps?.main, {
34
+ ref: ref,
34
35
  children: [/*#__PURE__*/_jsx(GridPanelAnchor, {
35
36
  role: "presentation",
36
37
  "data-id": "gridPanelAnchor"
@@ -3,5 +3,5 @@ type Position = 'vertical' | 'horizontal';
3
3
  type GridVirtualScrollbarProps = {
4
4
  position: Position;
5
5
  };
6
- declare const GridVirtualScrollbar: React.ForwardRefExoticComponent<GridVirtualScrollbarProps & React.RefAttributes<HTMLDivElement>>;
6
+ declare const GridVirtualScrollbar: React.ForwardRefExoticComponent<GridVirtualScrollbarProps> | React.ForwardRefExoticComponent<GridVirtualScrollbarProps & React.RefAttributes<HTMLDivElement>>;
7
7
  export { GridVirtualScrollbar };
@@ -1,6 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { styled } from '@mui/system';
3
3
  import { unstable_composeClasses as composeClasses, unstable_useForkRef as useForkRef, unstable_useEventCallback as useEventCallback } from '@mui/utils';
4
+ import { forwardRef } from '@mui/x-internals/forwardRef';
4
5
  import { useOnMount } from "../../hooks/utils/useOnMount.js";
5
6
  import { useGridPrivateApiContext } from "../../hooks/utils/useGridPrivateApiContext.js";
6
7
  import { gridDimensionsSelector, useGridSelector } from "../../hooks/index.js";
@@ -52,7 +53,7 @@ const ScrollbarHorizontal = styled(Scrollbar)({
52
53
  },
53
54
  bottom: '0px'
54
55
  });
55
- const GridVirtualScrollbar = /*#__PURE__*/React.forwardRef(function GridVirtualScrollbar(props, ref) {
56
+ const GridVirtualScrollbar = forwardRef(function GridVirtualScrollbar(props, ref) {
56
57
  const apiRef = useGridPrivateApiContext();
57
58
  const rootProps = useGridRootProps();
58
59
  const isLocked = React.useRef(false);
@@ -2,5 +2,7 @@ import * as React from 'react';
2
2
  import { SxProps, Theme } from '@mui/system';
3
3
  declare const GridVirtualScrollerContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
4
4
  sx?: SxProps<Theme>;
5
+ }> | React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
6
+ sx?: SxProps<Theme>;
5
7
  } & React.RefAttributes<HTMLDivElement>>;
6
8
  export { GridVirtualScrollerContent };
@@ -3,6 +3,7 @@ import * as React from 'react';
3
3
  import clsx from 'clsx';
4
4
  import { styled } from '@mui/system';
5
5
  import composeClasses from '@mui/utils/composeClasses';
6
+ import { forwardRef } from '@mui/x-internals/forwardRef';
6
7
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
7
8
  import { getDataGridUtilityClass } from "../../constants/gridClasses.js";
8
9
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -20,15 +21,14 @@ const VirtualScrollerContentRoot = styled('div', {
20
21
  slot: 'VirtualScrollerContent',
21
22
  overridesResolver: (props, styles) => styles.virtualScrollerContent
22
23
  })({});
23
- const GridVirtualScrollerContent = /*#__PURE__*/React.forwardRef(function GridVirtualScrollerContent(props, ref) {
24
+ const GridVirtualScrollerContent = forwardRef(function GridVirtualScrollerContent(props, ref) {
24
25
  const rootProps = useGridRootProps();
25
26
  const overflowedContent = !rootProps.autoHeight && props.style?.minHeight === 'auto';
26
27
  const classes = useUtilityClasses(rootProps, overflowedContent);
27
- return /*#__PURE__*/_jsx(VirtualScrollerContentRoot, _extends({
28
- ref: ref
29
- }, props, {
28
+ return /*#__PURE__*/_jsx(VirtualScrollerContentRoot, _extends({}, props, {
30
29
  ownerState: rootProps,
31
- className: clsx(classes.root, props.className)
30
+ className: clsx(classes.root, props.className),
31
+ ref: ref
32
32
  }));
33
33
  });
34
34
  export { GridVirtualScrollerContent };
@@ -2,5 +2,7 @@ import * as React from 'react';
2
2
  import { SxProps, Theme } from '@mui/system';
3
3
  declare const GridVirtualScrollerRenderZone: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
4
4
  sx?: SxProps<Theme>;
5
+ }> | React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
6
+ sx?: SxProps<Theme>;
5
7
  } & React.RefAttributes<HTMLDivElement>>;
6
8
  export { GridVirtualScrollerRenderZone };
@@ -5,6 +5,7 @@ import * as React from 'react';
5
5
  import clsx from 'clsx';
6
6
  import { styled } from '@mui/system';
7
7
  import composeClasses from '@mui/utils/composeClasses';
8
+ import { forwardRef } from '@mui/x-internals/forwardRef';
8
9
  import { useGridApiContext } from "../../hooks/utils/useGridApiContext.js";
9
10
  import { useGridSelector } from "../../hooks/utils/useGridSelector.js";
10
11
  import { gridRowsMetaSelector } from "../../hooks/features/rows/index.js";
@@ -31,7 +32,7 @@ const VirtualScrollerRenderZoneRoot = styled('div', {
31
32
  // Prevents margin collapsing when using `getRowSpacing`
32
33
  flexDirection: 'column'
33
34
  });
34
- const GridVirtualScrollerRenderZone = /*#__PURE__*/React.forwardRef(function GridVirtualScrollerRenderZone(props, ref) {
35
+ const GridVirtualScrollerRenderZone = forwardRef(function GridVirtualScrollerRenderZone(props, ref) {
35
36
  const {
36
37
  className
37
38
  } = props,
@@ -45,12 +46,13 @@ const GridVirtualScrollerRenderZone = /*#__PURE__*/React.forwardRef(function Gri
45
46
  return rowsMeta.positions[renderContext.firstRowIndex] ?? 0;
46
47
  });
47
48
  return /*#__PURE__*/_jsx(VirtualScrollerRenderZoneRoot, _extends({
48
- ref: ref,
49
49
  className: clsx(classes.root, className),
50
50
  ownerState: rootProps,
51
51
  style: {
52
52
  transform: `translate3d(0, ${offsetTop}px, 0)`
53
53
  }
54
- }, other));
54
+ }, other, {
55
+ ref: ref
56
+ }));
55
57
  });
56
58
  export { GridVirtualScrollerRenderZone };
@@ -47,7 +47,7 @@ export const useGridColumnHeaders = props => {
47
47
  const isRtl = useRtl();
48
48
  const rootProps = useGridRootProps();
49
49
  const dimensions = useGridSelector(apiRef, gridDimensionsSelector);
50
- const hasVirtualization = useGridSelector(apiRef, gridVirtualizationColumnEnabledSelector);
50
+ const hasColumnVirtualization = useGridSelector(apiRef, gridVirtualizationColumnEnabledSelector);
51
51
  const columnGroupsModel = useGridSelector(apiRef, gridColumnGroupsUnwrappedModelSelector);
52
52
  const columnPositions = useGridSelector(apiRef, gridColumnPositionsSelector);
53
53
  const renderContext = useGridSelector(apiRef, gridRenderContextColumnsSelector);
@@ -87,8 +87,15 @@ export const useGridColumnHeaders = props => {
87
87
  renderContext: currentContext = renderContext,
88
88
  maxLastColumn = visibleColumns.length
89
89
  } = params || {};
90
- const firstColumnToRender = currentContext.firstColumnIndex;
91
- const lastColumnToRender = !hasVirtualization ? maxLastColumn : currentContext.lastColumnIndex;
90
+ let firstColumnToRender;
91
+ let lastColumnToRender;
92
+ if (!rootProps.disableVirtualization && !hasColumnVirtualization) {
93
+ firstColumnToRender = 0;
94
+ lastColumnToRender = maxLastColumn;
95
+ } else {
96
+ firstColumnToRender = currentContext.firstColumnIndex;
97
+ lastColumnToRender = currentContext.lastColumnIndex;
98
+ }
92
99
  const renderedColumns = visibleColumns.slice(firstColumnToRender, lastColumnToRender);
93
100
  return {
94
101
  renderedColumns,
@@ -4,6 +4,7 @@ export declare const DEFAULT_GRID_AUTOSIZE_OPTIONS: {
4
4
  includeOutliers: boolean;
5
5
  outliersFactor: number;
6
6
  expand: boolean;
7
+ disableColumnVirtualization: boolean;
7
8
  };
8
9
  export type GridAutosizeOptions = {
9
10
  /**
@@ -30,6 +31,11 @@ export type GridAutosizeOptions = {
30
31
  * @default false
31
32
  */
32
33
  expand?: boolean;
34
+ /**
35
+ * If false, column virtualization is not disabled while resizing.
36
+ * @default true
37
+ */
38
+ disableColumnVirtualization?: boolean;
33
39
  };
34
40
  /**
35
41
  * The Resize API interface that is available in the grid `apiRef`.
@@ -2,7 +2,8 @@ export const DEFAULT_GRID_AUTOSIZE_OPTIONS = {
2
2
  includeHeaders: true,
3
3
  includeOutliers: false,
4
4
  outliersFactor: 1.5,
5
- expand: false
5
+ expand: false,
6
+ disableColumnVirtualization: true
6
7
  };
7
8
 
8
9
  /**
@@ -7,4 +7,4 @@ export declare const columnResizeStateInitializer: GridStateInitializer;
7
7
  * @requires useGridColumns (method, event)
8
8
  * TODO: improve experience for last column
9
9
  */
10
- export declare const useGridColumnResize: (apiRef: React.MutableRefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "autosizeOptions" | "autosizeOnMount" | "disableAutosize" | "onColumnResize" | "onColumnWidthChange">) => void;
10
+ export declare const useGridColumnResize: (apiRef: React.MutableRefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "autosizeOptions" | "autosizeOnMount" | "disableAutosize" | "onColumnResize" | "onColumnWidthChange" | "disableVirtualization">) => void;
@@ -460,6 +460,7 @@ export const useGridColumnResize = (apiRef, props) => {
460
460
  return;
461
461
  }
462
462
  apiRef.current.autosizeColumns(_extends({}, props.autosizeOptions, {
463
+ disableColumnVirtualization: false,
463
464
  columns: [column.field]
464
465
  }));
465
466
  });
@@ -486,8 +487,10 @@ export const useGridColumnResize = (apiRef, props) => {
486
487
  options.columns = options.columns.filter(c => state.columnVisibilityModel[c] !== false);
487
488
  const columns = options.columns.map(c => apiRef.current.state.columns.lookup[c]);
488
489
  try {
489
- apiRef.current.unstable_setColumnVirtualization(false);
490
- await columnVirtualizationDisabled();
490
+ if (!props.disableVirtualization && options.disableColumnVirtualization) {
491
+ apiRef.current.unstable_setColumnVirtualization(false);
492
+ await columnVirtualizationDisabled();
493
+ }
491
494
  const widthByField = extractColumnWidths(apiRef, options, columns);
492
495
  const newColumns = columns.map(column => _extends({}, column, {
493
496
  width: widthByField[column.field],
@@ -519,10 +522,12 @@ export const useGridColumnResize = (apiRef, props) => {
519
522
  }
520
523
  });
521
524
  } finally {
522
- apiRef.current.unstable_setColumnVirtualization(true);
525
+ if (!props.disableVirtualization) {
526
+ apiRef.current.unstable_setColumnVirtualization(true);
527
+ }
523
528
  isAutosizingRef.current = false;
524
529
  }
525
- }, [apiRef, columnVirtualizationDisabled]);
530
+ }, [apiRef, columnVirtualizationDisabled, props.disableVirtualization]);
526
531
 
527
532
  /**
528
533
  * EFFECTS
@@ -53,4 +53,4 @@ export declare function getFirstNonSpannedColumnToRender({ firstColumnToRender,
53
53
  lastRowToRender: number;
54
54
  visibleRows: GridRowEntry[];
55
55
  }): number;
56
- export declare function getTotalHeaderHeight(apiRef: React.MutableRefObject<GridApiCommunity>, props: Pick<DataGridProcessedProps, 'columnHeaderHeight' | 'headerFilterHeight' | 'unstable_listView'>): number;
56
+ export declare function getTotalHeaderHeight(apiRef: React.MutableRefObject<GridApiCommunity>, props: Pick<DataGridProcessedProps, 'columnHeaderHeight' | 'headerFilterHeight' | 'unstable_listView' | 'columnGroupHeaderHeight'>): number;
@@ -319,6 +319,7 @@ export function getTotalHeaderHeight(apiRef, props) {
319
319
  const maxDepth = gridColumnGroupsHeaderMaxDepthSelector(apiRef);
320
320
  const isHeaderFilteringEnabled = gridHeaderFilteringEnabledSelector(apiRef);
321
321
  const columnHeadersHeight = Math.floor(props.columnHeaderHeight * densityFactor);
322
+ const columnGroupHeadersHeight = Math.floor((props.columnGroupHeaderHeight ?? props.columnHeaderHeight) * densityFactor);
322
323
  const filterHeadersHeight = isHeaderFilteringEnabled ? Math.floor((props.headerFilterHeight ?? props.columnHeaderHeight) * densityFactor) : 0;
323
- return columnHeadersHeight * (1 + (maxDepth ?? 0)) + filterHeadersHeight;
324
+ return columnHeadersHeight + columnGroupHeadersHeight * maxDepth + filterHeadersHeight;
324
325
  }