@mui/x-data-grid-pro 7.0.0-beta.6 → 7.0.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 (103) hide show
  1. package/CHANGELOG.md +311 -12
  2. package/DataGridPro/DataGridPro.js +18 -18
  3. package/DataGridPro/useDataGridProComponent.js +2 -3
  4. package/README.md +1 -1
  5. package/components/GridColumnHeaders.d.ts +1 -2
  6. package/components/GridColumnHeaders.js +7 -164
  7. package/components/headerFiltering/GridHeaderFilterCell.d.ts +8 -1
  8. package/components/headerFiltering/GridHeaderFilterCell.js +26 -9
  9. package/esm/DataGridPro/DataGridPro.js +18 -18
  10. package/esm/DataGridPro/useDataGridProComponent.js +1 -2
  11. package/esm/components/GridColumnHeaders.js +9 -166
  12. package/esm/components/GridDetailPanelToggleCell.js +1 -2
  13. package/esm/components/GridTreeDataGroupingCell.js +2 -3
  14. package/esm/components/headerFiltering/GridHeaderFilterCell.js +39 -26
  15. package/esm/components/headerFiltering/GridHeaderFilterClearButton.js +1 -2
  16. package/esm/components/headerFiltering/GridHeaderFilterMenu.js +1 -2
  17. package/esm/components/headerFiltering/GridHeaderFilterMenuContainer.js +1 -2
  18. package/esm/hooks/features/columnHeaders/useGridColumnHeaders.js +49 -16
  19. package/esm/hooks/features/columnPinning/useGridColumnPinning.js +7 -10
  20. package/esm/hooks/features/columnPinning/useGridColumnPinningPreProcessors.js +2 -0
  21. package/esm/hooks/features/columnReorder/useGridColumnReorder.js +2 -4
  22. package/esm/hooks/features/detailPanel/useGridDetailPanel.js +5 -10
  23. package/esm/hooks/features/detailPanel/useGridDetailPanelCache.js +1 -2
  24. package/esm/hooks/features/index.js +0 -1
  25. package/esm/hooks/features/infiniteLoader/useGridInfiniteLoader.js +6 -10
  26. package/esm/hooks/features/lazyLoader/useGridLazyLoader.js +3 -23
  27. package/esm/hooks/features/lazyLoader/useGridLazyLoaderPreProcessors.js +2 -6
  28. package/esm/hooks/features/rowPinning/useGridRowPinning.js +3 -5
  29. package/esm/hooks/features/rowPinning/useGridRowPinningPreProcessors.js +5 -7
  30. package/esm/hooks/features/treeData/gridTreeDataGroupColDef.js +1 -1
  31. package/esm/hooks/features/treeData/gridTreeDataUtils.js +1 -2
  32. package/esm/hooks/features/treeData/useGridTreeDataPreProcessors.js +1 -2
  33. package/esm/internals/index.js +0 -1
  34. package/esm/utils/releaseInfo.js +1 -1
  35. package/esm/utils/tree/insertDataRowInTree.js +8 -9
  36. package/esm/utils/tree/removeDataRowFromTree.js +3 -3
  37. package/esm/utils/tree/sortRowTree.js +1 -1
  38. package/esm/utils/tree/updateRowTree.js +1 -1
  39. package/esm/utils/tree/utils.js +6 -9
  40. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +3 -5
  41. package/hooks/features/columnHeaders/useGridColumnHeaders.js +44 -11
  42. package/hooks/features/columnPinning/useGridColumnPinning.js +3 -3
  43. package/hooks/features/columnPinning/useGridColumnPinningPreProcessors.js +2 -0
  44. package/hooks/features/detailPanel/useGridDetailPanel.js +1 -1
  45. package/hooks/features/index.d.ts +0 -1
  46. package/hooks/features/index.js +0 -11
  47. package/hooks/features/infiniteLoader/useGridInfiniteLoader.js +2 -2
  48. package/hooks/features/lazyLoader/useGridLazyLoader.d.ts +1 -1
  49. package/hooks/features/lazyLoader/useGridLazyLoader.js +1 -19
  50. package/hooks/features/lazyLoader/useGridLazyLoaderPreProcessors.js +2 -5
  51. package/index.js +1 -1
  52. package/internals/index.d.ts +0 -1
  53. package/internals/index.js +0 -15
  54. package/models/dataGridProProps.d.ts +3 -36
  55. package/models/dataSource.d.ts +1 -1
  56. package/models/gridApiPro.d.ts +4 -4
  57. package/models/gridStatePro.d.ts +1 -2
  58. package/modern/DataGridPro/DataGridPro.js +18 -18
  59. package/modern/DataGridPro/useDataGridProComponent.js +1 -2
  60. package/modern/components/GridColumnHeaders.js +9 -166
  61. package/modern/components/headerFiltering/GridHeaderFilterCell.js +27 -10
  62. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +46 -12
  63. package/modern/hooks/features/columnPinning/useGridColumnPinning.js +3 -3
  64. package/modern/hooks/features/columnPinning/useGridColumnPinningPreProcessors.js +2 -0
  65. package/modern/hooks/features/detailPanel/useGridDetailPanel.js +1 -1
  66. package/modern/hooks/features/index.js +0 -1
  67. package/modern/hooks/features/infiniteLoader/useGridInfiniteLoader.js +2 -2
  68. package/modern/hooks/features/lazyLoader/useGridLazyLoader.js +1 -19
  69. package/modern/hooks/features/lazyLoader/useGridLazyLoaderPreProcessors.js +2 -5
  70. package/modern/index.js +1 -1
  71. package/modern/internals/index.js +0 -1
  72. package/modern/utils/releaseInfo.js +1 -1
  73. package/package.json +6 -6
  74. package/typeOverloads/modules.d.ts +3 -3
  75. package/utils/releaseInfo.js +1 -1
  76. package/components/GridScrollArea.d.ts +0 -10
  77. package/components/GridScrollArea.js +0 -145
  78. package/esm/components/GridScrollArea.js +0 -137
  79. package/esm/hooks/features/columnResize/columnResizeSelector.js +0 -3
  80. package/esm/hooks/features/columnResize/columnResizeState.js +0 -1
  81. package/esm/hooks/features/columnResize/gridColumnResizeApi.js +0 -10
  82. package/esm/hooks/features/columnResize/index.js +0 -3
  83. package/esm/hooks/features/columnResize/useGridColumnResize.js +0 -547
  84. package/esm/utils/domUtils.js +0 -109
  85. package/hooks/features/columnResize/columnResizeSelector.d.ts +0 -3
  86. package/hooks/features/columnResize/columnResizeSelector.js +0 -10
  87. package/hooks/features/columnResize/columnResizeState.d.ts +0 -3
  88. package/hooks/features/columnResize/columnResizeState.js +0 -5
  89. package/hooks/features/columnResize/gridColumnResizeApi.d.ts +0 -44
  90. package/hooks/features/columnResize/gridColumnResizeApi.js +0 -16
  91. package/hooks/features/columnResize/index.d.ts +0 -3
  92. package/hooks/features/columnResize/index.js +0 -38
  93. package/hooks/features/columnResize/useGridColumnResize.d.ts +0 -10
  94. package/hooks/features/columnResize/useGridColumnResize.js +0 -548
  95. package/modern/components/GridScrollArea.js +0 -137
  96. package/modern/hooks/features/columnResize/columnResizeSelector.js +0 -3
  97. package/modern/hooks/features/columnResize/columnResizeState.js +0 -1
  98. package/modern/hooks/features/columnResize/gridColumnResizeApi.js +0 -10
  99. package/modern/hooks/features/columnResize/index.js +0 -3
  100. package/modern/hooks/features/columnResize/useGridColumnResize.js +0 -537
  101. package/modern/utils/domUtils.js +0 -107
  102. package/utils/domUtils.d.ts +0 -11
  103. package/utils/domUtils.js +0 -121
