@mui/x-tree-view 7.0.0-beta.3 → 7.0.0-beta.5
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 +357 -22
- package/RichTreeView/RichTreeView.js +8 -0
- package/RichTreeView/RichTreeView.types.d.ts +7 -1
- package/SimpleTreeView/SimpleTreeView.js +8 -0
- package/SimpleTreeView/SimpleTreeView.types.d.ts +7 -1
- package/TreeItem/TreeItem.js +1 -1
- package/TreeItem/TreeItem.types.d.ts +1 -1
- package/TreeView/TreeView.js +8 -0
- package/hooks/index.d.ts +1 -0
- package/hooks/index.js +1 -0
- package/hooks/package.json +6 -0
- package/hooks/useTreeViewApiRef.d.ts +6 -0
- package/hooks/useTreeViewApiRef.js +5 -0
- package/index.d.ts +1 -0
- package/index.js +3 -2
- package/internals/TreeViewProvider/DescendantProvider.js +1 -11
- package/internals/hooks/useTimeout.d.ts +5 -3
- package/internals/hooks/useTimeout.js +13 -5
- package/internals/models/helpers.d.ts +1 -0
- package/internals/models/plugin.d.ts +12 -0
- package/internals/models/treeView.d.ts +1 -0
- package/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +40 -22
- package/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +5 -0
- package/internals/useTreeView/useTreeView.d.ts +2 -0
- package/internals/useTreeView/useTreeView.js +12 -0
- package/internals/useTreeView/useTreeView.types.d.ts +2 -1
- package/internals/useTreeView/useTreeView.utils.d.ts +2 -1
- package/internals/useTreeView/useTreeView.utils.js +3 -0
- package/internals/utils/extractPluginParamsFromProps.d.ts +3 -2
- package/internals/utils/extractPluginParamsFromProps.js +5 -3
- package/internals/utils/utils.d.ts +1 -0
- package/internals/utils/utils.js +10 -0
- package/modern/RichTreeView/RichTreeView.js +8 -0
- package/modern/SimpleTreeView/SimpleTreeView.js +8 -0
- package/modern/TreeItem/TreeItem.js +1 -1
- package/modern/TreeView/TreeView.js +8 -0
- package/modern/hooks/index.js +1 -0
- package/modern/hooks/useTreeViewApiRef.js +5 -0
- package/modern/index.js +3 -2
- package/modern/internals/TreeViewProvider/DescendantProvider.js +1 -11
- package/modern/internals/hooks/useTimeout.js +13 -5
- package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +40 -22
- package/modern/internals/useTreeView/useTreeView.js +12 -0
- package/modern/internals/useTreeView/useTreeView.utils.js +3 -0
- package/modern/internals/utils/extractPluginParamsFromProps.js +5 -3
- package/modern/internals/utils/utils.js +10 -0
- package/node/RichTreeView/RichTreeView.js +8 -0
- package/node/SimpleTreeView/SimpleTreeView.js +8 -0
- package/node/TreeItem/TreeItem.js +1 -1
- package/node/TreeView/TreeView.js +8 -0
- package/node/hooks/index.js +12 -0
- package/node/hooks/useTreeViewApiRef.js +14 -0
- package/node/index.js +13 -1
- package/node/internals/TreeViewProvider/DescendantProvider.js +1 -10
- package/node/internals/hooks/useTimeout.js +13 -4
- package/node/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +39 -21
- package/node/internals/useTreeView/useTreeView.js +13 -0
- package/node/internals/useTreeView/useTreeView.utils.js +6 -2
- package/node/internals/utils/extractPluginParamsFromProps.js +5 -3
- package/node/internals/utils/utils.js +17 -0
- package/package.json +1 -1
- package/legacy/RichTreeView/RichTreeView.js +0 -255
- package/legacy/RichTreeView/RichTreeView.types.js +0 -1
- package/legacy/RichTreeView/index.js +0 -3
- package/legacy/RichTreeView/richTreeViewClasses.js +0 -6
- package/legacy/SimpleTreeView/SimpleTreeView.js +0 -190
- package/legacy/SimpleTreeView/SimpleTreeView.plugins.js +0 -6
- package/legacy/SimpleTreeView/SimpleTreeView.types.js +0 -1
- package/legacy/SimpleTreeView/index.js +0 -3
- package/legacy/SimpleTreeView/simpleTreeViewClasses.js +0 -6
- package/legacy/TreeItem/TreeItem.js +0 -360
- package/legacy/TreeItem/TreeItem.types.js +0 -1
- package/legacy/TreeItem/TreeItemContent.js +0 -95
- package/legacy/TreeItem/index.js +0 -4
- package/legacy/TreeItem/treeItemClasses.js +0 -6
- package/legacy/TreeItem/useTreeItemState.js +0 -58
- package/legacy/TreeView/TreeView.js +0 -165
- package/legacy/TreeView/TreeView.types.js +0 -1
- package/legacy/TreeView/index.js +0 -3
- package/legacy/TreeView/treeViewClasses.js +0 -6
- package/legacy/icons/icons.js +0 -9
- package/legacy/icons/index.js +0 -1
- package/legacy/index.js +0 -14
- package/legacy/internals/TreeViewProvider/DescendantProvider.js +0 -199
- package/legacy/internals/TreeViewProvider/TreeViewContext.js +0 -8
- package/legacy/internals/TreeViewProvider/TreeViewProvider.js +0 -19
- package/legacy/internals/TreeViewProvider/TreeViewProvider.types.js +0 -1
- package/legacy/internals/TreeViewProvider/index.js +0 -1
- package/legacy/internals/TreeViewProvider/useTreeViewContext.js +0 -9
- package/legacy/internals/corePlugins/corePlugins.js +0 -6
- package/legacy/internals/corePlugins/index.js +0 -1
- package/legacy/internals/corePlugins/useTreeViewInstanceEvents/index.js +0 -1
- package/legacy/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +0 -40
- package/legacy/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.js +0 -1
- package/legacy/internals/hooks/useInstanceEventHandler.js +0 -87
- package/legacy/internals/hooks/useLazyRef.js +0 -11
- package/legacy/internals/hooks/useOnMount.js +0 -7
- package/legacy/internals/hooks/useTimeout.js +0 -38
- package/legacy/internals/index.js +0 -4
- package/legacy/internals/models/MuiCancellableEvent.js +0 -1
- package/legacy/internals/models/events.js +0 -1
- package/legacy/internals/models/helpers.js +0 -1
- package/legacy/internals/models/index.js +0 -3
- package/legacy/internals/models/plugin.js +0 -1
- package/legacy/internals/models/treeView.js +0 -1
- package/legacy/internals/plugins/defaultPlugins.js +0 -10
- package/legacy/internals/plugins/index.js +0 -1
- package/legacy/internals/plugins/useTreeViewExpansion/index.js +0 -1
- package/legacy/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +0 -81
- package/legacy/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.js +0 -1
- package/legacy/internals/plugins/useTreeViewFocus/index.js +0 -1
- package/legacy/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +0 -103
- package/legacy/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.js +0 -1
- package/legacy/internals/plugins/useTreeViewIcons/index.js +0 -1
- package/legacy/internals/plugins/useTreeViewIcons/useTreeViewIcons.js +0 -21
- package/legacy/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.js +0 -1
- package/legacy/internals/plugins/useTreeViewId/index.js +0 -1
- package/legacy/internals/plugins/useTreeViewId/useTreeViewId.js +0 -24
- package/legacy/internals/plugins/useTreeViewId/useTreeViewId.types.js +0 -1
- package/legacy/internals/plugins/useTreeViewJSXNodes/index.js +0 -1
- package/legacy/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.js +0 -130
- package/legacy/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.types.js +0 -1
- package/legacy/internals/plugins/useTreeViewKeyboardNavigation/index.js +0 -1
- package/legacy/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +0 -284
- package/legacy/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.js +0 -1
- package/legacy/internals/plugins/useTreeViewNodes/index.js +0 -1
- package/legacy/internals/plugins/useTreeViewNodes/useTreeViewNodes.js +0 -161
- package/legacy/internals/plugins/useTreeViewNodes/useTreeViewNodes.types.js +0 -1
- package/legacy/internals/plugins/useTreeViewSelection/index.js +0 -1
- package/legacy/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +0 -219
- package/legacy/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.js +0 -1
- package/legacy/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +0 -55
- package/legacy/internals/useTreeView/index.js +0 -1
- package/legacy/internals/useTreeView/useTreeView.js +0 -111
- package/legacy/internals/useTreeView/useTreeView.types.js +0 -1
- package/legacy/internals/useTreeView/useTreeView.utils.js +0 -46
- package/legacy/internals/useTreeView/useTreeViewModels.js +0 -75
- package/legacy/internals/utils/EventManager.js +0 -91
- package/legacy/internals/utils/cleanupTracking/CleanupTracking.js +0 -1
- package/legacy/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js +0 -29
- package/legacy/internals/utils/cleanupTracking/TimerBasedCleanupTracking.js +0 -52
- package/legacy/internals/utils/extractPluginParamsFromProps.js +0 -36
- package/legacy/internals/utils/publishTreeViewEvent.js +0 -3
- package/legacy/internals/utils/warning.js +0 -15
- package/legacy/models/index.js +0 -1
- package/legacy/models/items.js +0 -1
- package/legacy/themeAugmentation/index.js +0 -3
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { useTreeViewId } from './useTreeViewId';
|
|
2
|
-
import { useTreeViewNodes } from './useTreeViewNodes';
|
|
3
|
-
import { useTreeViewExpansion } from './useTreeViewExpansion';
|
|
4
|
-
import { useTreeViewSelection } from './useTreeViewSelection';
|
|
5
|
-
import { useTreeViewFocus } from './useTreeViewFocus';
|
|
6
|
-
import { useTreeViewKeyboardNavigation } from './useTreeViewKeyboardNavigation';
|
|
7
|
-
import { useTreeViewIcons } from './useTreeViewIcons';
|
|
8
|
-
export var DEFAULT_TREE_VIEW_PLUGINS = [useTreeViewId, useTreeViewNodes, useTreeViewExpansion, useTreeViewSelection, useTreeViewFocus, useTreeViewKeyboardNavigation, useTreeViewIcons];
|
|
9
|
-
|
|
10
|
-
// We can't infer this type from the plugin, otherwise we would lose the generics.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { DEFAULT_TREE_VIEW_PLUGINS } from './defaultPlugins';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { useTreeViewExpansion } from './useTreeViewExpansion';
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
import * as React from 'react';
|
|
3
|
-
import useEventCallback from '@mui/utils/useEventCallback';
|
|
4
|
-
import { populateInstance } from '../../useTreeView/useTreeView.utils';
|
|
5
|
-
export var useTreeViewExpansion = function useTreeViewExpansion(_ref) {
|
|
6
|
-
var instance = _ref.instance,
|
|
7
|
-
params = _ref.params,
|
|
8
|
-
models = _ref.models;
|
|
9
|
-
var setExpandedNodes = function setExpandedNodes(event, value) {
|
|
10
|
-
var _params$onExpandedNod;
|
|
11
|
-
(_params$onExpandedNod = params.onExpandedNodesChange) == null || _params$onExpandedNod.call(params, event, value);
|
|
12
|
-
models.expandedNodes.setControlledValue(value);
|
|
13
|
-
};
|
|
14
|
-
var isNodeExpanded = React.useCallback(function (nodeId) {
|
|
15
|
-
return Array.isArray(models.expandedNodes.value) ? models.expandedNodes.value.indexOf(nodeId) !== -1 : false;
|
|
16
|
-
}, [models.expandedNodes.value]);
|
|
17
|
-
var isNodeExpandable = React.useCallback(function (nodeId) {
|
|
18
|
-
var _instance$getNode;
|
|
19
|
-
return !!((_instance$getNode = instance.getNode(nodeId)) != null && _instance$getNode.expandable);
|
|
20
|
-
}, [instance]);
|
|
21
|
-
var toggleNodeExpansion = useEventCallback(function (event, nodeId) {
|
|
22
|
-
if (nodeId == null) {
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
var isExpandedBefore = models.expandedNodes.value.indexOf(nodeId) !== -1;
|
|
26
|
-
var newExpanded;
|
|
27
|
-
if (isExpandedBefore) {
|
|
28
|
-
newExpanded = models.expandedNodes.value.filter(function (id) {
|
|
29
|
-
return id !== nodeId;
|
|
30
|
-
});
|
|
31
|
-
} else {
|
|
32
|
-
newExpanded = [nodeId].concat(models.expandedNodes.value);
|
|
33
|
-
}
|
|
34
|
-
if (params.onNodeExpansionToggle) {
|
|
35
|
-
params.onNodeExpansionToggle(event, nodeId, !isExpandedBefore);
|
|
36
|
-
}
|
|
37
|
-
setExpandedNodes(event, newExpanded);
|
|
38
|
-
});
|
|
39
|
-
var expandAllSiblings = function expandAllSiblings(event, nodeId) {
|
|
40
|
-
var node = instance.getNode(nodeId);
|
|
41
|
-
var siblings = instance.getChildrenIds(node.parentId);
|
|
42
|
-
var diff = siblings.filter(function (child) {
|
|
43
|
-
return instance.isNodeExpandable(child) && !instance.isNodeExpanded(child);
|
|
44
|
-
});
|
|
45
|
-
var newExpanded = models.expandedNodes.value.concat(diff);
|
|
46
|
-
if (diff.length > 0) {
|
|
47
|
-
if (params.onNodeExpansionToggle) {
|
|
48
|
-
diff.forEach(function (newlyExpandedNodeId) {
|
|
49
|
-
params.onNodeExpansionToggle(event, newlyExpandedNodeId, true);
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
setExpandedNodes(event, newExpanded);
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
populateInstance(instance, {
|
|
56
|
-
isNodeExpanded: isNodeExpanded,
|
|
57
|
-
isNodeExpandable: isNodeExpandable,
|
|
58
|
-
toggleNodeExpansion: toggleNodeExpansion,
|
|
59
|
-
expandAllSiblings: expandAllSiblings
|
|
60
|
-
});
|
|
61
|
-
};
|
|
62
|
-
useTreeViewExpansion.models = {
|
|
63
|
-
expandedNodes: {
|
|
64
|
-
getDefaultValue: function getDefaultValue(params) {
|
|
65
|
-
return params.defaultExpandedNodes;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
};
|
|
69
|
-
var DEFAULT_EXPANDED_NODES = [];
|
|
70
|
-
useTreeViewExpansion.getDefaultizedParams = function (params) {
|
|
71
|
-
var _params$defaultExpand;
|
|
72
|
-
return _extends({}, params, {
|
|
73
|
-
defaultExpandedNodes: (_params$defaultExpand = params.defaultExpandedNodes) != null ? _params$defaultExpand : DEFAULT_EXPANDED_NODES
|
|
74
|
-
});
|
|
75
|
-
};
|
|
76
|
-
useTreeViewExpansion.params = {
|
|
77
|
-
expandedNodes: true,
|
|
78
|
-
defaultExpandedNodes: true,
|
|
79
|
-
onExpandedNodesChange: true,
|
|
80
|
-
onNodeExpansionToggle: true
|
|
81
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { useTreeViewFocus } from './useTreeViewFocus';
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
import * as React from 'react';
|
|
3
|
-
import useEventCallback from '@mui/utils/useEventCallback';
|
|
4
|
-
import ownerDocument from '@mui/utils/ownerDocument';
|
|
5
|
-
import { populateInstance } from '../../useTreeView/useTreeView.utils';
|
|
6
|
-
import { useInstanceEventHandler } from '../../hooks/useInstanceEventHandler';
|
|
7
|
-
export var useTreeViewFocus = function useTreeViewFocus(_ref) {
|
|
8
|
-
var instance = _ref.instance,
|
|
9
|
-
params = _ref.params,
|
|
10
|
-
state = _ref.state,
|
|
11
|
-
setState = _ref.setState,
|
|
12
|
-
models = _ref.models,
|
|
13
|
-
rootRef = _ref.rootRef;
|
|
14
|
-
var setFocusedNodeId = useEventCallback(function (nodeId) {
|
|
15
|
-
var cleanNodeId = typeof nodeId === 'function' ? nodeId(state.focusedNodeId) : nodeId;
|
|
16
|
-
setState(function (prevState) {
|
|
17
|
-
return _extends({}, prevState, {
|
|
18
|
-
focusedNodeId: cleanNodeId
|
|
19
|
-
});
|
|
20
|
-
});
|
|
21
|
-
});
|
|
22
|
-
var isNodeFocused = React.useCallback(function (nodeId) {
|
|
23
|
-
return state.focusedNodeId === nodeId;
|
|
24
|
-
}, [state.focusedNodeId]);
|
|
25
|
-
var focusNode = useEventCallback(function (event, nodeId) {
|
|
26
|
-
if (nodeId) {
|
|
27
|
-
setFocusedNodeId(nodeId);
|
|
28
|
-
if (params.onNodeFocus) {
|
|
29
|
-
params.onNodeFocus(event, nodeId);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
var focusRoot = useEventCallback(function () {
|
|
34
|
-
var _rootRef$current;
|
|
35
|
-
(_rootRef$current = rootRef.current) == null || _rootRef$current.focus({
|
|
36
|
-
preventScroll: true
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
populateInstance(instance, {
|
|
40
|
-
isNodeFocused: isNodeFocused,
|
|
41
|
-
focusNode: focusNode,
|
|
42
|
-
focusRoot: focusRoot
|
|
43
|
-
});
|
|
44
|
-
useInstanceEventHandler(instance, 'removeNode', function (_ref2) {
|
|
45
|
-
var id = _ref2.id;
|
|
46
|
-
setFocusedNodeId(function (oldFocusedNodeId) {
|
|
47
|
-
if (oldFocusedNodeId === id && rootRef.current === ownerDocument(rootRef.current).activeElement) {
|
|
48
|
-
return instance.getChildrenIds(null)[0];
|
|
49
|
-
}
|
|
50
|
-
return oldFocusedNodeId;
|
|
51
|
-
});
|
|
52
|
-
});
|
|
53
|
-
var createHandleFocus = function createHandleFocus(otherHandlers) {
|
|
54
|
-
return function (event) {
|
|
55
|
-
var _otherHandlers$onFocu;
|
|
56
|
-
(_otherHandlers$onFocu = otherHandlers.onFocus) == null || _otherHandlers$onFocu.call(otherHandlers, event);
|
|
57
|
-
|
|
58
|
-
// if the event bubbled (which is React specific) we don't want to steal focus
|
|
59
|
-
if (event.target === event.currentTarget) {
|
|
60
|
-
var isNodeVisible = function isNodeVisible(nodeId) {
|
|
61
|
-
var node = instance.getNode(nodeId);
|
|
62
|
-
return node && (node.parentId == null || instance.isNodeExpanded(node.parentId));
|
|
63
|
-
};
|
|
64
|
-
var nodeToFocusId;
|
|
65
|
-
if (Array.isArray(models.selectedNodes.value)) {
|
|
66
|
-
nodeToFocusId = models.selectedNodes.value.find(isNodeVisible);
|
|
67
|
-
} else if (models.selectedNodes.value != null && isNodeVisible(models.selectedNodes.value)) {
|
|
68
|
-
nodeToFocusId = models.selectedNodes.value;
|
|
69
|
-
}
|
|
70
|
-
if (nodeToFocusId == null) {
|
|
71
|
-
nodeToFocusId = instance.getNavigableChildrenIds(null)[0];
|
|
72
|
-
}
|
|
73
|
-
instance.focusNode(event, nodeToFocusId);
|
|
74
|
-
}
|
|
75
|
-
};
|
|
76
|
-
};
|
|
77
|
-
var createHandleBlur = function createHandleBlur(otherHandlers) {
|
|
78
|
-
return function (event) {
|
|
79
|
-
var _otherHandlers$onBlur;
|
|
80
|
-
(_otherHandlers$onBlur = otherHandlers.onBlur) == null || _otherHandlers$onBlur.call(otherHandlers, event);
|
|
81
|
-
setFocusedNodeId(null);
|
|
82
|
-
};
|
|
83
|
-
};
|
|
84
|
-
var focusedNode = instance.getNode(state.focusedNodeId);
|
|
85
|
-
var activeDescendant = focusedNode ? instance.getTreeItemId(focusedNode.id, focusedNode.idAttribute) : null;
|
|
86
|
-
return {
|
|
87
|
-
getRootProps: function getRootProps(otherHandlers) {
|
|
88
|
-
return {
|
|
89
|
-
onFocus: createHandleFocus(otherHandlers),
|
|
90
|
-
onBlur: createHandleBlur(otherHandlers),
|
|
91
|
-
'aria-activedescendant': activeDescendant != null ? activeDescendant : undefined
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
};
|
|
95
|
-
};
|
|
96
|
-
useTreeViewFocus.getInitialState = function () {
|
|
97
|
-
return {
|
|
98
|
-
focusedNodeId: null
|
|
99
|
-
};
|
|
100
|
-
};
|
|
101
|
-
useTreeViewFocus.params = {
|
|
102
|
-
onNodeFocus: true
|
|
103
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { useTreeViewIcons } from './useTreeViewIcons';
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
export var useTreeViewIcons = function useTreeViewIcons(_ref) {
|
|
2
|
-
var slots = _ref.slots,
|
|
3
|
-
slotProps = _ref.slotProps;
|
|
4
|
-
return {
|
|
5
|
-
contextValue: {
|
|
6
|
-
icons: {
|
|
7
|
-
slots: {
|
|
8
|
-
collapseIcon: slots.collapseIcon,
|
|
9
|
-
expandIcon: slots.expandIcon,
|
|
10
|
-
endIcon: slots.endIcon
|
|
11
|
-
},
|
|
12
|
-
slotProps: {
|
|
13
|
-
collapseIcon: slotProps.collapseIcon,
|
|
14
|
-
expandIcon: slotProps.expandIcon,
|
|
15
|
-
endIcon: slotProps.endIcon
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
};
|
|
21
|
-
useTreeViewIcons.params = {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { useTreeViewId } from './useTreeViewId';
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import useId from '@mui/utils/useId';
|
|
3
|
-
import { populateInstance } from '../../useTreeView/useTreeView.utils';
|
|
4
|
-
export var useTreeViewId = function useTreeViewId(_ref) {
|
|
5
|
-
var instance = _ref.instance,
|
|
6
|
-
params = _ref.params;
|
|
7
|
-
var treeId = useId(params.id);
|
|
8
|
-
var getTreeItemId = React.useCallback(function (nodeId, idAttribute) {
|
|
9
|
-
return idAttribute != null ? idAttribute : "".concat(treeId, "-").concat(nodeId);
|
|
10
|
-
}, [treeId]);
|
|
11
|
-
populateInstance(instance, {
|
|
12
|
-
getTreeItemId: getTreeItemId
|
|
13
|
-
});
|
|
14
|
-
return {
|
|
15
|
-
getRootProps: function getRootProps() {
|
|
16
|
-
return {
|
|
17
|
-
id: treeId
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
};
|
|
21
|
-
};
|
|
22
|
-
useTreeViewId.params = {
|
|
23
|
-
id: true
|
|
24
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { useTreeViewJSXNodes } from './useTreeViewJSXNodes';
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
-
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
3
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
|
-
import * as React from 'react';
|
|
5
|
-
import useEventCallback from '@mui/utils/useEventCallback';
|
|
6
|
-
import useForkRef from '@mui/utils/useForkRef';
|
|
7
|
-
import { populateInstance } from '../../useTreeView/useTreeView.utils';
|
|
8
|
-
import { publishTreeViewEvent } from '../../utils/publishTreeViewEvent';
|
|
9
|
-
import { useTreeViewContext } from '../../TreeViewProvider/useTreeViewContext';
|
|
10
|
-
import { DescendantProvider, useDescendant } from '../../TreeViewProvider/DescendantProvider';
|
|
11
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
|
-
export var useTreeViewJSXNodes = function useTreeViewJSXNodes(_ref) {
|
|
13
|
-
var instance = _ref.instance,
|
|
14
|
-
setState = _ref.setState;
|
|
15
|
-
var insertJSXNode = useEventCallback(function (node) {
|
|
16
|
-
setState(function (prevState) {
|
|
17
|
-
if (prevState.nodeMap[node.id] != null) {
|
|
18
|
-
throw new Error(['MUI X: The Tree View component requires all items to have a unique `id` property.', 'Alternatively, you can use the `getItemId` prop to specify a custom id for each item.', "Tow items were provided with the same id in the `items` prop: \"".concat(node.id, "\"")].join('\n'));
|
|
19
|
-
}
|
|
20
|
-
return _extends({}, prevState, {
|
|
21
|
-
nodeMap: _extends({}, prevState.nodeMap, _defineProperty({}, node.id, node))
|
|
22
|
-
});
|
|
23
|
-
});
|
|
24
|
-
});
|
|
25
|
-
var removeJSXNode = useEventCallback(function (nodeId) {
|
|
26
|
-
setState(function (prevState) {
|
|
27
|
-
var newMap = _extends({}, prevState.nodeMap);
|
|
28
|
-
delete newMap[nodeId];
|
|
29
|
-
return _extends({}, prevState, {
|
|
30
|
-
nodeMap: newMap
|
|
31
|
-
});
|
|
32
|
-
});
|
|
33
|
-
publishTreeViewEvent(instance, 'removeNode', {
|
|
34
|
-
id: nodeId
|
|
35
|
-
});
|
|
36
|
-
});
|
|
37
|
-
var mapFirstCharFromJSX = useEventCallback(function (nodeId, firstChar) {
|
|
38
|
-
instance.updateFirstCharMap(function (firstCharMap) {
|
|
39
|
-
firstCharMap[nodeId] = firstChar;
|
|
40
|
-
return firstCharMap;
|
|
41
|
-
});
|
|
42
|
-
return function () {
|
|
43
|
-
instance.updateFirstCharMap(function (firstCharMap) {
|
|
44
|
-
var newMap = _extends({}, firstCharMap);
|
|
45
|
-
delete newMap[nodeId];
|
|
46
|
-
return newMap;
|
|
47
|
-
});
|
|
48
|
-
};
|
|
49
|
-
});
|
|
50
|
-
populateInstance(instance, {
|
|
51
|
-
insertJSXNode: insertJSXNode,
|
|
52
|
-
removeJSXNode: removeJSXNode,
|
|
53
|
-
mapFirstCharFromJSX: mapFirstCharFromJSX
|
|
54
|
-
});
|
|
55
|
-
};
|
|
56
|
-
var useTreeViewJSXNodesItemPlugin = function useTreeViewJSXNodesItemPlugin(_ref2) {
|
|
57
|
-
var props = _ref2.props,
|
|
58
|
-
ref = _ref2.ref;
|
|
59
|
-
var children = props.children,
|
|
60
|
-
_props$disabled = props.disabled,
|
|
61
|
-
disabled = _props$disabled === void 0 ? false : _props$disabled,
|
|
62
|
-
label = props.label,
|
|
63
|
-
nodeId = props.nodeId,
|
|
64
|
-
id = props.id,
|
|
65
|
-
inContentProps = props.ContentProps;
|
|
66
|
-
var _useTreeViewContext = useTreeViewContext(),
|
|
67
|
-
instance = _useTreeViewContext.instance;
|
|
68
|
-
var isExpandable = function isExpandable(reactChildren) {
|
|
69
|
-
if (Array.isArray(reactChildren)) {
|
|
70
|
-
return reactChildren.length > 0 && reactChildren.some(isExpandable);
|
|
71
|
-
}
|
|
72
|
-
return Boolean(reactChildren);
|
|
73
|
-
};
|
|
74
|
-
var expandable = isExpandable(children);
|
|
75
|
-
var _React$useState = React.useState(null),
|
|
76
|
-
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
77
|
-
treeItemElement = _React$useState2[0],
|
|
78
|
-
setTreeItemElement = _React$useState2[1];
|
|
79
|
-
var contentRef = React.useRef(null);
|
|
80
|
-
var handleRef = useForkRef(setTreeItemElement, ref);
|
|
81
|
-
var descendant = React.useMemo(function () {
|
|
82
|
-
return {
|
|
83
|
-
element: treeItemElement,
|
|
84
|
-
id: nodeId
|
|
85
|
-
};
|
|
86
|
-
}, [nodeId, treeItemElement]);
|
|
87
|
-
var _useDescendant = useDescendant(descendant),
|
|
88
|
-
index = _useDescendant.index,
|
|
89
|
-
parentId = _useDescendant.parentId;
|
|
90
|
-
React.useEffect(function () {
|
|
91
|
-
// On the first render a node's index will be -1. We want to wait for the real index.
|
|
92
|
-
if (index !== -1) {
|
|
93
|
-
instance.insertJSXNode({
|
|
94
|
-
id: nodeId,
|
|
95
|
-
idAttribute: id,
|
|
96
|
-
index: index,
|
|
97
|
-
parentId: parentId,
|
|
98
|
-
expandable: expandable,
|
|
99
|
-
disabled: disabled
|
|
100
|
-
});
|
|
101
|
-
return function () {
|
|
102
|
-
return instance.removeJSXNode(nodeId);
|
|
103
|
-
};
|
|
104
|
-
}
|
|
105
|
-
return undefined;
|
|
106
|
-
}, [instance, parentId, index, nodeId, expandable, disabled, id]);
|
|
107
|
-
React.useEffect(function () {
|
|
108
|
-
if (label) {
|
|
109
|
-
var _contentRef$current$t, _contentRef$current;
|
|
110
|
-
return instance.mapFirstCharFromJSX(nodeId, ((_contentRef$current$t = (_contentRef$current = contentRef.current) == null ? void 0 : _contentRef$current.textContent) != null ? _contentRef$current$t : '').substring(0, 1).toLowerCase());
|
|
111
|
-
}
|
|
112
|
-
return undefined;
|
|
113
|
-
}, [instance, nodeId, label]);
|
|
114
|
-
return {
|
|
115
|
-
props: _extends({}, props, {
|
|
116
|
-
ContentProps: _extends({}, inContentProps, {
|
|
117
|
-
ref: contentRef
|
|
118
|
-
})
|
|
119
|
-
}),
|
|
120
|
-
ref: handleRef,
|
|
121
|
-
wrapItem: function wrapItem(item) {
|
|
122
|
-
return /*#__PURE__*/_jsx(DescendantProvider, {
|
|
123
|
-
id: nodeId,
|
|
124
|
-
children: item
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
};
|
|
128
|
-
};
|
|
129
|
-
useTreeViewJSXNodes.itemPlugin = useTreeViewJSXNodesItemPlugin;
|
|
130
|
-
useTreeViewJSXNodes.params = {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { useTreeViewKeyboardNavigation } from './useTreeViewKeyboardNavigation';
|