@mui/x-tree-view 7.22.1 → 8.0.0-alpha.1
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 +486 -11
- package/README.md +4 -4
- package/RichTreeView/RichTreeView.js +22 -5
- package/RichTreeView/RichTreeView.types.d.ts +4 -17
- package/SimpleTreeView/SimpleTreeView.js +21 -3
- package/TreeItem/TreeItem.d.ts +20 -2
- package/TreeItem/TreeItem.js +241 -371
- package/TreeItem/TreeItem.types.d.ts +52 -85
- package/TreeItem/index.d.ts +1 -4
- package/TreeItem/index.js +2 -4
- package/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.d.ts +7 -0
- package/{modern/TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.js → TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.js} +8 -6
- package/{TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.types.d.ts → TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.types.d.ts} +1 -1
- package/TreeItemDragAndDropOverlay/index.d.ts +2 -0
- package/TreeItemDragAndDropOverlay/index.js +1 -0
- package/{TreeItem2LabelInput → TreeItemDragAndDropOverlay}/package.json +1 -1
- package/TreeItemIcon/TreeItemIcon.d.ts +7 -0
- package/{TreeItem2Icon/TreeItem2Icon.js → TreeItemIcon/TreeItemIcon.js} +5 -3
- package/{TreeItem2Icon/TreeItem2Icon.types.d.ts → TreeItemIcon/TreeItemIcon.types.d.ts} +7 -7
- package/TreeItemIcon/index.d.ts +2 -0
- package/TreeItemIcon/index.js +1 -0
- package/{useTreeItem2 → TreeItemIcon}/package.json +1 -1
- package/TreeItemLabelInput/TreeItemLabelInput.d.ts +5 -0
- package/{TreeItem2LabelInput/TreeItem2LabelInput.js → TreeItemLabelInput/TreeItemLabelInput.js} +3 -3
- package/{TreeItem2LabelInput/TreeItem2LabelInput.types.d.ts → TreeItemLabelInput/TreeItemLabelInput.types.d.ts} +1 -1
- package/TreeItemLabelInput/index.d.ts +2 -0
- package/TreeItemLabelInput/index.js +1 -0
- package/{TreeItem2Provider → TreeItemLabelInput}/package.json +1 -1
- package/TreeItemProvider/TreeItemProvider.d.ts +9 -0
- package/TreeItemProvider/TreeItemProvider.js +43 -0
- package/{TreeItem2Provider/TreeItem2Provider.types.d.ts → TreeItemProvider/TreeItemProvider.types.d.ts} +2 -1
- package/TreeItemProvider/index.d.ts +2 -0
- package/TreeItemProvider/index.js +1 -0
- package/{TreeItem2Icon → TreeItemProvider}/package.json +1 -1
- package/hooks/index.d.ts +2 -1
- package/hooks/index.js +2 -1
- package/hooks/useTreeItemModel.d.ts +2 -0
- package/hooks/useTreeItemModel.js +11 -0
- package/hooks/useTreeItemUtils/index.d.ts +1 -0
- package/hooks/useTreeItemUtils/index.js +1 -0
- package/hooks/{useTreeItem2Utils/useTreeItem2Utils.d.ts → useTreeItemUtils/useTreeItemUtils.d.ts} +13 -12
- package/{modern/hooks/useTreeItem2Utils/useTreeItem2Utils.js → hooks/useTreeItemUtils/useTreeItemUtils.js} +36 -18
- package/index.d.ts +5 -7
- package/index.js +6 -8
- package/internals/TreeViewItemDepthContext/TreeViewItemDepthContext.d.ts +3 -1
- package/internals/TreeViewProvider/TreeViewChildrenItemProvider.d.ts +2 -1
- package/internals/TreeViewProvider/TreeViewChildrenItemProvider.js +6 -22
- package/internals/TreeViewProvider/TreeViewProvider.js +1 -2
- package/internals/TreeViewProvider/TreeViewProvider.types.d.ts +5 -2
- package/internals/components/RichTreeViewItems.d.ts +3 -6
- package/internals/components/RichTreeViewItems.js +42 -30
- package/internals/corePlugins/useTreeViewId/useTreeViewId.js +10 -11
- package/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.d.ts +36 -0
- package/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.js +9 -0
- package/internals/corePlugins/useTreeViewId/useTreeViewId.types.d.ts +1 -5
- package/internals/hooks/useSelector.d.ts +4 -0
- package/internals/hooks/useSelector.js +6 -0
- package/internals/index.d.ts +6 -1
- package/internals/index.js +5 -1
- package/internals/models/helpers.d.ts +0 -2
- package/internals/models/itemPlugin.d.ts +13 -10
- package/internals/models/plugin.d.ts +20 -8
- package/internals/models/treeView.d.ts +6 -0
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +36 -24
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.d.ts +124 -0
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js +17 -0
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +8 -15
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.d.ts +1 -0
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.js +7 -0
- package/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +62 -40
- package/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.d.ts +182 -0
- package/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.js +34 -0
- package/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +4 -16
- package/internals/plugins/useTreeViewIcons/useTreeViewIcons.js +15 -13
- package/internals/plugins/useTreeViewItems/index.d.ts +1 -1
- package/internals/plugins/useTreeViewItems/useTreeViewItems.js +58 -100
- package/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.d.ts +718 -0
- package/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js +103 -0
- package/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +16 -55
- package/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js +29 -26
- package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +27 -18
- package/internals/plugins/useTreeViewLabel/useTreeViewLabel.itemPlugin.d.ts +1 -1
- package/internals/plugins/useTreeViewLabel/useTreeViewLabel.itemPlugin.js +13 -5
- package/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +19 -30
- package/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +74 -0
- package/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.js +26 -0
- package/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +13 -29
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.d.ts +2 -0
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +88 -0
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +79 -43
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +32 -0
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.js +9 -0
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +39 -9
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.d.ts +20 -1
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +105 -0
- package/internals/useTreeView/useTreeView.js +30 -17
- package/internals/useTreeView/useTreeView.types.d.ts +1 -2
- package/internals/useTreeView/useTreeViewBuildContext.d.ts +3 -1
- package/internals/useTreeView/useTreeViewBuildContext.js +24 -18
- package/internals/utils/TreeViewStore.d.ts +12 -0
- package/internals/utils/TreeViewStore.js +24 -0
- package/internals/utils/selectors.d.ts +9 -0
- package/internals/utils/selectors.js +37 -0
- package/internals/utils/tree.d.ts +8 -8
- package/internals/utils/tree.js +51 -43
- package/models/items.d.ts +7 -2
- package/modern/RichTreeView/RichTreeView.js +22 -5
- package/modern/SimpleTreeView/SimpleTreeView.js +21 -3
- package/modern/TreeItem/TreeItem.js +241 -371
- package/modern/TreeItem/index.js +2 -4
- package/{TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.js → modern/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.js} +8 -6
- package/modern/TreeItemDragAndDropOverlay/index.js +1 -0
- package/modern/{TreeItem2Icon/TreeItem2Icon.js → TreeItemIcon/TreeItemIcon.js} +5 -3
- package/modern/TreeItemIcon/index.js +1 -0
- package/modern/{TreeItem2LabelInput/TreeItem2LabelInput.js → TreeItemLabelInput/TreeItemLabelInput.js} +3 -3
- package/modern/TreeItemLabelInput/index.js +1 -0
- package/modern/TreeItemProvider/TreeItemProvider.js +43 -0
- package/modern/TreeItemProvider/index.js +1 -0
- package/modern/hooks/index.js +2 -1
- package/modern/hooks/useTreeItemModel.js +11 -0
- package/modern/hooks/useTreeItemUtils/index.js +1 -0
- package/{hooks/useTreeItem2Utils/useTreeItem2Utils.js → modern/hooks/useTreeItemUtils/useTreeItemUtils.js} +36 -18
- package/modern/index.js +6 -8
- package/modern/internals/TreeViewProvider/TreeViewChildrenItemProvider.js +6 -22
- package/modern/internals/TreeViewProvider/TreeViewProvider.js +1 -2
- package/modern/internals/components/RichTreeViewItems.js +42 -30
- package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.js +10 -11
- package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.js +9 -0
- package/modern/internals/hooks/useSelector.js +6 -0
- package/modern/internals/index.js +5 -1
- package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +36 -24
- package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js +17 -0
- package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.js +7 -0
- package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +62 -40
- package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.js +34 -0
- package/modern/internals/plugins/useTreeViewIcons/useTreeViewIcons.js +15 -13
- package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.js +58 -100
- package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js +103 -0
- package/modern/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js +29 -26
- package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +27 -18
- package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.itemPlugin.js +13 -5
- package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +19 -30
- package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.js +26 -0
- package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +88 -0
- package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +79 -43
- package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.js +9 -0
- package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +105 -0
- package/modern/internals/useTreeView/useTreeView.js +30 -17
- package/modern/internals/useTreeView/useTreeViewBuildContext.js +24 -18
- package/modern/internals/utils/TreeViewStore.js +24 -0
- package/modern/internals/utils/selectors.js +37 -0
- package/modern/internals/utils/tree.js +51 -43
- package/modern/useTreeItem/index.js +1 -0
- package/modern/{useTreeItem2/useTreeItem2.js → useTreeItem/useTreeItem.js} +45 -51
- package/node/RichTreeView/RichTreeView.js +22 -5
- package/node/SimpleTreeView/SimpleTreeView.js +21 -3
- package/node/TreeItem/TreeItem.js +242 -372
- package/node/TreeItem/index.js +38 -16
- package/node/{TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.js → TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.js} +7 -6
- package/node/TreeItemDragAndDropOverlay/index.js +12 -0
- package/node/{TreeItem2Icon/TreeItem2Icon.js → TreeItemIcon/TreeItemIcon.js} +4 -3
- package/node/TreeItemIcon/index.js +12 -0
- package/node/{TreeItem2LabelInput/TreeItem2LabelInput.js → TreeItemLabelInput/TreeItemLabelInput.js} +3 -3
- package/node/TreeItemLabelInput/index.js +12 -0
- package/node/{TreeItem2Provider/TreeItem2Provider.js → TreeItemProvider/TreeItemProvider.js} +22 -6
- package/node/TreeItemProvider/index.js +12 -0
- package/node/hooks/index.js +10 -3
- package/node/hooks/useTreeItemModel.js +17 -0
- package/node/hooks/useTreeItemUtils/index.js +12 -0
- package/node/hooks/{useTreeItem2Utils/useTreeItem2Utils.js → useTreeItemUtils/useTreeItemUtils.js} +37 -19
- package/node/index.js +18 -42
- package/node/internals/TreeViewProvider/TreeViewChildrenItemProvider.js +6 -22
- package/node/internals/TreeViewProvider/TreeViewProvider.js +1 -2
- package/node/internals/components/RichTreeViewItems.js +42 -30
- package/node/internals/corePlugins/useTreeViewId/useTreeViewId.js +12 -13
- package/node/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.js +15 -0
- package/node/internals/hooks/useSelector.js +13 -0
- package/node/internals/index.js +47 -1
- package/node/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +36 -24
- package/node/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js +23 -0
- package/node/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.js +14 -0
- package/node/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +62 -40
- package/node/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.js +40 -0
- package/node/internals/plugins/useTreeViewIcons/useTreeViewIcons.js +16 -13
- package/node/internals/plugins/useTreeViewItems/useTreeViewItems.js +60 -102
- package/node/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js +109 -0
- package/node/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js +30 -27
- package/node/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +27 -18
- package/node/internals/plugins/useTreeViewLabel/useTreeViewLabel.itemPlugin.js +13 -5
- package/node/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +19 -30
- package/node/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.js +32 -0
- package/node/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +96 -0
- package/node/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +78 -42
- package/node/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.js +15 -0
- package/node/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +109 -2
- package/node/internals/useTreeView/useTreeView.js +30 -17
- package/node/internals/useTreeView/useTreeViewBuildContext.js +25 -18
- package/node/internals/utils/TreeViewStore.js +31 -0
- package/node/internals/utils/selectors.js +44 -0
- package/node/internals/utils/tree.js +51 -43
- package/node/useTreeItem/index.js +12 -0
- package/node/{useTreeItem2/useTreeItem2.js → useTreeItem/useTreeItem.js} +46 -53
- package/package.json +7 -5
- package/themeAugmentation/components.d.ts +0 -10
- package/themeAugmentation/overrides.d.ts +0 -3
- package/themeAugmentation/props.d.ts +1 -5
- package/useTreeItem/index.d.ts +2 -0
- package/useTreeItem/index.js +1 -0
- package/{TreeItem2 → useTreeItem}/package.json +1 -1
- package/useTreeItem/useTreeItem.d.ts +2 -0
- package/{useTreeItem2/useTreeItem2.js → useTreeItem/useTreeItem.js} +45 -51
- package/{useTreeItem2/useTreeItem2.types.d.ts → useTreeItem/useTreeItem.types.d.ts} +51 -58
- package/TreeItem/TreeItemContent.d.ts +0 -61
- package/TreeItem/TreeItemContent.js +0 -146
- package/TreeItem/useTreeItemState.d.ts +0 -21
- package/TreeItem/useTreeItemState.js +0 -143
- package/TreeItem2/TreeItem2.d.ts +0 -34
- package/TreeItem2/TreeItem2.js +0 -387
- package/TreeItem2/TreeItem2.types.d.ts +0 -92
- package/TreeItem2/index.d.ts +0 -2
- package/TreeItem2/index.js +0 -1
- package/TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.d.ts +0 -7
- package/TreeItem2DragAndDropOverlay/index.d.ts +0 -2
- package/TreeItem2DragAndDropOverlay/index.js +0 -1
- package/TreeItem2DragAndDropOverlay/package.json +0 -6
- package/TreeItem2Icon/TreeItem2Icon.d.ts +0 -7
- package/TreeItem2Icon/index.d.ts +0 -2
- package/TreeItem2Icon/index.js +0 -1
- package/TreeItem2LabelInput/TreeItem2LabelInput.d.ts +0 -5
- package/TreeItem2LabelInput/index.d.ts +0 -2
- package/TreeItem2LabelInput/index.js +0 -1
- package/TreeItem2Provider/TreeItem2Provider.d.ts +0 -6
- package/TreeItem2Provider/TreeItem2Provider.js +0 -26
- package/TreeItem2Provider/index.d.ts +0 -2
- package/TreeItem2Provider/index.js +0 -1
- package/TreeView/TreeView.d.ts +0 -21
- package/TreeView/TreeView.js +0 -211
- package/TreeView/TreeView.types.d.ts +0 -9
- package/TreeView/index.d.ts +0 -3
- package/TreeView/index.js +0 -3
- package/TreeView/package.json +0 -6
- package/TreeView/treeViewClasses.d.ts +0 -7
- package/TreeView/treeViewClasses.js +0 -6
- package/hooks/useTreeItem2Utils/index.d.ts +0 -1
- package/hooks/useTreeItem2Utils/index.js +0 -1
- package/modern/TreeItem/TreeItemContent.js +0 -146
- package/modern/TreeItem/useTreeItemState.js +0 -143
- package/modern/TreeItem2/TreeItem2.js +0 -387
- package/modern/TreeItem2/index.js +0 -1
- package/modern/TreeItem2DragAndDropOverlay/index.js +0 -1
- package/modern/TreeItem2Icon/index.js +0 -1
- package/modern/TreeItem2LabelInput/index.js +0 -1
- package/modern/TreeItem2Provider/TreeItem2Provider.js +0 -26
- package/modern/TreeItem2Provider/TreeItem2Provider.types.js +0 -1
- package/modern/TreeItem2Provider/index.js +0 -1
- package/modern/TreeView/TreeView.js +0 -211
- package/modern/TreeView/TreeView.types.js +0 -1
- package/modern/TreeView/index.js +0 -3
- package/modern/TreeView/treeViewClasses.js +0 -6
- package/modern/hooks/useTreeItem2Utils/index.js +0 -1
- package/modern/useTreeItem2/index.js +0 -4
- package/modern/useTreeItem2/useTreeItem2.types.js +0 -1
- package/node/TreeItem/TreeItemContent.js +0 -153
- package/node/TreeItem/useTreeItemState.js +0 -148
- package/node/TreeItem2/TreeItem2.js +0 -394
- package/node/TreeItem2/index.js +0 -48
- package/node/TreeItem2DragAndDropOverlay/index.js +0 -12
- package/node/TreeItem2Icon/index.js +0 -12
- package/node/TreeItem2LabelInput/index.js +0 -12
- package/node/TreeItem2Provider/index.js +0 -12
- package/node/TreeView/TreeView.js +0 -217
- package/node/TreeView/TreeView.types.js +0 -5
- package/node/TreeView/index.js +0 -27
- package/node/TreeView/treeViewClasses.js +0 -14
- package/node/hooks/useTreeItem2Utils/index.js +0 -12
- package/node/useTreeItem2/index.js +0 -10
- package/node/useTreeItem2/useTreeItem2.types.js +0 -5
- package/useTreeItem2/index.d.ts +0 -3
- package/useTreeItem2/index.js +0 -4
- package/useTreeItem2/useTreeItem2.d.ts +0 -2
- package/useTreeItem2/useTreeItem2.types.js +0 -1
- /package/{TreeItem2/TreeItem2.types.js → TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.types.js} +0 -0
- /package/{TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.types.js → TreeItemIcon/TreeItemIcon.types.js} +0 -0
- /package/{TreeItem2Icon/TreeItem2Icon.types.js → TreeItemLabelInput/TreeItemLabelInput.types.js} +0 -0
- /package/{TreeItem2LabelInput/TreeItem2LabelInput.types.js → TreeItemProvider/TreeItemProvider.types.js} +0 -0
- /package/{TreeItem2Provider/TreeItem2Provider.types.js → modern/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.types.js} +0 -0
- /package/{TreeView/TreeView.types.js → modern/TreeItemIcon/TreeItemIcon.types.js} +0 -0
- /package/modern/{TreeItem2/TreeItem2.types.js → TreeItemLabelInput/TreeItemLabelInput.types.js} +0 -0
- /package/modern/{TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.types.js → TreeItemProvider/TreeItemProvider.types.js} +0 -0
- /package/modern/{TreeItem2Icon/TreeItem2Icon.types.js → useTreeItem/useTreeItem.types.js} +0 -0
- /package/node/{TreeItem2/TreeItem2.types.js → TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.types.js} +0 -0
- /package/node/{TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.types.js → TreeItemIcon/TreeItemIcon.types.js} +0 -0
- /package/node/{TreeItem2Icon/TreeItem2Icon.types.js → TreeItemLabelInput/TreeItemLabelInput.types.js} +0 -0
- /package/node/{TreeItem2LabelInput/TreeItem2LabelInput.types.js → TreeItemProvider/TreeItemProvider.types.js} +0 -0
- /package/node/{TreeItem2Provider/TreeItem2Provider.types.js → useTreeItem/useTreeItem.types.js} +0 -0
- /package/{modern/TreeItem2LabelInput/TreeItem2LabelInput.types.js → useTreeItem/useTreeItem.types.js} +0 -0
|
@@ -1,27 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
'use client';
|
|
2
3
|
|
|
3
4
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
5
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
5
6
|
Object.defineProperty(exports, "__esModule", {
|
|
6
7
|
value: true
|
|
7
8
|
});
|
|
8
|
-
exports.
|
|
9
|
+
exports.useTreeItem = void 0;
|
|
9
10
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
11
|
var React = _interopRequireWildcard(require("react"));
|
|
11
12
|
var _extractEventHandlers = _interopRequireDefault(require("@mui/utils/extractEventHandlers"));
|
|
12
13
|
var _useForkRef = _interopRequireDefault(require("@mui/utils/useForkRef"));
|
|
13
14
|
var _TreeViewProvider = require("../internals/TreeViewProvider");
|
|
14
|
-
var
|
|
15
|
+
var _useTreeItemUtils = require("../hooks/useTreeItemUtils");
|
|
15
16
|
var _TreeViewItemDepthContext = require("../internals/TreeViewItemDepthContext");
|
|
16
17
|
var _tree = require("../internals/utils/tree");
|
|
18
|
+
var _useSelector = require("../internals/hooks/useSelector");
|
|
19
|
+
var _useTreeViewFocus = require("../internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors");
|
|
17
20
|
var _useTreeViewId = require("../internals/corePlugins/useTreeViewId/useTreeViewId.utils");
|
|
18
|
-
|
|
21
|
+
var _useTreeViewItems = require("../internals/plugins/useTreeViewItems/useTreeViewItems.selectors");
|
|
22
|
+
var _useTreeViewId2 = require("../internals/corePlugins/useTreeViewId/useTreeViewId.selectors");
|
|
23
|
+
const useTreeItem = parameters => {
|
|
19
24
|
const {
|
|
20
25
|
runItemPlugins,
|
|
21
26
|
items: {
|
|
22
|
-
onItemClick
|
|
23
|
-
disabledItemsFocusable,
|
|
24
|
-
indentationAtItemLevel
|
|
27
|
+
onItemClick
|
|
25
28
|
},
|
|
26
29
|
selection: {
|
|
27
30
|
disableSelection,
|
|
@@ -30,11 +33,18 @@ const useTreeItem2 = parameters => {
|
|
|
30
33
|
expansion: {
|
|
31
34
|
expansionTrigger
|
|
32
35
|
},
|
|
33
|
-
|
|
36
|
+
label: labelContext,
|
|
34
37
|
instance,
|
|
35
|
-
publicAPI
|
|
38
|
+
publicAPI,
|
|
39
|
+
store
|
|
36
40
|
} = (0, _TreeViewProvider.useTreeViewContext)();
|
|
37
41
|
const depthContext = React.useContext(_TreeViewItemDepthContext.TreeViewItemDepthContext);
|
|
42
|
+
const depth = (0, _useSelector.useSelector)(store, (...params) => {
|
|
43
|
+
if (typeof depthContext === 'function') {
|
|
44
|
+
return depthContext(...params);
|
|
45
|
+
}
|
|
46
|
+
return depthContext;
|
|
47
|
+
}, parameters.itemId);
|
|
38
48
|
const {
|
|
39
49
|
id,
|
|
40
50
|
itemId,
|
|
@@ -50,7 +60,7 @@ const useTreeItem2 = parameters => {
|
|
|
50
60
|
const {
|
|
51
61
|
interactions,
|
|
52
62
|
status
|
|
53
|
-
} = (0,
|
|
63
|
+
} = (0, _useTreeItemUtils.useTreeItemUtils)({
|
|
54
64
|
itemId,
|
|
55
65
|
children
|
|
56
66
|
});
|
|
@@ -59,24 +69,25 @@ const useTreeItem2 = parameters => {
|
|
|
59
69
|
const handleRootRef = (0, _useForkRef.default)(rootRef, pluginRootRef, rootRefObject);
|
|
60
70
|
const handleContentRef = (0, _useForkRef.default)(contentRef, contentRefObject);
|
|
61
71
|
const checkboxRef = React.useRef(null);
|
|
72
|
+
const treeId = (0, _useSelector.useSelector)(store, _useTreeViewId2.selectorTreeViewId);
|
|
62
73
|
const idAttribute = (0, _useTreeViewId.generateTreeItemIdAttribute)({
|
|
63
74
|
itemId,
|
|
64
75
|
treeId,
|
|
65
76
|
id
|
|
66
77
|
});
|
|
67
|
-
const
|
|
78
|
+
const shouldBeAccessibleWithTab = (0, _useSelector.useSelector)(store, _useTreeViewFocus.selectorIsItemTheDefaultFocusableItem, itemId);
|
|
68
79
|
const sharedPropsEnhancerParams = {
|
|
69
80
|
rootRefObject,
|
|
70
81
|
contentRefObject,
|
|
71
|
-
interactions
|
|
82
|
+
interactions,
|
|
83
|
+
status
|
|
72
84
|
};
|
|
73
85
|
const createRootHandleFocus = otherHandlers => event => {
|
|
74
86
|
otherHandlers.onFocus?.(event);
|
|
75
87
|
if (event.defaultMuiPrevented) {
|
|
76
88
|
return;
|
|
77
89
|
}
|
|
78
|
-
|
|
79
|
-
if (!status.focused && canBeFocused && event.currentTarget === event.target) {
|
|
90
|
+
if (!status.focused && (0, _useTreeViewItems.selectorCanItemBeFocused)(store.value, itemId) && event.currentTarget === event.target) {
|
|
80
91
|
instance.focusItem(event, itemId);
|
|
81
92
|
}
|
|
82
93
|
};
|
|
@@ -114,7 +125,7 @@ const useTreeItem2 = parameters => {
|
|
|
114
125
|
};
|
|
115
126
|
const createContentHandleClick = otherHandlers => event => {
|
|
116
127
|
otherHandlers.onClick?.(event);
|
|
117
|
-
onItemClick
|
|
128
|
+
onItemClick(event, itemId);
|
|
118
129
|
if (event.defaultMuiPrevented || checkboxRef.current?.contains(event.target)) {
|
|
119
130
|
return;
|
|
120
131
|
}
|
|
@@ -136,16 +147,6 @@ const useTreeItem2 = parameters => {
|
|
|
136
147
|
event.preventDefault();
|
|
137
148
|
}
|
|
138
149
|
};
|
|
139
|
-
const createCheckboxHandleChange = otherHandlers => event => {
|
|
140
|
-
otherHandlers.onChange?.(event);
|
|
141
|
-
if (event.defaultMuiPrevented) {
|
|
142
|
-
return;
|
|
143
|
-
}
|
|
144
|
-
if (disableSelection || status.disabled) {
|
|
145
|
-
return;
|
|
146
|
-
}
|
|
147
|
-
interactions.handleCheckboxSelection(event);
|
|
148
|
-
};
|
|
149
150
|
const createIconContainerHandleClick = otherHandlers => event => {
|
|
150
151
|
otherHandlers.onClick?.(event);
|
|
151
152
|
if (event.defaultMuiPrevented) {
|
|
@@ -155,6 +156,10 @@ const useTreeItem2 = parameters => {
|
|
|
155
156
|
interactions.handleExpansion(event);
|
|
156
157
|
}
|
|
157
158
|
};
|
|
159
|
+
const getContextProviderProps = () => ({
|
|
160
|
+
itemId,
|
|
161
|
+
id
|
|
162
|
+
});
|
|
158
163
|
const getRootProps = (externalProps = {}) => {
|
|
159
164
|
const externalEventHandlers = (0, _extends2.default)({}, (0, _extractEventHandlers.default)(parameters), (0, _extractEventHandlers.default)(externalProps));
|
|
160
165
|
|
|
@@ -173,21 +178,19 @@ const useTreeItem2 = parameters => {
|
|
|
173
178
|
const props = (0, _extends2.default)({}, externalEventHandlers, {
|
|
174
179
|
ref: handleRootRef,
|
|
175
180
|
role: 'treeitem',
|
|
176
|
-
tabIndex:
|
|
181
|
+
tabIndex: shouldBeAccessibleWithTab ? 0 : -1,
|
|
177
182
|
id: idAttribute,
|
|
178
183
|
'aria-expanded': status.expandable ? status.expanded : undefined,
|
|
179
184
|
'aria-selected': ariaSelected,
|
|
180
185
|
'aria-disabled': status.disabled || undefined
|
|
181
186
|
}, externalProps, {
|
|
187
|
+
style: (0, _extends2.default)({}, externalProps.style ?? {}, {
|
|
188
|
+
'--TreeView-itemDepth': depth
|
|
189
|
+
}),
|
|
182
190
|
onFocus: createRootHandleFocus(externalEventHandlers),
|
|
183
191
|
onBlur: createRootHandleBlur(externalEventHandlers),
|
|
184
192
|
onKeyDown: createRootHandleKeyDown(externalEventHandlers)
|
|
185
193
|
});
|
|
186
|
-
if (indentationAtItemLevel) {
|
|
187
|
-
props.style = {
|
|
188
|
-
'--TreeView-itemDepth': typeof depthContext === 'function' ? depthContext(itemId) : depthContext
|
|
189
|
-
};
|
|
190
|
-
}
|
|
191
194
|
const enhancedRootProps = propsEnhancers.root?.((0, _extends2.default)({}, sharedPropsEnhancerParams, {
|
|
192
195
|
externalEventHandlers
|
|
193
196
|
})) ?? {};
|
|
@@ -201,9 +204,6 @@ const useTreeItem2 = parameters => {
|
|
|
201
204
|
onMouseDown: createContentHandleMouseDown(externalEventHandlers),
|
|
202
205
|
status
|
|
203
206
|
});
|
|
204
|
-
if (indentationAtItemLevel) {
|
|
205
|
-
props.indentationAtItemLevel = true;
|
|
206
|
-
}
|
|
207
207
|
const enhancedContentProps = propsEnhancers.content?.((0, _extends2.default)({}, sharedPropsEnhancerParams, {
|
|
208
208
|
externalEventHandlers
|
|
209
209
|
})) ?? {};
|
|
@@ -211,15 +211,13 @@ const useTreeItem2 = parameters => {
|
|
|
211
211
|
};
|
|
212
212
|
const getCheckboxProps = (externalProps = {}) => {
|
|
213
213
|
const externalEventHandlers = (0, _extractEventHandlers.default)(externalProps);
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
},
|
|
221
|
-
onChange: createCheckboxHandleChange(externalEventHandlers)
|
|
222
|
-
});
|
|
214
|
+
const props = (0, _extends2.default)({}, externalEventHandlers, {
|
|
215
|
+
ref: checkboxRef
|
|
216
|
+
}, externalProps);
|
|
217
|
+
const enhancedCheckboxProps = propsEnhancers.checkbox?.((0, _extends2.default)({}, sharedPropsEnhancerParams, {
|
|
218
|
+
externalEventHandlers
|
|
219
|
+
})) ?? {};
|
|
220
|
+
return (0, _extends2.default)({}, props, enhancedCheckboxProps);
|
|
223
221
|
};
|
|
224
222
|
const getLabelProps = (externalProps = {}) => {
|
|
225
223
|
const externalEventHandlers = (0, _extends2.default)({}, (0, _extractEventHandlers.default)(externalProps));
|
|
@@ -228,19 +226,16 @@ const useTreeItem2 = parameters => {
|
|
|
228
226
|
}, externalProps, {
|
|
229
227
|
onDoubleClick: createLabelHandleDoubleClick(externalEventHandlers)
|
|
230
228
|
});
|
|
231
|
-
if (
|
|
229
|
+
if (labelContext?.isItemEditable) {
|
|
232
230
|
props.editable = status.editable;
|
|
233
231
|
}
|
|
234
232
|
return props;
|
|
235
233
|
};
|
|
236
234
|
const getLabelInputProps = (externalProps = {}) => {
|
|
237
235
|
const externalEventHandlers = (0, _extractEventHandlers.default)(externalProps);
|
|
238
|
-
const enhancedLabelInputProps = propsEnhancers.labelInput?.({
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
externalEventHandlers,
|
|
242
|
-
interactions
|
|
243
|
-
}) ?? {};
|
|
236
|
+
const enhancedLabelInputProps = propsEnhancers.labelInput?.((0, _extends2.default)({}, sharedPropsEnhancerParams, {
|
|
237
|
+
externalEventHandlers
|
|
238
|
+
})) ?? {};
|
|
244
239
|
return (0, _extends2.default)({}, externalProps, enhancedLabelInputProps);
|
|
245
240
|
};
|
|
246
241
|
const getIconContainerProps = (externalProps = {}) => {
|
|
@@ -258,9 +253,6 @@ const useTreeItem2 = parameters => {
|
|
|
258
253
|
in: status.expanded,
|
|
259
254
|
children
|
|
260
255
|
}, externalProps);
|
|
261
|
-
if (indentationAtItemLevel) {
|
|
262
|
-
response.indentationAtItemLevel = true;
|
|
263
|
-
}
|
|
264
256
|
return response;
|
|
265
257
|
};
|
|
266
258
|
const getDragAndDropOverlayProps = (externalProps = {}) => {
|
|
@@ -271,6 +263,7 @@ const useTreeItem2 = parameters => {
|
|
|
271
263
|
return (0, _extends2.default)({}, externalProps, enhancedDragAndDropOverlayProps);
|
|
272
264
|
};
|
|
273
265
|
return {
|
|
266
|
+
getContextProviderProps,
|
|
274
267
|
getRootProps,
|
|
275
268
|
getContentProps,
|
|
276
269
|
getGroupTransitionProps,
|
|
@@ -284,4 +277,4 @@ const useTreeItem2 = parameters => {
|
|
|
284
277
|
publicAPI
|
|
285
278
|
};
|
|
286
279
|
};
|
|
287
|
-
exports.
|
|
280
|
+
exports.useTreeItem = useTreeItem;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mui/x-tree-view",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "8.0.0-alpha.1",
|
|
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,21 +33,23 @@
|
|
|
33
33
|
"directory": "packages/x-tree-view"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@babel/runtime": "^7.
|
|
36
|
+
"@babel/runtime": "^7.26.0",
|
|
37
37
|
"@mui/utils": "^5.16.6 || ^6.0.0",
|
|
38
38
|
"@types/react-transition-group": "^4.4.11",
|
|
39
39
|
"clsx": "^2.1.1",
|
|
40
40
|
"prop-types": "^15.8.1",
|
|
41
41
|
"react-transition-group": "^4.4.5",
|
|
42
|
-
"
|
|
42
|
+
"reselect": "^5.1.1",
|
|
43
|
+
"use-sync-external-store": "^1.2.2",
|
|
44
|
+
"@mui/x-internals": "8.0.0-alpha.1"
|
|
43
45
|
},
|
|
44
46
|
"peerDependencies": {
|
|
45
47
|
"@emotion/react": "^11.9.0",
|
|
46
48
|
"@emotion/styled": "^11.8.1",
|
|
47
49
|
"@mui/material": "^5.15.14 || ^6.0.0",
|
|
48
50
|
"@mui/system": "^5.15.14 || ^6.0.0",
|
|
49
|
-
"react": "^17.0.0 || ^18.0.0",
|
|
50
|
-
"react-dom": "^17.0.0 || ^18.0.0"
|
|
51
|
+
"react": "^17.0.0 || ^18.0.0 || ^19.0.0",
|
|
52
|
+
"react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0"
|
|
51
53
|
},
|
|
52
54
|
"peerDependenciesMeta": {
|
|
53
55
|
"@emotion/react": {
|
|
@@ -11,21 +11,11 @@ export interface TreeViewComponents<Theme = unknown> {
|
|
|
11
11
|
styleOverrides?: ComponentsOverrides<Theme>['MuiRichTreeView'];
|
|
12
12
|
variants?: ComponentsVariants<Theme>['MuiRichTreeView'];
|
|
13
13
|
};
|
|
14
|
-
MuiTreeView?: {
|
|
15
|
-
defaultProps?: ComponentsProps['MuiTreeView'];
|
|
16
|
-
styleOverrides?: ComponentsOverrides<Theme>['MuiTreeView'];
|
|
17
|
-
variants?: ComponentsVariants<Theme>['MuiTreeView'];
|
|
18
|
-
};
|
|
19
14
|
MuiTreeItem?: {
|
|
20
15
|
defaultProps?: ComponentsProps['MuiTreeItem'];
|
|
21
16
|
styleOverrides?: ComponentsOverrides<Theme>['MuiTreeItem'];
|
|
22
17
|
variants?: ComponentsVariants<Theme>['MuiTreeItem'];
|
|
23
18
|
};
|
|
24
|
-
MuiTreeItem2?: {
|
|
25
|
-
defaultProps?: ComponentsProps['MuiTreeItem2'];
|
|
26
|
-
styleOverrides?: ComponentsOverrides<Theme>['MuiTreeItem2'];
|
|
27
|
-
variants?: ComponentsVariants<Theme>['MuiTreeItem2'];
|
|
28
|
-
};
|
|
29
19
|
}
|
|
30
20
|
|
|
31
21
|
declare module '@mui/material/styles' {
|
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
import { RichTreeViewClassKey } from '../RichTreeView';
|
|
2
2
|
import { SimpleTreeViewClassKey } from '../SimpleTreeView';
|
|
3
|
-
import { TreeViewClassKey } from '../TreeView';
|
|
4
3
|
import { TreeItemClassKey } from '../TreeItem';
|
|
5
4
|
|
|
6
5
|
// prettier-ignore
|
|
7
6
|
export interface TreeViewComponentNameToClassKey {
|
|
8
7
|
MuiSimpleTreeView: SimpleTreeViewClassKey;
|
|
9
8
|
MuiRichTreeView: RichTreeViewClassKey;
|
|
10
|
-
MuiTreeView: TreeViewClassKey;
|
|
11
9
|
MuiTreeItem: TreeItemClassKey;
|
|
12
|
-
MuiTreeItem2: TreeItemClassKey;
|
|
13
10
|
}
|
|
14
11
|
|
|
15
12
|
declare module '@mui/material/styles' {
|
|
@@ -1,15 +1,11 @@
|
|
|
1
|
-
import { TreeItemProps } from '../TreeItem';
|
|
2
|
-
import { TreeViewProps } from '../TreeView';
|
|
3
1
|
import { SimpleTreeViewProps } from '../SimpleTreeView';
|
|
4
2
|
import { RichTreeViewProps } from '../RichTreeView';
|
|
5
|
-
import {
|
|
3
|
+
import { TreeItemProps } from '../TreeItem';
|
|
6
4
|
|
|
7
5
|
export interface TreeViewComponentsPropsList {
|
|
8
6
|
MuiSimpleTreeView: SimpleTreeViewProps<any>;
|
|
9
7
|
MuiRichTreeView: RichTreeViewProps<any, any>;
|
|
10
|
-
MuiTreeView: TreeViewProps<any>;
|
|
11
8
|
MuiTreeItem: TreeItemProps;
|
|
12
|
-
MuiTreeItem2: TreeItem2Props;
|
|
13
9
|
}
|
|
14
10
|
|
|
15
11
|
declare module '@mui/material/styles' {
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { useTreeItem } from './useTreeItem';
|
|
2
|
+
export type { UseTreeItemParameters, UseTreeItemReturnValue, UseTreeItemStatus, UseTreeItemRootSlotOwnProps, UseTreeItemContentSlotOwnProps, UseTreeItemLabelInputSlotOwnProps, UseTreeItemLabelSlotOwnProps, UseTreeItemCheckboxSlotOwnProps, UseTreeItemIconContainerSlotOwnProps, UseTreeItemGroupTransitionSlotOwnProps, UseTreeItemDragAndDropOverlaySlotOwnProps, } from './useTreeItem.types';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useTreeItem } from "./useTreeItem.js";
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { UseTreeItemParameters, UseTreeItemReturnValue, UseTreeItemMinimalPlugins, UseTreeItemOptionalPlugins } from './useTreeItem.types';
|
|
2
|
+
export declare const useTreeItem: <TSignatures extends UseTreeItemMinimalPlugins = UseTreeItemMinimalPlugins, TOptionalSignatures extends UseTreeItemOptionalPlugins = readonly []>(parameters: UseTreeItemParameters) => UseTreeItemReturnValue<TSignatures, TOptionalSignatures>;
|
|
@@ -1,19 +1,23 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
1
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
4
|
import * as React from 'react';
|
|
3
5
|
import extractEventHandlers from '@mui/utils/extractEventHandlers';
|
|
4
6
|
import useForkRef from '@mui/utils/useForkRef';
|
|
5
7
|
import { useTreeViewContext } from "../internals/TreeViewProvider/index.js";
|
|
6
|
-
import {
|
|
8
|
+
import { useTreeItemUtils } from "../hooks/useTreeItemUtils/index.js";
|
|
7
9
|
import { TreeViewItemDepthContext } from "../internals/TreeViewItemDepthContext/index.js";
|
|
8
10
|
import { isTargetInDescendants } from "../internals/utils/tree.js";
|
|
11
|
+
import { useSelector } from "../internals/hooks/useSelector.js";
|
|
12
|
+
import { selectorIsItemTheDefaultFocusableItem } from "../internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.js";
|
|
9
13
|
import { generateTreeItemIdAttribute } from "../internals/corePlugins/useTreeViewId/useTreeViewId.utils.js";
|
|
10
|
-
|
|
14
|
+
import { selectorCanItemBeFocused } from "../internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js";
|
|
15
|
+
import { selectorTreeViewId } from "../internals/corePlugins/useTreeViewId/useTreeViewId.selectors.js";
|
|
16
|
+
export const useTreeItem = parameters => {
|
|
11
17
|
const {
|
|
12
18
|
runItemPlugins,
|
|
13
19
|
items: {
|
|
14
|
-
onItemClick
|
|
15
|
-
disabledItemsFocusable,
|
|
16
|
-
indentationAtItemLevel
|
|
20
|
+
onItemClick
|
|
17
21
|
},
|
|
18
22
|
selection: {
|
|
19
23
|
disableSelection,
|
|
@@ -22,11 +26,18 @@ export const useTreeItem2 = parameters => {
|
|
|
22
26
|
expansion: {
|
|
23
27
|
expansionTrigger
|
|
24
28
|
},
|
|
25
|
-
|
|
29
|
+
label: labelContext,
|
|
26
30
|
instance,
|
|
27
|
-
publicAPI
|
|
31
|
+
publicAPI,
|
|
32
|
+
store
|
|
28
33
|
} = useTreeViewContext();
|
|
29
34
|
const depthContext = React.useContext(TreeViewItemDepthContext);
|
|
35
|
+
const depth = useSelector(store, (...params) => {
|
|
36
|
+
if (typeof depthContext === 'function') {
|
|
37
|
+
return depthContext(...params);
|
|
38
|
+
}
|
|
39
|
+
return depthContext;
|
|
40
|
+
}, parameters.itemId);
|
|
30
41
|
const {
|
|
31
42
|
id,
|
|
32
43
|
itemId,
|
|
@@ -42,7 +53,7 @@ export const useTreeItem2 = parameters => {
|
|
|
42
53
|
const {
|
|
43
54
|
interactions,
|
|
44
55
|
status
|
|
45
|
-
} =
|
|
56
|
+
} = useTreeItemUtils({
|
|
46
57
|
itemId,
|
|
47
58
|
children
|
|
48
59
|
});
|
|
@@ -51,24 +62,25 @@ export const useTreeItem2 = parameters => {
|
|
|
51
62
|
const handleRootRef = useForkRef(rootRef, pluginRootRef, rootRefObject);
|
|
52
63
|
const handleContentRef = useForkRef(contentRef, contentRefObject);
|
|
53
64
|
const checkboxRef = React.useRef(null);
|
|
65
|
+
const treeId = useSelector(store, selectorTreeViewId);
|
|
54
66
|
const idAttribute = generateTreeItemIdAttribute({
|
|
55
67
|
itemId,
|
|
56
68
|
treeId,
|
|
57
69
|
id
|
|
58
70
|
});
|
|
59
|
-
const
|
|
71
|
+
const shouldBeAccessibleWithTab = useSelector(store, selectorIsItemTheDefaultFocusableItem, itemId);
|
|
60
72
|
const sharedPropsEnhancerParams = {
|
|
61
73
|
rootRefObject,
|
|
62
74
|
contentRefObject,
|
|
63
|
-
interactions
|
|
75
|
+
interactions,
|
|
76
|
+
status
|
|
64
77
|
};
|
|
65
78
|
const createRootHandleFocus = otherHandlers => event => {
|
|
66
79
|
otherHandlers.onFocus?.(event);
|
|
67
80
|
if (event.defaultMuiPrevented) {
|
|
68
81
|
return;
|
|
69
82
|
}
|
|
70
|
-
|
|
71
|
-
if (!status.focused && canBeFocused && event.currentTarget === event.target) {
|
|
83
|
+
if (!status.focused && selectorCanItemBeFocused(store.value, itemId) && event.currentTarget === event.target) {
|
|
72
84
|
instance.focusItem(event, itemId);
|
|
73
85
|
}
|
|
74
86
|
};
|
|
@@ -106,7 +118,7 @@ export const useTreeItem2 = parameters => {
|
|
|
106
118
|
};
|
|
107
119
|
const createContentHandleClick = otherHandlers => event => {
|
|
108
120
|
otherHandlers.onClick?.(event);
|
|
109
|
-
onItemClick
|
|
121
|
+
onItemClick(event, itemId);
|
|
110
122
|
if (event.defaultMuiPrevented || checkboxRef.current?.contains(event.target)) {
|
|
111
123
|
return;
|
|
112
124
|
}
|
|
@@ -128,16 +140,6 @@ export const useTreeItem2 = parameters => {
|
|
|
128
140
|
event.preventDefault();
|
|
129
141
|
}
|
|
130
142
|
};
|
|
131
|
-
const createCheckboxHandleChange = otherHandlers => event => {
|
|
132
|
-
otherHandlers.onChange?.(event);
|
|
133
|
-
if (event.defaultMuiPrevented) {
|
|
134
|
-
return;
|
|
135
|
-
}
|
|
136
|
-
if (disableSelection || status.disabled) {
|
|
137
|
-
return;
|
|
138
|
-
}
|
|
139
|
-
interactions.handleCheckboxSelection(event);
|
|
140
|
-
};
|
|
141
143
|
const createIconContainerHandleClick = otherHandlers => event => {
|
|
142
144
|
otherHandlers.onClick?.(event);
|
|
143
145
|
if (event.defaultMuiPrevented) {
|
|
@@ -147,6 +149,10 @@ export const useTreeItem2 = parameters => {
|
|
|
147
149
|
interactions.handleExpansion(event);
|
|
148
150
|
}
|
|
149
151
|
};
|
|
152
|
+
const getContextProviderProps = () => ({
|
|
153
|
+
itemId,
|
|
154
|
+
id
|
|
155
|
+
});
|
|
150
156
|
const getRootProps = (externalProps = {}) => {
|
|
151
157
|
const externalEventHandlers = _extends({}, extractEventHandlers(parameters), extractEventHandlers(externalProps));
|
|
152
158
|
|
|
@@ -165,21 +171,19 @@ export const useTreeItem2 = parameters => {
|
|
|
165
171
|
const props = _extends({}, externalEventHandlers, {
|
|
166
172
|
ref: handleRootRef,
|
|
167
173
|
role: 'treeitem',
|
|
168
|
-
tabIndex:
|
|
174
|
+
tabIndex: shouldBeAccessibleWithTab ? 0 : -1,
|
|
169
175
|
id: idAttribute,
|
|
170
176
|
'aria-expanded': status.expandable ? status.expanded : undefined,
|
|
171
177
|
'aria-selected': ariaSelected,
|
|
172
178
|
'aria-disabled': status.disabled || undefined
|
|
173
179
|
}, externalProps, {
|
|
180
|
+
style: _extends({}, externalProps.style ?? {}, {
|
|
181
|
+
'--TreeView-itemDepth': depth
|
|
182
|
+
}),
|
|
174
183
|
onFocus: createRootHandleFocus(externalEventHandlers),
|
|
175
184
|
onBlur: createRootHandleBlur(externalEventHandlers),
|
|
176
185
|
onKeyDown: createRootHandleKeyDown(externalEventHandlers)
|
|
177
186
|
});
|
|
178
|
-
if (indentationAtItemLevel) {
|
|
179
|
-
props.style = {
|
|
180
|
-
'--TreeView-itemDepth': typeof depthContext === 'function' ? depthContext(itemId) : depthContext
|
|
181
|
-
};
|
|
182
|
-
}
|
|
183
187
|
const enhancedRootProps = propsEnhancers.root?.(_extends({}, sharedPropsEnhancerParams, {
|
|
184
188
|
externalEventHandlers
|
|
185
189
|
})) ?? {};
|
|
@@ -193,9 +197,6 @@ export const useTreeItem2 = parameters => {
|
|
|
193
197
|
onMouseDown: createContentHandleMouseDown(externalEventHandlers),
|
|
194
198
|
status
|
|
195
199
|
});
|
|
196
|
-
if (indentationAtItemLevel) {
|
|
197
|
-
props.indentationAtItemLevel = true;
|
|
198
|
-
}
|
|
199
200
|
const enhancedContentProps = propsEnhancers.content?.(_extends({}, sharedPropsEnhancerParams, {
|
|
200
201
|
externalEventHandlers
|
|
201
202
|
})) ?? {};
|
|
@@ -203,15 +204,13 @@ export const useTreeItem2 = parameters => {
|
|
|
203
204
|
};
|
|
204
205
|
const getCheckboxProps = (externalProps = {}) => {
|
|
205
206
|
const externalEventHandlers = extractEventHandlers(externalProps);
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
},
|
|
213
|
-
onChange: createCheckboxHandleChange(externalEventHandlers)
|
|
214
|
-
});
|
|
207
|
+
const props = _extends({}, externalEventHandlers, {
|
|
208
|
+
ref: checkboxRef
|
|
209
|
+
}, externalProps);
|
|
210
|
+
const enhancedCheckboxProps = propsEnhancers.checkbox?.(_extends({}, sharedPropsEnhancerParams, {
|
|
211
|
+
externalEventHandlers
|
|
212
|
+
})) ?? {};
|
|
213
|
+
return _extends({}, props, enhancedCheckboxProps);
|
|
215
214
|
};
|
|
216
215
|
const getLabelProps = (externalProps = {}) => {
|
|
217
216
|
const externalEventHandlers = _extends({}, extractEventHandlers(externalProps));
|
|
@@ -220,19 +219,16 @@ export const useTreeItem2 = parameters => {
|
|
|
220
219
|
}, externalProps, {
|
|
221
220
|
onDoubleClick: createLabelHandleDoubleClick(externalEventHandlers)
|
|
222
221
|
});
|
|
223
|
-
if (
|
|
222
|
+
if (labelContext?.isItemEditable) {
|
|
224
223
|
props.editable = status.editable;
|
|
225
224
|
}
|
|
226
225
|
return props;
|
|
227
226
|
};
|
|
228
227
|
const getLabelInputProps = (externalProps = {}) => {
|
|
229
228
|
const externalEventHandlers = extractEventHandlers(externalProps);
|
|
230
|
-
const enhancedLabelInputProps = propsEnhancers.labelInput?.({
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
externalEventHandlers,
|
|
234
|
-
interactions
|
|
235
|
-
}) ?? {};
|
|
229
|
+
const enhancedLabelInputProps = propsEnhancers.labelInput?.(_extends({}, sharedPropsEnhancerParams, {
|
|
230
|
+
externalEventHandlers
|
|
231
|
+
})) ?? {};
|
|
236
232
|
return _extends({}, externalProps, enhancedLabelInputProps);
|
|
237
233
|
};
|
|
238
234
|
const getIconContainerProps = (externalProps = {}) => {
|
|
@@ -250,9 +246,6 @@ export const useTreeItem2 = parameters => {
|
|
|
250
246
|
in: status.expanded,
|
|
251
247
|
children
|
|
252
248
|
}, externalProps);
|
|
253
|
-
if (indentationAtItemLevel) {
|
|
254
|
-
response.indentationAtItemLevel = true;
|
|
255
|
-
}
|
|
256
249
|
return response;
|
|
257
250
|
};
|
|
258
251
|
const getDragAndDropOverlayProps = (externalProps = {}) => {
|
|
@@ -263,6 +256,7 @@ export const useTreeItem2 = parameters => {
|
|
|
263
256
|
return _extends({}, externalProps, enhancedDragAndDropOverlayProps);
|
|
264
257
|
};
|
|
265
258
|
return {
|
|
259
|
+
getContextProviderProps,
|
|
266
260
|
getRootProps,
|
|
267
261
|
getContentProps,
|
|
268
262
|
getGroupTransitionProps,
|