@@ -5,85 +5,24 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.GridColumnHeaders = void 0;
8
- var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
9
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
10
  var React = _interopRequireWildcard(require("react"));
11
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
- var _utils = require("@mui/utils");
13
12
  var _styles = require("@mui/material/styles");
14
- var _xDataGrid = require("@mui/x-data-grid");
15
13
  var _internals = require("@mui/x-data-grid/internals");
16
- var _useGridRootProps = require("../hooks/utils/useGridRootProps");
17
- var _useGridApiContext = require("../hooks/utils/useGridApiContext");
18
14
  var _useGridColumnHeaders = require("../hooks/features/columnHeaders/useGridColumnHeaders");
19
- var _GridScrollArea = require("./GridScrollArea");
20
15
  var _jsxRuntime = require("react/jsx-runtime");
21
- const _excluded = ["style", "className", "innerRef", "visibleColumns", "sortColumnLookup", "filterColumnLookup", "columnHeaderTabIndexState", "columnGroupHeaderTabIndexState", "columnHeaderFocus", "columnGroupHeaderFocus", "headerGroupingMaxDepth", "columnMenuState", "columnVisibility", "columnGroupsHeaderStructure", "hasOtherElementInTabSequence"];
16
+ const _excluded = ["style", "className", "visibleColumns", "sortColumnLookup", "filterColumnLookup", "columnHeaderTabIndexState", "columnGroupHeaderTabIndexState", "columnHeaderFocus", "columnGroupHeaderFocus", "headerGroupingMaxDepth", "columnMenuState", "columnVisibility", "columnGroupsHeaderStructure", "hasOtherElementInTabSequence"];
22
17
  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); }
