@mui/x-tree-view 9.0.0-alpha.2 → 9.0.0-alpha.3
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 +123 -1
- package/RichTreeView/RichTreeView.js +2 -1
- package/RichTreeView/RichTreeView.mjs +2 -1
- package/SimpleTreeView/SimpleTreeView.js +2 -1
- package/SimpleTreeView/SimpleTreeView.mjs +2 -1
- package/TreeItem/TreeItem.d.mts +1 -1
- package/TreeItem/TreeItem.d.ts +1 -1
- package/TreeItem/TreeItem.js +2 -8
- package/TreeItem/TreeItem.mjs +2 -8
- package/TreeItem/treeItemClasses.d.mts +0 -30
- package/TreeItem/treeItemClasses.d.ts +0 -30
- package/TreeItem/treeItemClasses.js +1 -3
- package/TreeItem/treeItemClasses.mjs +1 -3
- package/hooks/index.d.mts +0 -1
- package/hooks/index.d.ts +0 -1
- package/hooks/index.js +0 -7
- package/hooks/index.mjs +0 -1
- package/index.js +1 -1
- package/index.mjs +1 -1
- package/internals/MinimalTreeViewStore/MinimalTreeViewStore.types.d.mts +3 -2
- package/internals/MinimalTreeViewStore/MinimalTreeViewStore.types.d.ts +3 -2
- package/internals/MinimalTreeViewStore/TimeoutManager.js +1 -1
- package/internals/MinimalTreeViewStore/TimeoutManager.mjs +1 -1
- package/internals/plugins/jsxItems/TreeViewJSXItemsPlugin.js +11 -0
- package/internals/plugins/jsxItems/TreeViewJSXItemsPlugin.mjs +11 -0
- package/models/items.d.mts +0 -6
- package/models/items.d.ts +0 -6
- package/package.json +1 -1
- package/useTreeItem/useTreeItem.js +1 -2
- package/useTreeItem/useTreeItem.mjs +1 -2
- package/useTreeItem/useTreeItem.types.d.mts +0 -4
- package/useTreeItem/useTreeItem.types.d.ts +0 -4
- package/hooks/useTreeViewApiRef.d.mts +0 -6
- package/hooks/useTreeViewApiRef.d.ts +0 -6
- package/hooks/useTreeViewApiRef.js +0 -13
- package/hooks/useTreeViewApiRef.mjs +0 -9
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,127 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 9.0.0-alpha.3
|
|
4
|
+
|
|
5
|
+
_Mar 12, 2026_
|
|
6
|
+
|
|
7
|
+
We'd like to extend a big thank you to the 13 contributors who made this release possible. Here are some highlights ✨:
|
|
8
|
+
|
|
9
|
+
- 🐞 Bugfixes and internal improvements
|
|
10
|
+
|
|
11
|
+
The following team members contributed to this release:
|
|
12
|
+
@aemartos, @alexfauquette, @bernardobelchior, @brijeshb42, @cherniavskii, @flaviendelangle, @Janpot, @JCQuintas, @MBilalShafi, @michelengelen, @rita-codes, @sai6855, @siriwatknp
|
|
13
|
+
|
|
14
|
+
### Data Grid
|
|
15
|
+
|
|
16
|
+
#### `@mui/x-data-grid@9.0.0-alpha.3`
|
|
17
|
+
|
|
18
|
+
- [DataGrid] Fix crash when `rows` and `rowModesModel` are updated simultaneously (#21265) @michelengelen
|
|
19
|
+
- [DataGrid] Add missing `resizablePanelHandle` classes to `gridClasses` object (#21538) @sai6855
|
|
20
|
+
- [DataGrid] Refactor `headerAlign` style calls (#21541) @sai6855
|
|
21
|
+
|
|
22
|
+
#### `@mui/x-data-grid-pro@9.0.0-alpha.3` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
23
|
+
|
|
24
|
+
Same changes as in `@mui/x-data-grid@9.0.0-alpha.3`, plus:
|
|
25
|
+
|
|
26
|
+
- [DataGridPro] Add `role="presentation"` to detail panel toggle header content (#21634) @michelengelen
|
|
27
|
+
- [DataGridPro] Fix sorting not reflected in nested server-side data (#21619) @MBilalShafi
|
|
28
|
+
|
|
29
|
+
#### `@mui/x-data-grid-premium@9.0.0-alpha.3` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
30
|
+
|
|
31
|
+
Same changes as in `@mui/x-data-grid-pro@9.0.0-alpha.3`.
|
|
32
|
+
|
|
33
|
+
### Date and Time Pickers
|
|
34
|
+
|
|
35
|
+
#### `@mui/x-date-pickers@9.0.0-alpha.3`
|
|
36
|
+
|
|
37
|
+
- [pickers] Refactor `DateRangePickerDay` overrides to use a centralized `elementOverrides` object (#21426) @sai6855
|
|
38
|
+
- [pickers] Migrate from deprecated props for `PickersModalDialog` (#21702) @siriwatknp
|
|
39
|
+
|
|
40
|
+
#### `@mui/x-date-pickers-pro@9.0.0-alpha.3` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
41
|
+
|
|
42
|
+
Same changes as in `@mui/x-date-pickers@9.0.0-alpha.3`.
|
|
43
|
+
|
|
44
|
+
### Charts
|
|
45
|
+
|
|
46
|
+
#### `@mui/x-charts@9.0.0-alpha.3`
|
|
47
|
+
|
|
48
|
+
- [charts] Differentiate Line Plot roots classes (#21679) @JCQuintas
|
|
49
|
+
- [charts] Enable keyboard navigation by default (#21675) @alexfauquette
|
|
50
|
+
- [charts] Fix keyboard tooltip radar (#21667) @alexfauquette
|
|
51
|
+
- [charts] Fix selector default parameter (#21638) @JCQuintas
|
|
52
|
+
- [charts] Fix tooltip blink between node and pointer anchor (#21611) @alexfauquette
|
|
53
|
+
- [charts] Let tooltip and legend reflect the line shape (#21475) @alexfauquette
|
|
54
|
+
- [charts] Refactor `BarChart` classes structure (#21601) @JCQuintas
|
|
55
|
+
- [charts] Refactor `LineChart` classes structure (#21648) @JCQuintas
|
|
56
|
+
- [charts] Refactor `ScatterChart` classes structure (#21651) @JCQuintas
|
|
57
|
+
- [charts] Refactor `PieChart` classes structure (#21649) @JCQuintas
|
|
58
|
+
- [charts] Remove batch rendering checks in highlight selectors (#21646) @bernardobelchior
|
|
59
|
+
- [charts] Standardize generic arg names to `SeriesType` (#21694) @alexfauquette
|
|
60
|
+
- [charts] Simplify highlight hooks return types (#21695) @alexfauquette
|
|
61
|
+
|
|
62
|
+
#### `@mui/x-charts-pro@9.0.0-alpha.3` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
63
|
+
|
|
64
|
+
Same changes as in `@mui/x-charts@9.0.0-alpha.3`, plus:
|
|
65
|
+
|
|
66
|
+
- [charts-pro] Fix heatmap style override from `arc` to `cell` (#21693) @Copilot
|
|
67
|
+
- [charts-pro] Fix image export truncated when page is zoomed out (#21685) @bernardobelchior
|
|
68
|
+
- [charts-pro] Speed-up heatmap cell search with an index lookup (#21130) @alexfauquette
|
|
69
|
+
- [charts-pro] Fix heatmap highlight not working (#21710) @Copilot
|
|
70
|
+
|
|
71
|
+
#### `@mui/x-charts-premium@9.0.0-alpha.3` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
72
|
+
|
|
73
|
+
Same changes as in `@mui/x-charts-pro@9.0.0-alpha.3`, plus:
|
|
74
|
+
|
|
75
|
+
- [charts-premium] Re-enable WebGL tests (#21708) @bernardobelchior
|
|
76
|
+
|
|
77
|
+
### Tree View
|
|
78
|
+
|
|
79
|
+
#### Breaking changes
|
|
80
|
+
|
|
81
|
+
- Remove `TreeViewBaseItem` type (use `TreeViewDefaultItemModelProperties` or a custom interface)
|
|
82
|
+
- Remove `useTreeViewApiRef` hook (use `useRichTreeViewApiRef`, `useSimpleTreeViewApiRef`, or `useRichTreeViewProApiRef`)
|
|
83
|
+
- Remove `status` from content slot props returned by `getContentProps()` (use `data-*` attributes; `status` on `useTreeItem` return value is unchanged)
|
|
84
|
+
- Remove deprecated CSS state classes from `treeItemClasses`: `expanded`, `selected`, `focused`, `disabled`, `editable`, `editing` (use `[data-expanded]`, `[data-selected]`, etc.)
|
|
85
|
+
- The `<RichTreeViewPro />` component has now virtualization enabled by default.
|
|
86
|
+
- The items used inside the `<RichTreeViewPro />` now have a default height of `32px`.
|
|
87
|
+
- The events of the `<RichTreeViewPro />` are now rendered as a flat list instead of a nested tree.
|
|
88
|
+
|
|
89
|
+
#### `@mui/x-tree-view@9.0.0-alpha.3`
|
|
90
|
+
|
|
91
|
+
- [tree view] Remove deprecated APIs (#21591) @flaviendelangle
|
|
92
|
+
- [tree view] Fix collapsed children not selected with `selectionPropagation.descendants` in `SimpleTreeView` (#21253) @flaviendelangle
|
|
93
|
+
|
|
94
|
+
#### `@mui/x-tree-view-pro@9.0.0-alpha.3` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
95
|
+
|
|
96
|
+
Same changes as in `@mui/x-tree-view@9.0.0-alpha.3`, plus:
|
|
97
|
+
|
|
98
|
+
- [RichTreeViewPro] Make the virtualization opt-out and port the layout doc from the data grid (#21461) @flaviendelangle
|
|
99
|
+
|
|
100
|
+
### Codemod
|
|
101
|
+
|
|
102
|
+
#### `@mui/x-codemod@9.0.0-alpha.3`
|
|
103
|
+
|
|
104
|
+
Internal changes.
|
|
105
|
+
|
|
106
|
+
### Docs
|
|
107
|
+
|
|
108
|
+
- [docs] Fix `AssistantWithDataSource` demo crashing (#21555) @sai6855
|
|
109
|
+
- [docs] Remove `Preview` pill from Sankey (#21623) @bernardobelchior
|
|
110
|
+
- [docs] Migrate internal Material UI deprecated APIs (#21680) @siriwatknp
|
|
111
|
+
- [docs] Remove `New` flag on Tree View and Date and Time Pickers features released before v9 alpha (#21585) @flaviendelangle
|
|
112
|
+
|
|
113
|
+
### Core
|
|
114
|
+
|
|
115
|
+
- [code-infra] Remove checkout step (#21688) @Janpot
|
|
116
|
+
- [code-infra] Fix contributor generation in changelog (#21718) @brijeshb42
|
|
117
|
+
- [docs-infra] Do not point to non-existent v8 subdomain (#21640) @cherniavskii
|
|
118
|
+
|
|
119
|
+
### Miscellaneous
|
|
120
|
+
|
|
121
|
+
- [test] Add missing tests for forwarding props to filter operators in DataGrid (#21441) @siriwatknp
|
|
122
|
+
- [x-license] Export additional license types and constants (#21625) @aemartos
|
|
123
|
+
- [x-license] Refactor license verification to accept package info object and add v9 version gating (#21690) @aemartos
|
|
124
|
+
|
|
3
125
|
## 9.0.0-alpha.2
|
|
4
126
|
|
|
5
127
|
_Mar 5, 2026_
|
|
@@ -92,7 +214,7 @@ Internal changes.
|
|
|
92
214
|
|
|
93
215
|
- [docs] Add backticks and parentheses to all functions and hooks (DX-173) (#21496) @mapache-salvaje
|
|
94
216
|
- [docs] Remove mentions of `mySvgRef` (#21559) @bernardobelchior
|
|
95
|
-
- [docs] Update Roadmap section in the docs
|
|
217
|
+
- [docs] Update Roadmap section in the docs (#20892) @alelthomas
|
|
96
218
|
- [docs] Add tutorial and example app for aggregation with row grouping (DX-162) (#21102) @mapache-salvaje
|
|
97
219
|
- [docs] Fix missing codemod docs (#21604) @JCQuintas
|
|
98
220
|
|
|
@@ -268,7 +268,8 @@ process.env.NODE_ENV !== "production" ? RichTreeView.propTypes = {
|
|
|
268
268
|
itemChildrenIndentation: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
|
|
269
269
|
/**
|
|
270
270
|
* Sets the height in pixel of an item.
|
|
271
|
-
*
|
|
271
|
+
* Set to `null` to explicitly remove any item height restriction when items have different heights.
|
|
272
|
+
* @default null
|
|
272
273
|
*/
|
|
273
274
|
itemHeight: _propTypes.default.number,
|
|
274
275
|
items: _propTypes.default.array.isRequired,
|
|
@@ -261,7 +261,8 @@ process.env.NODE_ENV !== "production" ? RichTreeView.propTypes = {
|
|
|
261
261
|
itemChildrenIndentation: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
|
|
262
262
|
/**
|
|
263
263
|
* Sets the height in pixel of an item.
|
|
264
|
-
*
|
|
264
|
+
* Set to `null` to explicitly remove any item height restriction when items have different heights.
|
|
265
|
+
* @default null
|
|
265
266
|
*/
|
|
266
267
|
itemHeight: PropTypes.number,
|
|
267
268
|
items: PropTypes.array.isRequired,
|
|
@@ -194,7 +194,8 @@ process.env.NODE_ENV !== "production" ? SimpleTreeView.propTypes = {
|
|
|
194
194
|
itemChildrenIndentation: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
|
|
195
195
|
/**
|
|
196
196
|
* Sets the height in pixel of an item.
|
|
197
|
-
*
|
|
197
|
+
* Set to `null` to explicitly remove any item height restriction when items have different heights.
|
|
198
|
+
* @default null
|
|
198
199
|
*/
|
|
199
200
|
itemHeight: _propTypes.default.number,
|
|
200
201
|
/**
|
|
@@ -187,7 +187,8 @@ process.env.NODE_ENV !== "production" ? SimpleTreeView.propTypes = {
|
|
|
187
187
|
itemChildrenIndentation: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
|
|
188
188
|
/**
|
|
189
189
|
* Sets the height in pixel of an item.
|
|
190
|
-
*
|
|
190
|
+
* Set to `null` to explicitly remove any item height restriction when items have different heights.
|
|
191
|
+
* @default null
|
|
191
192
|
*/
|
|
192
193
|
itemHeight: PropTypes.number,
|
|
193
194
|
/**
|
package/TreeItem/TreeItem.d.mts
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" | "
|
|
18
|
+
}, "ref"> & React.RefAttributes<HTMLButtonElement>, "form" | "slot" | "style" | "title" | "aria-expanded" | "aria-disabled" | "onDoubleClick" | "aria-hidden" | "content" | "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" | "disabled" | "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.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" | "
|
|
18
|
+
}, "ref"> & React.RefAttributes<HTMLButtonElement>, "form" | "slot" | "style" | "title" | "aria-expanded" | "aria-disabled" | "onDoubleClick" | "aria-hidden" | "content" | "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" | "disabled" | "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
|
@@ -197,13 +197,7 @@ const useUtilityClasses = classesProp => {
|
|
|
197
197
|
labelInput: ['labelInput'],
|
|
198
198
|
dragAndDropOverlay: ['dragAndDropOverlay'],
|
|
199
199
|
errorIcon: ['errorIcon'],
|
|
200
|
-
loadingIcon: ['loadingIcon']
|
|
201
|
-
expanded: ['expanded'],
|
|
202
|
-
editing: ['editing'],
|
|
203
|
-
editable: ['editable'],
|
|
204
|
-
selected: ['selected'],
|
|
205
|
-
focused: ['focused'],
|
|
206
|
-
disabled: ['disabled']
|
|
200
|
+
loadingIcon: ['loadingIcon']
|
|
207
201
|
};
|
|
208
202
|
return (0, _composeClasses.default)(slots, _treeItemClasses.getTreeItemUtilityClass, classes);
|
|
209
203
|
};
|
|
@@ -274,7 +268,7 @@ const TreeItem = exports.TreeItem = /*#__PURE__*/React.forwardRef(function TreeI
|
|
|
274
268
|
getSlotProps: getContentProps,
|
|
275
269
|
externalSlotProps: slotProps.content,
|
|
276
270
|
ownerState: {},
|
|
277
|
-
className:
|
|
271
|
+
className: classes.content
|
|
278
272
|
});
|
|
279
273
|
const IconContainer = slots.iconContainer ?? TreeItemIconContainer;
|
|
280
274
|
const iconContainerProps = (0, _useSlotProps.default)({
|
package/TreeItem/TreeItem.mjs
CHANGED
|
@@ -190,13 +190,7 @@ const useUtilityClasses = classesProp => {
|
|
|
190
190
|
labelInput: ['labelInput'],
|
|
191
191
|
dragAndDropOverlay: ['dragAndDropOverlay'],
|
|
192
192
|
errorIcon: ['errorIcon'],
|
|
193
|
-
loadingIcon: ['loadingIcon']
|
|
194
|
-
expanded: ['expanded'],
|
|
195
|
-
editing: ['editing'],
|
|
196
|
-
editable: ['editable'],
|
|
197
|
-
selected: ['selected'],
|
|
198
|
-
focused: ['focused'],
|
|
199
|
-
disabled: ['disabled']
|
|
193
|
+
loadingIcon: ['loadingIcon']
|
|
200
194
|
};
|
|
201
195
|
return composeClasses(slots, getTreeItemUtilityClass, classes);
|
|
202
196
|
};
|
|
@@ -267,7 +261,7 @@ export const TreeItem = /*#__PURE__*/React.forwardRef(function TreeItem(inProps,
|
|
|
267
261
|
getSlotProps: getContentProps,
|
|
268
262
|
externalSlotProps: slotProps.content,
|
|
269
263
|
ownerState: {},
|
|
270
|
-
className:
|
|
264
|
+
className: classes.content
|
|
271
265
|
});
|
|
272
266
|
const IconContainer = slots.iconContainer ?? TreeItemIconContainer;
|
|
273
267
|
const iconContainerProps = useSlotProps({
|
|
@@ -19,36 +19,6 @@ export interface TreeItemClasses {
|
|
|
19
19
|
errorIcon: string;
|
|
20
20
|
/** Styles applied to the loading icon element */
|
|
21
21
|
loadingIcon: string;
|
|
22
|
-
/**
|
|
23
|
-
* State class applied to the content element when the item is expanded.
|
|
24
|
-
* @deprecated Use the `data-expanded` attribute instead.
|
|
25
|
-
*/
|
|
26
|
-
expanded: string;
|
|
27
|
-
/**
|
|
28
|
-
* State class applied to the content element when the item is selected.
|
|
29
|
-
* @deprecated Use the `data-selected` attribute instead.
|
|
30
|
-
*/
|
|
31
|
-
selected: string;
|
|
32
|
-
/**
|
|
33
|
-
* State class applied to the content element when the item is focused.
|
|
34
|
-
* @deprecated Use the `data-focused` attribute instead.
|
|
35
|
-
*/
|
|
36
|
-
focused: string;
|
|
37
|
-
/**
|
|
38
|
-
* State class applied to the content element when the item is disabled.
|
|
39
|
-
* @deprecated Use the `data-disabled` attribute instead.
|
|
40
|
-
*/
|
|
41
|
-
disabled: string;
|
|
42
|
-
/**
|
|
43
|
-
* State class applied to the content element when the item is editable.
|
|
44
|
-
* @deprecated Use the `data-editable` attribute instead.
|
|
45
|
-
*/
|
|
46
|
-
editable: string;
|
|
47
|
-
/**
|
|
48
|
-
* State class applied to the content element when the item is being edited.
|
|
49
|
-
* @deprecated Use the `data-editing` attribute instead.
|
|
50
|
-
*/
|
|
51
|
-
editing: string;
|
|
52
22
|
}
|
|
53
23
|
export type TreeItemClassKey = keyof TreeItemClasses;
|
|
54
24
|
export declare function getTreeItemUtilityClass(slot: string): string;
|
|
@@ -19,36 +19,6 @@ export interface TreeItemClasses {
|
|
|
19
19
|
errorIcon: string;
|
|
20
20
|
/** Styles applied to the loading icon element */
|
|
21
21
|
loadingIcon: string;
|
|
22
|
-
/**
|
|
23
|
-
* State class applied to the content element when the item is expanded.
|
|
24
|
-
* @deprecated Use the `data-expanded` attribute instead.
|
|
25
|
-
*/
|
|
26
|
-
expanded: string;
|
|
27
|
-
/**
|
|
28
|
-
* State class applied to the content element when the item is selected.
|
|
29
|
-
* @deprecated Use the `data-selected` attribute instead.
|
|
30
|
-
*/
|
|
31
|
-
selected: string;
|
|
32
|
-
/**
|
|
33
|
-
* State class applied to the content element when the item is focused.
|
|
34
|
-
* @deprecated Use the `data-focused` attribute instead.
|
|
35
|
-
*/
|
|
36
|
-
focused: string;
|
|
37
|
-
/**
|
|
38
|
-
* State class applied to the content element when the item is disabled.
|
|
39
|
-
* @deprecated Use the `data-disabled` attribute instead.
|
|
40
|
-
*/
|
|
41
|
-
disabled: string;
|
|
42
|
-
/**
|
|
43
|
-
* State class applied to the content element when the item is editable.
|
|
44
|
-
* @deprecated Use the `data-editable` attribute instead.
|
|
45
|
-
*/
|
|
46
|
-
editable: string;
|
|
47
|
-
/**
|
|
48
|
-
* State class applied to the content element when the item is being edited.
|
|
49
|
-
* @deprecated Use the `data-editing` attribute instead.
|
|
50
|
-
*/
|
|
51
|
-
editing: string;
|
|
52
22
|
}
|
|
53
23
|
export type TreeItemClassKey = keyof TreeItemClasses;
|
|
54
24
|
export declare function getTreeItemUtilityClass(slot: string): string;
|
|
@@ -11,6 +11,4 @@ var _generateUtilityClasses = _interopRequireDefault(require("@mui/utils/generat
|
|
|
11
11
|
function getTreeItemUtilityClass(slot) {
|
|
12
12
|
return (0, _generateUtilityClass.default)('MuiTreeItem', slot);
|
|
13
13
|
}
|
|
14
|
-
const treeItemClasses = exports.treeItemClasses = (0, _generateUtilityClasses.default)('MuiTreeItem', ['root', 'content', 'groupTransition', 'iconContainer', 'label', 'checkbox', 'labelInput', 'dragAndDropOverlay', 'errorIcon', 'loadingIcon'
|
|
15
|
-
// State classes, will be replaced by data-attrs in the next major
|
|
16
|
-
'expanded', 'selected', 'focused', 'disabled', 'editable', 'editing']);
|
|
14
|
+
const treeItemClasses = exports.treeItemClasses = (0, _generateUtilityClasses.default)('MuiTreeItem', ['root', 'content', 'groupTransition', 'iconContainer', 'label', 'checkbox', 'labelInput', 'dragAndDropOverlay', 'errorIcon', 'loadingIcon']);
|
|
@@ -3,6 +3,4 @@ import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
|
|
|
3
3
|
export function getTreeItemUtilityClass(slot) {
|
|
4
4
|
return generateUtilityClass('MuiTreeItem', slot);
|
|
5
5
|
}
|
|
6
|
-
export const treeItemClasses = generateUtilityClasses('MuiTreeItem', ['root', 'content', 'groupTransition', 'iconContainer', 'label', 'checkbox', 'labelInput', 'dragAndDropOverlay', 'errorIcon', 'loadingIcon'
|
|
7
|
-
// State classes, will be replaced by data-attrs in the next major
|
|
8
|
-
'expanded', 'selected', 'focused', 'disabled', 'editable', 'editing']);
|
|
6
|
+
export const treeItemClasses = generateUtilityClasses('MuiTreeItem', ['root', 'content', 'groupTransition', 'iconContainer', 'label', 'checkbox', 'labelInput', 'dragAndDropOverlay', 'errorIcon', 'loadingIcon']);
|
package/hooks/index.d.mts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export { useTreeItemUtils } from "./useTreeItemUtils/index.mjs";
|
|
2
2
|
export { useTreeItemModel } from "./useTreeItemModel.mjs";
|
|
3
3
|
export { useApplyPropagationToSelectedItemsOnMount } from "./useApplyPropagationToSelectedItemsOnMount.mjs";
|
|
4
|
-
export { useTreeViewApiRef } from "./useTreeViewApiRef.mjs";
|
|
5
4
|
export { useRichTreeViewApiRef } from "./useRichTreeViewApiRef.mjs";
|
|
6
5
|
export { useSimpleTreeViewApiRef } from "./useSimpleTreeViewApiRef.mjs";
|
package/hooks/index.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export { useTreeItemUtils } from "./useTreeItemUtils/index.js";
|
|
2
2
|
export { useTreeItemModel } from "./useTreeItemModel.js";
|
|
3
3
|
export { useApplyPropagationToSelectedItemsOnMount } from "./useApplyPropagationToSelectedItemsOnMount.js";
|
|
4
|
-
export { useTreeViewApiRef } from "./useTreeViewApiRef.js";
|
|
5
4
|
export { useRichTreeViewApiRef } from "./useRichTreeViewApiRef.js";
|
|
6
5
|
export { useSimpleTreeViewApiRef } from "./useSimpleTreeViewApiRef.js";
|
package/hooks/index.js
CHANGED
|
@@ -33,15 +33,8 @@ Object.defineProperty(exports, "useTreeItemUtils", {
|
|
|
33
33
|
return _useTreeItemUtils.useTreeItemUtils;
|
|
34
34
|
}
|
|
35
35
|
});
|
|
36
|
-
Object.defineProperty(exports, "useTreeViewApiRef", {
|
|
37
|
-
enumerable: true,
|
|
38
|
-
get: function () {
|
|
39
|
-
return _useTreeViewApiRef.useTreeViewApiRef;
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
36
|
var _useTreeItemUtils = require("./useTreeItemUtils");
|
|
43
37
|
var _useTreeItemModel = require("./useTreeItemModel");
|
|
44
38
|
var _useApplyPropagationToSelectedItemsOnMount = require("./useApplyPropagationToSelectedItemsOnMount");
|
|
45
|
-
var _useTreeViewApiRef = require("./useTreeViewApiRef");
|
|
46
39
|
var _useRichTreeViewApiRef = require("./useRichTreeViewApiRef");
|
|
47
40
|
var _useSimpleTreeViewApiRef = require("./useSimpleTreeViewApiRef");
|
package/hooks/index.mjs
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export { useTreeItemUtils } from "./useTreeItemUtils/index.mjs";
|
|
2
2
|
export { useTreeItemModel } from "./useTreeItemModel.mjs";
|
|
3
3
|
export { useApplyPropagationToSelectedItemsOnMount } from "./useApplyPropagationToSelectedItemsOnMount.mjs";
|
|
4
|
-
export { useTreeViewApiRef } from "./useTreeViewApiRef.mjs";
|
|
5
4
|
export { useRichTreeViewApiRef } from "./useRichTreeViewApiRef.mjs";
|
|
6
5
|
export { useSimpleTreeViewApiRef } from "./useSimpleTreeViewApiRef.mjs";
|
package/index.js
CHANGED
package/index.mjs
CHANGED
|
@@ -250,9 +250,10 @@ export interface MinimalTreeViewParameters<R extends TreeViewValidItem<R>, Multi
|
|
|
250
250
|
onItemFocus?: (event: React.SyntheticEvent | null, itemId: TreeViewItemId) => void;
|
|
251
251
|
/**
|
|
252
252
|
* Sets the height in pixel of an item.
|
|
253
|
-
*
|
|
253
|
+
* Set to `null` to explicitly remove any item height restriction when items have different heights.
|
|
254
|
+
* @default null
|
|
254
255
|
*/
|
|
255
|
-
itemHeight?: number;
|
|
256
|
+
itemHeight?: number | null;
|
|
256
257
|
}
|
|
257
258
|
/**
|
|
258
259
|
* Mapper between a Tree View instance's state and parameters.
|
|
@@ -250,9 +250,10 @@ export interface MinimalTreeViewParameters<R extends TreeViewValidItem<R>, Multi
|
|
|
250
250
|
onItemFocus?: (event: React.SyntheticEvent | null, itemId: TreeViewItemId) => void;
|
|
251
251
|
/**
|
|
252
252
|
* Sets the height in pixel of an item.
|
|
253
|
-
*
|
|
253
|
+
* Set to `null` to explicitly remove any item height restriction when items have different heights.
|
|
254
|
+
* @default null
|
|
254
255
|
*/
|
|
255
|
-
itemHeight?: number;
|
|
256
|
+
itemHeight?: number | null;
|
|
256
257
|
}
|
|
257
258
|
/**
|
|
258
259
|
* Mapper between a Tree View instance's state and parameters.
|
|
@@ -17,7 +17,7 @@ class TimeoutManager {
|
|
|
17
17
|
this.timeoutIds.set(key, id);
|
|
18
18
|
};
|
|
19
19
|
startInterval = (key, delay, fn) => {
|
|
20
|
-
this.
|
|
20
|
+
this.clearInterval(key);
|
|
21
21
|
const id = setInterval(fn, delay); /* Node.js types are enabled in development */
|
|
22
22
|
|
|
23
23
|
this.intervalIds.set(key, id);
|
|
@@ -11,7 +11,7 @@ export class TimeoutManager {
|
|
|
11
11
|
this.timeoutIds.set(key, id);
|
|
12
12
|
};
|
|
13
13
|
startInterval = (key, delay, fn) => {
|
|
14
|
-
this.
|
|
14
|
+
this.clearInterval(key);
|
|
15
15
|
const id = setInterval(fn, delay); /* Node.js types are enabled in development */
|
|
16
16
|
|
|
17
17
|
this.intervalIds.set(key, id);
|
|
@@ -8,6 +8,7 @@ exports.TreeViewJSXItemsPlugin = void 0;
|
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var _formatErrorMessage2 = _interopRequireDefault(require("@mui/x-internals/formatErrorMessage"));
|
|
10
10
|
var _items = require("../items");
|
|
11
|
+
var _selectors = require("../selection/selectors");
|
|
11
12
|
var _itemPlugin = require("./itemPlugin");
|
|
12
13
|
class TreeViewJSXItemsPlugin {
|
|
13
14
|
/**
|
|
@@ -114,6 +115,16 @@ Two items were provided with the same id in the \`items\` prop: "${item.id}"` :
|
|
|
114
115
|
[parentIdWithDefault]: (0, _items.buildSiblingIndexes)(orderedChildrenIds)
|
|
115
116
|
})
|
|
116
117
|
});
|
|
118
|
+
|
|
119
|
+
// If a parent was selected while its children were unmounted (collapsed with unmountOnExit),
|
|
120
|
+
// re-run selection propagation now that the children are registered.
|
|
121
|
+
if (parentId !== null && _selectors.selectionSelectors.isItemSelected(this.store.state, parentId)) {
|
|
122
|
+
this.store.selection.setItemSelection({
|
|
123
|
+
itemId: parentId,
|
|
124
|
+
shouldBeSelected: true,
|
|
125
|
+
keepExistingSelection: true
|
|
126
|
+
});
|
|
127
|
+
}
|
|
117
128
|
};
|
|
118
129
|
}
|
|
119
130
|
exports.TreeViewJSXItemsPlugin = TreeViewJSXItemsPlugin;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _formatErrorMessage from "@mui/x-internals/formatErrorMessage";
|
|
3
3
|
import { buildSiblingIndexes, itemsSelectors, TREE_VIEW_ROOT_PARENT_ID } from "../items/index.mjs";
|
|
4
|
+
import { selectionSelectors } from "../selection/selectors.mjs";
|
|
4
5
|
import { jsxItemsitemWrapper, useJSXItemsItemPlugin } from "./itemPlugin.mjs";
|
|
5
6
|
export class TreeViewJSXItemsPlugin {
|
|
6
7
|
/**
|
|
@@ -107,5 +108,15 @@ Two items were provided with the same id in the \`items\` prop: "${item.id}"` :
|
|
|
107
108
|
[parentIdWithDefault]: buildSiblingIndexes(orderedChildrenIds)
|
|
108
109
|
})
|
|
109
110
|
});
|
|
111
|
+
|
|
112
|
+
// If a parent was selected while its children were unmounted (collapsed with unmountOnExit),
|
|
113
|
+
// re-run selection propagation now that the children are registered.
|
|
114
|
+
if (parentId !== null && selectionSelectors.isItemSelected(this.store.state, parentId)) {
|
|
115
|
+
this.store.selection.setItemSelection({
|
|
116
|
+
itemId: parentId,
|
|
117
|
+
shouldBeSelected: true,
|
|
118
|
+
keepExistingSelection: true
|
|
119
|
+
});
|
|
120
|
+
}
|
|
110
121
|
};
|
|
111
122
|
}
|
package/models/items.d.mts
CHANGED
|
@@ -4,12 +4,6 @@ export type TreeViewDefaultItemModelProperties = {
|
|
|
4
4
|
label: string;
|
|
5
5
|
children?: TreeViewDefaultItemModelProperties[];
|
|
6
6
|
};
|
|
7
|
-
/**
|
|
8
|
-
* @deprecated Use `TreeViewDefaultItemModelProperties` instead, or define your own item model interface.
|
|
9
|
-
*/
|
|
10
|
-
export type TreeViewBaseItem<R extends {} = TreeViewDefaultItemModelProperties> = R & {
|
|
11
|
-
children?: TreeViewBaseItem<R>[];
|
|
12
|
-
};
|
|
13
7
|
export type TreeViewValidItem<R extends {}> = {
|
|
14
8
|
children?: R[];
|
|
15
9
|
};
|
package/models/items.d.ts
CHANGED
|
@@ -4,12 +4,6 @@ export type TreeViewDefaultItemModelProperties = {
|
|
|
4
4
|
label: string;
|
|
5
5
|
children?: TreeViewDefaultItemModelProperties[];
|
|
6
6
|
};
|
|
7
|
-
/**
|
|
8
|
-
* @deprecated Use `TreeViewDefaultItemModelProperties` instead, or define your own item model interface.
|
|
9
|
-
*/
|
|
10
|
-
export type TreeViewBaseItem<R extends {} = TreeViewDefaultItemModelProperties> = R & {
|
|
11
|
-
children?: TreeViewBaseItem<R>[];
|
|
12
|
-
};
|
|
13
7
|
export type TreeViewValidItem<R extends {}> = {
|
|
14
8
|
children?: R[];
|
|
15
9
|
};
|
package/package.json
CHANGED
|
@@ -177,8 +177,7 @@ const useTreeItem = parameters => {
|
|
|
177
177
|
const props = (0, _extends2.default)({}, externalEventHandlers, externalProps, {
|
|
178
178
|
ref: handleContentRef,
|
|
179
179
|
onClick: createContentHandleClick(externalEventHandlers),
|
|
180
|
-
onMouseDown: createContentHandleMouseDown(externalEventHandlers)
|
|
181
|
-
status
|
|
180
|
+
onMouseDown: createContentHandleMouseDown(externalEventHandlers)
|
|
182
181
|
});
|
|
183
182
|
['expanded', 'selected', 'focused', 'disabled', 'editing', 'editable'].forEach(key => {
|
|
184
183
|
if (status[key]) {
|
|
@@ -171,8 +171,7 @@ export const useTreeItem = parameters => {
|
|
|
171
171
|
const props = _extends({}, externalEventHandlers, externalProps, {
|
|
172
172
|
ref: handleContentRef,
|
|
173
173
|
onClick: createContentHandleClick(externalEventHandlers),
|
|
174
|
-
onMouseDown: createContentHandleMouseDown(externalEventHandlers)
|
|
175
|
-
status
|
|
174
|
+
onMouseDown: createContentHandleMouseDown(externalEventHandlers)
|
|
176
175
|
});
|
|
177
176
|
['expanded', 'selected', 'focused', 'disabled', 'editing', 'editable'].forEach(key => {
|
|
178
177
|
if (status[key]) {
|
|
@@ -53,10 +53,6 @@ export interface UseTreeItemContentSlotPropsFromUseTreeItem {
|
|
|
53
53
|
onClick: TreeViewCancellableEventHandler<React.MouseEvent>;
|
|
54
54
|
onMouseDown: TreeViewCancellableEventHandler<React.MouseEvent>;
|
|
55
55
|
ref: React.RefCallback<HTMLDivElement> | null;
|
|
56
|
-
/**
|
|
57
|
-
* @deprecated Will be removed in the next major version. Please use the data-attrs instead.
|
|
58
|
-
*/
|
|
59
|
-
status: UseTreeItemStatus;
|
|
60
56
|
'data-expanded'?: '';
|
|
61
57
|
'data-selected'?: '';
|
|
62
58
|
'data-focused'?: '';
|
|
@@ -53,10 +53,6 @@ export interface UseTreeItemContentSlotPropsFromUseTreeItem {
|
|
|
53
53
|
onClick: TreeViewCancellableEventHandler<React.MouseEvent>;
|
|
54
54
|
onMouseDown: TreeViewCancellableEventHandler<React.MouseEvent>;
|
|
55
55
|
ref: React.RefCallback<HTMLDivElement> | null;
|
|
56
|
-
/**
|
|
57
|
-
* @deprecated Will be removed in the next major version. Please use the data-attrs instead.
|
|
58
|
-
*/
|
|
59
|
-
status: UseTreeItemStatus;
|
|
60
56
|
'data-expanded'?: '';
|
|
61
57
|
'data-selected'?: '';
|
|
62
58
|
'data-focused'?: '';
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { useRichTreeViewApiRef } from "./useRichTreeViewApiRef.mjs";
|
|
2
|
-
/**
|
|
3
|
-
* Hook that instantiates a [[TreeViewApiRef]].
|
|
4
|
-
* @deprecated Use `useRichTreeViewApiRef()`, `useRichTreeViewProApiRef()` or `useSimpleTreeViewApiRef()` instead.
|
|
5
|
-
*/
|
|
6
|
-
export declare const useTreeViewApiRef: typeof useRichTreeViewApiRef;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { useRichTreeViewApiRef } from "./useRichTreeViewApiRef.js";
|
|
2
|
-
/**
|
|
3
|
-
* Hook that instantiates a [[TreeViewApiRef]].
|
|
4
|
-
* @deprecated Use `useRichTreeViewApiRef()`, `useRichTreeViewProApiRef()` or `useSimpleTreeViewApiRef()` instead.
|
|
5
|
-
*/
|
|
6
|
-
export declare const useTreeViewApiRef: typeof useRichTreeViewApiRef;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
'use client';
|
|
3
|
-
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.useTreeViewApiRef = void 0;
|
|
8
|
-
var _useRichTreeViewApiRef = require("./useRichTreeViewApiRef");
|
|
9
|
-
/**
|
|
10
|
-
* Hook that instantiates a [[TreeViewApiRef]].
|
|
11
|
-
* @deprecated Use `useRichTreeViewApiRef()`, `useRichTreeViewProApiRef()` or `useSimpleTreeViewApiRef()` instead.
|
|
12
|
-
*/
|
|
13
|
-
const useTreeViewApiRef = exports.useTreeViewApiRef = _useRichTreeViewApiRef.useRichTreeViewApiRef;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
|
-
import { useRichTreeViewApiRef } from "./useRichTreeViewApiRef.mjs";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Hook that instantiates a [[TreeViewApiRef]].
|
|
7
|
-
* @deprecated Use `useRichTreeViewApiRef()`, `useRichTreeViewProApiRef()` or `useSimpleTreeViewApiRef()` instead.
|
|
8
|
-
*/
|
|
9
|
-
export const useTreeViewApiRef = useRichTreeViewApiRef;
|