@mui/x-data-grid-pro 7.23.6 → 7.24.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 (43) hide show
  1. package/CHANGELOG.md +150 -0
  2. package/DataGridPro/DataGridPro.js +5 -7
  3. package/DataGridPro/useDataGridProComponent.d.ts +2 -2
  4. package/DataGridPro/useDataGridProComponent.js +1 -1
  5. package/components/headerFiltering/GridHeaderFilterCell.d.ts +7 -7
  6. package/components/headerFiltering/GridHeaderFilterCell.js +13 -13
  7. package/components/headerFiltering/GridHeaderFilterMenuContainer.d.ts +1 -1
  8. package/esm/DataGridPro/DataGridPro.js +7 -9
  9. package/esm/DataGridPro/useDataGridProComponent.js +1 -1
  10. package/esm/components/headerFiltering/GridHeaderFilterCell.js +14 -14
  11. package/esm/hooks/features/columnHeaders/useGridColumnHeaders.js +16 -15
  12. package/esm/utils/releaseInfo.js +1 -1
  13. package/hooks/features/columnHeaders/useGridColumnHeaders.js +14 -13
  14. package/hooks/features/columnPinning/useGridColumnPinning.d.ts +2 -2
  15. package/hooks/features/columnPinning/useGridColumnPinningPreProcessors.d.ts +2 -2
  16. package/hooks/features/columnReorder/useGridColumnReorder.d.ts +2 -2
  17. package/hooks/features/dataSource/useGridDataSource.d.ts +2 -2
  18. package/hooks/features/dataSource/utils.d.ts +2 -1
  19. package/hooks/features/detailPanel/useGridDetailPanel.d.ts +2 -2
  20. package/hooks/features/detailPanel/useGridDetailPanelPreProcessors.d.ts +2 -2
  21. package/hooks/features/infiniteLoader/useGridInfiniteLoader.d.ts +2 -2
  22. package/hooks/features/lazyLoader/useGridLazyLoader.d.ts +2 -2
  23. package/hooks/features/lazyLoader/useGridLazyLoaderPreProcessors.d.ts +2 -2
  24. package/hooks/features/rowPinning/useGridRowPinning.d.ts +2 -2
  25. package/hooks/features/rowPinning/useGridRowPinningPreProcessors.d.ts +3 -3
  26. package/hooks/features/rowReorder/useGridRowReorder.d.ts +2 -2
  27. package/hooks/features/rowReorder/useGridRowReorderPreProcessors.d.ts +2 -2
  28. package/hooks/features/serverSideTreeData/useGridDataSourceTreeDataPreProcessors.d.ts +2 -2
  29. package/hooks/features/treeData/gridTreeDataUtils.d.ts +2 -1
  30. package/hooks/features/treeData/useGridTreeData.d.ts +2 -2
  31. package/hooks/features/treeData/useGridTreeDataPreProcessors.d.ts +2 -2
  32. package/hooks/utils/useGridApiContext.d.ts +1 -1
  33. package/hooks/utils/useGridPrivateApiContext.d.ts +1 -1
  34. package/index.js +1 -1
  35. package/models/dataGridProProps.d.ts +2 -1
  36. package/modern/DataGridPro/DataGridPro.js +7 -9
  37. package/modern/DataGridPro/useDataGridProComponent.js +1 -1
  38. package/modern/components/headerFiltering/GridHeaderFilterCell.js +14 -14
  39. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +16 -15
  40. package/modern/index.js +1 -1
  41. package/modern/utils/releaseInfo.js +1 -1
  42. package/package.json +4 -4
  43. package/utils/releaseInfo.js +1 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,156 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## 7.24.1