23
18
  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 && Object.prototype.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; }
24
- const useUtilityClasses = ownerState => {
25
- const {
26
- leftPinnedColumns,
27
- rightPinnedColumns,
28
- classes
29
- } = ownerState;
30
- const slots = {
31
- leftPinnedColumns: ['pinnedColumnHeaders', leftPinnedColumns && leftPinnedColumns.length > 0 && `pinnedColumnHeaders--left`],
32
- rightPinnedColumns: ['pinnedColumnHeaders', rightPinnedColumns && rightPinnedColumns.length > 0 && `pinnedColumnHeaders--right`, 'withBorderColor']
33
- };
34
- return (0, _utils.unstable_composeClasses)(slots, _xDataGrid.getDataGridUtilityClass, classes);
35
- };
36
- const GridColumnHeadersPinnedColumnHeaders = (0, _styles.styled)('div', {
37
- name: 'MuiDataGrid',
38
- slot: 'PinnedColumnHeaders',
39
- overridesResolver: (_, styles) => [{
40
- [`&.${_xDataGrid.gridClasses['pinnedColumnHeaders--left']}`]: styles['pinnedColumnHeaders--left']
41
- }, {
42
- [`&.${_xDataGrid.gridClasses['pinnedColumnHeaders--right']}`]: styles['pinnedColumnHeaders--right']
43
- }, styles.pinnedColumnHeaders]
44
- })(({
45
- ownerState
46
- }) => (0, _extends2.default)({
47
- position: 'sticky',
48
- zIndex: 5,
49
- top: 0,
50
- display: 'flex',
51
- flexDirection: 'column',
52
- boxSizing: 'border-box',
53
- backgroundColor: 'var(--DataGrid-pinnedBackground)'
54
- }, ownerState.side === _xDataGrid.GridPinnedColumnPosition.LEFT && {
55
- left: 0
56
- }, ownerState.side === _xDataGrid.GridPinnedColumnPosition.RIGHT && {
57
- right: 0
58
- }, {
59
- [`&.${_xDataGrid.gridClasses['pinnedColumnHeaders--left']}`]: {
60
- left: 0,
61
- '& > [role="row"] > [role="columnheader"]:last-of-type': {
62
- borderRight: '1px solid var(--DataGrid-rowBorderColor)'
63
- }
64
- },
65
- [`&.${_xDataGrid.gridClasses['pinnedColumnHeaders--right']}`]: {
66
- right: 0,
67
- '& > [role="row"] > [role="columnheader"]:first-of-type': {
68
- borderLeft: '1px solid var(--DataGrid-rowBorderColor)'
69
- }
70
- }
71
- }));
72
19
  const Filler = (0, _styles.styled)('div')({
73
20
  flex: 1,
74
21
  backgroundColor: 'var(--DataGrid-containerBackground)'
75
22
  });
