@mui/x-tree-view 7.0.0-alpha.7 → 7.0.0-alpha.9
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 +554 -51
- package/README.md +1 -1
- package/RichTreeView/RichTreeView.js +14 -79
- package/RichTreeView/RichTreeView.types.d.ts +6 -9
- package/RichTreeView/index.d.ts +1 -1
- package/SimpleTreeView/SimpleTreeView.js +17 -75
- package/SimpleTreeView/SimpleTreeView.plugins.d.ts +4 -2
- package/SimpleTreeView/SimpleTreeView.types.d.ts +8 -7
- package/SimpleTreeView/index.d.ts +1 -1
- package/TreeItem/TreeItem.js +62 -39
- package/TreeItem/TreeItem.types.d.ts +33 -17
- package/TreeItem/TreeItemContent.d.ts +0 -3
- package/TreeItem/TreeItemContent.js +2 -5
- package/TreeItem/index.d.ts +2 -2
- package/TreeItem/index.js +1 -1
- package/TreeItem/{useTreeItem.d.ts → useTreeItemState.d.ts} +1 -1
- package/TreeItem/{useTreeItem.js → useTreeItemState.js} +4 -2
- package/TreeView/TreeView.js +1 -22
- package/TreeView/TreeView.types.d.ts +5 -1
- package/TreeView/index.d.ts +1 -1
- package/icons/icons.d.ts +6 -0
- package/icons/icons.js +9 -0
- package/icons/index.d.ts +1 -0
- package/icons/index.js +1 -0
- package/icons/package.json +6 -0
- package/index.d.ts +1 -0
- package/index.js +3 -2
- package/internals/TreeViewProvider/TreeViewContext.d.ts +4 -2
- package/internals/TreeViewProvider/TreeViewProvider.types.d.ts +3 -11
- package/internals/TreeViewProvider/useTreeViewContext.js +1 -1
- package/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +2 -1
- package/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.d.ts +3 -2
- package/internals/index.d.ts +15 -0
- package/internals/index.js +4 -0
- package/internals/models/MuiCancellableEvent.d.ts +4 -0
- package/internals/models/helpers.d.ts +7 -1
- package/internals/models/plugin.d.ts +65 -20
- package/internals/models/treeView.d.ts +1 -2
- package/internals/package.json +6 -0
- package/internals/plugins/defaultPlugins.d.ts +6 -4
- package/internals/plugins/defaultPlugins.js +2 -2
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +14 -10
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +7 -3
- package/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +2 -5
- package/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +12 -6
- package/internals/plugins/useTreeViewIcons/index.d.ts +2 -0
- package/internals/plugins/useTreeViewIcons/index.js +1 -0
- package/internals/plugins/useTreeViewIcons/useTreeViewIcons.d.ts +3 -0
- package/internals/plugins/useTreeViewIcons/useTreeViewIcons.js +22 -0
- package/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.d.ts +43 -0
- package/internals/plugins/useTreeViewId/useTreeViewId.js +3 -0
- package/internals/plugins/useTreeViewId/useTreeViewId.types.d.ts +6 -2
- package/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.js +2 -1
- package/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.types.d.ts +6 -4
- package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +155 -112
- package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.d.ts +9 -6
- package/internals/plugins/useTreeViewNodes/useTreeViewNodes.js +21 -3
- package/internals/plugins/useTreeViewNodes/useTreeViewNodes.types.d.ts +10 -2
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +17 -5
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +15 -5
- package/internals/useTreeView/useTreeView.js +7 -3
- package/internals/useTreeView/useTreeView.types.d.ts +6 -6
- package/internals/useTreeView/useTreeViewModels.js +12 -13
- package/internals/utils/extractPluginParamsFromProps.d.ts +16 -0
- package/internals/utils/extractPluginParamsFromProps.js +38 -0
- package/legacy/RichTreeView/RichTreeView.js +15 -77
- package/legacy/SimpleTreeView/SimpleTreeView.js +14 -70
- package/legacy/TreeItem/TreeItem.js +63 -39
- package/legacy/TreeItem/TreeItemContent.js +9 -12
- package/legacy/TreeItem/index.js +1 -1
- package/legacy/TreeItem/{useTreeItem.js → useTreeItemState.js} +2 -2
- package/legacy/TreeView/TreeView.js +1 -22
- package/legacy/icons/icons.js +9 -0
- package/legacy/icons/index.js +1 -0
- package/legacy/index.js +3 -2
- package/legacy/internals/TreeViewProvider/useTreeViewContext.js +1 -1
- package/legacy/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +2 -1
- package/legacy/internals/index.js +4 -0
- package/legacy/internals/plugins/defaultPlugins.js +2 -2
- package/legacy/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +16 -10
- package/legacy/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +2 -5
- package/legacy/internals/plugins/useTreeViewIcons/index.js +1 -0
- package/legacy/internals/plugins/useTreeViewIcons/useTreeViewIcons.js +21 -0
- package/legacy/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.js +1 -0
- package/legacy/internals/plugins/useTreeViewId/useTreeViewId.js +3 -0
- package/legacy/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.js +2 -1
- package/legacy/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +157 -110
- package/legacy/internals/plugins/useTreeViewNodes/useTreeViewNodes.js +20 -2
- package/legacy/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +20 -6
- package/legacy/internals/useTreeView/useTreeView.js +6 -2
- package/legacy/internals/useTreeView/useTreeViewModels.js +12 -13
- package/legacy/internals/utils/extractPluginParamsFromProps.js +36 -0
- package/modern/RichTreeView/RichTreeView.js +14 -79
- package/modern/SimpleTreeView/SimpleTreeView.js +17 -75
- package/modern/TreeItem/TreeItem.js +61 -39
- package/modern/TreeItem/TreeItemContent.js +2 -5
- package/modern/TreeItem/index.js +1 -1
- package/modern/TreeItem/{useTreeItem.js → useTreeItemState.js} +4 -2
- package/modern/TreeView/TreeView.js +1 -22
- package/modern/icons/icons.js +9 -0
- package/modern/icons/index.js +1 -0
- package/modern/index.js +3 -2
- package/modern/internals/TreeViewProvider/useTreeViewContext.js +1 -1
- package/modern/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +2 -1
- package/modern/internals/index.js +4 -0
- package/modern/internals/models/MuiCancellableEvent.js +1 -0
- package/modern/internals/plugins/defaultPlugins.js +2 -2
- package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +14 -11
- package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +3 -3
- package/modern/internals/plugins/useTreeViewIcons/index.js +1 -0
- package/modern/internals/plugins/useTreeViewIcons/useTreeViewIcons.js +22 -0
- package/modern/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.js +1 -0
- package/modern/internals/plugins/useTreeViewId/useTreeViewId.js +3 -0
- package/modern/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.js +2 -1
- package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +155 -112
- package/modern/internals/plugins/useTreeViewNodes/useTreeViewNodes.js +18 -3
- package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +18 -6
- package/modern/internals/useTreeView/useTreeView.js +7 -3
- package/modern/internals/useTreeView/useTreeViewModels.js +12 -13
- package/modern/internals/utils/extractPluginParamsFromProps.js +38 -0
- package/node/RichTreeView/RichTreeView.js +14 -79
- package/node/SimpleTreeView/SimpleTreeView.js +17 -75
- package/node/TreeItem/TreeItem.js +61 -39
- package/node/TreeItem/TreeItemContent.js +2 -5
- package/node/TreeItem/index.js +4 -4
- package/node/TreeItem/{useTreeItem.js → useTreeItemState.js} +5 -3
- package/node/TreeView/TreeView.js +1 -22
- package/node/icons/icons.js +17 -0
- package/node/icons/index.js +16 -0
- package/node/index.js +13 -1
- package/node/internals/TreeViewProvider/useTreeViewContext.js +1 -1
- package/node/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +2 -1
- package/node/internals/index.js +33 -0
- package/node/internals/plugins/defaultPlugins.js +2 -2
- package/node/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +14 -11
- package/node/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +3 -3
- package/node/internals/plugins/useTreeViewIcons/index.js +12 -0
- package/node/internals/plugins/useTreeViewIcons/useTreeViewIcons.js +29 -0
- package/node/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.js +5 -0
- package/node/internals/plugins/useTreeViewId/useTreeViewId.js +4 -1
- package/node/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.js +2 -1
- package/node/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +155 -112
- package/node/internals/plugins/useTreeViewNodes/useTreeViewNodes.js +18 -3
- package/node/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +18 -6
- package/node/internals/useTreeView/useTreeView.js +7 -3
- package/node/internals/useTreeView/useTreeViewModels.js +12 -13
- package/node/internals/utils/extractPluginParamsFromProps.js +46 -0
- package/package.json +7 -7
- package/themeAugmentation/components.d.ts +4 -4
- package/internals/plugins/useTreeViewContextValueBuilder/index.d.ts +0 -2
- package/internals/plugins/useTreeViewContextValueBuilder/index.js +0 -1
- package/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.d.ts +0 -3
- package/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.js +0 -26
- package/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.types.d.ts +0 -29
- package/legacy/internals/plugins/useTreeViewContextValueBuilder/index.js +0 -1
- package/legacy/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.js +0 -28
- package/modern/internals/plugins/useTreeViewContextValueBuilder/index.js +0 -1
- package/modern/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.js +0 -26
- package/node/internals/plugins/useTreeViewContextValueBuilder/index.js +0 -12
- package/node/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.js +0 -33
- /package/internals/{plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.types.js → models/MuiCancellableEvent.js} +0 -0
- /package/{legacy/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.types.js → internals/plugins/useTreeViewIcons/useTreeViewIcons.types.js} +0 -0
- /package/{modern/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.types.js → legacy/internals/models/MuiCancellableEvent.js} +0 -0
- /package/node/internals/{plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.types.js → models/MuiCancellableEvent.js} +0 -0
|
@@ -10,7 +10,6 @@ export const useTreeViewSelection = ({
|
|
|
10
10
|
const lastSelectedNode = React.useRef(null);
|
|
11
11
|
const lastSelectionWasRange = React.useRef(false);
|
|
12
12
|
const currentRangeSelection = React.useRef([]);
|
|
13
|
-
const isNodeSelected = nodeId => Array.isArray(models.selectedNodes.value) ? models.selectedNodes.value.indexOf(nodeId) !== -1 : models.selectedNodes.value === nodeId;
|
|
14
13
|
const setSelectedNodes = (event, newSelectedNodes) => {
|
|
15
14
|
if (params.onNodeSelectionToggle) {
|
|
16
15
|
if (params.multiSelect) {
|
|
@@ -34,8 +33,9 @@ export const useTreeViewSelection = ({
|
|
|
34
33
|
if (params.onSelectedNodesChange) {
|
|
35
34
|
params.onSelectedNodesChange(event, newSelectedNodes);
|
|
36
35
|
}
|
|
37
|
-
models.selectedNodes.
|
|
36
|
+
models.selectedNodes.setControlledValue(newSelectedNodes);
|
|
38
37
|
};
|
|
38
|
+
const isNodeSelected = nodeId => Array.isArray(models.selectedNodes.value) ? models.selectedNodes.value.indexOf(nodeId) !== -1 : models.selectedNodes.value === nodeId;
|
|
39
39
|
const selectNode = (event, nodeId, multiple = false) => {
|
|
40
40
|
if (params.disableSelection) {
|
|
41
41
|
return;
|
|
@@ -165,13 +165,17 @@ export const useTreeViewSelection = ({
|
|
|
165
165
|
return {
|
|
166
166
|
getRootProps: () => ({
|
|
167
167
|
'aria-multiselectable': params.multiSelect
|
|
168
|
-
})
|
|
168
|
+
}),
|
|
169
|
+
contextValue: {
|
|
170
|
+
selection: {
|
|
171
|
+
multiSelect: params.multiSelect
|
|
172
|
+
}
|
|
173
|
+
}
|
|
169
174
|
};
|
|
170
175
|
};
|
|
171
176
|
useTreeViewSelection.models = {
|
|
172
177
|
selectedNodes: {
|
|
173
|
-
|
|
174
|
-
defaultProp: 'defaultSelectedNodes'
|
|
178
|
+
getDefaultValue: params => params.defaultSelectedNodes
|
|
175
179
|
}
|
|
176
180
|
};
|
|
177
181
|
const DEFAULT_SELECTED_NODES = [];
|
|
@@ -179,4 +183,12 @@ useTreeViewSelection.getDefaultizedParams = params => _extends({}, params, {
|
|
|
179
183
|
disableSelection: params.disableSelection ?? false,
|
|
180
184
|
multiSelect: params.multiSelect ?? false,
|
|
181
185
|
defaultSelectedNodes: params.defaultSelectedNodes ?? (params.multiSelect ? DEFAULT_SELECTED_NODES : null)
|
|
182
|
-
});
|
|
186
|
+
});
|
|
187
|
+
useTreeViewSelection.params = {
|
|
188
|
+
disableSelection: true,
|
|
189
|
+
multiSelect: true,
|
|
190
|
+
defaultSelectedNodes: true,
|
|
191
|
+
selectedNodes: true,
|
|
192
|
+
onSelectedNodesChange: true,
|
|
193
|
+
onNodeSelectionToggle: true
|
|
194
|
+
};
|
|
@@ -26,11 +26,15 @@ export const useTreeView = inParams => {
|
|
|
26
26
|
return temp;
|
|
27
27
|
});
|
|
28
28
|
const rootPropsGetters = [];
|
|
29
|
-
|
|
29
|
+
const contextValue = {
|
|
30
|
+
instance: instance
|
|
31
|
+
};
|
|
30
32
|
const runPlugin = plugin => {
|
|
31
33
|
const pluginResponse = plugin({
|
|
32
34
|
instance,
|
|
33
35
|
params,
|
|
36
|
+
slots: params.slots,
|
|
37
|
+
slotProps: params.slotProps,
|
|
34
38
|
state,
|
|
35
39
|
setState,
|
|
36
40
|
rootRef: innerRootRef,
|
|
@@ -40,7 +44,7 @@ export const useTreeView = inParams => {
|
|
|
40
44
|
rootPropsGetters.push(pluginResponse.getRootProps);
|
|
41
45
|
}
|
|
42
46
|
if (pluginResponse.contextValue) {
|
|
43
|
-
contextValue
|
|
47
|
+
Object.assign(contextValue, pluginResponse.contextValue);
|
|
44
48
|
}
|
|
45
49
|
};
|
|
46
50
|
plugins.forEach(runPlugin);
|
|
@@ -96,7 +100,7 @@ export const useTreeView = inParams => {
|
|
|
96
100
|
return {
|
|
97
101
|
getRootProps,
|
|
98
102
|
rootRef: handleRootRef,
|
|
99
|
-
contextValue,
|
|
103
|
+
contextValue: contextValue,
|
|
100
104
|
instance: instance
|
|
101
105
|
};
|
|
102
106
|
};
|
|
@@ -10,23 +10,22 @@ export const useTreeViewModels = (plugins, props) => {
|
|
|
10
10
|
const initialState = {};
|
|
11
11
|
plugins.forEach(plugin => {
|
|
12
12
|
if (plugin.models) {
|
|
13
|
-
Object.entries(plugin.models).forEach(([modelName,
|
|
13
|
+
Object.entries(plugin.models).forEach(([modelName, modelInitializer]) => {
|
|
14
14
|
modelsRef.current[modelName] = {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
isControlled: props[model.controlledProp] !== undefined
|
|
15
|
+
isControlled: props[modelName] !== undefined,
|
|
16
|
+
getDefaultValue: modelInitializer.getDefaultValue
|
|
18
17
|
};
|
|
19
|
-
initialState[modelName] = props
|
|
18
|
+
initialState[modelName] = modelInitializer.getDefaultValue(props);
|
|
20
19
|
});
|
|
21
20
|
}
|
|
22
21
|
});
|
|
23
22
|
return initialState;
|
|
24
23
|
});
|
|
25
24
|
const models = Object.fromEntries(Object.entries(modelsRef.current).map(([modelName, model]) => {
|
|
26
|
-
const value = model.isControlled ? props[
|
|
25
|
+
const value = model.isControlled ? props[modelName] : modelsState[modelName];
|
|
27
26
|
return [modelName, {
|
|
28
27
|
value,
|
|
29
|
-
|
|
28
|
+
setControlledValue: newValue => {
|
|
30
29
|
if (!model.isControlled) {
|
|
31
30
|
setModelsState(prevState => _extends({}, prevState, {
|
|
32
31
|
[modelName]: newValue
|
|
@@ -40,19 +39,19 @@ export const useTreeViewModels = (plugins, props) => {
|
|
|
40
39
|
/* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */
|
|
41
40
|
if (process.env.NODE_ENV !== 'production') {
|
|
42
41
|
Object.entries(modelsRef.current).forEach(([modelName, model]) => {
|
|
43
|
-
const controlled = props[
|
|
44
|
-
const
|
|
42
|
+
const controlled = props[modelName];
|
|
43
|
+
const newDefaultValue = model.getDefaultValue(props);
|
|
45
44
|
React.useEffect(() => {
|
|
46
45
|
if (model.isControlled !== (controlled !== undefined)) {
|
|
47
|
-
console.error([`MUI: A component is changing the ${model.isControlled ? '' : 'un'}controlled ${modelName} state of TreeView to be ${model.isControlled ? 'un' : ''}controlled.`, 'Elements should not switch from uncontrolled to controlled (or vice versa).', `Decide between using a controlled or uncontrolled ${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'));
|
|
46
|
+
console.error([`MUI X: A component is changing the ${model.isControlled ? '' : 'un'}controlled ${modelName} state of TreeView to be ${model.isControlled ? 'un' : ''}controlled.`, 'Elements should not switch from uncontrolled to controlled (or vice versa).', `Decide between using a controlled or uncontrolled ${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'));
|
|
48
47
|
}
|
|
49
48
|
}, [controlled]);
|
|
50
49
|
const {
|
|
51
50
|
current: defaultValue
|
|
52
|
-
} = React.useRef(
|
|
51
|
+
} = React.useRef(newDefaultValue);
|
|
53
52
|
React.useEffect(() => {
|
|
54
|
-
if (!model.isControlled && defaultValue !==
|
|
55
|
-
console.error([`MUI: A component is changing the default ${modelName} state of an uncontrolled TreeView after being initialized. ` + `To suppress this warning opt to use a controlled TreeView.`].join('\n'));
|
|
53
|
+
if (!model.isControlled && defaultValue !== newDefaultValue) {
|
|
54
|
+
console.error([`MUI X: A component is changing the default ${modelName} state of an uncontrolled TreeView after being initialized. ` + `To suppress this warning opt to use a controlled TreeView.`].join('\n'));
|
|
56
55
|
}
|
|
57
56
|
}, [JSON.stringify(defaultValue)]);
|
|
58
57
|
});
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
2
|
+
const _excluded = ["slots", "slotProps"];
|
|
3
|
+
export const extractPluginParamsFromProps = _ref => {
|
|
4
|
+
let {
|
|
5
|
+
props: {
|
|
6
|
+
slots,
|
|
7
|
+
slotProps
|
|
8
|
+
},
|
|
9
|
+
plugins,
|
|
10
|
+
rootRef
|
|
11
|
+
} = _ref,
|
|
12
|
+
props = _objectWithoutPropertiesLoose(_ref.props, _excluded);
|
|
13
|
+
const paramsLookup = {};
|
|
14
|
+
plugins.forEach(plugin => {
|
|
15
|
+
Object.assign(paramsLookup, plugin.params);
|
|
16
|
+
});
|
|
17
|
+
const pluginParams = {
|
|
18
|
+
plugins,
|
|
19
|
+
rootRef,
|
|
20
|
+
slots: slots ?? {},
|
|
21
|
+
slotProps: slotProps ?? {}
|
|
22
|
+
};
|
|
23
|
+
const otherProps = {};
|
|
24
|
+
Object.keys(props).forEach(propName => {
|
|
25
|
+
const prop = props[propName];
|
|
26
|
+
if (paramsLookup[propName]) {
|
|
27
|
+
pluginParams[propName] = prop;
|
|
28
|
+
} else {
|
|
29
|
+
otherProps[propName] = prop;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
return {
|
|
33
|
+
pluginParams,
|
|
34
|
+
slots,
|
|
35
|
+
slotProps,
|
|
36
|
+
otherProps
|
|
37
|
+
};
|
|
38
|
+
};
|
|
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.RichTreeViewRoot = exports.RichTreeView = void 0;
|
|
8
|
-
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
9
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
9
|
var React = _interopRequireWildcard(require("react"));
|
|
11
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
@@ -18,8 +17,8 @@ var _TreeViewProvider = require("../internals/TreeViewProvider");
|
|
|
18
17
|
var _plugins = require("../internals/plugins");
|
|
19
18
|
var _TreeItem = require("../TreeItem");
|
|
20
19
|
var _warning = require("../internals/utils/warning");
|
|
20
|
+
var _extractPluginParamsFromProps = require("../internals/utils/extractPluginParamsFromProps");
|
|
21
21
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
22
|
-
const _excluded = ["disabledItemsFocusable", "expandedNodes", "defaultExpandedNodes", "onExpandedNodesChange", "onNodeExpansionToggle", "onNodeFocus", "disableSelection", "defaultSelectedNodes", "selectedNodes", "multiSelect", "onSelectedNodesChange", "onNodeSelectionToggle", "id", "defaultCollapseIcon", "defaultEndIcon", "defaultExpandIcon", "defaultParentIcon", "items", "getItemId", "getItemLabel", "isItemDisabled", "slots", "slotProps"];
|
|
23
22
|
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); }
|
|
24
23
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
25
24
|
const useUtilityClasses = ownerState => {
|
|
@@ -67,7 +66,7 @@ function WrappedTreeItem({
|
|
|
67
66
|
children: children
|
|
68
67
|
}));
|
|
69
68
|
}
|
|
70
|
-
const childrenWarning = (0, _warning.buildWarning)(['MUI: 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/']);
|
|
69
|
+
const childrenWarning = (0, _warning.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/']);
|
|
71
70
|
|
|
72
71
|
/**
|
|
73
72
|
*
|
|
@@ -84,75 +83,32 @@ const RichTreeView = exports.RichTreeView = /*#__PURE__*/React.forwardRef(functi
|
|
|
84
83
|
props: inProps,
|
|
85
84
|
name: 'MuiRichTreeView'
|
|
86
85
|
});
|
|
87
|
-
const _ref = props,
|
|
88
|
-
{
|
|
89
|
-
// Headless implementation
|
|
90
|
-
disabledItemsFocusable,
|
|
91
|
-
expandedNodes,
|
|
92
|
-
defaultExpandedNodes,
|
|
93
|
-
onExpandedNodesChange,
|
|
94
|
-
onNodeExpansionToggle,
|
|
95
|
-
onNodeFocus,
|
|
96
|
-
disableSelection,
|
|
97
|
-
defaultSelectedNodes,
|
|
98
|
-
selectedNodes,
|
|
99
|
-
multiSelect,
|
|
100
|
-
onSelectedNodesChange,
|
|
101
|
-
onNodeSelectionToggle,
|
|
102
|
-
id: treeId,
|
|
103
|
-
defaultCollapseIcon,
|
|
104
|
-
defaultEndIcon,
|
|
105
|
-
defaultExpandIcon,
|
|
106
|
-
defaultParentIcon,
|
|
107
|
-
items,
|
|
108
|
-
getItemId,
|
|
109
|
-
getItemLabel,
|
|
110
|
-
isItemDisabled,
|
|
111
|
-
// Component implementation
|
|
112
|
-
slots,
|
|
113
|
-
slotProps
|
|
114
|
-
} = _ref,
|
|
115
|
-
other = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
|
|
116
86
|
if (process.env.NODE_ENV !== 'production') {
|
|
117
87
|
if (props.children != null) {
|
|
118
88
|
childrenWarning();
|
|
119
89
|
}
|
|
120
90
|
}
|
|
121
91
|
const {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
defaultExpandedNodes,
|
|
129
|
-
onExpandedNodesChange,
|
|
130
|
-
onNodeExpansionToggle,
|
|
131
|
-
onNodeFocus,
|
|
132
|
-
disableSelection,
|
|
133
|
-
defaultSelectedNodes,
|
|
134
|
-
selectedNodes,
|
|
135
|
-
multiSelect,
|
|
136
|
-
onSelectedNodesChange,
|
|
137
|
-
onNodeSelectionToggle,
|
|
138
|
-
id: treeId,
|
|
139
|
-
defaultCollapseIcon,
|
|
140
|
-
defaultEndIcon,
|
|
141
|
-
defaultExpandIcon,
|
|
142
|
-
defaultParentIcon,
|
|
143
|
-
items,
|
|
144
|
-
getItemId,
|
|
145
|
-
getItemLabel,
|
|
146
|
-
isItemDisabled,
|
|
92
|
+
pluginParams,
|
|
93
|
+
slots,
|
|
94
|
+
slotProps,
|
|
95
|
+
otherProps
|
|
96
|
+
} = (0, _extractPluginParamsFromProps.extractPluginParamsFromProps)({
|
|
97
|
+
props,
|
|
147
98
|
plugins: _plugins.DEFAULT_TREE_VIEW_PLUGINS,
|
|
148
99
|
rootRef: ref
|
|
149
100
|
});
|
|
101
|
+
const {
|
|
102
|
+
getRootProps,
|
|
103
|
+
contextValue,
|
|
104
|
+
instance
|
|
105
|
+
} = (0, _useTreeView.useTreeView)(pluginParams);
|
|
150
106
|
const classes = useUtilityClasses(props);
|
|
151
107
|
const Root = slots?.root ?? RichTreeViewRoot;
|
|
152
108
|
const rootProps = (0, _utils.useSlotProps)({
|
|
153
109
|
elementType: Root,
|
|
154
110
|
externalSlotProps: slotProps?.root,
|
|
155
|
-
externalForwardedProps:
|
|
111
|
+
externalForwardedProps: otherProps,
|
|
156
112
|
className: classes.root,
|
|
157
113
|
getSlotProps: getRootProps,
|
|
158
114
|
ownerState: props
|
|
@@ -189,34 +145,13 @@ process.env.NODE_ENV !== "production" ? RichTreeView.propTypes = {
|
|
|
189
145
|
* Override or extend the styles applied to the component.
|
|
190
146
|
*/
|
|
191
147
|
classes: _propTypes.default.object,
|
|
192
|
-
/**
|
|
193
|
-
* className applied to the root element.
|
|
194
|
-
*/
|
|
195
148
|
className: _propTypes.default.string,
|
|
196
|
-
/**
|
|
197
|
-
* The default icon used to collapse the node.
|
|
198
|
-
*/
|
|
199
|
-
defaultCollapseIcon: _propTypes.default.node,
|
|
200
|
-
/**
|
|
201
|
-
* The default icon displayed next to a end node. This is applied to all
|
|
202
|
-
* tree nodes and can be overridden by the TreeItem `icon` prop.
|
|
203
|
-
*/
|
|
204
|
-
defaultEndIcon: _propTypes.default.node,
|
|
205
149
|
/**
|
|
206
150
|
* Expanded node ids.
|
|
207
151
|
* Used when the item's expansion is not controlled.
|
|
208
152
|
* @default []
|
|
209
153
|
*/
|
|
210
154
|
defaultExpandedNodes: _propTypes.default.arrayOf(_propTypes.default.string),
|
|
211
|
-
/**
|
|
212
|
-
* The default icon used to expand the node.
|
|
213
|
-
*/
|
|
214
|
-
defaultExpandIcon: _propTypes.default.node,
|
|
215
|
-
/**
|
|
216
|
-
* The default icon displayed next to a parent node. This is applied to all
|
|
217
|
-
* parent nodes and can be overridden by the TreeItem `icon` prop.
|
|
218
|
-
*/
|
|
219
|
-
defaultParentIcon: _propTypes.default.node,
|
|
220
155
|
/**
|
|
221
156
|
* Selected node ids. (Uncontrolled)
|
|
222
157
|
* When `multiSelect` is true this takes an array of strings; when false (default) a string.
|
|
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.SimpleTreeViewRoot = exports.SimpleTreeView = void 0;
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
-
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
10
9
|
var React = _interopRequireWildcard(require("react"));
|
|
11
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
12
11
|
var _styles = require("@mui/material/styles");
|
|
@@ -17,8 +16,8 @@ var _useTreeView = require("../internals/useTreeView");
|
|
|
17
16
|
var _TreeViewProvider = require("../internals/TreeViewProvider");
|
|
18
17
|
var _SimpleTreeView = require("./SimpleTreeView.plugins");
|
|
19
18
|
var _warning = require("../internals/utils/warning");
|
|
19
|
+
var _extractPluginParamsFromProps = require("../internals/utils/extractPluginParamsFromProps");
|
|
20
20
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
21
|
-
const _excluded = ["disabledItemsFocusable", "expandedNodes", "defaultExpandedNodes", "onExpandedNodesChange", "onNodeExpansionToggle", "onNodeFocus", "disableSelection", "defaultSelectedNodes", "selectedNodes", "multiSelect", "onSelectedNodesChange", "onNodeSelectionToggle", "id", "defaultCollapseIcon", "defaultEndIcon", "defaultExpandIcon", "defaultParentIcon", "children", "slots", "slotProps"];
|
|
22
21
|
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); }
|
|
23
22
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
24
23
|
const useUtilityClasses = ownerState => {
|
|
@@ -41,7 +40,7 @@ const SimpleTreeViewRoot = exports.SimpleTreeViewRoot = (0, _styles.styled)('ul'
|
|
|
41
40
|
outline: 0
|
|
42
41
|
});
|
|
43
42
|
const EMPTY_ITEMS = [];
|
|
44
|
-
const itemsPropWarning = (0, _warning.buildWarning)(['MUI: The `SimpleTreeView` component does not support the `items` prop.', 'If you want to add items, you need to pass them as JSX children.', 'Check the documentation for more details: https://next.mui.com/x/react-tree-view/simple-tree-view/items/']);
|
|
43
|
+
const itemsPropWarning = (0, _warning.buildWarning)(['MUI X: The `SimpleTreeView` component does not support the `items` prop.', 'If you want to add items, you need to pass them as JSX children.', 'Check the documentation for more details: https://next.mui.com/x/react-tree-view/simple-tree-view/items/']);
|
|
45
44
|
|
|
46
45
|
/**
|
|
47
46
|
*
|
|
@@ -59,76 +58,40 @@ const SimpleTreeView = exports.SimpleTreeView = /*#__PURE__*/React.forwardRef(fu
|
|
|
59
58
|
name: 'MuiSimpleTreeView'
|
|
60
59
|
});
|
|
61
60
|
const ownerState = props;
|
|
62
|
-
const _ref = props,
|
|
63
|
-
{
|
|
64
|
-
// Headless implementation
|
|
65
|
-
disabledItemsFocusable,
|
|
66
|
-
expandedNodes,
|
|
67
|
-
defaultExpandedNodes,
|
|
68
|
-
onExpandedNodesChange,
|
|
69
|
-
onNodeExpansionToggle,
|
|
70
|
-
onNodeFocus,
|
|
71
|
-
disableSelection,
|
|
72
|
-
defaultSelectedNodes,
|
|
73
|
-
selectedNodes,
|
|
74
|
-
multiSelect,
|
|
75
|
-
onSelectedNodesChange,
|
|
76
|
-
onNodeSelectionToggle,
|
|
77
|
-
id,
|
|
78
|
-
defaultCollapseIcon,
|
|
79
|
-
defaultEndIcon,
|
|
80
|
-
defaultExpandIcon,
|
|
81
|
-
defaultParentIcon,
|
|
82
|
-
// Component implementation
|
|
83
|
-
children,
|
|
84
|
-
slots
|
|
85
|
-
} = _ref,
|
|
86
|
-
other = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
|
|
87
61
|
if (process.env.NODE_ENV !== 'production') {
|
|
88
62
|
if (props.items != null) {
|
|
89
63
|
itemsPropWarning();
|
|
90
64
|
}
|
|
91
65
|
}
|
|
92
66
|
const {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
onNodeFocus,
|
|
102
|
-
disableSelection,
|
|
103
|
-
defaultSelectedNodes,
|
|
104
|
-
selectedNodes,
|
|
105
|
-
multiSelect,
|
|
106
|
-
onSelectedNodesChange,
|
|
107
|
-
onNodeSelectionToggle,
|
|
108
|
-
id,
|
|
109
|
-
defaultCollapseIcon,
|
|
110
|
-
defaultEndIcon,
|
|
111
|
-
defaultExpandIcon,
|
|
112
|
-
defaultParentIcon,
|
|
113
|
-
items: EMPTY_ITEMS,
|
|
67
|
+
pluginParams,
|
|
68
|
+
slots,
|
|
69
|
+
slotProps,
|
|
70
|
+
otherProps
|
|
71
|
+
} = (0, _extractPluginParamsFromProps.extractPluginParamsFromProps)({
|
|
72
|
+
props: (0, _extends2.default)({}, props, {
|
|
73
|
+
items: EMPTY_ITEMS
|
|
74
|
+
}),
|
|
114
75
|
plugins: _SimpleTreeView.SIMPLE_TREE_VIEW_PLUGINS,
|
|
115
76
|
rootRef: ref
|
|
116
77
|
});
|
|
78
|
+
const {
|
|
79
|
+
getRootProps,
|
|
80
|
+
contextValue
|
|
81
|
+
} = (0, _useTreeView.useTreeView)(pluginParams);
|
|
117
82
|
const classes = useUtilityClasses(props);
|
|
118
83
|
const Root = slots?.root ?? SimpleTreeViewRoot;
|
|
119
84
|
const rootProps = (0, _utils.useSlotProps)({
|
|
120
85
|
elementType: Root,
|
|
121
|
-
externalSlotProps:
|
|
122
|
-
externalForwardedProps:
|
|
86
|
+
externalSlotProps: slotProps?.root,
|
|
87
|
+
externalForwardedProps: otherProps,
|
|
123
88
|
className: classes.root,
|
|
124
89
|
getSlotProps: getRootProps,
|
|
125
90
|
ownerState
|
|
126
91
|
});
|
|
127
92
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TreeViewProvider.TreeViewProvider, {
|
|
128
93
|
value: contextValue,
|
|
129
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Root, (0, _extends2.default)({}, rootProps
|
|
130
|
-
children: children
|
|
131
|
-
}))
|
|
94
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Root, (0, _extends2.default)({}, rootProps))
|
|
132
95
|
});
|
|
133
96
|
});
|
|
134
97
|
process.env.NODE_ENV !== "production" ? SimpleTreeView.propTypes = {
|
|
@@ -144,34 +107,13 @@ process.env.NODE_ENV !== "production" ? SimpleTreeView.propTypes = {
|
|
|
144
107
|
* Override or extend the styles applied to the component.
|
|
145
108
|
*/
|
|
146
109
|
classes: _propTypes.default.object,
|
|
147
|
-
/**
|
|
148
|
-
* className applied to the root element.
|
|
149
|
-
*/
|
|
150
110
|
className: _propTypes.default.string,
|
|
151
|
-
/**
|
|
152
|
-
* The default icon used to collapse the node.
|
|
153
|
-
*/
|
|
154
|
-
defaultCollapseIcon: _propTypes.default.node,
|
|
155
|
-
/**
|
|
156
|
-
* The default icon displayed next to a end node. This is applied to all
|
|
157
|
-
* tree nodes and can be overridden by the TreeItem `icon` prop.
|
|
158
|
-
*/
|
|
159
|
-
defaultEndIcon: _propTypes.default.node,
|
|
160
111
|
/**
|
|
161
112
|
* Expanded node ids.
|
|
162
113
|
* Used when the item's expansion is not controlled.
|
|
163
114
|
* @default []
|
|
164
115
|
*/
|
|
165
116
|
defaultExpandedNodes: _propTypes.default.arrayOf(_propTypes.default.string),
|
|
166
|
-
/**
|
|
167
|
-
* The default icon used to expand the node.
|
|
168
|
-
*/
|
|
169
|
-
defaultExpandIcon: _propTypes.default.node,
|
|
170
|
-
/**
|
|
171
|
-
* The default icon displayed next to a parent node. This is applied to all
|
|
172
|
-
* parent nodes and can be overridden by the TreeItem `icon` prop.
|
|
173
|
-
*/
|
|
174
|
-
defaultParentIcon: _propTypes.default.node,
|
|
175
117
|
/**
|
|
176
118
|
* Selected node ids. (Uncontrolled)
|
|
177
119
|
* When `multiSelect` is true this takes an array of strings; when false (default) a string.
|
|
@@ -11,6 +11,7 @@ var React = _interopRequireWildcard(require("react"));
|
|
|
11
11
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
12
12
|
var _clsx = _interopRequireDefault(require("clsx"));
|
|
13
13
|
var _Collapse = _interopRequireDefault(require("@mui/material/Collapse"));
|
|
14
|
+
var _utils = require("@mui/base/utils");
|
|
14
15
|
var _styles = require("@mui/material/styles");
|
|
15
16
|
var _unsupportedProp = _interopRequireDefault(require("@mui/utils/unsupportedProp"));
|
|
16
17
|
var _elementTypeAcceptingRef = _interopRequireDefault(require("@mui/utils/elementTypeAcceptingRef"));
|
|
@@ -18,8 +19,12 @@ var _base = require("@mui/base");
|
|
|
18
19
|
var _TreeItemContent = require("./TreeItemContent");
|
|
19
20
|
var _treeItemClasses = require("./treeItemClasses");
|
|
20
21
|
var _useTreeViewContext = require("../internals/TreeViewProvider/useTreeViewContext");
|
|
22
|
+
var _icons = require("../icons");
|
|
21
23
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
22
|
-
const _excluded = ["children", "className", "
|
|
24
|
+
const _excluded = ["children", "className", "slots", "slotProps", "ContentComponent", "ContentProps", "nodeId", "id", "label", "onClick", "onMouseDown", "TransitionComponent", "TransitionProps"],
|
|
25
|
+
_excluded2 = ["ownerState"],
|
|
26
|
+
_excluded3 = ["ownerState"],
|
|
27
|
+
_excluded4 = ["ownerState"];
|
|
23
28
|
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); }
|
|
24
29
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
25
30
|
const useUtilityClasses = ownerState => {
|
|
@@ -141,7 +146,9 @@ const TreeItem = exports.TreeItem = /*#__PURE__*/React.forwardRef(function TreeI
|
|
|
141
146
|
const {
|
|
142
147
|
icons: contextIcons,
|
|
143
148
|
runItemPlugins,
|
|
144
|
-
|
|
149
|
+
selection: {
|
|
150
|
+
multiSelect
|
|
151
|
+
},
|
|
145
152
|
disabledItemsFocusable,
|
|
146
153
|
instance
|
|
147
154
|
} = (0, _useTreeViewContext.useTreeViewContext)();
|
|
@@ -160,12 +167,10 @@ const TreeItem = exports.TreeItem = /*#__PURE__*/React.forwardRef(function TreeI
|
|
|
160
167
|
const {
|
|
161
168
|
children,
|
|
162
169
|
className,
|
|
163
|
-
|
|
170
|
+
slots: inSlots,
|
|
171
|
+
slotProps: inSlotProps,
|
|
164
172
|
ContentComponent = _TreeItemContent.TreeItemContent,
|
|
165
173
|
ContentProps,
|
|
166
|
-
endIcon,
|
|
167
|
-
expandIcon,
|
|
168
|
-
icon,
|
|
169
174
|
nodeId,
|
|
170
175
|
id,
|
|
171
176
|
label,
|
|
@@ -175,6 +180,12 @@ const TreeItem = exports.TreeItem = /*#__PURE__*/React.forwardRef(function TreeI
|
|
|
175
180
|
TransitionProps
|
|
176
181
|
} = props,
|
|
177
182
|
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
183
|
+
const slots = {
|
|
184
|
+
expandIcon: inSlots?.expandIcon ?? contextIcons.slots.expandIcon ?? _icons.TreeViewExpandIcon,
|
|
185
|
+
collapseIcon: inSlots?.collapseIcon ?? contextIcons.slots.collapseIcon ?? _icons.TreeViewCollapseIcon,
|
|
186
|
+
endIcon: inSlots?.endIcon ?? contextIcons.slots.endIcon,
|
|
187
|
+
icon: inSlots?.icon
|
|
188
|
+
};
|
|
178
189
|
const expandable = Boolean(Array.isArray(children) ? children.length : children);
|
|
179
190
|
const expanded = instance.isNodeExpanded(nodeId);
|
|
180
191
|
const focused = instance.isNodeFocused(nodeId);
|
|
@@ -187,20 +198,40 @@ const TreeItem = exports.TreeItem = /*#__PURE__*/React.forwardRef(function TreeI
|
|
|
187
198
|
disabled
|
|
188
199
|
});
|
|
189
200
|
const classes = useUtilityClasses(ownerState);
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
201
|
+
const ExpansionIcon = expanded ? slots.collapseIcon : slots.expandIcon;
|
|
202
|
+
const _useSlotProps = (0, _utils.useSlotProps)({
|
|
203
|
+
elementType: ExpansionIcon,
|
|
204
|
+
ownerState: {},
|
|
205
|
+
externalSlotProps: tempOwnerState => {
|
|
206
|
+
if (expanded) {
|
|
207
|
+
return (0, _extends2.default)({}, (0, _utils.resolveComponentProps)(contextIcons.slotProps.collapseIcon, tempOwnerState), (0, _utils.resolveComponentProps)(inSlotProps?.collapseIcon, tempOwnerState));
|
|
208
|
+
}
|
|
209
|
+
return (0, _extends2.default)({}, (0, _utils.resolveComponentProps)(contextIcons.slotProps.expandIcon, tempOwnerState), (0, _utils.resolveComponentProps)(inSlotProps?.expandIcon, tempOwnerState));
|
|
210
|
+
}
|
|
211
|
+
}),
|
|
212
|
+
expansionIconProps = (0, _objectWithoutPropertiesLoose2.default)(_useSlotProps, _excluded2);
|
|
213
|
+
const expansionIcon = expandable && !!ExpansionIcon ? /*#__PURE__*/(0, _jsxRuntime.jsx)(ExpansionIcon, (0, _extends2.default)({}, expansionIconProps)) : null;
|
|
214
|
+
const DisplayIcon = expandable ? undefined : slots.endIcon;
|
|
215
|
+
const _useSlotProps2 = (0, _utils.useSlotProps)({
|
|
216
|
+
elementType: DisplayIcon,
|
|
217
|
+
ownerState: {},
|
|
218
|
+
externalSlotProps: tempOwnerState => {
|
|
219
|
+
if (expandable) {
|
|
220
|
+
return {};
|
|
221
|
+
}
|
|
222
|
+
return (0, _extends2.default)({}, (0, _utils.resolveComponentProps)(contextIcons.slotProps.endIcon, tempOwnerState), (0, _utils.resolveComponentProps)(inSlotProps?.endIcon, tempOwnerState));
|
|
223
|
+
}
|
|
224
|
+
}),
|
|
225
|
+
displayIconProps = (0, _objectWithoutPropertiesLoose2.default)(_useSlotProps2, _excluded3);
|
|
226
|
+
const displayIcon = DisplayIcon ? /*#__PURE__*/(0, _jsxRuntime.jsx)(DisplayIcon, (0, _extends2.default)({}, displayIconProps)) : null;
|
|
227
|
+
const Icon = slots.icon;
|
|
228
|
+
const _useSlotProps3 = (0, _utils.useSlotProps)({
|
|
229
|
+
elementType: Icon,
|
|
230
|
+
ownerState: {},
|
|
231
|
+
externalSlotProps: inSlotProps?.icon
|
|
232
|
+
}),
|
|
233
|
+
iconProps = (0, _objectWithoutPropertiesLoose2.default)(_useSlotProps3, _excluded4);
|
|
234
|
+
const icon = Icon ? /*#__PURE__*/(0, _jsxRuntime.jsx)(Icon, (0, _extends2.default)({}, iconProps)) : null;
|
|
204
235
|
let ariaSelected;
|
|
205
236
|
if (multiSelect) {
|
|
206
237
|
ariaSelected = selected;
|
|
@@ -281,14 +312,7 @@ TreeItem.propTypes = {
|
|
|
281
312
|
* Override or extend the styles applied to the component.
|
|
282
313
|
*/
|
|
283
314
|
classes: _propTypes.default.object,
|
|
284
|
-
/**
|
|
285
|
-
* className applied to the root element.
|
|
286
|
-
*/
|
|
287
315
|
className: _propTypes.default.string,
|
|
288
|
-
/**
|
|
289
|
-
* The icon used to collapse the node.
|
|
290
|
-
*/
|
|
291
|
-
collapseIcon: _propTypes.default.node,
|
|
292
316
|
/**
|
|
293
317
|
* The component used for the content node.
|
|
294
318
|
* @default TreeItemContent
|
|
@@ -303,18 +327,6 @@ TreeItem.propTypes = {
|
|
|
303
327
|
* @default false
|
|
304
328
|
*/
|
|
305
329
|
disabled: _propTypes.default.bool,
|
|
306
|
-
/**
|
|
307
|
-
* The icon displayed next to an end node.
|
|
308
|
-
*/
|
|
309
|
-
endIcon: _propTypes.default.node,
|
|
310
|
-
/**
|
|
311
|
-
* The icon used to expand the node.
|
|
312
|
-
*/
|
|
313
|
-
expandIcon: _propTypes.default.node,
|
|
314
|
-
/**
|
|
315
|
-
* The icon to display next to the tree node's label.
|
|
316
|
-
*/
|
|
317
|
-
icon: _propTypes.default.node,
|
|
318
330
|
/**
|
|
319
331
|
* The tree node label.
|
|
320
332
|
*/
|
|
@@ -328,6 +340,16 @@ TreeItem.propTypes = {
|
|
|
328
340
|
* Use the `onNodeFocus` callback on the tree if you need to monitor a node's focus.
|
|
329
341
|
*/
|
|
330
342
|
onFocus: _unsupportedProp.default,
|
|
343
|
+
/**
|
|
344
|
+
* The props used for each component slot.
|
|
345
|
+
* @default {}
|
|
346
|
+
*/
|
|
347
|
+
slotProps: _propTypes.default.object,
|
|
348
|
+
/**
|
|
349
|
+
* Overridable component slots.
|
|
350
|
+
* @default {}
|
|
351
|
+
*/
|
|
352
|
+
slots: _propTypes.default.object,
|
|
331
353
|
/**
|
|
332
354
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
333
355
|
*/
|