@mui/x-data-grid-pro 7.0.0-beta.6 → 7.0.0-beta.7

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 (77) hide show
  1. package/CHANGELOG.md +117 -1
  2. package/DataGridPro/DataGridPro.js +5 -1
  3. package/DataGridPro/useDataGridProComponent.js +2 -3
  4. package/components/GridColumnHeaders.d.ts +1 -2
  5. package/components/GridColumnHeaders.js +7 -164
  6. package/components/headerFiltering/GridHeaderFilterCell.d.ts +8 -1
  7. package/components/headerFiltering/GridHeaderFilterCell.js +27 -9
  8. package/esm/DataGridPro/DataGridPro.js +5 -1
  9. package/esm/DataGridPro/useDataGridProComponent.js +1 -2
  10. package/esm/components/GridColumnHeaders.js +9 -166
  11. package/esm/components/headerFiltering/GridHeaderFilterCell.js +27 -9
  12. package/esm/hooks/features/columnHeaders/useGridColumnHeaders.js +46 -12
  13. package/esm/hooks/features/columnPinning/useGridColumnPinningPreProcessors.js +2 -0
  14. package/esm/hooks/features/index.js +0 -1
  15. package/esm/hooks/features/infiniteLoader/useGridInfiniteLoader.js +2 -2
  16. package/esm/hooks/features/lazyLoader/useGridLazyLoader.js +1 -20
  17. package/esm/hooks/features/lazyLoader/useGridLazyLoaderPreProcessors.js +2 -6
  18. package/esm/internals/index.js +0 -1
  19. package/esm/utils/releaseInfo.js +1 -1
  20. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +3 -5
  21. package/hooks/features/columnHeaders/useGridColumnHeaders.js +44 -11
  22. package/hooks/features/columnPinning/useGridColumnPinningPreProcessors.js +2 -0
  23. package/hooks/features/index.d.ts +0 -1
  24. package/hooks/features/index.js +0 -11
  25. package/hooks/features/infiniteLoader/useGridInfiniteLoader.js +2 -2
  26. package/hooks/features/lazyLoader/useGridLazyLoader.js +1 -19
  27. package/hooks/features/lazyLoader/useGridLazyLoaderPreProcessors.js +2 -5
  28. package/index.js +1 -1
  29. package/internals/index.d.ts +0 -1
  30. package/internals/index.js +0 -15
  31. package/models/dataGridProProps.d.ts +0 -33
  32. package/models/gridApiPro.d.ts +4 -3
  33. package/models/gridStatePro.d.ts +1 -2
  34. package/modern/DataGridPro/DataGridPro.js +5 -1
  35. package/modern/DataGridPro/useDataGridProComponent.js +1 -2
  36. package/modern/components/GridColumnHeaders.js +9 -166
  37. package/modern/components/headerFiltering/GridHeaderFilterCell.js +27 -9
  38. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +46 -12
  39. package/modern/hooks/features/columnPinning/useGridColumnPinningPreProcessors.js +2 -0
  40. package/modern/hooks/features/index.js +0 -1
  41. package/modern/hooks/features/infiniteLoader/useGridInfiniteLoader.js +2 -2
  42. package/modern/hooks/features/lazyLoader/useGridLazyLoader.js +1 -19
  43. package/modern/hooks/features/lazyLoader/useGridLazyLoaderPreProcessors.js +2 -5
  44. package/modern/index.js +1 -1
  45. package/modern/internals/index.js +0 -1
  46. package/modern/utils/releaseInfo.js +1 -1
  47. package/package.json +2 -2
  48. package/typeOverloads/modules.d.ts +3 -3
  49. package/utils/releaseInfo.js +1 -1
  50. package/components/GridScrollArea.d.ts +0 -10
  51. package/components/GridScrollArea.js +0 -145
  52. package/esm/components/GridScrollArea.js +0 -137
  53. package/esm/hooks/features/columnResize/columnResizeSelector.js +0 -3
  54. package/esm/hooks/features/columnResize/columnResizeState.js +0 -1
  55. package/esm/hooks/features/columnResize/gridColumnResizeApi.js +0 -10
  56. package/esm/hooks/features/columnResize/index.js +0 -3
  57. package/esm/hooks/features/columnResize/useGridColumnResize.js +0 -547
  58. package/esm/utils/domUtils.js +0 -109
  59. package/hooks/features/columnResize/columnResizeSelector.d.ts +0 -3
  60. package/hooks/features/columnResize/columnResizeSelector.js +0 -10
  61. package/hooks/features/columnResize/columnResizeState.d.ts +0 -3
  62. package/hooks/features/columnResize/columnResizeState.js +0 -5
  63. package/hooks/features/columnResize/gridColumnResizeApi.d.ts +0 -44
  64. package/hooks/features/columnResize/gridColumnResizeApi.js +0 -16
  65. package/hooks/features/columnResize/index.d.ts +0 -3
  66. package/hooks/features/columnResize/index.js +0 -38
  67. package/hooks/features/columnResize/useGridColumnResize.d.ts +0 -10
  68. package/hooks/features/columnResize/useGridColumnResize.js +0 -548
  69. package/modern/components/GridScrollArea.js +0 -137
  70. package/modern/hooks/features/columnResize/columnResizeSelector.js +0 -3
  71. package/modern/hooks/features/columnResize/columnResizeState.js +0 -1
  72. package/modern/hooks/features/columnResize/gridColumnResizeApi.js +0 -10
  73. package/modern/hooks/features/columnResize/index.js +0 -3
  74. package/modern/hooks/features/columnResize/useGridColumnResize.js +0 -537
  75. package/modern/utils/domUtils.js +0 -107
  76. package/utils/domUtils.d.ts +0 -11
  77. package/utils/domUtils.js +0 -121
