@mui/x-tree-view 6.17.0 → 7.0.0-alpha.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1748 -6
- package/README.md +0 -1
- package/RichTreeView/RichTreeView.d.ts +20 -0
- package/RichTreeView/RichTreeView.js +324 -0
- package/RichTreeView/RichTreeView.types.d.ts +55 -0
- package/RichTreeView/RichTreeView.types.js +1 -0
- package/RichTreeView/index.d.ts +3 -0
- package/RichTreeView/index.js +3 -0
- package/RichTreeView/package.json +6 -0
- package/RichTreeView/richTreeViewClasses.d.ts +7 -0
- package/RichTreeView/richTreeViewClasses.js +6 -0
- package/SimpleTreeView/SimpleTreeView.d.ts +20 -0
- package/SimpleTreeView/SimpleTreeView.js +268 -0
- package/SimpleTreeView/SimpleTreeView.plugins.d.ts +6 -0
- package/SimpleTreeView/SimpleTreeView.plugins.js +5 -0
- package/SimpleTreeView/SimpleTreeView.types.d.ts +38 -0
- package/SimpleTreeView/SimpleTreeView.types.js +1 -0
- package/SimpleTreeView/index.d.ts +3 -0
- package/SimpleTreeView/index.js +3 -0
- package/SimpleTreeView/package.json +6 -0
- package/SimpleTreeView/simpleTreeViewClasses.d.ts +7 -0
- package/SimpleTreeView/simpleTreeViewClasses.js +6 -0
- package/TreeItem/TreeItem.js +44 -89
- package/TreeItem/TreeItem.types.d.ts +2 -1
- package/TreeItem/index.d.ts +2 -2
- package/TreeItem/index.js +2 -2
- package/TreeItem/useTreeItem.js +5 -5
- package/TreeView/TreeView.d.ts +4 -0
- package/TreeView/TreeView.js +80 -87
- package/TreeView/TreeView.types.d.ts +4 -26
- package/TreeView/index.d.ts +1 -1
- package/index.d.ts +3 -0
- package/index.js +5 -2
- package/internals/TreeViewProvider/TreeViewContext.d.ts +1 -2
- package/internals/TreeViewProvider/TreeViewContext.js +1 -14
- package/internals/TreeViewProvider/TreeViewProvider.types.d.ts +3 -3
- package/internals/TreeViewProvider/useTreeViewContext.js +7 -1
- package/internals/corePlugins/corePlugins.d.ts +1 -1
- package/internals/corePlugins/corePlugins.js +1 -1
- package/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.d.ts +0 -5
- package/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +0 -6
- package/internals/hooks/useLazyRef.d.ts +2 -0
- package/internals/hooks/useLazyRef.js +11 -0
- package/internals/hooks/useOnMount.d.ts +2 -0
- package/internals/hooks/useOnMount.js +7 -0
- package/internals/hooks/useTimeout.d.ts +9 -0
- package/internals/hooks/useTimeout.js +28 -0
- package/internals/models/plugin.d.ts +23 -0
- package/internals/models/treeView.d.ts +5 -1
- package/internals/plugins/defaultPlugins.d.ts +3 -2
- package/internals/plugins/defaultPlugins.js +2 -1
- package/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.js +8 -6
- package/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.types.d.ts +1 -6
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +26 -17
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +12 -5
- package/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +13 -6
- package/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +4 -1
- package/internals/plugins/useTreeViewId/index.d.ts +2 -0
- package/internals/plugins/useTreeViewId/index.js +1 -0
- package/internals/plugins/useTreeViewId/useTreeViewId.d.ts +3 -0
- package/internals/plugins/useTreeViewId/useTreeViewId.js +18 -0
- package/internals/plugins/useTreeViewId/useTreeViewId.types.d.ts +17 -0
- package/internals/plugins/useTreeViewId/useTreeViewId.types.js +1 -0
- package/internals/plugins/useTreeViewJSXNodes/index.d.ts +2 -0
- package/internals/plugins/useTreeViewJSXNodes/index.js +1 -0
- package/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.d.ts +3 -0
- package/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.js +114 -0
- package/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.types.d.ts +16 -0
- package/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.types.js +1 -0
- package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +20 -9
- package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.d.ts +5 -2
- package/internals/plugins/useTreeViewNodes/useTreeViewNodes.js +83 -18
- package/internals/plugins/useTreeViewNodes/useTreeViewNodes.types.d.ts +48 -5
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.d.ts +1 -1
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +41 -28
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +15 -8
- package/internals/useTreeView/useTreeView.js +40 -3
- package/internals/useTreeView/useTreeView.types.d.ts +2 -1
- package/internals/utils/warning.d.ts +1 -0
- package/internals/utils/warning.js +14 -0
- package/legacy/RichTreeView/RichTreeView.js +317 -0
- package/legacy/RichTreeView/RichTreeView.types.js +1 -0
- package/legacy/RichTreeView/index.js +3 -0
- package/legacy/RichTreeView/richTreeViewClasses.js +6 -0
- package/legacy/SimpleTreeView/SimpleTreeView.js +264 -0
- package/legacy/SimpleTreeView/SimpleTreeView.plugins.js +6 -0
- package/legacy/SimpleTreeView/SimpleTreeView.types.js +1 -0
- package/legacy/SimpleTreeView/index.js +3 -0
- package/legacy/SimpleTreeView/simpleTreeViewClasses.js +6 -0
- package/legacy/TreeItem/TreeItem.js +49 -103
- package/legacy/TreeItem/index.js +2 -2
- package/legacy/TreeItem/useTreeItem.js +5 -5
- package/legacy/TreeView/TreeView.js +80 -82
- package/legacy/index.js +5 -2
- package/legacy/internals/TreeViewProvider/TreeViewContext.js +1 -14
- package/legacy/internals/TreeViewProvider/useTreeViewContext.js +5 -1
- package/legacy/internals/corePlugins/corePlugins.js +1 -1
- package/legacy/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +0 -6
- package/legacy/internals/hooks/useLazyRef.js +11 -0
- package/legacy/internals/hooks/useOnMount.js +7 -0
- package/legacy/internals/hooks/useTimeout.js +38 -0
- package/legacy/internals/plugins/defaultPlugins.js +2 -1
- package/legacy/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.js +11 -8
- package/legacy/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +26 -17
- package/legacy/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +13 -6
- package/legacy/internals/plugins/useTreeViewId/index.js +1 -0
- package/legacy/internals/plugins/useTreeViewId/useTreeViewId.js +21 -0
- package/legacy/internals/plugins/useTreeViewId/useTreeViewId.types.js +1 -0
- package/legacy/internals/plugins/useTreeViewJSXNodes/index.js +1 -0
- package/legacy/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.js +120 -0
- package/legacy/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.types.js +1 -0
- package/legacy/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +20 -9
- package/legacy/internals/plugins/useTreeViewNodes/useTreeViewNodes.js +89 -20
- package/legacy/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +45 -28
- package/legacy/internals/useTreeView/useTreeView.js +39 -3
- package/legacy/internals/utils/warning.js +15 -0
- package/legacy/models/index.js +1 -0
- package/legacy/models/items.js +1 -0
- package/models/index.d.ts +1 -0
- package/models/index.js +1 -0
- package/models/items.d.ts +7 -0
- package/models/items.js +1 -0
- package/models/package.json +6 -0
- package/modern/RichTreeView/RichTreeView.js +322 -0
- package/modern/RichTreeView/RichTreeView.types.js +1 -0
- package/modern/RichTreeView/index.js +3 -0
- package/modern/RichTreeView/richTreeViewClasses.js +6 -0
- package/modern/SimpleTreeView/SimpleTreeView.js +267 -0
- package/modern/SimpleTreeView/SimpleTreeView.plugins.js +5 -0
- package/modern/SimpleTreeView/SimpleTreeView.types.js +1 -0
- package/modern/SimpleTreeView/index.js +3 -0
- package/modern/SimpleTreeView/simpleTreeViewClasses.js +6 -0
- package/modern/TreeItem/TreeItem.js +44 -88
- package/modern/TreeItem/index.js +2 -2
- package/modern/TreeItem/useTreeItem.js +5 -5
- package/modern/TreeView/TreeView.js +80 -87
- package/modern/index.js +5 -2
- package/modern/internals/TreeViewProvider/TreeViewContext.js +1 -14
- package/modern/internals/TreeViewProvider/useTreeViewContext.js +7 -1
- package/modern/internals/corePlugins/corePlugins.js +1 -1
- package/modern/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +0 -6
- package/modern/internals/hooks/useLazyRef.js +11 -0
- package/modern/internals/hooks/useOnMount.js +7 -0
- package/modern/internals/hooks/useTimeout.js +28 -0
- package/modern/internals/plugins/defaultPlugins.js +2 -1
- package/modern/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.js +8 -6
- package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +26 -17
- package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +12 -6
- package/modern/internals/plugins/useTreeViewId/index.js +1 -0
- package/modern/internals/plugins/useTreeViewId/useTreeViewId.js +18 -0
- package/modern/internals/plugins/useTreeViewId/useTreeViewId.types.js +1 -0
- package/modern/internals/plugins/useTreeViewJSXNodes/index.js +1 -0
- package/modern/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.js +113 -0
- package/modern/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.types.js +1 -0
- package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +19 -9
- package/modern/internals/plugins/useTreeViewNodes/useTreeViewNodes.js +82 -18
- package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +41 -28
- package/modern/internals/useTreeView/useTreeView.js +40 -3
- package/modern/internals/utils/warning.js +14 -0
- package/modern/models/index.js +1 -0
- package/modern/models/items.js +1 -0
- package/node/RichTreeView/RichTreeView.js +330 -0
- package/node/RichTreeView/RichTreeView.types.js +5 -0
- package/node/RichTreeView/index.js +27 -0
- package/node/RichTreeView/richTreeViewClasses.js +14 -0
- package/node/SimpleTreeView/SimpleTreeView.js +275 -0
- package/node/SimpleTreeView/SimpleTreeView.plugins.js +11 -0
- package/node/SimpleTreeView/SimpleTreeView.types.js +5 -0
- package/node/SimpleTreeView/index.js +27 -0
- package/node/SimpleTreeView/simpleTreeViewClasses.js +14 -0
- package/node/TreeItem/TreeItem.js +44 -88
- package/node/TreeItem/index.js +11 -15
- package/node/TreeItem/useTreeItem.js +5 -5
- package/node/TreeView/TreeView.js +80 -87
- package/node/index.js +38 -2
- package/node/internals/TreeViewProvider/TreeViewContext.js +2 -15
- package/node/internals/TreeViewProvider/useTreeViewContext.js +7 -1
- package/node/internals/corePlugins/corePlugins.js +1 -1
- package/node/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +0 -6
- package/node/internals/hooks/useLazyRef.js +19 -0
- package/node/internals/hooks/useOnMount.js +15 -0
- package/node/internals/hooks/useTimeout.js +34 -0
- package/node/internals/plugins/defaultPlugins.js +2 -1
- package/node/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.js +8 -7
- package/node/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +26 -17
- package/node/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +12 -6
- package/node/internals/plugins/useTreeViewId/index.js +12 -0
- package/node/internals/plugins/useTreeViewId/useTreeViewId.js +28 -0
- package/node/internals/plugins/useTreeViewId/useTreeViewId.types.js +5 -0
- package/node/internals/plugins/useTreeViewJSXNodes/index.js +12 -0
- package/node/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.js +123 -0
- package/node/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.types.js +5 -0
- package/node/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +19 -9
- package/node/internals/plugins/useTreeViewNodes/useTreeViewNodes.js +82 -18
- package/node/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +41 -28
- package/node/internals/useTreeView/useTreeView.js +40 -3
- package/node/internals/utils/warning.js +21 -0
- package/node/models/index.js +16 -0
- package/node/models/items.js +5 -0
- package/package.json +8 -7
- package/themeAugmentation/components.d.ts +14 -4
- package/themeAugmentation/overrides.d.ts +8 -4
- package/themeAugmentation/props.d.ts +7 -3
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
2
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
-
const _excluded = ["children", "className", "collapseIcon", "ContentComponent", "ContentProps", "endIcon", "expandIcon", "
|
|
3
|
+
const _excluded = ["children", "className", "collapseIcon", "ContentComponent", "ContentProps", "endIcon", "expandIcon", "icon", "nodeId", "id", "label", "onClick", "onMouseDown", "TransitionComponent", "TransitionProps"];
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import clsx from 'clsx';
|
|
7
7
|
import Collapse from '@mui/material/Collapse';
|
|
8
8
|
import { alpha, styled, useThemeProps } from '@mui/material/styles';
|
|
9
|
-
import ownerDocument from '@mui/utils/ownerDocument';
|
|
10
|
-
import useForkRef from '@mui/utils/useForkRef';
|
|
11
9
|
import unsupportedProp from '@mui/utils/unsupportedProp';
|
|
12
10
|
import elementTypeAcceptingRef from '@mui/utils/elementTypeAcceptingRef';
|
|
13
11
|
import { unstable_composeClasses as composeClasses } from '@mui/base';
|
|
14
|
-
import { DescendantProvider, useDescendant } from '../internals/TreeViewProvider/DescendantProvider';
|
|
15
12
|
import { TreeItemContent } from './TreeItemContent';
|
|
16
13
|
import { treeItemClasses, getTreeItemUtilityClass } from './treeItemClasses';
|
|
17
14
|
import { useTreeViewContext } from '../internals/TreeViewProvider/useTreeViewContext';
|
|
@@ -132,11 +129,26 @@ const TreeItemGroup = styled(Collapse, {
|
|
|
132
129
|
*
|
|
133
130
|
* - [TreeItem API](https://mui.com/x/api/tree-view/tree-item/)
|
|
134
131
|
*/
|
|
135
|
-
export const TreeItem = /*#__PURE__*/React.forwardRef(function TreeItem(inProps,
|
|
136
|
-
const
|
|
132
|
+
export const TreeItem = /*#__PURE__*/React.forwardRef(function TreeItem(inProps, inRef) {
|
|
133
|
+
const {
|
|
134
|
+
icons: contextIcons,
|
|
135
|
+
runItemPlugins,
|
|
136
|
+
multiSelect,
|
|
137
|
+
disabledItemsFocusable,
|
|
138
|
+
instance
|
|
139
|
+
} = useTreeViewContext();
|
|
140
|
+
const inPropsWithTheme = useThemeProps({
|
|
137
141
|
props: inProps,
|
|
138
142
|
name: 'MuiTreeItem'
|
|
139
143
|
});
|
|
144
|
+
const {
|
|
145
|
+
props,
|
|
146
|
+
ref,
|
|
147
|
+
wrapItem
|
|
148
|
+
} = runItemPlugins({
|
|
149
|
+
props: inPropsWithTheme,
|
|
150
|
+
ref: inRef
|
|
151
|
+
});
|
|
140
152
|
const {
|
|
141
153
|
children,
|
|
142
154
|
className,
|
|
@@ -145,46 +157,21 @@ export const TreeItem = /*#__PURE__*/React.forwardRef(function TreeItem(inProps,
|
|
|
145
157
|
ContentProps,
|
|
146
158
|
endIcon,
|
|
147
159
|
expandIcon,
|
|
148
|
-
disabled: disabledProp,
|
|
149
160
|
icon,
|
|
150
|
-
id: idProp,
|
|
151
|
-
label,
|
|
152
161
|
nodeId,
|
|
162
|
+
id,
|
|
163
|
+
label,
|
|
153
164
|
onClick,
|
|
154
165
|
onMouseDown,
|
|
155
166
|
TransitionComponent = Collapse,
|
|
156
167
|
TransitionProps
|
|
157
168
|
} = props,
|
|
158
169
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
159
|
-
const {
|
|
160
|
-
icons: contextIcons,
|
|
161
|
-
multiSelect,
|
|
162
|
-
disabledItemsFocusable,
|
|
163
|
-
treeId,
|
|
164
|
-
instance
|
|
165
|
-
} = useTreeViewContext();
|
|
166
|
-
let id;
|
|
167
|
-
if (idProp != null) {
|
|
168
|
-
id = idProp;
|
|
169
|
-
} else if (treeId && nodeId) {
|
|
170
|
-
id = `${treeId}-${nodeId}`;
|
|
171
|
-
}
|
|
172
|
-
const [treeItemElement, setTreeItemElement] = React.useState(null);
|
|
173
|
-
const contentRef = React.useRef(null);
|
|
174
|
-
const handleRef = useForkRef(setTreeItemElement, ref);
|
|
175
|
-
const descendant = React.useMemo(() => ({
|
|
176
|
-
element: treeItemElement,
|
|
177
|
-
id: nodeId
|
|
178
|
-
}), [nodeId, treeItemElement]);
|
|
179
|
-
const {
|
|
180
|
-
index,
|
|
181
|
-
parentId
|
|
182
|
-
} = useDescendant(descendant);
|
|
183
170
|
const expandable = Boolean(Array.isArray(children) ? children.length : children);
|
|
184
|
-
const expanded = instance
|
|
185
|
-
const focused = instance
|
|
186
|
-
const selected = instance
|
|
187
|
-
const disabled = instance
|
|
171
|
+
const expanded = instance.isNodeExpanded(nodeId);
|
|
172
|
+
const focused = instance.isNodeFocused(nodeId);
|
|
173
|
+
const selected = instance.isNodeSelected(nodeId);
|
|
174
|
+
const disabled = instance.isNodeDisabled(nodeId);
|
|
188
175
|
const ownerState = _extends({}, props, {
|
|
189
176
|
expanded,
|
|
190
177
|
focused,
|
|
@@ -206,27 +193,6 @@ export const TreeItem = /*#__PURE__*/React.forwardRef(function TreeItem(inProps,
|
|
|
206
193
|
} else {
|
|
207
194
|
displayIcon = endIcon || contextIcons.defaultEndIcon;
|
|
208
195
|
}
|
|
209
|
-
React.useEffect(() => {
|
|
210
|
-
// On the first render a node's index will be -1. We want to wait for the real index.
|
|
211
|
-
if (instance && index !== -1) {
|
|
212
|
-
instance.updateNode({
|
|
213
|
-
id: nodeId,
|
|
214
|
-
idAttribute: id,
|
|
215
|
-
index,
|
|
216
|
-
parentId,
|
|
217
|
-
expandable,
|
|
218
|
-
disabled: disabledProp
|
|
219
|
-
});
|
|
220
|
-
return () => instance.removeNode(nodeId);
|
|
221
|
-
}
|
|
222
|
-
return undefined;
|
|
223
|
-
}, [instance, parentId, index, nodeId, expandable, disabledProp, id]);
|
|
224
|
-
React.useEffect(() => {
|
|
225
|
-
if (instance && label) {
|
|
226
|
-
return instance.mapFirstChar(nodeId, (contentRef.current?.textContent ?? '').substring(0, 1).toLowerCase());
|
|
227
|
-
}
|
|
228
|
-
return undefined;
|
|
229
|
-
}, [instance, nodeId, label]);
|
|
230
196
|
let ariaSelected;
|
|
231
197
|
if (multiSelect) {
|
|
232
198
|
ariaSelected = selected;
|
|
@@ -242,36 +208,28 @@ export const TreeItem = /*#__PURE__*/React.forwardRef(function TreeItem(inProps,
|
|
|
242
208
|
function handleFocus(event) {
|
|
243
209
|
// DOM focus stays on the tree which manages focus with aria-activedescendant
|
|
244
210
|
if (event.target === event.currentTarget) {
|
|
245
|
-
|
|
246
|
-
if (typeof event.target.getRootNode === 'function') {
|
|
247
|
-
rootElement = event.target.getRootNode();
|
|
248
|
-
} else {
|
|
249
|
-
rootElement = ownerDocument(event.target);
|
|
250
|
-
}
|
|
251
|
-
rootElement.getElementById(treeId).focus({
|
|
252
|
-
preventScroll: true
|
|
253
|
-
});
|
|
211
|
+
instance.focusRoot();
|
|
254
212
|
}
|
|
255
|
-
const
|
|
256
|
-
if (
|
|
213
|
+
const canBeFocused = !disabled || disabledItemsFocusable;
|
|
214
|
+
if (!focused && canBeFocused && event.currentTarget === event.target) {
|
|
257
215
|
instance.focusNode(event, nodeId);
|
|
258
216
|
}
|
|
259
217
|
}
|
|
260
|
-
|
|
218
|
+
const idAttribute = instance.getTreeItemId(nodeId, id);
|
|
219
|
+
const item = /*#__PURE__*/_jsxs(TreeItemRoot, _extends({
|
|
261
220
|
className: clsx(classes.root, className),
|
|
262
221
|
role: "treeitem",
|
|
263
222
|
"aria-expanded": expandable ? expanded : undefined,
|
|
264
223
|
"aria-selected": ariaSelected,
|
|
265
224
|
"aria-disabled": disabled || undefined,
|
|
266
|
-
id:
|
|
225
|
+
id: idAttribute,
|
|
267
226
|
tabIndex: -1
|
|
268
227
|
}, other, {
|
|
269
228
|
ownerState: ownerState,
|
|
270
229
|
onFocus: handleFocus,
|
|
271
|
-
ref:
|
|
230
|
+
ref: ref,
|
|
272
231
|
children: [/*#__PURE__*/_jsx(StyledTreeItemContent, _extends({
|
|
273
232
|
as: ContentComponent,
|
|
274
|
-
ref: contentRef,
|
|
275
233
|
classes: {
|
|
276
234
|
root: classes.content,
|
|
277
235
|
expanded: classes.expanded,
|
|
@@ -289,22 +247,20 @@ export const TreeItem = /*#__PURE__*/React.forwardRef(function TreeItem(inProps,
|
|
|
289
247
|
expansionIcon: expansionIcon,
|
|
290
248
|
displayIcon: displayIcon,
|
|
291
249
|
ownerState: ownerState
|
|
292
|
-
}, ContentProps)), children && /*#__PURE__*/_jsx(
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
children: children
|
|
303
|
-
}))
|
|
304
|
-
})]
|
|
250
|
+
}, ContentProps)), children && /*#__PURE__*/_jsx(TreeItemGroup, _extends({
|
|
251
|
+
as: TransitionComponent,
|
|
252
|
+
unmountOnExit: true,
|
|
253
|
+
className: classes.group,
|
|
254
|
+
in: expanded,
|
|
255
|
+
component: "ul",
|
|
256
|
+
role: "group"
|
|
257
|
+
}, TransitionProps, {
|
|
258
|
+
children: children
|
|
259
|
+
}))]
|
|
305
260
|
}));
|
|
261
|
+
return wrapItem(item);
|
|
306
262
|
});
|
|
307
|
-
|
|
263
|
+
TreeItem.propTypes = {
|
|
308
264
|
// ----------------------------- Warning --------------------------------
|
|
309
265
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
310
266
|
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
@@ -379,4 +335,4 @@ process.env.NODE_ENV !== "production" ? TreeItem.propTypes = {
|
|
|
379
335
|
* By default, the element is based on this [`Transition`](http://reactcommunity.org/react-transition-group/transition/) component.
|
|
380
336
|
*/
|
|
381
337
|
TransitionProps: PropTypes.object
|
|
382
|
-
}
|
|
338
|
+
};
|
package/modern/TreeItem/index.js
CHANGED
|
@@ -4,11 +4,11 @@ export function useTreeItem(nodeId) {
|
|
|
4
4
|
instance,
|
|
5
5
|
multiSelect
|
|
6
6
|
} = useTreeViewContext();
|
|
7
|
-
const expandable = instance
|
|
8
|
-
const expanded = instance
|
|
9
|
-
const focused = instance
|
|
10
|
-
const selected = instance
|
|
11
|
-
const disabled = instance
|
|
7
|
+
const expandable = instance.isNodeExpandable(nodeId);
|
|
8
|
+
const expanded = instance.isNodeExpanded(nodeId);
|
|
9
|
+
const focused = instance.isNodeFocused(nodeId);
|
|
10
|
+
const selected = instance.isNodeSelected(nodeId);
|
|
11
|
+
const disabled = instance.isNodeDisabled(nodeId);
|
|
12
12
|
const handleExpansion = event => {
|
|
13
13
|
if (instance && !disabled) {
|
|
14
14
|
if (!focused) {
|
|
@@ -1,15 +1,10 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
const _excluded = ["disabledItemsFocusable", "expanded", "defaultExpanded", "onNodeToggle", "onNodeFocus", "disableSelection", "defaultSelected", "selected", "multiSelect", "onNodeSelect", "id", "defaultCollapseIcon", "defaultEndIcon", "defaultExpandIcon", "defaultParentIcon", "children"];
|
|
4
2
|
import * as React from 'react';
|
|
5
3
|
import PropTypes from 'prop-types';
|
|
6
4
|
import { styled, useThemeProps } from '@mui/material/styles';
|
|
7
5
|
import composeClasses from '@mui/utils/composeClasses';
|
|
8
|
-
import { useSlotProps } from '@mui/base/utils';
|
|
9
6
|
import { getTreeViewUtilityClass } from './treeViewClasses';
|
|
10
|
-
import {
|
|
11
|
-
import { TreeViewProvider } from '../internals/TreeViewProvider';
|
|
12
|
-
import { DEFAULT_TREE_VIEW_PLUGINS } from '../internals/plugins';
|
|
7
|
+
import { SimpleTreeView, SimpleTreeViewRoot } from '../SimpleTreeView';
|
|
13
8
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
14
9
|
const useUtilityClasses = ownerState => {
|
|
15
10
|
const {
|
|
@@ -20,17 +15,22 @@ const useUtilityClasses = ownerState => {
|
|
|
20
15
|
};
|
|
21
16
|
return composeClasses(slots, getTreeViewUtilityClass, classes);
|
|
22
17
|
};
|
|
23
|
-
const TreeViewRoot = styled(
|
|
18
|
+
const TreeViewRoot = styled(SimpleTreeViewRoot, {
|
|
24
19
|
name: 'MuiTreeView',
|
|
25
20
|
slot: 'Root',
|
|
26
21
|
overridesResolver: (props, styles) => styles.root
|
|
27
|
-
})({
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
22
|
+
})({});
|
|
23
|
+
let warnedOnce = false;
|
|
24
|
+
const warn = () => {
|
|
25
|
+
if (!warnedOnce) {
|
|
26
|
+
console.warn(['MUI: The TreeView component was renamed SimpleTreeView.', 'The component with the old naming will be removed in the version v8.0.0.', '', "You should use `import { SimpleTreeView } from '@mui/x-tree-view'`", "or `import { SimpleTreeView } from '@mui/x-tree-view/TreeView'`"].join('\n'));
|
|
27
|
+
warnedOnce = true;
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
|
|
33
31
|
/**
|
|
32
|
+
* This component has been deprecated in favor of the new `SimpleTreeView` component.
|
|
33
|
+
* You can have a look at how to migrate to the new component in the v7 [migration guide](https://next.mui.com/x/migration/migration-tree-view-v6/#use-simpletreeview-instead-of-treeview)
|
|
34
34
|
*
|
|
35
35
|
* Demos:
|
|
36
36
|
*
|
|
@@ -39,72 +39,25 @@ const TreeViewRoot = styled('ul', {
|
|
|
39
39
|
* API:
|
|
40
40
|
*
|
|
41
41
|
* - [TreeView API](https://mui.com/x/api/tree-view/tree-view/)
|
|
42
|
+
*
|
|
43
|
+
* @deprecated
|
|
42
44
|
*/
|
|
43
45
|
const TreeView = /*#__PURE__*/React.forwardRef(function TreeView(inProps, ref) {
|
|
44
|
-
|
|
46
|
+
if (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test') {
|
|
47
|
+
warn();
|
|
48
|
+
}
|
|
49
|
+
const props = useThemeProps({
|
|
45
50
|
props: inProps,
|
|
46
51
|
name: 'MuiTreeView'
|
|
47
52
|
});
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
onNodeFocus,
|
|
57
|
-
disableSelection,
|
|
58
|
-
defaultSelected,
|
|
59
|
-
selected,
|
|
60
|
-
multiSelect,
|
|
61
|
-
onNodeSelect,
|
|
62
|
-
id,
|
|
63
|
-
defaultCollapseIcon,
|
|
64
|
-
defaultEndIcon,
|
|
65
|
-
defaultExpandIcon,
|
|
66
|
-
defaultParentIcon,
|
|
67
|
-
// Component implementation
|
|
68
|
-
children
|
|
69
|
-
} = _ref,
|
|
70
|
-
other = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
71
|
-
const {
|
|
72
|
-
getRootProps,
|
|
73
|
-
contextValue
|
|
74
|
-
} = useTreeView({
|
|
75
|
-
disabledItemsFocusable,
|
|
76
|
-
expanded,
|
|
77
|
-
defaultExpanded,
|
|
78
|
-
onNodeToggle,
|
|
79
|
-
onNodeFocus,
|
|
80
|
-
disableSelection,
|
|
81
|
-
defaultSelected,
|
|
82
|
-
selected,
|
|
83
|
-
multiSelect,
|
|
84
|
-
onNodeSelect,
|
|
85
|
-
id,
|
|
86
|
-
defaultCollapseIcon,
|
|
87
|
-
defaultEndIcon,
|
|
88
|
-
defaultExpandIcon,
|
|
89
|
-
defaultParentIcon,
|
|
90
|
-
plugins: DEFAULT_TREE_VIEW_PLUGINS,
|
|
91
|
-
rootRef: ref
|
|
92
|
-
});
|
|
93
|
-
const classes = useUtilityClasses(themeProps);
|
|
94
|
-
const rootProps = useSlotProps({
|
|
95
|
-
elementType: TreeViewRoot,
|
|
96
|
-
externalSlotProps: {},
|
|
97
|
-
externalForwardedProps: other,
|
|
98
|
-
className: classes.root,
|
|
99
|
-
getSlotProps: getRootProps,
|
|
100
|
-
ownerState
|
|
101
|
-
});
|
|
102
|
-
return /*#__PURE__*/_jsx(TreeViewProvider, {
|
|
103
|
-
value: contextValue,
|
|
104
|
-
children: /*#__PURE__*/_jsx(TreeViewRoot, _extends({}, rootProps, {
|
|
105
|
-
children: children
|
|
106
|
-
}))
|
|
107
|
-
});
|
|
53
|
+
const classes = useUtilityClasses(props);
|
|
54
|
+
return /*#__PURE__*/_jsx(SimpleTreeView, _extends({}, props, {
|
|
55
|
+
ref: ref,
|
|
56
|
+
classes: classes,
|
|
57
|
+
slots: _extends({
|
|
58
|
+
root: TreeViewRoot
|
|
59
|
+
}, props.slots)
|
|
60
|
+
}));
|
|
108
61
|
});
|
|
109
62
|
process.env.NODE_ENV !== "production" ? TreeView.propTypes = {
|
|
110
63
|
// ----------------------------- Warning --------------------------------
|
|
@@ -137,7 +90,7 @@ process.env.NODE_ENV !== "production" ? TreeView.propTypes = {
|
|
|
137
90
|
* Used when the item's expansion is not controlled.
|
|
138
91
|
* @default []
|
|
139
92
|
*/
|
|
140
|
-
|
|
93
|
+
defaultExpandedNodes: PropTypes.arrayOf(PropTypes.string),
|
|
141
94
|
/**
|
|
142
95
|
* The default icon used to expand the node.
|
|
143
96
|
*/
|
|
@@ -152,7 +105,7 @@ process.env.NODE_ENV !== "production" ? TreeView.propTypes = {
|
|
|
152
105
|
* When `multiSelect` is true this takes an array of strings; when false (default) a string.
|
|
153
106
|
* @default []
|
|
154
107
|
*/
|
|
155
|
-
|
|
108
|
+
defaultSelectedNodes: PropTypes.any,
|
|
156
109
|
/**
|
|
157
110
|
* If `true`, will allow focus on disabled items.
|
|
158
111
|
* @default false
|
|
@@ -167,7 +120,25 @@ process.env.NODE_ENV !== "production" ? TreeView.propTypes = {
|
|
|
167
120
|
* Expanded node ids.
|
|
168
121
|
* Used when the item's expansion is controlled.
|
|
169
122
|
*/
|
|
170
|
-
|
|
123
|
+
expandedNodes: PropTypes.arrayOf(PropTypes.string),
|
|
124
|
+
/**
|
|
125
|
+
* Used to determine the string label for a given item.
|
|
126
|
+
*
|
|
127
|
+
* @template R
|
|
128
|
+
* @param {R} item The item to check.
|
|
129
|
+
* @returns {string} The id of the item.
|
|
130
|
+
* @default `(item) => item.id`
|
|
131
|
+
*/
|
|
132
|
+
getItemId: PropTypes.func,
|
|
133
|
+
/**
|
|
134
|
+
* Used to determine the string label for a given item.
|
|
135
|
+
*
|
|
136
|
+
* @template R
|
|
137
|
+
* @param {R} item The item to check.
|
|
138
|
+
* @returns {string} The label of the item.
|
|
139
|
+
* @default `(item) => item.label`
|
|
140
|
+
*/
|
|
141
|
+
getItemLabel: PropTypes.func,
|
|
171
142
|
/**
|
|
172
143
|
* This prop is used to help implement the accessibility logic.
|
|
173
144
|
* If you don't provide this prop. It falls back to a randomly generated id.
|
|
@@ -178,6 +149,19 @@ process.env.NODE_ENV !== "production" ? TreeView.propTypes = {
|
|
|
178
149
|
* @default false
|
|
179
150
|
*/
|
|
180
151
|
multiSelect: PropTypes.bool,
|
|
152
|
+
/**
|
|
153
|
+
* Callback fired when tree items are expanded/collapsed.
|
|
154
|
+
* @param {React.SyntheticEvent} event The event source of the callback.
|
|
155
|
+
* @param {array} nodeIds The ids of the expanded nodes.
|
|
156
|
+
*/
|
|
157
|
+
onExpandedNodesChange: PropTypes.func,
|
|
158
|
+
/**
|
|
159
|
+
* Callback fired when a tree item is expanded or collapsed.
|
|
160
|
+
* @param {React.SyntheticEvent} event The event source of the callback.
|
|
161
|
+
* @param {array} nodeId The nodeId of the modified node.
|
|
162
|
+
* @param {array} isExpanded `true` if the node has just been expanded, `false` if it has just been collapsed.
|
|
163
|
+
*/
|
|
164
|
+
onNodeExpansionToggle: PropTypes.func,
|
|
181
165
|
/**
|
|
182
166
|
* Callback fired when tree items are focused.
|
|
183
167
|
* @param {React.SyntheticEvent} event The event source of the callback **Warning**: This is a generic event not a focus event.
|
|
@@ -186,23 +170,32 @@ process.env.NODE_ENV !== "production" ? TreeView.propTypes = {
|
|
|
186
170
|
*/
|
|
187
171
|
onNodeFocus: PropTypes.func,
|
|
188
172
|
/**
|
|
189
|
-
* Callback fired when tree
|
|
190
|
-
* @param {React.SyntheticEvent} event The event source of the callback
|
|
191
|
-
* @param {
|
|
192
|
-
*
|
|
173
|
+
* Callback fired when a tree item is selected or deselected.
|
|
174
|
+
* @param {React.SyntheticEvent} event The event source of the callback.
|
|
175
|
+
* @param {array} nodeId The nodeId of the modified node.
|
|
176
|
+
* @param {array} isSelected `true` if the node has just been selected, `false` if it has just been deselected.
|
|
193
177
|
*/
|
|
194
|
-
|
|
178
|
+
onNodeSelectionToggle: PropTypes.func,
|
|
195
179
|
/**
|
|
196
|
-
* Callback fired when tree items are
|
|
197
|
-
* @param {React.SyntheticEvent} event The event source of the callback
|
|
198
|
-
* @param {
|
|
180
|
+
* Callback fired when tree items are selected/deselected.
|
|
181
|
+
* @param {React.SyntheticEvent} event The event source of the callback
|
|
182
|
+
* @param {string[] | string} nodeIds The ids of the selected nodes.
|
|
183
|
+
* When `multiSelect` is `true`, this is an array of strings; when false (default) a string.
|
|
199
184
|
*/
|
|
200
|
-
|
|
185
|
+
onSelectedNodesChange: PropTypes.func,
|
|
201
186
|
/**
|
|
202
187
|
* Selected node ids. (Controlled)
|
|
203
188
|
* When `multiSelect` is true this takes an array of strings; when false (default) a string.
|
|
204
189
|
*/
|
|
205
|
-
|
|
190
|
+
selectedNodes: PropTypes.any,
|
|
191
|
+
/**
|
|
192
|
+
* The props used for each component slot.
|
|
193
|
+
*/
|
|
194
|
+
slotProps: PropTypes.object,
|
|
195
|
+
/**
|
|
196
|
+
* Overridable component slots.
|
|
197
|
+
*/
|
|
198
|
+
slots: PropTypes.object,
|
|
206
199
|
/**
|
|
207
200
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
208
201
|
*/
|
package/modern/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @mui/x-tree-view
|
|
2
|
+
* @mui/x-tree-view v7.0.0-alpha.7
|
|
3
3
|
*
|
|
4
4
|
* @license MIT
|
|
5
5
|
* This source code is licensed under the MIT license found in the
|
|
@@ -7,4 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
export * from './TreeItem';
|
|
9
9
|
export * from './TreeView';
|
|
10
|
-
export
|
|
10
|
+
export * from './SimpleTreeView';
|
|
11
|
+
export * from './RichTreeView';
|
|
12
|
+
export { unstable_resetCleanupTracking } from './internals/hooks/useInstanceEventHandler';
|
|
13
|
+
export * from './models';
|
|
@@ -1,21 +1,8 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
export const DEFAULT_TREE_VIEW_CONTEXT_VALUE = {
|
|
3
|
-
instance: null,
|
|
4
|
-
multiSelect: false,
|
|
5
|
-
disabledItemsFocusable: false,
|
|
6
|
-
treeId: undefined,
|
|
7
|
-
icons: {
|
|
8
|
-
defaultCollapseIcon: null,
|
|
9
|
-
defaultExpandIcon: null,
|
|
10
|
-
defaultParentIcon: null,
|
|
11
|
-
defaultEndIcon: null
|
|
12
|
-
}
|
|
13
|
-
};
|
|
14
|
-
|
|
15
2
|
/**
|
|
16
3
|
* @ignore - internal component.
|
|
17
4
|
*/
|
|
18
|
-
export const TreeViewContext = /*#__PURE__*/React.createContext(
|
|
5
|
+
export const TreeViewContext = /*#__PURE__*/React.createContext(null);
|
|
19
6
|
if (process.env.NODE_ENV !== 'production') {
|
|
20
7
|
TreeViewContext.displayName = 'TreeViewContext';
|
|
21
8
|
}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { TreeViewContext } from './TreeViewContext';
|
|
3
|
-
export const useTreeViewContext = () =>
|
|
3
|
+
export const useTreeViewContext = () => {
|
|
4
|
+
const context = React.useContext(TreeViewContext);
|
|
5
|
+
if (context == null) {
|
|
6
|
+
throw new Error(['MUI: Could not find the Tree View context.', 'It looks like you rendered your component outside of a SimpleTreeView or RichTreeView parent component.', 'This can also happen if you are bundling multiple versions of the Tree View.'].join('\n'));
|
|
7
|
+
}
|
|
8
|
+
return context;
|
|
9
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useTreeViewInstanceEvents } from './useTreeViewInstanceEvents';
|
|
2
2
|
/**
|
|
3
|
-
* Internal plugins that
|
|
3
|
+
* Internal plugins that create the tools used by the other plugins.
|
|
4
4
|
* These plugins are used by the tree view components.
|
|
5
5
|
*/
|
|
6
6
|
export const TREE_VIEW_CORE_PLUGINS = [useTreeViewInstanceEvents];
|
|
@@ -4,12 +4,6 @@ import { populateInstance } from '../../useTreeView/useTreeView.utils';
|
|
|
4
4
|
const isSyntheticEvent = event => {
|
|
5
5
|
return event.isPropagationStopped !== undefined;
|
|
6
6
|
};
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Plugin responsible for the registration of the nodes defined as JSX children of the TreeView.
|
|
10
|
-
* When we will have both a SimpleTreeView using JSX children and a TreeView using a data prop,
|
|
11
|
-
* this plugin will only be used by SimpleTreeView.
|
|
12
|
-
*/
|
|
13
7
|
export const useTreeViewInstanceEvents = ({
|
|
14
8
|
instance
|
|
15
9
|
}) => {
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
const UNINITIALIZED = {};
|
|
3
|
+
|
|
4
|
+
// See https://github.com/facebook/react/issues/14490 for when to use this.
|
|
5
|
+
export function useLazyRef(init, initArg) {
|
|
6
|
+
const ref = React.useRef(UNINITIALIZED);
|
|
7
|
+
if (ref.current === UNINITIALIZED) {
|
|
8
|
+
ref.current = init(initArg);
|
|
9
|
+
}
|
|
10
|
+
return ref;
|
|
11
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { useLazyRef } from './useLazyRef';
|
|
2
|
+
import { useOnMount } from './useOnMount';
|
|
3
|
+
class Timeout {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.currentId = 0;
|
|
6
|
+
this.clear = () => {
|
|
7
|
+
if (this.currentId !== 0) {
|
|
8
|
+
clearTimeout(this.currentId);
|
|
9
|
+
this.currentId = 0;
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
this.disposeEffect = () => {
|
|
13
|
+
return this.clear;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
static create() {
|
|
17
|
+
return new Timeout();
|
|
18
|
+
}
|
|
19
|
+
start(delay, fn) {
|
|
20
|
+
this.clear();
|
|
21
|
+
this.currentId = setTimeout(fn, delay);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export function useTimeout() {
|
|
25
|
+
const timeout = useLazyRef(Timeout.create).current;
|
|
26
|
+
useOnMount(timeout.disposeEffect);
|
|
27
|
+
return timeout;
|
|
28
|
+
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { useTreeViewId } from './useTreeViewId';
|
|
1
2
|
import { useTreeViewNodes } from './useTreeViewNodes';
|
|
2
3
|
import { useTreeViewExpansion } from './useTreeViewExpansion';
|
|
3
4
|
import { useTreeViewSelection } from './useTreeViewSelection';
|
|
4
5
|
import { useTreeViewFocus } from './useTreeViewFocus';
|
|
5
6
|
import { useTreeViewKeyboardNavigation } from './useTreeViewKeyboardNavigation';
|
|
6
7
|
import { useTreeViewContextValueBuilder } from './useTreeViewContextValueBuilder';
|
|
7
|
-
export const DEFAULT_TREE_VIEW_PLUGINS = [useTreeViewNodes, useTreeViewExpansion, useTreeViewSelection, useTreeViewFocus, useTreeViewKeyboardNavigation, useTreeViewContextValueBuilder];
|
|
8
|
+
export const DEFAULT_TREE_VIEW_PLUGINS = [useTreeViewId, useTreeViewNodes, useTreeViewExpansion, useTreeViewSelection, useTreeViewFocus, useTreeViewKeyboardNavigation, useTreeViewContextValueBuilder];
|
|
8
9
|
|
|
9
10
|
// We can't infer this type from the plugin, otherwise we would lose the generics.
|
package/modern/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.js
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
|
-
import useId from '@mui/utils/useId';
|
|
2
1
|
export const useTreeViewContextValueBuilder = ({
|
|
3
2
|
instance,
|
|
4
3
|
params
|
|
5
4
|
}) => {
|
|
6
|
-
const treeId = useId(params.id);
|
|
7
5
|
return {
|
|
8
|
-
getRootProps: () => ({
|
|
9
|
-
id: treeId
|
|
10
|
-
}),
|
|
11
6
|
contextValue: {
|
|
12
|
-
treeId,
|
|
13
7
|
instance: instance,
|
|
14
8
|
multiSelect: params.multiSelect,
|
|
9
|
+
runItemPlugins: ({
|
|
10
|
+
props,
|
|
11
|
+
ref
|
|
12
|
+
}) => ({
|
|
13
|
+
props,
|
|
14
|
+
ref,
|
|
15
|
+
wrapItem: children => children
|
|
16
|
+
}),
|
|
15
17
|
disabledItemsFocusable: params.disabledItemsFocusable,
|
|
16
18
|
icons: {
|
|
17
19
|
defaultCollapseIcon: params.defaultCollapseIcon,
|