@mui/x-tree-view 7.0.0-beta.7 → 7.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +266 -12
- package/README.md +1 -1
- package/RichTreeView/RichTreeView.js +15 -17
- package/RichTreeView/RichTreeView.types.d.ts +1 -1
- package/SimpleTreeView/SimpleTreeView.js +3 -4
- package/SimpleTreeView/SimpleTreeView.plugins.d.ts +1 -1
- package/SimpleTreeView/SimpleTreeView.plugins.js +2 -2
- package/TreeItem/TreeItem.js +43 -35
- package/TreeItem/TreeItem.types.d.ts +3 -3
- package/TreeItem/TreeItemContent.d.ts +7 -7
- package/TreeItem/TreeItemContent.js +10 -10
- package/TreeItem/treeItemClasses.d.ts +1 -1
- package/TreeItem/useTreeItemState.d.ts +1 -1
- package/TreeItem/useTreeItemState.js +13 -13
- package/TreeItem2/TreeItem2.js +16 -17
- package/TreeItem2Icon/TreeItem2Icon.js +5 -6
- package/TreeItem2Icon/TreeItem2Icon.types.d.ts +4 -4
- package/TreeItem2Provider/TreeItem2Provider.js +3 -3
- package/TreeItem2Provider/TreeItem2Provider.types.d.ts +1 -1
- package/TreeView/TreeView.d.ts +1 -1
- package/TreeView/TreeView.js +1 -1
- package/hooks/useTreeItem2Utils/useTreeItem2Utils.d.ts +2 -2
- package/hooks/useTreeItem2Utils/useTreeItem2Utils.js +12 -12
- package/hooks/useTreeViewApiRef.d.ts +1 -1
- package/index.js +1 -1
- package/internals/TreeViewProvider/DescendantProvider.d.ts +1 -1
- package/internals/TreeViewProvider/DescendantProvider.js +1 -1
- package/internals/hooks/useInstanceEventHandler.js +5 -10
- package/internals/index.d.ts +2 -2
- package/internals/models/plugin.d.ts +1 -1
- package/internals/plugins/defaultPlugins.d.ts +3 -3
- package/internals/plugins/defaultPlugins.js +2 -2
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +17 -24
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +6 -6
- package/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +76 -58
- package/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +9 -8
- package/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.d.ts +6 -6
- package/internals/plugins/useTreeViewId/useTreeViewId.js +1 -1
- package/internals/plugins/useTreeViewId/useTreeViewId.types.d.ts +2 -2
- package/internals/plugins/useTreeViewItems/index.d.ts +2 -0
- package/internals/plugins/useTreeViewItems/index.js +1 -0
- package/internals/plugins/useTreeViewItems/useTreeViewItems.d.ts +3 -0
- package/{modern/internals/plugins/useTreeViewNodes/useTreeViewNodes.js → internals/plugins/useTreeViewItems/useTreeViewItems.js} +42 -33
- package/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +99 -0
- package/internals/plugins/useTreeViewJSXItems/index.d.ts +2 -0
- package/internals/plugins/useTreeViewJSXItems/index.js +1 -0
- package/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.d.ts +3 -0
- package/{modern/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.js → internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js} +41 -40
- package/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.types.d.ts +18 -0
- package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +85 -96
- package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.d.ts +6 -3
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +44 -47
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +8 -8
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.d.ts +7 -7
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +5 -5
- package/internals/useTreeView/useTreeView.js +5 -6
- package/internals/useTreeView/useTreeView.utils.d.ts +5 -5
- package/internals/useTreeView/useTreeView.utils.js +18 -18
- package/internals/utils/extractPluginParamsFromProps.js +2 -2
- package/internals/utils/utils.js +1 -0
- package/modern/RichTreeView/RichTreeView.js +11 -11
- package/modern/SimpleTreeView/SimpleTreeView.js +1 -1
- package/modern/SimpleTreeView/SimpleTreeView.plugins.js +2 -2
- package/modern/TreeItem/TreeItem.js +31 -22
- package/modern/TreeItem/TreeItemContent.js +10 -10
- package/modern/TreeItem/useTreeItemState.js +13 -13
- package/modern/TreeItem2/TreeItem2.js +11 -11
- package/modern/TreeItem2Provider/TreeItem2Provider.js +3 -3
- package/modern/TreeView/TreeView.js +1 -1
- package/modern/hooks/useTreeItem2Utils/useTreeItem2Utils.js +12 -12
- package/modern/index.js +1 -1
- package/modern/internals/TreeViewProvider/DescendantProvider.js +1 -1
- package/modern/internals/plugins/defaultPlugins.js +2 -2
- package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +14 -14
- package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +74 -53
- package/modern/internals/plugins/useTreeViewId/useTreeViewId.js +1 -1
- package/modern/internals/plugins/useTreeViewItems/index.js +1 -0
- package/{internals/plugins/useTreeViewNodes/useTreeViewNodes.js → modern/internals/plugins/useTreeViewItems/useTreeViewItems.js} +46 -41
- package/modern/internals/plugins/useTreeViewJSXItems/index.js +1 -0
- package/{internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.js → modern/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js} +41 -41
- package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +85 -94
- package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +40 -40
- package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +5 -5
- package/modern/internals/useTreeView/useTreeView.js +3 -4
- package/modern/internals/useTreeView/useTreeView.utils.js +18 -18
- package/modern/internals/utils/utils.js +1 -0
- package/modern/useTreeItem2/useTreeItem2.js +23 -12
- package/node/RichTreeView/RichTreeView.js +11 -11
- package/node/SimpleTreeView/SimpleTreeView.js +1 -1
- package/node/SimpleTreeView/SimpleTreeView.plugins.js +2 -2
- package/node/TreeItem/TreeItem.js +31 -22
- package/node/TreeItem/TreeItemContent.js +10 -10
- package/node/TreeItem/useTreeItemState.js +13 -13
- package/node/TreeItem2/TreeItem2.js +11 -11
- package/node/TreeItem2Provider/TreeItem2Provider.js +3 -3
- package/node/TreeView/TreeView.js +1 -1
- package/node/hooks/useTreeItem2Utils/useTreeItem2Utils.js +12 -12
- package/node/index.js +1 -1
- package/node/internals/TreeViewProvider/DescendantProvider.js +1 -1
- package/node/internals/plugins/defaultPlugins.js +2 -2
- package/node/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +14 -14
- package/node/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +74 -53
- package/node/internals/plugins/useTreeViewId/useTreeViewId.js +1 -1
- package/node/internals/plugins/useTreeViewItems/index.js +12 -0
- package/node/internals/plugins/{useTreeViewNodes/useTreeViewNodes.js → useTreeViewItems/useTreeViewItems.js} +44 -35
- package/node/internals/plugins/useTreeViewJSXItems/index.js +12 -0
- package/node/internals/plugins/{useTreeViewJSXNodes/useTreeViewJSXNodes.js → useTreeViewJSXItems/useTreeViewJSXItems.js} +43 -42
- package/node/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +84 -93
- package/node/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +39 -39
- package/node/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +5 -5
- package/node/internals/useTreeView/useTreeView.js +3 -4
- package/node/internals/useTreeView/useTreeView.utils.js +23 -23
- package/node/internals/utils/utils.js +1 -0
- package/node/useTreeItem2/useTreeItem2.js +23 -12
- package/package.json +5 -5
- package/useTreeItem2/useTreeItem2.d.ts +1 -1
- package/useTreeItem2/useTreeItem2.js +26 -18
- package/useTreeItem2/useTreeItem2.types.d.ts +9 -7
- package/internals/plugins/useTreeViewJSXNodes/index.d.ts +0 -2
- package/internals/plugins/useTreeViewJSXNodes/index.js +0 -1
- package/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.d.ts +0 -3
- package/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.types.d.ts +0 -18
- package/internals/plugins/useTreeViewNodes/index.d.ts +0 -2
- package/internals/plugins/useTreeViewNodes/index.js +0 -1
- package/internals/plugins/useTreeViewNodes/useTreeViewNodes.d.ts +0 -3
- package/internals/plugins/useTreeViewNodes/useTreeViewNodes.types.d.ts +0 -88
- package/modern/internals/plugins/useTreeViewJSXNodes/index.js +0 -1
- package/modern/internals/plugins/useTreeViewNodes/index.js +0 -1
- package/node/internals/plugins/useTreeViewJSXNodes/index.js +0 -12
- package/node/internals/plugins/useTreeViewNodes/index.js +0 -12
- /package/internals/plugins/{useTreeViewJSXNodes/useTreeViewJSXNodes.types.js → useTreeViewItems/useTreeViewItems.types.js} +0 -0
- /package/internals/plugins/{useTreeViewNodes/useTreeViewNodes.types.js → useTreeViewJSXItems/useTreeViewJSXItems.types.js} +0 -0
- /package/modern/internals/plugins/{useTreeViewJSXNodes/useTreeViewJSXNodes.types.js → useTreeViewItems/useTreeViewItems.types.js} +0 -0
- /package/modern/internals/plugins/{useTreeViewNodes/useTreeViewNodes.types.js → useTreeViewJSXItems/useTreeViewJSXItems.types.js} +0 -0
- /package/node/internals/plugins/{useTreeViewJSXNodes/useTreeViewJSXNodes.types.js → useTreeViewItems/useTreeViewItems.types.js} +0 -0
- /package/node/internals/plugins/{useTreeViewNodes/useTreeViewNodes.types.js → useTreeViewJSXItems/useTreeViewJSXItems.types.js} +0 -0
|
@@ -22,7 +22,7 @@ const useTreeItem2 = parameters => {
|
|
|
22
22
|
} = (0, _useTreeViewContext.useTreeViewContext)();
|
|
23
23
|
const {
|
|
24
24
|
id,
|
|
25
|
-
|
|
25
|
+
itemId,
|
|
26
26
|
label,
|
|
27
27
|
children,
|
|
28
28
|
rootRef
|
|
@@ -35,25 +35,34 @@ const useTreeItem2 = parameters => {
|
|
|
35
35
|
interactions,
|
|
36
36
|
status
|
|
37
37
|
} = (0, _useTreeItem2Utils.useTreeItem2Utils)({
|
|
38
|
-
|
|
38
|
+
itemId,
|
|
39
39
|
children
|
|
40
40
|
});
|
|
41
|
-
const idAttribute = instance.getTreeItemId(
|
|
41
|
+
const idAttribute = instance.getTreeItemId(itemId, id);
|
|
42
42
|
const handleRootRef = (0, _useForkRef.default)(rootRef, pluginRootRef);
|
|
43
43
|
const createRootHandleFocus = otherHandlers => event => {
|
|
44
44
|
otherHandlers.onFocus?.(event);
|
|
45
45
|
if (event.defaultMuiPrevented) {
|
|
46
46
|
return;
|
|
47
47
|
}
|
|
48
|
-
|
|
49
|
-
// DOM focus stays on the tree which manages focus with aria-activedescendant
|
|
50
|
-
if (event.target === event.currentTarget) {
|
|
51
|
-
instance.focusRoot();
|
|
52
|
-
}
|
|
53
48
|
const canBeFocused = !status.disabled || disabledItemsFocusable;
|
|
54
49
|
if (!status.focused && canBeFocused && event.currentTarget === event.target) {
|
|
55
|
-
instance.focusItem(event,
|
|
50
|
+
instance.focusItem(event, itemId);
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
const createRootHandleBlur = otherHandlers => event => {
|
|
54
|
+
otherHandlers.onBlur?.(event);
|
|
55
|
+
if (event.defaultMuiPrevented) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
instance.removeFocusedItem();
|
|
59
|
+
};
|
|
60
|
+
const createRootHandleKeyDown = otherHandlers => event => {
|
|
61
|
+
otherHandlers.onKeyDown?.(event);
|
|
62
|
+
if (event.defaultMuiPrevented) {
|
|
63
|
+
return;
|
|
56
64
|
}
|
|
65
|
+
instance.handleItemKeyDown(event, itemId);
|
|
57
66
|
};
|
|
58
67
|
const createContentHandleClick = otherHandlers => event => {
|
|
59
68
|
otherHandlers.onClick?.(event);
|
|
@@ -83,7 +92,7 @@ const useTreeItem2 = parameters => {
|
|
|
83
92
|
/* single-selection trees unset aria-selected on un-selected items.
|
|
84
93
|
*
|
|
85
94
|
* If the tree does not support multiple selection, aria-selected
|
|
86
|
-
* is set to true for the selected
|
|
95
|
+
* is set to true for the selected item and it is not present on any other item in the tree.
|
|
87
96
|
* Source: https://www.w3.org/WAI/ARIA/apg/patterns/treeview/
|
|
88
97
|
*/
|
|
89
98
|
ariaSelected = true;
|
|
@@ -91,13 +100,15 @@ const useTreeItem2 = parameters => {
|
|
|
91
100
|
return (0, _extends2.default)({}, externalEventHandlers, {
|
|
92
101
|
ref: handleRootRef,
|
|
93
102
|
role: 'treeitem',
|
|
94
|
-
tabIndex: -1,
|
|
103
|
+
tabIndex: instance.canItemBeTabbed(itemId) ? 0 : -1,
|
|
95
104
|
id: idAttribute,
|
|
96
105
|
'aria-expanded': status.expandable ? status.expanded : undefined,
|
|
97
106
|
'aria-selected': ariaSelected,
|
|
98
107
|
'aria-disabled': status.disabled || undefined
|
|
99
108
|
}, externalProps, {
|
|
100
|
-
onFocus: createRootHandleFocus(externalEventHandlers)
|
|
109
|
+
onFocus: createRootHandleFocus(externalEventHandlers),
|
|
110
|
+
onBlur: createRootHandleBlur(externalEventHandlers),
|
|
111
|
+
onKeyDown: createRootHandleKeyDown(externalEventHandlers)
|
|
101
112
|
});
|
|
102
113
|
};
|
|
103
114
|
const getContentProps = (externalProps = {}) => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mui/x-tree-view",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.1.0",
|
|
4
4
|
"description": "The community edition of the tree view components (MUI X).",
|
|
5
5
|
"author": "MUI Team",
|
|
6
6
|
"main": "./node/index.js",
|
|
@@ -33,9 +33,9 @@
|
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@babel/runtime": "^7.24.0",
|
|
36
|
-
"@mui/base": "^5.0.0-beta.
|
|
37
|
-
"@mui/system": "^5.15.
|
|
38
|
-
"@mui/utils": "^5.15.
|
|
36
|
+
"@mui/base": "^5.0.0-beta.40",
|
|
37
|
+
"@mui/system": "^5.15.14",
|
|
38
|
+
"@mui/utils": "^5.15.14",
|
|
39
39
|
"@types/react-transition-group": "^4.4.10",
|
|
40
40
|
"clsx": "^2.1.0",
|
|
41
41
|
"prop-types": "^15.8.1",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"peerDependencies": {
|
|
45
45
|
"@emotion/react": "^11.9.0",
|
|
46
46
|
"@emotion/styled": "^11.8.1",
|
|
47
|
-
"@mui/material": "^5.15.
|
|
47
|
+
"@mui/material": "^5.15.14",
|
|
48
48
|
"react": "^17.0.0 || ^18.0.0",
|
|
49
49
|
"react-dom": "^17.0.0 || ^18.0.0"
|
|
50
50
|
},
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { UseTreeItem2Parameters, UseTreeItem2ReturnValue } from './useTreeItem2.types';
|
|
2
|
-
export declare const useTreeItem2: <TPlugins extends [import("../internals").UseTreeViewIdSignature, import("../internals").
|
|
2
|
+
export declare const useTreeItem2: <TPlugins extends [import("../internals").UseTreeViewIdSignature, import("../internals").UseTreeViewItemsSignature, import("../internals").UseTreeViewExpansionSignature, import("../internals").UseTreeViewSelectionSignature, import("../internals").UseTreeViewFocusSignature, import("../internals").UseTreeViewKeyboardNavigationSignature, import("../internals").UseTreeViewIconsSignature] = [import("../internals").UseTreeViewIdSignature, import("../internals").UseTreeViewItemsSignature, import("../internals").UseTreeViewExpansionSignature, import("../internals").UseTreeViewSelectionSignature, import("../internals").UseTreeViewFocusSignature, import("../internals").UseTreeViewKeyboardNavigationSignature, import("../internals").UseTreeViewIconsSignature]>(parameters: UseTreeItem2Parameters) => UseTreeItem2ReturnValue<TPlugins>;
|
|
@@ -15,7 +15,7 @@ export const useTreeItem2 = parameters => {
|
|
|
15
15
|
} = useTreeViewContext();
|
|
16
16
|
const {
|
|
17
17
|
id,
|
|
18
|
-
|
|
18
|
+
itemId,
|
|
19
19
|
label,
|
|
20
20
|
children,
|
|
21
21
|
rootRef
|
|
@@ -28,30 +28,37 @@ export const useTreeItem2 = parameters => {
|
|
|
28
28
|
interactions,
|
|
29
29
|
status
|
|
30
30
|
} = useTreeItem2Utils({
|
|
31
|
-
|
|
31
|
+
itemId,
|
|
32
32
|
children
|
|
33
33
|
});
|
|
34
|
-
const idAttribute = instance.getTreeItemId(
|
|
34
|
+
const idAttribute = instance.getTreeItemId(itemId, id);
|
|
35
35
|
const handleRootRef = useForkRef(rootRef, pluginRootRef);
|
|
36
36
|
const createRootHandleFocus = otherHandlers => event => {
|
|
37
|
-
|
|
38
|
-
(_otherHandlers$onFocu = otherHandlers.onFocus) == null || _otherHandlers$onFocu.call(otherHandlers, event);
|
|
37
|
+
otherHandlers.onFocus?.(event);
|
|
39
38
|
if (event.defaultMuiPrevented) {
|
|
40
39
|
return;
|
|
41
40
|
}
|
|
42
|
-
|
|
43
|
-
// DOM focus stays on the tree which manages focus with aria-activedescendant
|
|
44
|
-
if (event.target === event.currentTarget) {
|
|
45
|
-
instance.focusRoot();
|
|
46
|
-
}
|
|
47
41
|
const canBeFocused = !status.disabled || disabledItemsFocusable;
|
|
48
42
|
if (!status.focused && canBeFocused && event.currentTarget === event.target) {
|
|
49
|
-
instance.focusItem(event,
|
|
43
|
+
instance.focusItem(event, itemId);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
const createRootHandleBlur = otherHandlers => event => {
|
|
47
|
+
otherHandlers.onBlur?.(event);
|
|
48
|
+
if (event.defaultMuiPrevented) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
instance.removeFocusedItem();
|
|
52
|
+
};
|
|
53
|
+
const createRootHandleKeyDown = otherHandlers => event => {
|
|
54
|
+
otherHandlers.onKeyDown?.(event);
|
|
55
|
+
if (event.defaultMuiPrevented) {
|
|
56
|
+
return;
|
|
50
57
|
}
|
|
58
|
+
instance.handleItemKeyDown(event, itemId);
|
|
51
59
|
};
|
|
52
60
|
const createContentHandleClick = otherHandlers => event => {
|
|
53
|
-
|
|
54
|
-
(_otherHandlers$onClic = otherHandlers.onClick) == null || _otherHandlers$onClic.call(otherHandlers, event);
|
|
61
|
+
otherHandlers.onClick?.(event);
|
|
55
62
|
if (event.defaultMuiPrevented) {
|
|
56
63
|
return;
|
|
57
64
|
}
|
|
@@ -59,8 +66,7 @@ export const useTreeItem2 = parameters => {
|
|
|
59
66
|
interactions.handleSelection(event);
|
|
60
67
|
};
|
|
61
68
|
const createContentHandleMouseDown = otherHandlers => event => {
|
|
62
|
-
|
|
63
|
-
(_otherHandlers$onMous = otherHandlers.onMouseDown) == null || _otherHandlers$onMous.call(otherHandlers, event);
|
|
69
|
+
otherHandlers.onMouseDown?.(event);
|
|
64
70
|
if (event.defaultMuiPrevented) {
|
|
65
71
|
return;
|
|
66
72
|
}
|
|
@@ -79,7 +85,7 @@ export const useTreeItem2 = parameters => {
|
|
|
79
85
|
/* single-selection trees unset aria-selected on un-selected items.
|
|
80
86
|
*
|
|
81
87
|
* If the tree does not support multiple selection, aria-selected
|
|
82
|
-
* is set to true for the selected
|
|
88
|
+
* is set to true for the selected item and it is not present on any other item in the tree.
|
|
83
89
|
* Source: https://www.w3.org/WAI/ARIA/apg/patterns/treeview/
|
|
84
90
|
*/
|
|
85
91
|
ariaSelected = true;
|
|
@@ -87,13 +93,15 @@ export const useTreeItem2 = parameters => {
|
|
|
87
93
|
return _extends({}, externalEventHandlers, {
|
|
88
94
|
ref: handleRootRef,
|
|
89
95
|
role: 'treeitem',
|
|
90
|
-
tabIndex: -1,
|
|
96
|
+
tabIndex: instance.canItemBeTabbed(itemId) ? 0 : -1,
|
|
91
97
|
id: idAttribute,
|
|
92
98
|
'aria-expanded': status.expandable ? status.expanded : undefined,
|
|
93
99
|
'aria-selected': ariaSelected,
|
|
94
100
|
'aria-disabled': status.disabled || undefined
|
|
95
101
|
}, externalProps, {
|
|
96
|
-
onFocus: createRootHandleFocus(externalEventHandlers)
|
|
102
|
+
onFocus: createRootHandleFocus(externalEventHandlers),
|
|
103
|
+
onBlur: createRootHandleBlur(externalEventHandlers),
|
|
104
|
+
onKeyDown: createRootHandleKeyDown(externalEventHandlers)
|
|
97
105
|
});
|
|
98
106
|
};
|
|
99
107
|
const getContentProps = (externalProps = {}) => {
|
|
@@ -4,21 +4,21 @@ import { MuiCancellableEventHandler } from '../internals/models/MuiCancellableEv
|
|
|
4
4
|
import { TreeViewAnyPluginSignature, TreeViewPublicAPI } from '../internals/models';
|
|
5
5
|
export interface UseTreeItem2Parameters {
|
|
6
6
|
/**
|
|
7
|
-
* The id attribute of the
|
|
7
|
+
* The id attribute of the item. If not provided, it will be generated.
|
|
8
8
|
*/
|
|
9
9
|
id?: string;
|
|
10
10
|
/**
|
|
11
|
-
* If `true`, the
|
|
11
|
+
* If `true`, the item is disabled.
|
|
12
12
|
* @default false
|
|
13
13
|
*/
|
|
14
14
|
disabled?: boolean;
|
|
15
15
|
/**
|
|
16
|
-
* The id of the
|
|
16
|
+
* The id of the item.
|
|
17
17
|
* Must be unique.
|
|
18
18
|
*/
|
|
19
|
-
|
|
19
|
+
itemId: TreeViewItemId;
|
|
20
20
|
/**
|
|
21
|
-
* The label of the
|
|
21
|
+
* The label of the item.
|
|
22
22
|
*/
|
|
23
23
|
label?: React.ReactNode;
|
|
24
24
|
rootRef?: React.Ref<HTMLLIElement>;
|
|
@@ -29,12 +29,14 @@ export interface UseTreeItem2Parameters {
|
|
|
29
29
|
}
|
|
30
30
|
export interface UseTreeItem2RootSlotOwnProps {
|
|
31
31
|
role: 'treeitem';
|
|
32
|
-
tabIndex: -1;
|
|
32
|
+
tabIndex: 0 | -1;
|
|
33
33
|
id: string;
|
|
34
34
|
'aria-expanded': React.AriaAttributes['aria-expanded'];
|
|
35
35
|
'aria-selected': React.AriaAttributes['aria-selected'];
|
|
36
36
|
'aria-disabled': React.AriaAttributes['aria-disabled'];
|
|
37
|
-
onFocus: MuiCancellableEventHandler<React.FocusEvent
|
|
37
|
+
onFocus: MuiCancellableEventHandler<React.FocusEvent<HTMLElement>>;
|
|
38
|
+
onBlur: MuiCancellableEventHandler<React.FocusEvent<HTMLElement>>;
|
|
39
|
+
onKeyDown: MuiCancellableEventHandler<React.KeyboardEvent<HTMLElement>>;
|
|
38
40
|
ref: React.RefCallback<HTMLLIElement>;
|
|
39
41
|
}
|
|
40
42
|
export type UseTreeItem2RootSlotProps<ExternalProps = {}> = ExternalProps & UseTreeItem2RootSlotOwnProps;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { useTreeViewJSXNodes } from './useTreeViewJSXNodes';
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { TreeViewNode, TreeViewPluginSignature } from '../../models';
|
|
2
|
-
import { UseTreeViewNodesSignature } from '../useTreeViewNodes';
|
|
3
|
-
import { UseTreeViewKeyboardNavigationSignature } from '../useTreeViewKeyboardNavigation';
|
|
4
|
-
export interface UseTreeViewNodesInstance {
|
|
5
|
-
insertJSXNode: (node: TreeViewNode) => void;
|
|
6
|
-
removeJSXNode: (nodeId: string) => void;
|
|
7
|
-
mapFirstCharFromJSX: (nodeId: string, firstChar: string) => () => void;
|
|
8
|
-
}
|
|
9
|
-
export interface UseTreeViewNodesParameters {
|
|
10
|
-
}
|
|
11
|
-
export interface UseTreeViewNodesDefaultizedParameters {
|
|
12
|
-
}
|
|
13
|
-
export type UseTreeViewJSXNodesSignature = TreeViewPluginSignature<{
|
|
14
|
-
params: UseTreeViewNodesParameters;
|
|
15
|
-
defaultizedParams: UseTreeViewNodesDefaultizedParameters;
|
|
16
|
-
instance: UseTreeViewNodesInstance;
|
|
17
|
-
dependantPlugins: [UseTreeViewNodesSignature, UseTreeViewKeyboardNavigationSignature];
|
|
18
|
-
}>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { useTreeViewNodes } from './useTreeViewNodes';
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { TreeViewNode, DefaultizedProps, TreeViewPluginSignature } from '../../models';
|
|
2
|
-
import { TreeViewItemId } from '../../../models';
|
|
3
|
-
interface TreeViewNodeProps {
|
|
4
|
-
label: string;
|
|
5
|
-
nodeId: string;
|
|
6
|
-
id: string | undefined;
|
|
7
|
-
children?: TreeViewNodeProps[];
|
|
8
|
-
}
|
|
9
|
-
export interface UseTreeViewNodesInstance<R extends {}> {
|
|
10
|
-
getNode: (nodeId: string) => TreeViewNode;
|
|
11
|
-
getItem: (nodeId: string) => R;
|
|
12
|
-
getNodesToRender: () => TreeViewNodeProps[];
|
|
13
|
-
getChildrenIds: (nodeId: string | null) => string[];
|
|
14
|
-
getNavigableChildrenIds: (nodeId: string | null) => string[];
|
|
15
|
-
isNodeDisabled: (nodeId: string | null) => nodeId is string;
|
|
16
|
-
}
|
|
17
|
-
export interface UseTreeViewNodesPublicAPI<R extends {}> extends Pick<UseTreeViewNodesInstance<R>, 'getItem'> {
|
|
18
|
-
}
|
|
19
|
-
export interface UseTreeViewNodesParameters<R extends {}> {
|
|
20
|
-
/**
|
|
21
|
-
* If `true`, will allow focus on disabled items.
|
|
22
|
-
* @default false
|
|
23
|
-
*/
|
|
24
|
-
disabledItemsFocusable?: boolean;
|
|
25
|
-
items: readonly R[];
|
|
26
|
-
/**
|
|
27
|
-
* Used to determine if a given item should be disabled.
|
|
28
|
-
* @template R
|
|
29
|
-
* @param {R} item The item to check.
|
|
30
|
-
* @returns {boolean} `true` if the item should be disabled.
|
|
31
|
-
*/
|
|
32
|
-
isItemDisabled?: (item: R) => boolean;
|
|
33
|
-
/**
|
|
34
|
-
* Used to determine the string label for a given item.
|
|
35
|
-
*
|
|
36
|
-
* @template R
|
|
37
|
-
* @param {R} item The item to check.
|
|
38
|
-
* @returns {string} The label of the item.
|
|
39
|
-
* @default `(item) => item.label`
|
|
40
|
-
*/
|
|
41
|
-
getItemLabel?: (item: R) => string;
|
|
42
|
-
/**
|
|
43
|
-
* Used to determine the string label for a given item.
|
|
44
|
-
*
|
|
45
|
-
* @template R
|
|
46
|
-
* @param {R} item The item to check.
|
|
47
|
-
* @returns {string} The id of the item.
|
|
48
|
-
* @default `(item) => item.id`
|
|
49
|
-
*/
|
|
50
|
-
getItemId?: (item: R) => TreeViewItemId;
|
|
51
|
-
}
|
|
52
|
-
export type UseTreeViewNodesDefaultizedParameters<R extends {}> = DefaultizedProps<UseTreeViewNodesParameters<R>, 'disabledItemsFocusable'>;
|
|
53
|
-
interface UseTreeViewNodesEventLookup {
|
|
54
|
-
removeNode: {
|
|
55
|
-
params: {
|
|
56
|
-
id: string;
|
|
57
|
-
};
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
export interface TreeViewNodeIdAndChildren {
|
|
61
|
-
id: TreeViewItemId;
|
|
62
|
-
children?: TreeViewNodeIdAndChildren[];
|
|
63
|
-
}
|
|
64
|
-
export interface UseTreeViewNodesState<R extends {}> {
|
|
65
|
-
nodes: {
|
|
66
|
-
nodeTree: TreeViewNodeIdAndChildren[];
|
|
67
|
-
nodeMap: TreeViewNodeMap;
|
|
68
|
-
itemMap: TreeViewItemMap<R>;
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
interface UseTreeViewNodesContextValue extends Pick<UseTreeViewNodesDefaultizedParameters<any>, 'disabledItemsFocusable'> {
|
|
72
|
-
}
|
|
73
|
-
export type UseTreeViewNodesSignature = TreeViewPluginSignature<{
|
|
74
|
-
params: UseTreeViewNodesParameters<any>;
|
|
75
|
-
defaultizedParams: UseTreeViewNodesDefaultizedParameters<any>;
|
|
76
|
-
instance: UseTreeViewNodesInstance<any>;
|
|
77
|
-
publicAPI: UseTreeViewNodesPublicAPI<any>;
|
|
78
|
-
events: UseTreeViewNodesEventLookup;
|
|
79
|
-
state: UseTreeViewNodesState<any>;
|
|
80
|
-
contextValue: UseTreeViewNodesContextValue;
|
|
81
|
-
}>;
|
|
82
|
-
export type TreeViewNodeMap = {
|
|
83
|
-
[nodeId: string]: TreeViewNode;
|
|
84
|
-
};
|
|
85
|
-
export type TreeViewItemMap<R extends {}> = {
|
|
86
|
-
[nodeId: string]: R;
|
|
87
|
-
};
|
|
88
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { useTreeViewJSXNodes } from './useTreeViewJSXNodes';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { useTreeViewNodes } from './useTreeViewNodes';
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
Object.defineProperty(exports, "useTreeViewJSXNodes", {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: function () {
|
|
9
|
-
return _useTreeViewJSXNodes.useTreeViewJSXNodes;
|
|
10
|
-
}
|
|
11
|
-
});
|
|
12
|
-
var _useTreeViewJSXNodes = require("./useTreeViewJSXNodes");
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
Object.defineProperty(exports, "useTreeViewNodes", {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: function () {
|
|
9
|
-
return _useTreeViewNodes.useTreeViewNodes;
|
|
10
|
-
}
|
|
11
|
-
});
|
|
12
|
-
var _useTreeViewNodes = require("./useTreeViewNodes");
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|