@mui/x-data-grid 7.11.1 → 7.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/CHANGELOG.md +110 -4
  2. package/components/GridPagination.js +2 -0
  3. package/components/GridRow.d.ts +1 -0
  4. package/components/GridRow.js +11 -28
  5. package/components/GridRowCount.js +1 -1
  6. package/components/GridSelectedRowCount.js +1 -1
  7. package/components/base/GridOverlays.js +1 -1
  8. package/components/cell/GridBooleanCell.js +3 -3
  9. package/components/columnHeaders/ColumnHeaderMenuIcon.js +1 -1
  10. package/components/columnHeaders/GridBaseColumnHeaders.js +1 -1
  11. package/components/columnHeaders/GridColumnGroupHeader.js +2 -1
  12. package/components/columnHeaders/GridColumnHeaderSortIcon.js +1 -1
  13. package/components/columnHeaders/GridColumnHeaderTitle.js +1 -1
  14. package/components/columnHeaders/GridIconButtonContainer.js +1 -1
  15. package/components/columnSelection/GridHeaderCheckbox.js +1 -1
  16. package/components/columnsManagement/GridColumnsManagement.js +1 -1
  17. package/components/containers/GridFooterContainer.js +1 -1
  18. package/components/containers/GridOverlay.js +1 -1
  19. package/components/containers/GridRoot.js +4 -7
  20. package/components/containers/GridRootStyles.js +26 -6
  21. package/components/containers/GridToolbarContainer.js +1 -1
  22. package/components/panel/GridPanelContent.js +1 -1
  23. package/components/panel/GridPanelFooter.js +1 -1
  24. package/components/panel/GridPanelHeader.js +1 -1
  25. package/components/panel/GridPanelWrapper.js +1 -1
  26. package/components/virtualization/GridBottomContainer.js +1 -1
  27. package/components/virtualization/GridTopContainer.js +2 -13
  28. package/components/virtualization/GridVirtualScrollbar.js +1 -0
  29. package/components/virtualization/GridVirtualScroller.js +1 -1
  30. package/components/virtualization/GridVirtualScrollerContent.js +1 -1
  31. package/components/virtualization/GridVirtualScrollerRenderZone.js +1 -1
  32. package/constants/gridClasses.d.ts +10 -0
  33. package/constants/gridClasses.js +1 -1
  34. package/hooks/features/columnHeaders/useGridColumnHeaders.js +3 -0
  35. package/hooks/features/editing/useGridEditing.js +2 -2
  36. package/hooks/features/rowSelection/useGridRowSelectionPreProcessors.js +1 -1
  37. package/hooks/features/rows/gridRowsUtils.d.ts +2 -1
  38. package/hooks/features/rows/gridRowsUtils.js +3 -2
  39. package/hooks/features/rows/index.d.ts +1 -1
  40. package/hooks/features/rows/index.js +1 -1
  41. package/hooks/features/rows/useGridRows.js +3 -3
  42. package/hooks/features/sorting/gridSortingSelector.js +2 -2
  43. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +1 -1
  44. package/hooks/features/virtualization/useGridVirtualScroller.js +13 -5
  45. package/index.js +1 -1
  46. package/internals/utils/useProps.js +1 -6
  47. package/locales/trTR.js +19 -21
  48. package/modern/components/GridPagination.js +2 -0
  49. package/modern/components/GridRow.js +11 -28
  50. package/modern/components/GridRowCount.js +1 -1
  51. package/modern/components/GridSelectedRowCount.js +1 -1
  52. package/modern/components/base/GridOverlays.js +1 -1
  53. package/modern/components/cell/GridBooleanCell.js +3 -3
  54. package/modern/components/columnHeaders/ColumnHeaderMenuIcon.js +1 -1
  55. package/modern/components/columnHeaders/GridBaseColumnHeaders.js +1 -1
  56. package/modern/components/columnHeaders/GridColumnGroupHeader.js +2 -1
  57. package/modern/components/columnHeaders/GridColumnHeaderSortIcon.js +1 -1
  58. package/modern/components/columnHeaders/GridColumnHeaderTitle.js +1 -1
  59. package/modern/components/columnHeaders/GridIconButtonContainer.js +1 -1
  60. package/modern/components/columnSelection/GridHeaderCheckbox.js +1 -1
  61. package/modern/components/columnsManagement/GridColumnsManagement.js +1 -1
  62. package/modern/components/containers/GridFooterContainer.js +1 -1
  63. package/modern/components/containers/GridOverlay.js +1 -1
  64. package/modern/components/containers/GridRoot.js +4 -7
  65. package/modern/components/containers/GridRootStyles.js +26 -6
  66. package/modern/components/containers/GridToolbarContainer.js +1 -1
  67. package/modern/components/panel/GridPanelContent.js +1 -1
  68. package/modern/components/panel/GridPanelFooter.js +1 -1
  69. package/modern/components/panel/GridPanelHeader.js +1 -1
  70. package/modern/components/panel/GridPanelWrapper.js +1 -1
  71. package/modern/components/virtualization/GridBottomContainer.js +1 -1
  72. package/modern/components/virtualization/GridTopContainer.js +2 -13
  73. package/modern/components/virtualization/GridVirtualScrollbar.js +1 -0
  74. package/modern/components/virtualization/GridVirtualScroller.js +1 -1
  75. package/modern/components/virtualization/GridVirtualScrollerContent.js +1 -1
  76. package/modern/components/virtualization/GridVirtualScrollerRenderZone.js +1 -1
  77. package/modern/constants/gridClasses.js +1 -1
  78. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +3 -0
  79. package/modern/hooks/features/editing/useGridEditing.js +2 -2
  80. package/modern/hooks/features/rowSelection/useGridRowSelectionPreProcessors.js +1 -1
  81. package/modern/hooks/features/rows/gridRowsUtils.js +3 -2
  82. package/modern/hooks/features/rows/index.js +1 -1
  83. package/modern/hooks/features/rows/useGridRows.js +3 -3
  84. package/modern/hooks/features/sorting/gridSortingSelector.js +2 -2
  85. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +13 -5
  86. package/modern/index.js +1 -1
  87. package/modern/internals/utils/useProps.js +1 -6
  88. package/modern/locales/trTR.js +19 -21
  89. package/modern/utils/composeGridClasses.js +5 -0
  90. package/modern/utils/platform.js +2 -0
  91. package/node/components/GridPagination.js +2 -0
  92. package/node/components/GridRow.js +9 -26
  93. package/node/components/GridRowCount.js +2 -2
  94. package/node/components/GridSelectedRowCount.js +2 -2
  95. package/node/components/base/GridOverlays.js +2 -2
  96. package/node/components/cell/GridBooleanCell.js +3 -3
  97. package/node/components/columnHeaders/ColumnHeaderMenuIcon.js +2 -2
  98. package/node/components/columnHeaders/GridBaseColumnHeaders.js +2 -2
  99. package/node/components/columnHeaders/GridColumnGroupHeader.js +2 -1
  100. package/node/components/columnHeaders/GridColumnHeaderSortIcon.js +2 -2
  101. package/node/components/columnHeaders/GridColumnHeaderTitle.js +2 -2
  102. package/node/components/columnHeaders/GridIconButtonContainer.js +2 -2
  103. package/node/components/columnSelection/GridHeaderCheckbox.js +4 -4
  104. package/node/components/columnsManagement/GridColumnsManagement.js +5 -5
  105. package/node/components/containers/GridFooterContainer.js +2 -2
  106. package/node/components/containers/GridOverlay.js +2 -2
  107. package/node/components/containers/GridRoot.js +4 -7
  108. package/node/components/containers/GridRootStyles.js +26 -6
  109. package/node/components/containers/GridToolbarContainer.js +2 -2
  110. package/node/components/panel/GridPanelContent.js +2 -2
  111. package/node/components/panel/GridPanelFooter.js +2 -2
  112. package/node/components/panel/GridPanelHeader.js +2 -2
  113. package/node/components/panel/GridPanelWrapper.js +2 -2
  114. package/node/components/virtualization/GridBottomContainer.js +2 -2
  115. package/node/components/virtualization/GridTopContainer.js +3 -14
  116. package/node/components/virtualization/GridVirtualScrollbar.js +1 -0
  117. package/node/components/virtualization/GridVirtualScroller.js +2 -2
  118. package/node/components/virtualization/GridVirtualScrollerContent.js +2 -2
  119. package/node/components/virtualization/GridVirtualScrollerRenderZone.js +2 -2
  120. package/node/constants/gridClasses.js +1 -1
  121. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +3 -0
  122. package/node/hooks/features/editing/useGridEditing.js +1 -1
  123. package/node/hooks/features/rowSelection/useGridRowSelectionPreProcessors.js +2 -2
  124. package/node/hooks/features/rows/gridRowsUtils.js +6 -4
  125. package/node/hooks/features/rows/index.js +8 -1
  126. package/node/hooks/features/rows/useGridRows.js +2 -2
  127. package/node/hooks/features/sorting/gridSortingSelector.js +1 -1
  128. package/node/hooks/features/virtualization/useGridVirtualScroller.js +13 -5
  129. package/node/index.js +1 -1
  130. package/node/internals/utils/useProps.js +1 -7
  131. package/node/locales/trTR.js +19 -21
  132. package/node/utils/composeGridClasses.js +11 -0
  133. package/node/utils/platform.js +8 -0
  134. package/package.json +3 -3
  135. package/utils/composeGridClasses.d.ts +3 -0
  136. package/utils/composeGridClasses.js +5 -0
  137. package/utils/platform.d.ts +1 -0
  138. package/utils/platform.js +2 -0
