@mui/x-tree-view 8.27.1 → 9.0.0-alpha.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 +204 -5
- package/RichTreeView/RichTreeView.js +32 -19
- package/RichTreeView/RichTreeView.types.d.ts +2 -5
- package/RichTreeView/useExtractRichTreeViewParameters.js +9 -5
- package/SimpleTreeView/SimpleTreeView.js +5 -0
- package/SimpleTreeView/useExtractSimpleTreeViewParameters.js +6 -4
- package/TreeItem/TreeItem.d.ts +1 -1
- package/TreeItem/TreeItem.js +3 -2
- package/TreeItemIcon/TreeItemIcon.js +2 -2
- package/esm/RichTreeView/RichTreeView.js +32 -19
- package/esm/RichTreeView/RichTreeView.types.d.ts +2 -5
- package/esm/RichTreeView/useExtractRichTreeViewParameters.js +9 -5
- package/esm/SimpleTreeView/SimpleTreeView.js +5 -0
- package/esm/SimpleTreeView/useExtractSimpleTreeViewParameters.js +6 -4
- package/esm/TreeItem/TreeItem.d.ts +1 -1
- package/esm/TreeItem/TreeItem.js +2 -1
- package/esm/TreeItemIcon/TreeItemIcon.js +1 -1
- package/esm/index.js +1 -1
- package/esm/internals/MinimalTreeViewStore/MinimalTreeViewStore.types.d.ts +10 -6
- package/esm/internals/MinimalTreeViewStore/MinimalTreeViewStore.utils.d.ts +1 -1
- package/esm/internals/MinimalTreeViewStore/MinimalTreeViewStore.utils.js +2 -2
- package/esm/internals/RichTreeViewStore/RichTreeViewStore.types.d.ts +14 -1
- package/esm/internals/RichTreeViewStore/RichTreeViewStore.utils.js +2 -1
- package/esm/internals/TreeViewProvider/index.d.ts +1 -0
- package/esm/internals/TreeViewProvider/index.js +2 -1
- package/esm/internals/components/RichTreeViewItems.d.ts +29 -5
- package/esm/internals/components/RichTreeViewItems.js +25 -7
- package/esm/internals/hooks/useTreeViewRootProps.d.ts +2 -1
- package/esm/internals/index.d.ts +3 -3
- package/esm/internals/index.js +2 -2
- package/esm/internals/plugins/items/selectors.d.ts +6 -1
- package/esm/internals/plugins/items/selectors.js +5 -1
- package/esm/models/domStructure.d.ts +1 -0
- package/esm/models/domStructure.js +1 -0
- package/esm/models/index.d.ts +1 -0
- package/esm/models/index.js +1 -0
- package/esm/useTreeItem/useTreeItem.js +3 -0
- package/index.js +1 -1
- package/internals/MinimalTreeViewStore/MinimalTreeViewStore.types.d.ts +10 -6
- package/internals/MinimalTreeViewStore/MinimalTreeViewStore.utils.d.ts +1 -1
- package/internals/MinimalTreeViewStore/MinimalTreeViewStore.utils.js +2 -2
- package/internals/RichTreeViewStore/RichTreeViewStore.types.d.ts +14 -1
- package/internals/RichTreeViewStore/RichTreeViewStore.utils.js +2 -1
- package/internals/TreeViewProvider/index.d.ts +1 -0
- package/internals/TreeViewProvider/index.js +8 -1
- package/internals/components/RichTreeViewItems.d.ts +29 -5
- package/internals/components/RichTreeViewItems.js +25 -6
- package/internals/hooks/useTreeViewRootProps.d.ts +2 -1
- package/internals/index.d.ts +3 -3
- package/internals/index.js +12 -0
- package/internals/plugins/items/selectors.d.ts +6 -1
- package/internals/plugins/items/selectors.js +5 -1
- package/models/domStructure.d.ts +1 -0
- package/models/domStructure.js +5 -0
- package/models/index.d.ts +1 -0
- package/models/index.js +11 -0
- package/package.json +4 -4
- package/useTreeItem/useTreeItem.js +3 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,13 +1,212 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
## 9.0.0-alpha.0
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
|
+
_Feb 16, 2026_
|
|
7
6
|
|
|
8
|
-
|
|
7
|
+
We'd like to extend a big thank you to the 21 contributors who made this release possible. Here are some highlights ✨:
|
|
8
|
+
|
|
9
|
+
- Add support for virtualized items on `<RichTreeViewPro />`:
|
|
10
|
+
|
|
11
|
+
```tsx
|
|
12
|
+
<RichTreeViewPro items={ITEMS} virtualization itemHeight={48} />
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
- Add Thai (`thTH`) locale on the Data Grid and the Date and Time Pickers (#21116) @siriwatknp
|
|
16
|
+
- Add a new `AdapterDayjsBuddhist` adapter for Date and Time Pickers (#20984) @siriwatknp
|
|
17
|
+
- Add support for virtualization in the rich tree view (#20780) @flaviendelangle
|
|
18
|
+
- Add WebGL renderer to Heatmap (#20756) @bernardobelchior
|
|
19
|
+
|
|
20
|
+
Special thanks go out to these community members for their valuable contributions:
|
|
21
|
+
@jhe-iqbis
|
|
22
|
+
|
|
23
|
+
The following team members contributed to this release:
|
|
24
|
+
@alexfauquette, @arminmeh, @bernardobelchior, @brijeshb42, @cherniavskii, @dav-is, @flaviendelangle, @Janpot, @JCQuintas, @mapache-salvaje, @MBilalShafi, @michelengelen, @mj12albert, @noraleonte, @oliviertassinari, @rita-codes, @romgrk, @sai6855, @siriwatknp
|
|
25
|
+
|
|
26
|
+
### Data Grid
|
|
27
|
+
|
|
28
|
+
#### `@mui/x-data-grid@9.0.0-alpha.0`
|
|
29
|
+
|
|
30
|
+
- [DataGrid] Update default `logicOperator` behavior in filtering docs (#21098) @michelengelen
|
|
31
|
+
- [DataGrid] Add `thTH` locale (#21116) @siriwatknp
|
|
32
|
+
- [DataGrid] Fix initial filter value state in CustomMultiValueOperator demo (#21217) @sai6855
|
|
33
|
+
|
|
34
|
+
#### `@mui/x-data-grid-pro@9.0.0-alpha.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
35
|
+
|
|
36
|
+
Same changes as in `@mui/x-data-grid@9.0.0-alpha.0`, plus:
|
|
37
|
+
|
|
38
|
+
- [DataGridPro] Cleanup outdated rows on `dataSource` reference update (#21138) @MBilalShafi
|
|
39
|
+
|
|
40
|
+
#### `@mui/x-data-grid-premium@9.0.0-alpha.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
41
|
+
|
|
42
|
+
Same changes as in `@mui/x-data-grid-pro@9.0.0-alpha.0`.
|
|
43
|
+
|
|
44
|
+
### Date and Time Pickers
|
|
45
|
+
|
|
46
|
+
#### `@mui/x-date-pickers@9.0.0-alpha.0`
|
|
47
|
+
|
|
48
|
+
- [pickers] Add `AdapterDayjsBuddhist` adapter (#20984) @siriwatknp
|
|
49
|
+
- [pickers] Add `thTH` locale (#21116) @siriwatknp
|
|
50
|
+
|
|
51
|
+
#### `@mui/x-date-pickers-pro@9.0.0-alpha.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
52
|
+
|
|
53
|
+
Same changes as in `@mui/x-date-pickers@9.0.0-alpha.0`.
|
|
54
|
+
|
|
55
|
+
### Charts
|
|
56
|
+
|
|
57
|
+
#### `@mui/x-charts@9.0.0-alpha.0`
|
|
58
|
+
|
|
59
|
+
- [charts] Add Legend actions (#20404) @JCQuintas
|
|
60
|
+
- [charts] Add `Chart` suffix to MUI Classes (#21042) @JCQuintas
|
|
61
|
+
- [charts] Add `axesGap` props to put space between axes (#20904) @alexfauquette
|
|
62
|
+
- [charts] Add `cleanIdentifier` function to charts series instance (#20832) @JCQuintas
|
|
63
|
+
- [charts] Add `initialHiddenItems` prop to set initial state (#20894) @JCQuintas
|
|
64
|
+
- [charts] Add `useXAxisCoordinates` and `useYAxisCoordinates` hooks (#20972) @bernardobelchior
|
|
65
|
+
- [charts] Add axis slots and expose axis ticks hooks (#20935) @bernardobelchior
|
|
66
|
+
- [charts] Change `line` legend marker to be a line (#21059) @JCQuintas
|
|
67
|
+
- [charts] Codemod test pattern with function (#21111) @JCQuintas
|
|
68
|
+
- [charts] Control the item tooltip (#20617) @alexfauquette
|
|
69
|
+
- [charts] Enable keyboard navigation in radar chart (#20765) @alexfauquette
|
|
70
|
+
- [charts] Export `CartesianChartSeriesType` and `StackableChartSeriesType` (#21012) @bernardobelchior
|
|
71
|
+
- [charts] Export plugins from premium (#20866) @JCQuintas
|
|
72
|
+
- [charts] Filter hidden series from axis tooltip (#21273) @Copilot
|
|
73
|
+
- [charts] Filter hidden series from axis tooltip (#21273) @Copilot
|
|
74
|
+
- [charts] Fix rename `getSVGPoint` to `getChartPoint` (#21335) @bernardobelchior
|
|
75
|
+
- [charts] Fix cleanup function in useChartInteractionListener to correctly remove event listeners with options (#21218) @sai6855
|
|
76
|
+
- [charts] Fix import rename in codemod (#21112) @JCQuintas
|
|
77
|
+
- [charts] Fix multiple exports of `HighlightScope` (#21270) @bernardobelchior
|
|
78
|
+
- [charts] Fix test inconsistency in charts (#20907) @JCQuintas
|
|
79
|
+
- [charts] Fix tooltip position for stacked line series (#20901) @alexfauquette
|
|
80
|
+
- [charts] Make Highlight scope a generic (#21189) @alexfauquette
|
|
81
|
+
- [charts] Make `LegendItemParams.type` required (#21003) @alexfauquette
|
|
82
|
+
- [charts] Make `seriesId` a string only (#20997) @alexfauquette
|
|
83
|
+
- [charts] Make the `useChartRootRef` support typing parameter (#21023) @alexfauquette
|
|
84
|
+
- [charts] Memoize HeatmapItem to avoid re-render when fading/highlighting (#20865) @bernardobelchior
|
|
85
|
+
- [charts] Move axis id to `data-axis-id` attribute instead of class (#21037) @JCQuintas
|
|
86
|
+
- [charts] Move `cleanIdentifier` and `serializeIdentifier` instance methods to `useChartSeriesConfig` plugin (#21025) @JCQuintas
|
|
87
|
+
- [charts] Move `seriesConfig` to `useChartSeriesConfig` plugin (#21004) @JCQuintas
|
|
88
|
+
- [charts] Move element refs to `useChartElementRef` plugin (#21099) @JCQuintas
|
|
89
|
+
- [charts] Move types related to `seriesConfig` into the `useChartSeriesConfig` plugin folder (#21026) @JCQuintas
|
|
90
|
+
- [charts] Remove `data-has-focused-item` from `ChartsSurface` (#21255) @bernardobelchior
|
|
91
|
+
- [charts] Remove default generic of item identifiers (#21182) @alexfauquette
|
|
92
|
+
- [charts] Remove deprecated `id` from `LegendItemParams` (#21055) @alexfauquette
|
|
93
|
+
- [charts] Remove deprecated `ChartApi` export from `ChartContainer` (#20975) @JCQuintas
|
|
94
|
+
- [charts] Remove deprecated `useAxisTooltip` in favor of `useAxesTooltip` (#20962) @Copilot
|
|
95
|
+
- [charts] Remove deprecated series type helpers and functions (#20998) @alexfauquette
|
|
96
|
+
- [charts] Rename `ChartContainer` to `ChartsContainer` (#21173) @JCQuintas
|
|
97
|
+
- [charts] Rename `getSVGPoint` to `getChartPoint` (#21322) @bernardobelchior
|
|
98
|
+
- [charts] Rename `TickItemType` to `TickItem` (#21008) @bernardobelchior
|
|
99
|
+
- [charts] Replace props `id` by `seriesId` when necessary (#21057) @alexfauquette
|
|
100
|
+
- [charts] Revert `touch-action: pan-y` removal when zoom is disabled (#20852) @bernardobelchior
|
|
101
|
+
- [charts] The `useXxxSeries([])` return empty array (#21001) @alexfauquette
|
|
102
|
+
- [charts] Use `NumberValue` in domain limit function (#21054) @JCQuintas
|
|
103
|
+
|
|
104
|
+
#### `@mui/x-charts-pro@9.0.0-alpha.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
9
105
|
|
|
10
|
-
|
|
106
|
+
Same changes as in `@mui/x-charts@9.0.0-alpha.0`, plus:
|
|
107
|
+
|
|
108
|
+
- [charts-pro] Add border radius to heatmap (#20931) @bernardobelchior
|
|
109
|
+
- [charts-pro] Add keyboard navigation to funnel (#20766) @alexfauquette
|
|
110
|
+
- [charts-pro] Add keyboard navigation to heatmap (#20786) @alexfauquette
|
|
111
|
+
- [charts-pro] Add keyboard navigation to sankey (#20777) @alexfauquette
|
|
112
|
+
- [charts-pro] Fix Heatmap's `onItemClick` not triggering (#21016) @bernardobelchior
|
|
113
|
+
- [charts-pro] Fix crash when two same-direction axes have a zoom preview (#20916) @bernardobelchior
|
|
114
|
+
- [charts-pro] Handle edge case in export image (#21190) @bernardobelchior
|
|
115
|
+
- [charts-pro] Prefer global pointer interaction tracker in Heatmap (#20697) @bernardobelchior
|
|
116
|
+
- [charts-pro] Support composition for Sankey (#20604) @alexfauquette
|
|
117
|
+
- [charts-pro] Update Heatmap identifier (#21124) @alexfauquette
|
|
118
|
+
- [charts-pro] Update default value of `hideLegend` prop in `Heatmap` (#20961) @Copilot
|
|
119
|
+
|
|
120
|
+
#### `@mui/x-charts-premium@9.0.0-alpha.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
121
|
+
|
|
122
|
+
Same changes as in `@mui/x-charts-pro@9.0.0-alpha.0`, plus:
|
|
123
|
+
|
|
124
|
+
- [charts-premium] Add WebGL renderer to Heatmap (#20756) @bernardobelchior
|
|
125
|
+
- [charts-premium] Add `ChartContainerPremium` (#20910) @bernardobelchior
|
|
126
|
+
- [charts-premium] Add `HeatmapPremium` (#20930) @bernardobelchior
|
|
127
|
+
- [charts-premium] Add keyboard navigation to range-bar (#21272) @alexfauquette
|
|
128
|
+
- [charts-premium] Extract `HeatmapSVGPlot` from `HeatmapPlot` component (#21015) @bernardobelchior
|
|
129
|
+
- [charts-premium] Fix `ChartDataProviderPremium` tests (#20868) @bernardobelchior
|
|
130
|
+
- [charts-premium] Fix links in comments for chart containers and data providers (#21105) @bernardobelchior
|
|
131
|
+
|
|
132
|
+
### Tree View
|
|
133
|
+
|
|
134
|
+
#### `@mui/x-tree-view@9.0.0-alpha.0`
|
|
135
|
+
|
|
136
|
+
_No changes._
|
|
137
|
+
|
|
138
|
+
#### `@mui/x-tree-view-pro@9.0.0-alpha.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
139
|
+
|
|
140
|
+
Same changes as in `@mui/x-tree-view@9.0.0-alpha.0`, plus:
|
|
141
|
+
|
|
142
|
+
- [RichTreeViewPro] Add support for virtualization (#20780) @flaviendelangle
|
|
143
|
+
|
|
144
|
+
### Codemod
|
|
145
|
+
|
|
146
|
+
#### `@mui/x-codemod@9.0.0-alpha.0`
|
|
147
|
+
|
|
148
|
+
- [codemod] Document and Clean the codemod utils (#21014) @alexfauquette
|
|
149
|
+
|
|
150
|
+
### Docs
|
|
151
|
+
|
|
152
|
+
- [docs] Add focus highlight in composition snipets (#20614) @alexfauquette
|
|
153
|
+
- [docs] Add simple candlestick chart demo (#20912) @bernardobelchior
|
|
154
|
+
- [docs] Fix Waterfall Chart documentation badge from Pro to Premium (#20888) @Copilot
|
|
155
|
+
- [docs] Fix broken links on Data Grid Editing sub-pages (#20911) @arminmeh
|
|
156
|
+
- [docs] Fix docs API for HeatmapPremium (#21137) @alexfauquette
|
|
157
|
+
- [docs] Fix horizontal overflow in heatmap docs (#20968) @bernardobelchior
|
|
158
|
+
- [docs] Move Range Bar Chart to existing charts (#21120) @bernardobelchior
|
|
159
|
+
- [docs] Prepare the scheduler doc for the alpha (#21268) @flaviendelangle
|
|
160
|
+
- [docs] Rewording of the heatmap item click (#20987) @alexfauquette
|
|
161
|
+
- [scheduler][docs] Create the Quickstart page (#20913) @flaviendelangle
|
|
162
|
+
- [charts][docs] Revise the Charts CSP doc (#20906) @mapache-salvaje
|
|
163
|
+
- [charts][docs] Revise the Charts Composition doc (#20032) @mapache-salvaje
|
|
164
|
+
- [charts][docs] Revise the Charts Hooks Overview doc (#20921) @mapache-salvaje
|
|
165
|
+
- [charts][docs] Revise the Charts Legend doc (#20821) @mapache-salvaje
|
|
166
|
+
- [charts][docs] Revise the Charts Localization doc (#20800) @mapache-salvaje
|
|
167
|
+
- [charts][docs] Revise the Charts Plugins doc (#20933) @mapache-salvaje
|
|
168
|
+
- [charts][docs] Revise the Charts Stacking doc (#20830) @mapache-salvaje
|
|
169
|
+
- [charts][docs] Revise the Charts Styling doc (#20835) @mapache-salvaje
|
|
170
|
+
- [charts][docs] Revise the Charts Toolbar doc (#20867) @mapache-salvaje
|
|
171
|
+
- [charts][docs] Revise the Charts Tooltip doc (#20869) @mapache-salvaje
|
|
172
|
+
- [charts][docs] Revise the Charts Zoom and Pan doc (#20893) @mapache-salvaje
|
|
173
|
+
- [DataGrid][docs] Add a recipe for handling long text cell (#20754) @siriwatknp
|
|
174
|
+
- [DataGrid][docs] Add high-level competitor comparison to Overview doc (DX-117) (#20870) @mapache-salvaje
|
|
175
|
+
- [DataGrid][docs] Remove Bundling section from quickstart (#21177) @MBilalShafi
|
|
176
|
+
|
|
177
|
+
### Core
|
|
178
|
+
|
|
179
|
+
- [code-infra] Add `MUI_TEST_ENV` global (#21187) @Janpot
|
|
180
|
+
- [code-infra] Fix `material-ui/disallow-react-api-in-server-components` (#20909) @JCQuintas
|
|
181
|
+
- [code-infra] Fix `renameImports` codemod not preserving comments (#20977) @JCQuintas
|
|
182
|
+
- [code-infra] Fix the label comparison to use lower case (#20934) @brijeshb42
|
|
183
|
+
- [code-infra] Github action to sync title and label (#20922) @brijeshb42
|
|
184
|
+
- [code-infra] Ignore scheduler demo with random data (#20982) @JCQuintas
|
|
185
|
+
- [code-infra] Improve `codemod` testing setup (#20981) @JCQuintas
|
|
186
|
+
- [code-infra] Only ignore renovate[bot] in changelog generation script (#21185) @bernardobelchior
|
|
187
|
+
- [code-infra] Prepare for v9 (#20860) @JCQuintas
|
|
188
|
+
- [code-infra] Set `rasterizehtml` version in pnpm catalog (#21175) @bernardobelchior
|
|
189
|
+
- [code-infra] Update codeowners (#20886) @JCQuintas
|
|
190
|
+
- [code-infra] V9 preparation (#20928) @JCQuintas
|
|
191
|
+
- [code-infra] eslint rule rename (#21172) @Janpot
|
|
192
|
+
- [code-infra][docs] V9 charts migration doc kickoff (#20973) @JCQuintas
|
|
193
|
+
- [docs-infra] Add Cookie Banner and Analytics Provider (#21228) @dav-is
|
|
194
|
+
- [docs-infra] Fix missing slots section on API page (#20915) @Janpot
|
|
195
|
+
- [docs-infra] Fix two broken links (#20914) @Janpot
|
|
196
|
+
- [docs-infra] Port demo changes (#20971) @Janpot
|
|
197
|
+
- [internal] Add information about codemods to AGENTS.md (#21011) @bernardobelchior
|
|
198
|
+
- [internal] Fix codemod versioning instructions in `AGENTS.md` (#21024) @bernardobelchior
|
|
199
|
+
- [internal] Fix missing generated props in master (#21142) @bernardobelchior
|
|
200
|
+
- [internal] Headless sorting plugin (#21089) @arminmeh
|
|
201
|
+
- [internal] Remove duplicate code (#20896) @oliviertassinari
|
|
202
|
+
|
|
203
|
+
### Miscellaneous
|
|
204
|
+
|
|
205
|
+
- Bump next to ^15.5.11 (#21171) @Copilot
|
|
206
|
+
- [core] Fix CI (#21223) @flaviendelangle
|
|
207
|
+
- [PoC] Headless data grid (#20645) @cherniavskii
|
|
208
|
+
|
|
209
|
+
## v8.27.1
|
|
11
210
|
|
|
12
211
|
_Feb 13, 2026_
|
|
13
212
|
|
|
@@ -15,14 +15,12 @@ var _store = require("@mui/x-internals/store");
|
|
|
15
15
|
var _Alert = _interopRequireDefault(require("@mui/material/Alert"));
|
|
16
16
|
var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
|
|
17
17
|
var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
|
|
18
|
-
var _useSlotProps = _interopRequireDefault(require("@mui/utils/useSlotProps"));
|
|
19
18
|
var _warning = require("@mui/x-internals/warning");
|
|
20
19
|
var _richTreeViewClasses = require("./richTreeViewClasses");
|
|
21
20
|
var _zeroStyled = require("../internals/zero-styled");
|
|
22
21
|
var _TreeViewProvider = require("../internals/TreeViewProvider");
|
|
23
22
|
var _RichTreeViewItems = require("../internals/components/RichTreeViewItems");
|
|
24
23
|
var _lazyLoading = require("../internals/plugins/lazyLoading");
|
|
25
|
-
var _useTreeViewRootProps = require("../internals/hooks/useTreeViewRootProps");
|
|
26
24
|
var _TreeViewItemDepthContext = require("../internals/TreeViewItemDepthContext");
|
|
27
25
|
var _useExtractRichTreeViewParameters = require("./useExtractRichTreeViewParameters");
|
|
28
26
|
var _items = require("../internals/plugins/items");
|
|
@@ -81,27 +79,29 @@ const RichTreeView = exports.RichTreeView = /*#__PURE__*/React.forwardRef(functi
|
|
|
81
79
|
}
|
|
82
80
|
}
|
|
83
81
|
const {
|
|
84
|
-
slots,
|
|
82
|
+
slots: inSlots,
|
|
85
83
|
slotProps,
|
|
86
84
|
apiRef,
|
|
87
85
|
parameters,
|
|
88
86
|
forwardedProps
|
|
89
87
|
} = (0, _useExtractRichTreeViewParameters.useExtractRichTreeViewParameters)(props);
|
|
88
|
+
|
|
89
|
+
// Context hooks
|
|
90
90
|
const store = (0, _useTreeViewStore.useTreeViewStore)(_RichTreeViewStore.RichTreeViewStore, parameters);
|
|
91
|
+
|
|
92
|
+
// Ref hooks
|
|
91
93
|
const ref = React.useRef(null);
|
|
92
94
|
const handleRef = (0, _useMergedRefs.useMergedRefs)(forwardedRef, ref);
|
|
93
|
-
|
|
94
|
-
|
|
95
|
+
|
|
96
|
+
// Selector hooks
|
|
95
97
|
const isLoading = (0, _store.useStore)(store, _lazyLoading.lazyLoadingSelectors.isItemLoading, null);
|
|
96
98
|
const error = (0, _store.useStore)(store, _lazyLoading.lazyLoadingSelectors.itemError, null);
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
ownerState: props
|
|
104
|
-
});
|
|
99
|
+
|
|
100
|
+
// Feature hooks
|
|
101
|
+
const classes = useUtilityClasses(props);
|
|
102
|
+
const slots = React.useMemo(() => (0, _extends2.default)({
|
|
103
|
+
root: RichTreeViewRoot
|
|
104
|
+
}, inSlots), [inSlots]);
|
|
105
105
|
if (isLoading) {
|
|
106
106
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
|
|
107
107
|
children: "Loading..."
|
|
@@ -122,12 +122,13 @@ const RichTreeView = exports.RichTreeView = /*#__PURE__*/React.forwardRef(functi
|
|
|
122
122
|
rootRef: ref,
|
|
123
123
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TreeViewItemDepthContext.TreeViewItemDepthContext.Provider, {
|
|
124
124
|
value: _items.itemsSelectors.itemDepth,
|
|
125
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
125
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_RichTreeViewItems.RichTreeViewItems, {
|
|
126
|
+
slots: slots,
|
|
127
|
+
slotProps: slotProps,
|
|
128
|
+
forwardedProps: forwardedProps,
|
|
129
|
+
ownerState: props,
|
|
130
|
+
rootRef: handleRef
|
|
131
|
+
})
|
|
131
132
|
})
|
|
132
133
|
});
|
|
133
134
|
});
|
|
@@ -188,6 +189,13 @@ process.env.NODE_ENV !== "production" ? RichTreeView.propTypes = {
|
|
|
188
189
|
* @default false
|
|
189
190
|
*/
|
|
190
191
|
disableSelection: _propTypes.default.bool,
|
|
192
|
+
/**
|
|
193
|
+
* When equal to 'flat', the tree is rendered as a flat list (children are rendered as siblings of their parents).
|
|
194
|
+
* When equal to 'nested', the tree is rendered with nested children (children are rendered inside the groupTransition slot of their children).
|
|
195
|
+
* Nested DOM structure is not compatible with collapse / expansion animations.
|
|
196
|
+
* @default 'nested'
|
|
197
|
+
*/
|
|
198
|
+
domStructure: _propTypes.default.oneOf(['flat', 'nested']),
|
|
191
199
|
/**
|
|
192
200
|
* Expanded item ids.
|
|
193
201
|
* Used when the item's expansion is controlled.
|
|
@@ -258,6 +266,11 @@ process.env.NODE_ENV !== "production" ? RichTreeView.propTypes = {
|
|
|
258
266
|
* @default 12px
|
|
259
267
|
*/
|
|
260
268
|
itemChildrenIndentation: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
|
|
269
|
+
/**
|
|
270
|
+
* Sets the height in pixel of an item.
|
|
271
|
+
* If not provided, no height restriction is applied to the tree item content element.
|
|
272
|
+
*/
|
|
273
|
+
itemHeight: _propTypes.default.number,
|
|
261
274
|
items: _propTypes.default.array.isRequired,
|
|
262
275
|
/**
|
|
263
276
|
* Whether multiple items can be selected.
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { Theme } from '@mui/material/styles';
|
|
3
3
|
import { SxProps } from '@mui/system/styleFunctionSx';
|
|
4
|
-
import { SlotComponentProps } from '@mui/utils/types';
|
|
5
4
|
import { RichTreeViewClasses } from "./richTreeViewClasses.js";
|
|
6
5
|
import { RichTreeViewItemsSlotProps, RichTreeViewItemsSlots } from "../internals/components/RichTreeViewItems.js";
|
|
7
6
|
import { TreeViewSlotProps, TreeViewSlots } from "../internals/TreeViewProvider/TreeViewStyleContext.js";
|
|
@@ -9,16 +8,14 @@ import { RichTreeViewStore } from "../internals/RichTreeViewStore/index.js";
|
|
|
9
8
|
import { TreeViewValidItem } from "../models/items.js";
|
|
10
9
|
import { UseTreeViewStoreParameters } from "../internals/hooks/useTreeViewStore.js";
|
|
11
10
|
import { TreeViewPublicAPI } from "../internals/models/index.js";
|
|
12
|
-
export interface RichTreeViewSlots extends TreeViewSlots, RichTreeViewItemsSlots {
|
|
11
|
+
export interface RichTreeViewSlots extends TreeViewSlots, Omit<RichTreeViewItemsSlots, 'root'> {
|
|
13
12
|
/**
|
|
14
13
|
* Element rendered at the root.
|
|
15
14
|
* @default RichTreeViewRoot
|
|
16
15
|
*/
|
|
17
16
|
root?: React.ElementType;
|
|
18
17
|
}
|
|
19
|
-
export interface RichTreeViewSlotProps<R extends {}, Multiple extends boolean | undefined> extends TreeViewSlotProps, RichTreeViewItemsSlotProps {
|
|
20
|
-
root?: SlotComponentProps<'ul', {}, RichTreeViewProps<R, Multiple>>;
|
|
21
|
-
}
|
|
18
|
+
export interface RichTreeViewSlotProps<R extends {}, Multiple extends boolean | undefined> extends TreeViewSlotProps, RichTreeViewItemsSlotProps<RichTreeViewProps<R, Multiple>> {}
|
|
22
19
|
export type RichTreeViewApiRef<R extends TreeViewValidItem<R> = any, Multiple extends boolean | undefined = any> = React.RefObject<Partial<TreeViewPublicAPI<RichTreeViewStore<R, Multiple>>> | undefined>;
|
|
23
20
|
export interface RichTreeViewPropsBase extends React.HTMLAttributes<HTMLUListElement> {
|
|
24
21
|
className?: string;
|
|
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports.useExtractRichTreeViewParameters = useExtractRichTreeViewParameters;
|
|
9
9
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
10
10
|
var React = _interopRequireWildcard(require("react"));
|
|
11
|
-
const _excluded = ["apiRef", "slots", "slotProps", "disabledItemsFocusable", "items", "isItemDisabled", "isItemSelectionDisabled", "getItemLabel", "getItemChildren", "getItemId", "onItemClick", "itemChildrenIndentation", "id", "expandedItems", "defaultExpandedItems", "onExpandedItemsChange", "onItemExpansionToggle", "expansionTrigger", "disableSelection", "selectedItems", "defaultSelectedItems", "multiSelect", "checkboxSelection", "selectionPropagation", "onSelectedItemsChange", "onItemSelectionToggle", "onItemFocus", "onItemLabelChange", "isItemEditable"];
|
|
11
|
+
const _excluded = ["apiRef", "slots", "slotProps", "disabledItemsFocusable", "items", "isItemDisabled", "isItemSelectionDisabled", "getItemLabel", "getItemChildren", "getItemId", "onItemClick", "itemChildrenIndentation", "id", "expandedItems", "defaultExpandedItems", "onExpandedItemsChange", "onItemExpansionToggle", "expansionTrigger", "disableSelection", "selectedItems", "defaultSelectedItems", "multiSelect", "checkboxSelection", "selectionPropagation", "onSelectedItemsChange", "onItemSelectionToggle", "onItemFocus", "itemHeight", "onItemLabelChange", "isItemEditable", "domStructure"];
|
|
12
12
|
function useExtractRichTreeViewParameters(props) {
|
|
13
13
|
const {
|
|
14
14
|
// Props for Provider
|
|
@@ -40,9 +40,11 @@ function useExtractRichTreeViewParameters(props) {
|
|
|
40
40
|
onSelectedItemsChange,
|
|
41
41
|
onItemSelectionToggle,
|
|
42
42
|
onItemFocus,
|
|
43
|
+
itemHeight,
|
|
43
44
|
// RichTreeViewStore parameters
|
|
44
45
|
onItemLabelChange,
|
|
45
|
-
isItemEditable
|
|
46
|
+
isItemEditable,
|
|
47
|
+
domStructure
|
|
46
48
|
|
|
47
49
|
// Forwarded props
|
|
48
50
|
} = props,
|
|
@@ -73,14 +75,16 @@ function useExtractRichTreeViewParameters(props) {
|
|
|
73
75
|
onSelectedItemsChange,
|
|
74
76
|
onItemSelectionToggle,
|
|
75
77
|
onItemFocus,
|
|
78
|
+
itemHeight,
|
|
76
79
|
// RichTreeViewStore parameters
|
|
77
80
|
onItemLabelChange,
|
|
78
|
-
isItemEditable
|
|
81
|
+
isItemEditable,
|
|
82
|
+
domStructure
|
|
79
83
|
}), [
|
|
80
84
|
// Shared parameters
|
|
81
|
-
disabledItemsFocusable, items, isItemDisabled, isItemSelectionDisabled, getItemLabel, getItemChildren, getItemId, onItemClick, itemChildrenIndentation, id, expandedItems, defaultExpandedItems, onExpandedItemsChange, onItemExpansionToggle, expansionTrigger, disableSelection, selectedItems, defaultSelectedItems, multiSelect, checkboxSelection, selectionPropagation, onSelectedItemsChange, onItemSelectionToggle, onItemFocus,
|
|
85
|
+
disabledItemsFocusable, items, isItemDisabled, isItemSelectionDisabled, getItemLabel, getItemChildren, getItemId, onItemClick, itemChildrenIndentation, id, expandedItems, defaultExpandedItems, onExpandedItemsChange, onItemExpansionToggle, expansionTrigger, disableSelection, selectedItems, defaultSelectedItems, multiSelect, checkboxSelection, selectionPropagation, onSelectedItemsChange, onItemSelectionToggle, onItemFocus, itemHeight,
|
|
82
86
|
// RichTreeViewStore parameters
|
|
83
|
-
onItemLabelChange, isItemEditable]);
|
|
87
|
+
onItemLabelChange, isItemEditable, domStructure]);
|
|
84
88
|
return {
|
|
85
89
|
apiRef,
|
|
86
90
|
slots,
|
|
@@ -192,6 +192,11 @@ process.env.NODE_ENV !== "production" ? SimpleTreeView.propTypes = {
|
|
|
192
192
|
* @default 12px
|
|
193
193
|
*/
|
|
194
194
|
itemChildrenIndentation: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
|
|
195
|
+
/**
|
|
196
|
+
* Sets the height in pixel of an item.
|
|
197
|
+
* If not provided, no height restriction is applied to the tree item content element.
|
|
198
|
+
*/
|
|
199
|
+
itemHeight: _propTypes.default.number,
|
|
195
200
|
/**
|
|
196
201
|
* Whether multiple items can be selected.
|
|
197
202
|
* @default false
|
|
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports.useExtractSimpleTreeViewParameters = useExtractSimpleTreeViewParameters;
|
|
9
9
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
10
10
|
var React = _interopRequireWildcard(require("react"));
|
|
11
|
-
const _excluded = ["apiRef", "slots", "slotProps", "disabledItemsFocusable", "onItemClick", "itemChildrenIndentation", "id", "expandedItems", "defaultExpandedItems", "onExpandedItemsChange", "onItemExpansionToggle", "expansionTrigger", "disableSelection", "selectedItems", "defaultSelectedItems", "multiSelect", "checkboxSelection", "selectionPropagation", "onSelectedItemsChange", "onItemSelectionToggle", "onItemFocus"];
|
|
11
|
+
const _excluded = ["apiRef", "slots", "slotProps", "disabledItemsFocusable", "onItemClick", "itemChildrenIndentation", "id", "expandedItems", "defaultExpandedItems", "onExpandedItemsChange", "onItemExpansionToggle", "expansionTrigger", "disableSelection", "selectedItems", "defaultSelectedItems", "multiSelect", "checkboxSelection", "selectionPropagation", "onSelectedItemsChange", "onItemSelectionToggle", "onItemFocus", "itemHeight"];
|
|
12
12
|
function useExtractSimpleTreeViewParameters(props) {
|
|
13
13
|
const {
|
|
14
14
|
// Props for Provider
|
|
@@ -33,7 +33,8 @@ function useExtractSimpleTreeViewParameters(props) {
|
|
|
33
33
|
selectionPropagation,
|
|
34
34
|
onSelectedItemsChange,
|
|
35
35
|
onItemSelectionToggle,
|
|
36
|
-
onItemFocus
|
|
36
|
+
onItemFocus,
|
|
37
|
+
itemHeight
|
|
37
38
|
|
|
38
39
|
// SimpleTreeViewStore parameters
|
|
39
40
|
|
|
@@ -59,12 +60,13 @@ function useExtractSimpleTreeViewParameters(props) {
|
|
|
59
60
|
selectionPropagation,
|
|
60
61
|
onSelectedItemsChange,
|
|
61
62
|
onItemSelectionToggle,
|
|
62
|
-
onItemFocus
|
|
63
|
+
onItemFocus,
|
|
64
|
+
itemHeight
|
|
63
65
|
|
|
64
66
|
// SimpleTreeViewStore parameters
|
|
65
67
|
}), [
|
|
66
68
|
// Shared parameters
|
|
67
|
-
disabledItemsFocusable, onItemClick, itemChildrenIndentation, id, expandedItems, defaultExpandedItems, onExpandedItemsChange, onItemExpansionToggle, expansionTrigger, disableSelection, selectedItems, defaultSelectedItems, multiSelect, checkboxSelection, selectionPropagation, onSelectedItemsChange, onItemSelectionToggle, onItemFocus
|
|
69
|
+
disabledItemsFocusable, onItemClick, itemChildrenIndentation, id, expandedItems, defaultExpandedItems, onExpandedItemsChange, onItemExpansionToggle, expansionTrigger, disableSelection, selectedItems, defaultSelectedItems, multiSelect, checkboxSelection, selectionPropagation, onSelectedItemsChange, onItemSelectionToggle, onItemFocus, itemHeight
|
|
68
70
|
|
|
69
71
|
// SimpleTreeViewStore parameters
|
|
70
72
|
]);
|
package/TreeItem/TreeItem.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export declare const TreeItemErrorContainer: import("@emotion/styled").StyledCom
|
|
|
15
15
|
export declare const TreeItemLoadingContainer: import("@emotion/styled").StyledComponent<Pick<import("@mui/material/CircularProgress").CircularProgressProps, keyof import("@mui/material/CircularProgress").CircularProgressProps> & import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme>, {}, {}>;
|
|
16
16
|
export declare const TreeItemCheckbox: import("@emotion/styled").StyledComponent<Pick<Omit<CheckboxProps & {
|
|
17
17
|
visible?: boolean;
|
|
18
|
-
}, "ref"> & React.RefAttributes<HTMLButtonElement>, "form" | "slot" | "style" | "title" | "aria-expanded" | "aria-disabled" | "onDoubleClick" | "aria-hidden" | "content" | "disabled" | "slots" | "slotProps" | "className" | "classes" | "color" | "sx" | "suppressHydrationWarning" | "id" | "lang" | "name" | "role" | "tabIndex" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-braillelabel" | "aria-brailleroledescription" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colindextext" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-description" | "aria-details" | "aria-dropeffect" | "aria-errormessage" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowindextext" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerLeave" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onScrollEnd" | "onScrollEndCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onToggle" | "onBeforeToggle" | "onTransitionCancel" | "onTransitionCancelCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "onTransitionRun" | "onTransitionRunCapture" | "onTransitionStart" | "onTransitionStartCapture" | "icon" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "value" | "action" | "checked" | "visible" | "accessKey" | "autoCapitalize" | "autoFocus" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "enterKeyHint" | "hidden" | "
|
|
18
|
+
}, "ref"> & React.RefAttributes<HTMLButtonElement>, "form" | "slot" | "style" | "title" | "aria-expanded" | "aria-disabled" | "onDoubleClick" | "aria-hidden" | "content" | "disabled" | "slots" | "slotProps" | "className" | "classes" | "color" | "sx" | "suppressHydrationWarning" | "id" | "lang" | "name" | "nonce" | "part" | "role" | "tabIndex" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-braillelabel" | "aria-brailleroledescription" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colindextext" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-description" | "aria-details" | "aria-dropeffect" | "aria-errormessage" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowindextext" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerLeave" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onScrollEnd" | "onScrollEndCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onToggle" | "onBeforeToggle" | "onTransitionCancel" | "onTransitionCancelCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "onTransitionRun" | "onTransitionRunCapture" | "onTransitionStart" | "onTransitionStartCapture" | "icon" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "value" | "action" | "checked" | "visible" | "accessKey" | "autoCapitalize" | "autoFocus" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "enterKeyHint" | "hidden" | "spellCheck" | "translate" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "rel" | "resource" | "rev" | "typeof" | "vocab" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "popover" | "popoverTargetAction" | "popoverTarget" | "inert" | "inputMode" | "is" | "exportparts" | "indeterminate" | "readOnly" | "required" | "size" | "component" | "checkedIcon" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableFocusRipple" | "edge" | "inputProps" | "inputRef" | "indeterminateIcon" | keyof React.RefAttributes<HTMLButtonElement>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme>, {}, {}>;
|
|
19
19
|
type TreeItemComponent = ((props: TreeItemProps & React.RefAttributes<HTMLLIElement>) => React.JSX.Element) & {
|
|
20
20
|
propTypes?: any;
|
|
21
21
|
};
|
package/TreeItem/TreeItem.js
CHANGED
|
@@ -27,7 +27,7 @@ var _TreeItemIcon = require("../TreeItemIcon");
|
|
|
27
27
|
var _TreeItemDragAndDropOverlay = require("../TreeItemDragAndDropOverlay");
|
|
28
28
|
var _TreeItemProvider = require("../TreeItemProvider");
|
|
29
29
|
var _TreeItemLabelInput = require("../TreeItemLabelInput");
|
|
30
|
-
var
|
|
30
|
+
var _TreeViewProvider = require("../internals/TreeViewProvider");
|
|
31
31
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
32
32
|
const _excluded = ["visible"],
|
|
33
33
|
_excluded2 = ["id", "itemId", "label", "disabled", "disableSelection", "children", "slots", "slotProps", "classes"];
|
|
@@ -52,6 +52,7 @@ const TreeItemContent = exports.TreeItemContent = (0, _zeroStyled.styled)('div',
|
|
|
52
52
|
paddingLeft: `calc(${theme.spacing(1)} + var(--TreeView-itemChildrenIndentation) * var(--TreeView-itemDepth))`,
|
|
53
53
|
borderRadius: theme.shape.borderRadius,
|
|
54
54
|
width: '100%',
|
|
55
|
+
height: 'var(--TreeView-itemHeight, unset)',
|
|
55
56
|
boxSizing: 'border-box',
|
|
56
57
|
// prevent width + padding to overflow
|
|
57
58
|
position: 'relative',
|
|
@@ -173,7 +174,7 @@ if (process.env.NODE_ENV !== "production") TreeItemCheckbox.displayName = "TreeI
|
|
|
173
174
|
const useUtilityClasses = classesProp => {
|
|
174
175
|
const {
|
|
175
176
|
classes: classesFromTreeView
|
|
176
|
-
} = (0,
|
|
177
|
+
} = (0, _TreeViewProvider.useTreeViewStyleContext)();
|
|
177
178
|
const classes = (0, _extends2.default)({}, classesProp, {
|
|
178
179
|
root: (0, _clsx.default)(classesProp?.root, classesFromTreeView.root),
|
|
179
180
|
content: (0, _clsx.default)(classesProp?.content, classesFromTreeView.itemContent),
|
|
@@ -13,7 +13,7 @@ var React = _interopRequireWildcard(require("react"));
|
|
|
13
13
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
14
14
|
var _resolveComponentProps = _interopRequireDefault(require("@mui/utils/resolveComponentProps"));
|
|
15
15
|
var _useSlotProps2 = _interopRequireDefault(require("@mui/utils/useSlotProps"));
|
|
16
|
-
var
|
|
16
|
+
var _TreeViewProvider = require("../internals/TreeViewProvider");
|
|
17
17
|
var _icons = require("../icons");
|
|
18
18
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
19
19
|
const _excluded = ["ownerState"];
|
|
@@ -35,7 +35,7 @@ function TreeItemIcon(props) {
|
|
|
35
35
|
const {
|
|
36
36
|
slots: slotsFromTreeView,
|
|
37
37
|
slotProps: slotPropsFromTreeView
|
|
38
|
-
} = (0,
|
|
38
|
+
} = (0, _TreeViewProvider.useTreeViewStyleContext)();
|
|
39
39
|
const slots = {
|
|
40
40
|
collapseIcon: pickIcon(slotsFromTreeItem?.collapseIcon, slotsFromTreeView.collapseIcon, _icons.TreeViewCollapseIcon),
|
|
41
41
|
expandIcon: pickIcon(slotsFromTreeItem?.expandIcon, slotsFromTreeView.expandIcon, _icons.TreeViewExpandIcon),
|
|
@@ -8,14 +8,12 @@ import { useStore } from '@mui/x-internals/store';
|
|
|
8
8
|
import Alert from '@mui/material/Alert';
|
|
9
9
|
import Typography from '@mui/material/Typography';
|
|
10
10
|
import composeClasses from '@mui/utils/composeClasses';
|
|
11
|
-
import useSlotProps from '@mui/utils/useSlotProps';
|
|
12
11
|
import { warnOnce } from '@mui/x-internals/warning';
|
|
13
12
|
import { getRichTreeViewUtilityClass } from "./richTreeViewClasses.js";
|
|
14
13
|
import { styled, createUseThemeProps } from "../internals/zero-styled/index.js";
|
|
15
14
|
import { TreeViewProvider } from "../internals/TreeViewProvider/index.js";
|
|
16
15
|
import { RichTreeViewItems } from "../internals/components/RichTreeViewItems.js";
|
|
17
16
|
import { lazyLoadingSelectors } from "../internals/plugins/lazyLoading/index.js";
|
|
18
|
-
import { useTreeViewRootProps } from "../internals/hooks/useTreeViewRootProps.js";
|
|
19
17
|
import { TreeViewItemDepthContext } from "../internals/TreeViewItemDepthContext/index.js";
|
|
20
18
|
import { useExtractRichTreeViewParameters } from "./useExtractRichTreeViewParameters.js";
|
|
21
19
|
import { itemsSelectors } from "../internals/plugins/items/index.js";
|
|
@@ -74,27 +72,29 @@ const RichTreeView = /*#__PURE__*/React.forwardRef(function RichTreeView(inProps
|
|
|
74
72
|
}
|
|
75
73
|
}
|
|
76
74
|
const {
|
|
77
|
-
slots,
|
|
75
|
+
slots: inSlots,
|
|
78
76
|
slotProps,
|
|
79
77
|
apiRef,
|
|
80
78
|
parameters,
|
|
81
79
|
forwardedProps
|
|
82
80
|
} = useExtractRichTreeViewParameters(props);
|
|
81
|
+
|
|
82
|
+
// Context hooks
|
|
83
83
|
const store = useTreeViewStore(RichTreeViewStore, parameters);
|
|
84
|
+
|
|
85
|
+
// Ref hooks
|
|
84
86
|
const ref = React.useRef(null);
|
|
85
87
|
const handleRef = useMergedRefs(forwardedRef, ref);
|
|
86
|
-
|
|
87
|
-
|
|
88
|
+
|
|
89
|
+
// Selector hooks
|
|
88
90
|
const isLoading = useStore(store, lazyLoadingSelectors.isItemLoading, null);
|
|
89
91
|
const error = useStore(store, lazyLoadingSelectors.itemError, null);
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
ownerState: props
|
|
97
|
-
});
|
|
92
|
+
|
|
93
|
+
// Feature hooks
|
|
94
|
+
const classes = useUtilityClasses(props);
|
|
95
|
+
const slots = React.useMemo(() => _extends({
|
|
96
|
+
root: RichTreeViewRoot
|
|
97
|
+
}, inSlots), [inSlots]);
|
|
98
98
|
if (isLoading) {
|
|
99
99
|
return /*#__PURE__*/_jsx(Typography, {
|
|
100
100
|
children: "Loading..."
|
|
@@ -115,12 +115,13 @@ const RichTreeView = /*#__PURE__*/React.forwardRef(function RichTreeView(inProps
|
|
|
115
115
|
rootRef: ref,
|
|
116
116
|
children: /*#__PURE__*/_jsx(TreeViewItemDepthContext.Provider, {
|
|
117
117
|
value: itemsSelectors.itemDepth,
|
|
118
|
-
children: /*#__PURE__*/_jsx(
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
118
|
+
children: /*#__PURE__*/_jsx(RichTreeViewItems, {
|
|
119
|
+
slots: slots,
|
|
120
|
+
slotProps: slotProps,
|
|
121
|
+
forwardedProps: forwardedProps,
|
|
122
|
+
ownerState: props,
|
|
123
|
+
rootRef: handleRef
|
|
124
|
+
})
|
|
124
125
|
})
|
|
125
126
|
});
|
|
126
127
|
});
|
|
@@ -181,6 +182,13 @@ process.env.NODE_ENV !== "production" ? RichTreeView.propTypes = {
|
|
|
181
182
|
* @default false
|
|
182
183
|
*/
|
|
183
184
|
disableSelection: PropTypes.bool,
|
|
185
|
+
/**
|
|
186
|
+
* When equal to 'flat', the tree is rendered as a flat list (children are rendered as siblings of their parents).
|
|
187
|
+
* When equal to 'nested', the tree is rendered with nested children (children are rendered inside the groupTransition slot of their children).
|
|
188
|
+
* Nested DOM structure is not compatible with collapse / expansion animations.
|
|
189
|
+
* @default 'nested'
|
|
190
|
+
*/
|
|
191
|
+
domStructure: PropTypes.oneOf(['flat', 'nested']),
|
|
184
192
|
/**
|
|
185
193
|
* Expanded item ids.
|
|
186
194
|
* Used when the item's expansion is controlled.
|
|
@@ -251,6 +259,11 @@ process.env.NODE_ENV !== "production" ? RichTreeView.propTypes = {
|
|
|
251
259
|
* @default 12px
|
|
252
260
|
*/
|
|
253
261
|
itemChildrenIndentation: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
|
|
262
|
+
/**
|
|
263
|
+
* Sets the height in pixel of an item.
|
|
264
|
+
* If not provided, no height restriction is applied to the tree item content element.
|
|
265
|
+
*/
|
|
266
|
+
itemHeight: PropTypes.number,
|
|
254
267
|
items: PropTypes.array.isRequired,
|
|
255
268
|
/**
|
|
256
269
|
* Whether multiple items can be selected.
|