@mui/x-data-grid 8.12.0 → 8.13.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.
- package/CHANGELOG.md +145 -0
- package/DataGrid/DataGrid.js +2 -1
- package/DataGrid/useDataGridComponent.js +2 -2
- package/components/GridLoadingOverlay.d.ts +1 -1
- package/components/GridRow.js +3 -7
- package/components/GridScrollShadows.d.ts +6 -0
- package/components/GridScrollShadows.js +108 -0
- package/components/GridScrollbarFillerCell.d.ts +0 -6
- package/components/GridScrollbarFillerCell.js +1 -7
- package/components/GridSkeletonLoadingOverlay.js +3 -10
- package/components/base/GridOverlays.d.ts +1 -3
- package/components/columnHeaders/GridColumnHeaderItem.d.ts +0 -1
- package/components/columnHeaders/GridColumnHeaderItem.js +1 -3
- package/components/containers/GridRootStyles.js +6 -21
- package/components/toolbarV8/GridToolbar.js +12 -10
- package/components/virtualization/GridMainContainer.d.ts +1 -2
- package/components/virtualization/GridVirtualScrollbar.d.ts +1 -0
- package/components/virtualization/GridVirtualScrollbar.js +21 -25
- package/components/virtualization/GridVirtualScroller.js +31 -12
- package/components/virtualization/GridVirtualScrollerFiller.js +2 -4
- package/constants/gridClasses.d.ts +0 -20
- package/constants/gridClasses.js +2 -2
- package/esm/DataGrid/DataGrid.js +2 -1
- package/esm/DataGrid/useDataGridComponent.js +2 -2
- package/esm/components/GridLoadingOverlay.d.ts +1 -1
- package/esm/components/GridRow.js +3 -7
- package/esm/components/GridScrollShadows.d.ts +6 -0
- package/esm/components/GridScrollShadows.js +103 -0
- package/esm/components/GridScrollbarFillerCell.d.ts +0 -6
- package/esm/components/GridScrollbarFillerCell.js +1 -7
- package/esm/components/GridSkeletonLoadingOverlay.js +3 -10
- package/esm/components/base/GridOverlays.d.ts +1 -3
- package/esm/components/columnHeaders/GridColumnHeaderItem.d.ts +0 -1
- package/esm/components/columnHeaders/GridColumnHeaderItem.js +1 -3
- package/esm/components/containers/GridRootStyles.js +6 -21
- package/esm/components/toolbarV8/GridToolbar.js +12 -10
- package/esm/components/virtualization/GridMainContainer.d.ts +1 -2
- package/esm/components/virtualization/GridVirtualScrollbar.d.ts +1 -0
- package/esm/components/virtualization/GridVirtualScrollbar.js +20 -24
- package/esm/components/virtualization/GridVirtualScroller.js +32 -13
- package/esm/components/virtualization/GridVirtualScrollerFiller.js +2 -4
- package/esm/constants/gridClasses.d.ts +0 -20
- package/esm/constants/gridClasses.js +2 -2
- package/esm/hooks/core/useGridVirtualizer.js +4 -0
- package/esm/hooks/features/columnHeaders/useGridColumnHeaders.js +5 -10
- package/esm/hooks/features/columnResize/useGridColumnResize.js +16 -0
- package/esm/hooks/features/dataSource/useGridDataSourceBase.js +6 -0
- package/esm/hooks/features/index.d.ts +2 -1
- package/esm/hooks/features/index.js +2 -1
- package/esm/hooks/features/overlays/gridOverlaysInterfaces.d.ts +3 -0
- package/esm/hooks/features/overlays/gridOverlaysInterfaces.js +1 -0
- package/esm/hooks/features/overlays/index.d.ts +1 -0
- package/esm/hooks/features/overlays/index.js +1 -0
- package/esm/hooks/features/overlays/useGridOverlays.d.ts +6 -8
- package/esm/hooks/features/overlays/useGridOverlays.js +3 -27
- package/esm/hooks/features/rows/useGridParamsApi.d.ts +2 -1
- package/esm/hooks/features/rows/useGridParamsApi.js +5 -24
- package/esm/hooks/features/rows/useGridParamsOverridableMethods.d.ts +7 -0
- package/esm/hooks/features/rows/useGridParamsOverridableMethods.js +28 -0
- package/esm/hooks/features/rows/useGridRowSpanning.js +4 -1
- package/esm/hooks/features/rows/useGridRows.js +41 -1
- package/esm/hooks/features/sorting/gridSortingUtils.d.ts +1 -3
- package/esm/hooks/features/sorting/gridSortingUtils.js +4 -6
- package/esm/hooks/features/sorting/useGridSorting.d.ts +1 -2
- package/esm/hooks/features/sorting/useGridSorting.js +3 -4
- package/esm/index.js +1 -1
- package/esm/internals/index.d.ts +1 -0
- package/esm/internals/index.js +1 -0
- package/esm/material/variables.js +2 -2
- package/esm/models/api/gridRowApi.d.ts +10 -0
- package/esm/models/configuration/gridAggregationConfiguration.d.ts +0 -6
- package/esm/models/configuration/gridConfiguration.d.ts +2 -1
- package/esm/models/configuration/gridParamsConfiguration.d.ts +12 -0
- package/esm/models/configuration/gridParamsConfiguration.js +1 -0
- package/esm/models/props/DataGridProps.d.ts +10 -0
- package/esm/utils/cellBorderUtils.d.ts +3 -2
- package/esm/utils/cellBorderUtils.js +7 -4
- package/hooks/core/useGridVirtualizer.js +4 -0
- package/hooks/features/columnHeaders/useGridColumnHeaders.js +5 -10
- package/hooks/features/columnResize/useGridColumnResize.js +16 -0
- package/hooks/features/dataSource/useGridDataSourceBase.js +6 -0
- package/hooks/features/index.d.ts +2 -1
- package/hooks/features/index.js +11 -0
- package/hooks/features/overlays/gridOverlaysInterfaces.d.ts +3 -0
- package/hooks/features/overlays/gridOverlaysInterfaces.js +5 -0
- package/hooks/features/overlays/index.d.ts +1 -0
- package/hooks/features/overlays/index.js +5 -0
- package/hooks/features/overlays/useGridOverlays.d.ts +6 -8
- package/hooks/features/overlays/useGridOverlays.js +3 -28
- package/hooks/features/rows/useGridParamsApi.d.ts +2 -1
- package/hooks/features/rows/useGridParamsApi.js +5 -24
- package/hooks/features/rows/useGridParamsOverridableMethods.d.ts +7 -0
- package/hooks/features/rows/useGridParamsOverridableMethods.js +36 -0
- package/hooks/features/rows/useGridRowSpanning.js +4 -1
- package/hooks/features/rows/useGridRows.js +41 -1
- package/hooks/features/sorting/gridSortingUtils.d.ts +1 -3
- package/hooks/features/sorting/gridSortingUtils.js +4 -6
- package/hooks/features/sorting/useGridSorting.d.ts +1 -2
- package/hooks/features/sorting/useGridSorting.js +3 -4
- package/index.js +1 -1
- package/internals/index.d.ts +1 -0
- package/internals/index.js +8 -0
- package/material/variables.js +2 -2
- package/models/api/gridRowApi.d.ts +10 -0
- package/models/configuration/gridAggregationConfiguration.d.ts +0 -6
- package/models/configuration/gridConfiguration.d.ts +2 -1
- package/models/configuration/gridParamsConfiguration.d.ts +12 -0
- package/models/configuration/gridParamsConfiguration.js +5 -0
- package/models/props/DataGridProps.d.ts +10 -0
- package/package.json +3 -3
- package/utils/cellBorderUtils.d.ts +3 -2
- package/utils/cellBorderUtils.js +7 -4
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,151 @@
|
|
|
5
5
|
All notable changes to this project will be documented in this file.
|
|
6
6
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
7
7
|
|
|
8
|
+
## 8.13.0
|
|
9
|
+
|
|
10
|
+
_Oct 1, 2025_
|
|
11
|
+
|
|
12
|
+
We'd like to extend a big thank you to the 14 contributors who made this release possible. Here are some highlights ✨:
|
|
13
|
+
|
|
14
|
+
- 📊 The chart zoom now supports the `tapAndDrag` gesture. Zoom in/out by tapping twice and dragging vertically.
|
|
15
|
+
- 🔎 Charts now allow [fine-grained control for zoom interactions](https://mui.com/x/react-charts/zoom-and-pan/#zoom-interactions-configuration).
|
|
16
|
+
```jsx
|
|
17
|
+
<BarChartPro
|
|
18
|
+
zoomInteractionConfig={{
|
|
19
|
+
// Only zoom when Control key is pressed
|
|
20
|
+
zoom: [{ type: 'wheel', keys: ['Control'] }],
|
|
21
|
+
// Only pan when Shift key is pressed
|
|
22
|
+
pan: [{ type: 'drag', keys: ['Shift'] }],
|
|
23
|
+
}}
|
|
24
|
+
/>
|
|
25
|
+
```
|
|
26
|
+
- ➡️ Data Grid grouping rows now persist their expansion state when the rows are updated.
|
|
27
|
+
- 📜 Updated Data Grid vertical scrollbar to include pinned rows and aggregation sections.
|
|
28
|
+
- 📌 Improved the appearance of [pinned columns](https://mui.com/x/react-data-grid/column-pinning/#pinned-columns-appearance) and [pinned rows](https://mui.com/x/react-data-grid/row-pinning/#pinned-rows-appearance) sections in the Data Grid.
|
|
29
|
+
- 🚀 Tree View now fetches the children of expanded items on mount when using lazy loading.
|
|
30
|
+
- 🐞 Bugfixes
|
|
31
|
+
- 📚 Documentation improvements
|
|
32
|
+
|
|
33
|
+
Special thanks go out to the community members for their valuable contributions:
|
|
34
|
+
@sai6855
|
|
35
|
+
|
|
36
|
+
The following are all team members who have contributed to this release:
|
|
37
|
+
@alexfauquette, @arminmeh, @bernardobelchior, @flaviendelangle, @hasdfa, @Janpot, @JCQuintas, @KenanYusuf, @mapache-salvaje, @MBilalShafi, @mnajdova, @rita-codes, @siriwatknp
|
|
38
|
+
|
|
39
|
+
### Data Grid
|
|
40
|
+
|
|
41
|
+
#### `@mui/x-data-grid@8.13.0`
|
|
42
|
+
|
|
43
|
+
- [DataGrid] Add scroll shadows and fix scrollbar overlap (#16476) @KenanYusuf
|
|
44
|
+
- [DataGrid] Fix row spanning stale state issue (#19733) @MBilalShafi
|
|
45
|
+
- [DataGrid] Fix toolbar `slotProps` not being applied (#19769) @sai6855
|
|
46
|
+
- [DataGrid] Skip calling `fetchRows()` when strategy is not initialized (#19728) @MBilalShafi
|
|
47
|
+
|
|
48
|
+
#### `@mui/x-data-grid-pro@8.13.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
49
|
+
|
|
50
|
+
Same changes as in `@mui/x-data-grid@8.13.0`, plus:
|
|
51
|
+
|
|
52
|
+
- [DataGridPro] Retain expansion state on rows update (#19697) @MBilalShafi
|
|
53
|
+
|
|
54
|
+
#### `@mui/x-data-grid-premium@8.13.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
55
|
+
|
|
56
|
+
Same changes as in `@mui/x-data-grid-pro@8.13.0`, plus:
|
|
57
|
+
|
|
58
|
+
- [DataGridPremium] Add `metadata.referenceId` to AI assistant prompt resolver (#19695) @hasdfa
|
|
59
|
+
- [DataGridPremium] Fix aggregation value retrieval (#19724) @arminmeh
|
|
60
|
+
- [DataGridPremium] Get correct active chart id while rebuilding data (#19720) @arminmeh
|
|
61
|
+
|
|
62
|
+
### Date and Time Pickers
|
|
63
|
+
|
|
64
|
+
#### `@mui/x-date-pickers@8.12.0`
|
|
65
|
+
|
|
66
|
+
Internal changes.
|
|
67
|
+
|
|
68
|
+
#### `@mui/x-date-pickers-pro@8.12.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
69
|
+
|
|
70
|
+
Same changes as in `@mui/x-date-pickers@8.12.0`.
|
|
71
|
+
|
|
72
|
+
### Charts
|
|
73
|
+
|
|
74
|
+
#### `@mui/x-charts@8.13.0`
|
|
75
|
+
|
|
76
|
+
- [charts] Add `tapAndDrag` zoom gesture (#19727) @JCQuintas
|
|
77
|
+
- [charts] Add arc focus indicator that follows the arc form (#19696) @mnajdova
|
|
78
|
+
- [charts] Fix outline color (#19752) @alexfauquette
|
|
79
|
+
- [charts] Improve tooltip doc (#19731) @JCQuintas
|
|
80
|
+
- [charts] Make axis highlight reflect the keyboard interaction (#19631) @alexfauquette
|
|
81
|
+
- [charts] Prevent horizontal scroll on keyboard navigation (#19704) @alexfauquette
|
|
82
|
+
- [charts] Simplify gestures by removing bindings (#19767) @JCQuintas
|
|
83
|
+
|
|
84
|
+
#### `@mui/x-charts-pro@8.13.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
85
|
+
|
|
86
|
+
Same changes as in `@mui/x-charts@8.13.0`, plus:
|
|
87
|
+
|
|
88
|
+
- [charts-pro] Allow zoom interactions to be configured (#18646) @JCQuintas
|
|
89
|
+
- [charts-pro] Fix zoom preview having wrong domain in some cases (#19723) @bernardobelchior
|
|
90
|
+
|
|
91
|
+
#### `@mui/x-charts-premium@8.13.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
92
|
+
|
|
93
|
+
Same changes as in `@mui/x-charts-pro@8.13.0`.
|
|
94
|
+
|
|
95
|
+
### Tree View
|
|
96
|
+
|
|
97
|
+
#### `@mui/x-tree-view@8.13.0`
|
|
98
|
+
|
|
99
|
+
- [tree view] Export the `apiRef` type of each Tree View component (#19543) @flaviendelangle
|
|
100
|
+
- [tree view] Fix indeterminate checkbox state (#19544) @flaviendelangle
|
|
101
|
+
- [tree view] Improve the lazy loading initial expansion (#19284) @flaviendelangle
|
|
102
|
+
- [tree view] Use Base UI utils whenever possible (#19502) @flaviendelangle
|
|
103
|
+
|
|
104
|
+
#### `@mui/x-tree-view-pro@8.13.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
105
|
+
|
|
106
|
+
Same changes as in `@mui/x-tree-view@8.13.0`.
|
|
107
|
+
|
|
108
|
+
### Codemod
|
|
109
|
+
|
|
110
|
+
#### `@mui/x-codemod@8.12.0`
|
|
111
|
+
|
|
112
|
+
Internal changes.
|
|
113
|
+
|
|
114
|
+
### Docs
|
|
115
|
+
|
|
116
|
+
- [docs] Add a recipe to customize editing component with Autocomplete (#19651) @siriwatknp
|
|
117
|
+
- [docs] Refine the electricity scatter tooltip (#19689) @alexfauquette
|
|
118
|
+
- [docs] Revise the Axis doc (#19052) @mapache-salvaje
|
|
119
|
+
- [docs] Remove reference to nonexistent `FocusedMark` API page (#19773) @bernardobelchior
|
|
120
|
+
|
|
121
|
+
### Core
|
|
122
|
+
|
|
123
|
+
- [code-infra] Change charts codspeed integration to use walltime (#19729) @JCQuintas
|
|
124
|
+
- [code-infra] Port stylelint from core repo (#19633) @Janpot
|
|
125
|
+
- [code-infra] Stabilize fake timers in regression tests (#19719) @Janpot
|
|
126
|
+
- [code-infra] Stabilize size for bundles with `releaseInfo` (#19674) @Janpot
|
|
127
|
+
- [code-infra] Fix `pnpm-lock.yaml` broken lockfile (#19755) @bernardobelchior
|
|
128
|
+
|
|
129
|
+
## 8.12.1
|
|
130
|
+
|
|
131
|
+
_Sep 25, 2025_
|
|
132
|
+
|
|
133
|
+
Release highlight ✨:
|
|
134
|
+
|
|
135
|
+
- 🐞 Hotfix for Grid-Charts integration issue with aggregated values
|
|
136
|
+
|
|
137
|
+
### Data Grid
|
|
138
|
+
|
|
139
|
+
#### `@mui/x-data-grid@8.12.1`
|
|
140
|
+
|
|
141
|
+
Internal changes.
|
|
142
|
+
|
|
143
|
+
#### `@mui/x-data-grid-pro@8.12.1` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
144
|
+
|
|
145
|
+
Same changes as in `@mui/x-data-grid@8.12.1`.
|
|
146
|
+
|
|
147
|
+
#### `@mui/x-data-grid-premium@8.12.1` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
148
|
+
|
|
149
|
+
Same changes as in `@mui/x-data-grid-pro@8.12.1`, plus:
|
|
150
|
+
|
|
151
|
+
- [DataGridPremium] Collect aggregated values properly for the charts integration context (#19714) @arminmeh
|
|
152
|
+
|
|
8
153
|
## 8.12.0
|
|
9
154
|
|
|
10
155
|
_Sep 25, 2025_
|
package/DataGrid/DataGrid.js
CHANGED
|
@@ -15,6 +15,7 @@ var _components = require("../components");
|
|
|
15
15
|
var _useGridAriaAttributes = require("../hooks/utils/useGridAriaAttributes");
|
|
16
16
|
var _useGridRowAriaAttributes = require("../hooks/features/rows/useGridRowAriaAttributes");
|
|
17
17
|
var _useGridRowsOverridableMethods = require("../hooks/features/rows/useGridRowsOverridableMethods");
|
|
18
|
+
var _useGridParamsOverridableMethods = require("../hooks/features/rows/useGridParamsOverridableMethods");
|
|
18
19
|
var _GridContextProvider = require("../context/GridContextProvider");
|
|
19
20
|
var _useDataGridComponent = require("./useDataGridComponent");
|
|
20
21
|
var _useDataGridProps = require("./useDataGridProps");
|
|
@@ -28,8 +29,8 @@ const configuration = {
|
|
|
28
29
|
useGridAriaAttributes: _useGridAriaAttributes.useGridAriaAttributes,
|
|
29
30
|
useGridRowAriaAttributes: _useGridRowAriaAttributes.useGridRowAriaAttributes,
|
|
30
31
|
useGridRowsOverridableMethods: _useGridRowsOverridableMethods.useGridRowsOverridableMethods,
|
|
32
|
+
useGridParamsOverridableMethods: _useGridParamsOverridableMethods.useGridParamsOverridableMethods,
|
|
31
33
|
useCellAggregationResult: () => null,
|
|
32
|
-
useSortValueGetter: apiRef => apiRef.current.getCellValue,
|
|
33
34
|
useFilterValueGetter: apiRef => apiRef.current.getRowValue
|
|
34
35
|
}
|
|
35
36
|
};
|
|
@@ -78,14 +78,14 @@ const useDataGridComponent = (apiRef, props, configuration) => {
|
|
|
78
78
|
(0, _useGridColumns.useGridColumns)(apiRef, props);
|
|
79
79
|
(0, _useGridRows.useGridRows)(apiRef, props, configuration);
|
|
80
80
|
(0, _useGridRowSpanning.useGridRowSpanning)(apiRef, props);
|
|
81
|
-
(0, _useGridParamsApi.useGridParamsApi)(apiRef, props);
|
|
81
|
+
(0, _useGridParamsApi.useGridParamsApi)(apiRef, props, configuration);
|
|
82
82
|
(0, _useGridColumnSpanning.useGridColumnSpanning)(apiRef);
|
|
83
83
|
(0, _useGridColumnGrouping.useGridColumnGrouping)(apiRef, props);
|
|
84
84
|
(0, _useGridEditing.useGridEditing)(apiRef, props);
|
|
85
85
|
(0, _useGridFocus.useGridFocus)(apiRef, props);
|
|
86
86
|
(0, _useGridPreferencesPanel.useGridPreferencesPanel)(apiRef, props);
|
|
87
87
|
(0, _useGridFilter.useGridFilter)(apiRef, props, configuration);
|
|
88
|
-
(0, _useGridSorting.useGridSorting)(apiRef, props
|
|
88
|
+
(0, _useGridSorting.useGridSorting)(apiRef, props);
|
|
89
89
|
(0, _useGridDensity.useGridDensity)(apiRef, props);
|
|
90
90
|
(0, _useGridColumnResize.useGridColumnResize)(apiRef, props);
|
|
91
91
|
(0, _useGridPagination.useGridPagination)(apiRef, props);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { GridOverlayProps } from "./containers/GridOverlay.js";
|
|
3
|
-
|
|
3
|
+
import type { GridLoadingOverlayVariant } from "../hooks/features/overlays/gridOverlaysInterfaces.js";
|
|
4
4
|
export interface GridLoadingOverlayProps extends GridOverlayProps {
|
|
5
5
|
/**
|
|
6
6
|
* The variant of the overlay.
|
package/components/GridRow.js
CHANGED
|
@@ -32,7 +32,6 @@ var _gridSortingSelector = require("../hooks/features/sorting/gridSortingSelecto
|
|
|
32
32
|
var _gridRowsSelector = require("../hooks/features/rows/gridRowsSelector");
|
|
33
33
|
var _gridEditingSelectors = require("../hooks/features/editing/gridEditingSelectors");
|
|
34
34
|
var _gridRowReorderSelector = require("../hooks/features/rowReorder/gridRowReorderSelector");
|
|
35
|
-
var _GridScrollbarFillerCell = require("./GridScrollbarFillerCell");
|
|
36
35
|
var _getPinnedCellOffset = require("../internals/utils/getPinnedCellOffset");
|
|
37
36
|
var _useGridConfiguration = require("../hooks/utils/useGridConfiguration");
|
|
38
37
|
var _useGridPrivateApiContext = require("../hooks/utils/useGridPrivateApiContext");
|
|
@@ -247,8 +246,8 @@ const GridRow = (0, _forwardRef.forwardRef)(function GridRow(props, refProp) {
|
|
|
247
246
|
const canReorderRow = isRowReorderingEnabled && !sortModel.length;
|
|
248
247
|
const disableDragEvents = !(canReorderColumn || isReorderCell && canReorderRow || isRowDragActive);
|
|
249
248
|
const cellIsNotVisible = pinnedPosition === _constants.PinnedColumnPosition.VIRTUAL;
|
|
250
|
-
const showLeftBorder = (0, _cellBorderUtils.shouldCellShowLeftBorder)(pinnedPosition, indexInSection);
|
|
251
|
-
const showRightBorder = (0, _cellBorderUtils.shouldCellShowRightBorder)(pinnedPosition, indexInSection, sectionLength, rootProps.showCellVerticalBorder, gridHasFiller);
|
|
249
|
+
const showLeftBorder = (0, _cellBorderUtils.shouldCellShowLeftBorder)(pinnedPosition, indexInSection, rootProps.showCellVerticalBorder, rootProps.pinnedColumnsSectionSeparator);
|
|
250
|
+
const showRightBorder = (0, _cellBorderUtils.shouldCellShowRightBorder)(pinnedPosition, indexInSection, sectionLength, rootProps.showCellVerticalBorder, gridHasFiller, rootProps.pinnedColumnsSectionSeparator);
|
|
252
251
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(slots.cell, (0, _extends2.default)({
|
|
253
252
|
column: column,
|
|
254
253
|
width: width,
|
|
@@ -316,10 +315,7 @@ const GridRow = (0, _forwardRef.forwardRef)(function GridRow(props, refProp) {
|
|
|
316
315
|
}), cells, /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
317
316
|
role: "presentation",
|
|
318
317
|
className: (0, _clsx.default)(_gridClasses.gridClasses.cell, _gridClasses.gridClasses.cellEmpty)
|
|
319
|
-
}), rightCells
|
|
320
|
-
pinnedRight: pinnedColumns.right.length > 0,
|
|
321
|
-
borderTop: !isFirstVisible
|
|
322
|
-
})]
|
|
318
|
+
}), rightCells]
|
|
323
319
|
}));
|
|
324
320
|
});
|
|
325
321
|
if (process.env.NODE_ENV !== "production") GridRow.displayName = "GridRow";
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
|
|
4
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.GridScrollShadows = GridScrollShadows;
|
|
9
|
+
var React = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _system = require("@mui/system");
|
|
11
|
+
var _RtlProvider = require("@mui/system/RtlProvider");
|
|
12
|
+
var _hooks = require("../hooks");
|
|
13
|
+
var _gridRowsSelector = require("../hooks/features/rows/gridRowsSelector");
|
|
14
|
+
var _useGridRootProps = require("../hooks/utils/useGridRootProps");
|
|
15
|
+
var _cssVariables = require("../constants/cssVariables");
|
|
16
|
+
var _useGridPrivateApiContext = require("../hooks/utils/useGridPrivateApiContext");
|
|
17
|
+
var _gridDimensionsSelectors = require("../hooks/features/dimensions/gridDimensionsSelectors");
|
|
18
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
19
|
+
const ScrollShadow = (0, _system.styled)('div')(({
|
|
20
|
+
theme
|
|
21
|
+
}) => ({
|
|
22
|
+
position: 'absolute',
|
|
23
|
+
inset: 0,
|
|
24
|
+
pointerEvents: 'none',
|
|
25
|
+
transition: _cssVariables.vars.transition(['box-shadow'], {
|
|
26
|
+
duration: _cssVariables.vars.transitions.duration.short
|
|
27
|
+
}),
|
|
28
|
+
'--length': theme.palette.mode === 'dark' ? '8px' : '6px',
|
|
29
|
+
'--length-inverse': 'calc(var(--length) * -1)',
|
|
30
|
+
'--opacity': theme.palette.mode === 'dark' ? '0.7' : '0.18',
|
|
31
|
+
'--blur': 'var(--length)',
|
|
32
|
+
'--spread': 'calc(var(--length) * -1)',
|
|
33
|
+
'--color-start': 'rgba(0, 0, 0, calc(var(--hasScrollStart) * var(--opacity)))',
|
|
34
|
+
'--color-end': 'rgba(0, 0, 0, calc(var(--hasScrollEnd) * var(--opacity)))',
|
|
35
|
+
variants: [{
|
|
36
|
+
props: {
|
|
37
|
+
position: 'vertical'
|
|
38
|
+
},
|
|
39
|
+
style: {
|
|
40
|
+
top: 'var(--DataGrid-topContainerHeight)',
|
|
41
|
+
bottom: 'calc(var(--DataGrid-bottomContainerHeight) + var(--DataGrid-hasScrollX) * var(--DataGrid-scrollbarSize))',
|
|
42
|
+
boxShadow: 'inset 0 var(--length) var(--blur) var(--spread) var(--color-start), inset 0 var(--length-inverse) var(--blur) var(--spread) var(--color-end)'
|
|
43
|
+
}
|
|
44
|
+
}, {
|
|
45
|
+
props: {
|
|
46
|
+
position: 'horizontal'
|
|
47
|
+
},
|
|
48
|
+
style: {
|
|
49
|
+
left: 'var(--DataGrid-leftPinnedWidth)',
|
|
50
|
+
right: 'calc(var(--DataGrid-rightPinnedWidth) + var(--DataGrid-hasScrollY) * var(--DataGrid-scrollbarSize))',
|
|
51
|
+
boxShadow: 'inset var(--length) 0 var(--blur) var(--spread) var(--color-start), inset var(--length-inverse) 0 var(--blur) var(--spread) var(--color-end)'
|
|
52
|
+
}
|
|
53
|
+
}]
|
|
54
|
+
}));
|
|
55
|
+
function GridScrollShadows(props) {
|
|
56
|
+
const {
|
|
57
|
+
position
|
|
58
|
+
} = props;
|
|
59
|
+
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
60
|
+
const ownerState = {
|
|
61
|
+
classes: rootProps.classes,
|
|
62
|
+
position
|
|
63
|
+
};
|
|
64
|
+
const ref = React.useRef(null);
|
|
65
|
+
const apiRef = (0, _useGridPrivateApiContext.useGridPrivateApiContext)();
|
|
66
|
+
const hasScrollX = (0, _hooks.useGridSelector)(apiRef, _gridDimensionsSelectors.gridHasScrollXSelector);
|
|
67
|
+
const hasScrollY = (0, _hooks.useGridSelector)(apiRef, _gridDimensionsSelectors.gridHasScrollYSelector);
|
|
68
|
+
const pinnedRows = (0, _hooks.useGridSelector)(apiRef, _gridRowsSelector.gridPinnedRowsSelector);
|
|
69
|
+
const pinnedColumns = (0, _hooks.useGridSelector)(apiRef, _hooks.gridPinnedColumnsSelector);
|
|
70
|
+
const initialScrollable = position === 'vertical' ? hasScrollY && pinnedRows?.bottom?.length > 0 : hasScrollX && pinnedColumns?.right?.length !== undefined && pinnedColumns?.right?.length > 0;
|
|
71
|
+
const isRtl = (0, _RtlProvider.useRtl)();
|
|
72
|
+
const updateScrollShadowVisibility = React.useCallback(scrollPosition => {
|
|
73
|
+
if (!ref.current) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
// Math.abs to convert negative scroll position (RTL) to positive
|
|
77
|
+
const scroll = Math.abs(Math.round(scrollPosition));
|
|
78
|
+
const dimensions = (0, _hooks.gridDimensionsSelector)(apiRef);
|
|
79
|
+
const maxScroll = Math.round(dimensions.contentSize[position === 'vertical' ? 'height' : 'width'] - dimensions.viewportInnerSize[position === 'vertical' ? 'height' : 'width']);
|
|
80
|
+
const hasPinnedStart = position === 'vertical' ? pinnedRows?.top?.length > 0 : pinnedColumns?.left?.length !== undefined && pinnedColumns?.left?.length > 0;
|
|
81
|
+
const hasPinnedEnd = position === 'vertical' ? pinnedRows?.bottom?.length > 0 : pinnedColumns?.right?.length !== undefined && pinnedColumns?.right?.length > 0;
|
|
82
|
+
const scrollIsNotAtStart = isRtl ? scroll < maxScroll : scroll > 0;
|
|
83
|
+
const scrollIsNotAtEnd = isRtl ? scroll > 0 : scroll < maxScroll;
|
|
84
|
+
ref.current.style.setProperty('--hasScrollStart', hasPinnedStart && scrollIsNotAtStart ? '1' : '0');
|
|
85
|
+
ref.current.style.setProperty('--hasScrollEnd', hasPinnedEnd && scrollIsNotAtEnd ? '1' : '0');
|
|
86
|
+
}, [pinnedRows, pinnedColumns, isRtl, position, apiRef]);
|
|
87
|
+
const handleScrolling = scrollParams => {
|
|
88
|
+
updateScrollShadowVisibility(scrollParams[position === 'vertical' ? 'top' : 'left']);
|
|
89
|
+
};
|
|
90
|
+
const handleColumnResizeStop = () => {
|
|
91
|
+
if (position === 'horizontal') {
|
|
92
|
+
updateScrollShadowVisibility(apiRef.current.virtualScrollerRef?.current?.scrollLeft || 0);
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
(0, _hooks.useGridEvent)(apiRef, 'scrollPositionChange', handleScrolling);
|
|
96
|
+
(0, _hooks.useGridEvent)(apiRef, 'columnResizeStop', handleColumnResizeStop);
|
|
97
|
+
React.useEffect(() => {
|
|
98
|
+
updateScrollShadowVisibility((position === 'horizontal' ? apiRef.current.virtualScrollerRef?.current?.scrollLeft : apiRef.current.virtualScrollerRef?.current?.scrollTop) ?? 0);
|
|
99
|
+
}, [updateScrollShadowVisibility, apiRef, position]);
|
|
100
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(ScrollShadow, {
|
|
101
|
+
ownerState: ownerState,
|
|
102
|
+
ref: ref,
|
|
103
|
+
style: {
|
|
104
|
+
'--hasScrollStart': 0,
|
|
105
|
+
'--hasScrollEnd': initialScrollable ? '1' : '0'
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
}
|
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
declare function GridScrollbarFillerCell({
|
|
3
|
-
header,
|
|
4
|
-
borderTop,
|
|
5
|
-
borderBottom,
|
|
6
3
|
pinnedRight
|
|
7
4
|
}: {
|
|
8
|
-
header?: boolean;
|
|
9
|
-
borderTop?: boolean;
|
|
10
|
-
borderBottom?: boolean;
|
|
11
5
|
pinnedRight?: boolean;
|
|
12
6
|
}): React.JSX.Element;
|
|
13
7
|
export { GridScrollbarFillerCell };
|
|
@@ -12,19 +12,13 @@ var _constants = require("../constants");
|
|
|
12
12
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
13
|
const classes = {
|
|
14
14
|
root: _constants.gridClasses.scrollbarFiller,
|
|
15
|
-
header: _constants.gridClasses['scrollbarFiller--header'],
|
|
16
|
-
borderTop: _constants.gridClasses['scrollbarFiller--borderTop'],
|
|
17
|
-
borderBottom: _constants.gridClasses['scrollbarFiller--borderBottom'],
|
|
18
15
|
pinnedRight: _constants.gridClasses['scrollbarFiller--pinnedRight']
|
|
19
16
|
};
|
|
20
17
|
function GridScrollbarFillerCell({
|
|
21
|
-
header,
|
|
22
|
-
borderTop = true,
|
|
23
|
-
borderBottom,
|
|
24
18
|
pinnedRight
|
|
25
19
|
}) {
|
|
26
20
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
27
21
|
role: "presentation",
|
|
28
|
-
className: (0, _clsx.default)(classes.root,
|
|
22
|
+
className: (0, _clsx.default)(classes.root, pinnedRight && classes.pinnedRight)
|
|
29
23
|
});
|
|
30
24
|
}
|
|
@@ -24,7 +24,6 @@ var _gridClasses = require("../constants/gridClasses");
|
|
|
24
24
|
var _getPinnedCellOffset = require("../internals/utils/getPinnedCellOffset");
|
|
25
25
|
var _cellBorderUtils = require("../utils/cellBorderUtils");
|
|
26
26
|
var _domUtils = require("../utils/domUtils");
|
|
27
|
-
var _GridScrollbarFillerCell = require("./GridScrollbarFillerCell");
|
|
28
27
|
var _rtlFlipSide = require("../utils/rtlFlipSide");
|
|
29
28
|
var _utils = require("../internals/utils");
|
|
30
29
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -100,8 +99,8 @@ const GridSkeletonLoadingOverlayInner = exports.GridSkeletonLoadingOverlayInner
|
|
|
100
99
|
const scrollbarWidth = dimensions.hasScrollY ? dimensions.scrollbarSize : 0;
|
|
101
100
|
const pinnedStyle = (0, _utils.attachPinnedStyle)({}, isRtl, pinnedPosition, (0, _getPinnedCellOffset.getPinnedCellOffset)(pinnedPosition, column.computedWidth, colIndex, positions, dimensions.columnsTotalWidth, scrollbarWidth));
|
|
102
101
|
const gridHasFiller = dimensions.columnsTotalWidth < dimensions.viewportOuterSize.width;
|
|
103
|
-
const showRightBorder = (0, _cellBorderUtils.shouldCellShowRightBorder)(pinnedPosition, sectionIndex, sectionLength, rootProps.showCellVerticalBorder, gridHasFiller);
|
|
104
|
-
const showLeftBorder = (0, _cellBorderUtils.shouldCellShowLeftBorder)(pinnedPosition, sectionIndex);
|
|
102
|
+
const showRightBorder = (0, _cellBorderUtils.shouldCellShowRightBorder)(pinnedPosition, sectionIndex, sectionLength, rootProps.showCellVerticalBorder, gridHasFiller, rootProps.pinnedColumnsSectionSeparator);
|
|
103
|
+
const showLeftBorder = (0, _cellBorderUtils.shouldCellShowLeftBorder)(pinnedPosition, sectionIndex, rootProps.showCellVerticalBorder, rootProps.pinnedColumnsSectionSeparator);
|
|
105
104
|
const isLastColumn = colIndex === columns.length - 1;
|
|
106
105
|
const isFirstPinnedRight = isPinnedRight && sectionIndex === 0;
|
|
107
106
|
const hasFillerBefore = isFirstPinnedRight && gridHasFiller;
|
|
@@ -112,7 +111,6 @@ const GridSkeletonLoadingOverlayInner = exports.GridSkeletonLoadingOverlayInner
|
|
|
112
111
|
width: emptyCellWidth,
|
|
113
112
|
empty: true
|
|
114
113
|
}, `skeleton-filler-column-${i}`);
|
|
115
|
-
const hasScrollbarFiller = isLastColumn && scrollbarWidth !== 0;
|
|
116
114
|
if (hasFillerBefore) {
|
|
117
115
|
rowCells.push(emptyCell);
|
|
118
116
|
}
|
|
@@ -132,11 +130,6 @@ const GridSkeletonLoadingOverlayInner = exports.GridSkeletonLoadingOverlayInner
|
|
|
132
130
|
if (hasFillerAfter) {
|
|
133
131
|
rowCells.push(emptyCell);
|
|
134
132
|
}
|
|
135
|
-
if (hasScrollbarFiller) {
|
|
136
|
-
rowCells.push(/*#__PURE__*/(0, _jsxRuntime.jsx)(_GridScrollbarFillerCell.GridScrollbarFillerCell, {
|
|
137
|
-
pinnedRight: pinnedColumns.right.length > 0
|
|
138
|
-
}, `skeleton-scrollbar-filler-${i}`));
|
|
139
|
-
}
|
|
140
133
|
}
|
|
141
134
|
array.push(/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
142
135
|
className: (0, _clsx.default)(_gridClasses.gridClasses.row, _gridClasses.gridClasses.rowSkeleton, i === 0 && !showFirstRowBorder && _gridClasses.gridClasses['row--firstVisible']),
|
|
@@ -144,7 +137,7 @@ const GridSkeletonLoadingOverlayInner = exports.GridSkeletonLoadingOverlayInner
|
|
|
144
137
|
}, `skeleton-row-${i}`));
|
|
145
138
|
}
|
|
146
139
|
return array;
|
|
147
|
-
}, [skeletonRowsCount, columns, getPinnedPosition, isRtl, pinnedColumns, dimensions.hasScrollY, dimensions.scrollbarSize, dimensions.columnsTotalWidth, dimensions.viewportOuterSize.width, dimensions.rowHeight, positions, rootProps.showCellVerticalBorder, slots, visibleColumns, showFirstRowBorder]);
|
|
140
|
+
}, [skeletonRowsCount, columns, getPinnedPosition, isRtl, pinnedColumns, dimensions.hasScrollY, dimensions.scrollbarSize, dimensions.columnsTotalWidth, dimensions.viewportOuterSize.width, dimensions.rowHeight, positions, rootProps.showCellVerticalBorder, rootProps.pinnedColumnsSectionSeparator, slots, visibleColumns, showFirstRowBorder]);
|
|
148
141
|
|
|
149
142
|
// Sync the column resize of the overlay columns with the grid
|
|
150
143
|
const handleColumnResize = params => {
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { GridLoadingOverlayVariant } from "
|
|
3
|
-
import { GridSlotsComponent } from "../../models/index.js";
|
|
4
|
-
export type GridOverlayType = keyof Pick<GridSlotsComponent, 'noColumnsOverlay' | 'noRowsOverlay' | 'noResultsOverlay' | 'loadingOverlay'> | null;
|
|
2
|
+
import type { GridOverlayType, GridLoadingOverlayVariant } from "../../hooks/features/overlays/gridOverlaysInterfaces.js";
|
|
5
3
|
interface GridOverlaysProps {
|
|
6
4
|
overlayType: GridOverlayType;
|
|
7
5
|
loadingOverlayVariant: GridLoadingOverlayVariant | null;
|
|
@@ -39,7 +39,6 @@ const useUtilityClasses = ownerState => {
|
|
|
39
39
|
showLeftBorder,
|
|
40
40
|
filterItemsCounter,
|
|
41
41
|
pinnedPosition,
|
|
42
|
-
isLastUnpinned,
|
|
43
42
|
isSiblingFocused
|
|
44
43
|
} = ownerState;
|
|
45
44
|
const isColumnSortable = colDef.sortable && !disableColumnSorting;
|
|
@@ -51,7 +50,7 @@ const useUtilityClasses = ownerState => {
|
|
|
51
50
|
root: ['columnHeader', colDef.headerAlign === 'left' && 'columnHeader--alignLeft', colDef.headerAlign === 'center' && 'columnHeader--alignCenter', colDef.headerAlign === 'right' && 'columnHeader--alignRight', isColumnSortable && 'columnHeader--sortable', isDragging && 'columnHeader--moving', isColumnSorted && 'columnHeader--sorted', isColumnFiltered && 'columnHeader--filtered', isColumnNumeric && 'columnHeader--numeric', 'withBorderColor', showRightBorder && 'columnHeader--withRightBorder', showLeftBorder && 'columnHeader--withLeftBorder', pinnedPosition === _constants.PinnedColumnPosition.LEFT && 'columnHeader--pinnedLeft', pinnedPosition === _constants.PinnedColumnPosition.RIGHT && 'columnHeader--pinnedRight',
|
|
52
51
|
// TODO: Remove classes below and restore `:has` selectors when they are supported in jsdom
|
|
53
52
|
// See https://github.com/mui/mui-x/pull/14559
|
|
54
|
-
|
|
53
|
+
isSiblingFocused && 'columnHeader--siblingFocused'],
|
|
55
54
|
draggableContainer: ['columnHeaderDraggableContainer'],
|
|
56
55
|
titleContainer: ['columnHeaderTitleContainer'],
|
|
57
56
|
titleContainerContent: ['columnHeaderTitleContainerContent']
|
|
@@ -237,7 +236,6 @@ process.env.NODE_ENV !== "production" ? GridColumnHeaderItem.propTypes = {
|
|
|
237
236
|
headerHeight: _propTypes.default.number.isRequired,
|
|
238
237
|
isDragging: _propTypes.default.bool.isRequired,
|
|
239
238
|
isLast: _propTypes.default.bool.isRequired,
|
|
240
|
-
isLastUnpinned: _propTypes.default.bool.isRequired,
|
|
241
239
|
isResizing: _propTypes.default.bool.isRequired,
|
|
242
240
|
isSiblingFocused: _propTypes.default.bool.isRequired,
|
|
243
241
|
pinnedOffset: _propTypes.default.number,
|
|
@@ -111,8 +111,6 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
|
|
|
111
111
|
[`& .${_gridClasses.gridClasses['columnHeader--filtered']}`]: styles['columnHeader--filtered']
|
|
112
112
|
}, {
|
|
113
113
|
[`& .${_gridClasses.gridClasses['columnHeader--last']}`]: styles['columnHeader--last']
|
|
114
|
-
}, {
|
|
115
|
-
[`& .${_gridClasses.gridClasses['columnHeader--lastUnpinned']}`]: styles['columnHeader--lastUnpinned']
|
|
116
114
|
}, {
|
|
117
115
|
[`& .${_gridClasses.gridClasses['columnHeader--moving']}`]: styles['columnHeader--moving']
|
|
118
116
|
}, {
|
|
@@ -229,12 +227,6 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
|
|
|
229
227
|
[`& .${_gridClasses.gridClasses['scrollbar--vertical']}`]: styles['scrollbar--vertical']
|
|
230
228
|
}, {
|
|
231
229
|
[`& .${_gridClasses.gridClasses.scrollbarFiller}`]: styles.scrollbarFiller
|
|
232
|
-
}, {
|
|
233
|
-
[`& .${_gridClasses.gridClasses['scrollbarFiller--borderBottom']}`]: styles['scrollbarFiller--borderBottom']
|
|
234
|
-
}, {
|
|
235
|
-
[`& .${_gridClasses.gridClasses['scrollbarFiller--borderTop']}`]: styles['scrollbarFiller--borderTop']
|
|
236
|
-
}, {
|
|
237
|
-
[`& .${_gridClasses.gridClasses['scrollbarFiller--header']}`]: styles['scrollbarFiller--header']
|
|
238
230
|
}, {
|
|
239
231
|
[`& .${_gridClasses.gridClasses['scrollbarFiller--pinnedRight']}`]: styles['scrollbarFiller--pinnedRight']
|
|
240
232
|
}, {
|
|
@@ -396,9 +388,7 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
|
|
|
396
388
|
[`& .${_gridClasses.gridClasses.columnHeader}:focus,
|
|
397
389
|
& .${_gridClasses.gridClasses['columnHeader--withLeftBorder']},
|
|
398
390
|
& .${_gridClasses.gridClasses['columnHeader--withRightBorder']},
|
|
399
|
-
& .${_gridClasses.gridClasses['columnHeader--siblingFocused']}
|
|
400
|
-
& .${_gridClasses.gridClasses['virtualScroller--hasScrollX']} .${_gridClasses.gridClasses['columnHeader--lastUnpinned']},
|
|
401
|
-
& .${_gridClasses.gridClasses['virtualScroller--hasScrollX']} .${_gridClasses.gridClasses['columnHeader--last']}
|
|
391
|
+
& .${_gridClasses.gridClasses['columnHeader--siblingFocused']}
|
|
402
392
|
`]: {
|
|
403
393
|
[`& .${_gridClasses.gridClasses.columnSeparator}`]: {
|
|
404
394
|
opacity: 0
|
|
@@ -603,7 +593,7 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
|
|
|
603
593
|
width: 'auto'
|
|
604
594
|
},
|
|
605
595
|
[`& .${_gridClasses.gridClasses.headerFilterRow}`]: {
|
|
606
|
-
[`& .${_gridClasses.gridClasses.columnHeader}`]: {
|
|
596
|
+
[`& .${_gridClasses.gridClasses.columnHeader}, & .${_gridClasses.gridClasses.scrollbarFiller}`]: {
|
|
607
597
|
boxSizing: 'border-box',
|
|
608
598
|
borderBottom: '1px solid var(--DataGrid-rowBorderColor)'
|
|
609
599
|
}
|
|
@@ -852,14 +842,8 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
|
|
|
852
842
|
[`.${_gridClasses.gridClasses.scrollbarFiller}`]: {
|
|
853
843
|
minWidth: 'calc(var(--DataGrid-hasScrollY) * var(--DataGrid-scrollbarSize))',
|
|
854
844
|
alignSelf: 'stretch',
|
|
855
|
-
|
|
856
|
-
borderTop: '1px solid var(--DataGrid-rowBorderColor)'
|
|
857
|
-
},
|
|
858
|
-
[`&.${_gridClasses.gridClasses['scrollbarFiller--borderBottom']}`]: {
|
|
859
|
-
borderBottom: '1px solid var(--DataGrid-rowBorderColor)'
|
|
860
|
-
},
|
|
845
|
+
backgroundColor: headerBackground,
|
|
861
846
|
[`&.${_gridClasses.gridClasses['scrollbarFiller--pinnedRight']}`]: {
|
|
862
|
-
backgroundColor: _cssVariables.vars.cell.background.pinned,
|
|
863
847
|
position: 'sticky',
|
|
864
848
|
zIndex: 40,
|
|
865
849
|
// Should be above the column separator
|
|
@@ -875,7 +859,7 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
|
|
|
875
859
|
[`& .${_gridClasses.gridClasses.columnHeaders} .${_gridClasses.gridClasses.filler}`]: {
|
|
876
860
|
backgroundColor: headerBackground
|
|
877
861
|
},
|
|
878
|
-
/*
|
|
862
|
+
/* Used when skeleton/no columns overlay is visible */
|
|
879
863
|
[`& .${_gridClasses.gridClasses['main--hiddenContent']}`]: {
|
|
880
864
|
[`& .${_gridClasses.gridClasses.virtualScrollerContent}`]: {
|
|
881
865
|
// We use visibility hidden so that the virtual scroller content retains its height.
|
|
@@ -884,7 +868,8 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
|
|
|
884
868
|
position: 'fixed',
|
|
885
869
|
visibility: 'hidden'
|
|
886
870
|
},
|
|
887
|
-
|
|
871
|
+
// Hide grid content
|
|
872
|
+
[`& .${_gridClasses.gridClasses.pinnedRows}`]: {
|
|
888
873
|
display: 'none'
|
|
889
874
|
}
|
|
890
875
|
},
|
|
@@ -30,7 +30,8 @@ var _cssVariables = require("../../constants/cssVariables");
|
|
|
30
30
|
var _gridClasses = require("../../constants/gridClasses");
|
|
31
31
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
32
32
|
const _excluded = ["className"],
|
|
33
|
-
_excluded2 = ["className"]
|
|
33
|
+
_excluded2 = ["className"],
|
|
34
|
+
_excluded3 = ["showQuickFilter", "quickFilterProps", "csvOptions", "printOptions", "additionalItems", "additionalExportMenuItems"];
|
|
34
35
|
const useUtilityClasses = ownerState => {
|
|
35
36
|
const {
|
|
36
37
|
classes
|
|
@@ -88,13 +89,14 @@ function GridToolbarLabel(props) {
|
|
|
88
89
|
}
|
|
89
90
|
function GridToolbar(props) {
|
|
90
91
|
const {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
92
|
+
showQuickFilter = true,
|
|
93
|
+
quickFilterProps,
|
|
94
|
+
csvOptions,
|
|
95
|
+
printOptions,
|
|
96
|
+
additionalItems,
|
|
97
|
+
additionalExportMenuItems
|
|
98
|
+
} = props,
|
|
99
|
+
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded3);
|
|
98
100
|
const apiRef = (0, _useGridApiContext.useGridApiContext)();
|
|
99
101
|
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
100
102
|
const [exportMenuOpen, setExportMenuOpen] = React.useState(false);
|
|
@@ -103,7 +105,7 @@ function GridToolbar(props) {
|
|
|
103
105
|
const exportMenuTriggerId = (0, _useId.default)();
|
|
104
106
|
const showExportMenu = !csvOptions?.disableToolbarButton || !printOptions?.disableToolbarButton || additionalExportMenuItems;
|
|
105
107
|
const closeExportMenu = () => setExportMenuOpen(false);
|
|
106
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Toolbar.Toolbar, {
|
|
108
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Toolbar.Toolbar, (0, _extends2.default)({}, other, {
|
|
107
109
|
children: [rootProps.label && /*#__PURE__*/(0, _jsxRuntime.jsx)(GridToolbarLabel, {
|
|
108
110
|
children: rootProps.label
|
|
109
111
|
}), !rootProps.disableColumnSelector && /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseTooltip, {
|
|
@@ -170,7 +172,7 @@ function GridToolbar(props) {
|
|
|
170
172
|
}), showQuickFilter && /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
|
|
171
173
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(GridToolbarDivider, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridToolbarQuickFilter.GridToolbarQuickFilter, (0, _extends2.default)({}, quickFilterProps))]
|
|
172
174
|
})]
|
|
173
|
-
});
|
|
175
|
+
}));
|
|
174
176
|
}
|
|
175
177
|
process.env.NODE_ENV !== "production" ? GridToolbar.propTypes = {
|
|
176
178
|
// ----------------------------- Warning --------------------------------
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { DataGridProcessedProps } from "../../models/props/DataGridProps.js";
|
|
3
|
-
import { GridLoadingOverlayVariant } from "
|
|
4
|
-
import { GridOverlayType } from "../base/GridOverlays.js";
|
|
3
|
+
import type { GridOverlayType, GridLoadingOverlayVariant } from "../../hooks/features/overlays/gridOverlaysInterfaces.js";
|
|
5
4
|
type OwnerState = Pick<DataGridProcessedProps, 'classes'> & {
|
|
6
5
|
hasScrollX: boolean;
|
|
7
6
|
hasPinnedRight: boolean;
|
|
@@ -7,5 +7,6 @@ type GridVirtualScrollbarProps = {
|
|
|
7
7
|
top: number;
|
|
8
8
|
}>;
|
|
9
9
|
};
|
|
10
|
+
export declare const ScrollbarCorner: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/system").Theme> & React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement>, {}, {}>;
|
|
10
11
|
declare const GridVirtualScrollbar: React.ForwardRefExoticComponent<GridVirtualScrollbarProps> | React.ForwardRefExoticComponent<GridVirtualScrollbarProps & React.RefAttributes<HTMLDivElement>>;
|
|
11
12
|
export { GridVirtualScrollbar };
|