package/CHANGELOG.md CHANGED
@@ -3,6 +3,102 @@
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.0.0-beta.7
7
+
8
+ _Mar 14, 2024_
9
+
10
+ We'd like to offer a big thanks to the 11 contributors who made this release possible. Here are some highlights ✨:
11
+
12
+ - 🦥 The Lazy loading feature is now stable and the `lazyLoading` feature flag was removed from the `experimentalFeatures` prop.
13
+ - 🌍 Improve Japanese (ja-JP) locale for the Data Grid
14
+ - 🐞 Bugfixes
15
+ - 📚 Documentation improvements
16
+
17
+ ### Data Grid
18
+
19
+ #### Breaking changes
20
+
21
+ - The `columnHeader--showColumnBorder` class was replaced by `columnHeader--withLeftBorder` and `columnHeader--withRightBorder`.
22
+ - The `columnHeadersInner`, `columnHeadersInner--scrollable`, and `columnHeaderDropZone` classes were removed since the inner wrapper was removed in our effort to simplify the DOM structure and improve accessibility.
23
+ - The `pinnedColumnHeaders`, `pinnedColumnHeaders--left`, and `pinnedColumnHeaders--right` classes were removed along with the element they were applied to.
24
+ The pinned column headers now use `position: 'sticky'` and are rendered in the same row element as the regular column headers.
25
+
26
+ #### `@mui/x-data-grid@7.0.0-beta.7`
27
+
28
+ - [DataGrid] Fix focus visible style on scrollbar (#12402) @oliviertassinari
29
+ - [DataGrid] Fix the issue where pressing the Delete key resets various cell values to an empty string. (#12216) @sooster910
30
+ - [DataGrid] Make `rowCount` part of the state (#12381) @MBilalShafi
31
+ - [DataGrid] Make column resizing and autosizing available in Community plan (#12420) @cherniavskii
32
+ - [DataGrid] Remove `baseSwitch` slot (#12439) @romgrk
33
+ - [l10n] Improve Japanese (ja-JP) locale (#12398) @makoto14
34
+
35
+ #### `@mui/x-data-grid-pro@7.0.0-beta.7` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
36
+
37
+ Same changes as in `@mui/x-data-grid@7.0.0-beta.7`, plus:
38
+
39
+ - [DataGridPro] Add `inputRef` to the props passed to `colDef.renderHeaderFilter` (#12328) @vovarudomanenko
40
+ - [DataGridPro] Fix filler rendered for no reason when there are pinned columns (#12440) @cherniavskii
41
+ - [DataGridPro] Make lazy loading feature stable (#12421) @cherniavskii
42
+ - [DataGridPro] Render pinned and non-pinned column headers in one row (#12376) @cherniavskii
43
+
44
+ #### `@mui/x-data-grid-premium@7.0.0-beta.7` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
45
+
46
+ Same changes as in `@mui/x-data-grid-pro@7.0.0-beta.7`, plus:
47
+
48
+ - [DataGridPremium] Fix auto-scroll not working when selecting cell range (#12267) @cherniavskii
49
+
50
+ ### Date and Time Pickers
51
+
52
+ #### `@mui/x-date-pickers@7.0.0-beta.7`
53
+
54
+ - [fields] Fix `tabIndex` on accessible field DOM structure (#12311) @flaviendelangle
55
+ - [fields] Fix items alignment on multi input range fields (#12312) @flaviendelangle
56
+ - [pickers] Improve the customization of the range picker calendar header (#11988) @flaviendelangle
57
+ - [pickers] Keep the existing time when looking for closest enabled date (#12377) @LukasTy
58
+
59
+ #### `@mui/x-date-pickers-pro@7.0.0-beta.7` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
60
+
61
+ Same changes as in `@mui/x-date-pickers@7.0.0-beta.7`.
62
+
63
+ ### Charts
64
+
65
+ #### `@mui/x-charts@7.0.0-beta.7`
66
+
67
+ - [charts] Fix axis highlight when axis is reversed (#12407) @alexfauquette
68
+
69
+ ### Tree View
70
+
71
+ #### Breaking changes
72
+
73
+ The `onNodeFocus` callback has been renamed to `onItemFocus` for consistency:
74
+
75
+ ```diff
76
+ <SimpleTreeView
77
+ - onNodeFocus={onNodeFocus}
78
+ + onItemFocus={onItemFocus}
79
+ />
80
+ ```
81
+
82
+ #### `@mui/x-tree-view@7.0.0-beta.7`
83
+
84
+ - [TreeView] Clean the usage of the term "item" and "node" in API introduced during v7 (#12368) @noraleonte
85
+ - [TreeView] Introduce a new `TreeItem2` component and a new `useTreeItem2` hook (#11721) @flaviendelangle
86
+ - [TreeView] Rename `onNodeFocus` to `onItemFocus` (#12419) @noraleonte
87
+
88
+ ### Docs
89
+
90
+ - [docs] Add `legacy` bundle drop mention in migration pages (#12424) @LukasTy
91
+ - [docs] Add missing luxon `Info` import (#12427) @LukasTy
92
+ - [docs] Improve slots definitions for charts (#12408) @alexfauquette
93
+ - [docs] Polish What's new in MUI X blog titles (#12309) @oliviertassinari
94
+ - [docs] Replace `rel="noreferrer"` by `rel="noopener"` @oliviertassinari
95
+ - [docs] Update `date-fns` `weekStarsOn` overriding example (#12416) @LukasTy
96
+
97
+ ### Core
98
+
99
+ - [core] Fix CI (#12414) @flaviendelangle
100
+ - [core] Fix PR deploy link for Tree View doc pages (#12411) @flaviendelangle
101
+
6
102
  ## 7.0.0-beta.6
7
103
 
8
104
  _Mar 8, 2024_
@@ -1731,7 +1827,7 @@ Same changes as in `@mui/x-data-grid-pro@7.0.0-alpha.3`, plus:
1731
1827
  The Firefox browser currently does not support this behavior because the [getWeekInfo](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/getWeekInfo) API is not yet implemented.
1732
1828
 
1733
1829
  ```ts
1734
- import { Settings } from 'luxon';
1830
+ import { Settings, Info } from 'luxon';
1735
1831
 
1736
1832
  Settings.defaultWeekSettings = {
1737
1833
  firstDay: 1,
@@ -2521,6 +2617,26 @@ Here is an example of the renaming for the `<ChartsTooltip />` component.
2521
2617
  - [core] Update release instructions as per v7 configuration (#10962) @MBilalShafi
2522
2618
  - [license] Correctly throw errors (#10924) @oliviertassinari
2523
2619
 
2620
+ ## 6.19.7
2621
+
2622
+ _Mar 14, 2024_
2623
+
2624
+ We'd like to offer a big thanks to @LukasTy who made this release possible.
2625
+
2626
+ ### Date Pickers
2627
+
2628
+ #### `@mui/x-date-pickers@6.19.7`
2629
+
2630
+ - [pickers] Keep the existing time when looking for closest enabled date (#12410) @LukasTy
2631
+
2632
+ #### `@mui/x-date-pickers-pro@6.19.7` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
2633
+
2634
+ Same changes as in `@mui/x-date-pickers@6.19.7`.
2635
+
2636
+ ### Docs
2637
+
2638
+ - [docs] Add Pickers custom start of week section (#12425) @LukasTy
2639
+
2524
2640
  ## 6.19.6
2525
2641
 
2526
2642
  _Mar 1, 2024_
@@ -255,7 +255,6 @@ DataGridProRaw.propTypes = {
255
255
  * 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.
256
256
  */
257
257
  experimentalFeatures: _propTypes.default.shape({
258
- lazyLoading: _propTypes.default.bool,
259
258
  warnIfFocusStateIsNotSynced: _propTypes.default.bool
260
259
  }),
261
260
  /**
@@ -650,6 +649,11 @@ DataGridProRaw.propTypes = {
650
649
  * @param {GridCallbackDetails} details Additional details for this callback.
651
650
  */
652
651
  onRowClick: _propTypes.default.func,
652
+ /**
653
+ * Callback fired when the row count has changed.
654
+ * @param {number} count Updated row count.
655
+ */
656
+ onRowCountChange: _propTypes.default.func,
653
657
  /**
654
658
  * Callback fired when a double click event comes from a row container element.
655
659
  * @param {GridRowParams} params With all properties from [[RowParams]].
@@ -7,7 +7,6 @@ exports.useDataGridProComponent = void 0;
7
7
  var _internals = require("@mui/x-data-grid/internals");
8
8
  var _useGridInfiniteLoader = require("../hooks/features/infiniteLoader/useGridInfiniteLoader");
9
9
  var _useGridColumnReorder = require("../hooks/features/columnReorder/useGridColumnReorder");
10
- var _useGridColumnResize = require("../hooks/features/columnResize/useGridColumnResize");
11
10
  var _useGridTreeData = require("../hooks/features/treeData/useGridTreeData");
12
11
  var _useGridTreeDataPreProcessors = require("../hooks/features/treeData/useGridTreeDataPreProcessors");
13
12
  var _useGridColumnPinning = require("../hooks/features/columnPinning/useGridColumnPinning");
@@ -57,7 +56,7 @@ const useDataGridProComponent = (inputApiRef, props) => {
57
56
  (0, _internals.useGridInitializeState)(_internals.filterStateInitializer, apiRef, props);
58
57
  (0, _internals.useGridInitializeState)(_internals.densityStateInitializer, apiRef, props);
59
58
  (0, _internals.useGridInitializeState)(_useGridColumnReorder.columnReorderStateInitializer, apiRef, props);
60
- (0, _internals.useGridInitializeState)(_useGridColumnResize.columnResizeStateInitializer, apiRef, props);
59
+ (0, _internals.useGridInitializeState)(_internals.columnResizeStateInitializer, apiRef, props);
61
60
  (0, _internals.useGridInitializeState)(_internals.paginationStateInitializer, apiRef, props);
62
61
  (0, _internals.useGridInitializeState)(_internals.rowsMetaStateInitializer, apiRef, props);
63
62
  (0, _internals.useGridInitializeState)(_internals.columnMenuStateInitializer, apiRef, props);
@@ -82,7 +81,7 @@ const useDataGridProComponent = (inputApiRef, props) => {
82
81
  (0, _internals.useGridSorting)(apiRef, props);
83
82
  (0, _internals.useGridDensity)(apiRef, props);
84
83
  (0, _useGridColumnReorder.useGridColumnReorder)(apiRef, props);
85
- (0, _useGridColumnResize.useGridColumnResize)(apiRef, props);
84
+ (0, _internals.useGridColumnResize)(apiRef, props);
86
85
  (0, _internals.useGridPagination)(apiRef, props);
87
86
  (0, _internals.useGridRowsMeta)(apiRef, props);
88
87
  (0, _useGridRowReorder.useGridRowReorder)(apiRef, props);
@@ -1,7 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { UseGridColumnHeadersProps } from '@mui/x-data-grid/internals';
3
- interface DataGridProColumnHeadersProps extends React.HTMLAttributes<HTMLDivElement>, Omit<UseGridColumnHeadersProps, 'innerRef'> {
4
- innerRef?: React.Ref<HTMLDivElement>;
3
+ interface DataGridProColumnHeadersProps extends React.HTMLAttributes<HTMLDivElement>, UseGridColumnHeadersProps {
5
4
  }
6
5
  declare const GridColumnHeaders: React.ForwardRefExoticComponent<DataGridProColumnHeadersProps & React.RefAttributes<HTMLDivElement>>;
7
6
  export { GridColumnHeaders };
@@ -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 };
@@ -13,21 +13,24 @@ var _clsx = _interopRequireDefault(require("clsx"));
13
13
  var _utils = require("@mui/utils");
14
14
  var _xDataGrid = require("@mui/x-data-grid");
15
15
  var _internals = require("@mui/x-data-grid/internals");
16
+ var _cellBorderUtils = require("@mui/x-data-grid/utils/cellBorderUtils");
16
17
  var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
17
18
  var _GridHeaderFilterMenuContainer = require("./GridHeaderFilterMenuContainer");
18
19
  var _GridHeaderFilterClearButton = require("./GridHeaderFilterClearButton");
19
20
  var _jsxRuntime = require("react/jsx-runtime");
20
- const _excluded = ["colIndex", "height", "hasFocus", "width", "headerClassName", "colDef", "item", "headerFilterMenuRef", "InputComponentProps", "showClearIcon"];
21
+ const _excluded = ["colIndex", "height", "hasFocus", "width", "headerClassName", "colDef", "item", "headerFilterMenuRef", "InputComponentProps", "showClearIcon", "pinnedPosition", "style", "indexInSection", "sectionLength"];
21
22
  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
23
  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
24
  const useUtilityClasses = ownerState => {
24
25
  const {
25
26
  colDef,
26
27
  classes,
27
- showColumnVerticalBorder
28
+ showRightBorder,
29
+ showLeftBorder,
30
+ pinnedPosition
28
31
  } = ownerState;
29
32
  const slots = {
30
- root: ['columnHeader', colDef.headerAlign === 'left' && 'columnHeader--alignLeft', colDef.headerAlign === 'center' && 'columnHeader--alignCenter', colDef.headerAlign === 'right' && 'columnHeader--alignRight', 'withBorderColor', showColumnVerticalBorder && 'columnHeader--withRightBorder']
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']
31
34
  };
32
35
  return (0, _utils.unstable_composeClasses)(slots, _xDataGrid.getDataGridUtilityClass, classes);
33
36
  };
@@ -47,7 +50,11 @@ const GridHeaderFilterCell = /*#__PURE__*/React.forwardRef((props, ref) => {
47
50
  item,
48
51
  headerFilterMenuRef,
49
52
  InputComponentProps,
50
- showClearIcon = true
53
+ showClearIcon = true,
54
+ pinnedPosition,
55
+ style: styleProp,
56
+ indexInSection,
57
+ sectionLength
51
58
  } = props,
52
59
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
53
60
  const apiRef = (0, _internals.useGridPrivateApiContext)();
@@ -87,7 +94,9 @@ const GridHeaderFilterCell = /*#__PURE__*/React.forwardRef((props, ref) => {
87
94
  }, [apiRef, item]);
88
95
  let headerFilterComponent;
89
96
  if (colDef.renderHeaderFilter) {
90
- headerFilterComponent = colDef.renderHeaderFilter(props);
97
+ headerFilterComponent = colDef.renderHeaderFilter((0, _extends2.default)({}, props, {
98
+ inputRef
99
+ }));
91
100
  }
92
101
  React.useLayoutEffect(() => {
93
102
  if (hasFocus && !isMenuOpen) {
@@ -97,7 +106,7 @@ const GridHeaderFilterCell = /*#__PURE__*/React.forwardRef((props, ref) => {
97
106
  }
98
107
  const elementToFocus = focusableElement || cellRef.current;
99
108
  elementToFocus?.focus();
100
- apiRef.current.columnHeadersContainerElementRef.current.scrollLeft = 0;
109
+ apiRef.current.columnHeadersContainerRef.current.scrollLeft = 0;
101
110
  }
102
111
  }, [InputComponent, apiRef, hasFocus, isEditing, isMenuOpen]);
103
112
  const onKeyDown = React.useCallback(event => {
@@ -163,8 +172,13 @@ const GridHeaderFilterCell = /*#__PURE__*/React.forwardRef((props, ref) => {
163
172
  onMouseDown: publish('headerFilterMouseDown', onMouseDown),
164
173
  onBlur: publish('headerFilterBlur')
165
174
  }), [onMouseDown, onKeyDown, publish]);
175
+ const showLeftBorder = (0, _cellBorderUtils.shouldCellShowLeftBorder)(pinnedPosition, indexInSection);
176
+ const showRightBorder = (0, _cellBorderUtils.shouldCellShowRightBorder)(pinnedPosition, indexInSection, sectionLength, rootProps.showCellVerticalBorder);
166
177
  const ownerState = (0, _extends2.default)({}, rootProps, {
167
- colDef
178
+ pinnedPosition,
179
+ colDef,
180
+ showLeftBorder,
181
+ showRightBorder
168
182
  });
169
183
  const classes = useUtilityClasses(ownerState);
170
184
  const isNoInputOperator = filterOperators?.find(({
@@ -176,12 +190,12 @@ const GridHeaderFilterCell = /*#__PURE__*/React.forwardRef((props, ref) => {
176
190
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", (0, _extends2.default)({
177
191
  className: (0, _clsx.default)(classes.root, headerClassName),
178
192
  ref: handleRef,
179
- style: {
193
+ style: (0, _extends2.default)({
180
194
  height,
181
195
  width,
182
196
  minWidth: width,
183
197
  maxWidth: width
184
- },
198
+ }, styleProp),
185
199
  role: "columnheader",
186
200
  "aria-colindex": colIndex + 1,
187
201
  "aria-label": headerFilterComponent == null ? colDef.headerName ?? colDef.field : undefined
@@ -248,6 +262,7 @@ process.env.NODE_ENV !== "production" ? GridHeaderFilterCell.propTypes = {
248
262
  current: _propTypes.default.object
249
263
  }).isRequired,
250
264
  height: _propTypes.default.number.isRequired,
265
+ indexInSection: _propTypes.default.number.isRequired,
251
266
  InputComponentProps: _propTypes.default.object,
252
267
  item: _propTypes.default.shape({
253
268
  field: _propTypes.default.string.isRequired,
@@ -255,8 +270,11 @@ process.env.NODE_ENV !== "production" ? GridHeaderFilterCell.propTypes = {
255
270
  operator: _propTypes.default.string.isRequired,
256
271
  value: _propTypes.default.any
257
272
  }).isRequired,
273
+ pinnedPosition: _propTypes.default.oneOf(['left', 'right']),
274
+ sectionLength: _propTypes.default.number.isRequired,
258
275
  showClearIcon: _propTypes.default.bool,
259
276
  sortIndex: _propTypes.default.number,
277
+ style: _propTypes.default.object,
260
278
  tabIndex: _propTypes.default.oneOf([-1, 0]).isRequired,
261
279
  width: _propTypes.default.number.isRequired
262
280
  } : void 0;
@@ -248,7 +248,6 @@ DataGridProRaw.propTypes = {
248
248
  * 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
249
  */
250
250
  experimentalFeatures: PropTypes.shape({
251
- lazyLoading: PropTypes.bool,
252
251
  warnIfFocusStateIsNotSynced: PropTypes.bool
253
252
  }),
254
253
  /**
@@ -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]].
@@ -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';