@mui/x-tree-view 7.0.0-beta.3 → 7.0.0-beta.5
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 +357 -22
- package/RichTreeView/RichTreeView.js +8 -0
- package/RichTreeView/RichTreeView.types.d.ts +7 -1
- package/SimpleTreeView/SimpleTreeView.js +8 -0
- package/SimpleTreeView/SimpleTreeView.types.d.ts +7 -1
- package/TreeItem/TreeItem.js +1 -1
- package/TreeItem/TreeItem.types.d.ts +1 -1
- package/TreeView/TreeView.js +8 -0
- package/hooks/index.d.ts +1 -0
- package/hooks/index.js +1 -0
- package/hooks/package.json +6 -0
- package/hooks/useTreeViewApiRef.d.ts +6 -0
- package/hooks/useTreeViewApiRef.js +5 -0
- package/index.d.ts +1 -0
- package/index.js +3 -2
- package/internals/TreeViewProvider/DescendantProvider.js +1 -11
- package/internals/hooks/useTimeout.d.ts +5 -3
- package/internals/hooks/useTimeout.js +13 -5
- package/internals/models/helpers.d.ts +1 -0
- package/internals/models/plugin.d.ts +12 -0
- package/internals/models/treeView.d.ts +1 -0
- package/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +40 -22
- package/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +5 -0
- package/internals/useTreeView/useTreeView.d.ts +2 -0
- package/internals/useTreeView/useTreeView.js +12 -0
- package/internals/useTreeView/useTreeView.types.d.ts +2 -1
- package/internals/useTreeView/useTreeView.utils.d.ts +2 -1
- package/internals/useTreeView/useTreeView.utils.js +3 -0
- package/internals/utils/extractPluginParamsFromProps.d.ts +3 -2
- package/internals/utils/extractPluginParamsFromProps.js +5 -3
- package/internals/utils/utils.d.ts +1 -0
- package/internals/utils/utils.js +10 -0
- package/modern/RichTreeView/RichTreeView.js +8 -0
- package/modern/SimpleTreeView/SimpleTreeView.js +8 -0
- package/modern/TreeItem/TreeItem.js +1 -1
- package/modern/TreeView/TreeView.js +8 -0
- package/modern/hooks/index.js +1 -0
- package/modern/hooks/useTreeViewApiRef.js +5 -0
- package/modern/index.js +3 -2
- package/modern/internals/TreeViewProvider/DescendantProvider.js +1 -11
- package/modern/internals/hooks/useTimeout.js +13 -5
- package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +40 -22
- package/modern/internals/useTreeView/useTreeView.js +12 -0
- package/modern/internals/useTreeView/useTreeView.utils.js +3 -0
- package/modern/internals/utils/extractPluginParamsFromProps.js +5 -3
- package/modern/internals/utils/utils.js +10 -0
- package/node/RichTreeView/RichTreeView.js +8 -0
- package/node/SimpleTreeView/SimpleTreeView.js +8 -0
- package/node/TreeItem/TreeItem.js +1 -1
- package/node/TreeView/TreeView.js +8 -0
- package/node/hooks/index.js +12 -0
- package/node/hooks/useTreeViewApiRef.js +14 -0
- package/node/index.js +13 -1
- package/node/internals/TreeViewProvider/DescendantProvider.js +1 -10
- package/node/internals/hooks/useTimeout.js +13 -4
- package/node/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +39 -21
- package/node/internals/useTreeView/useTreeView.js +13 -0
- package/node/internals/useTreeView/useTreeView.utils.js +6 -2
- package/node/internals/utils/extractPluginParamsFromProps.js +5 -3
- package/node/internals/utils/utils.js +17 -0
- package/package.json +1 -1
- package/legacy/RichTreeView/RichTreeView.js +0 -255
- package/legacy/RichTreeView/RichTreeView.types.js +0 -1
- package/legacy/RichTreeView/index.js +0 -3
- package/legacy/RichTreeView/richTreeViewClasses.js +0 -6
- package/legacy/SimpleTreeView/SimpleTreeView.js +0 -190
- package/legacy/SimpleTreeView/SimpleTreeView.plugins.js +0 -6
- package/legacy/SimpleTreeView/SimpleTreeView.types.js +0 -1
- package/legacy/SimpleTreeView/index.js +0 -3
- package/legacy/SimpleTreeView/simpleTreeViewClasses.js +0 -6
- package/legacy/TreeItem/TreeItem.js +0 -360
- package/legacy/TreeItem/TreeItem.types.js +0 -1
- package/legacy/TreeItem/TreeItemContent.js +0 -95
- package/legacy/TreeItem/index.js +0 -4
- package/legacy/TreeItem/treeItemClasses.js +0 -6
- package/legacy/TreeItem/useTreeItemState.js +0 -58
- package/legacy/TreeView/TreeView.js +0 -165
- package/legacy/TreeView/TreeView.types.js +0 -1
- package/legacy/TreeView/index.js +0 -3
- package/legacy/TreeView/treeViewClasses.js +0 -6
- package/legacy/icons/icons.js +0 -9
- package/legacy/icons/index.js +0 -1
- package/legacy/index.js +0 -14
- package/legacy/internals/TreeViewProvider/DescendantProvider.js +0 -199
- package/legacy/internals/TreeViewProvider/TreeViewContext.js +0 -8
- package/legacy/internals/TreeViewProvider/TreeViewProvider.js +0 -19
- package/legacy/internals/TreeViewProvider/TreeViewProvider.types.js +0 -1
- package/legacy/internals/TreeViewProvider/index.js +0 -1
- package/legacy/internals/TreeViewProvider/useTreeViewContext.js +0 -9
- package/legacy/internals/corePlugins/corePlugins.js +0 -6
- package/legacy/internals/corePlugins/index.js +0 -1
- package/legacy/internals/corePlugins/useTreeViewInstanceEvents/index.js +0 -1
- package/legacy/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +0 -40
- package/legacy/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.js +0 -1
- package/legacy/internals/hooks/useInstanceEventHandler.js +0 -87
- package/legacy/internals/hooks/useLazyRef.js +0 -11
- package/legacy/internals/hooks/useOnMount.js +0 -7
- package/legacy/internals/hooks/useTimeout.js +0 -38
- package/legacy/internals/index.js +0 -4
- package/legacy/internals/models/MuiCancellableEvent.js +0 -1
- package/legacy/internals/models/events.js +0 -1
- package/legacy/internals/models/helpers.js +0 -1
- package/legacy/internals/models/index.js +0 -3
- package/legacy/internals/models/plugin.js +0 -1
- package/legacy/internals/models/treeView.js +0 -1
- package/legacy/internals/plugins/defaultPlugins.js +0 -10
- package/legacy/internals/plugins/index.js +0 -1
- package/legacy/internals/plugins/useTreeViewExpansion/index.js +0 -1
- package/legacy/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +0 -81
- package/legacy/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.js +0 -1
- package/legacy/internals/plugins/useTreeViewFocus/index.js +0 -1
- package/legacy/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +0 -103
- package/legacy/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.js +0 -1
- package/legacy/internals/plugins/useTreeViewIcons/index.js +0 -1
- package/legacy/internals/plugins/useTreeViewIcons/useTreeViewIcons.js +0 -21
- package/legacy/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.js +0 -1
- package/legacy/internals/plugins/useTreeViewId/index.js +0 -1
- package/legacy/internals/plugins/useTreeViewId/useTreeViewId.js +0 -24
- package/legacy/internals/plugins/useTreeViewId/useTreeViewId.types.js +0 -1
- package/legacy/internals/plugins/useTreeViewJSXNodes/index.js +0 -1
- package/legacy/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.js +0 -130
- package/legacy/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.types.js +0 -1
- package/legacy/internals/plugins/useTreeViewKeyboardNavigation/index.js +0 -1
- package/legacy/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +0 -284
- package/legacy/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.js +0 -1
- package/legacy/internals/plugins/useTreeViewNodes/index.js +0 -1
- package/legacy/internals/plugins/useTreeViewNodes/useTreeViewNodes.js +0 -161
- package/legacy/internals/plugins/useTreeViewNodes/useTreeViewNodes.types.js +0 -1
- package/legacy/internals/plugins/useTreeViewSelection/index.js +0 -1
- package/legacy/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +0 -219
- package/legacy/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.js +0 -1
- package/legacy/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +0 -55
- package/legacy/internals/useTreeView/index.js +0 -1
- package/legacy/internals/useTreeView/useTreeView.js +0 -111
- package/legacy/internals/useTreeView/useTreeView.types.js +0 -1
- package/legacy/internals/useTreeView/useTreeView.utils.js +0 -46
- package/legacy/internals/useTreeView/useTreeViewModels.js +0 -75
- package/legacy/internals/utils/EventManager.js +0 -91
- package/legacy/internals/utils/cleanupTracking/CleanupTracking.js +0 -1
- package/legacy/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js +0 -29
- package/legacy/internals/utils/cleanupTracking/TimerBasedCleanupTracking.js +0 -52
- package/legacy/internals/utils/extractPluginParamsFromProps.js +0 -36
- package/legacy/internals/utils/publishTreeViewEvent.js +0 -3
- package/legacy/internals/utils/warning.js +0 -15
- package/legacy/models/index.js +0 -1
- package/legacy/models/items.js +0 -1
- package/legacy/themeAugmentation/index.js +0 -3
|
@@ -1,360 +0,0 @@
|
|
|
1
|
-
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
2
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
-
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
4
|
-
var _excluded = ["children", "className", "slots", "slotProps", "ContentComponent", "ContentProps", "nodeId", "id", "label", "onClick", "onMouseDown", "TransitionComponent", "TransitionProps"],
|
|
5
|
-
_excluded2 = ["ownerState"],
|
|
6
|
-
_excluded3 = ["ownerState"],
|
|
7
|
-
_excluded4 = ["ownerState"];
|
|
8
|
-
import * as React from 'react';
|
|
9
|
-
import PropTypes from 'prop-types';
|
|
10
|
-
import clsx from 'clsx';
|
|
11
|
-
import Collapse from '@mui/material/Collapse';
|
|
12
|
-
import { resolveComponentProps, useSlotProps } from '@mui/base/utils';
|
|
13
|
-
import { alpha, styled, useThemeProps } from '@mui/material/styles';
|
|
14
|
-
import unsupportedProp from '@mui/utils/unsupportedProp';
|
|
15
|
-
import elementTypeAcceptingRef from '@mui/utils/elementTypeAcceptingRef';
|
|
16
|
-
import { unstable_composeClasses as composeClasses } from '@mui/base';
|
|
17
|
-
import { TreeItemContent } from './TreeItemContent';
|
|
18
|
-
import { treeItemClasses, getTreeItemUtilityClass } from './treeItemClasses';
|
|
19
|
-
import { useTreeViewContext } from '../internals/TreeViewProvider/useTreeViewContext';
|
|
20
|
-
import { TreeViewCollapseIcon, TreeViewExpandIcon } from '../icons';
|
|
21
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
22
|
-
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
23
|
-
var useUtilityClasses = function useUtilityClasses(ownerState) {
|
|
24
|
-
var classes = ownerState.classes;
|
|
25
|
-
var slots = {
|
|
26
|
-
root: ['root'],
|
|
27
|
-
content: ['content'],
|
|
28
|
-
expanded: ['expanded'],
|
|
29
|
-
selected: ['selected'],
|
|
30
|
-
focused: ['focused'],
|
|
31
|
-
disabled: ['disabled'],
|
|
32
|
-
iconContainer: ['iconContainer'],
|
|
33
|
-
label: ['label'],
|
|
34
|
-
group: ['group']
|
|
35
|
-
};
|
|
36
|
-
return composeClasses(slots, getTreeItemUtilityClass, classes);
|
|
37
|
-
};
|
|
38
|
-
var TreeItemRoot = styled('li', {
|
|
39
|
-
name: 'MuiTreeItem',
|
|
40
|
-
slot: 'Root',
|
|
41
|
-
overridesResolver: function overridesResolver(props, styles) {
|
|
42
|
-
return styles.root;
|
|
43
|
-
}
|
|
44
|
-
})({
|
|
45
|
-
listStyle: 'none',
|
|
46
|
-
margin: 0,
|
|
47
|
-
padding: 0,
|
|
48
|
-
outline: 0
|
|
49
|
-
});
|
|
50
|
-
var StyledTreeItemContent = styled(TreeItemContent, {
|
|
51
|
-
name: 'MuiTreeItem',
|
|
52
|
-
slot: 'Content',
|
|
53
|
-
overridesResolver: function overridesResolver(props, styles) {
|
|
54
|
-
return [styles.content, styles.iconContainer && _defineProperty({}, "& .".concat(treeItemClasses.iconContainer), styles.iconContainer), styles.label && _defineProperty({}, "& .".concat(treeItemClasses.label), styles.label)];
|
|
55
|
-
}
|
|
56
|
-
})(function (_ref3) {
|
|
57
|
-
var theme = _ref3.theme;
|
|
58
|
-
return _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({
|
|
59
|
-
padding: theme.spacing(0.5, 1),
|
|
60
|
-
borderRadius: theme.shape.borderRadius,
|
|
61
|
-
width: '100%',
|
|
62
|
-
boxSizing: 'border-box',
|
|
63
|
-
// prevent width + padding to overflow
|
|
64
|
-
display: 'flex',
|
|
65
|
-
alignItems: 'center',
|
|
66
|
-
gap: theme.spacing(1),
|
|
67
|
-
cursor: 'pointer',
|
|
68
|
-
WebkitTapHighlightColor: 'transparent',
|
|
69
|
-
'&:hover': {
|
|
70
|
-
backgroundColor: (theme.vars || theme).palette.action.hover,
|
|
71
|
-
// Reset on touch devices, it doesn't add specificity
|
|
72
|
-
'@media (hover: none)': {
|
|
73
|
-
backgroundColor: 'transparent'
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}, "&.".concat(treeItemClasses.disabled), {
|
|
77
|
-
opacity: (theme.vars || theme).palette.action.disabledOpacity,
|
|
78
|
-
backgroundColor: 'transparent'
|
|
79
|
-
}), "&.".concat(treeItemClasses.focused), {
|
|
80
|
-
backgroundColor: (theme.vars || theme).palette.action.focus
|
|
81
|
-
}), "&.".concat(treeItemClasses.selected), _defineProperty({
|
|
82
|
-
backgroundColor: theme.vars ? "rgba(".concat(theme.vars.palette.primary.mainChannel, " / ").concat(theme.vars.palette.action.selectedOpacity, ")") : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity),
|
|
83
|
-
'&:hover': {
|
|
84
|
-
backgroundColor: theme.vars ? "rgba(".concat(theme.vars.palette.primary.mainChannel, " / calc(").concat(theme.vars.palette.action.selectedOpacity, " + ").concat(theme.vars.palette.action.hoverOpacity, "))") : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity),
|
|
85
|
-
// Reset on touch devices, it doesn't add specificity
|
|
86
|
-
'@media (hover: none)': {
|
|
87
|
-
backgroundColor: theme.vars ? "rgba(".concat(theme.vars.palette.primary.mainChannel, " / ").concat(theme.vars.palette.action.selectedOpacity, ")") : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity)
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
}, "&.".concat(treeItemClasses.focused), {
|
|
91
|
-
backgroundColor: theme.vars ? "rgba(".concat(theme.vars.palette.primary.mainChannel, " / calc(").concat(theme.vars.palette.action.selectedOpacity, " + ").concat(theme.vars.palette.action.focusOpacity, "))") : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity)
|
|
92
|
-
})), "& .".concat(treeItemClasses.iconContainer), {
|
|
93
|
-
width: 16,
|
|
94
|
-
display: 'flex',
|
|
95
|
-
flexShrink: 0,
|
|
96
|
-
justifyContent: 'center',
|
|
97
|
-
'& svg': {
|
|
98
|
-
fontSize: 18
|
|
99
|
-
}
|
|
100
|
-
}), "& .".concat(treeItemClasses.label), _extends({
|
|
101
|
-
width: '100%',
|
|
102
|
-
boxSizing: 'border-box',
|
|
103
|
-
// prevent width + padding to overflow
|
|
104
|
-
// fixes overflow - see https://github.com/mui/material-ui/issues/27372
|
|
105
|
-
minWidth: 0,
|
|
106
|
-
position: 'relative'
|
|
107
|
-
}, theme.typography.body1));
|
|
108
|
-
});
|
|
109
|
-
var TreeItemGroup = styled(Collapse, {
|
|
110
|
-
name: 'MuiTreeItem',
|
|
111
|
-
slot: 'Group',
|
|
112
|
-
overridesResolver: function overridesResolver(props, styles) {
|
|
113
|
-
return styles.group;
|
|
114
|
-
}
|
|
115
|
-
})({
|
|
116
|
-
margin: 0,
|
|
117
|
-
padding: 0,
|
|
118
|
-
paddingLeft: 12
|
|
119
|
-
});
|
|
120
|
-
|
|
121
|
-
/**
|
|
122
|
-
*
|
|
123
|
-
* Demos:
|
|
124
|
-
*
|
|
125
|
-
* - [Tree View](https://mui.com/x/react-tree-view/)
|
|
126
|
-
*
|
|
127
|
-
* API:
|
|
128
|
-
*
|
|
129
|
-
* - [TreeItem API](https://mui.com/x/api/tree-view/tree-item/)
|
|
130
|
-
*/
|
|
131
|
-
export var TreeItem = /*#__PURE__*/React.forwardRef(function TreeItem(inProps, inRef) {
|
|
132
|
-
var _ref5, _inSlots$expandIcon, _ref6, _inSlots$collapseIcon, _inSlots$endIcon;
|
|
133
|
-
var _useTreeViewContext = useTreeViewContext(),
|
|
134
|
-
contextIcons = _useTreeViewContext.icons,
|
|
135
|
-
runItemPlugins = _useTreeViewContext.runItemPlugins,
|
|
136
|
-
multiSelect = _useTreeViewContext.selection.multiSelect,
|
|
137
|
-
disabledItemsFocusable = _useTreeViewContext.disabledItemsFocusable,
|
|
138
|
-
instance = _useTreeViewContext.instance;
|
|
139
|
-
var inPropsWithTheme = useThemeProps({
|
|
140
|
-
props: inProps,
|
|
141
|
-
name: 'MuiTreeItem'
|
|
142
|
-
});
|
|
143
|
-
var _runItemPlugins = runItemPlugins({
|
|
144
|
-
props: inPropsWithTheme,
|
|
145
|
-
ref: inRef
|
|
146
|
-
}),
|
|
147
|
-
props = _runItemPlugins.props,
|
|
148
|
-
ref = _runItemPlugins.ref,
|
|
149
|
-
wrapItem = _runItemPlugins.wrapItem;
|
|
150
|
-
var children = props.children,
|
|
151
|
-
className = props.className,
|
|
152
|
-
inSlots = props.slots,
|
|
153
|
-
inSlotProps = props.slotProps,
|
|
154
|
-
_props$ContentCompone = props.ContentComponent,
|
|
155
|
-
ContentComponent = _props$ContentCompone === void 0 ? TreeItemContent : _props$ContentCompone,
|
|
156
|
-
ContentProps = props.ContentProps,
|
|
157
|
-
nodeId = props.nodeId,
|
|
158
|
-
id = props.id,
|
|
159
|
-
label = props.label,
|
|
160
|
-
onClick = props.onClick,
|
|
161
|
-
onMouseDown = props.onMouseDown,
|
|
162
|
-
_props$TransitionComp = props.TransitionComponent,
|
|
163
|
-
TransitionComponent = _props$TransitionComp === void 0 ? Collapse : _props$TransitionComp,
|
|
164
|
-
TransitionProps = props.TransitionProps,
|
|
165
|
-
other = _objectWithoutProperties(props, _excluded);
|
|
166
|
-
var slots = {
|
|
167
|
-
expandIcon: (_ref5 = (_inSlots$expandIcon = inSlots == null ? void 0 : inSlots.expandIcon) != null ? _inSlots$expandIcon : contextIcons.slots.expandIcon) != null ? _ref5 : TreeViewExpandIcon,
|
|
168
|
-
collapseIcon: (_ref6 = (_inSlots$collapseIcon = inSlots == null ? void 0 : inSlots.collapseIcon) != null ? _inSlots$collapseIcon : contextIcons.slots.collapseIcon) != null ? _ref6 : TreeViewCollapseIcon,
|
|
169
|
-
endIcon: (_inSlots$endIcon = inSlots == null ? void 0 : inSlots.endIcon) != null ? _inSlots$endIcon : contextIcons.slots.endIcon,
|
|
170
|
-
icon: inSlots == null ? void 0 : inSlots.icon
|
|
171
|
-
};
|
|
172
|
-
var isExpandable = function isExpandable(reactChildren) {
|
|
173
|
-
if (Array.isArray(reactChildren)) {
|
|
174
|
-
return reactChildren.length > 0 && reactChildren.some(isExpandable);
|
|
175
|
-
}
|
|
176
|
-
return Boolean(reactChildren);
|
|
177
|
-
};
|
|
178
|
-
var expandable = isExpandable(children);
|
|
179
|
-
var expanded = instance.isNodeExpanded(nodeId);
|
|
180
|
-
var focused = instance.isNodeFocused(nodeId);
|
|
181
|
-
var selected = instance.isNodeSelected(nodeId);
|
|
182
|
-
var disabled = instance.isNodeDisabled(nodeId);
|
|
183
|
-
var ownerState = _extends({}, props, {
|
|
184
|
-
expanded: expanded,
|
|
185
|
-
focused: focused,
|
|
186
|
-
selected: selected,
|
|
187
|
-
disabled: disabled
|
|
188
|
-
});
|
|
189
|
-
var classes = useUtilityClasses(ownerState);
|
|
190
|
-
var ExpansionIcon = expanded ? slots.collapseIcon : slots.expandIcon;
|
|
191
|
-
var _useSlotProps = useSlotProps({
|
|
192
|
-
elementType: ExpansionIcon,
|
|
193
|
-
ownerState: {},
|
|
194
|
-
externalSlotProps: function externalSlotProps(tempOwnerState) {
|
|
195
|
-
if (expanded) {
|
|
196
|
-
return _extends({}, resolveComponentProps(contextIcons.slotProps.collapseIcon, tempOwnerState), resolveComponentProps(inSlotProps == null ? void 0 : inSlotProps.collapseIcon, tempOwnerState));
|
|
197
|
-
}
|
|
198
|
-
return _extends({}, resolveComponentProps(contextIcons.slotProps.expandIcon, tempOwnerState), resolveComponentProps(inSlotProps == null ? void 0 : inSlotProps.expandIcon, tempOwnerState));
|
|
199
|
-
}
|
|
200
|
-
}),
|
|
201
|
-
expansionIconOwnerState = _useSlotProps.ownerState,
|
|
202
|
-
expansionIconProps = _objectWithoutProperties(_useSlotProps, _excluded2);
|
|
203
|
-
var expansionIcon = expandable && !!ExpansionIcon ? /*#__PURE__*/_jsx(ExpansionIcon, _extends({}, expansionIconProps)) : null;
|
|
204
|
-
var DisplayIcon = expandable ? undefined : slots.endIcon;
|
|
205
|
-
var _useSlotProps2 = useSlotProps({
|
|
206
|
-
elementType: DisplayIcon,
|
|
207
|
-
ownerState: {},
|
|
208
|
-
externalSlotProps: function externalSlotProps(tempOwnerState) {
|
|
209
|
-
if (expandable) {
|
|
210
|
-
return {};
|
|
211
|
-
}
|
|
212
|
-
return _extends({}, resolveComponentProps(contextIcons.slotProps.endIcon, tempOwnerState), resolveComponentProps(inSlotProps == null ? void 0 : inSlotProps.endIcon, tempOwnerState));
|
|
213
|
-
}
|
|
214
|
-
}),
|
|
215
|
-
displayIconOwnerState = _useSlotProps2.ownerState,
|
|
216
|
-
displayIconProps = _objectWithoutProperties(_useSlotProps2, _excluded3);
|
|
217
|
-
var displayIcon = DisplayIcon ? /*#__PURE__*/_jsx(DisplayIcon, _extends({}, displayIconProps)) : null;
|
|
218
|
-
var Icon = slots.icon;
|
|
219
|
-
var _useSlotProps3 = useSlotProps({
|
|
220
|
-
elementType: Icon,
|
|
221
|
-
ownerState: {},
|
|
222
|
-
externalSlotProps: inSlotProps == null ? void 0 : inSlotProps.icon
|
|
223
|
-
}),
|
|
224
|
-
iconOwnerState = _useSlotProps3.ownerState,
|
|
225
|
-
iconProps = _objectWithoutProperties(_useSlotProps3, _excluded4);
|
|
226
|
-
var icon = Icon ? /*#__PURE__*/_jsx(Icon, _extends({}, iconProps)) : null;
|
|
227
|
-
var ariaSelected;
|
|
228
|
-
if (multiSelect) {
|
|
229
|
-
ariaSelected = selected;
|
|
230
|
-
} else if (selected) {
|
|
231
|
-
/* single-selection trees unset aria-selected on un-selected items.
|
|
232
|
-
*
|
|
233
|
-
* If the tree does not support multiple selection, aria-selected
|
|
234
|
-
* is set to true for the selected node and it is not present on any other node in the tree.
|
|
235
|
-
* Source: https://www.w3.org/WAI/ARIA/apg/patterns/treeview/
|
|
236
|
-
*/
|
|
237
|
-
ariaSelected = true;
|
|
238
|
-
}
|
|
239
|
-
function handleFocus(event) {
|
|
240
|
-
// DOM focus stays on the tree which manages focus with aria-activedescendant
|
|
241
|
-
if (event.target === event.currentTarget) {
|
|
242
|
-
instance.focusRoot();
|
|
243
|
-
}
|
|
244
|
-
var canBeFocused = !disabled || disabledItemsFocusable;
|
|
245
|
-
if (!focused && canBeFocused && event.currentTarget === event.target) {
|
|
246
|
-
instance.focusNode(event, nodeId);
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
var idAttribute = instance.getTreeItemId(nodeId, id);
|
|
250
|
-
var item = /*#__PURE__*/_jsxs(TreeItemRoot, _extends({
|
|
251
|
-
className: clsx(classes.root, className),
|
|
252
|
-
role: "treeitem",
|
|
253
|
-
"aria-expanded": expandable ? expanded : undefined,
|
|
254
|
-
"aria-selected": ariaSelected,
|
|
255
|
-
"aria-disabled": disabled || undefined,
|
|
256
|
-
id: idAttribute,
|
|
257
|
-
tabIndex: -1
|
|
258
|
-
}, other, {
|
|
259
|
-
ownerState: ownerState,
|
|
260
|
-
onFocus: handleFocus,
|
|
261
|
-
ref: ref,
|
|
262
|
-
children: [/*#__PURE__*/_jsx(StyledTreeItemContent, _extends({
|
|
263
|
-
as: ContentComponent,
|
|
264
|
-
classes: {
|
|
265
|
-
root: classes.content,
|
|
266
|
-
expanded: classes.expanded,
|
|
267
|
-
selected: classes.selected,
|
|
268
|
-
focused: classes.focused,
|
|
269
|
-
disabled: classes.disabled,
|
|
270
|
-
iconContainer: classes.iconContainer,
|
|
271
|
-
label: classes.label
|
|
272
|
-
},
|
|
273
|
-
label: label,
|
|
274
|
-
nodeId: nodeId,
|
|
275
|
-
onClick: onClick,
|
|
276
|
-
onMouseDown: onMouseDown,
|
|
277
|
-
icon: icon,
|
|
278
|
-
expansionIcon: expansionIcon,
|
|
279
|
-
displayIcon: displayIcon,
|
|
280
|
-
ownerState: ownerState
|
|
281
|
-
}, ContentProps)), children && /*#__PURE__*/_jsx(TreeItemGroup, _extends({
|
|
282
|
-
as: TransitionComponent,
|
|
283
|
-
unmountOnExit: true,
|
|
284
|
-
className: classes.group,
|
|
285
|
-
in: expanded,
|
|
286
|
-
component: "ul",
|
|
287
|
-
role: "group"
|
|
288
|
-
}, TransitionProps, {
|
|
289
|
-
children: children
|
|
290
|
-
}))]
|
|
291
|
-
}));
|
|
292
|
-
return wrapItem(item);
|
|
293
|
-
});
|
|
294
|
-
TreeItem.propTypes = {
|
|
295
|
-
// ----------------------------- Warning --------------------------------
|
|
296
|
-
// | These PropTypes are generated from the TypeScript type definitions |
|
|
297
|
-
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
298
|
-
// ----------------------------------------------------------------------
|
|
299
|
-
/**
|
|
300
|
-
* The content of the component.
|
|
301
|
-
*/
|
|
302
|
-
children: PropTypes.node,
|
|
303
|
-
/**
|
|
304
|
-
* Override or extend the styles applied to the component.
|
|
305
|
-
*/
|
|
306
|
-
classes: PropTypes.object,
|
|
307
|
-
className: PropTypes.string,
|
|
308
|
-
/**
|
|
309
|
-
* The component used for the content node.
|
|
310
|
-
* @default TreeItemContent
|
|
311
|
-
*/
|
|
312
|
-
ContentComponent: elementTypeAcceptingRef,
|
|
313
|
-
/**
|
|
314
|
-
* Props applied to ContentComponent.
|
|
315
|
-
*/
|
|
316
|
-
ContentProps: PropTypes.object,
|
|
317
|
-
/**
|
|
318
|
-
* If `true`, the node is disabled.
|
|
319
|
-
* @default false
|
|
320
|
-
*/
|
|
321
|
-
disabled: PropTypes.bool,
|
|
322
|
-
/**
|
|
323
|
-
* The tree node label.
|
|
324
|
-
*/
|
|
325
|
-
label: PropTypes.node,
|
|
326
|
-
/**
|
|
327
|
-
* The id of the node.
|
|
328
|
-
*/
|
|
329
|
-
nodeId: PropTypes.string.isRequired,
|
|
330
|
-
/**
|
|
331
|
-
* This prop isn't supported.
|
|
332
|
-
* Use the `onNodeFocus` callback on the tree if you need to monitor a node's focus.
|
|
333
|
-
*/
|
|
334
|
-
onFocus: unsupportedProp,
|
|
335
|
-
/**
|
|
336
|
-
* The props used for each component slot.
|
|
337
|
-
* @default {}
|
|
338
|
-
*/
|
|
339
|
-
slotProps: PropTypes.object,
|
|
340
|
-
/**
|
|
341
|
-
* Overridable component slots.
|
|
342
|
-
* @default {}
|
|
343
|
-
*/
|
|
344
|
-
slots: PropTypes.object,
|
|
345
|
-
/**
|
|
346
|
-
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
347
|
-
*/
|
|
348
|
-
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
|
|
349
|
-
/**
|
|
350
|
-
* The component used for the transition.
|
|
351
|
-
* [Follow this guide](/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.
|
|
352
|
-
* @default Collapse
|
|
353
|
-
*/
|
|
354
|
-
TransitionComponent: PropTypes.elementType,
|
|
355
|
-
/**
|
|
356
|
-
* Props applied to the transition element.
|
|
357
|
-
* By default, the element is based on this [`Transition`](http://reactcommunity.org/react-transition-group/transition/) component.
|
|
358
|
-
*/
|
|
359
|
-
TransitionProps: PropTypes.object
|
|
360
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
3
|
-
var _excluded = ["classes", "className", "displayIcon", "expansionIcon", "icon", "label", "nodeId", "onClick", "onMouseDown"];
|
|
4
|
-
import * as React from 'react';
|
|
5
|
-
import PropTypes from 'prop-types';
|
|
6
|
-
import clsx from 'clsx';
|
|
7
|
-
import { useTreeItemState } from './useTreeItemState';
|
|
8
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
|
-
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
10
|
-
/**
|
|
11
|
-
* @ignore - internal component.
|
|
12
|
-
*/
|
|
13
|
-
var TreeItemContent = /*#__PURE__*/React.forwardRef(function TreeItemContent(props, ref) {
|
|
14
|
-
var classes = props.classes,
|
|
15
|
-
className = props.className,
|
|
16
|
-
displayIcon = props.displayIcon,
|
|
17
|
-
expansionIcon = props.expansionIcon,
|
|
18
|
-
iconProp = props.icon,
|
|
19
|
-
label = props.label,
|
|
20
|
-
nodeId = props.nodeId,
|
|
21
|
-
onClick = props.onClick,
|
|
22
|
-
onMouseDown = props.onMouseDown,
|
|
23
|
-
other = _objectWithoutProperties(props, _excluded);
|
|
24
|
-
var _useTreeItemState = useTreeItemState(nodeId),
|
|
25
|
-
disabled = _useTreeItemState.disabled,
|
|
26
|
-
expanded = _useTreeItemState.expanded,
|
|
27
|
-
selected = _useTreeItemState.selected,
|
|
28
|
-
focused = _useTreeItemState.focused,
|
|
29
|
-
handleExpansion = _useTreeItemState.handleExpansion,
|
|
30
|
-
handleSelection = _useTreeItemState.handleSelection,
|
|
31
|
-
preventSelection = _useTreeItemState.preventSelection;
|
|
32
|
-
var icon = iconProp || expansionIcon || displayIcon;
|
|
33
|
-
var handleMouseDown = function handleMouseDown(event) {
|
|
34
|
-
preventSelection(event);
|
|
35
|
-
if (onMouseDown) {
|
|
36
|
-
onMouseDown(event);
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
var handleClick = function handleClick(event) {
|
|
40
|
-
handleExpansion(event);
|
|
41
|
-
handleSelection(event);
|
|
42
|
-
if (onClick) {
|
|
43
|
-
onClick(event);
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
return (
|
|
47
|
-
/*#__PURE__*/
|
|
48
|
-
/* eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions -- Key event is handled by the TreeView */
|
|
49
|
-
_jsxs("div", _extends({}, other, {
|
|
50
|
-
className: clsx(className, classes.root, expanded && classes.expanded, selected && classes.selected, focused && classes.focused, disabled && classes.disabled),
|
|
51
|
-
onClick: handleClick,
|
|
52
|
-
onMouseDown: handleMouseDown,
|
|
53
|
-
ref: ref,
|
|
54
|
-
children: [/*#__PURE__*/_jsx("div", {
|
|
55
|
-
className: classes.iconContainer,
|
|
56
|
-
children: icon
|
|
57
|
-
}), /*#__PURE__*/_jsx("div", {
|
|
58
|
-
className: classes.label,
|
|
59
|
-
children: label
|
|
60
|
-
})]
|
|
61
|
-
}))
|
|
62
|
-
);
|
|
63
|
-
});
|
|
64
|
-
process.env.NODE_ENV !== "production" ? TreeItemContent.propTypes = {
|
|
65
|
-
// ----------------------------- Warning --------------------------------
|
|
66
|
-
// | These PropTypes are generated from the TypeScript type definitions |
|
|
67
|
-
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
68
|
-
// ----------------------------------------------------------------------
|
|
69
|
-
/**
|
|
70
|
-
* Override or extend the styles applied to the component.
|
|
71
|
-
*/
|
|
72
|
-
classes: PropTypes.object.isRequired,
|
|
73
|
-
className: PropTypes.string,
|
|
74
|
-
/**
|
|
75
|
-
* The icon to display next to the tree node's label. Either a parent or end icon.
|
|
76
|
-
*/
|
|
77
|
-
displayIcon: PropTypes.node,
|
|
78
|
-
/**
|
|
79
|
-
* The icon to display next to the tree node's label. Either an expansion or collapse icon.
|
|
80
|
-
*/
|
|
81
|
-
expansionIcon: PropTypes.node,
|
|
82
|
-
/**
|
|
83
|
-
* The icon to display next to the tree node's label.
|
|
84
|
-
*/
|
|
85
|
-
icon: PropTypes.node,
|
|
86
|
-
/**
|
|
87
|
-
* The tree node label.
|
|
88
|
-
*/
|
|
89
|
-
label: PropTypes.node,
|
|
90
|
-
/**
|
|
91
|
-
* The id of the node.
|
|
92
|
-
*/
|
|
93
|
-
nodeId: PropTypes.string.isRequired
|
|
94
|
-
} : void 0;
|
|
95
|
-
export { TreeItemContent };
|
package/legacy/TreeItem/index.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import generateUtilityClass from '@mui/utils/generateUtilityClass';
|
|
2
|
-
import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
|
|
3
|
-
export function getTreeItemUtilityClass(slot) {
|
|
4
|
-
return generateUtilityClass('MuiTreeItem', slot);
|
|
5
|
-
}
|
|
6
|
-
export var treeItemClasses = generateUtilityClasses('MuiTreeItem', ['root', 'group', 'content', 'expanded', 'selected', 'focused', 'disabled', 'iconContainer', 'label']);
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { useTreeViewContext } from '../internals/TreeViewProvider/useTreeViewContext';
|
|
2
|
-
export function useTreeItemState(nodeId) {
|
|
3
|
-
var _useTreeViewContext = useTreeViewContext(),
|
|
4
|
-
instance = _useTreeViewContext.instance,
|
|
5
|
-
multiSelect = _useTreeViewContext.selection.multiSelect;
|
|
6
|
-
var expandable = instance.isNodeExpandable(nodeId);
|
|
7
|
-
var expanded = instance.isNodeExpanded(nodeId);
|
|
8
|
-
var focused = instance.isNodeFocused(nodeId);
|
|
9
|
-
var selected = instance.isNodeSelected(nodeId);
|
|
10
|
-
var disabled = instance.isNodeDisabled(nodeId);
|
|
11
|
-
var handleExpansion = function handleExpansion(event) {
|
|
12
|
-
if (!disabled) {
|
|
13
|
-
if (!focused) {
|
|
14
|
-
instance.focusNode(event, nodeId);
|
|
15
|
-
}
|
|
16
|
-
var multiple = multiSelect && (event.shiftKey || event.ctrlKey || event.metaKey);
|
|
17
|
-
|
|
18
|
-
// If already expanded and trying to toggle selection don't close
|
|
19
|
-
if (expandable && !(multiple && instance.isNodeExpanded(nodeId))) {
|
|
20
|
-
instance.toggleNodeExpansion(event, nodeId);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
};
|
|
24
|
-
var handleSelection = function handleSelection(event) {
|
|
25
|
-
if (!disabled) {
|
|
26
|
-
if (!focused) {
|
|
27
|
-
instance.focusNode(event, nodeId);
|
|
28
|
-
}
|
|
29
|
-
var multiple = multiSelect && (event.shiftKey || event.ctrlKey || event.metaKey);
|
|
30
|
-
if (multiple) {
|
|
31
|
-
if (event.shiftKey) {
|
|
32
|
-
instance.selectRange(event, {
|
|
33
|
-
end: nodeId
|
|
34
|
-
});
|
|
35
|
-
} else {
|
|
36
|
-
instance.selectNode(event, nodeId, true);
|
|
37
|
-
}
|
|
38
|
-
} else {
|
|
39
|
-
instance.selectNode(event, nodeId);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
var preventSelection = function preventSelection(event) {
|
|
44
|
-
if (event.shiftKey || event.ctrlKey || event.metaKey || disabled) {
|
|
45
|
-
// Prevent text selection
|
|
46
|
-
event.preventDefault();
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
return {
|
|
50
|
-
disabled: disabled,
|
|
51
|
-
expanded: expanded,
|
|
52
|
-
selected: selected,
|
|
53
|
-
focused: focused,
|
|
54
|
-
handleExpansion: handleExpansion,
|
|
55
|
-
handleSelection: handleSelection,
|
|
56
|
-
preventSelection: preventSelection
|
|
57
|
-
};
|
|
58
|
-
}
|