@@ -9,7 +9,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
9
9
  var React = _interopRequireWildcard(require("react"));
10
10
  var _clsx = _interopRequireDefault(require("clsx"));
11
11
  var _system = require("@mui/system");
12
- var _utils = require("@mui/utils");
12
+ var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
13
13
  var _gridClasses = require("../../constants/gridClasses");
14
14
  var _jsxRuntime = require("react/jsx-runtime");
15
15
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
@@ -18,23 +18,12 @@ const useUtilityClasses = () => {
18
18
  const slots = {
19
19
  root: ['topContainer']
20
20
  };
21
- return (0, _utils.unstable_composeClasses)(slots, _gridClasses.getDataGridUtilityClass, {});
21
+ return (0, _composeClasses.default)(slots, _gridClasses.getDataGridUtilityClass, {});
22
22
  };
23
23
  const Element = (0, _system.styled)('div')({
24
24
  position: 'sticky',
25
25
  zIndex: 4,
26
- top: 0,
27
- '&::after': {
28
- content: '" "',
29
- position: 'absolute',
30
- zIndex: 5,
31
- bottom: 0,
32
- left: 0,
33
- right: 0,
34
- height: 1,
35
- width: 'var(--DataGrid-rowWidth)',
36
- backgroundColor: 'var(--DataGrid-rowBorderColor)'
37
- }
26
+ top: 0
38
27
  });
