@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,7 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
import { selectorIsItemExpandable, selectorIsItemExpanded } from "../plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js";
|
|
2
|
+
import { selectorCanItemBeFocused, selectorIsItemDisabled, selectorItemIndex, selectorItemMeta, selectorItemOrderedChildrenIds, selectorItemParentId } from "../plugins/useTreeViewItems/useTreeViewItems.selectors.js";
|
|
3
|
+
const getLastNavigableItemInArray = (state, items) => {
|
|
2
4
|
// Equivalent to Array.prototype.findLastIndex
|
|
3
5
|
let itemIndex = items.length - 1;
|
|
4
|
-
while (itemIndex >= 0 && !
|
|
6
|
+
while (itemIndex >= 0 && !selectorCanItemBeFocused(state, items[itemIndex])) {
|
|
5
7
|
itemIndex -= 1;
|
|
6
8
|
}
|
|
7
9
|
if (itemIndex === -1) {
|
|
@@ -9,10 +11,13 @@ const getLastNavigableItemInArray = (instance, items) => {
|
|
|
9
11
|
}
|
|
10
12
|
return items[itemIndex];
|
|
11
13
|
};
|
|
12
|
-
export const getPreviousNavigableItem = (
|
|
13
|
-
const itemMeta =
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
export const getPreviousNavigableItem = (state, itemId) => {
|
|
15
|
+
const itemMeta = selectorItemMeta(state, itemId);
|
|
16
|
+
if (!itemMeta) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
const siblings = selectorItemOrderedChildrenIds(state, itemMeta.parentId);
|
|
20
|
+
const itemIndex = selectorItemIndex(state, itemId);
|
|
16
21
|
|
|
17
22
|
// TODO: What should we do if the parent is not navigable?
|
|
18
23
|
if (itemIndex === 0) {
|
|
@@ -21,7 +26,7 @@ export const getPreviousNavigableItem = (instance, itemId) => {
|
|
|
21
26
|
|
|
22
27
|
// Finds the previous navigable sibling.
|
|
23
28
|
let previousNavigableSiblingIndex = itemIndex - 1;
|
|
24
|
-
while (!
|
|
29
|
+
while (!selectorCanItemBeFocused(state, siblings[previousNavigableSiblingIndex]) && previousNavigableSiblingIndex >= 0) {
|
|
25
30
|
previousNavigableSiblingIndex -= 1;
|
|
26
31
|
}
|
|
27
32
|
if (previousNavigableSiblingIndex === -1) {
|
|
@@ -31,51 +36,51 @@ export const getPreviousNavigableItem = (instance, itemId) => {
|
|
|
31
36
|
}
|
|
32
37
|
|
|
33
38
|
// Otherwise, we can try to go up a level and find the previous navigable item.
|
|
34
|
-
return getPreviousNavigableItem(
|
|
39
|
+
return getPreviousNavigableItem(state, itemMeta.parentId);
|
|
35
40
|
}
|
|
36
41
|
|
|
37
42
|
// Finds the last navigable ancestor of the previous navigable sibling.
|
|
38
43
|
let currentItemId = siblings[previousNavigableSiblingIndex];
|
|
39
|
-
let lastNavigableChild = getLastNavigableItemInArray(
|
|
40
|
-
while (
|
|
44
|
+
let lastNavigableChild = getLastNavigableItemInArray(state, selectorItemOrderedChildrenIds(state, currentItemId));
|
|
45
|
+
while (selectorIsItemExpanded(state, currentItemId) && lastNavigableChild != null) {
|
|
41
46
|
currentItemId = lastNavigableChild;
|
|
42
|
-
lastNavigableChild =
|
|
47
|
+
lastNavigableChild = selectorItemOrderedChildrenIds(state, currentItemId).find(childId => selectorCanItemBeFocused(state, childId));
|
|
43
48
|
}
|
|
44
49
|
return currentItemId;
|
|
45
50
|
};
|
|
46
|
-
export const getNextNavigableItem = (
|
|
51
|
+
export const getNextNavigableItem = (state, itemId) => {
|
|
47
52
|
// If the item is expanded and has some navigable children, return the first of them.
|
|
48
|
-
if (
|
|
49
|
-
const firstNavigableChild =
|
|
53
|
+
if (selectorIsItemExpanded(state, itemId)) {
|
|
54
|
+
const firstNavigableChild = selectorItemOrderedChildrenIds(state, itemId).find(childId => selectorCanItemBeFocused(state, childId));
|
|
50
55
|
if (firstNavigableChild != null) {
|
|
51
56
|
return firstNavigableChild;
|
|
52
57
|
}
|
|
53
58
|
}
|
|
54
|
-
let itemMeta =
|
|
59
|
+
let itemMeta = selectorItemMeta(state, itemId);
|
|
55
60
|
while (itemMeta != null) {
|
|
56
61
|
// Try to find the first navigable sibling after the current item.
|
|
57
|
-
const siblings =
|
|
58
|
-
const currentItemIndex =
|
|
62
|
+
const siblings = selectorItemOrderedChildrenIds(state, itemMeta.parentId);
|
|
63
|
+
const currentItemIndex = selectorItemIndex(state, itemMeta.id);
|
|
59
64
|
if (currentItemIndex < siblings.length - 1) {
|
|
60
65
|
let nextItemIndex = currentItemIndex + 1;
|
|
61
|
-
while (!
|
|
66
|
+
while (!selectorCanItemBeFocused(state, siblings[nextItemIndex]) && nextItemIndex < siblings.length - 1) {
|
|
62
67
|
nextItemIndex += 1;
|
|
63
68
|
}
|
|
64
|
-
if (
|
|
69
|
+
if (selectorCanItemBeFocused(state, siblings[nextItemIndex])) {
|
|
65
70
|
return siblings[nextItemIndex];
|
|
66
71
|
}
|
|
67
72
|
}
|
|
68
73
|
|
|
69
74
|
// If the sibling does not exist, go up a level to the parent and try again.
|
|
70
|
-
itemMeta =
|
|
75
|
+
itemMeta = selectorItemMeta(state, itemMeta.parentId);
|
|
71
76
|
}
|
|
72
77
|
return null;
|
|
73
78
|
};
|
|
74
|
-
export const getLastNavigableItem =
|
|
79
|
+
export const getLastNavigableItem = state => {
|
|
75
80
|
let itemId = null;
|
|
76
|
-
while (itemId == null ||
|
|
77
|
-
const children =
|
|
78
|
-
const lastNavigableChild = getLastNavigableItemInArray(
|
|
81
|
+
while (itemId == null || selectorIsItemExpanded(state, itemId)) {
|
|
82
|
+
const children = selectorItemOrderedChildrenIds(state, itemId);
|
|
83
|
+
const lastNavigableChild = getLastNavigableItemInArray(state, children);
|
|
79
84
|
|
|
80
85
|
// The item has no navigable children.
|
|
81
86
|
if (lastNavigableChild == null) {
|
|
@@ -85,7 +90,7 @@ export const getLastNavigableItem = instance => {
|
|
|
85
90
|
}
|
|
86
91
|
return itemId;
|
|
87
92
|
};
|
|
88
|
-
export const getFirstNavigableItem =
|
|
93
|
+
export const getFirstNavigableItem = state => selectorItemOrderedChildrenIds(state, null).find(itemId => selectorCanItemBeFocused(state, itemId));
|
|
89
94
|
|
|
90
95
|
/**
|
|
91
96
|
* This is used to determine the start and end of a selection range so
|
|
@@ -101,12 +106,15 @@ export const getFirstNavigableItem = instance => instance.getItemOrderedChildren
|
|
|
101
106
|
* Another way to put it is which item is shallower in a trémaux tree
|
|
102
107
|
* https://en.wikipedia.org/wiki/Tr%C3%A9maux_tree
|
|
103
108
|
*/
|
|
104
|
-
export const findOrderInTremauxTree = (
|
|
109
|
+
export const findOrderInTremauxTree = (state, itemAId, itemBId) => {
|
|
105
110
|
if (itemAId === itemBId) {
|
|
106
111
|
return [itemAId, itemBId];
|
|
107
112
|
}
|
|
108
|
-
const itemMetaA =
|
|
109
|
-
const itemMetaB =
|
|
113
|
+
const itemMetaA = selectorItemMeta(state, itemAId);
|
|
114
|
+
const itemMetaB = selectorItemMeta(state, itemBId);
|
|
115
|
+
if (!itemMetaA || !itemMetaB) {
|
|
116
|
+
return [itemAId, itemBId];
|
|
117
|
+
}
|
|
110
118
|
if (itemMetaA.parentId === itemMetaB.id || itemMetaB.parentId === itemMetaA.id) {
|
|
111
119
|
return itemMetaB.parentId === itemMetaA.id ? [itemMetaA.id, itemMetaB.id] : [itemMetaB.id, itemMetaA.id];
|
|
112
120
|
}
|
|
@@ -124,7 +132,7 @@ export const findOrderInTremauxTree = (instance, itemAId, itemBId) => {
|
|
|
124
132
|
aAncestorIsCommon = bFamily.indexOf(aAncestor) !== -1;
|
|
125
133
|
continueA = aAncestor !== null;
|
|
126
134
|
if (!aAncestorIsCommon && continueA) {
|
|
127
|
-
aAncestor =
|
|
135
|
+
aAncestor = selectorItemParentId(state, aAncestor);
|
|
128
136
|
}
|
|
129
137
|
}
|
|
130
138
|
if (continueB && !aAncestorIsCommon) {
|
|
@@ -132,53 +140,53 @@ export const findOrderInTremauxTree = (instance, itemAId, itemBId) => {
|
|
|
132
140
|
bAncestorIsCommon = aFamily.indexOf(bAncestor) !== -1;
|
|
133
141
|
continueB = bAncestor !== null;
|
|
134
142
|
if (!bAncestorIsCommon && continueB) {
|
|
135
|
-
bAncestor =
|
|
143
|
+
bAncestor = selectorItemParentId(state, bAncestor);
|
|
136
144
|
}
|
|
137
145
|
}
|
|
138
146
|
}
|
|
139
147
|
const commonAncestor = aAncestorIsCommon ? aAncestor : bAncestor;
|
|
140
|
-
const ancestorFamily =
|
|
148
|
+
const ancestorFamily = selectorItemOrderedChildrenIds(state, commonAncestor);
|
|
141
149
|
const aSide = aFamily[aFamily.indexOf(commonAncestor) - 1];
|
|
142
150
|
const bSide = bFamily[bFamily.indexOf(commonAncestor) - 1];
|
|
143
151
|
return ancestorFamily.indexOf(aSide) < ancestorFamily.indexOf(bSide) ? [itemAId, itemBId] : [itemBId, itemAId];
|
|
144
152
|
};
|
|
145
|
-
export const getNonDisabledItemsInRange = (
|
|
153
|
+
export const getNonDisabledItemsInRange = (state, itemAId, itemBId) => {
|
|
146
154
|
const getNextItem = itemId => {
|
|
147
155
|
// If the item is expanded and has some children, return the first of them.
|
|
148
|
-
if (
|
|
149
|
-
return
|
|
156
|
+
if (selectorIsItemExpandable(state, itemId) && selectorIsItemExpanded(state, itemId)) {
|
|
157
|
+
return selectorItemOrderedChildrenIds(state, itemId)[0];
|
|
150
158
|
}
|
|
151
|
-
let itemMeta =
|
|
159
|
+
let itemMeta = selectorItemMeta(state, itemId);
|
|
152
160
|
while (itemMeta != null) {
|
|
153
161
|
// Try to find the first navigable sibling after the current item.
|
|
154
|
-
const siblings =
|
|
155
|
-
const currentItemIndex =
|
|
162
|
+
const siblings = selectorItemOrderedChildrenIds(state, itemMeta.parentId);
|
|
163
|
+
const currentItemIndex = selectorItemIndex(state, itemMeta.id);
|
|
156
164
|
if (currentItemIndex < siblings.length - 1) {
|
|
157
165
|
return siblings[currentItemIndex + 1];
|
|
158
166
|
}
|
|
159
167
|
|
|
160
168
|
// If the item is the last of its siblings, go up a level to the parent and try again.
|
|
161
|
-
itemMeta =
|
|
169
|
+
itemMeta = itemMeta.parentId ? selectorItemMeta(state, itemMeta.parentId) : null;
|
|
162
170
|
}
|
|
163
171
|
throw new Error('Invalid range');
|
|
164
172
|
};
|
|
165
|
-
const [first, last] = findOrderInTremauxTree(
|
|
173
|
+
const [first, last] = findOrderInTremauxTree(state, itemAId, itemBId);
|
|
166
174
|
const items = [first];
|
|
167
175
|
let current = first;
|
|
168
176
|
while (current !== last) {
|
|
169
177
|
current = getNextItem(current);
|
|
170
|
-
if (!
|
|
178
|
+
if (!selectorIsItemDisabled(state, current)) {
|
|
171
179
|
items.push(current);
|
|
172
180
|
}
|
|
173
181
|
}
|
|
174
182
|
return items;
|
|
175
183
|
};
|
|
176
|
-
export const getAllNavigableItems =
|
|
177
|
-
let item = getFirstNavigableItem(
|
|
184
|
+
export const getAllNavigableItems = state => {
|
|
185
|
+
let item = getFirstNavigableItem(state);
|
|
178
186
|
const navigableItems = [];
|
|
179
187
|
while (item != null) {
|
|
180
188
|
navigableItems.push(item);
|
|
181
|
-
item = getNextNavigableItem(
|
|
189
|
+
item = getNextNavigableItem(state, item);
|
|
182
190
|
}
|
|
183
191
|
return navigableItems;
|
|
184
192
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useTreeItem } from "./useTreeItem.js";
|
|
@@ -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,
|
|
@@ -63,8 +63,7 @@ const RichTreeView = exports.RichTreeView = /*#__PURE__*/React.forwardRef(functi
|
|
|
63
63
|
}
|
|
64
64
|
const {
|
|
65
65
|
getRootProps,
|
|
66
|
-
contextValue
|
|
67
|
-
instance
|
|
66
|
+
contextValue
|
|
68
67
|
} = (0, _useTreeView.useTreeView)({
|
|
69
68
|
plugins: _RichTreeView.RICH_TREE_VIEW_PLUGINS,
|
|
70
69
|
rootRef: ref,
|
|
@@ -88,8 +87,7 @@ const RichTreeView = exports.RichTreeView = /*#__PURE__*/React.forwardRef(functi
|
|
|
88
87
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Root, (0, _extends2.default)({}, rootProps, {
|
|
89
88
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_RichTreeViewItems.RichTreeViewItems, {
|
|
90
89
|
slots: slots,
|
|
91
|
-
slotProps: slotProps
|
|
92
|
-
itemsToRender: instance.getItemsToRender()
|
|
90
|
+
slotProps: slotProps
|
|
93
91
|
})
|
|
94
92
|
}))
|
|
95
93
|
});
|
|
@@ -162,7 +160,6 @@ process.env.NODE_ENV !== "production" ? RichTreeView.propTypes = {
|
|
|
162
160
|
* the feature will be fully disabled and any property / method call will not have any effect.
|
|
163
161
|
*/
|
|
164
162
|
experimentalFeatures: _propTypes.default.shape({
|
|
165
|
-
indentationAtItemLevel: _propTypes.default.bool,
|
|
166
163
|
labelEditing: _propTypes.default.bool
|
|
167
164
|
}),
|
|
168
165
|
/**
|
|
@@ -267,6 +264,26 @@ process.env.NODE_ENV !== "production" ? RichTreeView.propTypes = {
|
|
|
267
264
|
* When `multiSelect` is true this takes an array of strings; when false (default) a string.
|
|
268
265
|
*/
|
|
269
266
|
selectedItems: _propTypes.default.any,
|
|
267
|
+
/**
|
|
268
|
+
* When `selectionPropagation.descendants` is set to `true`.
|
|
269
|
+
*
|
|
270
|
+
* - Selecting a parent selects all its descendants automatically.
|
|
271
|
+
* - Deselecting a parent deselects all its descendants automatically.
|
|
272
|
+
*
|
|
273
|
+
* When `selectionPropagation.parents` is set to `true`.
|
|
274
|
+
*
|
|
275
|
+
* - Selecting all the descendants of a parent selects the parent automatically.
|
|
276
|
+
* - Deselecting a descendant of a selected parent deselects the parent automatically.
|
|
277
|
+
*
|
|
278
|
+
* Only works when `multiSelect` is `true`.
|
|
279
|
+
* On the <SimpleTreeView />, only the expanded items are considered (since the collapsed item are not passed to the Tree View component at all)
|
|
280
|
+
*
|
|
281
|
+
* @default { parents: false, descendants: false }
|
|
282
|
+
*/
|
|
283
|
+
selectionPropagation: _propTypes.default.shape({
|
|
284
|
+
descendants: _propTypes.default.bool,
|
|
285
|
+
parents: _propTypes.default.bool
|
|
286
|
+
}),
|
|
270
287
|
/**
|
|
271
288
|
* The props used for each component slot.
|
|
272
289
|
* @default {}
|
|
@@ -161,9 +161,7 @@ process.env.NODE_ENV !== "production" ? SimpleTreeView.propTypes = {
|
|
|
161
161
|
* For each feature, if the flag is not explicitly set to `true`,
|
|
162
162
|
* the feature will be fully disabled and any property / method call will not have any effect.
|
|
163
163
|
*/
|
|
164
|
-
experimentalFeatures: _propTypes.default.
|
|
165
|
-
indentationAtItemLevel: _propTypes.default.bool
|
|
166
|
-
}),
|
|
164
|
+
experimentalFeatures: _propTypes.default.object,
|
|
167
165
|
/**
|
|
168
166
|
* This prop is used to help implement the accessibility logic.
|
|
169
167
|
* If you don't provide this prop. It falls back to a randomly generated id.
|
|
@@ -224,6 +222,26 @@ process.env.NODE_ENV !== "production" ? SimpleTreeView.propTypes = {
|
|
|
224
222
|
* When `multiSelect` is true this takes an array of strings; when false (default) a string.
|
|
225
223
|
*/
|
|
226
224
|
selectedItems: _propTypes.default.any,
|
|
225
|
+
/**
|
|
226
|
+
* When `selectionPropagation.descendants` is set to `true`.
|
|
227
|
+
*
|
|
228
|
+
* - Selecting a parent selects all its descendants automatically.
|
|
229
|
+
* - Deselecting a parent deselects all its descendants automatically.
|
|
230
|
+
*
|
|
231
|
+
* When `selectionPropagation.parents` is set to `true`.
|
|
232
|
+
*
|
|
233
|
+
* - Selecting all the descendants of a parent selects the parent automatically.
|
|
234
|
+
* - Deselecting a descendant of a selected parent deselects the parent automatically.
|
|
235
|
+
*
|
|
236
|
+
* Only works when `multiSelect` is `true`.
|
|
237
|
+
* On the <SimpleTreeView />, only the expanded items are considered (since the collapsed item are not passed to the Tree View component at all)
|
|
238
|
+
*
|
|
239
|
+
* @default { parents: false, descendants: false }
|
|
240
|
+
*/
|
|
241
|
+
selectionPropagation: _propTypes.default.shape({
|
|
242
|
+
descendants: _propTypes.default.bool,
|
|
243
|
+
parents: _propTypes.default.bool
|
|
244
|
+
}),
|
|
227
245
|
/**
|
|
228
246
|
* The props used for each component slot.
|
|
229
247
|
*/
|