@mui/x-data-grid 7.11.1 → 7.12.1

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 (148) hide show
  1. package/CHANGELOG.md +178 -4
  2. package/components/GridHeaders.js +1 -4
  3. package/components/GridPagination.js +2 -0
  4. package/components/GridRow.d.ts +1 -0
  5. package/components/GridRow.js +11 -28
  6. package/components/GridRowCount.js +1 -1
  7. package/components/GridSelectedRowCount.js +1 -1
  8. package/components/base/GridOverlays.js +1 -1
  9. package/components/cell/GridBooleanCell.js +3 -3
  10. package/components/columnHeaders/ColumnHeaderMenuIcon.js +1 -1
  11. package/components/columnHeaders/GridBaseColumnHeaders.js +1 -1
  12. package/components/columnHeaders/GridColumnGroupHeader.js +2 -1
  13. package/components/columnHeaders/GridColumnHeaderSortIcon.js +1 -1
  14. package/components/columnHeaders/GridColumnHeaderTitle.js +1 -1
  15. package/components/columnHeaders/GridIconButtonContainer.js +1 -1
  16. package/components/columnSelection/GridHeaderCheckbox.js +1 -1
  17. package/components/columnsManagement/GridColumnsManagement.js +1 -1
  18. package/components/containers/GridFooterContainer.js +1 -1
  19. package/components/containers/GridOverlay.js +1 -1
  20. package/components/containers/GridRoot.js +4 -7
  21. package/components/containers/GridRootStyles.js +26 -6
  22. package/components/containers/GridToolbarContainer.js +1 -1
  23. package/components/panel/GridPanelContent.js +1 -1
  24. package/components/panel/GridPanelFooter.js +1 -1
  25. package/components/panel/GridPanelHeader.js +1 -1
  26. package/components/panel/GridPanelWrapper.js +1 -1
  27. package/components/virtualization/GridBottomContainer.js +1 -1
  28. package/components/virtualization/GridTopContainer.js +2 -13
  29. package/components/virtualization/GridVirtualScrollbar.js +1 -0
  30. package/components/virtualization/GridVirtualScroller.js +1 -1
  31. package/components/virtualization/GridVirtualScrollerContent.js +1 -1
  32. package/components/virtualization/GridVirtualScrollerRenderZone.js +1 -1
  33. package/constants/gridClasses.d.ts +10 -0
  34. package/constants/gridClasses.js +1 -1
  35. package/hooks/core/useGridRefs.js +3 -1
  36. package/hooks/features/columnHeaders/useGridColumnHeaders.js +3 -0
  37. package/hooks/features/editing/useGridEditing.js +2 -2
  38. package/hooks/features/rowSelection/useGridRowSelection.js +2 -3
  39. package/hooks/features/rowSelection/useGridRowSelectionPreProcessors.js +1 -1
  40. package/hooks/features/rows/gridRowsUtils.d.ts +2 -1
  41. package/hooks/features/rows/gridRowsUtils.js +3 -2
  42. package/hooks/features/rows/index.d.ts +1 -1
  43. package/hooks/features/rows/index.js +1 -1
  44. package/hooks/features/rows/useGridRows.js +3 -3
  45. package/hooks/features/sorting/gridSortingSelector.js +2 -2
  46. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +1 -1
  47. package/hooks/features/virtualization/useGridVirtualScroller.js +13 -5
  48. package/index.js +1 -1
  49. package/internals/utils/useProps.js +1 -6
  50. package/locales/trTR.js +19 -21
  51. package/models/api/gridCoreApi.d.ts +1 -1
  52. package/modern/components/GridHeaders.js +1 -4
  53. package/modern/components/GridPagination.js +2 -0
  54. package/modern/components/GridRow.js +11 -28
  55. package/modern/components/GridRowCount.js +1 -1
  56. package/modern/components/GridSelectedRowCount.js +1 -1
  57. package/modern/components/base/GridOverlays.js +1 -1
  58. package/modern/components/cell/GridBooleanCell.js +3 -3
  59. package/modern/components/columnHeaders/ColumnHeaderMenuIcon.js +1 -1
  60. package/modern/components/columnHeaders/GridBaseColumnHeaders.js +1 -1
  61. package/modern/components/columnHeaders/GridColumnGroupHeader.js +2 -1
  62. package/modern/components/columnHeaders/GridColumnHeaderSortIcon.js +1 -1
  63. package/modern/components/columnHeaders/GridColumnHeaderTitle.js +1 -1
  64. package/modern/components/columnHeaders/GridIconButtonContainer.js +1 -1
  65. package/modern/components/columnSelection/GridHeaderCheckbox.js +1 -1
  66. package/modern/components/columnsManagement/GridColumnsManagement.js +1 -1
  67. package/modern/components/containers/GridFooterContainer.js +1 -1
  68. package/modern/components/containers/GridOverlay.js +1 -1
  69. package/modern/components/containers/GridRoot.js +4 -7
  70. package/modern/components/containers/GridRootStyles.js +26 -6
  71. package/modern/components/containers/GridToolbarContainer.js +1 -1
  72. package/modern/components/panel/GridPanelContent.js +1 -1
  73. package/modern/components/panel/GridPanelFooter.js +1 -1
  74. package/modern/components/panel/GridPanelHeader.js +1 -1
  75. package/modern/components/panel/GridPanelWrapper.js +1 -1
  76. package/modern/components/virtualization/GridBottomContainer.js +1 -1
  77. package/modern/components/virtualization/GridTopContainer.js +2 -13
  78. package/modern/components/virtualization/GridVirtualScrollbar.js +1 -0
  79. package/modern/components/virtualization/GridVirtualScroller.js +1 -1
  80. package/modern/components/virtualization/GridVirtualScrollerContent.js +1 -1
  81. package/modern/components/virtualization/GridVirtualScrollerRenderZone.js +1 -1
  82. package/modern/constants/gridClasses.js +1 -1
  83. package/modern/hooks/core/useGridRefs.js +3 -1
  84. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +3 -0
  85. package/modern/hooks/features/editing/useGridEditing.js +2 -2
  86. package/modern/hooks/features/rowSelection/useGridRowSelection.js +2 -3
  87. package/modern/hooks/features/rowSelection/useGridRowSelectionPreProcessors.js +1 -1
  88. package/modern/hooks/features/rows/gridRowsUtils.js +3 -2
  89. package/modern/hooks/features/rows/index.js +1 -1
  90. package/modern/hooks/features/rows/useGridRows.js +3 -3
  91. package/modern/hooks/features/sorting/gridSortingSelector.js +2 -2
  92. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +13 -5
  93. package/modern/index.js +1 -1
  94. package/modern/internals/utils/useProps.js +1 -6
  95. package/modern/locales/trTR.js +19 -21
  96. package/modern/utils/composeGridClasses.js +5 -0
  97. package/modern/utils/platform.js +2 -0
  98. package/node/components/GridHeaders.js +1 -4
  99. package/node/components/GridPagination.js +2 -0
  100. package/node/components/GridRow.js +9 -26
  101. package/node/components/GridRowCount.js +2 -2
  102. package/node/components/GridSelectedRowCount.js +2 -2
  103. package/node/components/base/GridOverlays.js +2 -2
  104. package/node/components/cell/GridBooleanCell.js +3 -3
  105. package/node/components/columnHeaders/ColumnHeaderMenuIcon.js +2 -2
  106. package/node/components/columnHeaders/GridBaseColumnHeaders.js +2 -2
  107. package/node/components/columnHeaders/GridColumnGroupHeader.js +2 -1
  108. package/node/components/columnHeaders/GridColumnHeaderSortIcon.js +2 -2
  109. package/node/components/columnHeaders/GridColumnHeaderTitle.js +2 -2
  110. package/node/components/columnHeaders/GridIconButtonContainer.js +2 -2
  111. package/node/components/columnSelection/GridHeaderCheckbox.js +4 -4
  112. package/node/components/columnsManagement/GridColumnsManagement.js +5 -5
  113. package/node/components/containers/GridFooterContainer.js +2 -2
  114. package/node/components/containers/GridOverlay.js +2 -2
  115. package/node/components/containers/GridRoot.js +4 -7
  116. package/node/components/containers/GridRootStyles.js +26 -6
  117. package/node/components/containers/GridToolbarContainer.js +2 -2
  118. package/node/components/panel/GridPanelContent.js +2 -2
  119. package/node/components/panel/GridPanelFooter.js +2 -2
  120. package/node/components/panel/GridPanelHeader.js +2 -2
  121. package/node/components/panel/GridPanelWrapper.js +2 -2
  122. package/node/components/virtualization/GridBottomContainer.js +2 -2
  123. package/node/components/virtualization/GridTopContainer.js +3 -14
  124. package/node/components/virtualization/GridVirtualScrollbar.js +1 -0
  125. package/node/components/virtualization/GridVirtualScroller.js +2 -2
  126. package/node/components/virtualization/GridVirtualScrollerContent.js +2 -2
  127. package/node/components/virtualization/GridVirtualScrollerRenderZone.js +2 -2
  128. package/node/constants/gridClasses.js +1 -1
  129. package/node/hooks/core/useGridRefs.js +3 -1
  130. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +3 -0
  131. package/node/hooks/features/editing/useGridEditing.js +1 -1
  132. package/node/hooks/features/rowSelection/useGridRowSelection.js +2 -3
  133. package/node/hooks/features/rowSelection/useGridRowSelectionPreProcessors.js +2 -2
  134. package/node/hooks/features/rows/gridRowsUtils.js +6 -4
  135. package/node/hooks/features/rows/index.js +8 -1
  136. package/node/hooks/features/rows/useGridRows.js +2 -2
  137. package/node/hooks/features/sorting/gridSortingSelector.js +1 -1
  138. package/node/hooks/features/virtualization/useGridVirtualScroller.js +13 -5
  139. package/node/index.js +1 -1
  140. package/node/internals/utils/useProps.js +1 -7
  141. package/node/locales/trTR.js +19 -21
  142. package/node/utils/composeGridClasses.js +11 -0
  143. package/node/utils/platform.js +8 -0
  144. package/package.json +13 -3
  145. package/utils/composeGridClasses.d.ts +3 -0
  146. package/utils/composeGridClasses.js +5 -0
  147. package/utils/platform.d.ts +1 -0
  148. package/utils/platform.js +2 -0
