@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
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
2
|
+
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
3
|
+
import { useLazyRef } from './useLazyRef';
|
|
4
|
+
import { useOnMount } from './useOnMount';
|
|
5
|
+
var Timeout = /*#__PURE__*/function () {
|
|
6
|
+
function Timeout() {
|
|
7
|
+
var _this = this;
|
|
8
|
+
_classCallCheck(this, Timeout);
|
|
9
|
+
this.currentId = 0;
|
|
10
|
+
this.clear = function () {
|
|
11
|
+
if (_this.currentId !== 0) {
|
|
12
|
+
clearTimeout(_this.currentId);
|
|
13
|
+
_this.currentId = 0;
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
this.disposeEffect = function () {
|
|
17
|
+
return _this.clear;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
_createClass(Timeout, [{
|
|
21
|
+
key: "start",
|
|
22
|
+
value: function start(delay, fn) {
|
|
23
|
+
this.clear();
|
|
24
|
+
this.currentId = setTimeout(fn, delay);
|
|
25
|
+
}
|
|
26
|
+
}], [{
|
|
27
|
+
key: "create",
|
|
28
|
+
value: function create() {
|
|
29
|
+
return new Timeout();
|
|
30
|
+
}
|
|
31
|
+
}]);
|
|
32
|
+
return Timeout;
|
|
33
|
+
}();
|
|
34
|
+
export function useTimeout() {
|
|
35
|
+
var timeout = useLazyRef(Timeout.create).current;
|
|
36
|
+
useOnMount(timeout.disposeEffect);
|
|
37
|
+
return timeout;
|
|
38
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { useTreeViewId } from './useTreeViewId';
|
|
1
2
|
import { useTreeViewNodes } from './useTreeViewNodes';
|
|
2
3
|
import { useTreeViewExpansion } from './useTreeViewExpansion';
|
|
3
4
|
import { useTreeViewSelection } from './useTreeViewSelection';
|
|
4
5
|
import { useTreeViewFocus } from './useTreeViewFocus';
|
|
5
6
|
import { useTreeViewKeyboardNavigation } from './useTreeViewKeyboardNavigation';
|
|
6
7
|
import { useTreeViewContextValueBuilder } from './useTreeViewContextValueBuilder';
|
|
7
|
-
export var DEFAULT_TREE_VIEW_PLUGINS = [useTreeViewNodes, useTreeViewExpansion, useTreeViewSelection, useTreeViewFocus, useTreeViewKeyboardNavigation, useTreeViewContextValueBuilder];
|
|
8
|
+
export var DEFAULT_TREE_VIEW_PLUGINS = [useTreeViewId, useTreeViewNodes, useTreeViewExpansion, useTreeViewSelection, useTreeViewFocus, useTreeViewKeyboardNavigation, useTreeViewContextValueBuilder];
|
|
8
9
|
|
|
9
10
|
// We can't infer this type from the plugin, otherwise we would lose the generics.
|
package/legacy/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.js
CHANGED
|
@@ -1,18 +1,21 @@
|
|
|
1
|
-
import useId from '@mui/utils/useId';
|
|
2
1
|
export var useTreeViewContextValueBuilder = function useTreeViewContextValueBuilder(_ref) {
|
|
3
2
|
var instance = _ref.instance,
|
|
4
3
|
params = _ref.params;
|
|
5
|
-
var treeId = useId(params.id);
|
|
6
4
|
return {
|
|
7
|
-
getRootProps: function getRootProps() {
|
|
8
|
-
return {
|
|
9
|
-
id: treeId
|
|
10
|
-
};
|
|
11
|
-
},
|
|
12
5
|
contextValue: {
|
|
13
|
-
treeId: treeId,
|
|
14
6
|
instance: instance,
|
|
15
7
|
multiSelect: params.multiSelect,
|
|
8
|
+
runItemPlugins: function runItemPlugins(_ref2) {
|
|
9
|
+
var props = _ref2.props,
|
|
10
|
+
ref = _ref2.ref;
|
|
11
|
+
return {
|
|
12
|
+
props: props,
|
|
13
|
+
ref: ref,
|
|
14
|
+
wrapItem: function wrapItem(children) {
|
|
15
|
+
return children;
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
},
|
|
16
19
|
disabledItemsFocusable: params.disabledItemsFocusable,
|
|
17
20
|
icons: {
|
|
18
21
|
defaultCollapseIcon: params.defaultCollapseIcon,
|
|
@@ -22,4 +25,10 @@ export var useTreeViewContextValueBuilder = function useTreeViewContextValueBuil
|
|
|
22
25
|
}
|
|
23
26
|
}
|
|
24
27
|
};
|
|
28
|
+
};
|
|
29
|
+
useTreeViewContextValueBuilder.params = {
|
|
30
|
+
defaultCollapseIcon: true,
|
|
31
|
+
defaultEndIcon: true,
|
|
32
|
+
defaultExpandIcon: true,
|
|
33
|
+
defaultParentIcon: true
|
|
25
34
|
};
|
|
@@ -7,8 +7,8 @@ export var useTreeViewExpansion = function useTreeViewExpansion(_ref) {
|
|
|
7
7
|
params = _ref.params,
|
|
8
8
|
models = _ref.models;
|
|
9
9
|
var isNodeExpanded = React.useCallback(function (nodeId) {
|
|
10
|
-
return Array.isArray(models.
|
|
11
|
-
}, [models.
|
|
10
|
+
return Array.isArray(models.expandedNodes.value) ? models.expandedNodes.value.indexOf(nodeId) !== -1 : false;
|
|
11
|
+
}, [models.expandedNodes.value]);
|
|
12
12
|
var isNodeExpandable = React.useCallback(function (nodeId) {
|
|
13
13
|
var _instance$getNode;
|
|
14
14
|
return !!((_instance$getNode = instance.getNode(nodeId)) != null && _instance$getNode.expandable);
|
|
@@ -17,18 +17,22 @@ export var useTreeViewExpansion = function useTreeViewExpansion(_ref) {
|
|
|
17
17
|
if (nodeId == null) {
|
|
18
18
|
return;
|
|
19
19
|
}
|
|
20
|
+
var isExpandedBefore = models.expandedNodes.value.indexOf(nodeId) !== -1;
|
|
20
21
|
var newExpanded;
|
|
21
|
-
if (
|
|
22
|
-
newExpanded = models.
|
|
22
|
+
if (isExpandedBefore) {
|
|
23
|
+
newExpanded = models.expandedNodes.value.filter(function (id) {
|
|
23
24
|
return id !== nodeId;
|
|
24
25
|
});
|
|
25
26
|
} else {
|
|
26
|
-
newExpanded = [nodeId].concat(models.
|
|
27
|
+
newExpanded = [nodeId].concat(models.expandedNodes.value);
|
|
27
28
|
}
|
|
28
|
-
if (params.
|
|
29
|
-
params.
|
|
29
|
+
if (params.onNodeExpansionToggle) {
|
|
30
|
+
params.onNodeExpansionToggle(event, nodeId, !isExpandedBefore);
|
|
30
31
|
}
|
|
31
|
-
|
|
32
|
+
if (params.onExpandedNodesChange) {
|
|
33
|
+
params.onExpandedNodesChange(event, newExpanded);
|
|
34
|
+
}
|
|
35
|
+
models.expandedNodes.setValue(newExpanded);
|
|
32
36
|
});
|
|
33
37
|
var expandAllSiblings = function expandAllSiblings(event, nodeId) {
|
|
34
38
|
var node = instance.getNode(nodeId);
|
|
@@ -36,12 +40,17 @@ export var useTreeViewExpansion = function useTreeViewExpansion(_ref) {
|
|
|
36
40
|
var diff = siblings.filter(function (child) {
|
|
37
41
|
return instance.isNodeExpandable(child) && !instance.isNodeExpanded(child);
|
|
38
42
|
});
|
|
39
|
-
var newExpanded = models.
|
|
43
|
+
var newExpanded = models.expandedNodes.value.concat(diff);
|
|
40
44
|
if (diff.length > 0) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
45
|
+
if (params.onNodeExpansionToggle) {
|
|
46
|
+
diff.forEach(function (newlyExpandedNodeId) {
|
|
47
|
+
params.onNodeExpansionToggle(event, newlyExpandedNodeId, true);
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
if (params.onExpandedNodesChange) {
|
|
51
|
+
params.onExpandedNodesChange(event, newExpanded);
|
|
44
52
|
}
|
|
53
|
+
models.expandedNodes.setValue(newExpanded);
|
|
45
54
|
}
|
|
46
55
|
};
|
|
47
56
|
populateInstance(instance, {
|
|
@@ -52,15 +61,21 @@ export var useTreeViewExpansion = function useTreeViewExpansion(_ref) {
|
|
|
52
61
|
});
|
|
53
62
|
};
|
|
54
63
|
useTreeViewExpansion.models = {
|
|
55
|
-
|
|
56
|
-
controlledProp: '
|
|
57
|
-
defaultProp: '
|
|
64
|
+
expandedNodes: {
|
|
65
|
+
controlledProp: 'expandedNodes',
|
|
66
|
+
defaultProp: 'defaultExpandedNodes'
|
|
58
67
|
}
|
|
59
68
|
};
|
|
60
|
-
var
|
|
69
|
+
var DEFAULT_EXPANDED_NODES = [];
|
|
61
70
|
useTreeViewExpansion.getDefaultizedParams = function (params) {
|
|
62
71
|
var _params$defaultExpand;
|
|
63
72
|
return _extends({}, params, {
|
|
64
|
-
|
|
73
|
+
defaultExpandedNodes: (_params$defaultExpand = params.defaultExpandedNodes) != null ? _params$defaultExpand : DEFAULT_EXPANDED_NODES
|
|
65
74
|
});
|
|
75
|
+
};
|
|
76
|
+
useTreeViewExpansion.params = {
|
|
77
|
+
expandedNodes: true,
|
|
78
|
+
defaultExpandedNodes: true,
|
|
79
|
+
onExpandedNodesChange: true,
|
|
80
|
+
onNodeExpansionToggle: true
|
|
66
81
|
};
|
|
@@ -30,9 +30,16 @@ export var useTreeViewFocus = function useTreeViewFocus(_ref) {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
});
|
|
33
|
+
var focusRoot = useEventCallback(function () {
|
|
34
|
+
var _rootRef$current;
|
|
35
|
+
(_rootRef$current = rootRef.current) == null || _rootRef$current.focus({
|
|
36
|
+
preventScroll: true
|
|
37
|
+
});
|
|
38
|
+
});
|
|
33
39
|
populateInstance(instance, {
|
|
34
40
|
isNodeFocused: isNodeFocused,
|
|
35
|
-
focusNode: focusNode
|
|
41
|
+
focusNode: focusNode,
|
|
42
|
+
focusRoot: focusRoot
|
|
36
43
|
});
|
|
37
44
|
useInstanceEventHandler(instance, 'removeNode', function (_ref2) {
|
|
38
45
|
var id = _ref2.id;
|
|
@@ -55,10 +62,10 @@ export var useTreeViewFocus = function useTreeViewFocus(_ref) {
|
|
|
55
62
|
return node && (node.parentId == null || instance.isNodeExpanded(node.parentId));
|
|
56
63
|
};
|
|
57
64
|
var nodeToFocusId;
|
|
58
|
-
if (Array.isArray(models.
|
|
59
|
-
nodeToFocusId = models.
|
|
60
|
-
} else if (models.
|
|
61
|
-
nodeToFocusId = models.
|
|
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;
|
|
62
69
|
}
|
|
63
70
|
if (nodeToFocusId == null) {
|
|
64
71
|
nodeToFocusId = instance.getNavigableChildrenIds(null)[0];
|
|
@@ -75,7 +82,7 @@ export var useTreeViewFocus = function useTreeViewFocus(_ref) {
|
|
|
75
82
|
};
|
|
76
83
|
};
|
|
77
84
|
var focusedNode = instance.getNode(state.focusedNodeId);
|
|
78
|
-
var activeDescendant = focusedNode ? focusedNode.idAttribute : null;
|
|
85
|
+
var activeDescendant = focusedNode ? instance.getTreeItemId(focusedNode.id, focusedNode.idAttribute) : null;
|
|
79
86
|
return {
|
|
80
87
|
getRootProps: function getRootProps(otherHandlers) {
|
|
81
88
|
return {
|
|
@@ -96,4 +103,7 @@ useTreeViewFocus.getDefaultizedParams = function (params) {
|
|
|
96
103
|
return _extends({}, params, {
|
|
97
104
|
disabledItemsFocusable: (_params$disabledItems = params.disabledItemsFocusable) != null ? _params$disabledItems : false
|
|
98
105
|
});
|
|
106
|
+
};
|
|
107
|
+
useTreeViewFocus.params = {
|
|
108
|
+
onNodeFocus: true
|
|
99
109
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useTreeViewId } from './useTreeViewId';
|
|
@@ -0,0 +1,24 @@
|
|
|
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
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useTreeViewJSXNodes } from './useTreeViewJSXNodes';
|
|
@@ -0,0 +1,121 @@
|
|
|
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
|
+
return _extends({}, prevState, {
|
|
18
|
+
nodeMap: _extends({}, prevState.nodeMap, _defineProperty({}, node.id, node))
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
var removeJSXNode = useEventCallback(function (nodeId) {
|
|
23
|
+
setState(function (prevState) {
|
|
24
|
+
var newMap = _extends({}, prevState.nodeMap);
|
|
25
|
+
delete newMap[nodeId];
|
|
26
|
+
return _extends({}, prevState, {
|
|
27
|
+
nodeMap: newMap
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
publishTreeViewEvent(instance, 'removeNode', {
|
|
31
|
+
id: nodeId
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
var mapFirstCharFromJSX = useEventCallback(function (nodeId, firstChar) {
|
|
35
|
+
instance.updateFirstCharMap(function (firstCharMap) {
|
|
36
|
+
firstCharMap[nodeId] = firstChar;
|
|
37
|
+
return firstCharMap;
|
|
38
|
+
});
|
|
39
|
+
return function () {
|
|
40
|
+
instance.updateFirstCharMap(function (firstCharMap) {
|
|
41
|
+
var newMap = _extends({}, firstCharMap);
|
|
42
|
+
delete newMap[nodeId];
|
|
43
|
+
return newMap;
|
|
44
|
+
});
|
|
45
|
+
};
|
|
46
|
+
});
|
|
47
|
+
populateInstance(instance, {
|
|
48
|
+
insertJSXNode: insertJSXNode,
|
|
49
|
+
removeJSXNode: removeJSXNode,
|
|
50
|
+
mapFirstCharFromJSX: mapFirstCharFromJSX
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
var useTreeViewJSXNodesItemPlugin = function useTreeViewJSXNodesItemPlugin(_ref2) {
|
|
54
|
+
var props = _ref2.props,
|
|
55
|
+
ref = _ref2.ref;
|
|
56
|
+
var children = props.children,
|
|
57
|
+
_props$disabled = props.disabled,
|
|
58
|
+
disabled = _props$disabled === void 0 ? false : _props$disabled,
|
|
59
|
+
label = props.label,
|
|
60
|
+
nodeId = props.nodeId,
|
|
61
|
+
id = props.id,
|
|
62
|
+
inContentProps = props.ContentProps;
|
|
63
|
+
var _useTreeViewContext = useTreeViewContext(),
|
|
64
|
+
instance = _useTreeViewContext.instance;
|
|
65
|
+
var expandable = Boolean(Array.isArray(children) ? children.length : children);
|
|
66
|
+
var _React$useState = React.useState(null),
|
|
67
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
68
|
+
treeItemElement = _React$useState2[0],
|
|
69
|
+
setTreeItemElement = _React$useState2[1];
|
|
70
|
+
var contentRef = React.useRef(null);
|
|
71
|
+
var handleRef = useForkRef(setTreeItemElement, ref);
|
|
72
|
+
var descendant = React.useMemo(function () {
|
|
73
|
+
return {
|
|
74
|
+
element: treeItemElement,
|
|
75
|
+
id: nodeId
|
|
76
|
+
};
|
|
77
|
+
}, [nodeId, treeItemElement]);
|
|
78
|
+
var _useDescendant = useDescendant(descendant),
|
|
79
|
+
index = _useDescendant.index,
|
|
80
|
+
parentId = _useDescendant.parentId;
|
|
81
|
+
React.useEffect(function () {
|
|
82
|
+
// On the first render a node's index will be -1. We want to wait for the real index.
|
|
83
|
+
if (instance && index !== -1) {
|
|
84
|
+
instance.insertJSXNode({
|
|
85
|
+
id: nodeId,
|
|
86
|
+
idAttribute: id,
|
|
87
|
+
index: index,
|
|
88
|
+
parentId: parentId,
|
|
89
|
+
expandable: expandable,
|
|
90
|
+
disabled: disabled
|
|
91
|
+
});
|
|
92
|
+
return function () {
|
|
93
|
+
return instance.removeJSXNode(nodeId);
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
return undefined;
|
|
97
|
+
}, [instance, parentId, index, nodeId, expandable, disabled, id]);
|
|
98
|
+
React.useEffect(function () {
|
|
99
|
+
if (instance && label) {
|
|
100
|
+
var _contentRef$current$t, _contentRef$current;
|
|
101
|
+
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());
|
|
102
|
+
}
|
|
103
|
+
return undefined;
|
|
104
|
+
}, [instance, nodeId, label]);
|
|
105
|
+
return {
|
|
106
|
+
props: _extends({}, props, {
|
|
107
|
+
ContentProps: _extends({}, inContentProps, {
|
|
108
|
+
ref: contentRef
|
|
109
|
+
})
|
|
110
|
+
}),
|
|
111
|
+
ref: handleRef,
|
|
112
|
+
wrapItem: function wrapItem(item) {
|
|
113
|
+
return /*#__PURE__*/_jsx(DescendantProvider, {
|
|
114
|
+
id: nodeId,
|
|
115
|
+
children: item
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
};
|
|
120
|
+
useTreeViewJSXNodes.itemPlugin = useTreeViewJSXNodesItemPlugin;
|
|
121
|
+
useTreeViewJSXNodes.params = {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|