76
- GridColumnHeadersPinnedColumnHeaders.propTypes = {
77
- // ----------------------------- Warning --------------------------------
78
- // | These PropTypes are generated from the TypeScript type definitions |
79
- // | To update them edit the TypeScript types and run "yarn proptypes" |
80
- // ----------------------------------------------------------------------
81
- ownerState: _propTypes.default.object.isRequired
82
- };
83
23
  const GridColumnHeaders = exports.GridColumnHeaders = /*#__PURE__*/React.forwardRef(function GridColumnHeaders(props, ref) {
84
24
  const {
85
25
  className,
86
- innerRef,
87
26
  visibleColumns,
88
27
  sortColumnLookup,
89
28
  filterColumnLookup,
@@ -98,18 +37,12 @@ const GridColumnHeaders = exports.GridColumnHeaders = /*#__PURE__*/React.forward
98
37
  hasOtherElementInTabSequence
99
38
  } = props,
100
39
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
101
- const apiRef = (0, _useGridApiContext.useGridApiContext)();
102
- const rootProps = (0, _useGridRootProps.useGridRootProps)();
103
- const visiblePinnedColumns = (0, _xDataGrid.useGridSelector)(apiRef, _xDataGrid.gridVisiblePinnedColumnDefinitionsSelector);
104
40
  const {
105
- isDragging,
106
- renderContext,
107
41
  getInnerProps,
108
- getColumnHeaders,
109
- getColumnFilters,
110
- getColumnGroupHeaders
42
+ getColumnHeadersRow,
43
+ getColumnFiltersRow,
44
+ getColumnGroupHeadersRows
111
45
  } = (0, _useGridColumnHeaders.useGridColumnHeaders)({
112
- innerRef,
113
46
  visibleColumns,
114
47
  sortColumnLookup,
115
48
  filterColumnLookup,
@@ -123,100 +56,11 @@ const GridColumnHeaders = exports.GridColumnHeaders = /*#__PURE__*/React.forward
123
56
  columnVisibility,
124
57
  columnGroupsHeaderStructure
125
58
  });
126
- const ownerState = (0, _extends2.default)({}, rootProps, {
127
- leftPinnedColumns: visiblePinnedColumns.left.map(c => c.field),
128
- rightPinnedColumns: visiblePinnedColumns.right.map(c => c.field),
129
- classes: rootProps.classes
130
- });
131
- const classes = useUtilityClasses(ownerState);
132
- const leftRenderContext = renderContext && visiblePinnedColumns.left.length ? (0, _extends2.default)({}, renderContext, {
133
- firstColumnIndex: 0,
134
- lastColumnIndex: visiblePinnedColumns.left.length
135
- }) : null;
136
- const rightRenderContext = renderContext && visiblePinnedColumns.right.length ? (0, _extends2.default)({}, renderContext, {
137
- firstColumnIndex: visibleColumns.length - visiblePinnedColumns.right.length,
138
- lastColumnIndex: visibleColumns.length
139
- }) : null;
140
- const innerProps = getInnerProps();
141
- const pinnedColumnHeadersProps = {
142
- role: innerProps.role
143
- };
144
59
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_internals.GridBaseColumnHeaders, (0, _extends2.default)({
145
60
  ref: ref,
146
61
  className: className
147
- }, other, {
148
- children: [leftRenderContext && /*#__PURE__*/(0, _jsxRuntime.jsxs)(GridColumnHeadersPinnedColumnHeaders, (0, _extends2.default)({
149
- className: classes.leftPinnedColumns,
150
- ownerState: (0, _extends2.default)({}, ownerState, {
151
- side: _xDataGrid.GridPinnedColumnPosition.LEFT,
152
- showCellVerticalBorder: rootProps.showCellVerticalBorder
153
- })
154
- }, pinnedColumnHeadersProps, {
155
- children: [getColumnGroupHeaders({
156
- position: _xDataGrid.GridPinnedColumnPosition.LEFT,
157
- renderContext: leftRenderContext,
158
- minFirstColumn: leftRenderContext.firstColumnIndex,
159
- maxLastColumn: leftRenderContext.lastColumnIndex
160
- }), getColumnHeaders({
161
- position: _xDataGrid.GridPinnedColumnPosition.LEFT,
162
- renderContext: leftRenderContext,
163
- minFirstColumn: leftRenderContext.firstColumnIndex,
164
- maxLastColumn: leftRenderContext.lastColumnIndex
165
- }, {
166
- disableReorder: true
167
- }), getColumnFilters({
168
- position: _xDataGrid.GridPinnedColumnPosition.LEFT,
169
- renderContext: leftRenderContext,
170
- minFirstColumn: leftRenderContext.firstColumnIndex,
171
- maxLastColumn: leftRenderContext.lastColumnIndex
172
- })]
173
- })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridScrollArea.GridScrollArea, {
174
- scrollDirection: "left"
175
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_internals.GridColumnHeadersInner, (0, _extends2.default)({
176
- isDragging: isDragging
177
- }, innerProps, {
178
- children: [getColumnGroupHeaders({
179
- renderContext,
180
- minFirstColumn: visiblePinnedColumns.left.length,
181
- maxLastColumn: visibleColumns.length - visiblePinnedColumns.right.length
182
- }), getColumnHeaders({
183
- renderContext,
184
- minFirstColumn: visiblePinnedColumns.left.length,
185
- maxLastColumn: visibleColumns.length - visiblePinnedColumns.right.length
186
- }), getColumnFilters({
187
- renderContext,
188
- minFirstColumn: visiblePinnedColumns.left.length,
189
- maxLastColumn: visibleColumns.length - visiblePinnedColumns.right.length
190
- })]
191
- })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridScrollArea.GridScrollArea, {
192
- scrollDirection: "right"
193
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(Filler, {}), rightRenderContext && /*#__PURE__*/(0, _jsxRuntime.jsxs)(GridColumnHeadersPinnedColumnHeaders, (0, _extends2.default)({
194
- ownerState: (0, _extends2.default)({}, ownerState, {
195
- side: _xDataGrid.GridPinnedColumnPosition.RIGHT,
196
- showCellVerticalBorder: rootProps.showCellVerticalBorder
197
- }),
198
- className: classes.rightPinnedColumns
199
- }, pinnedColumnHeadersProps, {
200
- children: [getColumnGroupHeaders({
201
- position: _xDataGrid.GridPinnedColumnPosition.RIGHT,
202
- renderContext: rightRenderContext,
203
- minFirstColumn: rightRenderContext.firstColumnIndex,
204
- maxLastColumn: rightRenderContext.lastColumnIndex
205
- }), getColumnHeaders({
206
- position: _xDataGrid.GridPinnedColumnPosition.RIGHT,
207
- renderContext: rightRenderContext,
208
- minFirstColumn: rightRenderContext.firstColumnIndex,
209
- maxLastColumn: rightRenderContext.lastColumnIndex
210
- }, {
211
- disableReorder: true,
212
- separatorSide: _xDataGrid.GridColumnHeaderSeparatorSides.Left
213
- }), getColumnFilters({
214
- position: _xDataGrid.GridPinnedColumnPosition.RIGHT,
215
- renderContext: rightRenderContext,
216
- minFirstColumn: rightRenderContext.firstColumnIndex,
217
- maxLastColumn: rightRenderContext.lastColumnIndex
218
- })]
219
- }))]
62
+ }, other, getInnerProps(), {
63
+ children: [getColumnGroupHeadersRows(), getColumnHeadersRow(), getColumnFiltersRow(), /*#__PURE__*/(0, _jsxRuntime.jsx)(Filler, {})]
220
64
  }));
221
65
  });
222
66
  process.env.NODE_ENV !== "production" ? GridColumnHeaders.propTypes = {
@@ -250,7 +94,6 @@ process.env.NODE_ENV !== "production" ? GridColumnHeaders.propTypes = {
250
94
  filterColumnLookup: _propTypes.default.object.isRequired,
251
95
  hasOtherElementInTabSequence: _propTypes.default.bool.isRequired,
252
96
  headerGroupingMaxDepth: _propTypes.default.number.isRequired,
253
- innerRef: _utils.refType,
254
97
  sortColumnLookup: _propTypes.default.object.isRequired,
255
98
  visibleColumns: _propTypes.default.arrayOf(_propTypes.default.object).isRequired
256
99
  } : void 0;
@@ -1,6 +1,9 @@
1
1
  import * as React from 'react';
2
- import { GridFilterItem, GridFilterOperator, GridColDef } from '@mui/x-data-grid';
2
+ import { GridFilterItem, GridFilterOperator, GridColDef, GridPinnedColumnPosition } from '@mui/x-data-grid';
3
3
  import { GridStateColDef } from '@mui/x-data-grid/internals';
4
+ export interface GridRenderHeaderFilterProps extends GridHeaderFilterCellProps {
5
+ inputRef: React.RefObject<unknown>;
6
+ }
4
7
  export interface GridHeaderFilterCellProps extends Pick<GridStateColDef, 'headerClassName'> {
5
8
  colIndex: number;
6
9
  height: number;
@@ -13,6 +16,10 @@ export interface GridHeaderFilterCellProps extends Pick<GridStateColDef, 'header
13
16
  item: GridFilterItem;
14
17
  showClearIcon?: boolean;
15
18
  InputComponentProps: GridFilterOperator['InputComponentProps'];
19
+ pinnedPosition?: GridPinnedColumnPosition;
20
+ style?: React.CSSProperties;
21
+ indexInSection: number;
22
+ sectionLength: number;
16
23
  }
17
24
  declare const Memoized: React.ForwardRefExoticComponent<GridHeaderFilterCellProps & React.RefAttributes<HTMLDivElement>>;
18
25
  export { Memoized as GridHeaderFilterCell };
@@ -17,17 +17,19 @@ var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
17
17
  var _GridHeaderFilterMenuContainer = require("./GridHeaderFilterMenuContainer");
18
18
  var _GridHeaderFilterClearButton = require("./GridHeaderFilterClearButton");
19
19
  var _jsxRuntime = require("react/jsx-runtime");
20
- const _excluded = ["colIndex", "height", "hasFocus", "width", "headerClassName", "colDef", "item", "headerFilterMenuRef", "InputComponentProps", "showClearIcon"];
20
+ const _excluded = ["colIndex", "height", "hasFocus", "width", "headerClassName", "colDef", "item", "headerFilterMenuRef", "InputComponentProps", "showClearIcon", "pinnedPosition", "style", "indexInSection", "sectionLength"];
21
21
  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); }
22
22
  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 && Object.prototype.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; }