@@ -4,7 +4,7 @@ const _excluded = ["className", "selectedRowCount"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
7
+ import composeClasses from '@mui/utils/composeClasses';
8
8
  import { styled } from '@mui/system';
9
9
  import { useGridApiContext } from '../hooks/utils/useGridApiContext';
10
10
  import { getDataGridUtilityClass } from '../constants/gridClasses';
@@ -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 { styled } from '@mui/system';
5
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
5
+ import composeClasses from '@mui/utils/composeClasses';
6
6
  import clsx from 'clsx';
7
7
  import { useGridSelector } from '../../hooks/utils/useGridSelector';
8
8
  import { gridDimensionsSelector } from '../../hooks/features/dimensions';
@@ -3,11 +3,11 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
3
3
  const _excluded = ["id", "value", "formattedValue", "api", "field", "row", "rowNode", "colDef", "cellMode", "isEditable", "hasFocus", "tabIndex", "hideDescendantCount"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
6
+ import composeClasses from '@mui/utils/composeClasses';
7
7
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
8
8
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
9
9
  import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
10
- import { isAutoGeneratedRow } from '../../hooks/features/rows/gridRowsUtils';
10
+ import { isAutogeneratedRowNode } from '../../hooks/features/rows/gridRowsUtils';
11
11
  import { jsx as _jsx } from "react/jsx-runtime";
12
12
  const useUtilityClasses = ownerState => {
13
13
  const {
@@ -106,7 +106,7 @@ process.env.NODE_ENV !== "production" ? GridBooleanCellRaw.propTypes = {
106
106
  const GridBooleanCell = /*#__PURE__*/React.memo(GridBooleanCellRaw);
107
107
  export { GridBooleanCell };
108
108
  export const renderBooleanCell = params => {
109
- if (params.field !== '__row_group_by_columns_group__' && isAutoGeneratedRow(params.rowNode)) {
109
+ if (params.field !== '__row_group_by_columns_group__' && isAutogeneratedRowNode(params.rowNode)) {
110
110
  return '';
111
111
  }
112
112
  return /*#__PURE__*/_jsx(GridBooleanCell, _extends({}, params));
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
3
+ import composeClasses from '@mui/utils/composeClasses';
4
4
  import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
5
5
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
6
6
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
@@ -3,7 +3,7 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
3
3
  const _excluded = ["className"];
4
4
  import * as React from 'react';
5
5
  import clsx from 'clsx';
6
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
6
+ import composeClasses from '@mui/utils/composeClasses';
7
7
  import { styled } from '@mui/system';
8
8
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
9
9
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
@@ -15,13 +15,14 @@ const useUtilityClasses = ownerState => {
15
15
  classes,
16
16
  headerAlign,
17
17
  isDragging,
18
+ isLastColumn,
18
19
  showLeftBorder,
19
20
  showRightBorder,
20
21
  groupId,
21
22
  pinnedPosition
22
23
  } = ownerState;
23
24
  const slots = {
24
- root: ['columnHeader', headerAlign === 'left' && 'columnHeader--alignLeft', headerAlign === 'center' && 'columnHeader--alignCenter', headerAlign === 'right' && 'columnHeader--alignRight', isDragging && 'columnHeader--moving', showRightBorder && 'columnHeader--withRightBorder', showLeftBorder && 'columnHeader--withLeftBorder', 'withBorderColor', groupId === null ? 'columnHeader--emptyGroup' : 'columnHeader--filledGroup', pinnedPosition === 'left' && 'columnHeader--pinnedLeft', pinnedPosition === 'right' && 'columnHeader--pinnedRight'],
25
+ root: ['columnHeader', headerAlign === 'left' && 'columnHeader--alignLeft', headerAlign === 'center' && 'columnHeader--alignCenter', headerAlign === 'right' && 'columnHeader--alignRight', isDragging && 'columnHeader--moving', showRightBorder && 'columnHeader--withRightBorder', showLeftBorder && 'columnHeader--withLeftBorder', 'withBorderColor', groupId === null ? 'columnHeader--emptyGroup' : 'columnHeader--filledGroup', pinnedPosition === 'left' && 'columnHeader--pinnedLeft', pinnedPosition === 'right' && 'columnHeader--pinnedRight', isLastColumn && 'columnHeader--last'],
25
26
  draggableContainer: ['columnHeaderDraggableContainer'],
26
27
  titleContainer: ['columnHeaderTitleContainer', 'withBorderColor'],
27
28
  titleContainerContent: ['columnHeaderTitleContainerContent']
@@ -3,7 +3,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
3
3
  const _excluded = ["direction", "index", "sortingOrder", "disabled"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
6
+ import composeClasses from '@mui/utils/composeClasses';
7
7
  import Badge from '@mui/material/Badge';
8
8
  import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
9
9
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
@@ -4,7 +4,7 @@ const _excluded = ["className"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
7
+ import composeClasses from '@mui/utils/composeClasses';
8
8
  import { styled } from '@mui/system';
9
9
  import { isOverflown } from '../../utils/domUtils';
10
10
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
@@ -3,7 +3,7 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
3
3
  const _excluded = ["className"];
4
4
  import * as React from 'react';
5
5
  import clsx from 'clsx';
6
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
6
+ import composeClasses from '@mui/utils/composeClasses';
7
7
  import { styled } from '@mui/system';
8
8
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
9
9
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
@@ -3,7 +3,7 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
3
3
  const _excluded = ["field", "colDef"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
6
+ import composeClasses from '@mui/utils/composeClasses';
7
7
  import { isMultipleRowSelectionEnabled } from '../../hooks/features/rowSelection/utils';
8
8
  import { useGridSelector } from '../../hooks/utils/useGridSelector';
9
9
  import { gridTabIndexColumnHeaderSelector } from '../../hooks/features/focus/gridFocusStateSelector';
@@ -2,7 +2,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  /* eslint-disable @typescript-eslint/no-use-before-define */
3
3
  import * as React from 'react';
4
4
  import PropTypes from 'prop-types';
5
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
5
+ import composeClasses from '@mui/utils/composeClasses';
6
6
  import FormControlLabel from '@mui/material/FormControlLabel';
7
7
  import { styled } from '@mui/material/styles';
8
8
  import { gridColumnDefinitionsSelector, gridColumnVisibilityModelSelector } from '../../hooks/features/columns/gridColumnsSelector';
@@ -4,7 +4,7 @@ const _excluded = ["className"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
7
+ import composeClasses from '@mui/utils/composeClasses';
8
8
  import { styled } from '@mui/system';
9
9
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
10
10
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
@@ -4,7 +4,7 @@ const _excluded = ["className"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
7
+ import composeClasses from '@mui/utils/composeClasses';
8
8
  import { styled } from '@mui/system';
9
9
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
10
10
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
@@ -12,15 +12,14 @@ import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
12
12
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
13
13
  import { gridDensitySelector } from '../../hooks/features/density/densitySelector';
14
14
  import { jsx as _jsx } from "react/jsx-runtime";
15
- const useUtilityClasses = ownerState => {
15
+ const useUtilityClasses = (ownerState, density) => {
16
16
  const {
17
17
  autoHeight,
18
- density,
19
18
  classes,
20
19
  showCellVerticalBorder
21
20
  } = ownerState;
22
21
  const slots = {
23
- root: ['root', autoHeight && 'autoHeight', `root--density${capitalize(density)}`, 'withBorderColor', showCellVerticalBorder && 'withVerticalBorder']
22
+ root: ['root', autoHeight && 'autoHeight', `root--density${capitalize(density)}`, ownerState.slots.toolbar === null && 'root--noToolbar', 'withBorderColor', showCellVerticalBorder && 'withVerticalBorder']
24
23
  };
25
24
  return composeClasses(slots, getDataGridUtilityClass, classes);
26
25
  };
@@ -34,10 +33,8 @@ const GridRoot = /*#__PURE__*/React.forwardRef(function GridRoot(props, ref) {
34
33
  const density = useGridSelector(apiRef, gridDensitySelector);
35
34
  const rootElementRef = apiRef.current.rootElementRef;
36
35
  const handleRef = useForkRef(rootElementRef, ref);
37
- const ownerState = _extends({}, rootProps, {
38
- density
39
- });
40
- const classes = useUtilityClasses(ownerState);
36
+ const ownerState = rootProps;
37
+ const classes = useUtilityClasses(ownerState, density);
41
38
 
42
39
  // Our implementation of <NoSsr />
43
40
  const [mountedState, setMountedState] = React.useState(false);
@@ -1,6 +1,9 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import { alpha, styled, darken, lighten, decomposeColor, recomposeColor } from '@mui/material/styles';
3
3
  import { gridClasses as c } from '../../constants/gridClasses';
4
+ import { useGridSelector } from '../../hooks/utils/useGridSelector';
5
+ import { useGridPrivateApiContext } from '../../hooks/utils/useGridPrivateApiContext';
6
+ import { gridDimensionsSelector } from '../../hooks/features/dimensions/gridDimensionsSelectors';
4
7
  function getBorderColor(theme) {
5
8
  if (theme.vars) {
6
9
  return theme.vars.palette.TableCell.border;
@@ -26,6 +29,10 @@ const columnHeaderStyles = {
26
29
  visibility: 'visible'
27
30
  }
28
31
  };
32
+
33
+ // Emotion thinks it knows better than us which selector we should use.
34
+ // https://github.com/emotion-js/emotion/issues/1105#issuecomment-1722524968
35
+ const ignoreSsrWarning = '/* emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason */';
29
36
  export const GridRootStyles = styled('div', {
30
37
  name: 'MuiDataGrid',
31
38
  slot: 'Root',
@@ -151,6 +158,8 @@ export const GridRootStyles = styled('div', {
151
158
  })(({
152
159
  theme: t
153
160
  }) => {
161
+ const apiRef = useGridPrivateApiContext();
162
+ const dimensions = useGridSelector(apiRef, gridDimensionsSelector);
154
163
  const borderColor = getBorderColor(t);
155
164
  const radius = t.shape.borderRadius;
156
165
  const containerBackground = t.vars ? t.vars.palette.background.default : t.mixins.MuiDataGrid?.containerBackground ?? t.palette.background.default;
@@ -213,14 +222,10 @@ export const GridRootStyles = styled('div', {
213
222
  // See https://github.com/mui/mui-x/issues/8547
214
223
  minHeight: 0,
215
224
  flexDirection: 'column',
225
+ overflow: 'hidden',
216
226
  overflowAnchor: 'none',
217
227
  // Keep the same scrolling position
218
- // The selector we really want here is `:first-child`, but emotion thinks it knows better than use what we
219
- // want and prints a warning to the console if we use it, about :first-child being "unsafe" in an SSR context.
220
- // https://github.com/emotion-js/emotion/issues/1105
221
- // Using `:first-of-type instead` is ironically less "safe" because if all our elements aren't `div`, this style
222
- // will fail to apply.
223
- [`.${c.main} > *:first-of-type`]: {
228
+ [`.${c.main} > *:first-child${ignoreSsrWarning}`]: {
224
229
  borderTopLeftRadius: 'var(--unstable_DataGrid-radius)',
225
230
  borderTopRightRadius: 'var(--unstable_DataGrid-radius)'
226
231
  },
@@ -268,6 +273,12 @@ export const GridRootStyles = styled('div', {
268
273
  [`& .${c.columnHeader}:focus, & .${c.cell}:focus`]: {
269
274
  outline: `solid ${t.palette.primary.main} 1px`
270
275
  },
276
+ [`&.${c['root--noToolbar']} [aria-rowindex="1"] [aria-colindex="1"]`]: {
277
+ borderTopLeftRadius: 'calc(var(--unstable_DataGrid-radius) - 1px)'
278
+ },
279
+ [`&.${c['root--noToolbar']} [aria-rowindex="1"] .${c['columnHeader--last']}`]: {
280
+ borderTopRightRadius: !dimensions.hasScrollY || dimensions.scrollbarSize === 0 ? 'calc(var(--unstable_DataGrid-radius) - 1px)' : undefined
281
+ },
271
282
  [`& .${c.columnHeaderCheckbox}, & .${c.cellCheckbox}`]: {
272
283
  padding: 0,
273
284
  justifyContent: 'center',
@@ -407,6 +418,15 @@ export const GridRootStyles = styled('div', {
407
418
  borderTop: '1px solid var(--DataGrid-rowBorderColor)'
408
419
  }
409
420
  },
421
+ /* Bottom border of the top-container */
422
+ [`& .${c['row--borderBottom']} .${c.columnHeader},
423
+ & .${c['row--borderBottom']} .${c.filler},
424
+ & .${c['row--borderBottom']} .${c.scrollbarFiller}`]: {
425
+ borderBottom: `1px solid var(--DataGrid-rowBorderColor)`
426
+ },
427
+ [`& .${c['row--borderBottom']} .${c.cell}`]: {
428
+ borderBottom: `1px solid var(--rowBorderColor)`
429
+ },
410
430
  /* Row styles */
411
431
  [`.${c.row}`]: {
412
432
  display: 'flex',
@@ -5,7 +5,7 @@ import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
7
  import { styled } from '@mui/system';
8
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
8
+ import composeClasses from '@mui/utils/composeClasses';
9
9
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
10
10
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
11
11
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -5,7 +5,7 @@ import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
7
  import { styled } from '@mui/system';
8
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
8
+ import composeClasses from '@mui/utils/composeClasses';
9
9
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
10
10
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
11
11
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -5,7 +5,7 @@ import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
7
  import { styled } from '@mui/system';
8
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
8
+ import composeClasses from '@mui/utils/composeClasses';
9
9
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
10
10
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
11
11
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -5,7 +5,7 @@ import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
7
  import { styled } from '@mui/system';
8
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
8
+ import composeClasses from '@mui/utils/composeClasses';
9
9
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
10
10
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
11
11
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -6,7 +6,7 @@ import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
7
  import FocusTrap from '@mui/material/Unstable_TrapFocus';
8
8
  import { styled } from '@mui/material/styles';
9
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
9
+ import composeClasses from '@mui/utils/composeClasses';
10
10
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
11
11
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
12
12
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -2,7 +2,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
3
  import clsx from 'clsx';
4
4
  import { styled } from '@mui/system';
5
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
5
+ import composeClasses from '@mui/utils/composeClasses';
6
6
  import { gridClasses, getDataGridUtilityClass } from '../../constants/gridClasses';
7
7
  import { jsx as _jsx } from "react/jsx-runtime";
8
8
  const useUtilityClasses = () => {
@@ -2,7 +2,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
3
  import clsx from 'clsx';
4
4
  import { styled } from '@mui/system';
5
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
5
+ import composeClasses from '@mui/utils/composeClasses';
6
6
  import { gridClasses, getDataGridUtilityClass } from '../../constants/gridClasses';
7
7
  import { jsx as _jsx } from "react/jsx-runtime";
8
8
  const useUtilityClasses = () => {
@@ -14,18 +14,7 @@ const useUtilityClasses = () => {
14
14
  const Element = styled('div')({
15
15
  position: 'sticky',
16
16
  zIndex: 4,
17
- top: 0,
18
- '&::after': {
19
- content: '" "',
20
- position: 'absolute',
21
- zIndex: 5,
22
- bottom: 0,
23
- left: 0,
24
- right: 0,
25
- height: 1,
26
- width: 'var(--DataGrid-rowWidth)',
27
- backgroundColor: 'var(--DataGrid-rowBorderColor)'
28
- }
17
+ top: 0
29
18
  });
30
19
  export function GridTopContainer(props) {
31
20
  const classes = useUtilityClasses();
@@ -126,6 +126,7 @@ const GridVirtualScrollbar = /*#__PURE__*/React.forwardRef(function GridVirtualS
126
126
  ref: useForkRef(ref, scrollbarRef),
127
127
  className: classes.root,
128
128
  tabIndex: -1,
129
+ "aria-hidden": "true",
129
130
  children: /*#__PURE__*/_jsx(Content, {
130
131
  ref: contentRef,
131
132
  className: classes.content
@@ -1,7 +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 { unstable_composeClasses as composeClasses } from '@mui/utils';
4
+ import composeClasses from '@mui/utils/composeClasses';
5
5
  import { GridScrollArea } from '../GridScrollArea';
6
6
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
7
7
  import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
@@ -2,7 +2,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
3
  import clsx from 'clsx';
4
4
  import { styled } from '@mui/system';
5
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
5
+ import composeClasses from '@mui/utils/composeClasses';
6
6
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
7
7
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
8
8
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -4,7 +4,7 @@ const _excluded = ["className"];
4
4
  import * as React from 'react';
5
5
  import clsx from 'clsx';
6
6
  import { styled } from '@mui/system';
7
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
7
+ import composeClasses from '@mui/utils/composeClasses';
8
8
  import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
9
9
  import { useGridSelector } from '../../hooks/utils/useGridSelector';
10
10
  import { gridRowsMetaSelector } from '../../hooks/features/rows';
@@ -2,4 +2,4 @@ import { unstable_generateUtilityClasses as generateUtilityClasses, unstable_gen
2
2
  export function getDataGridUtilityClass(slot) {
3
3
  return generateUtilityClass('MuiDataGrid', slot);
4
4
  }
5
- export const gridClasses = 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', '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--borderTop', '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', 'row', 'row--editable', 'row--editing', 'row--firstVisible', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', 'row--detailPanelExpanded', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'rowSkeleton', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'scrollbar', 'scrollbar--vertical', 'scrollbar--horizontal', 'scrollbarFiller', 'scrollbarFiller--header', 'scrollbarFiller--borderTop', 'scrollbarFiller--pinnedRight', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'virtualScroller', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pinnedColumns', 'withVerticalBorder', 'withBorderColor', 'cell--withRightBorder', 'cell--withLeftBorder', 'columnHeader--withRightBorder', 'columnHeader--withLeftBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'treeDataGroupingCellLoadingContainer', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pinnedRowsRenderZone']);
5
+ export const gridClasses = 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', '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--borderTop', '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--pinnedRight', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'virtualScroller', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pinnedColumns', 'withVerticalBorder', 'withBorderColor', 'cell--withRightBorder', 'cell--withLeftBorder', 'columnHeader--withRightBorder', 'columnHeader--withLeftBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'treeDataGroupingCellLoadingContainer', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pinnedRowsRenderZone']);
@@ -3,11 +3,13 @@ export const useGridRefs = apiRef => {
3
3
  const rootElementRef = React.useRef(null);
4
4
  const mainElementRef = React.useRef(null);
5
5
  const virtualScrollerRef = React.useRef(null);
6
+ const columnHeadersContainerRef = React.useRef(null);
6
7
  apiRef.current.register('public', {
7
8
  rootElementRef
8
9
  });
9
10
  apiRef.current.register('private', {
10
11
  mainElementRef,
11
- virtualScrollerRef
12
+ virtualScrollerRef,
13
+ columnHeadersContainerRef
12
14
  });
13
15
  };
@@ -12,6 +12,7 @@ import { gridRenderContextColumnsSelector, gridVirtualizationColumnEnabledSelect
12
12
  import { computeOffsetLeft } from '../virtualization/useGridVirtualScroller';
13
13
  import { GridColumnGroupHeader } from '../../../components/columnHeaders/GridColumnGroupHeader';
14
14
  import { GridPinnedColumnPosition, gridColumnPositionsSelector, gridVisiblePinnedColumnDefinitionsSelector } from '../columns';
15
+ import { gridPinnedRowsSelector } from '../rows/gridRowsSelector';
15
16
  import { gridColumnGroupsUnwrappedModelSelector } from '../columnGrouping/gridColumnGroupsSelector';
16
17
  import { GridScrollbarFillerCell as ScrollbarFiller } from '../../../components/GridScrollbarFillerCell';
17
18
  import { getPinnedCellOffset } from '../../../internals/utils/getPinnedCellOffset';
@@ -51,6 +52,7 @@ export const useGridColumnHeaders = props => {
51
52
  const columnPositions = useGridSelector(apiRef, gridColumnPositionsSelector);
52
53
  const renderContext = useGridSelector(apiRef, gridRenderContextColumnsSelector);
53
54
  const pinnedColumns = useGridSelector(apiRef, gridVisiblePinnedColumnDefinitionsSelector);
55
+ const pinnedRows = useGridSelector(apiRef, gridPinnedRowsSelector);
54
56
  const offsetLeft = computeOffsetLeft(columnPositions, renderContext, theme.direction, pinnedColumns.left.length);
55
57
  const gridHasFiller = dimensions.columnsTotalWidth < dimensions.viewportOuterSize.width;
56
58
  React.useEffect(() => {
@@ -179,6 +181,7 @@ export const useGridColumnHeaders = props => {
179
181
  role: "row",
180
182
  "aria-rowindex": headerGroupingMaxDepth + 1,
181
183
  ownerState: rootProps,
184
+ className: pinnedRows.top.length === 0 ? gridClasses['row--borderBottom'] : undefined,
182
185
  children: [leftRenderContext && getColumnHeaders({
183
186
  position: GridPinnedColumnPosition.LEFT,
184
187
  renderContext: leftRenderContext,
@@ -5,7 +5,7 @@ import { useGridCellEditing } from './useGridCellEditing';
5
5
  import { GridCellModes, GridEditModes } from '../../../models/gridEditRowModel';
6
6
  import { useGridRowEditing } from './useGridRowEditing';
7
7
  import { gridEditRowsStateSelector } from './gridEditingSelectors';
8
- import { isAutoGeneratedRow } from '../rows/gridRowsUtils';
8
+ import { isAutogeneratedRowNode } from '../rows/gridRowsUtils';
9
9
  export const editingStateInitializer = state => _extends({}, state, {
10
10
  editRows: {}
11
11
  });
@@ -17,7 +17,7 @@ export const useGridEditing = (apiRef, props) => {
17
17
  isCellEditable: isCellEditableProp
18
18
  } = props;
19
19
  const isCellEditable = React.useCallback(params => {
20
- if (isAutoGeneratedRow(params.rowNode)) {
20
+ if (isAutogeneratedRowNode(params.rowNode)) {
21
21
  return false;
22
22
  }
23
23
  if (!params.colDef.editable) {
@@ -272,11 +272,10 @@ export const useGridRowSelection = (apiRef, props) => {
272
272
  }
273
273
  }, [apiRef, expandMouseRowRangeSelection, canHaveMultipleSelection]);
274
274
  const handleHeaderSelectionCheckboxChange = React.useCallback(params => {
275
- const shouldLimitSelectionToCurrentPage = props.checkboxSelectionVisibleOnly && props.pagination;
276
- const rowsToBeSelected = shouldLimitSelectionToCurrentPage ? gridPaginatedVisibleSortedGridRowIdsSelector(apiRef) : gridExpandedSortedRowIdsSelector(apiRef);
275
+ const rowsToBeSelected = props.pagination && props.checkboxSelectionVisibleOnly && props.paginationMode === 'client' ? gridPaginatedVisibleSortedGridRowIdsSelector(apiRef) : gridExpandedSortedRowIdsSelector(apiRef);
277
276
  const filterModel = gridFilterModelSelector(apiRef);
278
277
  apiRef.current.selectRows(rowsToBeSelected, params.value, filterModel?.items.length > 0);
279
- }, [apiRef, props.checkboxSelectionVisibleOnly, props.pagination]);
278
+ }, [apiRef, props.checkboxSelectionVisibleOnly, props.pagination, props.paginationMode]);
280
279
  const handleCellKeyDown = React.useCallback((params, event) => {
281
280
  // Get the most recent cell mode because it may have been changed by another listener
282
281
  if (apiRef.current.getCellMode(params.id, params.field) === GridCellModes.Edit) {
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
3
+ import composeClasses from '@mui/utils/composeClasses';
4
4
  import { useGridRegisterPipeProcessor } from '../../core/pipeProcessing';
5
5
  import { getDataGridUtilityClass } from '../../../constants';
6
6
  import { GRID_CHECKBOX_SELECTION_COL_DEF, GRID_CHECKBOX_SELECTION_FIELD } from '../../../colDef';
@@ -123,7 +123,8 @@ export const getRowsStateFromCache = ({
123
123
  groupsToFetch
124
124
  });
125
125
  };
126
- export const isAutoGeneratedRow = rowNode => rowNode.type === 'skeletonRow' || rowNode.type === 'footer' || rowNode.type === 'group' && rowNode.isAutoGenerated || rowNode.type === 'pinnedRow' && rowNode.isAutoGenerated;
126
+ export const isAutogeneratedRow = row => GRID_ID_AUTOGENERATED in row;
127
+ export const isAutogeneratedRowNode = rowNode => rowNode.type === 'skeletonRow' || rowNode.type === 'footer' || rowNode.type === 'group' && rowNode.isAutoGenerated || rowNode.type === 'pinnedRow' && rowNode.isAutoGenerated;
127
128
  export const getTreeNodeDescendants = (tree, parentId, skipAutoGeneratedRows) => {
128
129
  const node = tree[parentId];
129
130
  if (node.type !== 'group') {
@@ -132,7 +133,7 @@ export const getTreeNodeDescendants = (tree, parentId, skipAutoGeneratedRows) =>
132
133
  const validDescendants = [];
133
134
  for (let i = 0; i < node.children.length; i += 1) {
134
135
  const child = node.children[i];
135
- if (!skipAutoGeneratedRows || !isAutoGeneratedRow(tree[child])) {
136
+ if (!skipAutoGeneratedRows || !isAutogeneratedRowNode(tree[child])) {
136
137
  validDescendants.push(child);
137
138
  }
138
139
  const childDescendants = getTreeNodeDescendants(tree, child, skipAutoGeneratedRows);
@@ -1,4 +1,4 @@
1
1
  export * from './gridRowsMetaSelector';
2
2
  export * from './gridRowsMetaState';
3
3
  export { gridRowCountSelector, gridRowsLoadingSelector, gridTopLevelRowCountSelector, gridRowsLookupSelector, gridRowsDataRowIdToIdLookupSelector, gridRowTreeSelector, gridRowGroupingNameSelector, gridRowTreeDepthsSelector, gridRowMaximumTreeDepthSelector, gridDataRowIdsSelector } from './gridRowsSelector';
4
- export { GRID_ROOT_GROUP_ID, checkGridRowIdIsValid } from './gridRowsUtils';
4
+ export { GRID_ROOT_GROUP_ID, checkGridRowIdIsValid, isAutogeneratedRow } from './gridRowsUtils';
@@ -8,7 +8,7 @@ import { GridSignature, useGridApiEventHandler } from '../../utils/useGridApiEve
8
8
  import { useGridVisibleRows } from '../../utils/useGridVisibleRows';
9
9
  import { gridSortedRowIdsSelector } from '../sorting/gridSortingSelector';
10
10
  import { gridFilteredRowsLookupSelector } from '../filter/gridFilterSelector';
11
- import { getTreeNodeDescendants, createRowsInternalCache, getRowsStateFromCache, isAutoGeneratedRow, GRID_ROOT_GROUP_ID, GRID_ID_AUTOGENERATED, updateCacheWithNewRows, getTopLevelRowCount, getRowIdFromRowModel, computeRowsUpdates } from './gridRowsUtils';
11
+ import { getTreeNodeDescendants, createRowsInternalCache, getRowsStateFromCache, isAutogeneratedRowNode, GRID_ROOT_GROUP_ID, GRID_ID_AUTOGENERATED, updateCacheWithNewRows, getTopLevelRowCount, getRowIdFromRowModel, computeRowsUpdates } from './gridRowsUtils';
12
12
  import { useGridRegisterPipeApplier } from '../../core/pipeProcessing';
13
13
  export const rowsStateInitializer = (state, props, apiRef) => {
14
14
  const isDataSourceAvailable = !!props.unstable_dataSource;
@@ -48,7 +48,7 @@ export const useGridRows = (apiRef, props) => {
48
48
  return model;
49
49
  }
50
50
  const node = apiRef.current.getRowNode(id);
51
- if (node && isAutoGeneratedRow(node)) {
51
+ if (node && isAutogeneratedRowNode(node)) {
52
52
  return {
53
53
  [GRID_ID_AUTOGENERATED]: id
54
54
  };
@@ -212,7 +212,7 @@ export const useGridRows = (apiRef, props) => {
212
212
  const startIndex = sortedRowIds.findIndex(id => id === groupId) + 1;
213
213
  for (let index = startIndex; index < sortedRowIds.length && tree[sortedRowIds[index]].depth > groupNode.depth; index += 1) {
214
214
  const id = sortedRowIds[index];
215
- if (!skipAutoGeneratedRows || !isAutoGeneratedRow(tree[id])) {
215
+ if (!skipAutoGeneratedRows || !isAutogeneratedRowNode(tree[id])) {
216
216
  children.push(id);
217
217
  }
218
218
  }
@@ -1,6 +1,6 @@
1
1
  import { createSelector, createSelectorMemoized } from '../../../utils/createSelector';
2
2
  import { gridRowTreeSelector, gridRowsLookupSelector } from '../rows/gridRowsSelector';
3
- import { GRID_ID_AUTOGENERATED, isAutoGeneratedRow } from '../rows/gridRowsUtils';
3
+ import { GRID_ID_AUTOGENERATED, isAutogeneratedRowNode } from '../rows/gridRowsUtils';
4
4
  /**
5
5
  * @category Sorting
6
6
  * @ignore - do not document.
@@ -26,7 +26,7 @@ export const gridSortedRowEntriesSelector = createSelectorMemoized(gridSortedRow
26
26
  });
27
27
  }
28
28
  const rowNode = rowTree[id];
29
- if (rowNode && isAutoGeneratedRow(rowNode)) {
29
+ if (rowNode && isAutogeneratedRowNode(rowNode)) {
30
30
  acc.push({
31
31
  id,
32
32
  model: {