@mui/x-tree-view 7.0.0-beta.5 → 7.0.0-beta.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 +252 -50
- package/RichTreeView/RichTreeView.js +23 -22
- package/RichTreeView/RichTreeView.types.d.ts +2 -1
- package/SimpleTreeView/SimpleTreeView.js +23 -22
- package/TreeItem/TreeItem.js +79 -79
- package/TreeItem/TreeItem.types.d.ts +17 -19
- package/TreeItem/treeItemClasses.d.ts +1 -1
- package/TreeItem/treeItemClasses.js +1 -1
- package/TreeItem/useTreeItemState.js +2 -2
- package/TreeItem2/TreeItem2.d.ts +18 -0
- package/TreeItem2/TreeItem2.js +301 -0
- package/TreeItem2/TreeItem2.types.d.ts +64 -0
- package/TreeItem2/TreeItem2.types.js +1 -0
- package/TreeItem2/index.d.ts +2 -0
- package/TreeItem2/index.js +1 -0
- package/TreeItem2/package.json +6 -0
- package/TreeItem2Icon/TreeItem2Icon.d.ts +7 -0
- package/TreeItem2Icon/TreeItem2Icon.js +68 -0
- package/TreeItem2Icon/TreeItem2Icon.types.d.ts +40 -0
- package/TreeItem2Icon/TreeItem2Icon.types.js +1 -0
- package/TreeItem2Icon/index.d.ts +2 -0
- package/TreeItem2Icon/index.js +1 -0
- package/TreeItem2Icon/package.json +6 -0
- package/TreeItem2Provider/TreeItem2Provider.d.ts +7 -0
- package/TreeItem2Provider/TreeItem2Provider.js +24 -0
- package/TreeItem2Provider/TreeItem2Provider.types.d.ts +6 -0
- package/TreeItem2Provider/TreeItem2Provider.types.js +1 -0
- package/TreeItem2Provider/index.d.ts +2 -0
- package/TreeItem2Provider/index.js +1 -0
- package/TreeItem2Provider/package.json +6 -0
- package/TreeView/TreeView.js +23 -22
- package/hooks/index.d.ts +1 -0
- package/hooks/index.js +2 -1
- package/hooks/useTreeItem2Utils/index.d.ts +1 -0
- package/hooks/useTreeItem2Utils/index.js +1 -0
- package/hooks/useTreeItem2Utils/useTreeItem2Utils.d.ts +15 -0
- package/hooks/useTreeItem2Utils/useTreeItem2Utils.js +61 -0
- package/hooks/useTreeViewApiRef.d.ts +2 -2
- package/index.d.ts +5 -1
- package/index.js +9 -2
- package/internals/TreeViewProvider/TreeViewContext.d.ts +3 -1
- package/internals/TreeViewProvider/TreeViewProvider.types.d.ts +4 -2
- package/internals/hooks/useLazyRef.d.ts +1 -2
- package/internals/hooks/useLazyRef.js +1 -11
- package/internals/hooks/useOnMount.d.ts +1 -2
- package/internals/hooks/useOnMount.js +1 -7
- package/internals/hooks/useTimeout.d.ts +1 -11
- package/internals/hooks/useTimeout.js +1 -36
- package/internals/models/helpers.d.ts +1 -0
- package/internals/models/plugin.d.ts +19 -16
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +25 -25
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +11 -11
- package/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +12 -12
- package/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +5 -6
- package/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.js +37 -23
- package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +11 -9
- package/internals/plugins/useTreeViewNodes/useTreeViewNodes.js +31 -18
- package/internals/plugins/useTreeViewNodes/useTreeViewNodes.types.d.ts +16 -6
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +34 -34
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +11 -11
- package/internals/useTreeView/useTreeView.js +27 -25
- package/modern/RichTreeView/RichTreeView.js +23 -22
- package/modern/SimpleTreeView/SimpleTreeView.js +23 -22
- package/modern/TreeItem/TreeItem.js +78 -78
- package/modern/TreeItem/treeItemClasses.js +1 -1
- package/modern/TreeItem/useTreeItemState.js +2 -2
- package/modern/TreeItem2/TreeItem2.js +300 -0
- package/modern/TreeItem2/TreeItem2.types.js +1 -0
- package/modern/TreeItem2/index.js +1 -0
- package/modern/TreeItem2Icon/TreeItem2Icon.js +67 -0
- package/modern/TreeItem2Icon/TreeItem2Icon.types.js +1 -0
- package/modern/TreeItem2Icon/index.js +1 -0
- package/modern/TreeItem2Provider/TreeItem2Provider.js +24 -0
- package/modern/TreeItem2Provider/TreeItem2Provider.types.js +1 -0
- package/modern/TreeItem2Provider/index.js +1 -0
- package/modern/TreeView/TreeView.js +23 -22
- package/modern/hooks/index.js +2 -1
- package/modern/hooks/useTreeItem2Utils/index.js +1 -0
- package/modern/hooks/useTreeItem2Utils/useTreeItem2Utils.js +61 -0
- package/modern/index.js +9 -2
- package/modern/internals/hooks/useLazyRef.js +1 -11
- package/modern/internals/hooks/useOnMount.js +1 -7
- package/modern/internals/hooks/useTimeout.js +1 -36
- package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +24 -24
- package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +12 -12
- package/modern/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.js +36 -22
- package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +11 -9
- package/modern/internals/plugins/useTreeViewNodes/useTreeViewNodes.js +31 -18
- package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +34 -34
- package/modern/internals/useTreeView/useTreeView.js +27 -25
- package/modern/useTreeItem2/index.js +1 -0
- package/modern/useTreeItem2/useTreeItem2.js +135 -0
- package/modern/useTreeItem2/useTreeItem2.types.js +1 -0
- package/node/RichTreeView/RichTreeView.js +23 -22
- package/node/SimpleTreeView/SimpleTreeView.js +23 -22
- package/node/TreeItem/TreeItem.js +78 -78
- package/node/TreeItem/treeItemClasses.js +1 -1
- package/node/TreeItem/useTreeItemState.js +2 -2
- package/node/TreeItem2/TreeItem2.js +308 -0
- package/node/TreeItem2/TreeItem2.types.js +5 -0
- package/node/TreeItem2/index.js +42 -0
- package/node/TreeItem2Icon/TreeItem2Icon.js +75 -0
- package/node/TreeItem2Icon/TreeItem2Icon.types.js +5 -0
- package/node/TreeItem2Icon/index.js +12 -0
- package/node/TreeItem2Provider/TreeItem2Provider.js +30 -0
- package/node/TreeItem2Provider/TreeItem2Provider.types.js +5 -0
- package/node/TreeItem2Provider/index.js +12 -0
- package/node/TreeView/TreeView.js +23 -22
- package/node/hooks/index.js +8 -1
- package/node/hooks/useTreeItem2Utils/index.js +12 -0
- package/node/hooks/useTreeItem2Utils/useTreeItem2Utils.js +68 -0
- package/node/index.js +61 -13
- package/node/internals/hooks/useLazyRef.js +7 -13
- package/node/internals/hooks/useOnMount.js +8 -10
- package/node/internals/hooks/useTimeout.js +7 -37
- package/node/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +24 -24
- package/node/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +12 -12
- package/node/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.js +36 -22
- package/node/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +11 -9
- package/node/internals/plugins/useTreeViewNodes/useTreeViewNodes.js +30 -17
- package/node/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +34 -34
- package/node/internals/useTreeView/useTreeView.js +27 -25
- package/node/useTreeItem2/index.js +12 -0
- package/node/useTreeItem2/useTreeItem2.js +143 -0
- package/node/useTreeItem2/useTreeItem2.types.js +5 -0
- package/package.json +2 -2
- package/themeAugmentation/components.d.ts +5 -0
- package/themeAugmentation/overrides.d.ts +1 -0
- package/themeAugmentation/props.d.ts +2 -0
- package/useTreeItem2/index.d.ts +2 -0
- package/useTreeItem2/index.js +1 -0
- package/useTreeItem2/package.json +6 -0
- package/useTreeItem2/useTreeItem2.d.ts +2 -0
- package/useTreeItem2/useTreeItem2.js +138 -0
- package/useTreeItem2/useTreeItem2.types.d.ts +113 -0
- package/useTreeItem2/useTreeItem2.types.js +1 -0
|
@@ -11,4 +11,4 @@ var _generateUtilityClasses = _interopRequireDefault(require("@mui/utils/generat
|
|
|
11
11
|
function getTreeItemUtilityClass(slot) {
|
|
12
12
|
return (0, _generateUtilityClass.default)('MuiTreeItem', slot);
|
|
13
13
|
}
|
|
14
|
-
const treeItemClasses = exports.treeItemClasses = (0, _generateUtilityClasses.default)('MuiTreeItem', ['root', '
|
|
14
|
+
const treeItemClasses = exports.treeItemClasses = (0, _generateUtilityClasses.default)('MuiTreeItem', ['root', 'groupTransition', 'content', 'expanded', 'selected', 'focused', 'disabled', 'iconContainer', 'label']);
|
|
@@ -20,7 +20,7 @@ function useTreeItemState(nodeId) {
|
|
|
20
20
|
const handleExpansion = event => {
|
|
21
21
|
if (!disabled) {
|
|
22
22
|
if (!focused) {
|
|
23
|
-
instance.
|
|
23
|
+
instance.focusItem(event, nodeId);
|
|
24
24
|
}
|
|
25
25
|
const multiple = multiSelect && (event.shiftKey || event.ctrlKey || event.metaKey);
|
|
26
26
|
|
|
@@ -33,7 +33,7 @@ function useTreeItemState(nodeId) {
|
|
|
33
33
|
const handleSelection = event => {
|
|
34
34
|
if (!disabled) {
|
|
35
35
|
if (!focused) {
|
|
36
|
-
instance.
|
|
36
|
+
instance.focusItem(event, nodeId);
|
|
37
37
|
}
|
|
38
38
|
const multiple = multiSelect && (event.shiftKey || event.ctrlKey || event.metaKey);
|
|
39
39
|
if (multiple) {
|
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.TreeItem2Root = exports.TreeItem2Label = exports.TreeItem2IconContainer = exports.TreeItem2GroupTransition = exports.TreeItem2Content = exports.TreeItem2 = void 0;
|
|
8
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
+
var React = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
12
|
+
var _clsx = _interopRequireDefault(require("clsx"));
|
|
13
|
+
var _unsupportedProp = _interopRequireDefault(require("@mui/utils/unsupportedProp"));
|
|
14
|
+
var _styles = require("@mui/material/styles");
|
|
15
|
+
var _Collapse = _interopRequireDefault(require("@mui/material/Collapse"));
|
|
16
|
+
var _utils = require("@mui/base/utils");
|
|
17
|
+
var _system = require("@mui/system");
|
|
18
|
+
var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
|
|
19
|
+
var _useTreeItem = require("../useTreeItem2");
|
|
20
|
+
var _TreeItem = require("../TreeItem");
|
|
21
|
+
var _TreeItem2Icon = require("../TreeItem2Icon");
|
|
22
|
+
var _TreeItem2Provider = require("../TreeItem2Provider");
|
|
23
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
24
|
+
const _excluded = ["id", "nodeId", "label", "disabled", "children", "slots", "slotProps"];
|
|
25
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
26
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
27
|
+
const TreeItem2Root = exports.TreeItem2Root = (0, _styles.styled)('li', {
|
|
28
|
+
name: 'MuiTreeItem2',
|
|
29
|
+
slot: 'Root',
|
|
30
|
+
overridesResolver: (props, styles) => styles.root
|
|
31
|
+
})({
|
|
32
|
+
listStyle: 'none',
|
|
33
|
+
margin: 0,
|
|
34
|
+
padding: 0,
|
|
35
|
+
outline: 0
|
|
36
|
+
});
|
|
37
|
+
const TreeItem2Content = exports.TreeItem2Content = (0, _styles.styled)('div', {
|
|
38
|
+
name: 'MuiTreeItem2',
|
|
39
|
+
slot: 'Content',
|
|
40
|
+
overridesResolver: (props, styles) => styles.content,
|
|
41
|
+
shouldForwardProp: prop => (0, _system.shouldForwardProp)(prop) && prop !== 'status'
|
|
42
|
+
})(({
|
|
43
|
+
theme
|
|
44
|
+
}) => ({
|
|
45
|
+
padding: theme.spacing(0.5, 1),
|
|
46
|
+
borderRadius: theme.shape.borderRadius,
|
|
47
|
+
width: '100%',
|
|
48
|
+
boxSizing: 'border-box',
|
|
49
|
+
// prevent width + padding to overflow
|
|
50
|
+
display: 'flex',
|
|
51
|
+
alignItems: 'center',
|
|
52
|
+
gap: theme.spacing(1),
|
|
53
|
+
cursor: 'pointer',
|
|
54
|
+
WebkitTapHighlightColor: 'transparent',
|
|
55
|
+
'&:hover': {
|
|
56
|
+
backgroundColor: (theme.vars || theme).palette.action.hover,
|
|
57
|
+
// Reset on touch devices, it doesn't add specificity
|
|
58
|
+
'@media (hover: none)': {
|
|
59
|
+
backgroundColor: 'transparent'
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
[`& .${_TreeItem.treeItemClasses.groupTransition}`]: {
|
|
63
|
+
margin: 0,
|
|
64
|
+
padding: 0,
|
|
65
|
+
paddingLeft: 12
|
|
66
|
+
},
|
|
67
|
+
variants: [{
|
|
68
|
+
props: ({
|
|
69
|
+
status
|
|
70
|
+
}) => status.disabled,
|
|
71
|
+
style: {
|
|
72
|
+
opacity: (theme.vars || theme).palette.action.disabledOpacity,
|
|
73
|
+
backgroundColor: 'transparent'
|
|
74
|
+
}
|
|
75
|
+
}, {
|
|
76
|
+
props: ({
|
|
77
|
+
status
|
|
78
|
+
}) => status.focused,
|
|
79
|
+
style: {
|
|
80
|
+
backgroundColor: (theme.vars || theme).palette.action.focus
|
|
81
|
+
}
|
|
82
|
+
}, {
|
|
83
|
+
props: ({
|
|
84
|
+
status
|
|
85
|
+
}) => status.selected,
|
|
86
|
+
style: {
|
|
87
|
+
backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : (0, _styles.alpha)(theme.palette.primary.main, theme.palette.action.selectedOpacity),
|
|
88
|
+
'&:hover': {
|
|
89
|
+
backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))` : (0, _styles.alpha)(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity),
|
|
90
|
+
// Reset on touch devices, it doesn't add specificity
|
|
91
|
+
'@media (hover: none)': {
|
|
92
|
+
backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : (0, _styles.alpha)(theme.palette.primary.main, theme.palette.action.selectedOpacity)
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}, {
|
|
97
|
+
props: ({
|
|
98
|
+
status
|
|
99
|
+
}) => status.selected && status.focused,
|
|
100
|
+
style: {
|
|
101
|
+
backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.focusOpacity}))` : (0, _styles.alpha)(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity)
|
|
102
|
+
}
|
|
103
|
+
}]
|
|
104
|
+
}));
|
|
105
|
+
const TreeItem2Label = exports.TreeItem2Label = (0, _styles.styled)('div', {
|
|
106
|
+
name: 'MuiTreeItem2',
|
|
107
|
+
slot: 'Label',
|
|
108
|
+
overridesResolver: (props, styles) => styles.label
|
|
109
|
+
})(({
|
|
110
|
+
theme
|
|
111
|
+
}) => (0, _extends2.default)({
|
|
112
|
+
width: '100%',
|
|
113
|
+
boxSizing: 'border-box',
|
|
114
|
+
// prevent width + padding to overflow
|
|
115
|
+
// fixes overflow - see https://github.com/mui/material-ui/issues/27372
|
|
116
|
+
minWidth: 0,
|
|
117
|
+
position: 'relative'
|
|
118
|
+
}, theme.typography.body1));
|
|
119
|
+
const TreeItem2IconContainer = exports.TreeItem2IconContainer = (0, _styles.styled)('div', {
|
|
120
|
+
name: 'MuiTreeItem2',
|
|
121
|
+
slot: 'IconContainer',
|
|
122
|
+
overridesResolver: (props, styles) => styles.iconContainer
|
|
123
|
+
})({
|
|
124
|
+
width: 16,
|
|
125
|
+
display: 'flex',
|
|
126
|
+
flexShrink: 0,
|
|
127
|
+
justifyContent: 'center',
|
|
128
|
+
'& svg': {
|
|
129
|
+
fontSize: 18
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
const TreeItem2GroupTransition = exports.TreeItem2GroupTransition = (0, _styles.styled)(_Collapse.default, {
|
|
133
|
+
name: 'MuiTreeItem2GroupTransition',
|
|
134
|
+
slot: 'GroupTransition',
|
|
135
|
+
overridesResolver: (props, styles) => styles.groupTransition
|
|
136
|
+
})({
|
|
137
|
+
margin: 0,
|
|
138
|
+
padding: 0,
|
|
139
|
+
paddingLeft: 12
|
|
140
|
+
});
|
|
141
|
+
const useUtilityClasses = ownerState => {
|
|
142
|
+
const {
|
|
143
|
+
classes
|
|
144
|
+
} = ownerState;
|
|
145
|
+
const slots = {
|
|
146
|
+
root: ['root'],
|
|
147
|
+
content: ['content'],
|
|
148
|
+
expanded: ['expanded'],
|
|
149
|
+
selected: ['selected'],
|
|
150
|
+
focused: ['focused'],
|
|
151
|
+
disabled: ['disabled'],
|
|
152
|
+
iconContainer: ['iconContainer'],
|
|
153
|
+
label: ['label'],
|
|
154
|
+
groupTransition: ['groupTransition']
|
|
155
|
+
};
|
|
156
|
+
return (0, _composeClasses.default)(slots, _TreeItem.getTreeItemUtilityClass, classes);
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
*
|
|
161
|
+
* Demos:
|
|
162
|
+
*
|
|
163
|
+
* - [Tree View](https://mui.com/x/react-tree-view/)
|
|
164
|
+
*
|
|
165
|
+
* API:
|
|
166
|
+
*
|
|
167
|
+
* - [TreeItem2 API](https://mui.com/x/api/tree-view/tree-item-2/)
|
|
168
|
+
*/
|
|
169
|
+
const TreeItem2 = exports.TreeItem2 = /*#__PURE__*/React.forwardRef(function TreeItem2(inProps, forwardedRef) {
|
|
170
|
+
const props = (0, _styles.useThemeProps)({
|
|
171
|
+
props: inProps,
|
|
172
|
+
name: 'MuiTreeItem2'
|
|
173
|
+
});
|
|
174
|
+
const {
|
|
175
|
+
id,
|
|
176
|
+
nodeId,
|
|
177
|
+
label,
|
|
178
|
+
disabled,
|
|
179
|
+
children,
|
|
180
|
+
slots = {},
|
|
181
|
+
slotProps = {}
|
|
182
|
+
} = props,
|
|
183
|
+
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
184
|
+
const {
|
|
185
|
+
getRootProps,
|
|
186
|
+
getContentProps,
|
|
187
|
+
getIconContainerProps,
|
|
188
|
+
getLabelProps,
|
|
189
|
+
getGroupTransitionProps,
|
|
190
|
+
status
|
|
191
|
+
} = (0, _useTreeItem.unstable_useTreeItem2)({
|
|
192
|
+
id,
|
|
193
|
+
nodeId,
|
|
194
|
+
children,
|
|
195
|
+
label,
|
|
196
|
+
disabled
|
|
197
|
+
});
|
|
198
|
+
const ownerState = (0, _extends2.default)({}, props, status);
|
|
199
|
+
const classes = useUtilityClasses(ownerState);
|
|
200
|
+
const Root = slots.root ?? TreeItem2Root;
|
|
201
|
+
const rootProps = (0, _utils.useSlotProps)({
|
|
202
|
+
elementType: Root,
|
|
203
|
+
getSlotProps: getRootProps,
|
|
204
|
+
externalForwardedProps: other,
|
|
205
|
+
externalSlotProps: slotProps.root,
|
|
206
|
+
additionalProps: {
|
|
207
|
+
ref: forwardedRef
|
|
208
|
+
},
|
|
209
|
+
ownerState: {},
|
|
210
|
+
className: classes.root
|
|
211
|
+
});
|
|
212
|
+
const Content = slots.content ?? TreeItem2Content;
|
|
213
|
+
const contentProps = (0, _utils.useSlotProps)({
|
|
214
|
+
elementType: Content,
|
|
215
|
+
getSlotProps: getContentProps,
|
|
216
|
+
externalSlotProps: slotProps.content,
|
|
217
|
+
ownerState: {},
|
|
218
|
+
className: (0, _clsx.default)(classes.content, status.expanded && classes.expanded, status.selected && classes.selected, status.focused && classes.focused, status.disabled && classes.disabled)
|
|
219
|
+
});
|
|
220
|
+
const IconContainer = slots.iconContainer ?? TreeItem2IconContainer;
|
|
221
|
+
const iconContainerProps = (0, _utils.useSlotProps)({
|
|
222
|
+
elementType: IconContainer,
|
|
223
|
+
getSlotProps: getIconContainerProps,
|
|
224
|
+
externalSlotProps: slotProps.iconContainer,
|
|
225
|
+
ownerState: {},
|
|
226
|
+
className: classes.iconContainer
|
|
227
|
+
});
|
|
228
|
+
const Label = slots.label ?? TreeItem2Label;
|
|
229
|
+
const labelProps = (0, _utils.useSlotProps)({
|
|
230
|
+
elementType: Label,
|
|
231
|
+
getSlotProps: getLabelProps,
|
|
232
|
+
externalSlotProps: slotProps.label,
|
|
233
|
+
ownerState: {},
|
|
234
|
+
className: classes.label
|
|
235
|
+
});
|
|
236
|
+
const GroupTransition = slots.groupTransition ?? undefined;
|
|
237
|
+
const groupTransitionProps = (0, _utils.useSlotProps)({
|
|
238
|
+
elementType: GroupTransition,
|
|
239
|
+
getSlotProps: getGroupTransitionProps,
|
|
240
|
+
externalSlotProps: slotProps.groupTransition,
|
|
241
|
+
ownerState: {},
|
|
242
|
+
className: classes.groupTransition
|
|
243
|
+
});
|
|
244
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TreeItem2Provider.TreeItem2Provider, {
|
|
245
|
+
nodeId: nodeId,
|
|
246
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(Root, (0, _extends2.default)({}, rootProps, {
|
|
247
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(Content, (0, _extends2.default)({}, contentProps, {
|
|
248
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(IconContainer, (0, _extends2.default)({}, iconContainerProps, {
|
|
249
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TreeItem2Icon.TreeItem2Icon, {
|
|
250
|
+
status: status,
|
|
251
|
+
slots: slots,
|
|
252
|
+
slotProps: slotProps
|
|
253
|
+
})
|
|
254
|
+
})), /*#__PURE__*/(0, _jsxRuntime.jsx)(Label, (0, _extends2.default)({}, labelProps))]
|
|
255
|
+
})), children && /*#__PURE__*/(0, _jsxRuntime.jsx)(TreeItem2GroupTransition, (0, _extends2.default)({
|
|
256
|
+
as: GroupTransition
|
|
257
|
+
}, groupTransitionProps))]
|
|
258
|
+
}))
|
|
259
|
+
});
|
|
260
|
+
});
|
|
261
|
+
process.env.NODE_ENV !== "production" ? TreeItem2.propTypes = {
|
|
262
|
+
// ----------------------------- Warning --------------------------------
|
|
263
|
+
// | These PropTypes are generated from the TypeScript type definitions |
|
|
264
|
+
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
265
|
+
// ----------------------------------------------------------------------
|
|
266
|
+
/**
|
|
267
|
+
* The content of the component.
|
|
268
|
+
*/
|
|
269
|
+
children: _propTypes.default.node,
|
|
270
|
+
/**
|
|
271
|
+
* Override or extend the styles applied to the component.
|
|
272
|
+
*/
|
|
273
|
+
classes: _propTypes.default.object,
|
|
274
|
+
className: _propTypes.default.string,
|
|
275
|
+
/**
|
|
276
|
+
* If `true`, the node is disabled.
|
|
277
|
+
* @default false
|
|
278
|
+
*/
|
|
279
|
+
disabled: _propTypes.default.bool,
|
|
280
|
+
/**
|
|
281
|
+
* The id attribute of the node. If not provided, it will be generated.
|
|
282
|
+
*/
|
|
283
|
+
id: _propTypes.default.string,
|
|
284
|
+
/**
|
|
285
|
+
* The label of the node.
|
|
286
|
+
*/
|
|
287
|
+
label: _propTypes.default.node,
|
|
288
|
+
/**
|
|
289
|
+
* The id of the node.
|
|
290
|
+
* Must be unique.
|
|
291
|
+
*/
|
|
292
|
+
nodeId: _propTypes.default.string.isRequired,
|
|
293
|
+
/**
|
|
294
|
+
* This prop isn't supported.
|
|
295
|
+
* Use the `onItemFocus` callback on the tree if you need to monitor a item's focus.
|
|
296
|
+
*/
|
|
297
|
+
onFocus: _unsupportedProp.default,
|
|
298
|
+
/**
|
|
299
|
+
* The props used for each component slot.
|
|
300
|
+
* @default {}
|
|
301
|
+
*/
|
|
302
|
+
slotProps: _propTypes.default.object,
|
|
303
|
+
/**
|
|
304
|
+
* Overridable component slots.
|
|
305
|
+
* @default {}
|
|
306
|
+
*/
|
|
307
|
+
slots: _propTypes.default.object
|
|
308
|
+
} : void 0;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "TreeItem2", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _TreeItem.TreeItem2;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "TreeItem2Content", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _TreeItem.TreeItem2Content;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "TreeItem2GroupTransition", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _TreeItem.TreeItem2GroupTransition;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "TreeItem2IconContainer", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () {
|
|
27
|
+
return _TreeItem.TreeItem2IconContainer;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(exports, "TreeItem2Label", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function () {
|
|
33
|
+
return _TreeItem.TreeItem2Label;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(exports, "TreeItem2Root", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function () {
|
|
39
|
+
return _TreeItem.TreeItem2Root;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
var _TreeItem = require("./TreeItem2");
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.TreeItem2Icon = TreeItem2Icon;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var React = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
var _utils = require("@mui/base/utils");
|
|
12
|
+
var _useTreeViewContext = require("../internals/TreeViewProvider/useTreeViewContext");
|
|
13
|
+
var _icons = require("../icons");
|
|
14
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
16
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
17
|
+
function TreeItem2Icon(props) {
|
|
18
|
+
const {
|
|
19
|
+
slots,
|
|
20
|
+
slotProps,
|
|
21
|
+
status
|
|
22
|
+
} = props;
|
|
23
|
+
const context = (0, _useTreeViewContext.useTreeViewContext)();
|
|
24
|
+
const contextIcons = (0, _extends2.default)({}, context.icons.slots, {
|
|
25
|
+
expandIcon: context.icons.slots.expandIcon ?? _icons.TreeViewExpandIcon,
|
|
26
|
+
collapseIcon: context.icons.slots.collapseIcon ?? _icons.TreeViewCollapseIcon
|
|
27
|
+
});
|
|
28
|
+
const contextIconProps = context.icons.slotProps;
|
|
29
|
+
let iconName;
|
|
30
|
+
if (slots?.icon) {
|
|
31
|
+
iconName = 'icon';
|
|
32
|
+
} else if (status.expandable) {
|
|
33
|
+
if (status.expanded) {
|
|
34
|
+
iconName = 'collapseIcon';
|
|
35
|
+
} else {
|
|
36
|
+
iconName = 'expandIcon';
|
|
37
|
+
}
|
|
38
|
+
} else {
|
|
39
|
+
iconName = 'endIcon';
|
|
40
|
+
}
|
|
41
|
+
const Icon = slots?.[iconName] ?? contextIcons[iconName];
|
|
42
|
+
const iconProps = (0, _utils.useSlotProps)({
|
|
43
|
+
elementType: Icon,
|
|
44
|
+
externalSlotProps: tempOwnerState => (0, _extends2.default)({}, (0, _utils.resolveComponentProps)(contextIconProps[iconName], tempOwnerState), (0, _utils.resolveComponentProps)(slotProps?.[iconName], tempOwnerState)),
|
|
45
|
+
// TODO: Add proper ownerState
|
|
46
|
+
ownerState: {}
|
|
47
|
+
});
|
|
48
|
+
if (!Icon) {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Icon, (0, _extends2.default)({}, iconProps));
|
|
52
|
+
}
|
|
53
|
+
process.env.NODE_ENV !== "production" ? TreeItem2Icon.propTypes = {
|
|
54
|
+
// ----------------------------- Warning --------------------------------
|
|
55
|
+
// | These PropTypes are generated from the TypeScript type definitions |
|
|
56
|
+
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
57
|
+
// ----------------------------------------------------------------------
|
|
58
|
+
/**
|
|
59
|
+
* The props used for each component slot.
|
|
60
|
+
* @default {}
|
|
61
|
+
*/
|
|
62
|
+
slotProps: _propTypes.default.object,
|
|
63
|
+
/**
|
|
64
|
+
* Overridable component slots.
|
|
65
|
+
* @default {}
|
|
66
|
+
*/
|
|
67
|
+
slots: _propTypes.default.object,
|
|
68
|
+
status: _propTypes.default.shape({
|
|
69
|
+
disabled: _propTypes.default.bool.isRequired,
|
|
70
|
+
expandable: _propTypes.default.bool.isRequired,
|
|
71
|
+
expanded: _propTypes.default.bool.isRequired,
|
|
72
|
+
focused: _propTypes.default.bool.isRequired,
|
|
73
|
+
selected: _propTypes.default.bool.isRequired
|
|
74
|
+
}).isRequired
|
|
75
|
+
} : void 0;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "TreeItem2Icon", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _TreeItem2Icon.TreeItem2Icon;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
var _TreeItem2Icon = require("./TreeItem2Icon");
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.TreeItem2Provider = TreeItem2Provider;
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
var _useTreeViewContext = require("../internals/TreeViewProvider/useTreeViewContext");
|
|
10
|
+
function TreeItem2Provider(props) {
|
|
11
|
+
const {
|
|
12
|
+
children,
|
|
13
|
+
nodeId
|
|
14
|
+
} = props;
|
|
15
|
+
const {
|
|
16
|
+
wrapItem
|
|
17
|
+
} = (0, _useTreeViewContext.useTreeViewContext)();
|
|
18
|
+
return wrapItem({
|
|
19
|
+
children,
|
|
20
|
+
nodeId
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
TreeItem2Provider.propTypes = {
|
|
24
|
+
// ----------------------------- Warning --------------------------------
|
|
25
|
+
// | These PropTypes are generated from the TypeScript type definitions |
|
|
26
|
+
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
27
|
+
// ----------------------------------------------------------------------
|
|
28
|
+
children: _propTypes.default.node,
|
|
29
|
+
nodeId: _propTypes.default.string.isRequired
|
|
30
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "TreeItem2Provider", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _TreeItem2Provider.TreeItem2Provider;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
var _TreeItem2Provider = require("./TreeItem2Provider");
|
|
@@ -78,7 +78,8 @@ process.env.NODE_ENV !== "production" ? TreeView.propTypes = {
|
|
|
78
78
|
*/
|
|
79
79
|
apiRef: _propTypes.default.shape({
|
|
80
80
|
current: _propTypes.default.shape({
|
|
81
|
-
|
|
81
|
+
focusItem: _propTypes.default.func.isRequired,
|
|
82
|
+
getItem: _propTypes.default.func.isRequired
|
|
82
83
|
})
|
|
83
84
|
}),
|
|
84
85
|
/**
|
|
@@ -91,17 +92,17 @@ process.env.NODE_ENV !== "production" ? TreeView.propTypes = {
|
|
|
91
92
|
classes: _propTypes.default.object,
|
|
92
93
|
className: _propTypes.default.string,
|
|
93
94
|
/**
|
|
94
|
-
* Expanded
|
|
95
|
+
* Expanded item ids.
|
|
95
96
|
* Used when the item's expansion is not controlled.
|
|
96
97
|
* @default []
|
|
97
98
|
*/
|
|
98
|
-
|
|
99
|
+
defaultExpandedItems: _propTypes.default.arrayOf(_propTypes.default.string),
|
|
99
100
|
/**
|
|
100
|
-
* Selected
|
|
101
|
+
* Selected item ids. (Uncontrolled)
|
|
101
102
|
* When `multiSelect` is true this takes an array of strings; when false (default) a string.
|
|
102
103
|
* @default []
|
|
103
104
|
*/
|
|
104
|
-
|
|
105
|
+
defaultSelectedItems: _propTypes.default.any,
|
|
105
106
|
/**
|
|
106
107
|
* If `true`, will allow focus on disabled items.
|
|
107
108
|
* @default false
|
|
@@ -113,10 +114,10 @@ process.env.NODE_ENV !== "production" ? TreeView.propTypes = {
|
|
|
113
114
|
*/
|
|
114
115
|
disableSelection: _propTypes.default.bool,
|
|
115
116
|
/**
|
|
116
|
-
* Expanded
|
|
117
|
+
* Expanded item ids.
|
|
117
118
|
* Used when the item's expansion is controlled.
|
|
118
119
|
*/
|
|
119
|
-
|
|
120
|
+
expandedItems: _propTypes.default.arrayOf(_propTypes.default.string),
|
|
120
121
|
/**
|
|
121
122
|
* This prop is used to help implement the accessibility logic.
|
|
122
123
|
* If you don't provide this prop. It falls back to a randomly generated id.
|
|
@@ -130,42 +131,42 @@ process.env.NODE_ENV !== "production" ? TreeView.propTypes = {
|
|
|
130
131
|
/**
|
|
131
132
|
* Callback fired when tree items are expanded/collapsed.
|
|
132
133
|
* @param {React.SyntheticEvent} event The event source of the callback.
|
|
133
|
-
* @param {array}
|
|
134
|
+
* @param {array} itemIds The ids of the expanded items.
|
|
134
135
|
*/
|
|
135
|
-
|
|
136
|
+
onExpandedItemsChange: _propTypes.default.func,
|
|
136
137
|
/**
|
|
137
138
|
* Callback fired when a tree item is expanded or collapsed.
|
|
138
139
|
* @param {React.SyntheticEvent} event The event source of the callback.
|
|
139
|
-
* @param {array}
|
|
140
|
-
* @param {array} isExpanded `true` if the
|
|
140
|
+
* @param {array} itemId The itemId of the modified item.
|
|
141
|
+
* @param {array} isExpanded `true` if the item has just been expanded, `false` if it has just been collapsed.
|
|
141
142
|
*/
|
|
142
|
-
|
|
143
|
+
onItemExpansionToggle: _propTypes.default.func,
|
|
143
144
|
/**
|
|
144
145
|
* Callback fired when tree items are focused.
|
|
145
146
|
* @param {React.SyntheticEvent} event The event source of the callback **Warning**: This is a generic event not a focus event.
|
|
146
|
-
* @param {string}
|
|
147
|
-
* @param {string} value of the focused
|
|
147
|
+
* @param {string} itemId The id of the focused item.
|
|
148
|
+
* @param {string} value of the focused item.
|
|
148
149
|
*/
|
|
149
|
-
|
|
150
|
+
onItemFocus: _propTypes.default.func,
|
|
150
151
|
/**
|
|
151
152
|
* Callback fired when a tree item is selected or deselected.
|
|
152
153
|
* @param {React.SyntheticEvent} event The event source of the callback.
|
|
153
|
-
* @param {array}
|
|
154
|
-
* @param {array} isSelected `true` if the
|
|
154
|
+
* @param {array} itemId The itemId of the modified item.
|
|
155
|
+
* @param {array} isSelected `true` if the item has just been selected, `false` if it has just been deselected.
|
|
155
156
|
*/
|
|
156
|
-
|
|
157
|
+
onItemSelectionToggle: _propTypes.default.func,
|
|
157
158
|
/**
|
|
158
159
|
* Callback fired when tree items are selected/deselected.
|
|
159
160
|
* @param {React.SyntheticEvent} event The event source of the callback
|
|
160
|
-
* @param {string[] | string}
|
|
161
|
+
* @param {string[] | string} itemIds The ids of the selected items.
|
|
161
162
|
* When `multiSelect` is `true`, this is an array of strings; when false (default) a string.
|
|
162
163
|
*/
|
|
163
|
-
|
|
164
|
+
onSelectedItemsChange: _propTypes.default.func,
|
|
164
165
|
/**
|
|
165
|
-
* Selected
|
|
166
|
+
* Selected item ids. (Controlled)
|
|
166
167
|
* When `multiSelect` is true this takes an array of strings; when false (default) a string.
|
|
167
168
|
*/
|
|
168
|
-
|
|
169
|
+
selectedItems: _propTypes.default.any,
|
|
169
170
|
/**
|
|
170
171
|
* The props used for each component slot.
|
|
171
172
|
*/
|
package/node/hooks/index.js
CHANGED
|
@@ -3,10 +3,17 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
Object.defineProperty(exports, "useTreeItem2Utils", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _useTreeItem2Utils.useTreeItem2Utils;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
6
12
|
Object.defineProperty(exports, "useTreeViewApiRef", {
|
|
7
13
|
enumerable: true,
|
|
8
14
|
get: function () {
|
|
9
15
|
return _useTreeViewApiRef.useTreeViewApiRef;
|
|
10
16
|
}
|
|
11
17
|
});
|
|
12
|
-
var _useTreeViewApiRef = require("./useTreeViewApiRef");
|
|
18
|
+
var _useTreeViewApiRef = require("./useTreeViewApiRef");
|
|
19
|
+
var _useTreeItem2Utils = require("./useTreeItem2Utils");
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "useTreeItem2Utils", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _useTreeItem2Utils.useTreeItem2Utils;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
var _useTreeItem2Utils = require("./useTreeItem2Utils");
|