@mui/x-tree-view 7.0.0-alpha.1 → 7.0.0-alpha.8
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 +1380 -188
- package/README.md +0 -1
- package/RichTreeView/RichTreeView.d.ts +20 -0
- package/RichTreeView/RichTreeView.js +285 -0
- package/RichTreeView/RichTreeView.types.d.ts +55 -0
- package/RichTreeView/RichTreeView.types.js +1 -0
- package/RichTreeView/index.d.ts +3 -0
- package/RichTreeView/index.js +3 -0
- package/RichTreeView/package.json +6 -0
- package/RichTreeView/richTreeViewClasses.d.ts +7 -0
- package/RichTreeView/richTreeViewClasses.js +6 -0
- package/SimpleTreeView/SimpleTreeView.d.ts +20 -0
- package/SimpleTreeView/SimpleTreeView.js +235 -0
- package/SimpleTreeView/SimpleTreeView.plugins.d.ts +6 -0
- package/SimpleTreeView/SimpleTreeView.plugins.js +5 -0
- package/SimpleTreeView/SimpleTreeView.types.d.ts +38 -0
- package/SimpleTreeView/SimpleTreeView.types.js +1 -0
- package/SimpleTreeView/index.d.ts +3 -0
- package/SimpleTreeView/index.js +3 -0
- package/SimpleTreeView/package.json +6 -0
- package/SimpleTreeView/simpleTreeViewClasses.d.ts +7 -0
- package/SimpleTreeView/simpleTreeViewClasses.js +6 -0
- package/TreeItem/TreeItem.js +44 -89
- package/TreeItem/TreeItem.types.d.ts +2 -1
- package/TreeItem/index.d.ts +2 -2
- package/TreeItem/index.js +2 -2
- package/TreeItem/useTreeItem.js +5 -5
- package/TreeView/TreeView.d.ts +4 -0
- package/TreeView/TreeView.js +80 -87
- package/TreeView/TreeView.types.d.ts +4 -26
- package/TreeView/index.d.ts +1 -1
- package/index.d.ts +3 -0
- package/index.js +5 -2
- package/internals/TreeViewProvider/TreeViewContext.d.ts +1 -2
- package/internals/TreeViewProvider/TreeViewContext.js +1 -14
- package/internals/TreeViewProvider/TreeViewProvider.types.d.ts +3 -3
- package/internals/TreeViewProvider/useTreeViewContext.js +7 -1
- package/internals/corePlugins/corePlugins.d.ts +1 -1
- package/internals/corePlugins/corePlugins.js +1 -1
- package/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.d.ts +0 -5
- package/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +2 -7
- package/internals/hooks/useLazyRef.d.ts +2 -0
- package/internals/hooks/useLazyRef.js +11 -0
- package/internals/hooks/useOnMount.d.ts +2 -0
- package/internals/hooks/useOnMount.js +7 -0
- package/internals/hooks/useTimeout.d.ts +9 -0
- package/internals/hooks/useTimeout.js +28 -0
- package/internals/models/MuiCancellableEvent.d.ts +4 -0
- package/internals/models/MuiCancellableEvent.js +1 -0
- package/internals/models/plugin.d.ts +24 -0
- package/internals/models/treeView.d.ts +5 -1
- package/internals/plugins/defaultPlugins.d.ts +3 -2
- package/internals/plugins/defaultPlugins.js +2 -1
- package/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.js +14 -6
- package/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.types.d.ts +1 -6
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +32 -17
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +12 -5
- package/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +16 -6
- package/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +4 -1
- package/internals/plugins/useTreeViewId/index.d.ts +2 -0
- package/internals/plugins/useTreeViewId/index.js +1 -0
- package/internals/plugins/useTreeViewId/useTreeViewId.d.ts +3 -0
- package/internals/plugins/useTreeViewId/useTreeViewId.js +21 -0
- package/internals/plugins/useTreeViewId/useTreeViewId.types.d.ts +17 -0
- package/internals/plugins/useTreeViewId/useTreeViewId.types.js +1 -0
- package/internals/plugins/useTreeViewJSXNodes/index.d.ts +2 -0
- package/internals/plugins/useTreeViewJSXNodes/index.js +1 -0
- package/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.d.ts +3 -0
- package/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.js +115 -0
- package/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.types.d.ts +16 -0
- package/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.types.js +1 -0
- package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +175 -121
- package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.d.ts +5 -2
- package/internals/plugins/useTreeViewNodes/useTreeViewNodes.js +89 -17
- package/internals/plugins/useTreeViewNodes/useTreeViewNodes.types.d.ts +48 -5
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.d.ts +1 -1
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +49 -28
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +15 -8
- package/internals/useTreeView/useTreeView.js +40 -3
- package/internals/useTreeView/useTreeView.types.d.ts +2 -1
- package/internals/useTreeView/useTreeViewModels.js +2 -2
- package/internals/utils/extractPluginParamsFromProps.d.ts +13 -0
- package/internals/utils/extractPluginParamsFromProps.js +27 -0
- package/internals/utils/warning.d.ts +1 -0
- package/internals/utils/warning.js +14 -0
- package/legacy/RichTreeView/RichTreeView.js +279 -0
- package/legacy/RichTreeView/RichTreeView.types.js +1 -0
- package/legacy/RichTreeView/index.js +3 -0
- package/legacy/RichTreeView/richTreeViewClasses.js +6 -0
- package/legacy/SimpleTreeView/SimpleTreeView.js +232 -0
- package/legacy/SimpleTreeView/SimpleTreeView.plugins.js +6 -0
- package/legacy/SimpleTreeView/SimpleTreeView.types.js +1 -0
- package/legacy/SimpleTreeView/index.js +3 -0
- package/legacy/SimpleTreeView/simpleTreeViewClasses.js +6 -0
- package/legacy/TreeItem/TreeItem.js +49 -103
- package/legacy/TreeItem/index.js +2 -2
- package/legacy/TreeItem/useTreeItem.js +5 -5
- package/legacy/TreeView/TreeView.js +80 -82
- package/legacy/index.js +5 -2
- package/legacy/internals/TreeViewProvider/TreeViewContext.js +1 -14
- package/legacy/internals/TreeViewProvider/useTreeViewContext.js +5 -1
- package/legacy/internals/corePlugins/corePlugins.js +1 -1
- package/legacy/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +2 -7
- package/legacy/internals/hooks/useLazyRef.js +11 -0
- package/legacy/internals/hooks/useOnMount.js +7 -0
- package/legacy/internals/hooks/useTimeout.js +38 -0
- package/legacy/internals/models/MuiCancellableEvent.js +1 -0
- package/legacy/internals/plugins/defaultPlugins.js +2 -1
- package/legacy/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.js +17 -8
- package/legacy/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +32 -17
- package/legacy/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +16 -6
- package/legacy/internals/plugins/useTreeViewId/index.js +1 -0
- package/legacy/internals/plugins/useTreeViewId/useTreeViewId.js +24 -0
- package/legacy/internals/plugins/useTreeViewId/useTreeViewId.types.js +1 -0
- package/legacy/internals/plugins/useTreeViewJSXNodes/index.js +1 -0
- package/legacy/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.js +121 -0
- package/legacy/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.types.js +1 -0
- package/legacy/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +177 -119
- package/legacy/internals/plugins/useTreeViewNodes/useTreeViewNodes.js +96 -20
- package/legacy/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +53 -28
- package/legacy/internals/useTreeView/useTreeView.js +39 -3
- package/legacy/internals/useTreeView/useTreeViewModels.js +2 -2
- package/legacy/internals/utils/extractPluginParamsFromProps.js +27 -0
- package/legacy/internals/utils/warning.js +15 -0
- package/legacy/models/index.js +1 -0
- package/legacy/models/items.js +1 -0
- package/models/index.d.ts +1 -0
- package/models/index.js +1 -0
- package/models/items.d.ts +7 -0
- package/models/items.js +1 -0
- package/models/package.json +6 -0
- package/modern/RichTreeView/RichTreeView.js +283 -0
- package/modern/RichTreeView/RichTreeView.types.js +1 -0
- package/modern/RichTreeView/index.js +3 -0
- package/modern/RichTreeView/richTreeViewClasses.js +6 -0
- package/modern/SimpleTreeView/SimpleTreeView.js +234 -0
- package/modern/SimpleTreeView/SimpleTreeView.plugins.js +5 -0
- package/modern/SimpleTreeView/SimpleTreeView.types.js +1 -0
- package/modern/SimpleTreeView/index.js +3 -0
- package/modern/SimpleTreeView/simpleTreeViewClasses.js +6 -0
- package/modern/TreeItem/TreeItem.js +44 -88
- package/modern/TreeItem/index.js +2 -2
- package/modern/TreeItem/useTreeItem.js +5 -5
- package/modern/TreeView/TreeView.js +80 -87
- package/modern/index.js +5 -2
- package/modern/internals/TreeViewProvider/TreeViewContext.js +1 -14
- package/modern/internals/TreeViewProvider/useTreeViewContext.js +7 -1
- package/modern/internals/corePlugins/corePlugins.js +1 -1
- package/modern/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +2 -7
- package/modern/internals/hooks/useLazyRef.js +11 -0
- package/modern/internals/hooks/useOnMount.js +7 -0
- package/modern/internals/hooks/useTimeout.js +28 -0
- package/modern/internals/models/MuiCancellableEvent.js +1 -0
- package/modern/internals/plugins/defaultPlugins.js +2 -1
- package/modern/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.js +14 -6
- package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +33 -18
- package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +16 -7
- package/modern/internals/plugins/useTreeViewId/index.js +1 -0
- package/modern/internals/plugins/useTreeViewId/useTreeViewId.js +21 -0
- package/modern/internals/plugins/useTreeViewId/useTreeViewId.types.js +1 -0
- package/modern/internals/plugins/useTreeViewJSXNodes/index.js +1 -0
- package/modern/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.js +114 -0
- package/modern/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.types.js +1 -0
- package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +174 -121
- package/modern/internals/plugins/useTreeViewNodes/useTreeViewNodes.js +88 -17
- package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +50 -29
- package/modern/internals/useTreeView/useTreeView.js +40 -3
- package/modern/internals/useTreeView/useTreeViewModels.js +2 -2
- package/modern/internals/utils/extractPluginParamsFromProps.js +27 -0
- package/modern/internals/utils/warning.js +14 -0
- package/modern/models/index.js +1 -0
- package/modern/models/items.js +1 -0
- package/node/RichTreeView/RichTreeView.js +291 -0
- package/node/RichTreeView/RichTreeView.types.js +5 -0
- package/node/RichTreeView/index.js +27 -0
- package/node/RichTreeView/richTreeViewClasses.js +14 -0
- package/node/SimpleTreeView/SimpleTreeView.js +242 -0
- package/node/SimpleTreeView/SimpleTreeView.plugins.js +11 -0
- package/node/SimpleTreeView/SimpleTreeView.types.js +5 -0
- package/node/SimpleTreeView/index.js +27 -0
- package/node/SimpleTreeView/simpleTreeViewClasses.js +14 -0
- package/node/TreeItem/TreeItem.js +44 -88
- package/node/TreeItem/index.js +11 -15
- package/node/TreeItem/useTreeItem.js +5 -5
- package/node/TreeView/TreeView.js +80 -87
- package/node/index.js +38 -2
- package/node/internals/TreeViewProvider/TreeViewContext.js +2 -15
- package/node/internals/TreeViewProvider/useTreeViewContext.js +7 -1
- package/node/internals/corePlugins/corePlugins.js +1 -1
- package/node/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +2 -7
- package/node/internals/hooks/useLazyRef.js +19 -0
- package/node/internals/hooks/useOnMount.js +15 -0
- package/node/internals/hooks/useTimeout.js +34 -0
- package/node/internals/models/MuiCancellableEvent.js +5 -0
- package/node/internals/plugins/defaultPlugins.js +2 -1
- package/node/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.js +15 -8
- package/node/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +33 -18
- package/node/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +16 -7
- package/node/internals/plugins/useTreeViewId/index.js +12 -0
- package/node/internals/plugins/useTreeViewId/useTreeViewId.js +31 -0
- package/node/internals/plugins/useTreeViewId/useTreeViewId.types.js +5 -0
- package/node/internals/plugins/useTreeViewJSXNodes/index.js +12 -0
- package/node/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.js +124 -0
- package/node/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.types.js +5 -0
- package/node/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +174 -121
- package/node/internals/plugins/useTreeViewNodes/useTreeViewNodes.js +89 -18
- package/node/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +50 -29
- package/node/internals/useTreeView/useTreeView.js +40 -3
- package/node/internals/useTreeView/useTreeViewModels.js +2 -2
- package/node/internals/utils/extractPluginParamsFromProps.js +34 -0
- package/node/internals/utils/warning.js +21 -0
- package/node/models/index.js +16 -0
- package/node/models/items.js +5 -0
- package/package.json +8 -7
- package/themeAugmentation/components.d.ts +14 -4
- package/themeAugmentation/overrides.d.ts +8 -4
- package/themeAugmentation/props.d.ts +7 -3
|
@@ -3,7 +3,6 @@ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
|
3
3
|
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import useForkRef from '@mui/utils/useForkRef';
|
|
6
|
-
import { DEFAULT_TREE_VIEW_CONTEXT_VALUE } from '../TreeViewProvider/TreeViewContext';
|
|
7
6
|
import { useTreeViewModels } from './useTreeViewModels';
|
|
8
7
|
import { TREE_VIEW_CORE_PLUGINS } from '../corePlugins';
|
|
9
8
|
export var useTreeView = function useTreeView(inParams) {
|
|
@@ -32,7 +31,7 @@ export var useTreeView = function useTreeView(inParams) {
|
|
|
32
31
|
state = _React$useState2[0],
|
|
33
32
|
setState = _React$useState2[1];
|
|
34
33
|
var rootPropsGetters = [];
|
|
35
|
-
var contextValue =
|
|
34
|
+
var contextValue = {};
|
|
36
35
|
var runPlugin = function runPlugin(plugin) {
|
|
37
36
|
var pluginResponse = plugin({
|
|
38
37
|
instance: instance,
|
|
@@ -50,6 +49,42 @@ export var useTreeView = function useTreeView(inParams) {
|
|
|
50
49
|
}
|
|
51
50
|
};
|
|
52
51
|
plugins.forEach(runPlugin);
|
|
52
|
+
contextValue.runItemPlugins = function (_ref) {
|
|
53
|
+
var props = _ref.props,
|
|
54
|
+
ref = _ref.ref;
|
|
55
|
+
var finalProps = props;
|
|
56
|
+
var finalRef = ref;
|
|
57
|
+
var itemWrappers = [];
|
|
58
|
+
plugins.forEach(function (plugin) {
|
|
59
|
+
if (!plugin.itemPlugin) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
var itemPluginResponse = plugin.itemPlugin({
|
|
63
|
+
props: finalProps,
|
|
64
|
+
ref: finalRef
|
|
65
|
+
});
|
|
66
|
+
if (itemPluginResponse != null && itemPluginResponse.props) {
|
|
67
|
+
finalProps = itemPluginResponse.props;
|
|
68
|
+
}
|
|
69
|
+
if (itemPluginResponse != null && itemPluginResponse.ref) {
|
|
70
|
+
finalRef = itemPluginResponse.ref;
|
|
71
|
+
}
|
|
72
|
+
if (itemPluginResponse != null && itemPluginResponse.wrapItem) {
|
|
73
|
+
itemWrappers.push(itemPluginResponse.wrapItem);
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
return {
|
|
77
|
+
props: finalProps,
|
|
78
|
+
ref: finalRef,
|
|
79
|
+
wrapItem: function wrapItem(children) {
|
|
80
|
+
var finalChildren = children;
|
|
81
|
+
itemWrappers.forEach(function (itemWrapper) {
|
|
82
|
+
finalChildren = itemWrapper(finalChildren);
|
|
83
|
+
});
|
|
84
|
+
return finalChildren;
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
};
|
|
53
88
|
var getRootProps = function getRootProps() {
|
|
54
89
|
var otherHandlers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
55
90
|
var rootProps = _extends({
|
|
@@ -66,6 +101,7 @@ export var useTreeView = function useTreeView(inParams) {
|
|
|
66
101
|
return {
|
|
67
102
|
getRootProps: getRootProps,
|
|
68
103
|
rootRef: handleRootRef,
|
|
69
|
-
contextValue: contextValue
|
|
104
|
+
contextValue: contextValue,
|
|
105
|
+
instance: instance
|
|
70
106
|
};
|
|
71
107
|
};
|
|
@@ -58,14 +58,14 @@ export var useTreeViewModels = function useTreeViewModels(plugins, props) {
|
|
|
58
58
|
var defaultProp = props[model.defaultProp];
|
|
59
59
|
React.useEffect(function () {
|
|
60
60
|
if (model.isControlled !== (controlled !== undefined)) {
|
|
61
|
-
console.error(["MUI: A component is changing the ".concat(model.isControlled ? '' : 'un', "controlled ").concat(modelName, " state of TreeView to be ").concat(model.isControlled ? 'un' : '', "controlled."), 'Elements should not switch from uncontrolled to controlled (or vice versa).', "Decide between using a controlled or uncontrolled ".concat(modelName, " ") + 'element for the lifetime of the component.', "The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.", 'More info: https://fb.me/react-controlled-components'].join('\n'));
|
|
61
|
+
console.error(["MUI X: A component is changing the ".concat(model.isControlled ? '' : 'un', "controlled ").concat(modelName, " state of TreeView to be ").concat(model.isControlled ? 'un' : '', "controlled."), 'Elements should not switch from uncontrolled to controlled (or vice versa).', "Decide between using a controlled or uncontrolled ".concat(modelName, " ") + 'element for the lifetime of the component.', "The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.", 'More info: https://fb.me/react-controlled-components'].join('\n'));
|
|
62
62
|
}
|
|
63
63
|
}, [controlled]);
|
|
64
64
|
var _React$useRef = React.useRef(defaultProp),
|
|
65
65
|
defaultValue = _React$useRef.current;
|
|
66
66
|
React.useEffect(function () {
|
|
67
67
|
if (!model.isControlled && defaultValue !== defaultProp) {
|
|
68
|
-
console.error(["MUI: A component is changing the default ".concat(modelName, " state of an uncontrolled TreeView after being initialized. ") + "To suppress this warning opt to use a controlled TreeView."].join('\n'));
|
|
68
|
+
console.error(["MUI X: A component is changing the default ".concat(modelName, " state of an uncontrolled TreeView after being initialized. ") + "To suppress this warning opt to use a controlled TreeView."].join('\n'));
|
|
69
69
|
}
|
|
70
70
|
}, [JSON.stringify(defaultValue)]);
|
|
71
71
|
});
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
export var extractPluginParamsFromProps = function extractPluginParamsFromProps(_ref) {
|
|
3
|
+
var props = _ref.props,
|
|
4
|
+
plugins = _ref.plugins,
|
|
5
|
+
rootRef = _ref.rootRef;
|
|
6
|
+
var paramsLookup = {};
|
|
7
|
+
plugins.forEach(function (plugin) {
|
|
8
|
+
_extends(paramsLookup, plugin.params);
|
|
9
|
+
});
|
|
10
|
+
var pluginParams = {
|
|
11
|
+
plugins: plugins,
|
|
12
|
+
rootRef: rootRef
|
|
13
|
+
};
|
|
14
|
+
var otherProps = {};
|
|
15
|
+
Object.keys(props).forEach(function (propName) {
|
|
16
|
+
var prop = props[propName];
|
|
17
|
+
if (paramsLookup[propName]) {
|
|
18
|
+
pluginParams[propName] = prop;
|
|
19
|
+
} else {
|
|
20
|
+
otherProps[propName] = prop;
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
return {
|
|
24
|
+
pluginParams: pluginParams,
|
|
25
|
+
otherProps: otherProps
|
|
26
|
+
};
|
|
27
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export var buildWarning = function buildWarning(message) {
|
|
2
|
+
var gravity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'warning';
|
|
3
|
+
var alreadyWarned = false;
|
|
4
|
+
var cleanMessage = Array.isArray(message) ? message.join('\n') : message;
|
|
5
|
+
return function () {
|
|
6
|
+
if (!alreadyWarned) {
|
|
7
|
+
alreadyWarned = true;
|
|
8
|
+
if (gravity === 'error') {
|
|
9
|
+
console.error(cleanMessage);
|
|
10
|
+
} else {
|
|
11
|
+
console.warn(cleanMessage);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './items';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './items';
|
package/models/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './items';
|
package/models/items.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
2
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
+
const _excluded = ["slots", "slotProps"];
|
|
4
|
+
import * as React from 'react';
|
|
5
|
+
import PropTypes from 'prop-types';
|
|
6
|
+
import { styled, useThemeProps } from '@mui/material/styles';
|
|
7
|
+
import composeClasses from '@mui/utils/composeClasses';
|
|
8
|
+
import { useSlotProps } from '@mui/base/utils';
|
|
9
|
+
import { getRichTreeViewUtilityClass } from './richTreeViewClasses';
|
|
10
|
+
import { useTreeView } from '../internals/useTreeView';
|
|
11
|
+
import { TreeViewProvider } from '../internals/TreeViewProvider';
|
|
12
|
+
import { DEFAULT_TREE_VIEW_PLUGINS } from '../internals/plugins';
|
|
13
|
+
import { TreeItem } from '../TreeItem';
|
|
14
|
+
import { buildWarning } from '../internals/utils/warning';
|
|
15
|
+
import { extractPluginParamsFromProps } from '../internals/utils/extractPluginParamsFromProps';
|
|
16
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
17
|
+
const useUtilityClasses = ownerState => {
|
|
18
|
+
const {
|
|
19
|
+
classes
|
|
20
|
+
} = ownerState;
|
|
21
|
+
const slots = {
|
|
22
|
+
root: ['root']
|
|
23
|
+
};
|
|
24
|
+
return composeClasses(slots, getRichTreeViewUtilityClass, classes);
|
|
25
|
+
};
|
|
26
|
+
export const RichTreeViewRoot = styled('ul', {
|
|
27
|
+
name: 'MuiRichTreeView',
|
|
28
|
+
slot: 'Root',
|
|
29
|
+
overridesResolver: (props, styles) => styles.root
|
|
30
|
+
})({
|
|
31
|
+
padding: 0,
|
|
32
|
+
margin: 0,
|
|
33
|
+
listStyle: 'none',
|
|
34
|
+
outline: 0
|
|
35
|
+
});
|
|
36
|
+
function WrappedTreeItem({
|
|
37
|
+
slots,
|
|
38
|
+
slotProps,
|
|
39
|
+
label,
|
|
40
|
+
id,
|
|
41
|
+
nodeId,
|
|
42
|
+
children
|
|
43
|
+
}) {
|
|
44
|
+
const Item = slots?.item ?? TreeItem;
|
|
45
|
+
const itemProps = useSlotProps({
|
|
46
|
+
elementType: Item,
|
|
47
|
+
externalSlotProps: slotProps?.item,
|
|
48
|
+
additionalProps: {
|
|
49
|
+
nodeId,
|
|
50
|
+
id,
|
|
51
|
+
label
|
|
52
|
+
},
|
|
53
|
+
ownerState: {
|
|
54
|
+
nodeId,
|
|
55
|
+
label
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
return /*#__PURE__*/_jsx(Item, _extends({}, itemProps, {
|
|
59
|
+
children: children
|
|
60
|
+
}));
|
|
61
|
+
}
|
|
62
|
+
const childrenWarning = buildWarning(['MUI X: The `RichTreeView` component does not support JSX children.', 'If you want to add items, you need to use the `items` prop', 'Check the documentation for more details: https://next.mui.com/x/react-tree-view/rich-tree-view/items/']);
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
*
|
|
66
|
+
* Demos:
|
|
67
|
+
*
|
|
68
|
+
* - [Tree View](https://mui.com/x/react-tree-view/)
|
|
69
|
+
*
|
|
70
|
+
* API:
|
|
71
|
+
*
|
|
72
|
+
* - [RichTreeView API](https://mui.com/x/api/tree-view/rich-tree-view/)
|
|
73
|
+
*/
|
|
74
|
+
const RichTreeView = /*#__PURE__*/React.forwardRef(function RichTreeView(inProps, ref) {
|
|
75
|
+
const props = useThemeProps({
|
|
76
|
+
props: inProps,
|
|
77
|
+
name: 'MuiRichTreeView'
|
|
78
|
+
});
|
|
79
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
80
|
+
if (props.children != null) {
|
|
81
|
+
childrenWarning();
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
const _extractPluginParamsF = extractPluginParamsFromProps({
|
|
85
|
+
props,
|
|
86
|
+
plugins: DEFAULT_TREE_VIEW_PLUGINS,
|
|
87
|
+
rootRef: ref
|
|
88
|
+
}),
|
|
89
|
+
{
|
|
90
|
+
pluginParams,
|
|
91
|
+
otherProps: {
|
|
92
|
+
slots,
|
|
93
|
+
slotProps
|
|
94
|
+
}
|
|
95
|
+
} = _extractPluginParamsF,
|
|
96
|
+
otherProps = _objectWithoutPropertiesLoose(_extractPluginParamsF.otherProps, _excluded);
|
|
97
|
+
const {
|
|
98
|
+
getRootProps,
|
|
99
|
+
contextValue,
|
|
100
|
+
instance
|
|
101
|
+
} = useTreeView(pluginParams);
|
|
102
|
+
const classes = useUtilityClasses(props);
|
|
103
|
+
const Root = slots?.root ?? RichTreeViewRoot;
|
|
104
|
+
const rootProps = useSlotProps({
|
|
105
|
+
elementType: Root,
|
|
106
|
+
externalSlotProps: slotProps?.root,
|
|
107
|
+
externalForwardedProps: otherProps,
|
|
108
|
+
className: classes.root,
|
|
109
|
+
getSlotProps: getRootProps,
|
|
110
|
+
ownerState: props
|
|
111
|
+
});
|
|
112
|
+
const nodesToRender = instance.getNodesToRender();
|
|
113
|
+
const renderNode = ({
|
|
114
|
+
label,
|
|
115
|
+
nodeId,
|
|
116
|
+
id,
|
|
117
|
+
children
|
|
118
|
+
}) => {
|
|
119
|
+
return /*#__PURE__*/_jsx(WrappedTreeItem, {
|
|
120
|
+
slots: slots,
|
|
121
|
+
slotProps: slotProps,
|
|
122
|
+
label: label,
|
|
123
|
+
id: id,
|
|
124
|
+
nodeId: nodeId,
|
|
125
|
+
children: children?.map(renderNode)
|
|
126
|
+
}, nodeId);
|
|
127
|
+
};
|
|
128
|
+
return /*#__PURE__*/_jsx(TreeViewProvider, {
|
|
129
|
+
value: contextValue,
|
|
130
|
+
children: /*#__PURE__*/_jsx(Root, _extends({}, rootProps, {
|
|
131
|
+
children: nodesToRender.map(renderNode)
|
|
132
|
+
}))
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
process.env.NODE_ENV !== "production" ? RichTreeView.propTypes = {
|
|
136
|
+
// ----------------------------- Warning --------------------------------
|
|
137
|
+
// | These PropTypes are generated from the TypeScript type definitions |
|
|
138
|
+
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
139
|
+
// ----------------------------------------------------------------------
|
|
140
|
+
/**
|
|
141
|
+
* Override or extend the styles applied to the component.
|
|
142
|
+
*/
|
|
143
|
+
classes: PropTypes.object,
|
|
144
|
+
/**
|
|
145
|
+
* className applied to the root element.
|
|
146
|
+
*/
|
|
147
|
+
className: PropTypes.string,
|
|
148
|
+
/**
|
|
149
|
+
* The default icon used to collapse the node.
|
|
150
|
+
*/
|
|
151
|
+
defaultCollapseIcon: PropTypes.node,
|
|
152
|
+
/**
|
|
153
|
+
* The default icon displayed next to a end node. This is applied to all
|
|
154
|
+
* tree nodes and can be overridden by the TreeItem `icon` prop.
|
|
155
|
+
*/
|
|
156
|
+
defaultEndIcon: PropTypes.node,
|
|
157
|
+
/**
|
|
158
|
+
* Expanded node ids.
|
|
159
|
+
* Used when the item's expansion is not controlled.
|
|
160
|
+
* @default []
|
|
161
|
+
*/
|
|
162
|
+
defaultExpandedNodes: PropTypes.arrayOf(PropTypes.string),
|
|
163
|
+
/**
|
|
164
|
+
* The default icon used to expand the node.
|
|
165
|
+
*/
|
|
166
|
+
defaultExpandIcon: PropTypes.node,
|
|
167
|
+
/**
|
|
168
|
+
* The default icon displayed next to a parent node. This is applied to all
|
|
169
|
+
* parent nodes and can be overridden by the TreeItem `icon` prop.
|
|
170
|
+
*/
|
|
171
|
+
defaultParentIcon: PropTypes.node,
|
|
172
|
+
/**
|
|
173
|
+
* Selected node ids. (Uncontrolled)
|
|
174
|
+
* When `multiSelect` is true this takes an array of strings; when false (default) a string.
|
|
175
|
+
* @default []
|
|
176
|
+
*/
|
|
177
|
+
defaultSelectedNodes: PropTypes.any,
|
|
178
|
+
/**
|
|
179
|
+
* If `true`, will allow focus on disabled items.
|
|
180
|
+
* @default false
|
|
181
|
+
*/
|
|
182
|
+
disabledItemsFocusable: PropTypes.bool,
|
|
183
|
+
/**
|
|
184
|
+
* If `true` selection is disabled.
|
|
185
|
+
* @default false
|
|
186
|
+
*/
|
|
187
|
+
disableSelection: PropTypes.bool,
|
|
188
|
+
/**
|
|
189
|
+
* Expanded node ids.
|
|
190
|
+
* Used when the item's expansion is controlled.
|
|
191
|
+
*/
|
|
192
|
+
expandedNodes: PropTypes.arrayOf(PropTypes.string),
|
|
193
|
+
/**
|
|
194
|
+
* Used to determine the string label for a given item.
|
|
195
|
+
*
|
|
196
|
+
* @template R
|
|
197
|
+
* @param {R} item The item to check.
|
|
198
|
+
* @returns {string} The id of the item.
|
|
199
|
+
* @default `(item) => item.id`
|
|
200
|
+
*/
|
|
201
|
+
getItemId: PropTypes.func,
|
|
202
|
+
/**
|
|
203
|
+
* Used to determine the string label for a given item.
|
|
204
|
+
*
|
|
205
|
+
* @template R
|
|
206
|
+
* @param {R} item The item to check.
|
|
207
|
+
* @returns {string} The label of the item.
|
|
208
|
+
* @default `(item) => item.label`
|
|
209
|
+
*/
|
|
210
|
+
getItemLabel: PropTypes.func,
|
|
211
|
+
/**
|
|
212
|
+
* This prop is used to help implement the accessibility logic.
|
|
213
|
+
* If you don't provide this prop. It falls back to a randomly generated id.
|
|
214
|
+
*/
|
|
215
|
+
id: PropTypes.string,
|
|
216
|
+
/**
|
|
217
|
+
* Used to determine if a given item should be disabled.
|
|
218
|
+
* @template R
|
|
219
|
+
* @param {R} item The item to check.
|
|
220
|
+
* @returns {boolean} `true` if the item should be disabled.
|
|
221
|
+
*/
|
|
222
|
+
isItemDisabled: PropTypes.func,
|
|
223
|
+
items: PropTypes.array.isRequired,
|
|
224
|
+
/**
|
|
225
|
+
* If true `ctrl` and `shift` will trigger multiselect.
|
|
226
|
+
* @default false
|
|
227
|
+
*/
|
|
228
|
+
multiSelect: PropTypes.bool,
|
|
229
|
+
/**
|
|
230
|
+
* Callback fired when tree items are expanded/collapsed.
|
|
231
|
+
* @param {React.SyntheticEvent} event The event source of the callback.
|
|
232
|
+
* @param {array} nodeIds The ids of the expanded nodes.
|
|
233
|
+
*/
|
|
234
|
+
onExpandedNodesChange: PropTypes.func,
|
|
235
|
+
/**
|
|
236
|
+
* Callback fired when a tree item is expanded or collapsed.
|
|
237
|
+
* @param {React.SyntheticEvent} event The event source of the callback.
|
|
238
|
+
* @param {array} nodeId The nodeId of the modified node.
|
|
239
|
+
* @param {array} isExpanded `true` if the node has just been expanded, `false` if it has just been collapsed.
|
|
240
|
+
*/
|
|
241
|
+
onNodeExpansionToggle: PropTypes.func,
|
|
242
|
+
/**
|
|
243
|
+
* Callback fired when tree items are focused.
|
|
244
|
+
* @param {React.SyntheticEvent} event The event source of the callback **Warning**: This is a generic event not a focus event.
|
|
245
|
+
* @param {string} nodeId The id of the node focused.
|
|
246
|
+
* @param {string} value of the focused node.
|
|
247
|
+
*/
|
|
248
|
+
onNodeFocus: PropTypes.func,
|
|
249
|
+
/**
|
|
250
|
+
* Callback fired when a tree item is selected or deselected.
|
|
251
|
+
* @param {React.SyntheticEvent} event The event source of the callback.
|
|
252
|
+
* @param {array} nodeId The nodeId of the modified node.
|
|
253
|
+
* @param {array} isSelected `true` if the node has just been selected, `false` if it has just been deselected.
|
|
254
|
+
*/
|
|
255
|
+
onNodeSelectionToggle: PropTypes.func,
|
|
256
|
+
/**
|
|
257
|
+
* Callback fired when tree items are selected/deselected.
|
|
258
|
+
* @param {React.SyntheticEvent} event The event source of the callback
|
|
259
|
+
* @param {string[] | string} nodeIds The ids of the selected nodes.
|
|
260
|
+
* When `multiSelect` is `true`, this is an array of strings; when false (default) a string.
|
|
261
|
+
*/
|
|
262
|
+
onSelectedNodesChange: PropTypes.func,
|
|
263
|
+
/**
|
|
264
|
+
* Selected node ids. (Controlled)
|
|
265
|
+
* When `multiSelect` is true this takes an array of strings; when false (default) a string.
|
|
266
|
+
*/
|
|
267
|
+
selectedNodes: PropTypes.any,
|
|
268
|
+
/**
|
|
269
|
+
* The props used for each component slot.
|
|
270
|
+
* @default {}
|
|
271
|
+
*/
|
|
272
|
+
slotProps: PropTypes.object,
|
|
273
|
+
/**
|
|
274
|
+
* Overridable component slots.
|
|
275
|
+
* @default {}
|
|
276
|
+
*/
|
|
277
|
+
slots: PropTypes.object,
|
|
278
|
+
/**
|
|
279
|
+
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
280
|
+
*/
|
|
281
|
+
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
|
|
282
|
+
} : void 0;
|
|
283
|
+
export { RichTreeView };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import generateUtilityClass from '@mui/utils/generateUtilityClass';
|
|
2
|
+
import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
|
|
3
|
+
export function getRichTreeViewUtilityClass(slot) {
|
|
4
|
+
return generateUtilityClass('MuiRichTreeView', slot);
|
|
5
|
+
}
|
|
6
|
+
export const richTreeViewClasses = generateUtilityClasses('MuiRichTreeView', ['root']);
|