23
23
  const useUtilityClasses = ownerState => {
24
24
  const {
25
25
  colDef,
26
26
  classes,
27
- showColumnVerticalBorder
27
+ showRightBorder,
28
+ showLeftBorder,
29
+ pinnedPosition
28
30
  } = ownerState;
29
31
  const slots = {
30
- root: ['columnHeader', colDef.headerAlign === 'left' && 'columnHeader--alignLeft', colDef.headerAlign === 'center' && 'columnHeader--alignCenter', colDef.headerAlign === 'right' && 'columnHeader--alignRight', 'withBorderColor', showColumnVerticalBorder && 'columnHeader--withRightBorder']
32
+ 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']
31
33
  };
32
34
  return (0, _utils.unstable_composeClasses)(slots, _xDataGrid.getDataGridUtilityClass, classes);
33
35
  };
@@ -47,7 +49,11 @@ const GridHeaderFilterCell = /*#__PURE__*/React.forwardRef((props, ref) => {
47
49
  item,
48
50
  headerFilterMenuRef,
49
51
  InputComponentProps,
50
- showClearIcon = true
52
+ showClearIcon = true,
53
+ pinnedPosition,
54
+ style: styleProp,
55
+ indexInSection,
56
+ sectionLength
51
57
  } = props,
52
58
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
53
59
  const apiRef = (0, _internals.useGridPrivateApiContext)();
@@ -87,7 +93,9 @@ const GridHeaderFilterCell = /*#__PURE__*/React.forwardRef((props, ref) => {
87
93
  }, [apiRef, item]);
88
94
  let headerFilterComponent;
89
95
  if (colDef.renderHeaderFilter) {
90
- headerFilterComponent = colDef.renderHeaderFilter(props);
96
+ headerFilterComponent = colDef.renderHeaderFilter((0, _extends2.default)({}, props, {
97
+ inputRef
98
+ }));
91
99
  }
92
100
  React.useLayoutEffect(() => {
93
101
  if (hasFocus && !isMenuOpen) {
@@ -97,7 +105,7 @@ const GridHeaderFilterCell = /*#__PURE__*/React.forwardRef((props, ref) => {
97
105
  }
98
106
  const elementToFocus = focusableElement || cellRef.current;
99
107
  elementToFocus?.focus();
100
- apiRef.current.columnHeadersContainerElementRef.current.scrollLeft = 0;
108
+ apiRef.current.columnHeadersContainerRef.current.scrollLeft = 0;
101
109
  }
102
110
  }, [InputComponent, apiRef, hasFocus, isEditing, isMenuOpen]);
103
111
  const onKeyDown = React.useCallback(event => {
@@ -163,8 +171,13 @@ const GridHeaderFilterCell = /*#__PURE__*/React.forwardRef((props, ref) => {
163
171
  onMouseDown: publish('headerFilterMouseDown', onMouseDown),
164
172
  onBlur: publish('headerFilterBlur')
165
173
  }), [onMouseDown, onKeyDown, publish]);
174
+ const showLeftBorder = (0, _internals.shouldCellShowLeftBorder)(pinnedPosition, indexInSection);
175
+ const showRightBorder = (0, _internals.shouldCellShowRightBorder)(pinnedPosition, indexInSection, sectionLength, rootProps.showCellVerticalBorder);
166
176
  const ownerState = (0, _extends2.default)({}, rootProps, {
167
- colDef
177
+ pinnedPosition,
178
+ colDef,
179
+ showLeftBorder,
180
+ showRightBorder
168
181
  });
169
182
  const classes = useUtilityClasses(ownerState);
170
183
  const isNoInputOperator = filterOperators?.find(({
@@ -176,12 +189,12 @@ const GridHeaderFilterCell = /*#__PURE__*/React.forwardRef((props, ref) => {
176
189
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", (0, _extends2.default)({
177
190
  className: (0, _clsx.default)(classes.root, headerClassName),
178
191
  ref: handleRef,
179
- style: {
192
+ style: (0, _extends2.default)({
180
193
  height,
181
194
  width,
182
195
  minWidth: width,
183
196
  maxWidth: width
184
- },
197
+ }, styleProp),
185
198
  role: "columnheader",
186
199
  "aria-colindex": colIndex + 1,
187
200
  "aria-label": headerFilterComponent == null ? colDef.headerName ?? colDef.field : undefined
@@ -248,6 +261,7 @@ process.env.NODE_ENV !== "production" ? GridHeaderFilterCell.propTypes = {
248
261
  current: _propTypes.default.object
249
262
  }).isRequired,
250
263
  height: _propTypes.default.number.isRequired,
264
+ indexInSection: _propTypes.default.number.isRequired,
251
265
  InputComponentProps: _propTypes.default.object,
252
266
  item: _propTypes.default.shape({
253
267
  field: _propTypes.default.string.isRequired,
@@ -255,8 +269,11 @@ process.env.NODE_ENV !== "production" ? GridHeaderFilterCell.propTypes = {
255
269
  operator: _propTypes.default.string.isRequired,
256
270
  value: _propTypes.default.any
257
271
  }).isRequired,
272
+ pinnedPosition: _propTypes.default.oneOf(['left', 'right']),
273
+ sectionLength: _propTypes.default.number.isRequired,
258
274
  showClearIcon: _propTypes.default.bool,
259
275
  sortIndex: _propTypes.default.number,
276
+ style: _propTypes.default.object,
260
277
  tabIndex: _propTypes.default.oneOf([-1, 0]).isRequired,
261
278
  width: _propTypes.default.number.isRequired
262
279
  } : void 0;
@@ -113,10 +113,10 @@ DataGridProRaw.propTypes = {
113
113
  */
114
114
  clipboardCopyCellDelimiter: PropTypes.string,
115
115
  /**
116
- * Number of extra columns to be rendered before/after the visible slice.
117
- * @default 3
116
+ * Column region in pixels to render before/after the viewport
117
+ * @default 150
118
118
  */
119
- columnBuffer: PropTypes.number,
119
+ columnBufferPx: PropTypes.number,
120
120
  columnGroupingModel: PropTypes.arrayOf(PropTypes.object),
121
121
  /**
122
122
  * Sets the height in pixel of the column headers in the Data Grid.
@@ -127,11 +127,6 @@ DataGridProRaw.propTypes = {
127
127
  * Set of columns of type [[GridColDef]][].
128
128
  */
129
129
  columns: PropTypes.arrayOf(PropTypes.object).isRequired,
130
- /**
131
- * Number of rows from the `columnBuffer` that can be visible before a new slice is rendered.
132
- * @default 3
133
- */
134
- columnThreshold: PropTypes.number,
135
130
  /**
136
131
  * Set the column visibility model of the Data Grid.
137
132
  * If defined, the Data Grid will ignore the `hide` property in [[GridColDef]].
@@ -248,7 +243,6 @@ DataGridProRaw.propTypes = {
248
243
  * For each feature, if the flag is not explicitly set to `true`, the feature will be fully disabled and any property / method call will not have any effect.
249
244
  */
250
245
  experimentalFeatures: PropTypes.shape({
251
- lazyLoading: PropTypes.bool,
252
246
  warnIfFocusStateIsNotSynced: PropTypes.bool
253
247
  }),
254
248
  /**
@@ -564,6 +558,11 @@ DataGridProRaw.propTypes = {
564
558
  * @param {GridCallbackDetails} details Additional details for this callback.
565
559
  */
566
560
  onColumnWidthChange: PropTypes.func,
561
+ /**
562
+ * Callback fired when the density changes.
563
+ * @param {GridDensity} density New density value.
564
+ */
565
+ onDensityChange: PropTypes.func,
567
566
  /**
568
567
  * Callback fired when the detail panel of a row is opened or closed.
569
568
  * @param {GridRowId[]} ids The ids of the rows which have the detail panel open.
@@ -643,6 +642,11 @@ DataGridProRaw.propTypes = {
643
642
  * @param {GridCallbackDetails} details Additional details for this callback.
644
643
  */
645
644
  onRowClick: PropTypes.func,
645
+ /**
646
+ * Callback fired when the row count has changed.
647
+ * @param {number} count Updated row count.
648
+ */
649
+ onRowCountChange: PropTypes.func,
646
650
  /**
647
651
  * Callback fired when a double click event comes from a row container element.
648
652
  * @param {GridRowParams} params With all properties from [[RowParams]].
@@ -749,10 +753,10 @@ DataGridProRaw.propTypes = {
749
753
  */
750
754
  processRowUpdate: PropTypes.func,
751
755
  /**
752
- * Number of extra rows to be rendered before/after the visible slice.
753
- * @default 3
756
+ * Row region in pixels to render before/after the viewport
757
+ * @default 150
754
758
  */
755
- rowBuffer: PropTypes.number,
759
+ rowBufferPx: PropTypes.number,
756
760
  /**
757
761
  * Set the total number of rows, if it is different from the length of the value `rows` prop.
758
762
  * If some rows have children (for instance in the tree data), this number represents the amount of top level rows.
@@ -781,8 +785,9 @@ DataGridProRaw.propTypes = {
781
785
  rowReordering: PropTypes.bool,
782
786
  /**
783
787
  * Set of rows of type [[GridRowsProp]].
788
+ * @default []
784
789
  */
785
- rows: PropTypes.arrayOf(PropTypes.object).isRequired,
790
+ rows: PropTypes.arrayOf(PropTypes.object),
786
791
  /**
787
792
  * If `false`, the row selection mode is disabled.
788
793
  * @default true
@@ -804,11 +809,6 @@ DataGridProRaw.propTypes = {
804
809
  * @default "margin"
805
810
  */
806
811
  rowSpacingType: PropTypes.oneOf(['border', 'margin']),
807
- /**
808
- * Number of rows from the `rowBuffer` that can be visible before a new slice is rendered.
809
- * @default 3
810
- */
811
- rowThreshold: PropTypes.number,
812
812
  /**
813
813
  * Override the height/width of the Data Grid inner scrollbar.
814
814
  */
@@ -1,8 +1,7 @@
1
- import { useGridInitialization, useGridInitializeState, useGridClipboard, useGridColumnMenu, useGridColumns, columnsStateInitializer, useGridDensity, useGridCsvExport, useGridPrintExport, useGridFilter, filterStateInitializer, useGridFocus, useGridKeyboardNavigation, useGridPagination, paginationStateInitializer, useGridPreferencesPanel, useGridEditing, editingStateInitializer, useGridRows, useGridRowsPreProcessors, rowsStateInitializer, useGridRowsMeta, useGridParamsApi, useGridRowSelection, useGridSorting, sortingStateInitializer, useGridScroll, useGridEvents, dimensionsStateInitializer, useGridDimensions, useGridStatePersistence, useGridRowSelectionPreProcessors, useGridColumnSpanning, columnMenuStateInitializer, densityStateInitializer, focusStateInitializer, preferencePanelStateInitializer, rowsMetaStateInitializer, rowSelectionStateInitializer, useGridColumnGrouping, columnGroupsStateInitializer, headerFilteringStateInitializer, useGridHeaderFiltering, virtualizationStateInitializer, useGridVirtualization } from '@mui/x-data-grid/internals';
1
+ import { useGridInitialization, useGridInitializeState, useGridClipboard, useGridColumnMenu, useGridColumns, columnsStateInitializer, useGridDensity, useGridCsvExport, useGridPrintExport, useGridFilter, filterStateInitializer, useGridFocus, useGridKeyboardNavigation, useGridPagination, paginationStateInitializer, useGridPreferencesPanel, useGridEditing, editingStateInitializer, useGridRows, useGridRowsPreProcessors, rowsStateInitializer, useGridRowsMeta, useGridParamsApi, useGridRowSelection, useGridSorting, sortingStateInitializer, useGridScroll, useGridEvents, dimensionsStateInitializer, useGridDimensions, useGridStatePersistence, useGridRowSelectionPreProcessors, useGridColumnSpanning, columnMenuStateInitializer, densityStateInitializer, focusStateInitializer, preferencePanelStateInitializer, rowsMetaStateInitializer, rowSelectionStateInitializer, useGridColumnGrouping, columnGroupsStateInitializer, headerFilteringStateInitializer, useGridHeaderFiltering, virtualizationStateInitializer, useGridVirtualization, useGridColumnResize, columnResizeStateInitializer } from '@mui/x-data-grid/internals';
2
2
  // Pro-only features
3
3
  import { useGridInfiniteLoader } from '../hooks/features/infiniteLoader/useGridInfiniteLoader';
4
4
  import { useGridColumnReorder, columnReorderStateInitializer } from '../hooks/features/columnReorder/useGridColumnReorder';
5
- import { useGridColumnResize, columnResizeStateInitializer } from '../hooks/features/columnResize/useGridColumnResize';
6
5
  import { useGridTreeData } from '../hooks/features/treeData/useGridTreeData';
7
6
  import { useGridTreeDataPreProcessors } from '../hooks/features/treeData/useGridTreeDataPreProcessors';
8
7
  import { useGridColumnPinning, columnPinningStateInitializer } from '../hooks/features/columnPinning/useGridColumnPinning';