@mui/x-tree-view 7.11.0 → 7.12.0
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 +194 -4
- package/RichTreeView/RichTreeView.js +11 -7
- package/RichTreeView/RichTreeView.types.d.ts +1 -1
- package/SimpleTreeView/SimpleTreeView.js +11 -7
- package/SimpleTreeView/SimpleTreeView.types.d.ts +1 -1
- package/TreeItem/TreeItem.js +36 -10
- package/TreeItem/TreeItem.types.d.ts +1 -1
- package/TreeItem/TreeItemContent.d.ts +2 -0
- package/TreeItem/TreeItemContent.js +11 -3
- package/TreeItem/treeItemClasses.d.ts +2 -0
- package/TreeItem/treeItemClasses.js +1 -1
- package/TreeItem/useTreeItemState.d.ts +1 -0
- package/TreeItem/useTreeItemState.js +5 -1
- package/TreeItem2/TreeItem2.js +15 -3
- package/TreeItem2/TreeItem2.types.d.ts +8 -1
- package/TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.d.ts +4 -0
- package/TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.js +69 -0
- package/TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.types.d.ts +6 -0
- package/TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.types.js +1 -0
- package/TreeItem2DragAndDropOverlay/index.d.ts +2 -0
- package/TreeItem2DragAndDropOverlay/index.js +1 -0
- package/TreeItem2DragAndDropOverlay/package.json +6 -0
- package/TreeItem2Icon/TreeItem2Icon.js +3 -2
- package/TreeItem2Icon/TreeItem2Icon.types.d.ts +1 -1
- package/TreeItem2Provider/TreeItem2Provider.js +1 -1
- package/TreeView/TreeView.js +8 -3
- package/hooks/useTreeItem2Utils/useTreeItem2Utils.js +1 -1
- package/index.js +1 -1
- package/internals/TreeViewProvider/index.d.ts +1 -0
- package/internals/TreeViewProvider/index.js +2 -1
- package/internals/index.d.ts +6 -5
- package/internals/index.js +4 -3
- package/internals/models/index.d.ts +2 -0
- package/internals/models/index.js +3 -1
- package/internals/models/itemPlugin.d.ts +37 -0
- package/internals/models/itemPlugin.js +1 -0
- package/internals/models/plugin.d.ts +2 -15
- package/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +2 -3
- package/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.d.ts +1 -1
- package/internals/plugins/useTreeViewItems/index.d.ts +2 -1
- package/internals/plugins/useTreeViewItems/index.js +2 -1
- package/internals/plugins/useTreeViewItems/useTreeViewItems.js +6 -2
- package/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +18 -4
- package/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js +1 -1
- package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +2 -2
- package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.d.ts +1 -2
- package/internals/useTreeView/useTreeView.types.d.ts +1 -1
- package/internals/useTreeView/useTreeViewBuildContext.js +23 -1
- package/internals/utils/tree.d.ts +8 -0
- package/internals/utils/tree.js +11 -0
- package/internals/utils/warning.d.ts +2 -1
- package/internals/utils/warning.js +19 -12
- package/models/items.d.ts +1 -0
- package/modern/RichTreeView/RichTreeView.js +11 -7
- package/modern/SimpleTreeView/SimpleTreeView.js +11 -7
- package/modern/TreeItem/TreeItem.js +36 -10
- package/modern/TreeItem/TreeItemContent.js +11 -3
- package/modern/TreeItem/treeItemClasses.js +1 -1
- package/modern/TreeItem/useTreeItemState.js +5 -1
- package/modern/TreeItem2/TreeItem2.js +15 -3
- package/modern/TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.js +69 -0
- package/modern/TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.types.js +1 -0
- package/modern/TreeItem2DragAndDropOverlay/index.js +1 -0
- package/modern/TreeItem2Icon/TreeItem2Icon.js +3 -2
- package/modern/TreeItem2Provider/TreeItem2Provider.js +1 -1
- package/modern/TreeView/TreeView.js +8 -3
- package/modern/hooks/useTreeItem2Utils/useTreeItem2Utils.js +1 -1
- package/modern/index.js +1 -1
- package/modern/internals/TreeViewProvider/index.js +2 -1
- package/modern/internals/index.js +4 -3
- package/modern/internals/models/index.js +3 -1
- package/modern/internals/models/itemPlugin.js +1 -0
- package/modern/internals/plugins/useTreeViewItems/index.js +2 -1
- package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.js +6 -2
- package/modern/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js +1 -1
- package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +2 -2
- package/modern/internals/useTreeView/useTreeViewBuildContext.js +23 -1
- package/modern/internals/utils/tree.js +11 -0
- package/modern/internals/utils/warning.js +19 -12
- package/modern/useTreeItem2/useTreeItem2.js +43 -15
- package/node/RichTreeView/RichTreeView.js +12 -8
- package/node/SimpleTreeView/SimpleTreeView.js +11 -7
- package/node/TreeItem/TreeItem.js +45 -19
- package/node/TreeItem/TreeItemContent.js +11 -3
- package/node/TreeItem/treeItemClasses.js +1 -1
- package/node/TreeItem/useTreeItemState.js +6 -2
- package/node/TreeItem2/TreeItem2.js +21 -9
- package/node/TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.js +77 -0
- package/node/TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.types.js +5 -0
- package/node/TreeItem2DragAndDropOverlay/index.js +12 -0
- package/node/TreeItem2Icon/TreeItem2Icon.js +6 -5
- package/node/TreeItem2Provider/TreeItem2Provider.js +2 -2
- package/node/TreeView/TreeView.js +8 -3
- package/node/hooks/useTreeItem2Utils/useTreeItem2Utils.js +2 -2
- package/node/index.js +1 -1
- package/node/internals/TreeViewProvider/index.js +8 -1
- package/node/internals/index.js +27 -2
- package/node/internals/models/index.js +22 -0
- package/node/internals/models/itemPlugin.js +5 -0
- package/node/internals/plugins/useTreeViewItems/index.js +14 -1
- package/node/internals/plugins/useTreeViewItems/useTreeViewItems.js +6 -2
- package/node/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js +2 -2
- package/node/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +1 -1
- package/node/internals/useTreeView/useTreeViewBuildContext.js +23 -1
- package/node/internals/utils/tree.js +14 -2
- package/node/internals/utils/warning.js +21 -14
- package/node/useTreeItem2/useTreeItem2.js +49 -21
- package/package.json +5 -6
- package/useTreeItem2/index.d.ts +1 -1
- package/useTreeItem2/useTreeItem2.js +43 -15
- package/useTreeItem2/useTreeItem2.types.d.ts +17 -4
|
@@ -14,13 +14,14 @@ var _unsupportedProp = _interopRequireDefault(require("@mui/utils/unsupportedPro
|
|
|
14
14
|
var _styles = require("@mui/material/styles");
|
|
15
15
|
var _Collapse = _interopRequireDefault(require("@mui/material/Collapse"));
|
|
16
16
|
var _Checkbox = _interopRequireDefault(require("@mui/material/Checkbox"));
|
|
17
|
-
var
|
|
17
|
+
var _useSlotProps = _interopRequireDefault(require("@mui/utils/useSlotProps"));
|
|
18
18
|
var _createStyled = require("@mui/system/createStyled");
|
|
19
19
|
var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
|
|
20
20
|
var _zeroStyled = require("../internals/zero-styled");
|
|
21
21
|
var _useTreeItem = require("../useTreeItem2");
|
|
22
22
|
var _TreeItem = require("../TreeItem");
|
|
23
23
|
var _TreeItem2Icon = require("../TreeItem2Icon");
|
|
24
|
+
var _TreeItem2DragAndDropOverlay = require("../TreeItem2DragAndDropOverlay");
|
|
24
25
|
var _TreeItem2Provider = require("../TreeItem2Provider");
|
|
25
26
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
26
27
|
const _excluded = ["visible"],
|
|
@@ -51,6 +52,7 @@ const TreeItem2Content = exports.TreeItem2Content = (0, _zeroStyled.styled)('div
|
|
|
51
52
|
width: '100%',
|
|
52
53
|
boxSizing: 'border-box',
|
|
53
54
|
// prevent width + padding to overflow
|
|
55
|
+
position: 'relative',
|
|
54
56
|
display: 'flex',
|
|
55
57
|
alignItems: 'center',
|
|
56
58
|
gap: theme.spacing(1),
|
|
@@ -185,7 +187,8 @@ const useUtilityClasses = ownerState => {
|
|
|
185
187
|
iconContainer: ['iconContainer'],
|
|
186
188
|
checkbox: ['checkbox'],
|
|
187
189
|
label: ['label'],
|
|
188
|
-
groupTransition: ['groupTransition']
|
|
190
|
+
groupTransition: ['groupTransition'],
|
|
191
|
+
dragAndDropOverlay: ['dragAndDropOverlay']
|
|
189
192
|
};
|
|
190
193
|
return (0, _composeClasses.default)(slots, _TreeItem.getTreeItemUtilityClass, classes);
|
|
191
194
|
};
|
|
@@ -221,6 +224,7 @@ const TreeItem2 = exports.TreeItem2 = /*#__PURE__*/React.forwardRef(function Tre
|
|
|
221
224
|
getCheckboxProps,
|
|
222
225
|
getLabelProps,
|
|
223
226
|
getGroupTransitionProps,
|
|
227
|
+
getDragAndDropOverlayProps,
|
|
224
228
|
status
|
|
225
229
|
} = (0, _useTreeItem.unstable_useTreeItem2)({
|
|
226
230
|
id,
|
|
@@ -232,7 +236,7 @@ const TreeItem2 = exports.TreeItem2 = /*#__PURE__*/React.forwardRef(function Tre
|
|
|
232
236
|
const ownerState = (0, _extends2.default)({}, props, status);
|
|
233
237
|
const classes = useUtilityClasses(ownerState);
|
|
234
238
|
const Root = slots.root ?? TreeItem2Root;
|
|
235
|
-
const rootProps = (0,
|
|
239
|
+
const rootProps = (0, _useSlotProps.default)({
|
|
236
240
|
elementType: Root,
|
|
237
241
|
getSlotProps: getRootProps,
|
|
238
242
|
externalForwardedProps: other,
|
|
@@ -244,7 +248,7 @@ const TreeItem2 = exports.TreeItem2 = /*#__PURE__*/React.forwardRef(function Tre
|
|
|
244
248
|
className: classes.root
|
|
245
249
|
});
|
|
246
250
|
const Content = slots.content ?? TreeItem2Content;
|
|
247
|
-
const contentProps = (0,
|
|
251
|
+
const contentProps = (0, _useSlotProps.default)({
|
|
248
252
|
elementType: Content,
|
|
249
253
|
getSlotProps: getContentProps,
|
|
250
254
|
externalSlotProps: slotProps.content,
|
|
@@ -252,7 +256,7 @@ const TreeItem2 = exports.TreeItem2 = /*#__PURE__*/React.forwardRef(function Tre
|
|
|
252
256
|
className: (0, _clsx.default)(classes.content, status.expanded && classes.expanded, status.selected && classes.selected, status.focused && classes.focused, status.disabled && classes.disabled)
|
|
253
257
|
});
|
|
254
258
|
const IconContainer = slots.iconContainer ?? TreeItem2IconContainer;
|
|
255
|
-
const iconContainerProps = (0,
|
|
259
|
+
const iconContainerProps = (0, _useSlotProps.default)({
|
|
256
260
|
elementType: IconContainer,
|
|
257
261
|
getSlotProps: getIconContainerProps,
|
|
258
262
|
externalSlotProps: slotProps.iconContainer,
|
|
@@ -260,7 +264,7 @@ const TreeItem2 = exports.TreeItem2 = /*#__PURE__*/React.forwardRef(function Tre
|
|
|
260
264
|
className: classes.iconContainer
|
|
261
265
|
});
|
|
262
266
|
const Label = slots.label ?? TreeItem2Label;
|
|
263
|
-
const labelProps = (0,
|
|
267
|
+
const labelProps = (0, _useSlotProps.default)({
|
|
264
268
|
elementType: Label,
|
|
265
269
|
getSlotProps: getLabelProps,
|
|
266
270
|
externalSlotProps: slotProps.label,
|
|
@@ -268,7 +272,7 @@ const TreeItem2 = exports.TreeItem2 = /*#__PURE__*/React.forwardRef(function Tre
|
|
|
268
272
|
className: classes.label
|
|
269
273
|
});
|
|
270
274
|
const Checkbox = slots.checkbox ?? TreeItem2Checkbox;
|
|
271
|
-
const checkboxProps = (0,
|
|
275
|
+
const checkboxProps = (0, _useSlotProps.default)({
|
|
272
276
|
elementType: Checkbox,
|
|
273
277
|
getSlotProps: getCheckboxProps,
|
|
274
278
|
externalSlotProps: slotProps.checkbox,
|
|
@@ -276,13 +280,21 @@ const TreeItem2 = exports.TreeItem2 = /*#__PURE__*/React.forwardRef(function Tre
|
|
|
276
280
|
className: classes.checkbox
|
|
277
281
|
});
|
|
278
282
|
const GroupTransition = slots.groupTransition ?? undefined;
|
|
279
|
-
const groupTransitionProps = (0,
|
|
283
|
+
const groupTransitionProps = (0, _useSlotProps.default)({
|
|
280
284
|
elementType: GroupTransition,
|
|
281
285
|
getSlotProps: getGroupTransitionProps,
|
|
282
286
|
externalSlotProps: slotProps.groupTransition,
|
|
283
287
|
ownerState: {},
|
|
284
288
|
className: classes.groupTransition
|
|
285
289
|
});
|
|
290
|
+
const DragAndDropOverlay = slots.dragAndDropOverlay ?? _TreeItem2DragAndDropOverlay.TreeItem2DragAndDropOverlay;
|
|
291
|
+
const dragAndDropOverlayProps = (0, _useSlotProps.default)({
|
|
292
|
+
elementType: DragAndDropOverlay,
|
|
293
|
+
getSlotProps: getDragAndDropOverlayProps,
|
|
294
|
+
externalSlotProps: slotProps.dragAndDropOverlay,
|
|
295
|
+
ownerState: {},
|
|
296
|
+
className: classes.dragAndDropOverlay
|
|
297
|
+
});
|
|
286
298
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TreeItem2Provider.TreeItem2Provider, {
|
|
287
299
|
itemId: itemId,
|
|
288
300
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(Root, (0, _extends2.default)({}, rootProps, {
|
|
@@ -293,7 +305,7 @@ const TreeItem2 = exports.TreeItem2 = /*#__PURE__*/React.forwardRef(function Tre
|
|
|
293
305
|
slots: slots,
|
|
294
306
|
slotProps: slotProps
|
|
295
307
|
})
|
|
296
|
-
})), /*#__PURE__*/(0, _jsxRuntime.jsx)(Checkbox, (0, _extends2.default)({}, checkboxProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(Label, (0, _extends2.default)({}, labelProps))]
|
|
308
|
+
})), /*#__PURE__*/(0, _jsxRuntime.jsx)(Checkbox, (0, _extends2.default)({}, checkboxProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(Label, (0, _extends2.default)({}, labelProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(DragAndDropOverlay, (0, _extends2.default)({}, dragAndDropOverlayProps))]
|
|
297
309
|
})), children && /*#__PURE__*/(0, _jsxRuntime.jsx)(TreeItem2GroupTransition, (0, _extends2.default)({
|
|
298
310
|
as: GroupTransition
|
|
299
311
|
}, groupTransitionProps))]
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.TreeItem2DragAndDropOverlay = TreeItem2DragAndDropOverlay;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var React = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _styles = require("@mui/material/styles");
|
|
11
|
+
var _system = require("@mui/system");
|
|
12
|
+
var _zeroStyled = require("../internals/zero-styled");
|
|
13
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
|
+
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); }
|
|
15
|
+
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 && {}.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; }
|
|
16
|
+
const TreeItem2DragAndDropOverlayRoot = (0, _zeroStyled.styled)('div', {
|
|
17
|
+
name: 'MuiTreeItem2DragAndDropOverlay',
|
|
18
|
+
slot: 'Root',
|
|
19
|
+
overridesResolver: (props, styles) => styles.root,
|
|
20
|
+
shouldForwardProp: prop => (0, _system.shouldForwardProp)(prop) && prop !== 'action'
|
|
21
|
+
})(({
|
|
22
|
+
theme
|
|
23
|
+
}) => ({
|
|
24
|
+
position: 'absolute',
|
|
25
|
+
left: 0,
|
|
26
|
+
display: 'flex',
|
|
27
|
+
top: 0,
|
|
28
|
+
bottom: 0,
|
|
29
|
+
right: 0,
|
|
30
|
+
pointerEvents: 'none',
|
|
31
|
+
variants: [{
|
|
32
|
+
props: {
|
|
33
|
+
action: 'make-child'
|
|
34
|
+
},
|
|
35
|
+
style: {
|
|
36
|
+
marginLeft: 'calc(var(--TreeView-indentMultiplier) * var(--TreeView-itemDepth))',
|
|
37
|
+
borderRadius: theme.shape.borderRadius,
|
|
38
|
+
backgroundColor: (0, _styles.alpha)((theme.vars || theme).palette.primary.dark, 0.15)
|
|
39
|
+
}
|
|
40
|
+
}, {
|
|
41
|
+
props: {
|
|
42
|
+
action: 'reorder-above'
|
|
43
|
+
},
|
|
44
|
+
style: (0, _extends2.default)({
|
|
45
|
+
marginLeft: 'calc(var(--TreeView-indentMultiplier) * var(--TreeView-itemDepth))',
|
|
46
|
+
borderTop: `1px solid ${(0, _styles.alpha)((theme.vars || theme).palette.grey[900], 0.6)}`
|
|
47
|
+
}, theme.palette.mode === 'dark' && {
|
|
48
|
+
borderTop: `1px solid ${(0, _styles.alpha)((theme.vars || theme).palette.grey[100], 0.6)}`
|
|
49
|
+
})
|
|
50
|
+
}, {
|
|
51
|
+
props: {
|
|
52
|
+
action: 'reorder-below'
|
|
53
|
+
},
|
|
54
|
+
style: (0, _extends2.default)({
|
|
55
|
+
marginLeft: 'calc(var(--TreeView-indentMultiplier) * var(--TreeView-itemDepth))',
|
|
56
|
+
borderBottom: `1px solid ${(0, _styles.alpha)((theme.vars || theme).palette.grey[900], 0.6)}`
|
|
57
|
+
}, theme.palette.mode === 'dark' && {
|
|
58
|
+
borderBottom: `1px solid ${(0, _styles.alpha)((theme.vars || theme).palette.grey[100], 0.6)}`
|
|
59
|
+
})
|
|
60
|
+
}, {
|
|
61
|
+
props: {
|
|
62
|
+
action: 'move-to-parent'
|
|
63
|
+
},
|
|
64
|
+
style: (0, _extends2.default)({
|
|
65
|
+
marginLeft: 'calc(var(--TreeView-indentMultiplier) * calc(var(--TreeView-itemDepth) - 1))',
|
|
66
|
+
borderBottom: `1px solid ${(0, _styles.alpha)((theme.vars || theme).palette.grey[900], 0.6)}`
|
|
67
|
+
}, theme.palette.mode === 'dark' && {
|
|
68
|
+
borderBottom: `1px solid ${(0, _styles.alpha)((theme.vars || theme).palette.grey[900], 0.6)}`
|
|
69
|
+
})
|
|
70
|
+
}]
|
|
71
|
+
}));
|
|
72
|
+
function TreeItem2DragAndDropOverlay(props) {
|
|
73
|
+
if (props.action == null) {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(TreeItem2DragAndDropOverlayRoot, (0, _extends2.default)({}, props));
|
|
77
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "TreeItem2DragAndDropOverlay", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _TreeItem2DragAndDropOverlay.TreeItem2DragAndDropOverlay;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
var _TreeItem2DragAndDropOverlay = require("./TreeItem2DragAndDropOverlay");
|
|
@@ -8,8 +8,9 @@ exports.TreeItem2Icon = TreeItem2Icon;
|
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
-
var
|
|
12
|
-
var
|
|
11
|
+
var _resolveComponentProps = _interopRequireDefault(require("@mui/utils/resolveComponentProps"));
|
|
12
|
+
var _useSlotProps = _interopRequireDefault(require("@mui/utils/useSlotProps"));
|
|
13
|
+
var _TreeViewProvider = require("../internals/TreeViewProvider");
|
|
13
14
|
var _icons = require("../icons");
|
|
14
15
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
16
|
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); }
|
|
@@ -20,7 +21,7 @@ function TreeItem2Icon(props) {
|
|
|
20
21
|
slotProps,
|
|
21
22
|
status
|
|
22
23
|
} = props;
|
|
23
|
-
const context = (0,
|
|
24
|
+
const context = (0, _TreeViewProvider.useTreeViewContext)();
|
|
24
25
|
const contextIcons = (0, _extends2.default)({}, context.icons.slots, {
|
|
25
26
|
expandIcon: context.icons.slots.expandIcon ?? _icons.TreeViewExpandIcon,
|
|
26
27
|
collapseIcon: context.icons.slots.collapseIcon ?? _icons.TreeViewCollapseIcon
|
|
@@ -39,9 +40,9 @@ function TreeItem2Icon(props) {
|
|
|
39
40
|
iconName = 'endIcon';
|
|
40
41
|
}
|
|
41
42
|
const Icon = slots?.[iconName] ?? contextIcons[iconName];
|
|
42
|
-
const iconProps = (0,
|
|
43
|
+
const iconProps = (0, _useSlotProps.default)({
|
|
43
44
|
elementType: Icon,
|
|
44
|
-
externalSlotProps: tempOwnerState => (0, _extends2.default)({}, (0,
|
|
45
|
+
externalSlotProps: tempOwnerState => (0, _extends2.default)({}, (0, _resolveComponentProps.default)(contextIconProps[iconName], tempOwnerState), (0, _resolveComponentProps.default)(slotProps?.[iconName], tempOwnerState)),
|
|
45
46
|
// TODO: Add proper ownerState
|
|
46
47
|
ownerState: {}
|
|
47
48
|
});
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.TreeItem2Provider = TreeItem2Provider;
|
|
8
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
-
var
|
|
9
|
+
var _TreeViewProvider = require("../internals/TreeViewProvider");
|
|
10
10
|
function TreeItem2Provider(props) {
|
|
11
11
|
const {
|
|
12
12
|
children,
|
|
@@ -15,7 +15,7 @@ function TreeItem2Provider(props) {
|
|
|
15
15
|
const {
|
|
16
16
|
wrapItem,
|
|
17
17
|
instance
|
|
18
|
-
} = (0,
|
|
18
|
+
} = (0, _TreeViewProvider.useTreeViewContext)();
|
|
19
19
|
return wrapItem({
|
|
20
20
|
children,
|
|
21
21
|
itemId,
|
|
@@ -164,6 +164,12 @@ process.env.NODE_ENV !== "production" ? TreeView.propTypes = {
|
|
|
164
164
|
* @param {array} itemIds The ids of the expanded items.
|
|
165
165
|
*/
|
|
166
166
|
onExpandedItemsChange: _propTypes.default.func,
|
|
167
|
+
/**
|
|
168
|
+
* Callback fired when the `content` slot of a given tree item is clicked.
|
|
169
|
+
* @param {React.MouseEvent} event The DOM event that triggered the change.
|
|
170
|
+
* @param {string} itemId The id of the focused item.
|
|
171
|
+
*/
|
|
172
|
+
onItemClick: _propTypes.default.func,
|
|
167
173
|
/**
|
|
168
174
|
* Callback fired when a tree item is expanded or collapsed.
|
|
169
175
|
* @param {React.SyntheticEvent} event The DOM event that triggered the change.
|
|
@@ -172,10 +178,9 @@ process.env.NODE_ENV !== "production" ? TreeView.propTypes = {
|
|
|
172
178
|
*/
|
|
173
179
|
onItemExpansionToggle: _propTypes.default.func,
|
|
174
180
|
/**
|
|
175
|
-
* Callback fired when tree
|
|
176
|
-
* @param {React.SyntheticEvent} event The DOM event that triggered the change. **Warning**: This is a generic event not a focus event.
|
|
181
|
+
* Callback fired when a given tree item is focused.
|
|
182
|
+
* @param {React.SyntheticEvent | null} event The DOM event that triggered the change. **Warning**: This is a generic event not a focus event.
|
|
177
183
|
* @param {string} itemId The id of the focused item.
|
|
178
|
-
* @param {string} value of the focused item.
|
|
179
184
|
*/
|
|
180
185
|
onItemFocus: _propTypes.default.func,
|
|
181
186
|
/**
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.useTreeItem2Utils = void 0;
|
|
7
|
-
var
|
|
7
|
+
var _TreeViewProvider = require("../../internals/TreeViewProvider");
|
|
8
8
|
const isItemExpandable = reactChildren => {
|
|
9
9
|
if (Array.isArray(reactChildren)) {
|
|
10
10
|
return reactChildren.length > 0 && reactChildren.some(isItemExpandable);
|
|
@@ -29,7 +29,7 @@ const useTreeItem2Utils = ({
|
|
|
29
29
|
selection: {
|
|
30
30
|
multiSelect
|
|
31
31
|
}
|
|
32
|
-
} = (0,
|
|
32
|
+
} = (0, _TreeViewProvider.useTreeViewContext)();
|
|
33
33
|
const status = {
|
|
34
34
|
expandable: isItemExpandable(children),
|
|
35
35
|
expanded: instance.isItemExpanded(itemId),
|
package/node/index.js
CHANGED
|
@@ -9,4 +9,11 @@ Object.defineProperty(exports, "TreeViewProvider", {
|
|
|
9
9
|
return _TreeViewProvider.TreeViewProvider;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
-
|
|
12
|
+
Object.defineProperty(exports, "useTreeViewContext", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _useTreeViewContext.useTreeViewContext;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
var _TreeViewProvider = require("./TreeViewProvider");
|
|
19
|
+
var _useTreeViewContext = require("./useTreeViewContext");
|
package/node/internals/index.js
CHANGED
|
@@ -3,16 +3,28 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
Object.defineProperty(exports, "TREE_VIEW_ROOT_PARENT_ID", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _useTreeViewItems.TREE_VIEW_ROOT_PARENT_ID;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
6
12
|
Object.defineProperty(exports, "TreeViewProvider", {
|
|
7
13
|
enumerable: true,
|
|
8
14
|
get: function () {
|
|
9
15
|
return _TreeViewProvider.TreeViewProvider;
|
|
10
16
|
}
|
|
11
17
|
});
|
|
12
|
-
Object.defineProperty(exports, "
|
|
18
|
+
Object.defineProperty(exports, "buildSiblingIndexes", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _useTreeViewItems.buildSiblingIndexes;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "isTargetInDescendants", {
|
|
13
25
|
enumerable: true,
|
|
14
26
|
get: function () {
|
|
15
|
-
return
|
|
27
|
+
return _tree.isTargetInDescendants;
|
|
16
28
|
}
|
|
17
29
|
});
|
|
18
30
|
Object.defineProperty(exports, "unstable_resetCleanupTracking", {
|
|
@@ -27,6 +39,12 @@ Object.defineProperty(exports, "useTreeView", {
|
|
|
27
39
|
return _useTreeView.useTreeView;
|
|
28
40
|
}
|
|
29
41
|
});
|
|
42
|
+
Object.defineProperty(exports, "useTreeViewContext", {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
get: function () {
|
|
45
|
+
return _TreeViewProvider.useTreeViewContext;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
30
48
|
Object.defineProperty(exports, "useTreeViewExpansion", {
|
|
31
49
|
enumerable: true,
|
|
32
50
|
get: function () {
|
|
@@ -69,6 +87,12 @@ Object.defineProperty(exports, "useTreeViewSelection", {
|
|
|
69
87
|
return _useTreeViewSelection.useTreeViewSelection;
|
|
70
88
|
}
|
|
71
89
|
});
|
|
90
|
+
Object.defineProperty(exports, "warnOnce", {
|
|
91
|
+
enumerable: true,
|
|
92
|
+
get: function () {
|
|
93
|
+
return _warning.warnOnce;
|
|
94
|
+
}
|
|
95
|
+
});
|
|
72
96
|
var _useTreeView = require("./useTreeView");
|
|
73
97
|
var _TreeViewProvider = require("./TreeViewProvider");
|
|
74
98
|
var _useInstanceEventHandler = require("./hooks/useInstanceEventHandler");
|
|
@@ -79,4 +103,5 @@ var _useTreeViewKeyboardNavigation = require("./plugins/useTreeViewKeyboardNavig
|
|
|
79
103
|
var _useTreeViewIcons = require("./plugins/useTreeViewIcons");
|
|
80
104
|
var _useTreeViewItems = require("./plugins/useTreeViewItems");
|
|
81
105
|
var _useTreeViewJSXItems = require("./plugins/useTreeViewJSXItems");
|
|
106
|
+
var _tree = require("./utils/tree");
|
|
82
107
|
var _warning = require("./utils/warning");
|
|
@@ -25,6 +25,17 @@ Object.keys(_plugin).forEach(function (key) {
|
|
|
25
25
|
}
|
|
26
26
|
});
|
|
27
27
|
});
|
|
28
|
+
var _itemPlugin = require("./itemPlugin");
|
|
29
|
+
Object.keys(_itemPlugin).forEach(function (key) {
|
|
30
|
+
if (key === "default" || key === "__esModule") return;
|
|
31
|
+
if (key in exports && exports[key] === _itemPlugin[key]) return;
|
|
32
|
+
Object.defineProperty(exports, key, {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function () {
|
|
35
|
+
return _itemPlugin[key];
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
});
|
|
28
39
|
var _treeView = require("./treeView");
|
|
29
40
|
Object.keys(_treeView).forEach(function (key) {
|
|
30
41
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -35,4 +46,15 @@ Object.keys(_treeView).forEach(function (key) {
|
|
|
35
46
|
return _treeView[key];
|
|
36
47
|
}
|
|
37
48
|
});
|
|
49
|
+
});
|
|
50
|
+
var _MuiCancellableEvent = require("./MuiCancellableEvent");
|
|
51
|
+
Object.keys(_MuiCancellableEvent).forEach(function (key) {
|
|
52
|
+
if (key === "default" || key === "__esModule") return;
|
|
53
|
+
if (key in exports && exports[key] === _MuiCancellableEvent[key]) return;
|
|
54
|
+
Object.defineProperty(exports, key, {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
get: function () {
|
|
57
|
+
return _MuiCancellableEvent[key];
|
|
58
|
+
}
|
|
59
|
+
});
|
|
38
60
|
});
|
|
@@ -3,10 +3,23 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
Object.defineProperty(exports, "TREE_VIEW_ROOT_PARENT_ID", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _useTreeViewItems2.TREE_VIEW_ROOT_PARENT_ID;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "buildSiblingIndexes", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _useTreeViewItems2.buildSiblingIndexes;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
6
18
|
Object.defineProperty(exports, "useTreeViewItems", {
|
|
7
19
|
enumerable: true,
|
|
8
20
|
get: function () {
|
|
9
21
|
return _useTreeViewItems.useTreeViewItems;
|
|
10
22
|
}
|
|
11
23
|
});
|
|
12
|
-
var _useTreeViewItems = require("./useTreeViewItems");
|
|
24
|
+
var _useTreeViewItems = require("./useTreeViewItems");
|
|
25
|
+
var _useTreeViewItems2 = require("./useTreeViewItems.utils");
|
|
@@ -193,8 +193,11 @@ const useTreeViewItems = ({
|
|
|
193
193
|
areItemUpdatesPrevented
|
|
194
194
|
},
|
|
195
195
|
contextValue: {
|
|
196
|
-
|
|
197
|
-
|
|
196
|
+
items: {
|
|
197
|
+
onItemClick: params.onItemClick,
|
|
198
|
+
disabledItemsFocusable: params.disabledItemsFocusable,
|
|
199
|
+
indentationAtItemLevel: experimentalFeatures.indentationAtItemLevel ?? false
|
|
200
|
+
}
|
|
198
201
|
}
|
|
199
202
|
};
|
|
200
203
|
};
|
|
@@ -226,5 +229,6 @@ useTreeViewItems.params = {
|
|
|
226
229
|
isItemDisabled: true,
|
|
227
230
|
getItemLabel: true,
|
|
228
231
|
getItemId: true,
|
|
232
|
+
onItemClick: true,
|
|
229
233
|
itemChildrenIndentation: true
|
|
230
234
|
};
|
|
@@ -11,7 +11,7 @@ var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallb
|
|
|
11
11
|
var _useForkRef = _interopRequireDefault(require("@mui/utils/useForkRef"));
|
|
12
12
|
var _useEnhancedEffect = _interopRequireDefault(require("@mui/utils/useEnhancedEffect"));
|
|
13
13
|
var _publishTreeViewEvent = require("../../utils/publishTreeViewEvent");
|
|
14
|
-
var
|
|
14
|
+
var _TreeViewProvider = require("../../TreeViewProvider");
|
|
15
15
|
var _TreeViewChildrenItemProvider = require("../../TreeViewProvider/TreeViewChildrenItemProvider");
|
|
16
16
|
var _useTreeViewItems = require("../useTreeViewItems/useTreeViewItems.utils");
|
|
17
17
|
var _TreeViewItemDepthContext = require("../../TreeViewItemDepthContext");
|
|
@@ -109,7 +109,7 @@ const useTreeViewJSXItemsItemPlugin = ({
|
|
|
109
109
|
}) => {
|
|
110
110
|
const {
|
|
111
111
|
instance
|
|
112
|
-
} = (0,
|
|
112
|
+
} = (0, _TreeViewProvider.useTreeViewContext)();
|
|
113
113
|
const {
|
|
114
114
|
children,
|
|
115
115
|
disabled = false,
|
package/node/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js
CHANGED
|
@@ -69,7 +69,7 @@ const useTreeViewKeyboardNavigation = ({
|
|
|
69
69
|
if (event.defaultMuiPrevented) {
|
|
70
70
|
return;
|
|
71
71
|
}
|
|
72
|
-
if (event.altKey || event.
|
|
72
|
+
if (event.altKey || (0, _tree.isTargetInDescendants)(event.target, event.currentTarget)) {
|
|
73
73
|
return;
|
|
74
74
|
}
|
|
75
75
|
const ctrlPressed = event.ctrlKey || event.metaKey;
|
|
@@ -13,6 +13,8 @@ const useTreeViewBuildContext = ({
|
|
|
13
13
|
const runItemPlugins = itemPluginProps => {
|
|
14
14
|
let finalRootRef = null;
|
|
15
15
|
let finalContentRef = null;
|
|
16
|
+
const pluginPropEnhancers = [];
|
|
17
|
+
const pluginPropEnhancersNames = {};
|
|
16
18
|
plugins.forEach(plugin => {
|
|
17
19
|
if (!plugin.itemPlugin) {
|
|
18
20
|
return;
|
|
@@ -28,10 +30,30 @@ const useTreeViewBuildContext = ({
|
|
|
28
30
|
if (itemPluginResponse?.contentRef) {
|
|
29
31
|
finalContentRef = itemPluginResponse.contentRef;
|
|
30
32
|
}
|
|
33
|
+
if (itemPluginResponse?.propsEnhancers) {
|
|
34
|
+
pluginPropEnhancers.push(itemPluginResponse.propsEnhancers);
|
|
35
|
+
|
|
36
|
+
// Prepare a list of all the slots which are enhanced by at least one plugin
|
|
37
|
+
Object.keys(itemPluginResponse.propsEnhancers).forEach(propsEnhancerName => {
|
|
38
|
+
pluginPropEnhancersNames[propsEnhancerName] = true;
|
|
39
|
+
});
|
|
40
|
+
}
|
|
31
41
|
});
|
|
42
|
+
const resolvePropsEnhancer = currentSlotName => currentSlotParams => {
|
|
43
|
+
const enhancedProps = {};
|
|
44
|
+
pluginPropEnhancers.forEach(propsEnhancersForCurrentPlugin => {
|
|
45
|
+
const propsEnhancerForCurrentPluginAndSlot = propsEnhancersForCurrentPlugin[currentSlotName];
|
|
46
|
+
if (propsEnhancerForCurrentPluginAndSlot != null) {
|
|
47
|
+
Object.assign(enhancedProps, propsEnhancerForCurrentPluginAndSlot(currentSlotParams));
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
return enhancedProps;
|
|
51
|
+
};
|
|
52
|
+
const propsEnhancers = Object.fromEntries(Object.keys(pluginPropEnhancersNames).map(propEnhancerName => [propEnhancerName, resolvePropsEnhancer(propEnhancerName)]));
|
|
32
53
|
return {
|
|
33
54
|
contentRef: finalContentRef,
|
|
34
|
-
rootRef: finalRootRef
|
|
55
|
+
rootRef: finalRootRef,
|
|
56
|
+
propsEnhancers
|
|
35
57
|
};
|
|
36
58
|
};
|
|
37
59
|
const wrapItem = ({
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.getPreviousNavigableItem = exports.getNonDisabledItemsInRange = exports.getNextNavigableItem = exports.getLastNavigableItem = exports.getFirstNavigableItem = exports.getAllNavigableItems = exports.findOrderInTremauxTree = void 0;
|
|
6
|
+
exports.isTargetInDescendants = exports.getPreviousNavigableItem = exports.getNonDisabledItemsInRange = exports.getNextNavigableItem = exports.getLastNavigableItem = exports.getFirstNavigableItem = exports.getAllNavigableItems = exports.findOrderInTremauxTree = void 0;
|
|
7
7
|
const getLastNavigableItemInArray = (instance, items) => {
|
|
8
8
|
// Equivalent to Array.prototype.findLastIndex
|
|
9
9
|
let itemIndex = items.length - 1;
|
|
@@ -194,4 +194,16 @@ const getAllNavigableItems = instance => {
|
|
|
194
194
|
}
|
|
195
195
|
return navigableItems;
|
|
196
196
|
};
|
|
197
|
-
|
|
197
|
+
|
|
198
|
+
/**
|
|
199
|
+
* Checks if the target is in a descendant of this item.
|
|
200
|
+
* This can prevent from firing some logic on the ancestors on the interacted item when the event handler is on the root.
|
|
201
|
+
* @param {HTMLElement} target The target to check
|
|
202
|
+
* @param {HTMLElement | null} itemRoot The root of the item to check if the event target is in its descendants
|
|
203
|
+
* @returns {boolean} Whether the target is in a descendant of this item
|
|
204
|
+
*/
|
|
205
|
+
exports.getAllNavigableItems = getAllNavigableItems;
|
|
206
|
+
const isTargetInDescendants = (target, itemRoot) => {
|
|
207
|
+
return itemRoot !== target.closest('*[role="treeitem"]');
|
|
208
|
+
};
|
|
209
|
+
exports.isTargetInDescendants = isTargetInDescendants;
|
|
@@ -3,19 +3,26 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
exports.clearWarningsCache = clearWarningsCache;
|
|
7
|
+
exports.warnOnce = warnOnce;
|
|
8
|
+
const warnedOnceCache = new Set();
|
|
9
|
+
|
|
10
|
+
// TODO move to @mui/x-internals
|
|
11
|
+
// TODO eventually move to @base_ui/internals. Base UI, etc. too need this helper.
|
|
12
|
+
function warnOnce(message, gravity = 'warning') {
|
|
13
|
+
if (process.env.NODE_ENV === 'production') {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
9
16
|
const cleanMessage = Array.isArray(message) ? message.join('\n') : message;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
console.warn(cleanMessage);
|
|
17
|
-
}
|
|
17
|
+
if (!warnedOnceCache.has(cleanMessage)) {
|
|
18
|
+
warnedOnceCache.add(cleanMessage);
|
|
19
|
+
if (gravity === 'error') {
|
|
20
|
+
console.error(cleanMessage);
|
|
21
|
+
} else {
|
|
22
|
+
console.warn(cleanMessage);
|
|
18
23
|
}
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
function clearWarningsCache() {
|
|
27
|
+
warnedOnceCache.clear();
|
|
28
|
+
}
|