@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
package/TreeView/TreeView.js
DELETED
|
@@ -1,211 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
|
-
import * as React from 'react';
|
|
5
|
-
import PropTypes from 'prop-types';
|
|
6
|
-
import composeClasses from '@mui/utils/composeClasses';
|
|
7
|
-
import { styled, createUseThemeProps } from "../internals/zero-styled/index.js";
|
|
8
|
-
import { getTreeViewUtilityClass } from "./treeViewClasses.js";
|
|
9
|
-
import { SimpleTreeView, SimpleTreeViewRoot } from "../SimpleTreeView/index.js";
|
|
10
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
|
-
const useThemeProps = createUseThemeProps('MuiTreeView');
|
|
12
|
-
const useUtilityClasses = ownerState => {
|
|
13
|
-
const {
|
|
14
|
-
classes
|
|
15
|
-
} = ownerState;
|
|
16
|
-
const slots = {
|
|
17
|
-
root: ['root']
|
|
18
|
-
};
|
|
19
|
-
return composeClasses(slots, getTreeViewUtilityClass, classes);
|
|
20
|
-
};
|
|
21
|
-
const TreeViewRoot = styled(SimpleTreeViewRoot, {
|
|
22
|
-
name: 'MuiTreeView',
|
|
23
|
-
slot: 'Root',
|
|
24
|
-
overridesResolver: (props, styles) => styles.root
|
|
25
|
-
})({});
|
|
26
|
-
let warnedOnce = false;
|
|
27
|
-
const warn = () => {
|
|
28
|
-
if (!warnedOnce) {
|
|
29
|
-
console.warn(['MUI X: The TreeView component was renamed SimpleTreeView.', 'The component with the old naming will be removed in the version v8.0.0.', '', "You should use `import { SimpleTreeView } from '@mui/x-tree-view'`", "or `import { SimpleTreeView } from '@mui/x-tree-view/TreeView'`"].join('\n'));
|
|
30
|
-
warnedOnce = true;
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* This component has been deprecated in favor of the new Simple Tree View component.
|
|
36
|
-
* You can have a look at how to migrate to the new component in the v7 [migration guide](https://mui.com/x/migration/migration-tree-view-v6/#use-simpletreeview-instead-of-treeview)
|
|
37
|
-
*
|
|
38
|
-
* Demos:
|
|
39
|
-
*
|
|
40
|
-
* - [Tree View](https://mui.com/x/react-tree-view/)
|
|
41
|
-
*
|
|
42
|
-
* API:
|
|
43
|
-
*
|
|
44
|
-
* - [TreeView API](https://mui.com/x/api/tree-view/tree-view/)
|
|
45
|
-
*
|
|
46
|
-
* @deprecated
|
|
47
|
-
*/
|
|
48
|
-
const TreeView = /*#__PURE__*/React.forwardRef(function TreeView(inProps, ref) {
|
|
49
|
-
if (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test') {
|
|
50
|
-
warn();
|
|
51
|
-
}
|
|
52
|
-
const props = useThemeProps({
|
|
53
|
-
props: inProps,
|
|
54
|
-
name: 'MuiTreeView'
|
|
55
|
-
});
|
|
56
|
-
const classes = useUtilityClasses(props);
|
|
57
|
-
return /*#__PURE__*/_jsx(SimpleTreeView, _extends({}, props, {
|
|
58
|
-
ref: ref,
|
|
59
|
-
classes: classes,
|
|
60
|
-
slots: _extends({
|
|
61
|
-
root: TreeViewRoot
|
|
62
|
-
}, props.slots)
|
|
63
|
-
}));
|
|
64
|
-
});
|
|
65
|
-
process.env.NODE_ENV !== "production" ? TreeView.propTypes = {
|
|
66
|
-
// ----------------------------- Warning --------------------------------
|
|
67
|
-
// | These PropTypes are generated from the TypeScript type definitions |
|
|
68
|
-
// | To update them edit the TypeScript types and run "pnpm proptypes" |
|
|
69
|
-
// ----------------------------------------------------------------------
|
|
70
|
-
/**
|
|
71
|
-
* The ref object that allows Tree View manipulation. Can be instantiated with `useTreeViewApiRef()`.
|
|
72
|
-
*/
|
|
73
|
-
apiRef: PropTypes.shape({
|
|
74
|
-
current: PropTypes.shape({
|
|
75
|
-
focusItem: PropTypes.func.isRequired,
|
|
76
|
-
getItem: PropTypes.func.isRequired,
|
|
77
|
-
getItemDOMElement: PropTypes.func.isRequired,
|
|
78
|
-
getItemOrderedChildrenIds: PropTypes.func.isRequired,
|
|
79
|
-
getItemTree: PropTypes.func.isRequired,
|
|
80
|
-
selectItem: PropTypes.func.isRequired,
|
|
81
|
-
setItemExpansion: PropTypes.func.isRequired
|
|
82
|
-
})
|
|
83
|
-
}),
|
|
84
|
-
/**
|
|
85
|
-
* If `true`, the Tree View renders a checkbox at the left of its label that allows selecting it.
|
|
86
|
-
* @default false
|
|
87
|
-
*/
|
|
88
|
-
checkboxSelection: PropTypes.bool,
|
|
89
|
-
/**
|
|
90
|
-
* The content of the component.
|
|
91
|
-
*/
|
|
92
|
-
children: PropTypes.node,
|
|
93
|
-
/**
|
|
94
|
-
* Override or extend the styles applied to the component.
|
|
95
|
-
*/
|
|
96
|
-
classes: PropTypes.object,
|
|
97
|
-
className: PropTypes.string,
|
|
98
|
-
/**
|
|
99
|
-
* Expanded item ids.
|
|
100
|
-
* Used when the item's expansion is not controlled.
|
|
101
|
-
* @default []
|
|
102
|
-
*/
|
|
103
|
-
defaultExpandedItems: PropTypes.arrayOf(PropTypes.string),
|
|
104
|
-
/**
|
|
105
|
-
* Selected item ids. (Uncontrolled)
|
|
106
|
-
* When `multiSelect` is true this takes an array of strings; when false (default) a string.
|
|
107
|
-
* @default []
|
|
108
|
-
*/
|
|
109
|
-
defaultSelectedItems: PropTypes.any,
|
|
110
|
-
/**
|
|
111
|
-
* If `true`, will allow focus on disabled items.
|
|
112
|
-
* @default false
|
|
113
|
-
*/
|
|
114
|
-
disabledItemsFocusable: PropTypes.bool,
|
|
115
|
-
/**
|
|
116
|
-
* If `true` selection is disabled.
|
|
117
|
-
* @default false
|
|
118
|
-
*/
|
|
119
|
-
disableSelection: PropTypes.bool,
|
|
120
|
-
/**
|
|
121
|
-
* Expanded item ids.
|
|
122
|
-
* Used when the item's expansion is controlled.
|
|
123
|
-
*/
|
|
124
|
-
expandedItems: PropTypes.arrayOf(PropTypes.string),
|
|
125
|
-
/**
|
|
126
|
-
* The slot that triggers the item's expansion when clicked.
|
|
127
|
-
* @default 'content'
|
|
128
|
-
*/
|
|
129
|
-
expansionTrigger: PropTypes.oneOf(['content', 'iconContainer']),
|
|
130
|
-
/**
|
|
131
|
-
* Unstable features, breaking changes might be introduced.
|
|
132
|
-
* For each feature, if the flag is not explicitly set to `true`,
|
|
133
|
-
* the feature will be fully disabled and any property / method call will not have any effect.
|
|
134
|
-
*/
|
|
135
|
-
experimentalFeatures: PropTypes.shape({
|
|
136
|
-
indentationAtItemLevel: PropTypes.bool
|
|
137
|
-
}),
|
|
138
|
-
/**
|
|
139
|
-
* This prop is used to help implement the accessibility logic.
|
|
140
|
-
* If you don't provide this prop. It falls back to a randomly generated id.
|
|
141
|
-
*/
|
|
142
|
-
id: PropTypes.string,
|
|
143
|
-
/**
|
|
144
|
-
* Horizontal indentation between an item and its children.
|
|
145
|
-
* Examples: 24, "24px", "2rem", "2em".
|
|
146
|
-
* @default 12px
|
|
147
|
-
*/
|
|
148
|
-
itemChildrenIndentation: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
|
|
149
|
-
/**
|
|
150
|
-
* If `true`, `ctrl` and `shift` will trigger multiselect.
|
|
151
|
-
* @default false
|
|
152
|
-
*/
|
|
153
|
-
multiSelect: PropTypes.bool,
|
|
154
|
-
/**
|
|
155
|
-
* Callback fired when Tree Items are expanded/collapsed.
|
|
156
|
-
* @param {React.SyntheticEvent} event The DOM event that triggered the change.
|
|
157
|
-
* @param {array} itemIds The ids of the expanded items.
|
|
158
|
-
*/
|
|
159
|
-
onExpandedItemsChange: PropTypes.func,
|
|
160
|
-
/**
|
|
161
|
-
* Callback fired when the `content` slot of a given Tree Item is clicked.
|
|
162
|
-
* @param {React.MouseEvent} event The DOM event that triggered the change.
|
|
163
|
-
* @param {string} itemId The id of the focused item.
|
|
164
|
-
*/
|
|
165
|
-
onItemClick: PropTypes.func,
|
|
166
|
-
/**
|
|
167
|
-
* Callback fired when a Tree Item is expanded or collapsed.
|
|
168
|
-
* @param {React.SyntheticEvent} event The DOM event that triggered the change.
|
|
169
|
-
* @param {array} itemId The itemId of the modified item.
|
|
170
|
-
* @param {array} isExpanded `true` if the item has just been expanded, `false` if it has just been collapsed.
|
|
171
|
-
*/
|
|
172
|
-
onItemExpansionToggle: PropTypes.func,
|
|
173
|
-
/**
|
|
174
|
-
* Callback fired when a given Tree Item is focused.
|
|
175
|
-
* @param {React.SyntheticEvent | null} event The DOM event that triggered the change. **Warning**: This is a generic event not a focus event.
|
|
176
|
-
* @param {string} itemId The id of the focused item.
|
|
177
|
-
*/
|
|
178
|
-
onItemFocus: PropTypes.func,
|
|
179
|
-
/**
|
|
180
|
-
* Callback fired when a Tree Item is selected or deselected.
|
|
181
|
-
* @param {React.SyntheticEvent} event The DOM event that triggered the change.
|
|
182
|
-
* @param {array} itemId The itemId of the modified item.
|
|
183
|
-
* @param {array} isSelected `true` if the item has just been selected, `false` if it has just been deselected.
|
|
184
|
-
*/
|
|
185
|
-
onItemSelectionToggle: PropTypes.func,
|
|
186
|
-
/**
|
|
187
|
-
* Callback fired when Tree Items are selected/deselected.
|
|
188
|
-
* @param {React.SyntheticEvent} event The DOM event that triggered the change.
|
|
189
|
-
* @param {string[] | string} itemIds The ids of the selected items.
|
|
190
|
-
* When `multiSelect` is `true`, this is an array of strings; when false (default) a string.
|
|
191
|
-
*/
|
|
192
|
-
onSelectedItemsChange: PropTypes.func,
|
|
193
|
-
/**
|
|
194
|
-
* Selected item ids. (Controlled)
|
|
195
|
-
* When `multiSelect` is true this takes an array of strings; when false (default) a string.
|
|
196
|
-
*/
|
|
197
|
-
selectedItems: PropTypes.any,
|
|
198
|
-
/**
|
|
199
|
-
* The props used for each component slot.
|
|
200
|
-
*/
|
|
201
|
-
slotProps: PropTypes.object,
|
|
202
|
-
/**
|
|
203
|
-
* Overridable component slots.
|
|
204
|
-
*/
|
|
205
|
-
slots: PropTypes.object,
|
|
206
|
-
/**
|
|
207
|
-
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
208
|
-
*/
|
|
209
|
-
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
|
|
210
|
-
} : void 0;
|
|
211
|
-
export { TreeView };
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { SimpleTreeViewProps, SimpleTreeViewSlotProps, SimpleTreeViewSlots } from '../SimpleTreeView';
|
|
2
|
-
export interface TreeViewProps<Multiple extends boolean | undefined> extends SimpleTreeViewProps<Multiple> {
|
|
3
|
-
}
|
|
4
|
-
export interface TreeViewSlots extends SimpleTreeViewSlots {
|
|
5
|
-
}
|
|
6
|
-
export interface TreeViewSlotProps extends SimpleTreeViewSlotProps {
|
|
7
|
-
}
|
|
8
|
-
export type SingleSelectTreeViewProps = SimpleTreeViewProps<false>;
|
|
9
|
-
export type MultiSelectTreeViewProps = SimpleTreeViewProps<true>;
|
package/TreeView/index.d.ts
DELETED
package/TreeView/index.js
DELETED
package/TreeView/package.json
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export interface TreeViewClasses {
|
|
2
|
-
/** Styles applied to the root element. */
|
|
3
|
-
root: string;
|
|
4
|
-
}
|
|
5
|
-
export type TreeViewClassKey = keyof TreeViewClasses;
|
|
6
|
-
export declare function getTreeViewUtilityClass(slot: string): string;
|
|
7
|
-
export declare const treeViewClasses: TreeViewClasses;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import generateUtilityClass from '@mui/utils/generateUtilityClass';
|
|
2
|
-
import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
|
|
3
|
-
export function getTreeViewUtilityClass(slot) {
|
|
4
|
-
return generateUtilityClass('MuiTreeView', slot);
|
|
5
|
-
}
|
|
6
|
-
export const treeViewClasses = generateUtilityClasses('MuiTreeView', ['root']);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { useTreeItem2Utils } from './useTreeItem2Utils';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { useTreeItem2Utils } from "./useTreeItem2Utils.js";
|
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
const _excluded = ["classes", "className", "displayIcon", "expansionIcon", "icon", "label", "itemId", "onClick", "onMouseDown", "dragAndDropOverlayProps", "labelInputProps"];
|
|
4
|
-
import * as React from 'react';
|
|
5
|
-
import PropTypes from 'prop-types';
|
|
6
|
-
import clsx from 'clsx';
|
|
7
|
-
import Checkbox from '@mui/material/Checkbox';
|
|
8
|
-
import { useTreeItemState } from "./useTreeItemState.js";
|
|
9
|
-
import { TreeItem2DragAndDropOverlay } from "../TreeItem2DragAndDropOverlay/index.js";
|
|
10
|
-
import { TreeItem2LabelInput } from "../TreeItem2LabelInput/index.js";
|
|
11
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
|
-
/**
|
|
13
|
-
* @ignore - internal component.
|
|
14
|
-
*/
|
|
15
|
-
const TreeItemContent = /*#__PURE__*/React.forwardRef(function TreeItemContent(props, ref) {
|
|
16
|
-
const {
|
|
17
|
-
classes,
|
|
18
|
-
className,
|
|
19
|
-
displayIcon,
|
|
20
|
-
expansionIcon,
|
|
21
|
-
icon: iconProp,
|
|
22
|
-
label,
|
|
23
|
-
itemId,
|
|
24
|
-
onClick,
|
|
25
|
-
onMouseDown,
|
|
26
|
-
dragAndDropOverlayProps,
|
|
27
|
-
labelInputProps
|
|
28
|
-
} = props,
|
|
29
|
-
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
30
|
-
const {
|
|
31
|
-
disabled,
|
|
32
|
-
expanded,
|
|
33
|
-
selected,
|
|
34
|
-
focused,
|
|
35
|
-
editing,
|
|
36
|
-
editable,
|
|
37
|
-
disableSelection,
|
|
38
|
-
checkboxSelection,
|
|
39
|
-
handleExpansion,
|
|
40
|
-
handleSelection,
|
|
41
|
-
handleCheckboxSelection,
|
|
42
|
-
handleContentClick,
|
|
43
|
-
preventSelection,
|
|
44
|
-
expansionTrigger,
|
|
45
|
-
toggleItemEditing
|
|
46
|
-
} = useTreeItemState(itemId);
|
|
47
|
-
const icon = iconProp || expansionIcon || displayIcon;
|
|
48
|
-
const checkboxRef = React.useRef(null);
|
|
49
|
-
const handleMouseDown = event => {
|
|
50
|
-
preventSelection(event);
|
|
51
|
-
if (onMouseDown) {
|
|
52
|
-
onMouseDown(event);
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
const handleClick = event => {
|
|
56
|
-
handleContentClick?.(event, itemId);
|
|
57
|
-
if (checkboxRef.current?.contains(event.target)) {
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
if (expansionTrigger === 'content') {
|
|
61
|
-
handleExpansion(event);
|
|
62
|
-
}
|
|
63
|
-
if (!checkboxSelection) {
|
|
64
|
-
handleSelection(event);
|
|
65
|
-
}
|
|
66
|
-
if (onClick) {
|
|
67
|
-
onClick(event);
|
|
68
|
-
}
|
|
69
|
-
};
|
|
70
|
-
const handleLabelDoubleClick = event => {
|
|
71
|
-
if (event.defaultMuiPrevented) {
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
toggleItemEditing();
|
|
75
|
-
};
|
|
76
|
-
return /*#__PURE__*/ /* eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions -- Key event is handled by the TreeView */_jsxs("div", _extends({}, other, {
|
|
77
|
-
className: clsx(classes.root, className, expanded && classes.expanded, selected && classes.selected, focused && classes.focused, disabled && classes.disabled, editing && classes.editing, editable && classes.editable),
|
|
78
|
-
onClick: handleClick,
|
|
79
|
-
onMouseDown: handleMouseDown,
|
|
80
|
-
ref: ref,
|
|
81
|
-
children: [/*#__PURE__*/_jsx("div", {
|
|
82
|
-
className: classes.iconContainer,
|
|
83
|
-
children: icon
|
|
84
|
-
}), checkboxSelection && /*#__PURE__*/_jsx(Checkbox, {
|
|
85
|
-
className: classes.checkbox,
|
|
86
|
-
checked: selected,
|
|
87
|
-
onChange: handleCheckboxSelection,
|
|
88
|
-
disabled: disabled || disableSelection,
|
|
89
|
-
ref: checkboxRef,
|
|
90
|
-
tabIndex: -1
|
|
91
|
-
}), editing ? /*#__PURE__*/_jsx(TreeItem2LabelInput, _extends({}, labelInputProps, {
|
|
92
|
-
className: classes.labelInput
|
|
93
|
-
})) : /*#__PURE__*/_jsx("div", _extends({
|
|
94
|
-
className: classes.label
|
|
95
|
-
}, editable && {
|
|
96
|
-
onDoubleClick: handleLabelDoubleClick
|
|
97
|
-
}, {
|
|
98
|
-
children: label
|
|
99
|
-
})), dragAndDropOverlayProps && /*#__PURE__*/_jsx(TreeItem2DragAndDropOverlay, _extends({}, dragAndDropOverlayProps))]
|
|
100
|
-
}));
|
|
101
|
-
});
|
|
102
|
-
process.env.NODE_ENV !== "production" ? TreeItemContent.propTypes = {
|
|
103
|
-
// ----------------------------- Warning --------------------------------
|
|
104
|
-
// | These PropTypes are generated from the TypeScript type definitions |
|
|
105
|
-
// | To update them edit the TypeScript types and run "pnpm proptypes" |
|
|
106
|
-
// ----------------------------------------------------------------------
|
|
107
|
-
/**
|
|
108
|
-
* Override or extend the styles applied to the component.
|
|
109
|
-
*/
|
|
110
|
-
classes: PropTypes.object.isRequired,
|
|
111
|
-
className: PropTypes.string,
|
|
112
|
-
/**
|
|
113
|
-
* The icon to display next to the Tree Item's label. Either a parent or end icon.
|
|
114
|
-
*/
|
|
115
|
-
displayIcon: PropTypes.node,
|
|
116
|
-
dragAndDropOverlayProps: PropTypes.shape({
|
|
117
|
-
action: PropTypes.oneOf(['make-child', 'move-to-parent', 'reorder-above', 'reorder-below']),
|
|
118
|
-
style: PropTypes.object
|
|
119
|
-
}),
|
|
120
|
-
/**
|
|
121
|
-
* The icon to display next to the Tree Item's label. Either an expansion or collapse icon.
|
|
122
|
-
*/
|
|
123
|
-
expansionIcon: PropTypes.node,
|
|
124
|
-
/**
|
|
125
|
-
* The icon to display next to the Tree Item's label.
|
|
126
|
-
*/
|
|
127
|
-
icon: PropTypes.node,
|
|
128
|
-
/**
|
|
129
|
-
* The id of the item.
|
|
130
|
-
*/
|
|
131
|
-
itemId: PropTypes.string.isRequired,
|
|
132
|
-
/**
|
|
133
|
-
* The Tree Item label.
|
|
134
|
-
*/
|
|
135
|
-
label: PropTypes.node,
|
|
136
|
-
labelInputProps: PropTypes.shape({
|
|
137
|
-
autoFocus: PropTypes.oneOf([true]),
|
|
138
|
-
'data-element': PropTypes.oneOf(['labelInput']),
|
|
139
|
-
onBlur: PropTypes.func,
|
|
140
|
-
onChange: PropTypes.func,
|
|
141
|
-
onKeyDown: PropTypes.func,
|
|
142
|
-
type: PropTypes.oneOf(['text']),
|
|
143
|
-
value: PropTypes.string
|
|
144
|
-
})
|
|
145
|
-
} : void 0;
|
|
146
|
-
export { TreeItemContent };
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
|
-
import { useTreeViewContext } from "../internals/TreeViewProvider/index.js";
|
|
4
|
-
import { useTreeViewLabel } from "../internals/plugins/useTreeViewLabel/index.js";
|
|
5
|
-
import { hasPlugin } from "../internals/utils/plugins.js";
|
|
6
|
-
export function useTreeItemState(itemId) {
|
|
7
|
-
const {
|
|
8
|
-
instance,
|
|
9
|
-
items: {
|
|
10
|
-
onItemClick
|
|
11
|
-
},
|
|
12
|
-
selection: {
|
|
13
|
-
multiSelect,
|
|
14
|
-
checkboxSelection,
|
|
15
|
-
disableSelection
|
|
16
|
-
},
|
|
17
|
-
expansion: {
|
|
18
|
-
expansionTrigger
|
|
19
|
-
}
|
|
20
|
-
} = useTreeViewContext();
|
|
21
|
-
const expandable = instance.isItemExpandable(itemId);
|
|
22
|
-
const expanded = instance.isItemExpanded(itemId);
|
|
23
|
-
const focused = instance.isItemFocused(itemId);
|
|
24
|
-
const selected = instance.isItemSelected(itemId);
|
|
25
|
-
const disabled = instance.isItemDisabled(itemId);
|
|
26
|
-
const editing = instance?.isItemBeingEdited ? instance?.isItemBeingEdited(itemId) : false;
|
|
27
|
-
const editable = instance.isItemEditable ? instance.isItemEditable(itemId) : false;
|
|
28
|
-
const handleExpansion = event => {
|
|
29
|
-
if (!disabled) {
|
|
30
|
-
if (!focused) {
|
|
31
|
-
instance.focusItem(event, itemId);
|
|
32
|
-
}
|
|
33
|
-
const multiple = multiSelect && (event.shiftKey || event.ctrlKey || event.metaKey);
|
|
34
|
-
|
|
35
|
-
// If already expanded and trying to toggle selection don't close
|
|
36
|
-
if (expandable && !(multiple && instance.isItemExpanded(itemId))) {
|
|
37
|
-
instance.toggleItemExpansion(event, itemId);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
const handleSelection = event => {
|
|
42
|
-
if (!disabled) {
|
|
43
|
-
if (!focused) {
|
|
44
|
-
instance.focusItem(event, itemId);
|
|
45
|
-
}
|
|
46
|
-
const multiple = multiSelect && (event.shiftKey || event.ctrlKey || event.metaKey);
|
|
47
|
-
if (multiple) {
|
|
48
|
-
if (event.shiftKey) {
|
|
49
|
-
instance.expandSelectionRange(event, itemId);
|
|
50
|
-
} else {
|
|
51
|
-
instance.selectItem({
|
|
52
|
-
event,
|
|
53
|
-
itemId,
|
|
54
|
-
keepExistingSelection: true
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
} else {
|
|
58
|
-
instance.selectItem({
|
|
59
|
-
event,
|
|
60
|
-
itemId,
|
|
61
|
-
shouldBeSelected: true
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
};
|
|
66
|
-
const handleCheckboxSelection = event => {
|
|
67
|
-
if (disableSelection || disabled) {
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
const hasShift = event.nativeEvent.shiftKey;
|
|
71
|
-
if (multiSelect && hasShift) {
|
|
72
|
-
instance.expandSelectionRange(event, itemId);
|
|
73
|
-
} else {
|
|
74
|
-
instance.selectItem({
|
|
75
|
-
event,
|
|
76
|
-
itemId,
|
|
77
|
-
keepExistingSelection: multiSelect,
|
|
78
|
-
shouldBeSelected: event.target.checked
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
};
|
|
82
|
-
const preventSelection = event => {
|
|
83
|
-
if (event.shiftKey || event.ctrlKey || event.metaKey || disabled) {
|
|
84
|
-
// Prevent text selection
|
|
85
|
-
event.preventDefault();
|
|
86
|
-
}
|
|
87
|
-
};
|
|
88
|
-
const toggleItemEditing = () => {
|
|
89
|
-
if (!hasPlugin(instance, useTreeViewLabel)) {
|
|
90
|
-
return;
|
|
91
|
-
}
|
|
92
|
-
if (instance.isItemEditable(itemId)) {
|
|
93
|
-
if (instance.isItemBeingEdited(itemId)) {
|
|
94
|
-
instance.setEditedItemId(null);
|
|
95
|
-
} else {
|
|
96
|
-
instance.setEditedItemId(itemId);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
};
|
|
100
|
-
const handleSaveItemLabel = (event, label) => {
|
|
101
|
-
if (!hasPlugin(instance, useTreeViewLabel)) {
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
// As a side effect of `instance.focusItem` called here and in `handleCancelItemLabelEditing` the `labelInput` is blurred
|
|
106
|
-
// The `onBlur` event is triggered, which calls `handleSaveItemLabel` again.
|
|
107
|
-
// To avoid creating an unwanted behavior we need to check if the item is being edited before calling `updateItemLabel`
|
|
108
|
-
// using `instance.isItemBeingEditedRef` instead of `instance.isItemBeingEdited` since the state is not yet updated in this point
|
|
109
|
-
if (instance.isItemBeingEditedRef(itemId)) {
|
|
110
|
-
instance.updateItemLabel(itemId, label);
|
|
111
|
-
toggleItemEditing();
|
|
112
|
-
instance.focusItem(event, itemId);
|
|
113
|
-
}
|
|
114
|
-
};
|
|
115
|
-
const handleCancelItemLabelEditing = event => {
|
|
116
|
-
if (!hasPlugin(instance, useTreeViewLabel)) {
|
|
117
|
-
return;
|
|
118
|
-
}
|
|
119
|
-
if (instance.isItemBeingEditedRef(itemId)) {
|
|
120
|
-
toggleItemEditing();
|
|
121
|
-
instance.focusItem(event, itemId);
|
|
122
|
-
}
|
|
123
|
-
};
|
|
124
|
-
return {
|
|
125
|
-
disabled,
|
|
126
|
-
expanded,
|
|
127
|
-
selected,
|
|
128
|
-
focused,
|
|
129
|
-
editable,
|
|
130
|
-
editing,
|
|
131
|
-
disableSelection,
|
|
132
|
-
checkboxSelection,
|
|
133
|
-
handleExpansion,
|
|
134
|
-
handleSelection,
|
|
135
|
-
handleCheckboxSelection,
|
|
136
|
-
handleContentClick: onItemClick,
|
|
137
|
-
preventSelection,
|
|
138
|
-
expansionTrigger,
|
|
139
|
-
toggleItemEditing,
|
|
140
|
-
handleSaveItemLabel,
|
|
141
|
-
handleCancelItemLabelEditing
|
|
142
|
-
};
|
|
143
|
-
}
|