@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
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
+
const _excluded = ["disabledItemsFocusable", "expandedNodes", "defaultExpandedNodes", "onExpandedNodesChange", "onNodeExpansionToggle", "onNodeFocus", "disableSelection", "defaultSelectedNodes", "selectedNodes", "multiSelect", "onSelectedNodesChange", "onNodeSelectionToggle", "id", "defaultCollapseIcon", "defaultEndIcon", "defaultExpandIcon", "defaultParentIcon", "children", "slots", "slotProps"];
|
|
4
|
+
import * as React from 'react';
|
|
5
|
+
import PropTypes from 'prop-types';
|
|
6
|
+
import { styled, useThemeProps } from '@mui/material/styles';
|
|
7
|
+
import composeClasses from '@mui/utils/composeClasses';
|
|
8
|
+
import { useSlotProps } from '@mui/base/utils';
|
|
9
|
+
import { getSimpleTreeViewUtilityClass } from './simpleTreeViewClasses';
|
|
10
|
+
import { useTreeView } from '../internals/useTreeView';
|
|
11
|
+
import { TreeViewProvider } from '../internals/TreeViewProvider';
|
|
12
|
+
import { SIMPLE_TREE_VIEW_PLUGINS } from './SimpleTreeView.plugins';
|
|
13
|
+
import { buildWarning } from '../internals/utils/warning';
|
|
14
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
15
|
+
const useUtilityClasses = ownerState => {
|
|
16
|
+
const {
|
|
17
|
+
classes
|
|
18
|
+
} = ownerState;
|
|
19
|
+
const slots = {
|
|
20
|
+
root: ['root']
|
|
21
|
+
};
|
|
22
|
+
return composeClasses(slots, getSimpleTreeViewUtilityClass, classes);
|
|
23
|
+
};
|
|
24
|
+
export const SimpleTreeViewRoot = styled('ul', {
|
|
25
|
+
name: 'MuiSimpleTreeView',
|
|
26
|
+
slot: 'Root',
|
|
27
|
+
overridesResolver: (props, styles) => styles.root
|
|
28
|
+
})({
|
|
29
|
+
padding: 0,
|
|
30
|
+
margin: 0,
|
|
31
|
+
listStyle: 'none',
|
|
32
|
+
outline: 0
|
|
33
|
+
});
|
|
34
|
+
const EMPTY_ITEMS = [];
|
|
35
|
+
const itemsPropWarning = buildWarning(['MUI: The `SimpleTreeView` component does not support the `items` prop.', 'If you want to add items, you need to pass them as JSX children.', 'Check the documentation for more details: https://next.mui.com/x/react-tree-view/simple-tree-view/items/']);
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
*
|
|
39
|
+
* Demos:
|
|
40
|
+
*
|
|
41
|
+
* - [Tree View](https://mui.com/x/react-tree-view/)
|
|
42
|
+
*
|
|
43
|
+
* API:
|
|
44
|
+
*
|
|
45
|
+
* - [SimpleTreeView API](https://mui.com/x/api/tree-view/simple-tree-view/)
|
|
46
|
+
*/
|
|
47
|
+
const SimpleTreeView = /*#__PURE__*/React.forwardRef(function SimpleTreeView(inProps, ref) {
|
|
48
|
+
var _slots$root;
|
|
49
|
+
const props = useThemeProps({
|
|
50
|
+
props: inProps,
|
|
51
|
+
name: 'MuiSimpleTreeView'
|
|
52
|
+
});
|
|
53
|
+
const ownerState = props;
|
|
54
|
+
const _ref = props,
|
|
55
|
+
{
|
|
56
|
+
// Headless implementation
|
|
57
|
+
disabledItemsFocusable,
|
|
58
|
+
expandedNodes,
|
|
59
|
+
defaultExpandedNodes,
|
|
60
|
+
onExpandedNodesChange,
|
|
61
|
+
onNodeExpansionToggle,
|
|
62
|
+
onNodeFocus,
|
|
63
|
+
disableSelection,
|
|
64
|
+
defaultSelectedNodes,
|
|
65
|
+
selectedNodes,
|
|
66
|
+
multiSelect,
|
|
67
|
+
onSelectedNodesChange,
|
|
68
|
+
onNodeSelectionToggle,
|
|
69
|
+
id,
|
|
70
|
+
defaultCollapseIcon,
|
|
71
|
+
defaultEndIcon,
|
|
72
|
+
defaultExpandIcon,
|
|
73
|
+
defaultParentIcon,
|
|
74
|
+
// Component implementation
|
|
75
|
+
children,
|
|
76
|
+
slots
|
|
77
|
+
} = _ref,
|
|
78
|
+
other = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
79
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
80
|
+
if (props.items != null) {
|
|
81
|
+
itemsPropWarning();
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
const {
|
|
85
|
+
getRootProps,
|
|
86
|
+
contextValue
|
|
87
|
+
} = useTreeView({
|
|
88
|
+
disabledItemsFocusable,
|
|
89
|
+
expandedNodes,
|
|
90
|
+
defaultExpandedNodes,
|
|
91
|
+
onExpandedNodesChange,
|
|
92
|
+
onNodeExpansionToggle,
|
|
93
|
+
onNodeFocus,
|
|
94
|
+
disableSelection,
|
|
95
|
+
defaultSelectedNodes,
|
|
96
|
+
selectedNodes,
|
|
97
|
+
multiSelect,
|
|
98
|
+
onSelectedNodesChange,
|
|
99
|
+
onNodeSelectionToggle,
|
|
100
|
+
id,
|
|
101
|
+
defaultCollapseIcon,
|
|
102
|
+
defaultEndIcon,
|
|
103
|
+
defaultExpandIcon,
|
|
104
|
+
defaultParentIcon,
|
|
105
|
+
items: EMPTY_ITEMS,
|
|
106
|
+
plugins: SIMPLE_TREE_VIEW_PLUGINS,
|
|
107
|
+
rootRef: ref
|
|
108
|
+
});
|
|
109
|
+
const classes = useUtilityClasses(props);
|
|
110
|
+
const Root = (_slots$root = slots == null ? void 0 : slots.root) != null ? _slots$root : SimpleTreeViewRoot;
|
|
111
|
+
const rootProps = useSlotProps({
|
|
112
|
+
elementType: Root,
|
|
113
|
+
externalSlotProps: {},
|
|
114
|
+
externalForwardedProps: other,
|
|
115
|
+
className: classes.root,
|
|
116
|
+
getSlotProps: getRootProps,
|
|
117
|
+
ownerState
|
|
118
|
+
});
|
|
119
|
+
return /*#__PURE__*/_jsx(TreeViewProvider, {
|
|
120
|
+
value: contextValue,
|
|
121
|
+
children: /*#__PURE__*/_jsx(Root, _extends({}, rootProps, {
|
|
122
|
+
children: children
|
|
123
|
+
}))
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
process.env.NODE_ENV !== "production" ? SimpleTreeView.propTypes = {
|
|
127
|
+
// ----------------------------- Warning --------------------------------
|
|
128
|
+
// | These PropTypes are generated from the TypeScript type definitions |
|
|
129
|
+
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
130
|
+
// ----------------------------------------------------------------------
|
|
131
|
+
/**
|
|
132
|
+
* The content of the component.
|
|
133
|
+
*/
|
|
134
|
+
children: PropTypes.node,
|
|
135
|
+
/**
|
|
136
|
+
* Override or extend the styles applied to the component.
|
|
137
|
+
*/
|
|
138
|
+
classes: PropTypes.object,
|
|
139
|
+
/**
|
|
140
|
+
* className applied to the root element.
|
|
141
|
+
*/
|
|
142
|
+
className: PropTypes.string,
|
|
143
|
+
/**
|
|
144
|
+
* The default icon used to collapse the node.
|
|
145
|
+
*/
|
|
146
|
+
defaultCollapseIcon: PropTypes.node,
|
|
147
|
+
/**
|
|
148
|
+
* The default icon displayed next to a end node. This is applied to all
|
|
149
|
+
* tree nodes and can be overridden by the TreeItem `icon` prop.
|
|
150
|
+
*/
|
|
151
|
+
defaultEndIcon: PropTypes.node,
|
|
152
|
+
/**
|
|
153
|
+
* Expanded node ids.
|
|
154
|
+
* Used when the item's expansion is not controlled.
|
|
155
|
+
* @default []
|
|
156
|
+
*/
|
|
157
|
+
defaultExpandedNodes: PropTypes.arrayOf(PropTypes.string),
|
|
158
|
+
/**
|
|
159
|
+
* The default icon used to expand the node.
|
|
160
|
+
*/
|
|
161
|
+
defaultExpandIcon: PropTypes.node,
|
|
162
|
+
/**
|
|
163
|
+
* The default icon displayed next to a parent node. This is applied to all
|
|
164
|
+
* parent nodes and can be overridden by the TreeItem `icon` prop.
|
|
165
|
+
*/
|
|
166
|
+
defaultParentIcon: PropTypes.node,
|
|
167
|
+
/**
|
|
168
|
+
* Selected node ids. (Uncontrolled)
|
|
169
|
+
* When `multiSelect` is true this takes an array of strings; when false (default) a string.
|
|
170
|
+
* @default []
|
|
171
|
+
*/
|
|
172
|
+
defaultSelectedNodes: PropTypes.any,
|
|
173
|
+
/**
|
|
174
|
+
* If `true`, will allow focus on disabled items.
|
|
175
|
+
* @default false
|
|
176
|
+
*/
|
|
177
|
+
disabledItemsFocusable: PropTypes.bool,
|
|
178
|
+
/**
|
|
179
|
+
* If `true` selection is disabled.
|
|
180
|
+
* @default false
|
|
181
|
+
*/
|
|
182
|
+
disableSelection: PropTypes.bool,
|
|
183
|
+
/**
|
|
184
|
+
* Expanded node ids.
|
|
185
|
+
* Used when the item's expansion is controlled.
|
|
186
|
+
*/
|
|
187
|
+
expandedNodes: PropTypes.arrayOf(PropTypes.string),
|
|
188
|
+
/**
|
|
189
|
+
* Used to determine the string label for a given item.
|
|
190
|
+
*
|
|
191
|
+
* @template R
|
|
192
|
+
* @param {R} item The item to check.
|
|
193
|
+
* @returns {string} The id of the item.
|
|
194
|
+
* @default `(item) => item.id`
|
|
195
|
+
*/
|
|
196
|
+
getItemId: PropTypes.func,
|
|
197
|
+
/**
|
|
198
|
+
* Used to determine the string label for a given item.
|
|
199
|
+
*
|
|
200
|
+
* @template R
|
|
201
|
+
* @param {R} item The item to check.
|
|
202
|
+
* @returns {string} The label of the item.
|
|
203
|
+
* @default `(item) => item.label`
|
|
204
|
+
*/
|
|
205
|
+
getItemLabel: PropTypes.func,
|
|
206
|
+
/**
|
|
207
|
+
* This prop is used to help implement the accessibility logic.
|
|
208
|
+
* If you don't provide this prop. It falls back to a randomly generated id.
|
|
209
|
+
*/
|
|
210
|
+
id: PropTypes.string,
|
|
211
|
+
/**
|
|
212
|
+
* If true `ctrl` and `shift` will trigger multiselect.
|
|
213
|
+
* @default false
|
|
214
|
+
*/
|
|
215
|
+
multiSelect: PropTypes.bool,
|
|
216
|
+
/**
|
|
217
|
+
* Callback fired when tree items are expanded/collapsed.
|
|
218
|
+
* @param {React.SyntheticEvent} event The event source of the callback.
|
|
219
|
+
* @param {array} nodeIds The ids of the expanded nodes.
|
|
220
|
+
*/
|
|
221
|
+
onExpandedNodesChange: PropTypes.func,
|
|
222
|
+
/**
|
|
223
|
+
* Callback fired when a tree item is expanded or collapsed.
|
|
224
|
+
* @param {React.SyntheticEvent} event The event source of the callback.
|
|
225
|
+
* @param {array} nodeId The nodeId of the modified node.
|
|
226
|
+
* @param {array} isExpanded `true` if the node has just been expanded, `false` if it has just been collapsed.
|
|
227
|
+
*/
|
|
228
|
+
onNodeExpansionToggle: PropTypes.func,
|
|
229
|
+
/**
|
|
230
|
+
* Callback fired when tree items are focused.
|
|
231
|
+
* @param {React.SyntheticEvent} event The event source of the callback **Warning**: This is a generic event not a focus event.
|
|
232
|
+
* @param {string} nodeId The id of the node focused.
|
|
233
|
+
* @param {string} value of the focused node.
|
|
234
|
+
*/
|
|
235
|
+
onNodeFocus: PropTypes.func,
|
|
236
|
+
/**
|
|
237
|
+
* Callback fired when a tree item is selected or deselected.
|
|
238
|
+
* @param {React.SyntheticEvent} event The event source of the callback.
|
|
239
|
+
* @param {array} nodeId The nodeId of the modified node.
|
|
240
|
+
* @param {array} isSelected `true` if the node has just been selected, `false` if it has just been deselected.
|
|
241
|
+
*/
|
|
242
|
+
onNodeSelectionToggle: PropTypes.func,
|
|
243
|
+
/**
|
|
244
|
+
* Callback fired when tree items are selected/deselected.
|
|
245
|
+
* @param {React.SyntheticEvent} event The event source of the callback
|
|
246
|
+
* @param {string[] | string} nodeIds The ids of the selected nodes.
|
|
247
|
+
* When `multiSelect` is `true`, this is an array of strings; when false (default) a string.
|
|
248
|
+
*/
|
|
249
|
+
onSelectedNodesChange: PropTypes.func,
|
|
250
|
+
/**
|
|
251
|
+
* Selected node ids. (Controlled)
|
|
252
|
+
* When `multiSelect` is true this takes an array of strings; when false (default) a string.
|
|
253
|
+
*/
|
|
254
|
+
selectedNodes: PropTypes.any,
|
|
255
|
+
/**
|
|
256
|
+
* The props used for each component slot.
|
|
257
|
+
*/
|
|
258
|
+
slotProps: PropTypes.object,
|
|
259
|
+
/**
|
|
260
|
+
* Overridable component slots.
|
|
261
|
+
*/
|
|
262
|
+
slots: PropTypes.object,
|
|
263
|
+
/**
|
|
264
|
+
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
265
|
+
*/
|
|
266
|
+
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
|
|
267
|
+
} : void 0;
|
|
268
|
+
export { SimpleTreeView };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { DefaultTreeViewPluginParameters } from '../internals/plugins/defaultPlugins';
|
|
2
|
+
import { ConvertPluginsIntoSignatures } from '../internals/models';
|
|
3
|
+
export declare const SIMPLE_TREE_VIEW_PLUGINS: readonly [import("../internals/models").TreeViewPlugin<import("../internals/plugins/useTreeViewId").UseTreeViewIdSignature>, import("../internals/models").TreeViewPlugin<import("../internals/plugins/useTreeViewNodes").UseTreeViewNodesSignature>, import("../internals/models").TreeViewPlugin<import("../internals/plugins/useTreeViewExpansion").UseTreeViewExpansionSignature>, import("../internals/models").TreeViewPlugin<import("../internals/plugins/useTreeViewSelection").UseTreeViewSelectionSignature>, import("../internals/models").TreeViewPlugin<import("../internals/plugins/useTreeViewFocus").UseTreeViewFocusSignature>, import("../internals/models").TreeViewPlugin<import("../internals/plugins/useTreeViewKeyboardNavigation").UseTreeViewKeyboardNavigationSignature>, import("../internals/models").TreeViewPlugin<import("../internals/plugins/useTreeViewContextValueBuilder").UseTreeViewContextValueBuilderSignature>, import("../internals/models").TreeViewPlugin<import("../internals/plugins/useTreeViewJSXNodes").UseTreeViewJSXNodesSignature>];
|
|
4
|
+
export type SimpleTreeViewPlugins = ConvertPluginsIntoSignatures<typeof SIMPLE_TREE_VIEW_PLUGINS>;
|
|
5
|
+
export interface SimpleTreeViewPluginParameters<Multiple extends boolean | undefined> extends Omit<DefaultTreeViewPluginParameters<any, Multiple>, 'items' | 'isItemDisabled'> {
|
|
6
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { DEFAULT_TREE_VIEW_PLUGINS } from '../internals/plugins/defaultPlugins';
|
|
2
|
+
import { useTreeViewJSXNodes } from '../internals/plugins/useTreeViewJSXNodes';
|
|
3
|
+
export const SIMPLE_TREE_VIEW_PLUGINS = [...DEFAULT_TREE_VIEW_PLUGINS, useTreeViewJSXNodes];
|
|
4
|
+
|
|
5
|
+
// We can't infer this type from the plugin, otherwise we would lose the generics.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Theme } from '@mui/material/styles';
|
|
3
|
+
import { SlotComponentProps } from '@mui/base/utils';
|
|
4
|
+
import { SxProps } from '@mui/system';
|
|
5
|
+
import { SimpleTreeViewClasses } from './simpleTreeViewClasses';
|
|
6
|
+
import { SimpleTreeViewPluginParameters } from './SimpleTreeView.plugins';
|
|
7
|
+
export interface SimpleTreeViewSlots {
|
|
8
|
+
root: React.ElementType;
|
|
9
|
+
}
|
|
10
|
+
export interface SimpleTreeViewSlotProps {
|
|
11
|
+
root?: SlotComponentProps<'ul', {}, {}>;
|
|
12
|
+
}
|
|
13
|
+
export interface SimpleTreeViewProps<Multiple extends boolean | undefined> extends SimpleTreeViewPluginParameters<Multiple>, React.HTMLAttributes<HTMLUListElement> {
|
|
14
|
+
/**
|
|
15
|
+
* The content of the component.
|
|
16
|
+
*/
|
|
17
|
+
children?: React.ReactNode;
|
|
18
|
+
/**
|
|
19
|
+
* Overridable component slots.
|
|
20
|
+
*/
|
|
21
|
+
slots?: SimpleTreeViewSlots;
|
|
22
|
+
/**
|
|
23
|
+
* The props used for each component slot.
|
|
24
|
+
*/
|
|
25
|
+
slotProps?: SimpleTreeViewSlotProps;
|
|
26
|
+
/**
|
|
27
|
+
* className applied to the root element.
|
|
28
|
+
*/
|
|
29
|
+
className?: string;
|
|
30
|
+
/**
|
|
31
|
+
* Override or extend the styles applied to the component.
|
|
32
|
+
*/
|
|
33
|
+
classes?: Partial<SimpleTreeViewClasses>;
|
|
34
|
+
/**
|
|
35
|
+
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
36
|
+
*/
|
|
37
|
+
sx?: SxProps<Theme>;
|
|
38
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export interface SimpleTreeViewClasses {
|
|
2
|
+
/** Styles applied to the root element. */
|
|
3
|
+
root: string;
|
|
4
|
+
}
|
|
5
|
+
export type SimpleTreeViewClassKey = keyof SimpleTreeViewClasses;
|
|
6
|
+
export declare function getSimpleTreeViewUtilityClass(slot: string): string;
|
|
7
|
+
export declare const simpleTreeViewClasses: SimpleTreeViewClasses;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import generateUtilityClass from '@mui/utils/generateUtilityClass';
|
|
2
|
+
import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
|
|
3
|
+
export function getSimpleTreeViewUtilityClass(slot) {
|
|
4
|
+
return generateUtilityClass('MuiSimpleTreeView', slot);
|
|
5
|
+
}
|
|
6
|
+
export const simpleTreeViewClasses = generateUtilityClasses('MuiSimpleTreeView', ['root']);
|
package/TreeItem/TreeItem.js
CHANGED
|
@@ -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,28 +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
|
-
var _contentRef$current$t, _contentRef$current;
|
|
227
|
-
return instance.mapFirstChar(nodeId, ((_contentRef$current$t = (_contentRef$current = contentRef.current) == null ? void 0 : _contentRef$current.textContent) != null ? _contentRef$current$t : '').substring(0, 1).toLowerCase());
|
|
228
|
-
}
|
|
229
|
-
return undefined;
|
|
230
|
-
}, [instance, nodeId, label]);
|
|
231
196
|
let ariaSelected;
|
|
232
197
|
if (multiSelect) {
|
|
233
198
|
ariaSelected = selected;
|
|
@@ -243,36 +208,28 @@ export const TreeItem = /*#__PURE__*/React.forwardRef(function TreeItem(inProps,
|
|
|
243
208
|
function handleFocus(event) {
|
|
244
209
|
// DOM focus stays on the tree which manages focus with aria-activedescendant
|
|
245
210
|
if (event.target === event.currentTarget) {
|
|
246
|
-
|
|
247
|
-
if (typeof event.target.getRootNode === 'function') {
|
|
248
|
-
rootElement = event.target.getRootNode();
|
|
249
|
-
} else {
|
|
250
|
-
rootElement = ownerDocument(event.target);
|
|
251
|
-
}
|
|
252
|
-
rootElement.getElementById(treeId).focus({
|
|
253
|
-
preventScroll: true
|
|
254
|
-
});
|
|
211
|
+
instance.focusRoot();
|
|
255
212
|
}
|
|
256
|
-
const
|
|
257
|
-
if (
|
|
213
|
+
const canBeFocused = !disabled || disabledItemsFocusable;
|
|
214
|
+
if (!focused && canBeFocused && event.currentTarget === event.target) {
|
|
258
215
|
instance.focusNode(event, nodeId);
|
|
259
216
|
}
|
|
260
217
|
}
|
|
261
|
-
|
|
218
|
+
const idAttribute = instance.getTreeItemId(nodeId, id);
|
|
219
|
+
const item = /*#__PURE__*/_jsxs(TreeItemRoot, _extends({
|
|
262
220
|
className: clsx(classes.root, className),
|
|
263
221
|
role: "treeitem",
|
|
264
222
|
"aria-expanded": expandable ? expanded : undefined,
|
|
265
223
|
"aria-selected": ariaSelected,
|
|
266
224
|
"aria-disabled": disabled || undefined,
|
|
267
|
-
id:
|
|
225
|
+
id: idAttribute,
|
|
268
226
|
tabIndex: -1
|
|
269
227
|
}, other, {
|
|
270
228
|
ownerState: ownerState,
|
|
271
229
|
onFocus: handleFocus,
|
|
272
|
-
ref:
|
|
230
|
+
ref: ref,
|
|
273
231
|
children: [/*#__PURE__*/_jsx(StyledTreeItemContent, _extends({
|
|
274
232
|
as: ContentComponent,
|
|
275
|
-
ref: contentRef,
|
|
276
233
|
classes: {
|
|
277
234
|
root: classes.content,
|
|
278
235
|
expanded: classes.expanded,
|
|
@@ -290,22 +247,20 @@ export const TreeItem = /*#__PURE__*/React.forwardRef(function TreeItem(inProps,
|
|
|
290
247
|
expansionIcon: expansionIcon,
|
|
291
248
|
displayIcon: displayIcon,
|
|
292
249
|
ownerState: ownerState
|
|
293
|
-
}, ContentProps)), children && /*#__PURE__*/_jsx(
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
children: children
|
|
304
|
-
}))
|
|
305
|
-
})]
|
|
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
|
+
}))]
|
|
306
260
|
}));
|
|
261
|
+
return wrapItem(item);
|
|
307
262
|
});
|
|
308
|
-
|
|
263
|
+
TreeItem.propTypes = {
|
|
309
264
|
// ----------------------------- Warning --------------------------------
|
|
310
265
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
311
266
|
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
@@ -380,4 +335,4 @@ process.env.NODE_ENV !== "production" ? TreeItem.propTypes = {
|
|
|
380
335
|
* By default, the element is based on this [`Transition`](http://reactcommunity.org/react-transition-group/transition/) component.
|
|
381
336
|
*/
|
|
382
337
|
TransitionProps: PropTypes.object
|
|
383
|
-
}
|
|
338
|
+
};
|
|
@@ -4,6 +4,7 @@ import { TransitionProps } from '@mui/material/transitions';
|
|
|
4
4
|
import { SxProps } from '@mui/system';
|
|
5
5
|
import { TreeItemContentProps } from './TreeItemContent';
|
|
6
6
|
import { TreeItemClasses } from './treeItemClasses';
|
|
7
|
+
import { TreeViewItemId } from '../models';
|
|
7
8
|
export interface TreeItemProps extends Omit<React.HTMLAttributes<HTMLLIElement>, 'onFocus'> {
|
|
8
9
|
/**
|
|
9
10
|
* The content of the component.
|
|
@@ -59,7 +60,7 @@ export interface TreeItemProps extends Omit<React.HTMLAttributes<HTMLLIElement>,
|
|
|
59
60
|
/**
|
|
60
61
|
* The id of the node.
|
|
61
62
|
*/
|
|
62
|
-
nodeId:
|
|
63
|
+
nodeId: TreeViewItemId;
|
|
63
64
|
/**
|
|
64
65
|
* The component used for the transition.
|
|
65
66
|
* [Follow this guide](/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.
|
package/TreeItem/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export
|
|
1
|
+
export { TreeItem } from './TreeItem';
|
|
2
2
|
export type { TreeItemProps } from './TreeItem.types';
|
|
3
|
-
export * from './useTreeItem';
|
|
4
3
|
export * from './treeItemClasses';
|
|
4
|
+
export * from './useTreeItem';
|
|
5
5
|
export { TreeItemContent } from './TreeItemContent';
|
|
6
6
|
export type { TreeItemContentProps, TreeItemContentClassKey } from './TreeItemContent';
|
package/TreeItem/index.js
CHANGED
package/TreeItem/useTreeItem.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) {
|
package/TreeView/TreeView.d.ts
CHANGED
|
@@ -4,6 +4,8 @@ type TreeViewComponent = (<Multiple extends boolean | undefined = undefined>(pro
|
|
|
4
4
|
propTypes?: any;
|
|
5
5
|
};
|
|
6
6
|
/**
|
|
7
|
+
* This component has been deprecated in favor of the new `SimpleTreeView` component.
|
|
8
|
+
* 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)
|
|
7
9
|
*
|
|
8
10
|
* Demos:
|
|
9
11
|
*
|
|
@@ -12,6 +14,8 @@ type TreeViewComponent = (<Multiple extends boolean | undefined = undefined>(pro
|
|
|
12
14
|
* API:
|
|
13
15
|
*
|
|
14
16
|
* - [TreeView API](https://mui.com/x/api/tree-view/tree-view/)
|
|
17
|
+
*
|
|
18
|
+
* @deprecated
|
|
15
19
|
*/
|
|
16
20
|
declare const TreeView: TreeViewComponent;
|
|
17
21
|
export { TreeView };
|