@mui/x-tree-view 8.0.0-alpha.1 → 8.0.0-alpha.11
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 +2007 -230
- package/README.md +1 -1
- package/RichTreeView/RichTreeView.js +4 -8
- package/RichTreeView/RichTreeView.types.d.ts +3 -3
- package/SimpleTreeView/SimpleTreeView.types.d.ts +3 -3
- package/TreeItem/TreeItem.d.ts +1 -1
- package/TreeItem/TreeItem.types.d.ts +1 -1
- package/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.js +1 -1
- package/TreeItemIcon/TreeItemIcon.types.d.ts +1 -1
- package/TreeItemProvider/TreeItemProvider.d.ts +2 -4
- package/TreeItemProvider/TreeItemProvider.js +13 -11
- package/hooks/useTreeItemUtils/useTreeItemUtils.d.ts +4 -4
- package/hooks/useTreeViewApiRef.d.ts +2 -1
- package/index.js +1 -1
- package/internals/TreeViewProvider/TreeViewProvider.types.d.ts +1 -1
- package/internals/components/RichTreeViewItems.d.ts +1 -1
- package/internals/hooks/useInstanceEventHandler.js +1 -1
- package/internals/models/itemPlugin.d.ts +3 -3
- package/internals/models/plugin.d.ts +3 -3
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +23 -24
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.d.ts +66 -10
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js +8 -1
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +1 -5
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.d.ts +3 -0
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.js +12 -0
- package/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.d.ts +1 -1
- package/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.d.ts +252 -84
- package/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +26 -8
- package/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +4 -14
- package/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +3 -6
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +13 -16
- package/internals/useTreeView/useTreeView.d.ts +1 -1
- package/internals/useTreeView/useTreeView.types.d.ts +2 -2
- package/internals/useTreeView/useTreeViewBuildContext.d.ts +1 -1
- package/modern/RichTreeView/RichTreeView.js +4 -8
- package/modern/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.js +1 -1
- package/modern/TreeItemProvider/TreeItemProvider.js +13 -11
- package/modern/index.js +1 -1
- package/modern/internals/hooks/useInstanceEventHandler.js +1 -1
- package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +23 -24
- package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js +8 -1
- package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.js +12 -0
- package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +4 -14
- package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +13 -16
- package/modern/useTreeItem/useTreeItem.js +3 -5
- package/node/RichTreeView/RichTreeView.js +4 -8
- package/node/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.js +2 -2
- package/node/TreeItemProvider/TreeItemProvider.js +13 -10
- package/node/index.js +1 -1
- package/node/internals/hooks/useInstanceEventHandler.js +1 -1
- package/node/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +22 -24
- package/node/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js +9 -2
- package/node/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.js +15 -2
- package/node/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +4 -14
- package/node/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +13 -16
- package/node/useTreeItem/useTreeItem.js +3 -5
- package/package.json +5 -5
- package/useTreeItem/useTreeItem.js +3 -5
- package/useTreeItem/useTreeItem.types.d.ts +1 -1
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
'use client';
|
|
2
3
|
|
|
3
4
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
5
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
6
|
Object.defineProperty(exports, "__esModule", {
|
|
5
7
|
value: true
|
|
6
8
|
});
|
|
7
9
|
exports.TreeItemProvider = TreeItemProvider;
|
|
10
|
+
var React = _interopRequireWildcard(require("react"));
|
|
8
11
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
12
|
var _TreeViewProvider = require("../internals/TreeViewProvider");
|
|
10
13
|
var _useTreeViewId = require("../internals/corePlugins/useTreeViewId/useTreeViewId.utils");
|
|
11
14
|
var _useSelector = require("../internals/hooks/useSelector");
|
|
12
15
|
var _useTreeViewId2 = require("../internals/corePlugins/useTreeViewId/useTreeViewId.selectors");
|
|
13
|
-
|
|
14
|
-
* @ignore - internal component.
|
|
15
|
-
*/
|
|
16
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
16
17
|
function TreeItemProvider(props) {
|
|
17
18
|
const {
|
|
18
19
|
children,
|
|
@@ -30,14 +31,16 @@ function TreeItemProvider(props) {
|
|
|
30
31
|
treeId,
|
|
31
32
|
id
|
|
32
33
|
});
|
|
33
|
-
return
|
|
34
|
-
children
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(React.Fragment, {
|
|
35
|
+
children: wrapItem({
|
|
36
|
+
children,
|
|
37
|
+
itemId,
|
|
38
|
+
instance,
|
|
39
|
+
idAttribute
|
|
40
|
+
})
|
|
38
41
|
});
|
|
39
42
|
}
|
|
40
|
-
TreeItemProvider.propTypes = {
|
|
43
|
+
process.env.NODE_ENV !== "production" ? TreeItemProvider.propTypes = {
|
|
41
44
|
// ----------------------------- Warning --------------------------------
|
|
42
45
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
43
46
|
// | To update them edit the TypeScript types and run "pnpm proptypes" |
|
|
@@ -45,4 +48,4 @@ TreeItemProvider.propTypes = {
|
|
|
45
48
|
children: _propTypes.default.node,
|
|
46
49
|
id: _propTypes.default.string,
|
|
47
50
|
itemId: _propTypes.default.string.isRequired
|
|
48
|
-
};
|
|
51
|
+
} : void 0;
|
package/node/index.js
CHANGED
|
@@ -22,7 +22,7 @@ function createUseInstanceEventHandler(registryContainer) {
|
|
|
22
22
|
}
|
|
23
23
|
const [objectRetainedByReact] = React.useState(new ObjectToBeRetainedByReact());
|
|
24
24
|
const subscription = React.useRef(null);
|
|
25
|
-
const handlerRef = React.useRef();
|
|
25
|
+
const handlerRef = React.useRef(undefined);
|
|
26
26
|
handlerRef.current = handler;
|
|
27
27
|
const cleanupTokenRef = React.useRef(null);
|
|
28
28
|
if (!subscription.current && handlerRef.current) {
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.useTreeViewExpansion = void 0;
|
|
9
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
-
var React = _interopRequireWildcard(require("react"));
|
|
11
9
|
var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
|
|
12
10
|
var _useEnhancedEffect = _interopRequireDefault(require("@mui/utils/useEnhancedEffect"));
|
|
13
11
|
var _useTreeViewExpansion = require("./useTreeViewExpansion.selectors");
|
|
@@ -17,17 +15,31 @@ const useTreeViewExpansion = ({
|
|
|
17
15
|
instance,
|
|
18
16
|
store,
|
|
19
17
|
params,
|
|
20
|
-
models
|
|
21
|
-
experimentalFeatures
|
|
18
|
+
models
|
|
22
19
|
}) => {
|
|
23
|
-
const isTreeViewEditable = Boolean(params.isItemEditable) && !!experimentalFeatures.labelEditing;
|
|
24
20
|
(0, _useEnhancedEffect.default)(() => {
|
|
25
21
|
store.update(prevState => (0, _extends2.default)({}, prevState, {
|
|
26
|
-
expansion: {
|
|
22
|
+
expansion: (0, _extends2.default)({}, prevState.expansion, {
|
|
27
23
|
expandedItemsMap: (0, _useTreeViewExpansion2.createExpandedItemsMap)(models.expandedItems.value)
|
|
28
|
-
}
|
|
24
|
+
})
|
|
29
25
|
}));
|
|
30
26
|
}, [store, models.expandedItems.value]);
|
|
27
|
+
(0, _useEnhancedEffect.default)(() => {
|
|
28
|
+
store.update(prevState => {
|
|
29
|
+
const newExpansionTrigger = (0, _useTreeViewExpansion2.getExpansionTrigger)({
|
|
30
|
+
isItemEditable: params.isItemEditable,
|
|
31
|
+
expansionTrigger: params.expansionTrigger
|
|
32
|
+
});
|
|
33
|
+
if (prevState.expansion.expansionTrigger === newExpansionTrigger) {
|
|
34
|
+
return prevState;
|
|
35
|
+
}
|
|
36
|
+
return (0, _extends2.default)({}, prevState, {
|
|
37
|
+
expansion: (0, _extends2.default)({}, prevState.expansion, {
|
|
38
|
+
expansionTrigger: newExpansionTrigger
|
|
39
|
+
})
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
}, [store, params.isItemEditable, params.expansionTrigger]);
|
|
31
43
|
const setExpandedItems = (event, value) => {
|
|
32
44
|
params.onExpandedItemsChange?.(event, value);
|
|
33
45
|
models.expandedItems.setControlledValue(value);
|
|
@@ -69,20 +81,6 @@ const useTreeViewExpansion = ({
|
|
|
69
81
|
setExpandedItems(event, newExpanded);
|
|
70
82
|
}
|
|
71
83
|
};
|
|
72
|
-
const expansionTrigger = React.useMemo(() => {
|
|
73
|
-
if (params.expansionTrigger) {
|
|
74
|
-
return params.expansionTrigger;
|
|
75
|
-
}
|
|
76
|
-
if (isTreeViewEditable) {
|
|
77
|
-
return 'iconContainer';
|
|
78
|
-
}
|
|
79
|
-
return 'content';
|
|
80
|
-
}, [params.expansionTrigger, isTreeViewEditable]);
|
|
81
|
-
const pluginContextValue = React.useMemo(() => ({
|
|
82
|
-
expansion: {
|
|
83
|
-
expansionTrigger
|
|
84
|
-
}
|
|
85
|
-
}), [expansionTrigger]);
|
|
86
84
|
return {
|
|
87
85
|
publicAPI: {
|
|
88
86
|
setItemExpansion
|
|
@@ -91,8 +89,7 @@ const useTreeViewExpansion = ({
|
|
|
91
89
|
setItemExpansion,
|
|
92
90
|
toggleItemExpansion,
|
|
93
91
|
expandAllSiblings
|
|
94
|
-
}
|
|
95
|
-
contextValue: pluginContextValue
|
|
92
|
+
}
|
|
96
93
|
};
|
|
97
94
|
};
|
|
98
95
|
exports.useTreeViewExpansion = useTreeViewExpansion;
|
|
@@ -109,7 +106,8 @@ useTreeViewExpansion.getDefaultizedParams = ({
|
|
|
109
106
|
});
|
|
110
107
|
useTreeViewExpansion.getInitialState = params => ({
|
|
111
108
|
expansion: {
|
|
112
|
-
expandedItemsMap: (0, _useTreeViewExpansion2.createExpandedItemsMap)(params.expandedItems === undefined ? params.defaultExpandedItems : params.expandedItems)
|
|
109
|
+
expandedItemsMap: (0, _useTreeViewExpansion2.createExpandedItemsMap)(params.expandedItems === undefined ? params.defaultExpandedItems : params.expandedItems),
|
|
110
|
+
expansionTrigger: (0, _useTreeViewExpansion2.getExpansionTrigger)(params)
|
|
113
111
|
}
|
|
114
112
|
});
|
|
115
113
|
useTreeViewExpansion.params = {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.selectorIsItemExpanded = exports.selectorIsItemExpandable = void 0;
|
|
6
|
+
exports.selectorItemExpansionTrigger = exports.selectorIsItemExpanded = exports.selectorIsItemExpandable = void 0;
|
|
7
7
|
var _selectors = require("../../utils/selectors");
|
|
8
8
|
var _useTreeViewItems = require("../useTreeViewItems/useTreeViewItems.selectors");
|
|
9
9
|
const selectorExpansion = state => state.expansion;
|
|
@@ -20,4 +20,11 @@ const selectorIsItemExpanded = exports.selectorIsItemExpanded = (0, _selectors.c
|
|
|
20
20
|
* @param {TreeViewState<[UseTreeViewItemsSignature]>} state The state of the tree view.
|
|
21
21
|
* @returns {boolean} `true` if the item is expandable, `false` otherwise.
|
|
22
22
|
*/
|
|
23
|
-
const selectorIsItemExpandable = exports.selectorIsItemExpandable = (0, _selectors.createSelector)([_useTreeViewItems.selectorItemMeta], itemMeta => itemMeta?.expandable ?? false);
|
|
23
|
+
const selectorIsItemExpandable = exports.selectorIsItemExpandable = (0, _selectors.createSelector)([_useTreeViewItems.selectorItemMeta], itemMeta => itemMeta?.expandable ?? false);
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Get the slot that triggers the item's expansion when clicked.
|
|
27
|
+
* @param {TreeViewState<[UseTreeViewExpansionSignature]>} state The state of the tree view.
|
|
28
|
+
* @returns {'content' | 'iconContainer'} The slot that triggers the item's expansion when clicked. Is `null` if the item is not expandable.
|
|
29
|
+
*/
|
|
30
|
+
const selectorItemExpansionTrigger = exports.selectorItemExpansionTrigger = (0, _selectors.createSelector)([selectorExpansion], expansionState => expansionState.expansionTrigger);
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.createExpandedItemsMap = void 0;
|
|
6
|
+
exports.getExpansionTrigger = exports.createExpandedItemsMap = void 0;
|
|
7
7
|
const createExpandedItemsMap = expandedItems => {
|
|
8
8
|
const expandedItemsMap = new Map();
|
|
9
9
|
expandedItems.forEach(id => {
|
|
@@ -11,4 +11,17 @@ const createExpandedItemsMap = expandedItems => {
|
|
|
11
11
|
});
|
|
12
12
|
return expandedItemsMap;
|
|
13
13
|
};
|
|
14
|
-
exports.createExpandedItemsMap = createExpandedItemsMap;
|
|
14
|
+
exports.createExpandedItemsMap = createExpandedItemsMap;
|
|
15
|
+
const getExpansionTrigger = ({
|
|
16
|
+
isItemEditable,
|
|
17
|
+
expansionTrigger
|
|
18
|
+
}) => {
|
|
19
|
+
if (expansionTrigger) {
|
|
20
|
+
return expansionTrigger;
|
|
21
|
+
}
|
|
22
|
+
if (isItemEditable) {
|
|
23
|
+
return 'iconContainer';
|
|
24
|
+
}
|
|
25
|
+
return 'content';
|
|
26
|
+
};
|
|
27
|
+
exports.getExpansionTrigger = getExpansionTrigger;
|
|
@@ -8,7 +8,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports.useTreeViewLabel = void 0;
|
|
9
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
10
|
var React = _interopRequireWildcard(require("react"));
|
|
11
|
-
var _warning = require("@mui/x-internals/warning");
|
|
12
11
|
var _useTreeViewLabel = require("./useTreeViewLabel.itemPlugin");
|
|
13
12
|
const useTreeViewLabel = ({
|
|
14
13
|
store,
|
|
@@ -63,19 +62,10 @@ const useTreeViewLabel = ({
|
|
|
63
62
|
exports.useTreeViewLabel = useTreeViewLabel;
|
|
64
63
|
useTreeViewLabel.itemPlugin = _useTreeViewLabel.useTreeViewLabelItemPlugin;
|
|
65
64
|
useTreeViewLabel.getDefaultizedParams = ({
|
|
66
|
-
params
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
71
|
-
if (params.isItemEditable && !canUseFeature) {
|
|
72
|
-
(0, _warning.warnOnce)(['MUI X: The label editing feature requires the `labelEditing` experimental feature to be enabled.', 'You can do it by passing `experimentalFeatures={{ labelEditing: true}}` to the Rich Tree View Pro component.', 'Check the documentation for more details: https://mui.com/x/react-tree-view/rich-tree-view/editing/']);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
return (0, _extends2.default)({}, params, {
|
|
76
|
-
isItemEditable: canUseFeature ? params.isItemEditable ?? false : false
|
|
77
|
-
});
|
|
78
|
-
};
|
|
65
|
+
params
|
|
66
|
+
}) => (0, _extends2.default)({}, params, {
|
|
67
|
+
isItemEditable: params.isItemEditable ?? false
|
|
68
|
+
});
|
|
79
69
|
useTreeViewLabel.getInitialState = () => ({
|
|
80
70
|
label: {
|
|
81
71
|
editedItemId: null
|
|
@@ -9,19 +9,18 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
9
9
|
var _TreeViewProvider = require("../../TreeViewProvider");
|
|
10
10
|
var _useTreeViewItems = require("../useTreeViewItems/useTreeViewItems.selectors");
|
|
11
11
|
var _useTreeViewSelection = require("./useTreeViewSelection.selectors");
|
|
12
|
-
|
|
12
|
+
var _useSelector = require("../../hooks/useSelector");
|
|
13
|
+
function selectorItemCheckboxStatus(state, {
|
|
13
14
|
itemId,
|
|
14
|
-
|
|
15
|
-
selectionPropagation,
|
|
16
|
-
selected
|
|
15
|
+
selectionPropagation
|
|
17
16
|
}) {
|
|
18
|
-
if (
|
|
17
|
+
if ((0, _useTreeViewSelection.selectorIsItemSelected)(state, itemId)) {
|
|
19
18
|
return {
|
|
20
19
|
indeterminate: false,
|
|
21
20
|
checked: true
|
|
22
21
|
};
|
|
23
22
|
}
|
|
24
|
-
const children = (0, _useTreeViewItems.selectorItemOrderedChildrenIds)(
|
|
23
|
+
const children = (0, _useTreeViewItems.selectorItemOrderedChildrenIds)(state, itemId);
|
|
25
24
|
if (children.length === 0) {
|
|
26
25
|
return {
|
|
27
26
|
indeterminate: false,
|
|
@@ -32,18 +31,18 @@ function getCheckboxStatus({
|
|
|
32
31
|
let hasUnSelectedDescendant = false;
|
|
33
32
|
const traverseDescendants = itemToTraverseId => {
|
|
34
33
|
if (itemToTraverseId !== itemId) {
|
|
35
|
-
if ((0, _useTreeViewSelection.selectorIsItemSelected)(
|
|
34
|
+
if ((0, _useTreeViewSelection.selectorIsItemSelected)(state, itemToTraverseId)) {
|
|
36
35
|
hasSelectedDescendant = true;
|
|
37
36
|
} else {
|
|
38
37
|
hasUnSelectedDescendant = true;
|
|
39
38
|
}
|
|
40
39
|
}
|
|
41
|
-
(0, _useTreeViewItems.selectorItemOrderedChildrenIds)(
|
|
40
|
+
(0, _useTreeViewItems.selectorItemOrderedChildrenIds)(state, itemToTraverseId).forEach(traverseDescendants);
|
|
42
41
|
};
|
|
43
42
|
traverseDescendants(itemId);
|
|
44
43
|
return {
|
|
45
|
-
indeterminate: hasSelectedDescendant && hasUnSelectedDescendant || !hasUnSelectedDescendant
|
|
46
|
-
checked: selectionPropagation.parents ? hasSelectedDescendant :
|
|
44
|
+
indeterminate: hasSelectedDescendant && hasUnSelectedDescendant || !hasUnSelectedDescendant,
|
|
45
|
+
checked: selectionPropagation.parents ? hasSelectedDescendant : false
|
|
47
46
|
};
|
|
48
47
|
}
|
|
49
48
|
const useTreeViewSelectionItemPlugin = ({
|
|
@@ -60,6 +59,10 @@ const useTreeViewSelectionItemPlugin = ({
|
|
|
60
59
|
selectionPropagation
|
|
61
60
|
}
|
|
62
61
|
} = (0, _TreeViewProvider.useTreeViewContext)();
|
|
62
|
+
const checkboxStatus = (0, _useSelector.useSelector)(store, selectorItemCheckboxStatus, {
|
|
63
|
+
itemId,
|
|
64
|
+
selectionPropagation
|
|
65
|
+
}, (a, b) => a.checked === b.checked && a.indeterminate === b.indeterminate);
|
|
63
66
|
return {
|
|
64
67
|
propsEnhancers: {
|
|
65
68
|
checkbox: ({
|
|
@@ -77,12 +80,6 @@ const useTreeViewSelectionItemPlugin = ({
|
|
|
77
80
|
}
|
|
78
81
|
interactions.handleCheckboxSelection(event);
|
|
79
82
|
};
|
|
80
|
-
const checkboxStatus = getCheckboxStatus({
|
|
81
|
-
store,
|
|
82
|
-
itemId,
|
|
83
|
-
selectionPropagation,
|
|
84
|
-
selected: status.selected
|
|
85
|
-
});
|
|
86
83
|
return (0, _extends2.default)({
|
|
87
84
|
visible: checkboxSelection,
|
|
88
85
|
disabled: disableSelection || status.disabled,
|
|
@@ -20,6 +20,7 @@ var _useTreeViewFocus = require("../internals/plugins/useTreeViewFocus/useTreeVi
|
|
|
20
20
|
var _useTreeViewId = require("../internals/corePlugins/useTreeViewId/useTreeViewId.utils");
|
|
21
21
|
var _useTreeViewItems = require("../internals/plugins/useTreeViewItems/useTreeViewItems.selectors");
|
|
22
22
|
var _useTreeViewId2 = require("../internals/corePlugins/useTreeViewId/useTreeViewId.selectors");
|
|
23
|
+
var _useTreeViewExpansion = require("../internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors");
|
|
23
24
|
const useTreeItem = parameters => {
|
|
24
25
|
const {
|
|
25
26
|
runItemPlugins,
|
|
@@ -30,9 +31,6 @@ const useTreeItem = parameters => {
|
|
|
30
31
|
disableSelection,
|
|
31
32
|
checkboxSelection
|
|
32
33
|
},
|
|
33
|
-
expansion: {
|
|
34
|
-
expansionTrigger
|
|
35
|
-
},
|
|
36
34
|
label: labelContext,
|
|
37
35
|
instance,
|
|
38
36
|
publicAPI,
|
|
@@ -129,7 +127,7 @@ const useTreeItem = parameters => {
|
|
|
129
127
|
if (event.defaultMuiPrevented || checkboxRef.current?.contains(event.target)) {
|
|
130
128
|
return;
|
|
131
129
|
}
|
|
132
|
-
if (
|
|
130
|
+
if ((0, _useTreeViewExpansion.selectorItemExpansionTrigger)(store.value) === 'content') {
|
|
133
131
|
interactions.handleExpansion(event);
|
|
134
132
|
}
|
|
135
133
|
if (!checkboxSelection) {
|
|
@@ -152,7 +150,7 @@ const useTreeItem = parameters => {
|
|
|
152
150
|
if (event.defaultMuiPrevented) {
|
|
153
151
|
return;
|
|
154
152
|
}
|
|
155
|
-
if (
|
|
153
|
+
if ((0, _useTreeViewExpansion.selectorItemExpansionTrigger)(store.value) === 'iconContainer') {
|
|
156
154
|
interactions.handleExpansion(event);
|
|
157
155
|
}
|
|
158
156
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mui/x-tree-view",
|
|
3
|
-
"version": "8.0.0-alpha.
|
|
3
|
+
"version": "8.0.0-alpha.11",
|
|
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,15 +33,15 @@
|
|
|
33
33
|
"directory": "packages/x-tree-view"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@babel/runtime": "^7.26.
|
|
36
|
+
"@babel/runtime": "^7.26.7",
|
|
37
37
|
"@mui/utils": "^5.16.6 || ^6.0.0",
|
|
38
|
-
"@types/react-transition-group": "^4.4.
|
|
38
|
+
"@types/react-transition-group": "^4.4.12",
|
|
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.
|
|
44
|
-
"@mui/x-internals": "8.0.0-alpha.
|
|
43
|
+
"use-sync-external-store": "^1.4.0",
|
|
44
|
+
"@mui/x-internals": "8.0.0-alpha.11"
|
|
45
45
|
},
|
|
46
46
|
"peerDependencies": {
|
|
47
47
|
"@emotion/react": "^11.9.0",
|
|
@@ -13,6 +13,7 @@ import { selectorIsItemTheDefaultFocusableItem } from "../internals/plugins/useT
|
|
|
13
13
|
import { generateTreeItemIdAttribute } from "../internals/corePlugins/useTreeViewId/useTreeViewId.utils.js";
|
|
14
14
|
import { selectorCanItemBeFocused } from "../internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js";
|
|
15
15
|
import { selectorTreeViewId } from "../internals/corePlugins/useTreeViewId/useTreeViewId.selectors.js";
|
|
16
|
+
import { selectorItemExpansionTrigger } from "../internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js";
|
|
16
17
|
export const useTreeItem = parameters => {
|
|
17
18
|
const {
|
|
18
19
|
runItemPlugins,
|
|
@@ -23,9 +24,6 @@ export const useTreeItem = parameters => {
|
|
|
23
24
|
disableSelection,
|
|
24
25
|
checkboxSelection
|
|
25
26
|
},
|
|
26
|
-
expansion: {
|
|
27
|
-
expansionTrigger
|
|
28
|
-
},
|
|
29
27
|
label: labelContext,
|
|
30
28
|
instance,
|
|
31
29
|
publicAPI,
|
|
@@ -122,7 +120,7 @@ export const useTreeItem = parameters => {
|
|
|
122
120
|
if (event.defaultMuiPrevented || checkboxRef.current?.contains(event.target)) {
|
|
123
121
|
return;
|
|
124
122
|
}
|
|
125
|
-
if (
|
|
123
|
+
if (selectorItemExpansionTrigger(store.value) === 'content') {
|
|
126
124
|
interactions.handleExpansion(event);
|
|
127
125
|
}
|
|
128
126
|
if (!checkboxSelection) {
|
|
@@ -145,7 +143,7 @@ export const useTreeItem = parameters => {
|
|
|
145
143
|
if (event.defaultMuiPrevented) {
|
|
146
144
|
return;
|
|
147
145
|
}
|
|
148
|
-
if (
|
|
146
|
+
if (selectorItemExpansionTrigger(store.value) === 'iconContainer') {
|
|
149
147
|
interactions.handleExpansion(event);
|
|
150
148
|
}
|
|
151
149
|
};
|
|
@@ -78,7 +78,7 @@ export interface UseTreeItemLabelInputSlotOwnProps {
|
|
|
78
78
|
}
|
|
79
79
|
export type UseTreeItemLabelInputSlotProps<ExternalProps = {}> = ExternalProps & UseTreeItemLabelInputSlotOwnProps;
|
|
80
80
|
export interface UseTreeItemCheckboxSlotOwnProps {
|
|
81
|
-
ref: React.RefObject<HTMLButtonElement>;
|
|
81
|
+
ref: React.RefObject<HTMLButtonElement | null>;
|
|
82
82
|
}
|
|
83
83
|
export type UseTreeItemCheckboxSlotProps<ExternalProps = {}> = ExternalProps & UseTreeItemCheckboxSlotOwnProps;
|
|
84
84
|
export interface UseTreeItemGroupTransitionSlotOwnProps {
|