@mui/x-tree-view 7.0.0-beta.6 → 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 +117 -1
- package/RichTreeView/RichTreeView.js +22 -22
- package/RichTreeView/RichTreeView.types.d.ts +2 -1
- package/SimpleTreeView/SimpleTreeView.js +22 -22
- package/TreeItem/TreeItem.js +57 -53
- package/TreeItem/TreeItem.types.d.ts +10 -8
- 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 +22 -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/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/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 -5
- package/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.js +17 -17
- package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +11 -9
- package/internals/plugins/useTreeViewNodes/useTreeViewNodes.js +2 -2
- 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 +22 -22
- package/modern/SimpleTreeView/SimpleTreeView.js +22 -22
- package/modern/TreeItem/TreeItem.js +57 -53
- 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 +22 -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 +16 -16
- package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +11 -9
- package/modern/internals/plugins/useTreeViewNodes/useTreeViewNodes.js +2 -2
- 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 +22 -22
- package/node/SimpleTreeView/SimpleTreeView.js +22 -22
- package/node/TreeItem/TreeItem.js +57 -53
- 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 +22 -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 +16 -16
- package/node/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +11 -9
- package/node/internals/plugins/useTreeViewNodes/useTreeViewNodes.js +2 -2
- 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 +1 -1
- 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
|
@@ -12,6 +12,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
12
12
|
var _clsx = _interopRequireDefault(require("clsx"));
|
|
13
13
|
var _Collapse = _interopRequireDefault(require("@mui/material/Collapse"));
|
|
14
14
|
var _utils = require("@mui/base/utils");
|
|
15
|
+
var _useForkRef = _interopRequireDefault(require("@mui/utils/useForkRef"));
|
|
15
16
|
var _styles = require("@mui/material/styles");
|
|
16
17
|
var _unsupportedProp = _interopRequireDefault(require("@mui/utils/unsupportedProp"));
|
|
17
18
|
var _elementTypeAcceptingRef = _interopRequireDefault(require("@mui/utils/elementTypeAcceptingRef"));
|
|
@@ -20,6 +21,7 @@ var _TreeItemContent = require("./TreeItemContent");
|
|
|
20
21
|
var _treeItemClasses = require("./treeItemClasses");
|
|
21
22
|
var _useTreeViewContext = require("../internals/TreeViewProvider/useTreeViewContext");
|
|
22
23
|
var _icons = require("../icons");
|
|
24
|
+
var _TreeItem2Provider = require("../TreeItem2Provider");
|
|
23
25
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
24
26
|
const _excluded = ["children", "className", "slots", "slotProps", "ContentComponent", "ContentProps", "nodeId", "id", "label", "onClick", "onMouseDown"],
|
|
25
27
|
_excluded2 = ["ownerState"],
|
|
@@ -152,18 +154,10 @@ const TreeItem = exports.TreeItem = /*#__PURE__*/React.forwardRef(function TreeI
|
|
|
152
154
|
disabledItemsFocusable,
|
|
153
155
|
instance
|
|
154
156
|
} = (0, _useTreeViewContext.useTreeViewContext)();
|
|
155
|
-
const
|
|
157
|
+
const props = (0, _styles.useThemeProps)({
|
|
156
158
|
props: inProps,
|
|
157
159
|
name: 'MuiTreeItem'
|
|
158
160
|
});
|
|
159
|
-
const {
|
|
160
|
-
props,
|
|
161
|
-
ref,
|
|
162
|
-
wrapItem
|
|
163
|
-
} = runItemPlugins({
|
|
164
|
-
props: inPropsWithTheme,
|
|
165
|
-
ref: inRef
|
|
166
|
-
});
|
|
167
161
|
const {
|
|
168
162
|
children,
|
|
169
163
|
className,
|
|
@@ -178,6 +172,12 @@ const TreeItem = exports.TreeItem = /*#__PURE__*/React.forwardRef(function TreeI
|
|
|
178
172
|
onMouseDown
|
|
179
173
|
} = props,
|
|
180
174
|
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
175
|
+
const {
|
|
176
|
+
contentRef,
|
|
177
|
+
rootRef
|
|
178
|
+
} = runItemPlugins(props);
|
|
179
|
+
const handleRootRef = (0, _useForkRef.default)(inRef, rootRef);
|
|
180
|
+
const handleContentRef = (0, _useForkRef.default)(ContentProps?.ref, contentRef);
|
|
181
181
|
const slots = {
|
|
182
182
|
expandIcon: inSlots?.expandIcon ?? contextIcons.slots.expandIcon ?? _icons.TreeViewExpandIcon,
|
|
183
183
|
collapseIcon: inSlots?.collapseIcon ?? contextIcons.slots.collapseIcon ?? _icons.TreeViewCollapseIcon,
|
|
@@ -269,50 +269,54 @@ const TreeItem = exports.TreeItem = /*#__PURE__*/React.forwardRef(function TreeI
|
|
|
269
269
|
}
|
|
270
270
|
const canBeFocused = !disabled || disabledItemsFocusable;
|
|
271
271
|
if (!focused && canBeFocused && event.currentTarget === event.target) {
|
|
272
|
-
instance.
|
|
272
|
+
instance.focusItem(event, nodeId);
|
|
273
273
|
}
|
|
274
274
|
}
|
|
275
275
|
const idAttribute = instance.getTreeItemId(nodeId, id);
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
276
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TreeItem2Provider.TreeItem2Provider, {
|
|
277
|
+
nodeId: nodeId,
|
|
278
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(TreeItemRoot, (0, _extends2.default)({
|
|
279
|
+
className: (0, _clsx.default)(classes.root, className),
|
|
280
|
+
role: "treeitem",
|
|
281
|
+
"aria-expanded": expandable ? expanded : undefined,
|
|
282
|
+
"aria-selected": ariaSelected,
|
|
283
|
+
"aria-disabled": disabled || undefined,
|
|
284
|
+
id: idAttribute,
|
|
285
|
+
tabIndex: -1
|
|
286
|
+
}, other, {
|
|
287
|
+
ownerState: ownerState,
|
|
288
|
+
onFocus: handleFocus,
|
|
289
|
+
ref: handleRootRef,
|
|
290
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(StyledTreeItemContent, (0, _extends2.default)({
|
|
291
|
+
as: ContentComponent,
|
|
292
|
+
classes: {
|
|
293
|
+
root: classes.content,
|
|
294
|
+
expanded: classes.expanded,
|
|
295
|
+
selected: classes.selected,
|
|
296
|
+
focused: classes.focused,
|
|
297
|
+
disabled: classes.disabled,
|
|
298
|
+
iconContainer: classes.iconContainer,
|
|
299
|
+
label: classes.label
|
|
300
|
+
},
|
|
301
|
+
label: label,
|
|
302
|
+
nodeId: nodeId,
|
|
303
|
+
onClick: onClick,
|
|
304
|
+
onMouseDown: onMouseDown,
|
|
305
|
+
icon: icon,
|
|
306
|
+
expansionIcon: expansionIcon,
|
|
307
|
+
displayIcon: displayIcon,
|
|
308
|
+
ownerState: ownerState
|
|
309
|
+
}, ContentProps, {
|
|
310
|
+
ref: handleContentRef
|
|
311
|
+
})), children && /*#__PURE__*/(0, _jsxRuntime.jsx)(TreeItemGroup, (0, _extends2.default)({
|
|
312
|
+
as: GroupTransition
|
|
313
|
+
}, groupTransitionProps, {
|
|
314
|
+
children: children
|
|
315
|
+
}))]
|
|
316
|
+
}))
|
|
317
|
+
});
|
|
314
318
|
});
|
|
315
|
-
TreeItem.propTypes = {
|
|
319
|
+
process.env.NODE_ENV !== "production" ? TreeItem.propTypes = {
|
|
316
320
|
// ----------------------------- Warning --------------------------------
|
|
317
321
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
318
322
|
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
@@ -336,12 +340,12 @@ TreeItem.propTypes = {
|
|
|
336
340
|
*/
|
|
337
341
|
ContentProps: _propTypes.default.object,
|
|
338
342
|
/**
|
|
339
|
-
* If `true`, the
|
|
343
|
+
* If `true`, the item is disabled.
|
|
340
344
|
* @default false
|
|
341
345
|
*/
|
|
342
346
|
disabled: _propTypes.default.bool,
|
|
343
347
|
/**
|
|
344
|
-
* The tree
|
|
348
|
+
* The tree item label.
|
|
345
349
|
*/
|
|
346
350
|
label: _propTypes.default.node,
|
|
347
351
|
/**
|
|
@@ -350,7 +354,7 @@ TreeItem.propTypes = {
|
|
|
350
354
|
nodeId: _propTypes.default.string.isRequired,
|
|
351
355
|
/**
|
|
352
356
|
* This prop isn't supported.
|
|
353
|
-
* Use the `
|
|
357
|
+
* Use the `onItemFocus` callback on the tree if you need to monitor a item's focus.
|
|
354
358
|
*/
|
|
355
359
|
onFocus: _unsupportedProp.default,
|
|
356
360
|
/**
|
|
@@ -367,4 +371,4 @@ TreeItem.propTypes = {
|
|
|
367
371
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
368
372
|
*/
|
|
369
373
|
sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object])
|
|
370
|
-
};
|
|
374
|
+
} : void 0;
|
|
@@ -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
|
+
};
|