@mui/x-tree-view 6.0.0-alpha.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 +3682 -0
- package/LICENSE +21 -0
- package/README.md +34 -0
- package/TreeItem/TreeItem.d.ts +13 -0
- package/TreeItem/TreeItem.js +392 -0
- package/TreeItem/TreeItem.types.d.ts +84 -0
- package/TreeItem/TreeItem.types.js +1 -0
- package/TreeItem/TreeItemContent.d.ts +52 -0
- package/TreeItem/TreeItemContent.js +101 -0
- package/TreeItem/index.d.ts +5 -0
- package/TreeItem/index.js +4 -0
- package/TreeItem/package.json +6 -0
- package/TreeItem/treeItemClasses.d.ts +23 -0
- package/TreeItem/treeItemClasses.js +6 -0
- package/TreeItem/useTreeItem.d.ts +10 -0
- package/TreeItem/useTreeItem.js +68 -0
- package/TreeView/TreeView.d.ts +14 -0
- package/TreeView/TreeView.js +854 -0
- package/TreeView/TreeView.types.d.ts +170 -0
- package/TreeView/TreeView.types.js +1 -0
- package/TreeView/TreeViewContext.d.ts +6 -0
- package/TreeView/TreeViewContext.js +31 -0
- package/TreeView/descendants.d.ts +42 -0
- package/TreeView/descendants.js +186 -0
- package/TreeView/index.d.ts +3 -0
- package/TreeView/index.js +3 -0
- package/TreeView/package.json +6 -0
- package/TreeView/treeViewClasses.d.ts +7 -0
- package/TreeView/treeViewClasses.js +6 -0
- package/index.d.ts +2 -0
- package/index.js +9 -0
- package/internals/models.d.ts +1 -0
- package/internals/models.js +1 -0
- package/legacy/TreeItem/TreeItem.js +391 -0
- package/legacy/TreeItem/TreeItem.types.js +1 -0
- package/legacy/TreeItem/TreeItemContent.js +98 -0
- package/legacy/TreeItem/index.js +4 -0
- package/legacy/TreeItem/treeItemClasses.js +6 -0
- package/legacy/TreeItem/useTreeItem.js +67 -0
- package/legacy/TreeView/TreeView.js +907 -0
- package/legacy/TreeView/TreeView.types.js +1 -0
- package/legacy/TreeView/TreeViewContext.js +41 -0
- package/legacy/TreeView/descendants.js +199 -0
- package/legacy/TreeView/index.js +3 -0
- package/legacy/TreeView/treeViewClasses.js +6 -0
- package/legacy/index.js +9 -0
- package/legacy/internals/models.js +1 -0
- package/modern/TreeItem/TreeItem.js +391 -0
- package/modern/TreeItem/TreeItem.types.js +1 -0
- package/modern/TreeItem/TreeItemContent.js +101 -0
- package/modern/TreeItem/index.js +4 -0
- package/modern/TreeItem/treeItemClasses.js +6 -0
- package/modern/TreeItem/useTreeItem.js +68 -0
- package/modern/TreeView/TreeView.js +853 -0
- package/modern/TreeView/TreeView.types.js +1 -0
- package/modern/TreeView/TreeViewContext.js +31 -0
- package/modern/TreeView/descendants.js +186 -0
- package/modern/TreeView/index.js +3 -0
- package/modern/TreeView/treeViewClasses.js +6 -0
- package/modern/index.js +9 -0
- package/modern/internals/models.js +1 -0
- package/node/TreeItem/TreeItem.js +400 -0
- package/node/TreeItem/TreeItem.types.js +5 -0
- package/node/TreeItem/TreeItemContent.js +109 -0
- package/node/TreeItem/index.js +38 -0
- package/node/TreeItem/treeItemClasses.js +15 -0
- package/node/TreeItem/useTreeItem.js +76 -0
- package/node/TreeView/TreeView.js +862 -0
- package/node/TreeView/TreeView.types.js +5 -0
- package/node/TreeView/TreeViewContext.js +40 -0
- package/node/TreeView/descendants.js +194 -0
- package/node/TreeView/index.js +27 -0
- package/node/TreeView/treeViewClasses.js +15 -0
- package/node/index.js +34 -0
- package/node/internals/models.js +5 -0
- package/package.json +59 -0
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.TreeItemContent = void 0;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
10
|
+
var React = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
12
|
+
var _clsx = _interopRequireDefault(require("clsx"));
|
|
13
|
+
var _useTreeItem = require("./useTreeItem");
|
|
14
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
|
+
const _excluded = ["classes", "className", "displayIcon", "expansionIcon", "icon", "label", "nodeId", "onClick", "onMouseDown"];
|
|
16
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
17
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
18
|
+
/**
|
|
19
|
+
* @ignore - internal component.
|
|
20
|
+
*/
|
|
21
|
+
const TreeItemContent = /*#__PURE__*/React.forwardRef(function TreeItemContent(props, ref) {
|
|
22
|
+
const {
|
|
23
|
+
classes,
|
|
24
|
+
className,
|
|
25
|
+
displayIcon,
|
|
26
|
+
expansionIcon,
|
|
27
|
+
icon: iconProp,
|
|
28
|
+
label,
|
|
29
|
+
nodeId,
|
|
30
|
+
onClick,
|
|
31
|
+
onMouseDown
|
|
32
|
+
} = props,
|
|
33
|
+
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
34
|
+
const {
|
|
35
|
+
disabled,
|
|
36
|
+
expanded,
|
|
37
|
+
selected,
|
|
38
|
+
focused,
|
|
39
|
+
handleExpansion,
|
|
40
|
+
handleSelection,
|
|
41
|
+
preventSelection
|
|
42
|
+
} = (0, _useTreeItem.useTreeItem)(nodeId);
|
|
43
|
+
const icon = iconProp || expansionIcon || displayIcon;
|
|
44
|
+
const handleMouseDown = event => {
|
|
45
|
+
preventSelection(event);
|
|
46
|
+
if (onMouseDown) {
|
|
47
|
+
onMouseDown(event);
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
const handleClick = event => {
|
|
51
|
+
handleExpansion(event);
|
|
52
|
+
handleSelection(event);
|
|
53
|
+
if (onClick) {
|
|
54
|
+
onClick(event);
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
return (
|
|
58
|
+
/*#__PURE__*/
|
|
59
|
+
/* eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions -- Key event is handled by the TreeView */
|
|
60
|
+
(0, _jsxRuntime.jsxs)("div", (0, _extends2.default)({}, other, {
|
|
61
|
+
className: (0, _clsx.default)(className, classes.root, expanded && classes.expanded, selected && classes.selected, focused && classes.focused, disabled && classes.disabled),
|
|
62
|
+
onClick: handleClick,
|
|
63
|
+
onMouseDown: handleMouseDown,
|
|
64
|
+
ref: ref,
|
|
65
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
66
|
+
className: classes.iconContainer,
|
|
67
|
+
children: icon
|
|
68
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
69
|
+
className: classes.label,
|
|
70
|
+
children: label
|
|
71
|
+
})]
|
|
72
|
+
}))
|
|
73
|
+
);
|
|
74
|
+
});
|
|
75
|
+
exports.TreeItemContent = TreeItemContent;
|
|
76
|
+
process.env.NODE_ENV !== "production" ? TreeItemContent.propTypes = {
|
|
77
|
+
// ----------------------------- Warning --------------------------------
|
|
78
|
+
// | These PropTypes are generated from the TypeScript type definitions |
|
|
79
|
+
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
80
|
+
// ----------------------------------------------------------------------
|
|
81
|
+
/**
|
|
82
|
+
* Override or extend the styles applied to the component.
|
|
83
|
+
*/
|
|
84
|
+
classes: _propTypes.default.object.isRequired,
|
|
85
|
+
/**
|
|
86
|
+
* className applied to the root element.
|
|
87
|
+
*/
|
|
88
|
+
className: _propTypes.default.string,
|
|
89
|
+
/**
|
|
90
|
+
* The icon to display next to the tree node's label. Either a parent or end icon.
|
|
91
|
+
*/
|
|
92
|
+
displayIcon: _propTypes.default.node,
|
|
93
|
+
/**
|
|
94
|
+
* The icon to display next to the tree node's label. Either an expansion or collapse icon.
|
|
95
|
+
*/
|
|
96
|
+
expansionIcon: _propTypes.default.node,
|
|
97
|
+
/**
|
|
98
|
+
* The icon to display next to the tree node's label.
|
|
99
|
+
*/
|
|
100
|
+
icon: _propTypes.default.node,
|
|
101
|
+
/**
|
|
102
|
+
* The tree node label.
|
|
103
|
+
*/
|
|
104
|
+
label: _propTypes.default.node,
|
|
105
|
+
/**
|
|
106
|
+
* The id of the node.
|
|
107
|
+
*/
|
|
108
|
+
nodeId: _propTypes.default.string.isRequired
|
|
109
|
+
} : void 0;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _TreeItem = require("./TreeItem");
|
|
7
|
+
Object.keys(_TreeItem).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _TreeItem[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _TreeItem[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
var _useTreeItem = require("./useTreeItem");
|
|
18
|
+
Object.keys(_useTreeItem).forEach(function (key) {
|
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
|
20
|
+
if (key in exports && exports[key] === _useTreeItem[key]) return;
|
|
21
|
+
Object.defineProperty(exports, key, {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () {
|
|
24
|
+
return _useTreeItem[key];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
var _treeItemClasses = require("./treeItemClasses");
|
|
29
|
+
Object.keys(_treeItemClasses).forEach(function (key) {
|
|
30
|
+
if (key === "default" || key === "__esModule") return;
|
|
31
|
+
if (key in exports && exports[key] === _treeItemClasses[key]) return;
|
|
32
|
+
Object.defineProperty(exports, key, {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function () {
|
|
35
|
+
return _treeItemClasses[key];
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
});
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.getTreeItemUtilityClass = getTreeItemUtilityClass;
|
|
8
|
+
exports.treeItemClasses = void 0;
|
|
9
|
+
var _generateUtilityClass = _interopRequireDefault(require("@mui/utils/generateUtilityClass"));
|
|
10
|
+
var _generateUtilityClasses = _interopRequireDefault(require("@mui/utils/generateUtilityClasses"));
|
|
11
|
+
function getTreeItemUtilityClass(slot) {
|
|
12
|
+
return (0, _generateUtilityClass.default)('MuiTreeItem', slot);
|
|
13
|
+
}
|
|
14
|
+
const treeItemClasses = (0, _generateUtilityClasses.default)('MuiTreeItem', ['root', 'group', 'content', 'expanded', 'selected', 'focused', 'disabled', 'iconContainer', 'label']);
|
|
15
|
+
exports.treeItemClasses = treeItemClasses;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useTreeItem = useTreeItem;
|
|
7
|
+
var React = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _TreeViewContext = require("../TreeView/TreeViewContext");
|
|
9
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
10
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
11
|
+
function useTreeItem(nodeId) {
|
|
12
|
+
const {
|
|
13
|
+
focus,
|
|
14
|
+
isExpanded,
|
|
15
|
+
isExpandable,
|
|
16
|
+
isFocused,
|
|
17
|
+
isDisabled,
|
|
18
|
+
isSelected,
|
|
19
|
+
multiSelect,
|
|
20
|
+
selectNode,
|
|
21
|
+
selectRange,
|
|
22
|
+
toggleExpansion
|
|
23
|
+
} = React.useContext(_TreeViewContext.TreeViewContext);
|
|
24
|
+
const expandable = isExpandable ? isExpandable(nodeId) : false;
|
|
25
|
+
const expanded = isExpanded ? isExpanded(nodeId) : false;
|
|
26
|
+
const focused = isFocused ? isFocused(nodeId) : false;
|
|
27
|
+
const disabled = isDisabled ? isDisabled(nodeId) : false;
|
|
28
|
+
const selected = isSelected ? isSelected(nodeId) : false;
|
|
29
|
+
const handleExpansion = event => {
|
|
30
|
+
if (!disabled) {
|
|
31
|
+
if (!focused) {
|
|
32
|
+
focus(event, nodeId);
|
|
33
|
+
}
|
|
34
|
+
const multiple = multiSelect && (event.shiftKey || event.ctrlKey || event.metaKey);
|
|
35
|
+
|
|
36
|
+
// If already expanded and trying to toggle selection don't close
|
|
37
|
+
if (expandable && !(multiple && isExpanded(nodeId))) {
|
|
38
|
+
toggleExpansion(event, nodeId);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
const handleSelection = event => {
|
|
43
|
+
if (!disabled) {
|
|
44
|
+
if (!focused) {
|
|
45
|
+
focus(event, nodeId);
|
|
46
|
+
}
|
|
47
|
+
const multiple = multiSelect && (event.shiftKey || event.ctrlKey || event.metaKey);
|
|
48
|
+
if (multiple) {
|
|
49
|
+
if (event.shiftKey) {
|
|
50
|
+
selectRange(event, {
|
|
51
|
+
end: nodeId
|
|
52
|
+
});
|
|
53
|
+
} else {
|
|
54
|
+
selectNode(event, nodeId, true);
|
|
55
|
+
}
|
|
56
|
+
} else {
|
|
57
|
+
selectNode(event, nodeId);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
const preventSelection = event => {
|
|
62
|
+
if (event.shiftKey || event.ctrlKey || event.metaKey || disabled) {
|
|
63
|
+
// Prevent text selection
|
|
64
|
+
event.preventDefault();
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
return {
|
|
68
|
+
disabled,
|
|
69
|
+
expanded,
|
|
70
|
+
selected,
|
|
71
|
+
focused,
|
|
72
|
+
handleExpansion,
|
|
73
|
+
handleSelection,
|
|
74
|
+
preventSelection
|
|
75
|
+
};
|
|
76
|
+
}
|