@mui/x-data-grid 7.20.0 → 7.21.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 +120 -31
- package/DataGrid/DataGrid.js +1 -0
- package/DataGrid/index.d.ts +0 -1
- package/DataGrid/index.js +1 -2
- package/DataGrid/useDataGridComponent.js +4 -1
- package/DataGrid/useDataGridProps.d.ts +1 -5
- package/DataGrid/useDataGridProps.js +3 -62
- package/components/GridPagination.js +1 -0
- package/components/GridRow.js +25 -36
- package/components/base/GridOverlays.js +8 -0
- package/components/containers/GridRootStyles.js +1 -0
- package/components/menu/columnMenu/GridColumnMenu.js +32 -0
- package/components/toolbar/GridToolbarExport.d.ts +9 -3
- package/components/toolbar/GridToolbarExport.js +55 -3
- package/components/virtualization/GridVirtualScrollbar.js +4 -0
- package/components/virtualization/GridVirtualScroller.js +2 -2
- package/constants/dataGridPropsDefaultValues.d.ts +5 -0
- package/constants/dataGridPropsDefaultValues.js +60 -0
- package/hooks/core/pipeProcessing/gridPipeProcessingApi.d.ts +2 -1
- package/hooks/features/clipboard/useGridClipboard.js +2 -1
- package/hooks/features/columnHeaders/useGridColumnHeaders.js +3 -1
- package/hooks/features/columns/gridColumnsUtils.d.ts +1 -1
- package/hooks/features/columns/gridColumnsUtils.js +3 -0
- package/hooks/features/dimensions/useGridDimensions.js +4 -2
- package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.d.ts +1 -1
- package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +9 -5
- package/hooks/features/listView/gridListViewSelectors.d.ts +5 -0
- package/hooks/features/listView/gridListViewSelectors.js +4 -0
- package/hooks/features/listView/useGridListView.d.ts +10 -0
- package/hooks/features/listView/useGridListView.js +54 -0
- package/hooks/features/rowSelection/useGridRowSelection.js +11 -2
- package/hooks/features/rowSelection/utils.js +1 -1
- package/hooks/features/rows/gridRowsMetaInterfaces.d.ts +16 -0
- package/hooks/features/rows/gridRowsMetaInterfaces.js +1 -0
- package/hooks/features/rows/gridRowsUtils.d.ts +3 -0
- package/hooks/features/rows/gridRowsUtils.js +14 -1
- package/hooks/features/rows/useGridParamsApi.d.ts +2 -1
- package/hooks/features/rows/useGridParamsApi.js +4 -3
- package/hooks/features/rows/useGridRowsMeta.js +135 -154
- package/hooks/features/scroll/useGridScroll.d.ts +1 -1
- package/hooks/features/scroll/useGridScroll.js +3 -2
- package/hooks/features/virtualization/useGridVirtualScroller.js +23 -9
- package/hooks/utils/useGridApiMethod.js +2 -1
- package/index.d.ts +1 -0
- package/index.js +2 -1
- package/internals/index.d.ts +2 -1
- package/internals/index.js +2 -1
- package/models/api/gridRowsMetaApi.d.ts +15 -14
- package/models/colDef/gridColDef.d.ts +6 -0
- package/models/colDef/index.d.ts +1 -1
- package/models/gridApiCaches.d.ts +2 -0
- package/models/gridStateCommunity.d.ts +2 -0
- package/models/props/DataGridProps.d.ts +14 -3
- package/modern/DataGrid/DataGrid.js +1 -0
- package/modern/DataGrid/index.js +1 -2
- package/modern/DataGrid/useDataGridComponent.js +4 -1
- package/modern/DataGrid/useDataGridProps.js +3 -62
- package/modern/components/GridPagination.js +1 -0
- package/modern/components/GridRow.js +25 -36
- package/modern/components/base/GridOverlays.js +8 -0
- package/modern/components/containers/GridRootStyles.js +1 -0
- package/modern/components/menu/columnMenu/GridColumnMenu.js +32 -0
- package/modern/components/toolbar/GridToolbarExport.js +55 -3
- package/modern/components/virtualization/GridVirtualScrollbar.js +4 -0
- package/modern/components/virtualization/GridVirtualScroller.js +2 -2
- package/modern/constants/dataGridPropsDefaultValues.js +60 -0
- package/modern/hooks/features/clipboard/useGridClipboard.js +2 -1
- package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +3 -1
- package/modern/hooks/features/columns/gridColumnsUtils.js +3 -0
- package/modern/hooks/features/dimensions/useGridDimensions.js +4 -2
- package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +9 -5
- package/modern/hooks/features/listView/gridListViewSelectors.js +4 -0
- package/modern/hooks/features/listView/useGridListView.js +54 -0
- package/modern/hooks/features/rowSelection/useGridRowSelection.js +11 -2
- package/modern/hooks/features/rowSelection/utils.js +1 -1
- package/modern/hooks/features/rows/gridRowsMetaInterfaces.js +1 -0
- package/modern/hooks/features/rows/gridRowsUtils.js +14 -1
- package/modern/hooks/features/rows/useGridParamsApi.js +4 -3
- package/modern/hooks/features/rows/useGridRowsMeta.js +135 -154
- package/modern/hooks/features/scroll/useGridScroll.js +3 -2
- package/modern/hooks/features/virtualization/useGridVirtualScroller.js +23 -9
- package/modern/hooks/utils/useGridApiMethod.js +2 -1
- package/modern/index.js +2 -1
- package/modern/internals/index.js +2 -1
- package/modern/utils/ResizeObserver.js +10 -0
- package/modern/utils/keyboardUtils.js +12 -4
- package/node/DataGrid/DataGrid.js +1 -0
- package/node/DataGrid/index.js +1 -12
- package/node/DataGrid/useDataGridComponent.js +4 -1
- package/node/DataGrid/useDataGridProps.js +6 -65
- package/node/components/GridPagination.js +1 -0
- package/node/components/GridRow.js +25 -36
- package/node/components/base/GridOverlays.js +8 -0
- package/node/components/containers/GridRootStyles.js +1 -0
- package/node/components/menu/columnMenu/GridColumnMenu.js +32 -0
- package/node/components/toolbar/GridToolbarExport.js +52 -0
- package/node/components/virtualization/GridVirtualScrollbar.js +4 -0
- package/node/components/virtualization/GridVirtualScroller.js +2 -2
- package/node/constants/dataGridPropsDefaultValues.js +66 -0
- package/node/hooks/features/clipboard/useGridClipboard.js +2 -1
- package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +3 -1
- package/node/hooks/features/columns/gridColumnsUtils.js +3 -0
- package/node/hooks/features/dimensions/useGridDimensions.js +3 -1
- package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +9 -5
- package/node/hooks/features/listView/gridListViewSelectors.js +11 -0
- package/node/hooks/features/listView/useGridListView.js +64 -0
- package/node/hooks/features/rowSelection/useGridRowSelection.js +11 -2
- package/node/hooks/features/rowSelection/utils.js +1 -1
- package/node/hooks/features/rows/gridRowsMetaInterfaces.js +5 -0
- package/node/hooks/features/rows/gridRowsUtils.js +16 -2
- package/node/hooks/features/rows/useGridParamsApi.js +4 -3
- package/node/hooks/features/rows/useGridRowsMeta.js +136 -154
- package/node/hooks/features/scroll/useGridScroll.js +3 -2
- package/node/hooks/features/virtualization/useGridVirtualScroller.js +23 -9
- package/node/hooks/utils/useGridApiMethod.js +3 -1
- package/node/index.js +13 -1
- package/node/internals/index.js +22 -0
- package/node/utils/ResizeObserver.js +16 -0
- package/node/utils/keyboardUtils.js +15 -5
- package/package.json +2 -2
- package/utils/ResizeObserver.d.ts +4 -0
- package/utils/ResizeObserver.js +10 -0
- package/utils/keyboardUtils.d.ts +1 -0
- package/utils/keyboardUtils.js +12 -4
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,95 @@
|
|
|
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.21.0
|
|
7
|
+
|
|
8
|
+
_Oct 17, 2024_
|
|
9
|
+
|
|
10
|
+
We'd like to offer a big thanks to the 13 contributors who made this release possible. Here are some highlights ✨:
|
|
11
|
+
|
|
12
|
+
- 💫 Added [`dataset` prop support for the Scatter Chart component](https://mui.com/x/react-charts/scatter/#using-a-dataset)
|
|
13
|
+
- 🐞 Bugfixes
|
|
14
|
+
- 📚 Documentation improvements
|
|
15
|
+
|
|
16
|
+
Special thanks go out to the community contributors who have helped make this release possible:
|
|
17
|
+
@k-rajat19, @kalyan90, @rotembarsela, @wangkailang.
|
|
18
|
+
Following are all team members who have contributed to this release:
|
|
19
|
+
@arthurbalduini, @cherniavskii, @flaviendelangle, @JCQuintas, @LukasTy, @MBilalShafi, @arminmeh, @romgrk, @KenanYusuf, @oliviertassinari, @samuelsycamore.
|
|
20
|
+
|
|
21
|
+
<!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->
|
|
22
|
+
|
|
23
|
+
### Data Grid
|
|
24
|
+
|
|
25
|
+
#### `@mui/x-data-grid@7.21.0`
|
|
26
|
+
|
|
27
|
+
- [DataGrid] Fix `onRowSelectionModelChange` firing unnecessarily on initial render (#14909) @MBilalShafi
|
|
28
|
+
- [DataGrid] Fix `onRowSelectionModelChange` not being called after row is removed (#14972) @arminmeh
|
|
29
|
+
- [DataGrid] Fix pagination scrollbar issue on small zoom (#14911) @cherniavskii
|
|
30
|
+
- [DataGrid] Fix scroll jumping (#14929) @romgrk
|
|
31
|
+
- [DataGrid] Fix excessive white space at the end of the Data Grid (#14864) @kalyan90
|
|
32
|
+
|
|
33
|
+
#### `@mui/x-data-grid-pro@7.21.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
34
|
+
|
|
35
|
+
Same changes as in `@mui/x-data-grid@7.21.0`, plus:
|
|
36
|
+
|
|
37
|
+
- [DataGridPro] Fix indeterminate checkbox state for server-side data (#14956) @MBilalShafi
|
|
38
|
+
- [DataGridPro] Fix scrolling performance when `rowHeight={undefined}` (#14983) @cherniavskii
|
|
39
|
+
- [DataGridPro] List view (#14393) @KenanYusuf @cherniavskii
|
|
40
|
+
|
|
41
|
+
#### `@mui/x-data-grid-premium@7.21.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
42
|
+
|
|
43
|
+
Same changes as in `@mui/x-data-grid-pro@7.21.0`.
|
|
44
|
+
|
|
45
|
+
### Date and Time Pickers
|
|
46
|
+
|
|
47
|
+
#### `@mui/x-date-pickers@7.21.0`
|
|
48
|
+
|
|
49
|
+
- [pickers] Cleanup `PageUp` and `PageDown` event handlers on time components (#14928) @arthurbalduini
|
|
50
|
+
- [pickers] Create the new picker's `ownerState` object (#14889) @flaviendelangle
|
|
51
|
+
- [pickers] Fix `PickerValidDate` usage in the Date Range Picker Toolbar (#14925) @flaviendelangle
|
|
52
|
+
|
|
53
|
+
#### `@mui/x-date-pickers-pro@7.21.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
54
|
+
|
|
55
|
+
Same changes as in `@mui/x-date-pickers@7.21.0`.
|
|
56
|
+
|
|
57
|
+
### Charts
|
|
58
|
+
|
|
59
|
+
#### `@mui/x-charts@7.21.0`
|
|
60
|
+
|
|
61
|
+
- [charts] Allow `dataset` to be used with the Scatter Chart (#14915) @JCQuintas
|
|
62
|
+
- [charts] Ensure `reduce motion` preference disables animation on page load (#14417) @JCQuintas
|
|
63
|
+
|
|
64
|
+
#### `@mui/x-charts-pro@7.0.0-beta.5` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
65
|
+
|
|
66
|
+
Same changes as in `@mui/x-charts@7.21.0`.
|
|
67
|
+
|
|
68
|
+
### Tree View
|
|
69
|
+
|
|
70
|
+
#### `@mui/x-tree-view@7.21.0`
|
|
71
|
+
|
|
72
|
+
- [TreeView] Fix `alpha` usage with CSS variables (#14969) @wangkailang
|
|
73
|
+
- [TreeView] Fix usage of the `aria-selected` attribute (#14991) @flaviendelangle
|
|
74
|
+
- [TreeView] Fix hydration error (#15002) @flaviendelangle
|
|
75
|
+
|
|
76
|
+
### `@mui/x-codemod@7.21.0`
|
|
77
|
+
|
|
78
|
+
- [codemod] Add a new utility to rename imports (#14919) @flaviendelangle
|
|
79
|
+
|
|
80
|
+
### Docs
|
|
81
|
+
|
|
82
|
+
- [docs] Add recipe showing how to toggle detail panels on row click (#14666) @k-rajat19
|
|
83
|
+
- [docs] Fix broken link to the validation section in the Data grid component (#14973) @arminmeh
|
|
84
|
+
- [docs] Update v5 migration codesandbox @oliviertassinari
|
|
85
|
+
- [docs] Enforce component style rules for the Tree View (#14963) @samuelsycamore
|
|
86
|
+
|
|
87
|
+
### Core
|
|
88
|
+
|
|
89
|
+
- [core] Fix shortcut with localization keyboard (#14220) @rotembarsela
|
|
90
|
+
- [core] Fix docs deploy command (#14920) @arminmeh
|
|
91
|
+
- [code-infra] Prepare some tests to work in `vitest/playwright` (#14926) @JCQuintas
|
|
92
|
+
- [test] Fix `AdapterDayjs` coverage calculation (#14957) @LukasTy
|
|
93
|
+
- [test] Fix split infinitive API convention use @oliviertassinari
|
|
94
|
+
|
|
6
95
|
## 7.20.0
|
|
7
96
|
|
|
8
97
|
_Oct 11, 2024_
|
|
@@ -79,7 +168,7 @@ Same changes as in `@mui/x-charts@7.20.0`.
|
|
|
79
168
|
- [docs] Add custom columns panel demo (#14825) @cherniavskii
|
|
80
169
|
- [docs] Capitalize all instances of "Data Grid" (#14884) @samuelsycamore
|
|
81
170
|
- [docs] Divide charts `tooltip` and `highlighting` pages (#14824) @JCQuintas
|
|
82
|
-
- [docs] Document the
|
|
171
|
+
- [docs] Document the `<TreeItem2 />` component and the `useTreeItem2` hook (#14551) @noraleonte
|
|
83
172
|
- [docs] Fix column pinning for "Disable detail panel content scroll" section (#14854 and #14885) @kalyan90
|
|
84
173
|
- [docs] Fix detail panel demo not working well with pinned columns (#14883) @cherniavskii
|
|
85
174
|
- [docs] New recipe of a read-only field (#14606) @flaviendelangle
|
|
@@ -367,7 +456,7 @@ Same changes as in `@mui/x-charts@7.17.0`.
|
|
|
367
456
|
|
|
368
457
|
### Docs
|
|
369
458
|
|
|
370
|
-
- [docs] Add missing callout on "Imperative API"
|
|
459
|
+
- [docs] Add missing callout on "Imperative API" Tree View sections (#14503) @flaviendelangle
|
|
371
460
|
- [docs] Fix broken redirection to MUI X v5 @oliviertassinari
|
|
372
461
|
- [docs] Fix multiple `console.error` messages on `charts` docs (#14554) @JCQuintas
|
|
373
462
|
- [docs] Fixed typo in Row Grouping recipes (#14549) @Miodini
|
|
@@ -708,7 +797,7 @@ Same changes as in `@mui/x-charts@7.13.0`.
|
|
|
708
797
|
- [core] Fix ESLint issue (#14207) @LukasTy
|
|
709
798
|
- [core] Fix Netlify build cache issue (#14182) @cherniavskii
|
|
710
799
|
- [code-infra] Refactor Netlify `cache-docs` plugin setup (#14105) @LukasTy
|
|
711
|
-
- [internals] Move utils needed for
|
|
800
|
+
- [internals] Move utils needed for Tree View virtualization to shared package (#14202) @flaviendelangle
|
|
712
801
|
|
|
713
802
|
## 7.12.1
|
|
714
803
|
|
|
@@ -799,7 +888,7 @@ This expansion of the Pro plan comes with some adjustments to our pricing strate
|
|
|
799
888
|
|
|
800
889
|
We'd like to offer a big thanks to the 12 contributors who made this release possible. Here are some highlights ✨:
|
|
801
890
|
|
|
802
|
-
- 🎁 Introduce [item reordering using drag and drop](https://mui.com/x/react-tree-view/rich-tree-view/ordering/) on the
|
|
891
|
+
- 🎁 Introduce [item reordering using drag and drop](https://mui.com/x/react-tree-view/rich-tree-view/ordering/) on the `<RichTreeViewPro />` component
|
|
803
892
|
|
|
804
893
|
<img width="287" src="https://github.com/user-attachments/assets/78bd83c5-7ce4-4ed7-acf9-be70b2dbce54" alt="Item reordering using drag and drop" />
|
|
805
894
|
|
|
@@ -1292,7 +1381,7 @@ Same changes as in `@mui/x-date-pickers@7.8.0`.
|
|
|
1292
1381
|
|
|
1293
1382
|
- [core] Add eslint rule to restrict import from `../internals` root (#13633) @JCQuintas
|
|
1294
1383
|
- [docs-infra] Sync `\_app` folder with monorepo (#13582) @Janpot
|
|
1295
|
-
- [license] Allow usage of
|
|
1384
|
+
- [license] Allow usage of Charts and Tree View Pro package for old premium licenses (#13619) @flaviendelangle
|
|
1296
1385
|
|
|
1297
1386
|
## 7.7.1
|
|
1298
1387
|
|
|
@@ -1360,7 +1449,7 @@ Same changes as in `@mui/x-date-pickers@7.7.1`, plus:
|
|
|
1360
1449
|
- [TreeView] Improve typing to support optional dependencies in plugins and in the item (#13523) @flaviendelangle
|
|
1361
1450
|
- [TreeView] Move `useTreeViewId` to the core plugins (#13566) @flaviendelangle
|
|
1362
1451
|
- [TreeView] Remove unused state from `useTreeViewId` (#13579) @flaviendelangle
|
|
1363
|
-
- [TreeView] Support `itemId` with escaping characters when using
|
|
1452
|
+
- [TreeView] Support `itemId` with escaping characters when using Simple Tree View (#13487) @oukunan
|
|
1364
1453
|
|
|
1365
1454
|
### Docs
|
|
1366
1455
|
|
|
@@ -1440,7 +1529,7 @@ Same changes as in `@mui/x-date-pickers@7.7.0`.
|
|
|
1440
1529
|
- [TreeView] Improve TypeScript for plugins (#13380) @flaviendelangle
|
|
1441
1530
|
- [TreeView] Improve the typing of the cancelable events (#13152) @flaviendelangle
|
|
1442
1531
|
- [TreeView] Prepare support for PigmentCSS (#13412) @flaviendelangle
|
|
1443
|
-
- [TreeView] Refactor the
|
|
1532
|
+
- [TreeView] Refactor the Tree View internals to prepare for headless API (#13311) @flaviendelangle
|
|
1444
1533
|
|
|
1445
1534
|
### Docs
|
|
1446
1535
|
|
|
@@ -1455,7 +1544,7 @@ Same changes as in `@mui/x-date-pickers@7.7.0`.
|
|
|
1455
1544
|
- [core] Add `eslint-plugin-react-compiler` experimental version and rules (#13415) @JCQuintas
|
|
1456
1545
|
- [core] Minor setup cleanup (#13467) @LukasTy
|
|
1457
1546
|
- [infra] Adjust CI setup (#13448) @LukasTy
|
|
1458
|
-
- [test] Add tests for the custom slots of
|
|
1547
|
+
- [test] Add tests for the custom slots of `<TreeItem2 />` (#13314) @flaviendelangle
|
|
1459
1548
|
|
|
1460
1549
|
## 7.6.2
|
|
1461
1550
|
|
|
@@ -1640,7 +1729,7 @@ _May 23, 2024_
|
|
|
1640
1729
|
|
|
1641
1730
|
We'd like to offer a big thanks to the 6 contributors who made this release possible. Here are some highlights ✨:
|
|
1642
1731
|
|
|
1643
|
-
- 🧰 Improve
|
|
1732
|
+
- 🧰 Improve Tree View testing
|
|
1644
1733
|
- 📊 Add `label` to be displayed in BarChart
|
|
1645
1734
|
|
|
1646
1735
|
### Data Grid
|
|
@@ -1816,7 +1905,7 @@ Same changes as in `@mui/x-date-pickers@7.4.0`.
|
|
|
1816
1905
|
|
|
1817
1906
|
#### `@mui/x-tree-view@7.4.0`
|
|
1818
1907
|
|
|
1819
|
-
- [TreeView] Fix props propagation and theme entry in
|
|
1908
|
+
- [TreeView] Fix props propagation and theme entry in `<TreeItem2 />` (#12889) @flaviendelangle
|
|
1820
1909
|
|
|
1821
1910
|
### Docs
|
|
1822
1911
|
|
|
@@ -2126,7 +2215,7 @@ Same changes as in `@mui/x-date-pickers@7.2.0`, plus:
|
|
|
2126
2215
|
### Docs
|
|
2127
2216
|
|
|
2128
2217
|
- [docs] Add `AxisFormatter` documentation for customizing tick/tooltip value formatting (#12700) @JCQuintas
|
|
2129
|
-
- [docs] Add file explorer example to rich
|
|
2218
|
+
- [docs] Add file explorer example to rich Tree View customization docs (#12707) @noraleonte
|
|
2130
2219
|
- [docs] Do not use import of depth 3 in the doc (#12716) @flaviendelangle
|
|
2131
2220
|
- [docs] Explain how to clip plots with composition (#12679) @alexfauquette
|
|
2132
2221
|
- [docs] Fix typo in Data Grid v7 migration page (#12720) @bfaulk96
|
|
@@ -2202,7 +2291,7 @@ Same changes as in `@mui/x-date-pickers@7.1.1`, plus:
|
|
|
2202
2291
|
#### `@mui/x-tree-view@7.1.1`
|
|
2203
2292
|
|
|
2204
2293
|
- [TreeView] Add JSDoc to all `publicAPI` methods (#12649) @flaviendelangle
|
|
2205
|
-
- [TreeView] Create
|
|
2294
|
+
- [TreeView] Create `<RichTreeViewPro />` component (not released yet) (#12610) @flaviendelangle
|
|
2206
2295
|
- [TreeView] Create Pro package (not released yet) (#12240) @flaviendelangle
|
|
2207
2296
|
- [TreeView] Fix typo in errors (#12623) @alissa-tung
|
|
2208
2297
|
- [TreeView] New API method: `setItemExpansion` (#12595) @flaviendelangle
|
|
@@ -2222,13 +2311,13 @@ Same changes as in `@mui/x-date-pickers@7.1.1`, plus:
|
|
|
2222
2311
|
- [docs] Move Data Grid interfaces to standard API page layout (#12016) @alexfauquette
|
|
2223
2312
|
- [docs] Remove ` around @default values (#12158) @alexfauquette
|
|
2224
2313
|
- [docs] Remove `day` from the default `dayOfWeekFormatter` function params (#12644) @LukasTy
|
|
2225
|
-
- [docs] Use
|
|
2314
|
+
- [docs] Use `<TreeItem2 />` for icon expansion example on `<RichTreeView />` (#12563) @flaviendelangle
|
|
2226
2315
|
|
|
2227
2316
|
### Core
|
|
2228
2317
|
|
|
2229
2318
|
- [core] Add cherry-pick `master` to `v6` action (#12648) @LukasTy
|
|
2230
2319
|
- [core] Fix typo in `@mui/x-tree-view-pro/themeAugmentation` (#12674) @flaviendelangle
|
|
2231
|
-
- [core] Introduce `describeTreeView` to run test on
|
|
2320
|
+
- [core] Introduce `describeTreeView` to run test on `<SimpleTreeView />` and `<RichTreeView />`, using `<TreeItem />` and `<TreeItem2 />` + migrate expansion tests (#12428) @flaviendelangle
|
|
2232
2321
|
- [core] Limit `test-types` CI step allowed memory (#12651) @LukasTy
|
|
2233
2322
|
- [core] Remove explicit `express` package (#12602) @LukasTy
|
|
2234
2323
|
- [core] Update to new embedded translations in the docs package (#12232) @Janpot
|
|
@@ -2293,7 +2382,7 @@ Same changes as in `@mui/x-date-pickers@7.1.0`, plus:
|
|
|
2293
2382
|
|
|
2294
2383
|
#### `@mui/x-tree-view@7.1.0`
|
|
2295
2384
|
|
|
2296
|
-
- [TreeView] Do not use outdated version of the state to compute new label first char in
|
|
2385
|
+
- [TreeView] Do not use outdated version of the state to compute new label first char in Rich Tree View (#12512) @flaviendelangle
|
|
2297
2386
|
|
|
2298
2387
|
### Docs
|
|
2299
2388
|
|
|
@@ -2420,7 +2509,7 @@ Same changes as in `@mui/x-date-pickers@7.0.0`, plus:
|
|
|
2420
2509
|
|
|
2421
2510
|
#### Breaking changes
|
|
2422
2511
|
|
|
2423
|
-
- The required `nodeId` prop used by
|
|
2512
|
+
- The required `nodeId` prop used by `<TreeItem />` has been renamed to `itemId` for consistency:
|
|
2424
2513
|
|
|
2425
2514
|
```diff
|
|
2426
2515
|
<TreeView>
|
|
@@ -2573,7 +2662,7 @@ The `onNodeFocus` callback has been renamed to `onItemFocus` for consistency:
|
|
|
2573
2662
|
#### `@mui/x-tree-view@7.0.0-beta.7`
|
|
2574
2663
|
|
|
2575
2664
|
- [TreeView] Clean the usage of the term "item" and "node" in API introduced during v7 (#12368) @noraleonte
|
|
2576
|
-
- [TreeView] Introduce a new
|
|
2665
|
+
- [TreeView] Introduce a new `<TreeItem2 />` component and a new `useTreeItem2` hook (#11721) @flaviendelangle
|
|
2577
2666
|
- [TreeView] Rename `onNodeFocus` to `onItemFocus` (#12419) @noraleonte
|
|
2578
2667
|
|
|
2579
2668
|
### Docs
|
|
@@ -2631,9 +2720,9 @@ Same changes as in `@mui/x-data-grid-pro@7.0.0-beta.6`.
|
|
|
2631
2720
|
|
|
2632
2721
|
#### Breaking changes
|
|
2633
2722
|
|
|
2634
|
-
- The component used to animate the item children is now defined as a slot on the
|
|
2723
|
+
- The component used to animate the item children is now defined as a slot on the `<TreeItem />` component.
|
|
2635
2724
|
|
|
2636
|
-
If you were passing a `TransitionComponent` or `TransitionProps` to your
|
|
2725
|
+
If you were passing a `TransitionComponent` or `TransitionProps` to your `<TreeItem />` component,
|
|
2637
2726
|
you need to use the new `groupTransition` slot on this component:
|
|
2638
2727
|
|
|
2639
2728
|
```diff
|
|
@@ -2649,7 +2738,7 @@ Same changes as in `@mui/x-data-grid-pro@7.0.0-beta.6`.
|
|
|
2649
2738
|
</SimpleTreeView>
|
|
2650
2739
|
```
|
|
2651
2740
|
|
|
2652
|
-
- The `group` class of the
|
|
2741
|
+
- The `group` class of the `<TreeItem />` component has been renamed to `groupTransition` to match with its new slot name.
|
|
2653
2742
|
|
|
2654
2743
|
```diff
|
|
2655
2744
|
const StyledTreeItem = styled(TreeItem)({
|
|
@@ -2663,14 +2752,14 @@ Same changes as in `@mui/x-data-grid-pro@7.0.0-beta.6`.
|
|
|
2663
2752
|
#### `@mui/x-tree-view@7.0.0-beta.6`
|
|
2664
2753
|
|
|
2665
2754
|
- [TreeView] Fix invalid nodes state when updating `props.items` (#12359) @flaviendelangle
|
|
2666
|
-
- [TreeView] In the
|
|
2755
|
+
- [TreeView] In the Rich Tree View, do not use the item id as the HTML id attribute (#12319) @flaviendelangle
|
|
2667
2756
|
- [TreeView] New instance and publicAPI method: `getItem` (#12251) @flaviendelangle
|
|
2668
2757
|
- [TreeView] Replace `TransitionComponent` and `TransitionProps` with a `groupTransition` slot (#12336) @flaviendelangle
|
|
2669
2758
|
|
|
2670
2759
|
### Docs
|
|
2671
2760
|
|
|
2672
2761
|
- [docs] Add a note about `z-index` usage in SVG (#12337) @alexfauquette
|
|
2673
|
-
- [docs]
|
|
2762
|
+
- [docs] Rich Tree View customization docs (#12231) @noraleonte
|
|
2674
2763
|
|
|
2675
2764
|
### Core
|
|
2676
2765
|
|
|
@@ -3323,7 +3412,7 @@ Same changes as in `@mui/x-date-pickers@7.0.0-beta.0`, plus:
|
|
|
3323
3412
|
|
|
3324
3413
|
### Docs
|
|
3325
3414
|
|
|
3326
|
-
- [docs] Add `contextValue` to the headless
|
|
3415
|
+
- [docs] Add `contextValue` to the headless Tree View doc (#11705) @flaviendelangle
|
|
3327
3416
|
- [docs] Add section for the `disableSelection` prop (#11821) @flaviendelangle
|
|
3328
3417
|
- [docs] Fix brand name non-breaking space (#11758) @oliviertassinari
|
|
3329
3418
|
- [docs] Fix typo in Data Grid components page (#11775) @flaviendelangle
|
|
@@ -3346,7 +3435,7 @@ We'd like to offer a big thanks to the 11 contributors who made this release pos
|
|
|
3346
3435
|
|
|
3347
3436
|
- 🎁 The Data Grid headers have been refactored to bring immense improvements to scrolling, state management, and overall performance of the grid.
|
|
3348
3437
|
- ⚙️ The Data Grid disabled column-specific features like filtering, sorting, grouping, etc. could now be accessed programmatically. See the related [docs](https://next.mui.com/x/react-data-grid/api-object/#access-the-disabled-column-features) section.
|
|
3349
|
-
- 🚀 Uplift the
|
|
3438
|
+
- 🚀 Uplift the Simple Tree View customization examples (#11424) @noraleonte
|
|
3350
3439
|
- 🌍 Add Croatian (hr-HR), Portuguese (pt-PT), and Chinese (Hong Kong) (zh-HK) locales (#11668) on the Data Grid @BCaspari
|
|
3351
3440
|
- 🐞 Bugfixes
|
|
3352
3441
|
- 💔 Bump `@mui/material` peer dependency for all packages (#11692) @LukasTy
|
|
@@ -3557,7 +3646,7 @@ Same changes as in `@mui/x-date-pickers@7.0.0-alpha.9`.
|
|
|
3557
3646
|
```
|
|
3558
3647
|
|
|
3559
3648
|
- The `useTreeItem` hook has been renamed `useTreeItemState`.
|
|
3560
|
-
This will help create a new headless version of the
|
|
3649
|
+
This will help create a new headless version of the Tree Item component based on a future `useTreeItem` hook.
|
|
3561
3650
|
|
|
3562
3651
|
```diff
|
|
3563
3652
|
-import { TreeItem, useTreeItem } from '@mui/x-tree-view/TreeItem';
|
|
@@ -3657,13 +3746,13 @@ Same changes as in `@mui/x-date-pickers@7.0.0-alpha.9`.
|
|
|
3657
3746
|
- [docs] Cleanup and fix Pickers Playground styling (#11700) @LukasTy
|
|
3658
3747
|
- [docs] First draft of the Tree View custom plugin doc (#11564) @flaviendelangle
|
|
3659
3748
|
- [docs] Fix Pickers migration syntax and diffs (#11695) @LukasTy
|
|
3660
|
-
- [docs] Fix generated
|
|
3749
|
+
- [docs] Fix generated Tree View API docs (#11737) @LukasTy
|
|
3661
3750
|
- [docs] Generate docs for Tree View slots (#11730) @flaviendelangle
|
|
3662
3751
|
- [docs] Improve codemod for v7 (#11650) @oliviertassinari
|
|
3663
3752
|
- [docs] Improve Data Grid `pageSizeOptions` prop documentation (#11682) @oliviertassinari
|
|
3664
3753
|
- [docs] Parse markdown on API docs demo titles (#11728) @LukasTy
|
|
3665
3754
|
- [docs] Remove the description from the `className` prop (#11693) @oliviertassinari
|
|
3666
|
-
- [docs] Uplift
|
|
3755
|
+
- [docs] Uplift Simple Tree View customization examples (#11424) @noraleonte
|
|
3667
3756
|
- [docs] Uplift the Date Pickers playground (#11555) @danilo-leal
|
|
3668
3757
|
|
|
3669
3758
|
### Core
|
|
@@ -3740,8 +3829,8 @@ Same changes as in `@mui/x-date-pickers@7.0.0-alpha.8`.
|
|
|
3740
3829
|
|
|
3741
3830
|
### Tree View / `@mui/x-tree-view@7.0.0-alpha.8`
|
|
3742
3831
|
|
|
3743
|
-
- [
|
|
3744
|
-
- [
|
|
3832
|
+
- [TreeView] Cleanup `onKeyDown` handler (#11481) @flaviendelangle
|
|
3833
|
+
- [TreeView] Define the parameters used by each plugin to avoid listing them in each component (#11473) @flaviendelangle
|
|
3745
3834
|
|
|
3746
3835
|
### Docs
|
|
3747
3836
|
|
|
@@ -3768,7 +3857,7 @@ We'd like to offer a big thanks to the 7 contributors who made this release poss
|
|
|
3768
3857
|
|
|
3769
3858
|
- 🎁 New component to create a Tree View from a structured data source:
|
|
3770
3859
|
|
|
3771
|
-
You can now directly pass your data to the
|
|
3860
|
+
You can now directly pass your data to the `<RichTreeView />` component instead of manually converting it into JSX `<TreeItem />` components:
|
|
3772
3861
|
|
|
3773
3862
|
```tsx
|
|
3774
3863
|
const ITEMS = [
|
|
@@ -5099,7 +5188,7 @@ Here is an example of the renaming for the `<ChartsTooltip />` component.
|
|
|
5099
5188
|
|
|
5100
5189
|
### Core
|
|
5101
5190
|
|
|
5102
|
-
- [core] Adds migration docs for
|
|
5191
|
+
- [core] Adds migration docs for Charts, Pickers, and Tree View (#10926) @michelengelen
|
|
5103
5192
|
- [core] Bump monorepo (#10959) @LukasTy
|
|
5104
5193
|
- [core] Changed prettier branch value to next (#10917) @michelengelen
|
|
5105
5194
|
- [core] Fix GitHub title tag consistency @oliviertassinari
|
package/DataGrid/DataGrid.js
CHANGED
|
@@ -695,6 +695,7 @@ DataGridRaw.propTypes = {
|
|
|
695
695
|
* Setting it to a lower value could be useful when using dynamic row height,
|
|
696
696
|
* but might reduce performance when displaying a large number of rows.
|
|
697
697
|
* @default 166
|
|
698
|
+
* @deprecated
|
|
698
699
|
*/
|
|
699
700
|
rowPositionsDebounceMs: PropTypes.number,
|
|
700
701
|
/**
|
package/DataGrid/index.d.ts
CHANGED
package/DataGrid/index.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export * from "./DataGrid.js";
|
|
2
|
-
export { DATA_GRID_PROPS_DEFAULT_VALUES } from "./useDataGridProps.js";
|
|
1
|
+
export * from "./DataGrid.js";
|
|
@@ -28,6 +28,7 @@ import { useGridColumnGrouping, columnGroupsStateInitializer } from "../hooks/fe
|
|
|
28
28
|
import { useGridVirtualization, virtualizationStateInitializer } from "../hooks/features/virtualization/index.js";
|
|
29
29
|
import { columnResizeStateInitializer, useGridColumnResize } from "../hooks/features/columnResize/useGridColumnResize.js";
|
|
30
30
|
import { rowSpanningStateInitializer, useGridRowSpanning } from "../hooks/features/rows/useGridRowSpanning.js";
|
|
31
|
+
import { listViewStateInitializer, useGridListView } from "../hooks/features/listView/useGridListView.js";
|
|
31
32
|
export const useDataGridComponent = (inputApiRef, props) => {
|
|
32
33
|
const apiRef = useGridInitialization(inputApiRef, props);
|
|
33
34
|
|
|
@@ -57,12 +58,13 @@ export const useDataGridComponent = (inputApiRef, props) => {
|
|
|
57
58
|
useGridInitializeState(columnMenuStateInitializer, apiRef, props);
|
|
58
59
|
useGridInitializeState(columnGroupsStateInitializer, apiRef, props);
|
|
59
60
|
useGridInitializeState(virtualizationStateInitializer, apiRef, props);
|
|
61
|
+
useGridInitializeState(listViewStateInitializer, apiRef, props);
|
|
60
62
|
useGridKeyboardNavigation(apiRef, props);
|
|
61
63
|
useGridRowSelection(apiRef, props);
|
|
62
64
|
useGridColumns(apiRef, props);
|
|
63
65
|
useGridRows(apiRef, props);
|
|
64
66
|
useGridRowSpanning(apiRef, props);
|
|
65
|
-
useGridParamsApi(apiRef);
|
|
67
|
+
useGridParamsApi(apiRef, props);
|
|
66
68
|
useGridColumnSpanning(apiRef);
|
|
67
69
|
useGridColumnGrouping(apiRef, props);
|
|
68
70
|
useGridEditing(apiRef, props);
|
|
@@ -83,5 +85,6 @@ export const useDataGridComponent = (inputApiRef, props) => {
|
|
|
83
85
|
useGridEvents(apiRef, props);
|
|
84
86
|
useGridStatePersistence(apiRef);
|
|
85
87
|
useGridVirtualization(apiRef, props);
|
|
88
|
+
useGridListView(apiRef, props);
|
|
86
89
|
return apiRef;
|
|
87
90
|
};
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
import { DataGridProcessedProps, DataGridProps
|
|
1
|
+
import { DataGridProcessedProps, DataGridProps } from '../models/props/DataGridProps';
|
|
2
2
|
import { GridValidRowModel } from '../models';
|
|
3
|
-
/**
|
|
4
|
-
* The default values of `DataGridPropsWithDefaultValues` to inject in the props of DataGrid.
|
|
5
|
-
*/
|
|
6
|
-
export declare const DATA_GRID_PROPS_DEFAULT_VALUES: DataGridPropsWithDefaultValues;
|
|
7
3
|
export declare const useDataGridProps: <R extends GridValidRowModel>(inProps: DataGridProps<R>) => DataGridProcessedProps<R>;
|
|
@@ -3,8 +3,8 @@ import * as React from 'react';
|
|
|
3
3
|
import { useThemeProps } from '@mui/material/styles';
|
|
4
4
|
import { GRID_DEFAULT_LOCALE_TEXT } from "../constants/index.js";
|
|
5
5
|
import { DATA_GRID_DEFAULT_SLOTS_COMPONENTS } from "../constants/defaultGridSlotsComponents.js";
|
|
6
|
-
import { GridEditModes } from "../models/index.js";
|
|
7
6
|
import { computeSlots, useProps } from "../internals/utils/index.js";
|
|
7
|
+
import { DATA_GRID_PROPS_DEFAULT_VALUES } from "../constants/dataGridPropsDefaultValues.js";
|
|
8
8
|
const DATA_GRID_FORCED_PROPS = {
|
|
9
9
|
disableMultipleColumnsFiltering: true,
|
|
10
10
|
disableMultipleColumnsSorting: true,
|
|
@@ -14,67 +14,8 @@ const DATA_GRID_FORCED_PROPS = {
|
|
|
14
14
|
checkboxSelectionVisibleOnly: false,
|
|
15
15
|
disableColumnReorder: true,
|
|
16
16
|
keepColumnPositionIfDraggedOutside: false,
|
|
17
|
-
signature: 'DataGrid'
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* The default values of `DataGridPropsWithDefaultValues` to inject in the props of DataGrid.
|
|
22
|
-
*/
|
|
23
|
-
export const DATA_GRID_PROPS_DEFAULT_VALUES = {
|
|
24
|
-
autoHeight: false,
|
|
25
|
-
autoPageSize: false,
|
|
26
|
-
autosizeOnMount: false,
|
|
27
|
-
checkboxSelection: false,
|
|
28
|
-
checkboxSelectionVisibleOnly: false,
|
|
29
|
-
clipboardCopyCellDelimiter: '\t',
|
|
30
|
-
columnBufferPx: 150,
|
|
31
|
-
columnHeaderHeight: 56,
|
|
32
|
-
disableAutosize: false,
|
|
33
|
-
disableColumnFilter: false,
|
|
34
|
-
disableColumnMenu: false,
|
|
35
|
-
disableColumnReorder: false,
|
|
36
|
-
disableColumnResize: false,
|
|
37
|
-
disableColumnSelector: false,
|
|
38
|
-
disableColumnSorting: false,
|
|
39
|
-
disableDensitySelector: false,
|
|
40
|
-
disableEval: false,
|
|
41
|
-
disableMultipleColumnsFiltering: false,
|
|
42
|
-
disableMultipleColumnsSorting: false,
|
|
43
|
-
disableMultipleRowSelection: false,
|
|
44
|
-
disableRowSelectionOnClick: false,
|
|
45
|
-
disableVirtualization: false,
|
|
46
|
-
editMode: GridEditModes.Cell,
|
|
47
|
-
filterDebounceMs: 150,
|
|
48
|
-
filterMode: 'client',
|
|
49
|
-
hideFooter: false,
|
|
50
|
-
hideFooterPagination: false,
|
|
51
|
-
hideFooterRowCount: false,
|
|
52
|
-
hideFooterSelectedRowCount: false,
|
|
53
|
-
ignoreDiacritics: false,
|
|
54
|
-
ignoreValueFormatterDuringExport: false,
|
|
55
|
-
// TODO v8: Update to 'select'
|
|
56
|
-
indeterminateCheckboxAction: 'deselect',
|
|
57
|
-
keepColumnPositionIfDraggedOutside: false,
|
|
58
|
-
keepNonExistentRowsSelected: false,
|
|
59
|
-
loading: false,
|
|
60
|
-
logger: console,
|
|
61
|
-
logLevel: process.env.NODE_ENV === 'production' ? 'error' : 'warn',
|
|
62
|
-
pageSizeOptions: [25, 50, 100],
|
|
63
|
-
pagination: false,
|
|
64
|
-
paginationMode: 'client',
|
|
65
|
-
resizeThrottleMs: 60,
|
|
66
|
-
rowBufferPx: 150,
|
|
67
|
-
rowHeight: 52,
|
|
68
|
-
rowPositionsDebounceMs: 166,
|
|
69
|
-
rows: [],
|
|
70
|
-
rowSelection: true,
|
|
71
|
-
rowSpacingType: 'margin',
|
|
72
|
-
showCellVerticalBorder: false,
|
|
73
|
-
showColumnVerticalBorder: false,
|
|
74
|
-
sortingMode: 'client',
|
|
75
|
-
sortingOrder: ['asc', 'desc', null],
|
|
76
|
-
throttleRowsMs: 0,
|
|
77
|
-
unstable_rowSpanning: false
|
|
17
|
+
signature: 'DataGrid',
|
|
18
|
+
unstable_listView: false
|
|
78
19
|
};
|
|
79
20
|
const defaultSlots = DATA_GRID_DEFAULT_SLOTS_COMPONENTS;
|
|
80
21
|
export const useDataGridProps = inProps => {
|
package/components/GridRow.js
CHANGED
|
@@ -7,7 +7,6 @@ import clsx from 'clsx';
|
|
|
7
7
|
import { unstable_useForkRef as useForkRef } from '@mui/utils';
|
|
8
8
|
import { fastMemo } from '@mui/x-internals/fastMemo';
|
|
9
9
|
import { GridEditModes, GridRowModes, GridCellModes } from "../models/gridEditRowModel.js";
|
|
10
|
-
import { useGridApiContext } from "../hooks/utils/useGridApiContext.js";
|
|
11
10
|
import { gridClasses } from "../constants/gridClasses.js";
|
|
12
11
|
import { composeGridClasses } from "../utils/composeGridClasses.js";
|
|
13
12
|
import { useGridRootProps } from "../hooks/utils/useGridRootProps.js";
|
|
@@ -25,6 +24,7 @@ import { PinnedPosition, gridPinnedColumnPositionLookup } from "./cell/GridCell.
|
|
|
25
24
|
import { GridScrollbarFillerCell as ScrollbarFiller } from "./GridScrollbarFillerCell.js";
|
|
26
25
|
import { getPinnedCellOffset } from "../internals/utils/getPinnedCellOffset.js";
|
|
27
26
|
import { useGridConfiguration } from "../hooks/utils/useGridConfiguration.js";
|
|
27
|
+
import { useGridPrivateApiContext } from "../hooks/utils/useGridPrivateApiContext.js";
|
|
28
28
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
29
29
|
function EmptyCell({
|
|
30
30
|
width
|
|
@@ -40,6 +40,13 @@ function EmptyCell({
|
|
|
40
40
|
}
|
|
41
41
|
});
|
|
42
42
|
}
|
|
43
|
+
process.env.NODE_ENV !== "production" ? EmptyCell.propTypes = {
|
|
44
|
+
// ----------------------------- Warning --------------------------------
|
|
45
|
+
// | These PropTypes are generated from the TypeScript type definitions |
|
|
46
|
+
// | To update them edit the TypeScript types and run "pnpm proptypes" |
|
|
47
|
+
// ----------------------------------------------------------------------
|
|
48
|
+
width: PropTypes.number.isRequired
|
|
49
|
+
} : void 0;
|
|
43
50
|
const GridRow = /*#__PURE__*/React.forwardRef(function GridRow(props, refProp) {
|
|
44
51
|
const {
|
|
45
52
|
selected,
|
|
@@ -67,7 +74,7 @@ const GridRow = /*#__PURE__*/React.forwardRef(function GridRow(props, refProp) {
|
|
|
67
74
|
onMouseOver
|
|
68
75
|
} = props,
|
|
69
76
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
70
|
-
const apiRef =
|
|
77
|
+
const apiRef = useGridPrivateApiContext();
|
|
71
78
|
const configuration = useGridConfiguration();
|
|
72
79
|
const ref = React.useRef(null);
|
|
73
80
|
const rootProps = useGridRootProps();
|
|
@@ -91,30 +98,17 @@ const GridRow = /*#__PURE__*/React.forwardRef(function GridRow(props, refProp) {
|
|
|
91
98
|
const getRowAriaAttributes = configuration.hooks.useGridRowAriaAttributes();
|
|
92
99
|
React.useLayoutEffect(() => {
|
|
93
100
|
if (currentPage.range) {
|
|
94
|
-
// The index prop is relative to the rows from all pages. As example, the index prop of the
|
|
95
|
-
// first row is 5 if `paginationModel.pageSize=5` and `paginationModel.page=1`. However, the index used by the virtualization
|
|
96
|
-
// doesn't care about pagination and considers the rows from the current page only, so the
|
|
97
|
-
// first row always has index=0. We need to subtract the index of the first row to make it
|
|
98
|
-
// compatible with the index used by the virtualization.
|
|
99
101
|
const rowIndex = apiRef.current.getRowIndexRelativeToVisibleRows(rowId);
|
|
100
|
-
//
|
|
101
|
-
if (rowIndex
|
|
102
|
+
// Pinned rows are not part of the visible rows
|
|
103
|
+
if (rowIndex !== undefined) {
|
|
102
104
|
apiRef.current.unstable_setLastMeasuredRowIndex(rowIndex);
|
|
103
105
|
}
|
|
104
106
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
if (!rootElement || hasFixedHeight || typeof ResizeObserver === 'undefined') {
|
|
108
|
-
return undefined;
|
|
107
|
+
if (ref.current && rowHeight === 'auto') {
|
|
108
|
+
return apiRef.current.observeRowHeight(ref.current, rowId);
|
|
109
109
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
const height = entry.borderBoxSize && entry.borderBoxSize.length > 0 ? entry.borderBoxSize[0].blockSize : entry.contentRect.height;
|
|
113
|
-
apiRef.current.unstable_storeRowHeightMeasurement(rowId, height);
|
|
114
|
-
});
|
|
115
|
-
resizeObserver.observe(rootElement);
|
|
116
|
-
return () => resizeObserver.disconnect();
|
|
117
|
-
}, [apiRef, currentPage.range, index, rowHeight, rowId]);
|
|
110
|
+
return undefined;
|
|
111
|
+
}, [apiRef, currentPage.range, rowHeight, rowId]);
|
|
118
112
|
const publish = React.useCallback((eventName, propHandler) => event => {
|
|
119
113
|
// Ignore portal
|
|
120
114
|
if (isEventTargetInPortal(event)) {
|
|
@@ -171,15 +165,7 @@ const GridRow = /*#__PURE__*/React.forwardRef(function GridRow(props, refProp) {
|
|
|
171
165
|
disableColumnReorder
|
|
172
166
|
} = rootProps;
|
|
173
167
|
const rowReordering = rootProps.rowReordering;
|
|
174
|
-
const
|
|
175
|
-
let minHeight = rowHeight;
|
|
176
|
-
if (minHeight === 'auto' && sizes) {
|
|
177
|
-
const numberOfBaseSizes = 1;
|
|
178
|
-
const maximumSize = sizes.baseCenter ?? 0;
|
|
179
|
-
if (maximumSize > 0 && numberOfBaseSizes > 1) {
|
|
180
|
-
minHeight = maximumSize;
|
|
181
|
-
}
|
|
182
|
-
}
|
|
168
|
+
const heightEntry = useGridSelector(apiRef, () => _extends({}, apiRef.current.getRowHeightEntry(rowId)), objectShallowCompare);
|
|
183
169
|
const style = React.useMemo(() => {
|
|
184
170
|
if (isNotVisible) {
|
|
185
171
|
return {
|
|
@@ -191,25 +177,25 @@ const GridRow = /*#__PURE__*/React.forwardRef(function GridRow(props, refProp) {
|
|
|
191
177
|
const rowStyle = _extends({}, styleProp, {
|
|
192
178
|
maxHeight: rowHeight === 'auto' ? 'none' : rowHeight,
|
|
193
179
|
// max-height doesn't support "auto"
|
|
194
|
-
minHeight,
|
|
180
|
+
minHeight: rowHeight,
|
|
195
181
|
'--height': typeof rowHeight === 'number' ? `${rowHeight}px` : rowHeight
|
|
196
182
|
});
|
|
197
|
-
if (
|
|
183
|
+
if (heightEntry.spacingTop) {
|
|
198
184
|
const property = rootProps.rowSpacingType === 'border' ? 'borderTopWidth' : 'marginTop';
|
|
199
|
-
rowStyle[property] =
|
|
185
|
+
rowStyle[property] = heightEntry.spacingTop;
|
|
200
186
|
}
|
|
201
|
-
if (
|
|
187
|
+
if (heightEntry.spacingBottom) {
|
|
202
188
|
const property = rootProps.rowSpacingType === 'border' ? 'borderBottomWidth' : 'marginBottom';
|
|
203
189
|
let propertyValue = rowStyle[property];
|
|
204
190
|
// avoid overriding existing value
|
|
205
191
|
if (typeof propertyValue !== 'number') {
|
|
206
192
|
propertyValue = parseInt(propertyValue || '0', 10);
|
|
207
193
|
}
|
|
208
|
-
propertyValue +=
|
|
194
|
+
propertyValue += heightEntry.spacingBottom;
|
|
209
195
|
rowStyle[property] = propertyValue;
|
|
210
196
|
}
|
|
211
197
|
return rowStyle;
|
|
212
|
-
}, [isNotVisible, rowHeight, styleProp,
|
|
198
|
+
}, [isNotVisible, rowHeight, styleProp, heightEntry, rootProps.rowSpacingType]);
|
|
213
199
|
const rowClassNames = apiRef.current.unstable_applyPipeProcessors('rowClassName', [], rowId);
|
|
214
200
|
const ariaAttributes = rowNode ? getRowAriaAttributes(rowNode, index) : undefined;
|
|
215
201
|
if (typeof rootProps.getRowClassName === 'function') {
|
|
@@ -287,6 +273,9 @@ const GridRow = /*#__PURE__*/React.forwardRef(function GridRow(props, refProp) {
|
|
|
287
273
|
for (let i = renderContext.firstColumnIndex; i < renderContext.lastColumnIndex; i += 1) {
|
|
288
274
|
const column = visibleColumns[i];
|
|
289
275
|
const indexInSection = i - pinnedColumns.left.length;
|
|
276
|
+
if (!column) {
|
|
277
|
+
continue;
|
|
278
|
+
}
|
|
290
279
|
cells.push(getCell(column, indexInSection, i, middleColumnsLength));
|
|
291
280
|
}
|
|
292
281
|
if (hasVirtualFocusCellRight) {
|
|
@@ -74,6 +74,14 @@ function GridOverlayWrapper(props) {
|
|
|
74
74
|
}, props))
|
|
75
75
|
}));
|
|
76
76
|
}
|
|
77
|
+
process.env.NODE_ENV !== "production" ? GridOverlayWrapper.propTypes = {
|
|
78
|
+
// ----------------------------- Warning --------------------------------
|
|
79
|
+
// | These PropTypes are generated from the TypeScript type definitions |
|
|
80
|
+
// | To update them edit the TypeScript types and run "pnpm proptypes" |
|
|
81
|
+
// ----------------------------------------------------------------------
|
|
82
|
+
loadingOverlayVariant: PropTypes.oneOf(['circular-progress', 'linear-progress', 'skeleton']),
|
|
83
|
+
overlayType: PropTypes.oneOf(['loadingOverlay', 'noResultsOverlay', 'noRowsOverlay'])
|
|
84
|
+
} : void 0;
|
|
77
85
|
process.env.NODE_ENV !== "production" ? GridOverlays.propTypes = {
|
|
78
86
|
// ----------------------------- Warning --------------------------------
|
|
79
87
|
// | These PropTypes are generated from the TypeScript type definitions |
|