7
+
8
+ _Jan 24, 2025_
9
+
10
+ We'd like to offer a big thanks to the 7 contributors who made this release possible. Here are some highlights ✨:
11
+
12
+ - 🐞 Bugfixes
13
+ - 🌍 Improve Persian (fa-IR) locale on the Data Grid
14
+
15
+ Special thanks go out to the community contributors who have helped make this release possible:
16
+ @mostafaRoosta74, @lauri865.
17
+ Following are all team members who have contributed to this release:
18
+ @alexfauquette, @JCQuintas, @cherniavskii, @LukasTy, @arminmeh.
19
+
20
+ ### Data Grid
21
+
22
+ #### `@mui/x-data-grid@7.24.1`
23
+
24
+ - [DataGrid] Fix toggling preference panel from toolbar (#16276) @lauri865
25
+ - [DataGrid] Only try to mount filter button if there are filters present (#16269) @lauri865
26
+ - [DataGrid] Revert `apiRef` to be `MutableRefObject` for React versions < 19 (#16320) @arminmeh
27
+ - [l10n] Improve Persian (fa-IR) locale (#15964) @mostafaRoosta74
28
+
29
+ #### `@mui/x-data-grid-pro@7.24.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
30
+
31
+ Same changes as in `@mui/x-data-grid@7.24.1`.
32
+
33
+ #### `@mui/x-data-grid-premium@7.24.1` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
34
+
35
+ Same changes as in `@mui/x-data-grid-pro@7.24.1`.
36
+
37
+ ### Date and Time Pickers
38
+
39
+ #### `@mui/x-date-pickers@7.24.1`
40
+
41
+ - [fields] Reset `all` selected state on section edit (#16232) @LukasTy
42
+
43
+ #### `@mui/x-date-pickers-pro@7.24.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
44
+
45
+ Same changes as in `@mui/x-date-pickers@7.24.1`.
46
+
47
+ ### Charts
48
+
49
+ #### `@mui/x-charts@7.24.1`
50
+
51
+ - [charts] Handle case where gradient stop `offset` could be `Infinite` (@JCQuintas) (#16309) @JCQuintas
52
+
53
+ #### `@mui/x-charts-pro@7.24.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
54
+
55
+ Same changes as in `@mui/x-charts@7.24.1`.
56
+
57
+ ### Tree View
58
+
59
+ #### `@mui/x-tree-view@7.24.1`
60
+
61
+ Internal changes.
62
+
63
+ #### `@mui/x-tree-view-pro@7.24.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
64
+
65
+ Same changes as in `@mui/x-tree-view@7.24.1`.
66
+
67
+ ### Docs
68
+
69
+ - [docs] Fix `domainLimit` definition (#16271) @alexfauquette
70
+
71
+ ### Core
72
+
73
+ - [core] Make `@mui/x-internals` a dependency of `@mui/x-license` (#16265) @alexfauquette
74
+ - [test] Fix flaky column pinning tests (#16228) @cherniavskii
75
+ - [test] Fix flaky tests (#16264) @lauri865
76
+
77
+ ## 7.24.0
78
+
79
+ _Jan 17, 2025_
80
+
81
+ We'd like to offer a big thanks to the 8 contributors who made this release possible. Here are some highlights ✨:
82
+
83
+ - 🔄 Data Grid [Scroll restoration](https://next.mui.com/x/react-data-grid/scrolling/#scroll-restoration)
84
+ - 🐞 Bugfixes
85
+
86
+ Special thanks go out to the community contributors who have helped make this release possible:
87
+ @lauri865, @AxharKhan.
88
+ Following are all team members who have contributed to this release:
89
+ @KenanYusuf, @arminmeh, @cherniavskii, @michelengelen, @samuelsycamore, @LukasTy.
90
+
91
+ <!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->
92
+
93
+ ### Data Grid
94
+
95
+ #### `@mui/x-data-grid@7.24.0`
96
+
97
+ - [DataGrid] Fix resizing right pinned column (#16193) @KenanYusuf
98
+ - [DataGrid] Improve scrollbar deadzone with overlay scrollbars (#16212) @lauri865
99
+ - [DataGrid] Scroll restoration (#16208) @lauri865
100
+ - [DataGrid] Fix row, cell and header memoizations (#16195) @lauri865
101
+ - [l10n] Improve Urdu (ur-PK) locale (#16081) @AxharKhan
102
+
103
+ #### `@mui/x-data-grid-pro@7.24.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
104
+
105
+ Same changes as in `@mui/x-data-grid@7.24.0`, plus:
106
+
107
+ - [DataGridPro] Add test for column pinning with disabled column virtualization (#16196) @cherniavskii
108
+ - [DataGridPro] Fix width of right-pinned column group during resize (#16207) @cherniavskii
109
+
110
+ #### `@mui/x-data-grid-premium@7.24.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
111
+
112
+ Same changes as in `@mui/x-data-grid-pro@7.24.0`.
113
+
114
+ ### Date and Time Pickers
115
+
116
+ #### `@mui/x-date-pickers@7.24.0`
117
+
118
+ Internal changes.
119
+
120
+ #### `@mui/x-date-pickers-pro@7.24.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
121
+
122
+ Same changes as in `@mui/x-date-pickers@7.24.0`.
123
+
124
+ ### Charts
125
+
126
+ #### `@mui/x-charts@7.24.0`
127
+
128
+ Internal changes.
129
+
130
+ #### `@mui/x-charts-pro@7.24.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
131
+
132
+ Same changes as in `@mui/x-charts@7.24.0`.
133
+
134
+ ### Tree View
135
+
136
+ #### `@mui/x-tree-view@7.24.0`
137
+
138
+ Internal changes.
139
+
140
+ #### `@mui/x-tree-view-pro@7.24.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
141
+
142
+ Same changes as in `@mui/x-tree-view@7.24.0`.
143
+
144
+ ### Docs
145
+
146
+ - [docs] Copyedit the Data Grid cell selection page (#16213) @samuelsycamore
147
+ - [docs] Fix demo rendering issue on Codesandbox (#16129) @arminmeh
148
+
149
+ ### Core
150
+
151
+ - [core] Type all references as `RefObject` (#16125) @arminmeh
152
+ - [code-infra] Refactor `react` and `react-dom` definitions to simplify dep resolving (#16214) @LukasTy
153
+ - [infra] Improve cherry-pick action target list (#16188) @michelengelen
154
+ - [test] Fix flaky column pinning unit test (#16209) @cherniavskii
155
+
6
156
  ## 7.23.6
7
157
 
8
158
  _Jan 9, 2025_
@@ -39,18 +39,16 @@ const DataGridProRaw = (0, _forwardRef.forwardRef)(function DataGridPro(inProps,
39
39
  privateApiRef: privateApiRef,
40
40
  configuration: configuration,
41
41
  props: props,
42
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_xDataGrid.GridRoot, (0, _extends2.default)({
42
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_xDataGrid.GridRoot, (0, _extends2.default)({
43
43
  className: props.className,
44
44
  style: props.style,
45
45
  sx: props.sx
46
46
  }, props.forwardedProps, props.slotProps?.root, {
47
47
  ref: ref,
48
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_xDataGrid.GridHeader, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_xDataGrid.GridBody, {
49
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_xLicense.Watermark, {
50
- packageName: "x-data-grid-pro",
51
- releaseInfo: releaseInfo
52
- })
53
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_xDataGrid.GridFooterPlaceholder, {})]
48
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_xLicense.Watermark, {
49
+ packageName: "x-data-grid-pro",
50
+ releaseInfo: releaseInfo
51
+ })
54
52
  }))
55
53
  });
56
54
  });
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridApiPro, GridPrivateApiPro } from '../models/gridApiPro';
3
3
  import { DataGridProProcessedProps } from '../models/dataGridProProps';
4
- export declare const useDataGridProComponent: (inputApiRef: React.RefObject<GridApiPro> | undefined, props: DataGridProProcessedProps) => React.RefObject<GridPrivateApiPro>;
4
+ export declare const useDataGridProComponent: (inputApiRef: RefObject<GridApiPro> | undefined, props: DataGridProProcessedProps) => import("react").RefObject<GridPrivateApiPro>;
@@ -51,6 +51,7 @@ const useDataGridProComponent = (inputApiRef, props) => {
51
51
  (0, _internals.useGridInitializeState)(_useGridColumnPinning.columnPinningStateInitializer, apiRef, props);
52
52
  (0, _internals.useGridInitializeState)(_internals.columnsStateInitializer, apiRef, props);
53
53
  (0, _internals.useGridInitializeState)(_useGridRowPinning.rowPinningStateInitializer, apiRef, props);
54
+ (0, _internals.useGridInitializeState)(_internals.paginationStateInitializer, apiRef, props);
54
55
  (0, _internals.useGridInitializeState)(_internals.rowsStateInitializer, apiRef, props);
55
56
  (0, _internals.useGridInitializeState)(_internals.editingStateInitializer, apiRef, props);
56
57
  (0, _internals.useGridInitializeState)(_internals.focusStateInitializer, apiRef, props);
@@ -61,7 +62,6 @@ const useDataGridProComponent = (inputApiRef, props) => {
61
62
  (0, _internals.useGridInitializeState)(_internals.densityStateInitializer, apiRef, props);
62
63
  (0, _internals.useGridInitializeState)(_useGridColumnReorder.columnReorderStateInitializer, apiRef, props);
63
64
  (0, _internals.useGridInitializeState)(_internals.columnResizeStateInitializer, apiRef, props);
64
- (0, _internals.useGridInitializeState)(_internals.paginationStateInitializer, apiRef, props);
65
65
  (0, _internals.useGridInitializeState)(_internals.rowsMetaStateInitializer, apiRef, props);
66
66
  (0, _internals.useGridInitializeState)(_internals.columnMenuStateInitializer, apiRef, props);
67
67
  (0, _internals.useGridInitializeState)(_internals.columnGroupsStateInitializer, apiRef, props);
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
- import { GridFilterItem, GridFilterOperator, GridColDef, GridPinnedColumnPosition } from '@mui/x-data-grid';
3
- import { GridStateColDef } from '@mui/x-data-grid/internals';
2
+ import { GridFilterItem, GridFilterOperator, GridColDef } from '@mui/x-data-grid';
3
+ import { PinnedColumnPosition, GridStateColDef } from '@mui/x-data-grid/internals';
4
4
  export interface GridRenderHeaderFilterProps extends GridHeaderFilterCellProps {
5
5
  inputRef: React.RefObject<unknown>;
6
6
  }
@@ -12,15 +12,15 @@ export interface GridHeaderFilterCellProps extends Pick<GridStateColDef, 'header
12
12
  tabIndex: 0 | -1;
13
13
  width: number;
14
14
  colDef: GridColDef;
15
- headerFilterMenuRef: React.MutableRefObject<HTMLButtonElement | null>;
15
+ headerFilterMenuRef: React.RefObject<HTMLButtonElement | null>;
16
16
  item: GridFilterItem;
17
17
  showClearIcon?: boolean;
18
18
  InputComponentProps: GridFilterOperator['InputComponentProps'];
19
- pinnedPosition?: GridPinnedColumnPosition;
19
+ pinnedPosition?: PinnedColumnPosition;
20
+ pinnedOffset?: number;
20
21
  style?: React.CSSProperties;
21
- indexInSection: number;
22
- sectionLength: number;
23
- gridHasFiller: boolean;
22
+ showLeftBorder: boolean;
23
+ showRightBorder: boolean;
24
24
  }
25
25
  declare const Memoized: React.ForwardRefExoticComponent<GridHeaderFilterCellProps> | React.ForwardRefExoticComponent<GridHeaderFilterCellProps & React.RefAttributes<HTMLDivElement>>;
26
26
  export { Memoized as GridHeaderFilterCell };
@@ -15,12 +15,13 @@ var _utils = require("@mui/utils");
15
15
  var _fastMemo = require("@mui/x-internals/fastMemo");
16
16
  var _xDataGrid = require("@mui/x-data-grid");
17
17
  var _internals = require("@mui/x-data-grid/internals");
18
+ var _RtlProvider = require("@mui/system/RtlProvider");
18
19
  var _forwardRef = require("@mui/x-internals/forwardRef");
19
20
  var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
20
21
  var _GridHeaderFilterMenuContainer = require("./GridHeaderFilterMenuContainer");
21
22
  var _GridHeaderFilterClearButton = require("./GridHeaderFilterClearButton");
22
23
  var _jsxRuntime = require("react/jsx-runtime");
23
- const _excluded = ["colIndex", "height", "hasFocus", "width", "headerClassName", "colDef", "item", "headerFilterMenuRef", "InputComponentProps", "showClearIcon", "pinnedPosition", "style", "indexInSection", "sectionLength", "gridHasFiller"];
24
+ const _excluded = ["colIndex", "height", "hasFocus", "width", "headerClassName", "colDef", "item", "headerFilterMenuRef", "InputComponentProps", "showClearIcon", "pinnedPosition", "pinnedOffset", "style", "showLeftBorder", "showRightBorder"];
24
25
  const useUtilityClasses = ownerState => {
25
26
  const {
26
27
  colDef,
@@ -30,7 +31,7 @@ const useUtilityClasses = ownerState => {
30
31
  pinnedPosition
31
32
  } = ownerState;
32
33
  const slots = {
33
- root: ['columnHeader', colDef.headerAlign === 'left' && 'columnHeader--alignLeft', colDef.headerAlign === 'center' && 'columnHeader--alignCenter', colDef.headerAlign === 'right' && 'columnHeader--alignRight', 'withBorderColor', showRightBorder && 'columnHeader--withRightBorder', showLeftBorder && 'columnHeader--withLeftBorder', pinnedPosition === 'left' && 'columnHeader--pinnedLeft', pinnedPosition === 'right' && 'columnHeader--pinnedRight']
34
+ root: ['columnHeader', colDef.headerAlign === 'left' && 'columnHeader--alignLeft', colDef.headerAlign === 'center' && 'columnHeader--alignCenter', colDef.headerAlign === 'right' && 'columnHeader--alignRight', 'withBorderColor', showRightBorder && 'columnHeader--withRightBorder', showLeftBorder && 'columnHeader--withLeftBorder', pinnedPosition === _internals.PinnedColumnPosition.LEFT && 'columnHeader--pinnedLeft', pinnedPosition === _internals.PinnedColumnPosition.RIGHT && 'columnHeader--pinnedRight']
34
35
  };
35
36
  return (0, _utils.unstable_composeClasses)(slots, _xDataGrid.getDataGridUtilityClass, classes);
36
37
  };
@@ -62,13 +63,14 @@ const GridHeaderFilterCell = (0, _forwardRef.forwardRef)((props, ref) => {
62
63
  InputComponentProps,
63
64
  showClearIcon = true,
64
65
  pinnedPosition,
66
+ pinnedOffset,
65
67
  style: styleProp,
66
- indexInSection,
67
- sectionLength,
68
- gridHasFiller
68
+ showLeftBorder,
69
+ showRightBorder
69
70
  } = props,
70
71
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
71
72
  const apiRef = (0, _internals.useGridPrivateApiContext)();
73
+ const isRtl = (0, _RtlProvider.useRtl)();
72
74
  const columnFields = (0, _xDataGrid.useGridSelector)(apiRef, _xDataGrid.gridVisibleColumnFieldsSelector);
73
75
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
74
76
  const cellRef = React.useRef(null);
@@ -183,8 +185,6 @@ const GridHeaderFilterCell = (0, _forwardRef.forwardRef)((props, ref) => {
183
185
  onMouseDown: publish('headerFilterMouseDown', onMouseDown),
184
186
  onBlur: publish('headerFilterBlur')
185
187
  }), [onMouseDown, onKeyDown, publish]);
186
- const showLeftBorder = (0, _internals.shouldCellShowLeftBorder)(pinnedPosition, indexInSection);
187
- const showRightBorder = (0, _internals.shouldCellShowRightBorder)(pinnedPosition, indexInSection, sectionLength, rootProps.showCellVerticalBorder, gridHasFiller);
188
188
  const ownerState = (0, _extends2.default)({}, rootProps, {
189
189
  pinnedPosition,
190
190
  colDef,
@@ -198,10 +198,10 @@ const GridHeaderFilterCell = (0, _forwardRef.forwardRef)((props, ref) => {
198
198
  const isFilterActive = isApplied || hasFocus;
199
199
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", (0, _extends2.default)({
200
200
  className: (0, _clsx.default)(classes.root, headerClassName),
201
- style: (0, _extends2.default)({
201
+ style: (0, _internals.attachPinnedStyle)((0, _extends2.default)({
202
202
  height,
203
203
  width
204
- }, styleProp),
204
+ }, styleProp), isRtl, pinnedPosition, pinnedOffset),
205
205
  role: "columnheader",
206
206
  "aria-colindex": colIndex + 1,
207
207
  "aria-label": headerFilterComponent == null ? colDef.headerName ?? colDef.field : undefined
@@ -260,7 +260,6 @@ process.env.NODE_ENV !== "production" ? GridHeaderFilterCell.propTypes = {
260
260
  // ----------------------------------------------------------------------
261
261
  colDef: _propTypes.default.object.isRequired,
262
262
  colIndex: _propTypes.default.number.isRequired,
263
- gridHasFiller: _propTypes.default.bool.isRequired,
264
263
  hasFocus: _propTypes.default.bool,
265
264
  /**
266
265
  * Class name added to the column header cell.
@@ -270,7 +269,6 @@ process.env.NODE_ENV !== "production" ? GridHeaderFilterCell.propTypes = {
270
269
  current: _propTypes.default.object
271
270
  }).isRequired,
272
271
  height: _propTypes.default.number.isRequired,
273
- indexInSection: _propTypes.default.number.isRequired,
274
272
  InputComponentProps: _propTypes.default.object,
275
273
  item: _propTypes.default.shape({
276
274
  field: _propTypes.default.string.isRequired,
@@ -278,9 +276,11 @@ process.env.NODE_ENV !== "production" ? GridHeaderFilterCell.propTypes = {
278
276
  operator: _propTypes.default.string.isRequired,
279
277
  value: _propTypes.default.any
280
278
  }).isRequired,
281
- pinnedPosition: _propTypes.default.oneOf(['left', 'right']),
282
- sectionLength: _propTypes.default.number.isRequired,
279
+ pinnedOffset: _propTypes.default.number,
280
+ pinnedPosition: _propTypes.default.oneOf([0, 1, 2, 3]),
283
281
  showClearIcon: _propTypes.default.bool,
282
+ showLeftBorder: _propTypes.default.bool.isRequired,
283
+ showRightBorder: _propTypes.default.bool.isRequired,
284
284
  sortIndex: _propTypes.default.number,
285
285
  style: _propTypes.default.object,
286
286
  tabIndex: _propTypes.default.oneOf([-1, 0]).isRequired,
@@ -5,7 +5,7 @@ declare function GridHeaderFilterMenuContainer(props: {
5
5
  field: GridColDef['field'];
6
6
  item: GridFilterItem;
7
7
  applyFilterChanges: (item: GridFilterItem) => void;
8
- headerFilterMenuRef: React.MutableRefObject<HTMLButtonElement | null>;
8
+ headerFilterMenuRef: React.RefObject<HTMLButtonElement | null>;
9
9
  buttonRef: React.Ref<HTMLButtonElement>;
10
10
  disabled?: boolean;
11
11
  }): React.JSX.Element | null;
@@ -4,7 +4,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import { useLicenseVerifier, Watermark } from '@mui/x-license';
7
- import { GridBody, GridFooterPlaceholder, GridHeader, GridRoot, GridContextProvider } from '@mui/x-data-grid';
7
+ import { GridRoot, GridContextProvider } from '@mui/x-data-grid';
8
8
  import { validateProps } from '@mui/x-data-grid/internals';
9
9
  import { forwardRef } from '@mui/x-internals/forwardRef';
10
10
  import { useDataGridProComponent } from "./useDataGridProComponent.js";
@@ -13,7 +13,7 @@ import { getReleaseInfo } from "../utils/releaseInfo.js";
13
13
  import { propValidatorsDataGridPro } from "../internals/propValidation.js";
14
14
  import { useGridAriaAttributes } from "../hooks/utils/useGridAriaAttributes.js";
15
15
  import { useGridRowAriaAttributes } from "../hooks/features/rows/useGridRowAriaAttributes.js";
16
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
16
+ import { jsx as _jsx } from "react/jsx-runtime";
17
17
  const configuration = {
18
18
  hooks: {
19
19
  useGridAriaAttributes,
@@ -32,18 +32,16 @@ const DataGridProRaw = forwardRef(function DataGridPro(inProps, ref) {
32
32
  privateApiRef: privateApiRef,
33
33
  configuration: configuration,
34
34
  props: props,
35
- children: /*#__PURE__*/_jsxs(GridRoot, _extends({
35
+ children: /*#__PURE__*/_jsx(GridRoot, _extends({
36
36
  className: props.className,
37
37
  style: props.style,
38
38
  sx: props.sx
39
39
  }, props.forwardedProps, props.slotProps?.root, {
40
40
  ref: ref,
41
- children: [/*#__PURE__*/_jsx(GridHeader, {}), /*#__PURE__*/_jsx(GridBody, {
42
- children: /*#__PURE__*/_jsx(Watermark, {
43
- packageName: "x-data-grid-pro",
44
- releaseInfo: releaseInfo
45
- })
46
- }), /*#__PURE__*/_jsx(GridFooterPlaceholder, {})]
41
+ children: /*#__PURE__*/_jsx(Watermark, {
42
+ packageName: "x-data-grid-pro",
43
+ releaseInfo: releaseInfo
44
+ })
47
45
  }))
48
46
  });
49
47
  });
@@ -44,6 +44,7 @@ export const useDataGridProComponent = (inputApiRef, props) => {
44
44
  useGridInitializeState(columnPinningStateInitializer, apiRef, props);
45
45
  useGridInitializeState(columnsStateInitializer, apiRef, props);
46
46
  useGridInitializeState(rowPinningStateInitializer, apiRef, props);
47
+ useGridInitializeState(paginationStateInitializer, apiRef, props);
47
48
  useGridInitializeState(rowsStateInitializer, apiRef, props);
48
49
  useGridInitializeState(editingStateInitializer, apiRef, props);
49
50
  useGridInitializeState(focusStateInitializer, apiRef, props);
@@ -54,7 +55,6 @@ export const useDataGridProComponent = (inputApiRef, props) => {
54
55
  useGridInitializeState(densityStateInitializer, apiRef, props);
55
56
  useGridInitializeState(columnReorderStateInitializer, apiRef, props);
56
57
  useGridInitializeState(columnResizeStateInitializer, apiRef, props);
57
- useGridInitializeState(paginationStateInitializer, apiRef, props);
58
58
  useGridInitializeState(rowsMetaStateInitializer, apiRef, props);
59
59
  useGridInitializeState(columnMenuStateInitializer, apiRef, props);
60
60
  useGridInitializeState(columnGroupsStateInitializer, apiRef, props);
@@ -1,13 +1,14 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["colIndex", "height", "hasFocus", "width", "headerClassName", "colDef", "item", "headerFilterMenuRef", "InputComponentProps", "showClearIcon", "pinnedPosition", "style", "indexInSection", "sectionLength", "gridHasFiller"];
3
+ const _excluded = ["colIndex", "height", "hasFocus", "width", "headerClassName", "colDef", "item", "headerFilterMenuRef", "InputComponentProps", "showClearIcon", "pinnedPosition", "pinnedOffset", "style", "showLeftBorder", "showRightBorder"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
7
  import { unstable_useForkRef as useForkRef, unstable_composeClasses as composeClasses, unstable_capitalize as capitalize } from '@mui/utils';
8
8
  import { fastMemo } from '@mui/x-internals/fastMemo';
9
9
  import { gridVisibleColumnFieldsSelector, getDataGridUtilityClass, useGridSelector, GridFilterInputValue, GridFilterInputDate, GridFilterInputBoolean, GridFilterInputSingleSelect, gridFilterModelSelector, gridFilterableColumnLookupSelector } from '@mui/x-data-grid';
10
- import { useGridPrivateApiContext, gridHeaderFilteringEditFieldSelector, gridHeaderFilteringMenuSelector, isNavigationKey, shouldCellShowLeftBorder, shouldCellShowRightBorder } from '@mui/x-data-grid/internals';
10
+ import { PinnedColumnPosition, useGridPrivateApiContext, gridHeaderFilteringEditFieldSelector, gridHeaderFilteringMenuSelector, isNavigationKey, attachPinnedStyle } from '@mui/x-data-grid/internals';
11
+ import { useRtl } from '@mui/system/RtlProvider';
11
12
  import { forwardRef } from '@mui/x-internals/forwardRef';
12
13
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
13
14
  import { GridHeaderFilterMenuContainer } from "./GridHeaderFilterMenuContainer.js";
@@ -22,7 +23,7 @@ const useUtilityClasses = ownerState => {
22
23
  pinnedPosition
23
24
  } = ownerState;
24
25
  const slots = {
25
- root: ['columnHeader', colDef.headerAlign === 'left' && 'columnHeader--alignLeft', colDef.headerAlign === 'center' && 'columnHeader--alignCenter', colDef.headerAlign === 'right' && 'columnHeader--alignRight', 'withBorderColor', showRightBorder && 'columnHeader--withRightBorder', showLeftBorder && 'columnHeader--withLeftBorder', pinnedPosition === 'left' && 'columnHeader--pinnedLeft', pinnedPosition === 'right' && 'columnHeader--pinnedRight']
26
+ root: ['columnHeader', colDef.headerAlign === 'left' && 'columnHeader--alignLeft', colDef.headerAlign === 'center' && 'columnHeader--alignCenter', colDef.headerAlign === 'right' && 'columnHeader--alignRight', 'withBorderColor', showRightBorder && 'columnHeader--withRightBorder', showLeftBorder && 'columnHeader--withLeftBorder', pinnedPosition === PinnedColumnPosition.LEFT && 'columnHeader--pinnedLeft', pinnedPosition === PinnedColumnPosition.RIGHT && 'columnHeader--pinnedRight']
26
27
  };
27
28
  return composeClasses(slots, getDataGridUtilityClass, classes);
28
29
  };
@@ -54,13 +55,14 @@ const GridHeaderFilterCell = forwardRef((props, ref) => {
54
55
  InputComponentProps,
55
56
  showClearIcon = true,
56
57
  pinnedPosition,
58
+ pinnedOffset,
57
59
  style: styleProp,
58
- indexInSection,
59
- sectionLength,
60
- gridHasFiller
60
+ showLeftBorder,
61
+ showRightBorder
61
62
  } = props,
62
63
  other = _objectWithoutPropertiesLoose(props, _excluded);
63
64
  const apiRef = useGridPrivateApiContext();
65
+ const isRtl = useRtl();
64
66
  const columnFields = useGridSelector(apiRef, gridVisibleColumnFieldsSelector);
65
67
  const rootProps = useGridRootProps();
66
68
  const cellRef = React.useRef(null);
@@ -175,8 +177,6 @@ const GridHeaderFilterCell = forwardRef((props, ref) => {
175
177
  onMouseDown: publish('headerFilterMouseDown', onMouseDown),
176
178
  onBlur: publish('headerFilterBlur')
177
179
  }), [onMouseDown, onKeyDown, publish]);
178
- const showLeftBorder = shouldCellShowLeftBorder(pinnedPosition, indexInSection);
179
- const showRightBorder = shouldCellShowRightBorder(pinnedPosition, indexInSection, sectionLength, rootProps.showCellVerticalBorder, gridHasFiller);
180
180
  const ownerState = _extends({}, rootProps, {
181
181
  pinnedPosition,
182
182
  colDef,
@@ -190,10 +190,10 @@ const GridHeaderFilterCell = forwardRef((props, ref) => {
190
190
  const isFilterActive = isApplied || hasFocus;
191
191
  return /*#__PURE__*/_jsxs("div", _extends({
192
192
  className: clsx(classes.root, headerClassName),
193
- style: _extends({
193
+ style: attachPinnedStyle(_extends({
194
194
  height,
195
195
  width
196
- }, styleProp),
196
+ }, styleProp), isRtl, pinnedPosition, pinnedOffset),
197
197
  role: "columnheader",
198
198
  "aria-colindex": colIndex + 1,
199
199
  "aria-label": headerFilterComponent == null ? colDef.headerName ?? colDef.field : undefined
@@ -252,7 +252,6 @@ process.env.NODE_ENV !== "production" ? GridHeaderFilterCell.propTypes = {
252
252
  // ----------------------------------------------------------------------
253
253
  colDef: PropTypes.object.isRequired,
254
254
  colIndex: PropTypes.number.isRequired,
255
- gridHasFiller: PropTypes.bool.isRequired,
256
255
  hasFocus: PropTypes.bool,
257
256
  /**
258
257
  * Class name added to the column header cell.
@@ -262,7 +261,6 @@ process.env.NODE_ENV !== "production" ? GridHeaderFilterCell.propTypes = {
262
261
  current: PropTypes.object
263
262
  }).isRequired,
264
263
  height: PropTypes.number.isRequired,
265
- indexInSection: PropTypes.number.isRequired,
266
264
  InputComponentProps: PropTypes.object,
267
265
  item: PropTypes.shape({
268
266
  field: PropTypes.string.isRequired,
@@ -270,9 +268,11 @@ process.env.NODE_ENV !== "production" ? GridHeaderFilterCell.propTypes = {
270
268
  operator: PropTypes.string.isRequired,
271
269
  value: PropTypes.any
272
270
  }).isRequired,
273
- pinnedPosition: PropTypes.oneOf(['left', 'right']),
274
- sectionLength: PropTypes.number.isRequired,
271
+ pinnedOffset: PropTypes.number,
272
+ pinnedPosition: PropTypes.oneOf([0, 1, 2, 3]),
275
273
  showClearIcon: PropTypes.bool,
274
+ showLeftBorder: PropTypes.bool.isRequired,
275
+ showRightBorder: PropTypes.bool.isRequired,
276
276
  sortIndex: PropTypes.number,
277
277
  style: PropTypes.object,
278
278
  tabIndex: PropTypes.oneOf([-1, 0]).isRequired,
@@ -1,9 +1,9 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["getColumnsToRender", "renderContext", "leftRenderContext", "rightRenderContext", "pinnedColumns", "visibleColumns", "getCellOffsetStyle"];
3
+ const _excluded = ["getColumnsToRender", "getPinnedCellOffset", "renderContext", "leftRenderContext", "rightRenderContext", "pinnedColumns", "visibleColumns", "columnPositions"];
4
4
  import * as React from 'react';
5
- import { gridFocusColumnHeaderFilterSelector, useGridSelector, gridFilterModelSelector, gridTabIndexColumnHeaderFilterSelector, getDataGridUtilityClass, GridPinnedColumnPosition, gridDimensionsSelector } from '@mui/x-data-grid';
6
- import { useGridColumnHeaders as useGridColumnHeadersCommunity, useGridPrivateApiContext, getGridFilter, GridColumnHeaderRow } from '@mui/x-data-grid/internals';
5
+ import { gridFocusColumnHeaderFilterSelector, useGridSelector, gridFilterModelSelector, gridTabIndexColumnHeaderFilterSelector, getDataGridUtilityClass, gridDimensionsSelector } from '@mui/x-data-grid';
6
+ import { useGridColumnHeaders as useGridColumnHeadersCommunity, useGridPrivateApiContext, getGridFilter, GridColumnHeaderRow, shouldCellShowLeftBorder, shouldCellShowRightBorder, PinnedColumnPosition } from '@mui/x-data-grid/internals';
7
7
  import composeClasses from '@mui/utils/composeClasses';
8
8
  import { useGridRootProps } from "../../utils/useGridRootProps.js";
9
9
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
@@ -31,12 +31,13 @@ export const useGridColumnHeaders = props => {
31
31
  })),
32
32
  {
33
33
  getColumnsToRender,
34
+ getPinnedCellOffset,
34
35
  renderContext,
35
36
  leftRenderContext,
36
37
  rightRenderContext,
37
38
  pinnedColumns,
38
39
  visibleColumns,
39
- getCellOffsetStyle
40
+ columnPositions
40
41
  } = _useGridColumnHeaders,
41
42
  otherProps = _objectWithoutPropertiesLoose(_useGridColumnHeaders, _excluded);
42
43
  const headerFiltersRef = React.useRef(null);
@@ -86,11 +87,12 @@ export const useGridColumnHeaders = props => {
86
87
  }) : colDef.headerClassName;
87
88
  const item = getFilterItem(colDef);
88
89
  const pinnedPosition = params?.position;
89
- const style = getCellOffsetStyle({
90
- pinnedPosition,
91
- columnIndex,
92
- computedWidth: colDef.computedWidth
93
- });
90
+ const scrollbarWidth = dimensions.hasScrollY ? dimensions.scrollbarSize : 0;
91
+ const pinnedOffset = getPinnedCellOffset(pinnedPosition, colDef.computedWidth, columnIndex, columnPositions, dimensions.columnsTotalWidth, scrollbarWidth);
92
+ const indexInSection = i;
93
+ const sectionLength = renderedColumns.length;
94
+ const showLeftBorder = shouldCellShowLeftBorder(pinnedPosition, indexInSection);
95
+ const showRightBorder = shouldCellShowRightBorder(pinnedPosition, indexInSection, sectionLength, rootProps.showCellVerticalBorder, gridHasFiller);
94
96
  filters.push(/*#__PURE__*/_jsx(rootProps.slots.headerFilterCell, _extends({
95
97
  colIndex: columnIndex,
96
98
  height: dimensions.headerFilterHeight,
@@ -103,10 +105,9 @@ export const useGridColumnHeaders = props => {
103
105
  "data-field": colDef.field,
104
106
  item: item,
105
107
  pinnedPosition: pinnedPosition,
106
- style: style,
107
- indexInSection: i,
108
- sectionLength: renderedColumns.length,
109
- gridHasFiller: gridHasFiller
108
+ pinnedOffset: pinnedOffset,
109
+ showLeftBorder: showLeftBorder,
110
+ showRightBorder: showRightBorder
110
111
  }, rootProps.slotProps?.headerFilterCell), `${colDef.field}-filter`));
111
112
  }
112
113
  return otherProps.getFillers(params, filters, 0, true);
@@ -122,14 +123,14 @@ export const useGridColumnHeaders = props => {
122
123
  "aria-rowindex": headerGroupingMaxDepth + 2,
123
124
  ownerState: rootProps,
124
125
  children: [leftRenderContext && getColumnFilters({
125
- position: GridPinnedColumnPosition.LEFT,
126
+ position: PinnedColumnPosition.LEFT,
126
127
  renderContext: leftRenderContext,
127
128
  maxLastColumn: leftRenderContext.lastColumnIndex
128
129
  }), getColumnFilters({
129
130
  renderContext,
130
131
  maxLastColumn: visibleColumns.length - pinnedColumns.right.length
131
132
  }), rightRenderContext && getColumnFilters({
132
- position: GridPinnedColumnPosition.RIGHT,
133
+ position: PinnedColumnPosition.RIGHT,
133
134
  renderContext: rightRenderContext,
134
135
  maxLastColumn: rightRenderContext.lastColumnIndex
135
136
  })]
@@ -1,6 +1,6 @@
1
1
  import { ponyfillGlobal } from '@mui/utils';
2
2
  export const getReleaseInfo = () => {
3
- const releaseInfo = "MTczNjM3NzIwMDAwMA==";
3
+ const releaseInfo = "MTczNzY1ODgwMDAwMA==";
4
4
  if (process.env.NODE_ENV !== 'production') {
5
5
  // A simple hack to set the value in the test environment (has no build step).
6
6
  // eslint-disable-next-line no-useless-concat
@@ -14,7 +14,7 @@ var _internals = require("@mui/x-data-grid/internals");
14
14
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
15
15
  var _useGridRootProps = require("../../utils/useGridRootProps");
16
16
  var _jsxRuntime = require("react/jsx-runtime");
17
- const _excluded = ["getColumnsToRender", "renderContext", "leftRenderContext", "rightRenderContext", "pinnedColumns", "visibleColumns", "getCellOffsetStyle"];
17
+ const _excluded = ["getColumnsToRender", "getPinnedCellOffset", "renderContext", "leftRenderContext", "rightRenderContext", "pinnedColumns", "visibleColumns", "columnPositions"];
18
18
  const useUtilityClasses = ownerState => {
19
19
  const {
20
20
  classes
@@ -39,12 +39,13 @@ const useGridColumnHeaders = props => {
39
39
  })),
40
40
  {
41
41
  getColumnsToRender,
42
+ getPinnedCellOffset,
42
43
  renderContext,
43
44
  leftRenderContext,
44
45
  rightRenderContext,
45
46
  pinnedColumns,
46
47
  visibleColumns,
47
- getCellOffsetStyle
48
+ columnPositions
48
49
  } = _useGridColumnHeaders,
49
50
  otherProps = (0, _objectWithoutPropertiesLoose2.default)(_useGridColumnHeaders, _excluded);
50
51
  const headerFiltersRef = React.useRef(null);
@@ -94,11 +95,12 @@ const useGridColumnHeaders = props => {
94
95
  }) : colDef.headerClassName;
95
96
  const item = getFilterItem(colDef);
96
97
  const pinnedPosition = params?.position;
97
- const style = getCellOffsetStyle({
98
- pinnedPosition,
99
- columnIndex,
100
- computedWidth: colDef.computedWidth
101
- });
98
+ const scrollbarWidth = dimensions.hasScrollY ? dimensions.scrollbarSize : 0;
99
+ const pinnedOffset = getPinnedCellOffset(pinnedPosition, colDef.computedWidth, columnIndex, columnPositions, dimensions.columnsTotalWidth, scrollbarWidth);
100
+ const indexInSection = i;
101
+ const sectionLength = renderedColumns.length;
102
+ const showLeftBorder = (0, _internals.shouldCellShowLeftBorder)(pinnedPosition, indexInSection);
103
+ const showRightBorder = (0, _internals.shouldCellShowRightBorder)(pinnedPosition, indexInSection, sectionLength, rootProps.showCellVerticalBorder, gridHasFiller);
102
104
  filters.push(/*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.headerFilterCell, (0, _extends2.default)({
103
105
  colIndex: columnIndex,
104
106
  height: dimensions.headerFilterHeight,
@@ -111,10 +113,9 @@ const useGridColumnHeaders = props => {
111
113
  "data-field": colDef.field,
112
114
  item: item,
113
115
  pinnedPosition: pinnedPosition,
114
- style: style,
115
- indexInSection: i,
116
- sectionLength: renderedColumns.length,
117
- gridHasFiller: gridHasFiller
116
+ pinnedOffset: pinnedOffset,
117
+ showLeftBorder: showLeftBorder,
118
+ showRightBorder: showRightBorder
118
119
  }, rootProps.slotProps?.headerFilterCell), `${colDef.field}-filter`));
119
120
  }
120
121
  return otherProps.getFillers(params, filters, 0, true);
@@ -130,14 +131,14 @@ const useGridColumnHeaders = props => {
130
131
  "aria-rowindex": headerGroupingMaxDepth + 2,
131
132
  ownerState: rootProps,
132
133
  children: [leftRenderContext && getColumnFilters({
133
- position: _xDataGrid.GridPinnedColumnPosition.LEFT,
134
+ position: _internals.PinnedColumnPosition.LEFT,
134
135
  renderContext: leftRenderContext,
135
136
  maxLastColumn: leftRenderContext.lastColumnIndex
136
137
  }), getColumnFilters({
137
138
  renderContext,
138
139
  maxLastColumn: visibleColumns.length - pinnedColumns.right.length
139
140
  }), rightRenderContext && getColumnFilters({
140
- position: _xDataGrid.GridPinnedColumnPosition.RIGHT,
141
+ position: _internals.PinnedColumnPosition.RIGHT,
141
142
  renderContext: rightRenderContext,
142
143
  maxLastColumn: rightRenderContext.lastColumnIndex
143
144
  })]
@@ -1,6 +1,6 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridStateInitializer } from '@mui/x-data-grid/internals';
3
3
  import { GridPrivateApiPro } from '../../../models/gridApiPro';
4
4
  import { DataGridProProcessedProps } from '../../../models/dataGridProProps';
5
5
  export declare const columnPinningStateInitializer: GridStateInitializer<Pick<DataGridProProcessedProps, 'pinnedColumns' | 'initialState'>>;
6
- export declare const useGridColumnPinning: (apiRef: React.MutableRefObject<GridPrivateApiPro>, props: Pick<DataGridProProcessedProps, "disableColumnPinning" | "initialState" | "pinnedColumns" | "onPinnedColumnsChange" | "slotProps" | "slots">) => void;
6
+ export declare const useGridColumnPinning: (apiRef: RefObject<GridPrivateApiPro>, props: Pick<DataGridProProcessedProps, "disableColumnPinning" | "initialState" | "pinnedColumns" | "onPinnedColumnsChange" | "slotProps" | "slots">) => void;
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { DataGridProProcessedProps } from '../../../models/dataGridProProps';
3
3
  import { GridPrivateApiPro } from '../../../models/gridApiPro';
4
- export declare const useGridColumnPinningPreProcessors: (apiRef: React.MutableRefObject<GridPrivateApiPro>, props: DataGridProProcessedProps) => void;
4
+ export declare const useGridColumnPinningPreProcessors: (apiRef: RefObject<GridPrivateApiPro>, props: DataGridProProcessedProps) => void;
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridStateInitializer } from '@mui/x-data-grid/internals';
3
3
  import { GridPrivateApiPro } from '../../../models/gridApiPro';
4
4
  import { DataGridProProcessedProps } from '../../../models/dataGridProProps';
@@ -6,4 +6,4 @@ export declare const columnReorderStateInitializer: GridStateInitializer;
6
6
  /**
7
7
  * @requires useGridColumns (method)
8
8
  */
9
- export declare const useGridColumnReorder: (apiRef: React.MutableRefObject<GridPrivateApiPro>, props: Pick<DataGridProProcessedProps, "disableColumnReorder" | "keepColumnPositionIfDraggedOutside" | "classes" | "onColumnOrderChange">) => void;
9
+ export declare const useGridColumnReorder: (apiRef: RefObject<GridPrivateApiPro>, props: Pick<DataGridProProcessedProps, "disableColumnReorder" | "keepColumnPositionIfDraggedOutside" | "classes" | "onColumnOrderChange">) => void;
@@ -1,6 +1,6 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridStateInitializer } from '@mui/x-data-grid/internals';
3
3
  import { GridPrivateApiPro } from '../../../models/gridApiPro';
4
4
  import { DataGridProProcessedProps } from '../../../models/dataGridProProps';
5
5
  export declare const dataSourceStateInitializer: GridStateInitializer;
6
- export declare const useGridDataSource: (apiRef: React.MutableRefObject<GridPrivateApiPro>, props: Pick<DataGridProProcessedProps, "unstable_dataSource" | "unstable_dataSourceCache" | "unstable_onDataSourceError" | "sortingMode" | "filterMode" | "paginationMode" | "treeData">) => void;
6
+ export declare const useGridDataSource: (apiRef: RefObject<GridPrivateApiPro>, props: Pick<DataGridProProcessedProps, "unstable_dataSource" | "unstable_dataSourceCache" | "unstable_onDataSourceError" | "sortingMode" | "filterMode" | "paginationMode" | "treeData">) => void;
@@ -1,3 +1,4 @@
1
+ import { RefObject } from '@mui/x-internals/types';
1
2
  import { GridRowId } from '@mui/x-data-grid';
2
3
  import { GridPrivateApiPro } from '../../../models/gridApiPro';
3
4
  export declare const runIfServerMode: (modeProp: "server" | "client", fn: Function) => () => void;
@@ -18,7 +19,7 @@ export declare class NestedDataManager {
18
19
  private settledRequests;
19
20
  private api;
20
21
  private maxConcurrentRequests;
21
- constructor(privateApiRef: React.MutableRefObject<GridPrivateApiPro>, maxConcurrentRequests?: number);
22
+ constructor(privateApiRef: RefObject<GridPrivateApiPro>, maxConcurrentRequests?: number);
22
23
  private processQueue;
23
24
  queue: (ids: GridRowId[]) => Promise<void>;
24
25
  setRequestSettled: (id: GridRowId) => void;
@@ -1,6 +1,6 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridStateInitializer } from '@mui/x-data-grid/internals';
3
3
  import { GridPrivateApiPro } from '../../../models/gridApiPro';
4
4
  import { DataGridProProcessedProps } from '../../../models/dataGridProProps';
5
5
  export declare const detailPanelStateInitializer: GridStateInitializer<Pick<DataGridProProcessedProps, 'initialState' | 'detailPanelExpandedRowIds'>>;
6
- export declare const useGridDetailPanel: (apiRef: React.MutableRefObject<GridPrivateApiPro>, props: Pick<DataGridProProcessedProps, "getDetailPanelContent" | "getDetailPanelHeight" | "detailPanelExpandedRowIds" | "onDetailPanelExpandedRowIdsChange">) => void;
6
+ export declare const useGridDetailPanel: (apiRef: RefObject<GridPrivateApiPro>, props: Pick<DataGridProProcessedProps, "getDetailPanelContent" | "getDetailPanelHeight" | "detailPanelExpandedRowIds" | "onDetailPanelExpandedRowIdsChange">) => void;
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { DataGridProProcessedProps } from '../../../models/dataGridProProps';
3
3
  import { GridPrivateApiPro } from '../../../models/gridApiPro';
4
- export declare const useGridDetailPanelPreProcessors: (privateApiRef: React.MutableRefObject<GridPrivateApiPro>, props: DataGridProProcessedProps) => void;
4
+ export declare const useGridDetailPanelPreProcessors: (privateApiRef: RefObject<GridPrivateApiPro>, props: DataGridProProcessedProps) => void;
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridPrivateApiPro } from '../../../models/gridApiPro';
3
3
  import { DataGridProProcessedProps } from '../../../models/dataGridProProps';
4
4
  /**
@@ -6,4 +6,4 @@ import { DataGridProProcessedProps } from '../../../models/dataGridProProps';
6
6
  * @requires useGridDimensions (method) - can be after
7
7
  * @requires useGridScroll (method
8
8
  */
9
- export declare const useGridInfiniteLoader: (apiRef: React.MutableRefObject<GridPrivateApiPro>, props: Pick<DataGridProProcessedProps, "onRowsScrollEnd" | "pagination" | "paginationMode" | "rowsLoadingMode" | "scrollEndThreshold">) => void;
9
+ export declare const useGridInfiniteLoader: (apiRef: RefObject<GridPrivateApiPro>, props: Pick<DataGridProProcessedProps, "onRowsScrollEnd" | "pagination" | "paginationMode" | "rowsLoadingMode" | "scrollEndThreshold">) => void;
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridPrivateApiPro } from '../../../models/gridApiPro';
3
3
  import { DataGridProProcessedProps } from '../../../models/dataGridProProps';
4
4
  /**
@@ -7,4 +7,4 @@ import { DataGridProProcessedProps } from '../../../models/dataGridProProps';
7
7
  * @requires useGridDimensions (method) - can be after
8
8
  * @requires useGridScroll (method
9
9
  */
10
- export declare const useGridLazyLoader: (privateApiRef: React.MutableRefObject<GridPrivateApiPro>, props: Pick<DataGridProProcessedProps, "onFetchRows" | "rowsLoadingMode" | "pagination" | "paginationMode" | "experimentalFeatures">) => void;
10
+ export declare const useGridLazyLoader: (privateApiRef: RefObject<GridPrivateApiPro>, props: Pick<DataGridProProcessedProps, "onFetchRows" | "rowsLoadingMode" | "pagination" | "paginationMode" | "experimentalFeatures">) => void;
@@ -1,5 +1,5 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridPrivateApiPro } from '../../../models/gridApiPro';
3
3
  import { DataGridProProcessedProps } from '../../../models/dataGridProProps';
4
4
  export declare const GRID_SKELETON_ROW_ROOT_ID = "auto-generated-skeleton-row-root";
5
- export declare const useGridLazyLoaderPreProcessors: (privateApiRef: React.MutableRefObject<GridPrivateApiPro>, props: Pick<DataGridProProcessedProps, "rowCount" | "rowsLoadingMode" | "experimentalFeatures">) => void;
5
+ export declare const useGridLazyLoaderPreProcessors: (privateApiRef: RefObject<GridPrivateApiPro>, props: Pick<DataGridProProcessedProps, "rowCount" | "rowsLoadingMode" | "experimentalFeatures">) => void;
@@ -1,6 +1,6 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridStateInitializer } from '@mui/x-data-grid/internals';
3
3
  import { GridPrivateApiPro } from '../../../models/gridApiPro';
4
4
  import { DataGridProProcessedProps } from '../../../models/dataGridProProps';
5
5
  export declare const rowPinningStateInitializer: GridStateInitializer<Pick<DataGridProProcessedProps, 'pinnedRows' | 'getRowId' | 'experimentalFeatures'>>;
6
- export declare const useGridRowPinning: (apiRef: React.MutableRefObject<GridPrivateApiPro>, props: Pick<DataGridProProcessedProps, "pinnedRows" | "getRowId">) => void;
6
+ export declare const useGridRowPinning: (apiRef: RefObject<GridPrivateApiPro>, props: Pick<DataGridProProcessedProps, "pinnedRows" | "getRowId">) => void;
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridHydrateRowsValue } from '@mui/x-data-grid/internals';
3
3
  import { GridRowId, GridRowModel } from '@mui/x-data-grid';
4
4
  import { GridPrivateApiPro } from '../../../models/gridApiPro';
@@ -9,7 +9,7 @@ export declare function addPinnedRow({ groupingParams, rowModel, rowId, position
9
9
  rowModel: GridRowModel;
10
10
  rowId: GridRowId;
11
11
  position: GridPinnedRowPosition;
12
- apiRef: React.MutableRefObject<GridPrivateApiPro>;
12
+ apiRef: RefObject<GridPrivateApiPro>;
13
13
  isAutoGenerated: boolean;
14
14
  }): {
15
15
  dataRowIdToModelLookup: {
@@ -30,5 +30,5 @@ export declare function addPinnedRow({ groupingParams, rowModel, rowId, position
30
30
  pinnedRows?: import("@mui/x-data-grid/internals").GridPinnedRowsState;
31
31
  } | undefined;
32
32
  };
33
- export declare const useGridRowPinningPreProcessors: (apiRef: React.MutableRefObject<GridPrivateApiPro>) => void;
33
+ export declare const useGridRowPinningPreProcessors: (apiRef: RefObject<GridPrivateApiPro>) => void;
34
34
  export {};
@@ -1,8 +1,8 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridPrivateApiPro } from '../../../models/gridApiPro';
3
3
  import { DataGridProProcessedProps } from '../../../models/dataGridProProps';
4
4
  /**
5
5
  * Only available in DataGridPro
6
6
  * @requires useGridRows (method)
7
7
  */
8
- export declare const useGridRowReorder: (apiRef: React.MutableRefObject<GridPrivateApiPro>, props: Pick<DataGridProProcessedProps, "rowReordering" | "onRowOrderChange" | "classes">) => void;
8
+ export declare const useGridRowReorder: (apiRef: RefObject<GridPrivateApiPro>, props: Pick<DataGridProProcessedProps, "rowReordering" | "onRowOrderChange" | "classes">) => void;
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { DataGridProProcessedProps } from '../../../models/dataGridProProps';
3
3
  import { GridPrivateApiPro } from '../../../models/gridApiPro';
4
- export declare const useGridRowReorderPreProcessors: (privateApiRef: React.MutableRefObject<GridPrivateApiPro>, props: DataGridProProcessedProps) => void;
4
+ export declare const useGridRowReorderPreProcessors: (privateApiRef: RefObject<GridPrivateApiPro>, props: DataGridProProcessedProps) => void;
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { DataGridProProcessedProps } from '../../../models/dataGridProProps';
3
3
  import { GridPrivateApiPro } from '../../../models/gridApiPro';
4
- export declare const useGridDataSourceTreeDataPreProcessors: (privateApiRef: React.MutableRefObject<GridPrivateApiPro>, props: Pick<DataGridProProcessedProps, "treeData" | "groupingColDef" | "disableChildrenSorting" | "disableChildrenFiltering" | "defaultGroupingExpansionDepth" | "isGroupExpandedByDefault" | "unstable_dataSource">) => void;
4
+ export declare const useGridDataSourceTreeDataPreProcessors: (privateApiRef: RefObject<GridPrivateApiPro>, props: Pick<DataGridProProcessedProps, "treeData" | "groupingColDef" | "disableChildrenSorting" | "disableChildrenFiltering" | "defaultGroupingExpansionDepth" | "isGroupExpandedByDefault" | "unstable_dataSource">) => void;
@@ -1,3 +1,4 @@
1
+ import { RefObject } from '@mui/x-internals/types';
1
2
  import { GridRowTreeConfig, GridFilterState, GridFilterModel } from '@mui/x-data-grid';
2
3
  import { GridAggregatedFilterItemApplier } from '@mui/x-data-grid/internals';
3
4
  import type { GridPrivateApiPro } from '../../../models/gridApiPro';
@@ -6,7 +7,7 @@ interface FilterRowTreeFromTreeDataParams {
6
7
  disableChildrenFiltering: boolean;
7
8
  isRowMatchingFilters: GridAggregatedFilterItemApplier | null;
8
9
  filterModel: GridFilterModel;
9
- apiRef: React.MutableRefObject<GridPrivateApiPro>;
10
+ apiRef: RefObject<GridPrivateApiPro>;
10
11
  }
11
12
  export declare enum TreeDataStrategy {
12
13
  Default = "tree-data",
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridApiPro } from '../../../models/gridApiPro';
3
3
  import { DataGridProProcessedProps } from '../../../models/dataGridProProps';
4
- export declare const useGridTreeData: (apiRef: React.MutableRefObject<GridApiPro>, props: Pick<DataGridProProcessedProps, "unstable_dataSource">) => void;
4
+ export declare const useGridTreeData: (apiRef: RefObject<GridApiPro>, props: Pick<DataGridProProcessedProps, "unstable_dataSource">) => void;
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { DataGridProProcessedProps } from '../../../models/dataGridProProps';
3
3
  import { GridPrivateApiPro } from '../../../models/gridApiPro';
4
- export declare const useGridTreeDataPreProcessors: (privateApiRef: React.MutableRefObject<GridPrivateApiPro>, props: Pick<DataGridProProcessedProps, "treeData" | "groupingColDef" | "getTreeDataPath" | "disableChildrenSorting" | "disableChildrenFiltering" | "defaultGroupingExpansionDepth" | "isGroupExpandedByDefault" | "unstable_dataSource">) => void;
4
+ export declare const useGridTreeDataPreProcessors: (privateApiRef: RefObject<GridPrivateApiPro>, props: Pick<DataGridProProcessedProps, "treeData" | "groupingColDef" | "getTreeDataPath" | "disableChildrenSorting" | "disableChildrenFiltering" | "defaultGroupingExpansionDepth" | "isGroupExpandedByDefault" | "unstable_dataSource">) => void;
@@ -1,2 +1,2 @@
1
1
  import { GridApiPro } from '../../models/gridApiPro';
2
- export declare const useGridApiContext: () => import("react").MutableRefObject<GridApiPro>;
2
+ export declare const useGridApiContext: () => import("react").RefObject<GridApiPro>;
@@ -1,2 +1,2 @@
1
1
  import { GridPrivateApiPro } from '../../models/gridApiPro';
2
- export declare const useGridPrivateApiContext: () => import("react").MutableRefObject<GridPrivateApiPro>;
2
+ export declare const useGridPrivateApiContext: () => import("react").RefObject<GridPrivateApiPro>;
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid-pro v7.23.6
2
+ * @mui/x-data-grid-pro v7.24.1
3
3
  *
4
4
  * @license MUI X Commercial
5
5
  * This source code is licensed under the commercial license found in the
@@ -1,4 +1,5 @@
1
1
  import * as React from 'react';
2
+ import { RefObject } from '@mui/x-internals/types';
2
3
  import { GridEventListener, GridCallbackDetails, GridRowParams, GridRowId, GridValidRowModel, GridGroupNode, GridFeatureMode, GridListColDef } from '@mui/x-data-grid';
3
4
  import type { GridExperimentalFeatures, DataGridPropsWithoutDefaultValue, DataGridPropsWithDefaultValues, DataGridPropsWithComplexDefaultValueAfterProcessing, DataGridPropsWithComplexDefaultValueBeforeProcessing, GridPinnedColumnFields, DataGridProSharedPropsWithDefaultValue, DataGridProSharedPropsWithoutDefaultValue, GridDataSourceCache, GridGetRowsParams } from '@mui/x-data-grid/internals';
4
5
  import type { GridPinnedRowsProp } from '../hooks/features/rowPinning';
@@ -123,7 +124,7 @@ export interface DataGridProPropsWithoutDefaultValue<R extends GridValidRowModel
123
124
  /**
124
125
  * The ref object that allows grid manipulation. Can be instantiated with `useGridApiRef()`.
125
126
  */
126
- apiRef?: React.MutableRefObject<GridApiPro>;
127
+ apiRef?: RefObject<GridApiPro>;
127
128
  /**
128
129
  * The initial state of the DataGridPro.
129
130
  * The data in it will be set in the state on initialization but will not be controlled.
@@ -4,7 +4,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import { useLicenseVerifier, Watermark } from '@mui/x-license';
7
- import { GridBody, GridFooterPlaceholder, GridHeader, GridRoot, GridContextProvider } from '@mui/x-data-grid';
7
+ import { GridRoot, GridContextProvider } from '@mui/x-data-grid';
8
8
  import { validateProps } from '@mui/x-data-grid/internals';
9
9
  import { forwardRef } from '@mui/x-internals/forwardRef';
10
10
  import { useDataGridProComponent } from "./useDataGridProComponent.js";
@@ -13,7 +13,7 @@ import { getReleaseInfo } from "../utils/releaseInfo.js";
13
13
  import { propValidatorsDataGridPro } from "../internals/propValidation.js";
14
14
  import { useGridAriaAttributes } from "../hooks/utils/useGridAriaAttributes.js";
15
15
  import { useGridRowAriaAttributes } from "../hooks/features/rows/useGridRowAriaAttributes.js";
16
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
16
+ import { jsx as _jsx } from "react/jsx-runtime";
17
17
  const configuration = {
18
18
  hooks: {
19
19
  useGridAriaAttributes,
@@ -32,18 +32,16 @@ const DataGridProRaw = forwardRef(function DataGridPro(inProps, ref) {
32
32
  privateApiRef: privateApiRef,
33
33
  configuration: configuration,
34
34
  props: props,
35
- children: /*#__PURE__*/_jsxs(GridRoot, _extends({
35
+ children: /*#__PURE__*/_jsx(GridRoot, _extends({
36
36
  className: props.className,
37
37
  style: props.style,
38
38
  sx: props.sx
39
39
  }, props.forwardedProps, props.slotProps?.root, {
40
40
  ref: ref,
41
- children: [/*#__PURE__*/_jsx(GridHeader, {}), /*#__PURE__*/_jsx(GridBody, {
42
- children: /*#__PURE__*/_jsx(Watermark, {
43
- packageName: "x-data-grid-pro",
44
- releaseInfo: releaseInfo
45
- })
46
- }), /*#__PURE__*/_jsx(GridFooterPlaceholder, {})]
41
+ children: /*#__PURE__*/_jsx(Watermark, {
42
+ packageName: "x-data-grid-pro",
43
+ releaseInfo: releaseInfo
44
+ })
47
45
  }))
48
46
  });
49
47
  });
@@ -44,6 +44,7 @@ export const useDataGridProComponent = (inputApiRef, props) => {
44
44
  useGridInitializeState(columnPinningStateInitializer, apiRef, props);
45
45
  useGridInitializeState(columnsStateInitializer, apiRef, props);
46
46
  useGridInitializeState(rowPinningStateInitializer, apiRef, props);
47
+ useGridInitializeState(paginationStateInitializer, apiRef, props);
47
48
  useGridInitializeState(rowsStateInitializer, apiRef, props);
48
49
  useGridInitializeState(editingStateInitializer, apiRef, props);
49
50
  useGridInitializeState(focusStateInitializer, apiRef, props);
@@ -54,7 +55,6 @@ export const useDataGridProComponent = (inputApiRef, props) => {
54
55
  useGridInitializeState(densityStateInitializer, apiRef, props);
55
56
  useGridInitializeState(columnReorderStateInitializer, apiRef, props);
56
57
  useGridInitializeState(columnResizeStateInitializer, apiRef, props);
57
- useGridInitializeState(paginationStateInitializer, apiRef, props);
58
58
  useGridInitializeState(rowsMetaStateInitializer, apiRef, props);
59
59
  useGridInitializeState(columnMenuStateInitializer, apiRef, props);
60
60
  useGridInitializeState(columnGroupsStateInitializer, apiRef, props);
@@ -1,13 +1,14 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["colIndex", "height", "hasFocus", "width", "headerClassName", "colDef", "item", "headerFilterMenuRef", "InputComponentProps", "showClearIcon", "pinnedPosition", "style", "indexInSection", "sectionLength", "gridHasFiller"];
3
+ const _excluded = ["colIndex", "height", "hasFocus", "width", "headerClassName", "colDef", "item", "headerFilterMenuRef", "InputComponentProps", "showClearIcon", "pinnedPosition", "pinnedOffset", "style", "showLeftBorder", "showRightBorder"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
7
  import { unstable_useForkRef as useForkRef, unstable_composeClasses as composeClasses, unstable_capitalize as capitalize } from '@mui/utils';
8
8
  import { fastMemo } from '@mui/x-internals/fastMemo';
9
9
  import { gridVisibleColumnFieldsSelector, getDataGridUtilityClass, useGridSelector, GridFilterInputValue, GridFilterInputDate, GridFilterInputBoolean, GridFilterInputSingleSelect, gridFilterModelSelector, gridFilterableColumnLookupSelector } from '@mui/x-data-grid';
10
- import { useGridPrivateApiContext, gridHeaderFilteringEditFieldSelector, gridHeaderFilteringMenuSelector, isNavigationKey, shouldCellShowLeftBorder, shouldCellShowRightBorder } from '@mui/x-data-grid/internals';
10
+ import { PinnedColumnPosition, useGridPrivateApiContext, gridHeaderFilteringEditFieldSelector, gridHeaderFilteringMenuSelector, isNavigationKey, attachPinnedStyle } from '@mui/x-data-grid/internals';
11
+ import { useRtl } from '@mui/system/RtlProvider';
11
12
  import { forwardRef } from '@mui/x-internals/forwardRef';
12
13
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
13
14
  import { GridHeaderFilterMenuContainer } from "./GridHeaderFilterMenuContainer.js";
@@ -22,7 +23,7 @@ const useUtilityClasses = ownerState => {
22
23
  pinnedPosition
23
24
  } = ownerState;
24
25
  const slots = {
25
- root: ['columnHeader', colDef.headerAlign === 'left' && 'columnHeader--alignLeft', colDef.headerAlign === 'center' && 'columnHeader--alignCenter', colDef.headerAlign === 'right' && 'columnHeader--alignRight', 'withBorderColor', showRightBorder && 'columnHeader--withRightBorder', showLeftBorder && 'columnHeader--withLeftBorder', pinnedPosition === 'left' && 'columnHeader--pinnedLeft', pinnedPosition === 'right' && 'columnHeader--pinnedRight']
26
+ root: ['columnHeader', colDef.headerAlign === 'left' && 'columnHeader--alignLeft', colDef.headerAlign === 'center' && 'columnHeader--alignCenter', colDef.headerAlign === 'right' && 'columnHeader--alignRight', 'withBorderColor', showRightBorder && 'columnHeader--withRightBorder', showLeftBorder && 'columnHeader--withLeftBorder', pinnedPosition === PinnedColumnPosition.LEFT && 'columnHeader--pinnedLeft', pinnedPosition === PinnedColumnPosition.RIGHT && 'columnHeader--pinnedRight']
26
27
  };
27
28
  return composeClasses(slots, getDataGridUtilityClass, classes);
28
29
  };
@@ -54,13 +55,14 @@ const GridHeaderFilterCell = forwardRef((props, ref) => {
54
55
  InputComponentProps,
55
56
  showClearIcon = true,
56
57
  pinnedPosition,
58
+ pinnedOffset,
57
59
  style: styleProp,
58
- indexInSection,
59
- sectionLength,
60
- gridHasFiller
60
+ showLeftBorder,
61
+ showRightBorder
61
62
  } = props,
62
63
  other = _objectWithoutPropertiesLoose(props, _excluded);
63
64
  const apiRef = useGridPrivateApiContext();
65
+ const isRtl = useRtl();
64
66
  const columnFields = useGridSelector(apiRef, gridVisibleColumnFieldsSelector);
65
67
  const rootProps = useGridRootProps();
66
68
  const cellRef = React.useRef(null);
@@ -175,8 +177,6 @@ const GridHeaderFilterCell = forwardRef((props, ref) => {
175
177
  onMouseDown: publish('headerFilterMouseDown', onMouseDown),
176
178
  onBlur: publish('headerFilterBlur')
177
179
  }), [onMouseDown, onKeyDown, publish]);
178
- const showLeftBorder = shouldCellShowLeftBorder(pinnedPosition, indexInSection);
179
- const showRightBorder = shouldCellShowRightBorder(pinnedPosition, indexInSection, sectionLength, rootProps.showCellVerticalBorder, gridHasFiller);
180
180
  const ownerState = _extends({}, rootProps, {
181
181
  pinnedPosition,
182
182
  colDef,
@@ -190,10 +190,10 @@ const GridHeaderFilterCell = forwardRef((props, ref) => {
190
190
  const isFilterActive = isApplied || hasFocus;
191
191
  return /*#__PURE__*/_jsxs("div", _extends({
192
192
  className: clsx(classes.root, headerClassName),
193
- style: _extends({
193
+ style: attachPinnedStyle(_extends({
194
194
  height,
195
195
  width
196
- }, styleProp),
196
+ }, styleProp), isRtl, pinnedPosition, pinnedOffset),
197
197
  role: "columnheader",
198
198
  "aria-colindex": colIndex + 1,
199
199
  "aria-label": headerFilterComponent == null ? colDef.headerName ?? colDef.field : undefined
@@ -252,7 +252,6 @@ process.env.NODE_ENV !== "production" ? GridHeaderFilterCell.propTypes = {
252
252
  // ----------------------------------------------------------------------
253
253
  colDef: PropTypes.object.isRequired,
254
254
  colIndex: PropTypes.number.isRequired,
255
- gridHasFiller: PropTypes.bool.isRequired,
256
255
  hasFocus: PropTypes.bool,
257
256
  /**
258
257
  * Class name added to the column header cell.
@@ -262,7 +261,6 @@ process.env.NODE_ENV !== "production" ? GridHeaderFilterCell.propTypes = {
262
261
  current: PropTypes.object
263
262
  }).isRequired,
264
263
  height: PropTypes.number.isRequired,
265
- indexInSection: PropTypes.number.isRequired,
266
264
  InputComponentProps: PropTypes.object,
267
265
  item: PropTypes.shape({
268
266
  field: PropTypes.string.isRequired,
@@ -270,9 +268,11 @@ process.env.NODE_ENV !== "production" ? GridHeaderFilterCell.propTypes = {
270
268
  operator: PropTypes.string.isRequired,
271
269
  value: PropTypes.any
272
270
  }).isRequired,
273
- pinnedPosition: PropTypes.oneOf(['left', 'right']),
274
- sectionLength: PropTypes.number.isRequired,
271
+ pinnedOffset: PropTypes.number,
272
+ pinnedPosition: PropTypes.oneOf([0, 1, 2, 3]),
275
273
  showClearIcon: PropTypes.bool,
274
+ showLeftBorder: PropTypes.bool.isRequired,
275
+ showRightBorder: PropTypes.bool.isRequired,
276
276
  sortIndex: PropTypes.number,
277
277
  style: PropTypes.object,
278
278
  tabIndex: PropTypes.oneOf([-1, 0]).isRequired,
@@ -1,9 +1,9 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["getColumnsToRender", "renderContext", "leftRenderContext", "rightRenderContext", "pinnedColumns", "visibleColumns", "getCellOffsetStyle"];
3
+ const _excluded = ["getColumnsToRender", "getPinnedCellOffset", "renderContext", "leftRenderContext", "rightRenderContext", "pinnedColumns", "visibleColumns", "columnPositions"];
4
4
  import * as React from 'react';
5
- import { gridFocusColumnHeaderFilterSelector, useGridSelector, gridFilterModelSelector, gridTabIndexColumnHeaderFilterSelector, getDataGridUtilityClass, GridPinnedColumnPosition, gridDimensionsSelector } from '@mui/x-data-grid';
6
- import { useGridColumnHeaders as useGridColumnHeadersCommunity, useGridPrivateApiContext, getGridFilter, GridColumnHeaderRow } from '@mui/x-data-grid/internals';
5
+ import { gridFocusColumnHeaderFilterSelector, useGridSelector, gridFilterModelSelector, gridTabIndexColumnHeaderFilterSelector, getDataGridUtilityClass, gridDimensionsSelector } from '@mui/x-data-grid';
6
+ import { useGridColumnHeaders as useGridColumnHeadersCommunity, useGridPrivateApiContext, getGridFilter, GridColumnHeaderRow, shouldCellShowLeftBorder, shouldCellShowRightBorder, PinnedColumnPosition } from '@mui/x-data-grid/internals';
7
7
  import composeClasses from '@mui/utils/composeClasses';
8
8
  import { useGridRootProps } from "../../utils/useGridRootProps.js";
9
9
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
@@ -31,12 +31,13 @@ export const useGridColumnHeaders = props => {
31
31
  })),
32
32
  {
33
33
  getColumnsToRender,
34
+ getPinnedCellOffset,
34
35
  renderContext,
35
36
  leftRenderContext,
36
37
  rightRenderContext,
37
38
  pinnedColumns,
38
39
  visibleColumns,
39
- getCellOffsetStyle
40
+ columnPositions
40
41
  } = _useGridColumnHeaders,
41
42
  otherProps = _objectWithoutPropertiesLoose(_useGridColumnHeaders, _excluded);
42
43
  const headerFiltersRef = React.useRef(null);
@@ -86,11 +87,12 @@ export const useGridColumnHeaders = props => {
86
87
  }) : colDef.headerClassName;
87
88
  const item = getFilterItem(colDef);
88
89
  const pinnedPosition = params?.position;
89
- const style = getCellOffsetStyle({
90
- pinnedPosition,
91
- columnIndex,
92
- computedWidth: colDef.computedWidth
93
- });
90
+ const scrollbarWidth = dimensions.hasScrollY ? dimensions.scrollbarSize : 0;
91
+ const pinnedOffset = getPinnedCellOffset(pinnedPosition, colDef.computedWidth, columnIndex, columnPositions, dimensions.columnsTotalWidth, scrollbarWidth);
92
+ const indexInSection = i;
93
+ const sectionLength = renderedColumns.length;
94
+ const showLeftBorder = shouldCellShowLeftBorder(pinnedPosition, indexInSection);
95
+ const showRightBorder = shouldCellShowRightBorder(pinnedPosition, indexInSection, sectionLength, rootProps.showCellVerticalBorder, gridHasFiller);
94
96
  filters.push(/*#__PURE__*/_jsx(rootProps.slots.headerFilterCell, _extends({
95
97
  colIndex: columnIndex,
96
98
  height: dimensions.headerFilterHeight,
@@ -103,10 +105,9 @@ export const useGridColumnHeaders = props => {
103
105
  "data-field": colDef.field,
104
106
  item: item,
105
107
  pinnedPosition: pinnedPosition,
106
- style: style,
107
- indexInSection: i,
108
- sectionLength: renderedColumns.length,
109
- gridHasFiller: gridHasFiller
108
+ pinnedOffset: pinnedOffset,
109
+ showLeftBorder: showLeftBorder,
110
+ showRightBorder: showRightBorder
110
111
  }, rootProps.slotProps?.headerFilterCell), `${colDef.field}-filter`));
111
112
  }
112
113
  return otherProps.getFillers(params, filters, 0, true);
@@ -122,14 +123,14 @@ export const useGridColumnHeaders = props => {
122
123
  "aria-rowindex": headerGroupingMaxDepth + 2,
123
124
  ownerState: rootProps,
124
125
  children: [leftRenderContext && getColumnFilters({
125
- position: GridPinnedColumnPosition.LEFT,
126
+ position: PinnedColumnPosition.LEFT,
126
127
  renderContext: leftRenderContext,
127
128
  maxLastColumn: leftRenderContext.lastColumnIndex
128
129
  }), getColumnFilters({
129
130
  renderContext,
130
131
  maxLastColumn: visibleColumns.length - pinnedColumns.right.length
131
132
  }), rightRenderContext && getColumnFilters({
132
- position: GridPinnedColumnPosition.RIGHT,
133
+ position: PinnedColumnPosition.RIGHT,
133
134
  renderContext: rightRenderContext,
134
135
  maxLastColumn: rightRenderContext.lastColumnIndex
135
136
  })]
package/modern/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid-pro v7.23.6
2
+ * @mui/x-data-grid-pro v7.24.1
3
3
  *
4
4
  * @license MUI X Commercial
5
5
  * This source code is licensed under the commercial license found in the
@@ -1,6 +1,6 @@
1
1
  import { ponyfillGlobal } from '@mui/utils';
2
2
  export const getReleaseInfo = () => {
3
- const releaseInfo = "MTczNjM3NzIwMDAwMA==";
3
+ const releaseInfo = "MTczNzY1ODgwMDAwMA==";
4
4
  if (process.env.NODE_ENV !== 'production') {
5
5
  // A simple hack to set the value in the test environment (has no build step).
6
6
  // eslint-disable-next-line no-useless-concat
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-data-grid-pro",
3
- "version": "7.23.6",
3
+ "version": "7.24.1",
4
4
  "description": "The Pro plan edition of the Data Grid components (MUI X).",
5
5
  "author": "MUI Team",
6
6
  "main": "./index.js",
@@ -39,9 +39,9 @@
39
39
  "clsx": "^2.1.1",
40
40
  "prop-types": "^15.8.1",
41
41
  "reselect": "^5.1.1",
42
- "@mui/x-data-grid": "7.23.6",
43
- "@mui/x-internals": "7.23.6",
44
- "@mui/x-license": "7.23.6"
42
+ "@mui/x-internals": "7.24.1",
43
+ "@mui/x-license": "7.24.1",
44
+ "@mui/x-data-grid": "7.24.1"
45
45
  },
46
46
  "peerDependencies": {
47
47
  "@emotion/react": "^11.9.0",
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.getReleaseInfo = void 0;
7
7
  var _utils = require("@mui/utils");
8
8
  const getReleaseInfo = () => {
9
- const releaseInfo = "MTczNjM3NzIwMDAwMA==";
9
+ const releaseInfo = "MTczNzY1ODgwMDAwMA==";
10
10
  if (process.env.NODE_ENV !== 'production') {
11
11
  // A simple hack to set the value in the test environment (has no build step).
12
12
  // eslint-disable-next-line no-useless-concat