@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.
Files changed (76) hide show
  1. package/CHANGELOG.md +3682 -0
  2. package/LICENSE +21 -0
  3. package/README.md +34 -0
  4. package/TreeItem/TreeItem.d.ts +13 -0
  5. package/TreeItem/TreeItem.js +392 -0
  6. package/TreeItem/TreeItem.types.d.ts +84 -0
  7. package/TreeItem/TreeItem.types.js +1 -0
  8. package/TreeItem/TreeItemContent.d.ts +52 -0
  9. package/TreeItem/TreeItemContent.js +101 -0
  10. package/TreeItem/index.d.ts +5 -0
  11. package/TreeItem/index.js +4 -0
  12. package/TreeItem/package.json +6 -0
  13. package/TreeItem/treeItemClasses.d.ts +23 -0
  14. package/TreeItem/treeItemClasses.js +6 -0
  15. package/TreeItem/useTreeItem.d.ts +10 -0
  16. package/TreeItem/useTreeItem.js +68 -0
  17. package/TreeView/TreeView.d.ts +14 -0
  18. package/TreeView/TreeView.js +854 -0
  19. package/TreeView/TreeView.types.d.ts +170 -0
  20. package/TreeView/TreeView.types.js +1 -0
  21. package/TreeView/TreeViewContext.d.ts +6 -0
  22. package/TreeView/TreeViewContext.js +31 -0
  23. package/TreeView/descendants.d.ts +42 -0
  24. package/TreeView/descendants.js +186 -0
  25. package/TreeView/index.d.ts +3 -0
  26. package/TreeView/index.js +3 -0
  27. package/TreeView/package.json +6 -0
  28. package/TreeView/treeViewClasses.d.ts +7 -0
  29. package/TreeView/treeViewClasses.js +6 -0
  30. package/index.d.ts +2 -0
  31. package/index.js +9 -0
  32. package/internals/models.d.ts +1 -0
  33. package/internals/models.js +1 -0
  34. package/legacy/TreeItem/TreeItem.js +391 -0
  35. package/legacy/TreeItem/TreeItem.types.js +1 -0
  36. package/legacy/TreeItem/TreeItemContent.js +98 -0
  37. package/legacy/TreeItem/index.js +4 -0
  38. package/legacy/TreeItem/treeItemClasses.js +6 -0
  39. package/legacy/TreeItem/useTreeItem.js +67 -0
  40. package/legacy/TreeView/TreeView.js +907 -0
  41. package/legacy/TreeView/TreeView.types.js +1 -0
  42. package/legacy/TreeView/TreeViewContext.js +41 -0
  43. package/legacy/TreeView/descendants.js +199 -0
  44. package/legacy/TreeView/index.js +3 -0
  45. package/legacy/TreeView/treeViewClasses.js +6 -0
  46. package/legacy/index.js +9 -0
  47. package/legacy/internals/models.js +1 -0
  48. package/modern/TreeItem/TreeItem.js +391 -0
  49. package/modern/TreeItem/TreeItem.types.js +1 -0
  50. package/modern/TreeItem/TreeItemContent.js +101 -0
  51. package/modern/TreeItem/index.js +4 -0
  52. package/modern/TreeItem/treeItemClasses.js +6 -0
  53. package/modern/TreeItem/useTreeItem.js +68 -0
  54. package/modern/TreeView/TreeView.js +853 -0
  55. package/modern/TreeView/TreeView.types.js +1 -0
  56. package/modern/TreeView/TreeViewContext.js +31 -0
  57. package/modern/TreeView/descendants.js +186 -0
  58. package/modern/TreeView/index.js +3 -0
  59. package/modern/TreeView/treeViewClasses.js +6 -0
  60. package/modern/index.js +9 -0
  61. package/modern/internals/models.js +1 -0
  62. package/node/TreeItem/TreeItem.js +400 -0
  63. package/node/TreeItem/TreeItem.types.js +5 -0
  64. package/node/TreeItem/TreeItemContent.js +109 -0
  65. package/node/TreeItem/index.js +38 -0
  66. package/node/TreeItem/treeItemClasses.js +15 -0
  67. package/node/TreeItem/useTreeItem.js +76 -0
  68. package/node/TreeView/TreeView.js +862 -0
  69. package/node/TreeView/TreeView.types.js +5 -0
  70. package/node/TreeView/TreeViewContext.js +40 -0
  71. package/node/TreeView/descendants.js +194 -0
  72. package/node/TreeView/index.js +27 -0
  73. package/node/TreeView/treeViewClasses.js +15 -0
  74. package/node/index.js +34 -0
  75. package/node/internals/models.js +5 -0
  76. 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
+ }