39
28
  function GridTopContainer(props) {
40
29
  const classes = useUtilityClasses();
@@ -134,6 +134,7 @@ const GridVirtualScrollbar = exports.GridVirtualScrollbar = /*#__PURE__*/React.f
134
134
  ref: (0, _utils.unstable_useForkRef)(ref, scrollbarRef),
135
135
  className: classes.root,
136
136
  tabIndex: -1,
137
+ "aria-hidden": "true",
137
138
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Content, {
138
139
  ref: contentRef,
139
140
  className: classes.content
@@ -8,7 +8,7 @@ exports.GridVirtualScroller = GridVirtualScroller;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var React = _interopRequireWildcard(require("react"));
10
10
  var _system = require("@mui/system");
11
- var _utils = require("@mui/utils");
11
+ var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
12
12
  var _GridScrollArea = require("../GridScrollArea");
13
13
  var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
14
14
  var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
@@ -37,7 +37,7 @@ const useUtilityClasses = (ownerState, dimensions, loadingOverlayVariant) => {
37
37
  root: ['main', dimensions.rightPinnedWidth > 0 && 'main--hasPinnedRight', loadingOverlayVariant === 'skeleton' && 'main--hasSkeletonLoadingOverlay'],
38
38
  scroller: ['virtualScroller']
39
39
  };
40
- return (0, _utils.unstable_composeClasses)(slots, _gridClasses.getDataGridUtilityClass, classes);
40
+ return (0, _composeClasses.default)(slots, _gridClasses.getDataGridUtilityClass, classes);
41
41
  };
42
42
  const Scroller = (0, _system.styled)('div', {
43
43
  name: 'MuiDataGrid',
@@ -9,7 +9,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
9
9
  var React = _interopRequireWildcard(require("react"));
10
10
  var _clsx = _interopRequireDefault(require("clsx"));
11
11
  var _system = require("@mui/system");
12
- var _utils = require("@mui/utils");
12
+ var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
13
13
  var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
14
14
  var _gridClasses = require("../../constants/gridClasses");
15
15
  var _jsxRuntime = require("react/jsx-runtime");
@@ -22,7 +22,7 @@ const useUtilityClasses = (props, overflowedContent) => {
22
22
  const slots = {
23
23
  root: ['virtualScrollerContent', overflowedContent && 'virtualScrollerContent--overflowed']
24
24
  };
25
- return (0, _utils.unstable_composeClasses)(slots, _gridClasses.getDataGridUtilityClass, classes);
25
+ return (0, _composeClasses.default)(slots, _gridClasses.getDataGridUtilityClass, classes);
26
26
  };
27
27
  const VirtualScrollerContentRoot = (0, _system.styled)('div', {
28
28
  name: 'MuiDataGrid',
@@ -10,7 +10,7 @@ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runt
10
10
  var React = _interopRequireWildcard(require("react"));
11
11
  var _clsx = _interopRequireDefault(require("clsx"));
12
12
  var _system = require("@mui/system");
13
- var _utils = require("@mui/utils");
13
+ var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
14
14
  var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
15
15
  var _useGridSelector = require("../../hooks/utils/useGridSelector");
16
16
  var _rows = require("../../hooks/features/rows");
@@ -28,7 +28,7 @@ const useUtilityClasses = ownerState => {
28
28
  const slots = {
29
29
  root: ['virtualScrollerRenderZone']
30
30
  };
31
- return (0, _utils.unstable_composeClasses)(slots, _gridClasses.getDataGridUtilityClass, classes);
31
+ return (0, _composeClasses.default)(slots, _gridClasses.getDataGridUtilityClass, classes);
32
32
  };
33
33
  const VirtualScrollerRenderZoneRoot = (0, _system.styled)('div', {
34
34
  name: 'MuiDataGrid',
@@ -9,4 +9,4 @@ var _utils = require("@mui/utils");
9
9
  function getDataGridUtilityClass(slot) {
10
10
  return (0, _utils.unstable_generateUtilityClass)('MuiDataGrid', slot);
11
11
  }
12
- const gridClasses = exports.gridClasses = (0, _utils.unstable_generateUtilityClasses)('MuiDataGrid', ['actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'autoHeight', 'autosizing', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--flex', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--rangeTop', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell--pinnedLeft', 'cell--pinnedRight', 'cell--selectionMode', 'cell', 'cellCheckbox', 'cellEmpty', 'cellSkeleton', 'cellOffsetLeft', 'checkboxInput', 'columnHeader', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader--pinnedLeft', 'columnHeader--pinnedRight', 'columnHeader--last', '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']);
12
+ const gridClasses = exports.gridClasses = (0, _utils.unstable_generateUtilityClasses)('MuiDataGrid', ['actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'autoHeight', 'autosizing', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--flex', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--rangeTop', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell--pinnedLeft', 'cell--pinnedRight', 'cell--selectionMode', 'cell', 'cellCheckbox', 'cellEmpty', 'cellSkeleton', 'cellOffsetLeft', 'checkboxInput', 'columnHeader', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader--pinnedLeft', 'columnHeader--pinnedRight', 'columnHeader--last', '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']);
@@ -19,6 +19,7 @@ var _virtualization = require("../virtualization");
19
19
  var _useGridVirtualScroller = require("../virtualization/useGridVirtualScroller");
20
20
  var _GridColumnGroupHeader = require("../../../components/columnHeaders/GridColumnGroupHeader");
21
21
  var _columns = require("../columns");
22
+ var _gridRowsSelector = require("../rows/gridRowsSelector");
22
23
  var _gridColumnGroupsSelector = require("../columnGrouping/gridColumnGroupsSelector");
23
24
  var _GridScrollbarFillerCell = require("../../../components/GridScrollbarFillerCell");
24
25
  var _getPinnedCellOffset = require("../../../internals/utils/getPinnedCellOffset");
@@ -60,6 +61,7 @@ const useGridColumnHeaders = props => {
60
61
  const columnPositions = (0, _utils.useGridSelector)(apiRef, _columns.gridColumnPositionsSelector);
61
62
  const renderContext = (0, _utils.useGridSelector)(apiRef, _virtualization.gridRenderContextColumnsSelector);
62
63
  const pinnedColumns = (0, _utils.useGridSelector)(apiRef, _columns.gridVisiblePinnedColumnDefinitionsSelector);
64
+ const pinnedRows = (0, _utils.useGridSelector)(apiRef, _gridRowsSelector.gridPinnedRowsSelector);
63
65
  const offsetLeft = (0, _useGridVirtualScroller.computeOffsetLeft)(columnPositions, renderContext, theme.direction, pinnedColumns.left.length);
64
66
  const gridHasFiller = dimensions.columnsTotalWidth < dimensions.viewportOuterSize.width;
65
67
  React.useEffect(() => {
@@ -188,6 +190,7 @@ const useGridColumnHeaders = props => {
188
190
  role: "row",
189
191
  "aria-rowindex": headerGroupingMaxDepth + 1,
190
192
  ownerState: rootProps,
193
+ className: pinnedRows.top.length === 0 ? _gridClasses.gridClasses['row--borderBottom'] : undefined,
191
194
  children: [leftRenderContext && getColumnHeaders({
192
195
  position: _columns.GridPinnedColumnPosition.LEFT,
193
196
  renderContext: leftRenderContext,
@@ -27,7 +27,7 @@ const useGridEditing = (apiRef, props) => {
27
27
  isCellEditable: isCellEditableProp
28
28
  } = props;
29
29
  const isCellEditable = React.useCallback(params => {
30
- if ((0, _gridRowsUtils.isAutoGeneratedRow)(params.rowNode)) {
30
+ if ((0, _gridRowsUtils.isAutogeneratedRowNode)(params.rowNode)) {
31
31
  return false;
32
32
  }
33
33
  if (!params.colDef.editable) {
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.useGridRowSelectionPreProcessors = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var React = _interopRequireWildcard(require("react"));
10
- var _utils = require("@mui/utils");
10
+ var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
11
11
  var _pipeProcessing = require("../../core/pipeProcessing");
12
12
  var _constants = require("../../../constants");
13
13
  var _colDef = require("../../../colDef");
@@ -22,7 +22,7 @@ const useUtilityClasses = ownerState => {
22
22
  cellCheckbox: ['cellCheckbox'],
23
23
  columnHeaderCheckbox: ['columnHeaderCheckbox']
24
24
  };
25
- return (0, _utils.unstable_composeClasses)(slots, _constants.getDataGridUtilityClass, classes);
25
+ return (0, _composeClasses.default)(slots, _constants.getDataGridUtilityClass, classes);
26
26
  }, [classes]);
27
27
  };
28
28
  const useGridRowSelectionPreProcessors = (apiRef, props) => {
@@ -10,7 +10,7 @@ exports.checkGridRowIdIsValid = checkGridRowIdIsValid;
10
10
  exports.computeRowsUpdates = computeRowsUpdates;
11
11
  exports.createRowsInternalCache = void 0;
12
12
  exports.getMinimalContentHeight = getMinimalContentHeight;
13
- exports.updateCacheWithNewRows = exports.isAutoGeneratedRow = exports.getTreeNodeDescendants = exports.getTopLevelRowCount = exports.getRowsStateFromCache = exports.getRowIdFromRowModel = void 0;
13
+ exports.updateCacheWithNewRows = exports.isAutogeneratedRowNode = exports.isAutogeneratedRow = exports.getTreeNodeDescendants = exports.getTopLevelRowCount = exports.getRowsStateFromCache = exports.getRowIdFromRowModel = void 0;
14
14
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
15
15
  var _gridRowsSelector = require("./gridRowsSelector");
16
16
  var _gridDimensionsSelectors = require("../dimensions/gridDimensionsSelectors");
@@ -141,8 +141,10 @@ const getRowsStateFromCache = ({
141
141
  });
142
142
  };
143
143
  exports.getRowsStateFromCache = getRowsStateFromCache;
144
- const isAutoGeneratedRow = rowNode => rowNode.type === 'skeletonRow' || rowNode.type === 'footer' || rowNode.type === 'group' && rowNode.isAutoGenerated || rowNode.type === 'pinnedRow' && rowNode.isAutoGenerated;
145
- exports.isAutoGeneratedRow = isAutoGeneratedRow;
144
+ const isAutogeneratedRow = row => GRID_ID_AUTOGENERATED in row;
145
+ exports.isAutogeneratedRow = isAutogeneratedRow;
146
+ const isAutogeneratedRowNode = rowNode => rowNode.type === 'skeletonRow' || rowNode.type === 'footer' || rowNode.type === 'group' && rowNode.isAutoGenerated || rowNode.type === 'pinnedRow' && rowNode.isAutoGenerated;
147
+ exports.isAutogeneratedRowNode = isAutogeneratedRowNode;
146
148
  const getTreeNodeDescendants = (tree, parentId, skipAutoGeneratedRows) => {
147
149
  const node = tree[parentId];
148
150
  if (node.type !== 'group') {
@@ -151,7 +153,7 @@ const getTreeNodeDescendants = (tree, parentId, skipAutoGeneratedRows) => {
151
153
  const validDescendants = [];
152
154
  for (let i = 0; i < node.children.length; i += 1) {
153
155
  const child = node.children[i];
154
- if (!skipAutoGeneratedRows || !isAutoGeneratedRow(tree[child])) {
156
+ if (!skipAutoGeneratedRows || !isAutogeneratedRowNode(tree[child])) {
155
157
  validDescendants.push(child);
156
158
  }
157
159
  const childDescendants = getTreeNodeDescendants(tree, child, skipAutoGeneratedRows);
@@ -15,7 +15,8 @@ var _exportNames = {
15
15
  gridRowMaximumTreeDepthSelector: true,
16
16
  gridDataRowIdsSelector: true,
17
17
  GRID_ROOT_GROUP_ID: true,
18
- checkGridRowIdIsValid: true
18
+ checkGridRowIdIsValid: true,
19
+ isAutogeneratedRow: true
19
20
  };
20
21
  Object.defineProperty(exports, "GRID_ROOT_GROUP_ID", {
21
22
  enumerable: true,
@@ -89,6 +90,12 @@ Object.defineProperty(exports, "gridTopLevelRowCountSelector", {
89
90
  return _gridRowsSelector.gridTopLevelRowCountSelector;
90
91
  }
91
92
  });
93
+ Object.defineProperty(exports, "isAutogeneratedRow", {
94
+ enumerable: true,
95
+ get: function () {
96
+ return _gridRowsUtils.isAutogeneratedRow;
97
+ }
98
+ });
92
99
  var _gridRowsMetaSelector = require("./gridRowsMetaSelector");
93
100
  Object.keys(_gridRowsMetaSelector).forEach(function (key) {
94
101
  if (key === "default" || key === "__esModule") return;
@@ -58,7 +58,7 @@ const useGridRows = (apiRef, props) => {
58
58
  return model;
59
59
  }
60
60
  const node = apiRef.current.getRowNode(id);
61
- if (node && (0, _gridRowsUtils.isAutoGeneratedRow)(node)) {
61
+ if (node && (0, _gridRowsUtils.isAutogeneratedRowNode)(node)) {
62
62
  return {
63
63
  [_gridRowsUtils.GRID_ID_AUTOGENERATED]: id
64
64
  };
@@ -222,7 +222,7 @@ const useGridRows = (apiRef, props) => {
222
222
  const startIndex = sortedRowIds.findIndex(id => id === groupId) + 1;
223
223
  for (let index = startIndex; index < sortedRowIds.length && tree[sortedRowIds[index]].depth > groupNode.depth; index += 1) {
224
224
  const id = sortedRowIds[index];
225
- if (!skipAutoGeneratedRows || !(0, _gridRowsUtils.isAutoGeneratedRow)(tree[id])) {
225
+ if (!skipAutoGeneratedRows || !(0, _gridRowsUtils.isAutogeneratedRowNode)(tree[id])) {
226
226
  children.push(id);
227
227
  }
228
228
  }
@@ -32,7 +32,7 @@ const gridSortedRowEntriesSelector = exports.gridSortedRowEntriesSelector = (0,
32
32
  });
33
33
  }
34
34
  const rowNode = rowTree[id];
35
- if (rowNode && (0, _gridRowsUtils.isAutoGeneratedRow)(rowNode)) {
35
+ if (rowNode && (0, _gridRowsUtils.isAutogeneratedRowNode)(rowNode)) {
36
36
  acc.push({
37
37
  id,
38
38
  model: {
@@ -26,6 +26,7 @@ var _gridRowsSelector = require("../rows/gridRowsSelector");
26
26
  var _gridFocusStateSelector = require("../focus/gridFocusStateSelector");
27
27
  var _useGridVisibleRows = require("../../utils/useGridVisibleRows");
28
28
  var _utils2 = require("../../utils");
29
+ var platform = _interopRequireWildcard(require("../../../utils/platform"));
29
30
  var _utils3 = require("../../../utils/utils");
30
31
  var _gridRowSelectionSelector = require("../rowSelection/gridRowSelectionSelector");
31
32
  var _gridRowsMetaSelector = require("../rows/gridRowsMetaSelector");
@@ -190,6 +191,8 @@ const useGridVirtualScroller = () => {
190
191
  const forceUpdateRenderContext = () => {
191
192
  const inputs = inputsSelector(apiRef, rootProps, enabled, enabledForColumns);
192
193
  const nextRenderContext = computeRenderContext(inputs, scrollPosition.current, scrollCache);
194
+ // Reset the frozen context when the render context changes, see the illustration in https://github.com/mui/mui-x/pull/12353
195
+ frozenContext.current = undefined;
193
196
  updateRenderContext(nextRenderContext);
194
197
  };
195
198
  const handleScroll = (0, _utils.unstable_useEventCallback)(event => {
@@ -269,6 +272,7 @@ const useGridVirtualScroller = () => {
269
272
  id,
270
273
  model
271
274
  } = rowModels[rowIndexInPage];
275
+ const rowIndex = (currentPage?.range?.firstRowIndex || 0) + rowIndexOffset + rowIndexInPage;
272
276
 
273
277
  // NOTE: This is an expensive feature, the colSpan code could be optimized.
274
278
  if (hasColSpan) {
@@ -310,6 +314,7 @@ const useGridVirtualScroller = () => {
310
314
  isFirstVisible = rowIndexInPage === 0;
311
315
  }
312
316
  let isLastVisible = false;
317
+ const isLastVisibleInSection = rowIndexInPage === rowModels.length - 1;
313
318
  if (isLastSection) {
314
319
  if (!isPinnedSection) {
315
320
  const lastIndex = currentPage.rows.length - 1;
@@ -318,7 +323,7 @@ const useGridVirtualScroller = () => {
318
323
  isLastVisible = true;
319
324
  }
320
325
  } else {
321
- isLastVisible = rowIndexInPage === rowModels.length - 1;
326
+ isLastVisible = isLastVisibleInSection;
322
327
  }
323
328
  }
324
329
  const isVirtualRow = rowIndexInPage === virtualRowIndex;
@@ -333,7 +338,7 @@ const useGridVirtualScroller = () => {
333
338
  currentRenderContext = frozenContext.current;
334
339
  }
335
340
  const offsetLeft = computeOffsetLeft(columnPositions, currentRenderContext, theme.direction, pinnedColumns.left.length);
336
- const rowIndex = (currentPage?.range?.firstRowIndex || 0) + rowIndexOffset + rowIndexInPage;
341
+ const showBottomBorder = isLastVisibleInSection && params.position === 'top';
337
342
  rows.push( /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.row, (0, _extends2.default)({
338
343
  row: model,
339
344
  rowId: id,
@@ -350,7 +355,8 @@ const useGridVirtualScroller = () => {
350
355
  focusedColumnIndex: hasFocus ? focusedCell.columnIndex : undefined,
351
356
  isFirstVisible: isFirstVisible,
352
357
  isLastVisible: isLastVisible,
353
- isNotVisible: isNotVisible
358
+ isNotVisible: isNotVisible,
359
+ showBottomBorder: showBottomBorder
354
360
  }, rowProps), id));
355
361
  if (isNotVisible) {
356
362
  return;
@@ -421,12 +427,14 @@ const useGridVirtualScroller = () => {
421
427
  }),
422
428
  getScrollerProps: () => ({
423
429
  ref: scrollerRef,
424
- tabIndex: -1,
425
430
  onScroll: handleScroll,
426
431
  onWheel: handleWheel,
427
432
  onTouchMove: handleTouchMove,
428
433
  style: scrollerStyle,
429
- role: 'presentation'
434
+ role: 'presentation',
435
+ // `tabIndex` shouldn't be used along role=presentation, but it fixes a Firefox bug
436
+ // https://github.com/mui/mui-x/pull/13891#discussion_r1683416024
437
+ tabIndex: platform.isFirefox ? -1 : undefined
430
438
  }),
431
439
  getContentProps: () => ({
432
440
  style: contentSize,
package/node/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v7.11.1
2
+ * @mui/x-data-grid v7.12.0
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -1,12 +1,9 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.useProps = useProps;
8
- var _objectDestructuringEmpty2 = _interopRequireDefault(require("@babel/runtime/helpers/objectDestructuringEmpty"));
9
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
7
  var React = _interopRequireWildcard(require("react"));
11
8
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
12
9
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -30,8 +27,5 @@ function groupForwardedProps(props) {
30
27
  return newProps;
31
28
  }
32
29
  function useProps(allProps) {
33
- return React.useMemo(() => {
34
- const themedProps = (0, _extends2.default)({}, ((0, _objectDestructuringEmpty2.default)(allProps), allProps));
35
- return groupForwardedProps(themedProps);
36
- }, [allProps]);
30
+ return React.useMemo(() => groupForwardedProps(allProps), [allProps]);
37
31
  }
@@ -36,11 +36,10 @@ const trTRGrid = {
36
36
  toolbarExportPrint: 'Yazdır',
37
37
  toolbarExportExcel: 'Excel olarak aktar',
38
38
  // Columns management text
39
- // columnsManagementSearchTitle: 'Search',
40
- // columnsManagementNoColumns: 'No columns',
41
- // columnsManagementShowHideAllText: 'Show/Hide All',
42
- // columnsManagementReset: 'Reset',
43
-
39
+ columnsManagementSearchTitle: 'Arama',
40
+ columnsManagementNoColumns: 'Kolon yok',
41
+ columnsManagementShowHideAllText: 'Hepsini Göster/Gizle',
42
+ columnsManagementReset: 'Sıfırla',
44
43
  // Filter panel text
45
44
  filterPanelAddFilter: 'Filtre Ekle',
46
45
  filterPanelRemoveAll: 'Hepsini kaldır',
@@ -77,22 +76,21 @@ const trTRGrid = {
77
76
  headerFilterOperatorEquals: 'Şuna eşittir',
78
77
  headerFilterOperatorStartsWith: 'Şununla başlar',
79
78
  headerFilterOperatorEndsWith: 'Şununla biter',
80
- // headerFilterOperatorIs: 'Is',
81
- // headerFilterOperatorNot: 'Is not',
82
- // headerFilterOperatorAfter: 'Is after',
83
- // headerFilterOperatorOnOrAfter: 'Is on or after',
84
- // headerFilterOperatorBefore: 'Is before',
85
- // headerFilterOperatorOnOrBefore: 'Is on or before',
86
- // headerFilterOperatorIsEmpty: 'Is empty',
87
- // headerFilterOperatorIsNotEmpty: 'Is not empty',
88
- // headerFilterOperatorIsAnyOf: 'Is any of',
89
- // 'headerFilterOperator=': 'Equals',
90
- // 'headerFilterOperator!=': 'Not equals',
91
- // 'headerFilterOperator>': 'Greater than',
92
- // 'headerFilterOperator>=': 'Greater than or equal to',
93
- // 'headerFilterOperator<': 'Less than',
94
- // 'headerFilterOperator<=': 'Less than or equal to',
95
-
79
+ headerFilterOperatorIs: 'Eşittir',
80
+ headerFilterOperatorNot: 'Eşit değil',
81
+ headerFilterOperatorAfter: 'Sonra',
82
+ headerFilterOperatorOnOrAfter: 'Sonra veya eşit',
83
+ headerFilterOperatorBefore: 'Önce',
84
+ headerFilterOperatorOnOrBefore: 'Önce veya eşit',
85
+ headerFilterOperatorIsEmpty: 'Boş',
86
+ headerFilterOperatorIsNotEmpty: 'Boş değil',
87
+ headerFilterOperatorIsAnyOf: 'Herhangi biri',
88
+ 'headerFilterOperator=': 'Eşittir',
89
+ 'headerFilterOperator!=': 'Eşit değil',
90
+ 'headerFilterOperator>': 'Büyüktür',
91
+ 'headerFilterOperator>=': 'Büyük veya eşit',
92
+ 'headerFilterOperator<': 'Küçüktür',
93
+ 'headerFilterOperator<=': 'Küçük veya eşit',
96
94
  // Filter values text
97
95
  filterValueAny: 'herhangi',
98
96
  filterValueTrue: 'doğru',
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.composeGridClasses = composeGridClasses;
7
+ var _utils = require("@mui/utils");
8
+ var _gridClasses = require("../constants/gridClasses");
9
+ function composeGridClasses(classes, slots) {
10
+ return (0, _utils.unstable_composeClasses)(slots, _gridClasses.getDataGridUtilityClass, classes);
11
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isFirefox = void 0;
7
+ const userAgent = typeof navigator !== 'undefined' ? navigator.userAgent.toLowerCase() : 'empty';
8
+ const isFirefox = exports.isFirefox = userAgent.includes('firefox');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-data-grid",
3
- "version": "7.11.1",
3
+ "version": "7.12.0",
4
4
  "description": "The Community plan edition of the Data Grid components (MUI X).",
5
5
  "author": "MUI Team",
6
6
  "main": "./node/index.js",
@@ -37,13 +37,13 @@
37
37
  "directory": "packages/x-data-grid"
38
38
  },
39
39
  "dependencies": {
40
- "@babel/runtime": "^7.24.8",
40
+ "@babel/runtime": "^7.25.0",
41
41
  "@mui/system": "^5.16.5",
42
42
  "@mui/utils": "^5.16.5",
43
43
  "clsx": "^2.1.1",
44
44
  "prop-types": "^15.8.1",
45
45
  "reselect": "^4.1.8",
46
- "@mui/x-internals": "7.11.1"
46
+ "@mui/x-internals": "7.12.0"
47
47
  },
48
48
  "peerDependencies": {
49
49
  "@mui/material": "^5.15.14",
@@ -0,0 +1,3 @@
1
+ import { unstable_composeClasses as composeClasses } from '@mui/utils';
2
+ import type { DataGridProcessedProps } from '../models/props/DataGridProps';
3
+ export declare function composeGridClasses(classes: DataGridProcessedProps['classes'], slots: Parameters<typeof composeClasses>[0]): Record<string, string>;
@@ -0,0 +1,5 @@
1
+ import { unstable_composeClasses as composeClasses } from '@mui/utils';
2
+ import { getDataGridUtilityClass } from '../constants/gridClasses';
3
+ export function composeGridClasses(classes, slots) {
4
+ return composeClasses(slots, getDataGridUtilityClass, classes);
5
+ }
@@ -0,0 +1 @@
1
+ export declare const isFirefox: boolean;
@@ -0,0 +1,2 @@
1
+ const userAgent = typeof navigator !== 'undefined' ? navigator.userAgent.toLowerCase() : 'empty';
2
+ export const isFirefox = userAgent.includes('firefox');