@mui/x-tree-view 8.17.0 → 8.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +100 -0
- package/RichTreeView/RichTreeView.js +11 -11
- package/SimpleTreeView/SimpleTreeView.js +10 -10
- package/TreeItem/TreeItem.d.ts +1 -1
- package/esm/RichTreeView/RichTreeView.js +11 -11
- package/esm/SimpleTreeView/SimpleTreeView.js +10 -10
- package/esm/TreeItem/TreeItem.d.ts +1 -1
- package/esm/index.js +1 -1
- package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +11 -11
- package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +5 -4
- package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +7 -7
- package/esm/internals/plugins/useTreeViewJSXItems/itemPlugin.d.ts +2 -0
- package/esm/internals/plugins/useTreeViewJSXItems/itemPlugin.js +74 -0
- package/esm/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js +2 -71
- package/esm/internals/plugins/useTreeViewLabel/itemPlugin.d.ts +11 -0
- package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +1 -1
- package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +2 -11
- package/esm/internals/plugins/useTreeViewSelection/itemPlugin.d.ts +20 -0
- package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +1 -1
- package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +20 -35
- package/esm/models/items.d.ts +1 -0
- package/index.js +1 -1
- package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +11 -11
- package/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +5 -4
- package/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +7 -7
- package/internals/plugins/useTreeViewJSXItems/itemPlugin.d.ts +2 -0
- package/internals/plugins/useTreeViewJSXItems/itemPlugin.js +81 -0
- package/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js +2 -71
- package/internals/plugins/useTreeViewLabel/itemPlugin.d.ts +11 -0
- package/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +4 -4
- package/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +2 -11
- package/internals/plugins/useTreeViewSelection/itemPlugin.d.ts +20 -0
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +2 -2
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +20 -35
- package/models/items.d.ts +1 -0
- package/package.json +3 -3
- package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.itemPlugin.d.ts +0 -2
- package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.d.ts +0 -2
- package/internals/plugins/useTreeViewLabel/useTreeViewLabel.itemPlugin.d.ts +0 -2
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.d.ts +0 -2
- /package/esm/internals/plugins/useTreeViewLabel/{useTreeViewLabel.itemPlugin.js → itemPlugin.js} +0 -0
- /package/esm/internals/plugins/useTreeViewSelection/{useTreeViewSelection.itemPlugin.js → itemPlugin.js} +0 -0
- /package/internals/plugins/useTreeViewLabel/{useTreeViewLabel.itemPlugin.js → itemPlugin.js} +0 -0
- /package/internals/plugins/useTreeViewSelection/{useTreeViewSelection.itemPlugin.js → itemPlugin.js} +0 -0
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
|
|
4
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.useTreeViewJSXItemsItemPlugin = void 0;
|
|
9
|
+
var React = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _store = require("@mui/x-internals/store");
|
|
11
|
+
var _useMergedRefs = require("@base-ui-components/utils/useMergedRefs");
|
|
12
|
+
var _useIsoLayoutEffect = require("@base-ui-components/utils/useIsoLayoutEffect");
|
|
13
|
+
var _TreeViewProvider = require("../../TreeViewProvider");
|
|
14
|
+
var _TreeViewChildrenItemProvider = require("../../TreeViewProvider/TreeViewChildrenItemProvider");
|
|
15
|
+
var _useTreeItemUtils = require("../../../hooks/useTreeItemUtils/useTreeItemUtils");
|
|
16
|
+
var _useTreeViewId = require("../../corePlugins/useTreeViewId");
|
|
17
|
+
var _useTreeViewId2 = require("../../corePlugins/useTreeViewId/useTreeViewId.utils");
|
|
18
|
+
const useTreeViewJSXItemsItemPlugin = ({
|
|
19
|
+
props,
|
|
20
|
+
rootRef,
|
|
21
|
+
contentRef
|
|
22
|
+
}) => {
|
|
23
|
+
const {
|
|
24
|
+
instance,
|
|
25
|
+
store
|
|
26
|
+
} = (0, _TreeViewProvider.useTreeViewContext)();
|
|
27
|
+
const {
|
|
28
|
+
children,
|
|
29
|
+
disabled = false,
|
|
30
|
+
label,
|
|
31
|
+
itemId,
|
|
32
|
+
id
|
|
33
|
+
} = props;
|
|
34
|
+
const parentContext = React.useContext(_TreeViewChildrenItemProvider.TreeViewChildrenItemContext);
|
|
35
|
+
if (parentContext == null) {
|
|
36
|
+
throw new Error(['MUI X: Could not find the Tree View Children Item context.', 'It looks like you rendered your component outside of a SimpleTreeView parent component.', 'This can also happen if you are bundling multiple versions of the Tree View.'].join('\n'));
|
|
37
|
+
}
|
|
38
|
+
const {
|
|
39
|
+
registerChild,
|
|
40
|
+
unregisterChild,
|
|
41
|
+
parentId
|
|
42
|
+
} = parentContext;
|
|
43
|
+
const expandable = (0, _useTreeItemUtils.itemHasChildren)(children);
|
|
44
|
+
const pluginContentRef = React.useRef(null);
|
|
45
|
+
const handleContentRef = (0, _useMergedRefs.useMergedRefs)(pluginContentRef, contentRef);
|
|
46
|
+
const treeId = (0, _store.useStore)(store, _useTreeViewId.idSelectors.treeId);
|
|
47
|
+
|
|
48
|
+
// Prevent any flashing
|
|
49
|
+
(0, _useIsoLayoutEffect.useIsoLayoutEffect)(() => {
|
|
50
|
+
const idAttribute = (0, _useTreeViewId2.generateTreeItemIdAttribute)({
|
|
51
|
+
itemId,
|
|
52
|
+
treeId,
|
|
53
|
+
id
|
|
54
|
+
});
|
|
55
|
+
registerChild(idAttribute, itemId);
|
|
56
|
+
return () => {
|
|
57
|
+
unregisterChild(idAttribute);
|
|
58
|
+
unregisterChild(idAttribute);
|
|
59
|
+
};
|
|
60
|
+
}, [store, instance, registerChild, unregisterChild, itemId, id, treeId]);
|
|
61
|
+
(0, _useIsoLayoutEffect.useIsoLayoutEffect)(() => {
|
|
62
|
+
return instance.insertJSXItem({
|
|
63
|
+
id: itemId,
|
|
64
|
+
idAttribute: id,
|
|
65
|
+
parentId,
|
|
66
|
+
expandable,
|
|
67
|
+
disabled
|
|
68
|
+
});
|
|
69
|
+
}, [instance, parentId, itemId, expandable, disabled, id]);
|
|
70
|
+
React.useEffect(() => {
|
|
71
|
+
if (label) {
|
|
72
|
+
return instance.mapLabelFromJSX(itemId, (pluginContentRef.current?.textContent ?? '').toLowerCase());
|
|
73
|
+
}
|
|
74
|
+
return undefined;
|
|
75
|
+
}, [instance, itemId, label]);
|
|
76
|
+
return {
|
|
77
|
+
contentRef: handleContentRef,
|
|
78
|
+
rootRef
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
exports.useTreeViewJSXItemsItemPlugin = useTreeViewJSXItemsItemPlugin;
|
|
@@ -9,17 +9,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
9
9
|
exports.useTreeViewJSXItems = void 0;
|
|
10
10
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
11
|
var React = _interopRequireWildcard(require("react"));
|
|
12
|
-
var _store = require("@mui/x-internals/store");
|
|
13
12
|
var _useEventCallback = require("@base-ui-components/utils/useEventCallback");
|
|
14
|
-
var _useMergedRefs = require("@base-ui-components/utils/useMergedRefs");
|
|
15
|
-
var _useIsoLayoutEffect = require("@base-ui-components/utils/useIsoLayoutEffect");
|
|
16
|
-
var _TreeViewProvider = require("../../TreeViewProvider");
|
|
17
13
|
var _TreeViewChildrenItemProvider = require("../../TreeViewProvider/TreeViewChildrenItemProvider");
|
|
18
14
|
var _useTreeViewItems = require("../useTreeViewItems/useTreeViewItems.utils");
|
|
19
15
|
var _TreeViewItemDepthContext = require("../../TreeViewItemDepthContext");
|
|
20
|
-
var
|
|
21
|
-
var _useTreeItemUtils = require("../../../hooks/useTreeItemUtils/useTreeItemUtils");
|
|
22
|
-
var _useTreeViewId2 = require("../../corePlugins/useTreeViewId");
|
|
16
|
+
var _itemPlugin = require("./itemPlugin");
|
|
23
17
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
24
18
|
const useTreeViewJSXItems = ({
|
|
25
19
|
instance,
|
|
@@ -86,70 +80,7 @@ const useTreeViewJSXItems = ({
|
|
|
86
80
|
};
|
|
87
81
|
};
|
|
88
82
|
exports.useTreeViewJSXItems = useTreeViewJSXItems;
|
|
89
|
-
|
|
90
|
-
props,
|
|
91
|
-
rootRef,
|
|
92
|
-
contentRef
|
|
93
|
-
}) => {
|
|
94
|
-
const {
|
|
95
|
-
instance,
|
|
96
|
-
store
|
|
97
|
-
} = (0, _TreeViewProvider.useTreeViewContext)();
|
|
98
|
-
const {
|
|
99
|
-
children,
|
|
100
|
-
disabled = false,
|
|
101
|
-
label,
|
|
102
|
-
itemId,
|
|
103
|
-
id
|
|
104
|
-
} = props;
|
|
105
|
-
const parentContext = React.useContext(_TreeViewChildrenItemProvider.TreeViewChildrenItemContext);
|
|
106
|
-
if (parentContext == null) {
|
|
107
|
-
throw new Error(['MUI X: Could not find the Tree View Children Item context.', 'It looks like you rendered your component outside of a SimpleTreeView parent component.', 'This can also happen if you are bundling multiple versions of the Tree View.'].join('\n'));
|
|
108
|
-
}
|
|
109
|
-
const {
|
|
110
|
-
registerChild,
|
|
111
|
-
unregisterChild,
|
|
112
|
-
parentId
|
|
113
|
-
} = parentContext;
|
|
114
|
-
const expandable = (0, _useTreeItemUtils.itemHasChildren)(children);
|
|
115
|
-
const pluginContentRef = React.useRef(null);
|
|
116
|
-
const handleContentRef = (0, _useMergedRefs.useMergedRefs)(pluginContentRef, contentRef);
|
|
117
|
-
const treeId = (0, _store.useStore)(store, _useTreeViewId2.idSelectors.treeId);
|
|
118
|
-
|
|
119
|
-
// Prevent any flashing
|
|
120
|
-
(0, _useIsoLayoutEffect.useIsoLayoutEffect)(() => {
|
|
121
|
-
const idAttribute = (0, _useTreeViewId.generateTreeItemIdAttribute)({
|
|
122
|
-
itemId,
|
|
123
|
-
treeId,
|
|
124
|
-
id
|
|
125
|
-
});
|
|
126
|
-
registerChild(idAttribute, itemId);
|
|
127
|
-
return () => {
|
|
128
|
-
unregisterChild(idAttribute);
|
|
129
|
-
unregisterChild(idAttribute);
|
|
130
|
-
};
|
|
131
|
-
}, [store, instance, registerChild, unregisterChild, itemId, id, treeId]);
|
|
132
|
-
(0, _useIsoLayoutEffect.useIsoLayoutEffect)(() => {
|
|
133
|
-
return instance.insertJSXItem({
|
|
134
|
-
id: itemId,
|
|
135
|
-
idAttribute: id,
|
|
136
|
-
parentId,
|
|
137
|
-
expandable,
|
|
138
|
-
disabled
|
|
139
|
-
});
|
|
140
|
-
}, [instance, parentId, itemId, expandable, disabled, id]);
|
|
141
|
-
React.useEffect(() => {
|
|
142
|
-
if (label) {
|
|
143
|
-
return instance.mapLabelFromJSX(itemId, (pluginContentRef.current?.textContent ?? '').toLowerCase());
|
|
144
|
-
}
|
|
145
|
-
return undefined;
|
|
146
|
-
}, [instance, itemId, label]);
|
|
147
|
-
return {
|
|
148
|
-
contentRef: handleContentRef,
|
|
149
|
-
rootRef
|
|
150
|
-
};
|
|
151
|
-
};
|
|
152
|
-
useTreeViewJSXItems.itemPlugin = useTreeViewJSXItemsItemPlugin;
|
|
83
|
+
useTreeViewJSXItems.itemPlugin = _itemPlugin.useTreeViewJSXItemsItemPlugin;
|
|
153
84
|
useTreeViewJSXItems.wrapItem = ({
|
|
154
85
|
children,
|
|
155
86
|
itemId,
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { TreeViewItemPlugin } from "../../models/index.js";
|
|
2
|
+
import { TreeItemLabelInputProps } from "../../../TreeItemLabelInput/index.js";
|
|
3
|
+
export declare const useTreeViewLabelItemPlugin: TreeViewItemPlugin;
|
|
4
|
+
export interface UseTreeItemLabelInputSlotPropsFromLabelEditing extends TreeItemLabelInputProps {}
|
|
5
|
+
export interface UseTreeItemLabelSlotPropsFromLabelEditing {
|
|
6
|
+
editable?: boolean;
|
|
7
|
+
}
|
|
8
|
+
declare module '@mui/x-tree-view/useTreeItem' {
|
|
9
|
+
interface UseTreeItemLabelInputSlotOwnProps extends UseTreeItemLabelInputSlotPropsFromLabelEditing {}
|
|
10
|
+
interface UseTreeItemLabelSlotOwnProps extends UseTreeItemLabelSlotPropsFromLabelEditing {}
|
|
11
|
+
}
|
|
@@ -7,15 +7,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.useTreeViewLabel = void 0;
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var _useIsoLayoutEffect = require("@base-ui-components/utils/useIsoLayoutEffect");
|
|
10
|
-
var
|
|
11
|
-
var
|
|
10
|
+
var _itemPlugin = require("./itemPlugin");
|
|
11
|
+
var _useTreeViewLabel = require("./useTreeViewLabel.selectors");
|
|
12
12
|
const useTreeViewLabel = ({
|
|
13
13
|
store,
|
|
14
14
|
params
|
|
15
15
|
}) => {
|
|
16
16
|
const setEditedItem = editedItemId => {
|
|
17
17
|
if (editedItemId !== null) {
|
|
18
|
-
const isEditable =
|
|
18
|
+
const isEditable = _useTreeViewLabel.labelSelectors.isItemEditable(store.state, editedItemId);
|
|
19
19
|
if (!isEditable) {
|
|
20
20
|
return;
|
|
21
21
|
}
|
|
@@ -60,7 +60,7 @@ const useTreeViewLabel = ({
|
|
|
60
60
|
};
|
|
61
61
|
};
|
|
62
62
|
exports.useTreeViewLabel = useTreeViewLabel;
|
|
63
|
-
useTreeViewLabel.itemPlugin =
|
|
63
|
+
useTreeViewLabel.itemPlugin = _itemPlugin.useTreeViewLabelItemPlugin;
|
|
64
64
|
useTreeViewLabel.applyDefaultValuesToParams = ({
|
|
65
65
|
params
|
|
66
66
|
}) => (0, _extends2.default)({}, params, {
|
|
@@ -2,7 +2,6 @@ import { DefaultizedProps } from '@mui/x-internals/types';
|
|
|
2
2
|
import { TreeViewPluginSignature } from "../../models/index.js";
|
|
3
3
|
import { TreeViewItemId } from "../../../models/index.js";
|
|
4
4
|
import { UseTreeViewItemsSignature } from "../useTreeViewItems/index.js";
|
|
5
|
-
import { TreeItemLabelInputProps } from "../../../TreeItemLabelInput/index.js";
|
|
6
5
|
export interface UseTreeViewLabelPublicAPI {
|
|
7
6
|
/**
|
|
8
7
|
* Used to update the label of an item.
|
|
@@ -38,7 +37,7 @@ export type UseTreeViewLabelParametersWithDefaults<R extends {}> = DefaultizedPr
|
|
|
38
37
|
export interface UseTreeViewLabelState {
|
|
39
38
|
label: {
|
|
40
39
|
isItemEditable: ((item: any) => boolean) | boolean;
|
|
41
|
-
editedItemId:
|
|
40
|
+
editedItemId: TreeViewItemId | null;
|
|
42
41
|
};
|
|
43
42
|
}
|
|
44
43
|
export type UseTreeViewLabelSignature = TreeViewPluginSignature<{
|
|
@@ -48,12 +47,4 @@ export type UseTreeViewLabelSignature = TreeViewPluginSignature<{
|
|
|
48
47
|
instance: UseTreeViewLabelInstance;
|
|
49
48
|
state: UseTreeViewLabelState;
|
|
50
49
|
dependencies: [UseTreeViewItemsSignature];
|
|
51
|
-
}>;
|
|
52
|
-
export interface UseTreeItemLabelInputSlotPropsFromLabelEditing extends TreeItemLabelInputProps {}
|
|
53
|
-
export interface UseTreeItemLabelSlotPropsFromLabelEditing {
|
|
54
|
-
editable?: boolean;
|
|
55
|
-
}
|
|
56
|
-
declare module '@mui/x-tree-view/useTreeItem' {
|
|
57
|
-
interface UseTreeItemLabelInputSlotOwnProps extends UseTreeItemLabelInputSlotPropsFromLabelEditing {}
|
|
58
|
-
interface UseTreeItemLabelSlotOwnProps extends UseTreeItemLabelSlotPropsFromLabelEditing {}
|
|
59
|
-
}
|
|
50
|
+
}>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { TreeViewCancellableEventHandler } from "../../../models/index.js";
|
|
3
|
+
import { TreeViewItemPlugin } from "../../models/index.js";
|
|
4
|
+
export declare const useTreeViewSelectionItemPlugin: TreeViewItemPlugin;
|
|
5
|
+
interface UseTreeItemRootSlotPropsFromSelection {
|
|
6
|
+
'aria-checked': React.AriaAttributes['aria-checked'];
|
|
7
|
+
}
|
|
8
|
+
interface UseTreeItemCheckboxSlotPropsFromSelection {
|
|
9
|
+
visible?: boolean;
|
|
10
|
+
checked?: boolean;
|
|
11
|
+
indeterminate?: boolean;
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
tabIndex?: -1;
|
|
14
|
+
onChange?: TreeViewCancellableEventHandler<React.ChangeEvent<HTMLInputElement>>;
|
|
15
|
+
}
|
|
16
|
+
declare module '@mui/x-tree-view/useTreeItem' {
|
|
17
|
+
interface UseTreeItemRootSlotOwnProps extends UseTreeItemRootSlotPropsFromSelection {}
|
|
18
|
+
interface UseTreeItemCheckboxSlotOwnProps extends UseTreeItemCheckboxSlotPropsFromSelection {}
|
|
19
|
+
}
|
|
20
|
+
export {};
|
|
@@ -13,7 +13,7 @@ var _useIsoLayoutEffect = require("@base-ui-components/utils/useIsoLayoutEffect"
|
|
|
13
13
|
var _tree = require("../../utils/tree");
|
|
14
14
|
var _useTreeViewSelection = require("./useTreeViewSelection.utils");
|
|
15
15
|
var _useTreeViewSelection2 = require("./useTreeViewSelection.selectors");
|
|
16
|
-
var
|
|
16
|
+
var _itemPlugin = require("./itemPlugin");
|
|
17
17
|
const useTreeViewSelection = ({
|
|
18
18
|
store,
|
|
19
19
|
params
|
|
@@ -206,7 +206,7 @@ const useTreeViewSelection = ({
|
|
|
206
206
|
};
|
|
207
207
|
};
|
|
208
208
|
exports.useTreeViewSelection = useTreeViewSelection;
|
|
209
|
-
useTreeViewSelection.itemPlugin =
|
|
209
|
+
useTreeViewSelection.itemPlugin = _itemPlugin.useTreeViewSelectionItemPlugin;
|
|
210
210
|
const DEFAULT_SELECTED_ITEMS = [];
|
|
211
211
|
const EMPTY_SELECTION_PROPAGATION = {};
|
|
212
212
|
useTreeViewSelection.applyDefaultValuesToParams = ({
|
|
@@ -3,18 +3,18 @@ import type { DefaultizedProps } from '@mui/x-internals/types';
|
|
|
3
3
|
import type { TreeViewPluginSignature } from "../../models/index.js";
|
|
4
4
|
import { UseTreeViewItemsSignature } from "../useTreeViewItems/index.js";
|
|
5
5
|
import { UseTreeViewExpansionSignature } from "../useTreeViewExpansion/index.js";
|
|
6
|
-
import { TreeViewSelectionPropagation,
|
|
6
|
+
import { TreeViewSelectionPropagation, TreeViewItemId } from "../../../models/index.js";
|
|
7
7
|
export interface UseTreeViewSelectionPublicAPI {
|
|
8
8
|
/**
|
|
9
9
|
* Select or deselect an item.
|
|
10
10
|
* @param {object} parameters The parameters of the method.
|
|
11
|
-
* @param {
|
|
11
|
+
* @param {TreeViewItemId} parameters.itemId The id of the item to select or deselect.
|
|
12
12
|
* @param {React.SyntheticEvent} parameters.event The DOM event that triggered the change.
|
|
13
13
|
* @param {boolean} parameters.keepExistingSelection If `true`, the other already selected items will remain selected, otherwise, they will be deselected. This parameter is only relevant when `multiSelect` is `true`
|
|
14
14
|
* @param {boolean | undefined} parameters.shouldBeSelected If `true` the item will be selected. If `false` the item will be deselected. If not defined, the item's selection status will be toggled.
|
|
15
15
|
*/
|
|
16
16
|
setItemSelection: (parameters: {
|
|
17
|
-
itemId:
|
|
17
|
+
itemId: TreeViewItemId;
|
|
18
18
|
event?: React.SyntheticEvent;
|
|
19
19
|
shouldBeSelected?: boolean;
|
|
20
20
|
keepExistingSelection?: boolean;
|
|
@@ -29,33 +29,33 @@ export interface UseTreeViewSelectionInstance extends UseTreeViewSelectionPublic
|
|
|
29
29
|
/**
|
|
30
30
|
* Expand the current selection range up to the given item.
|
|
31
31
|
* @param {React.SyntheticEvent} event The DOM event that triggered the change.
|
|
32
|
-
* @param {
|
|
32
|
+
* @param {TreeViewItemId} itemId The id of the item to expand the selection to.
|
|
33
33
|
*/
|
|
34
|
-
expandSelectionRange: (event: React.SyntheticEvent, itemId:
|
|
34
|
+
expandSelectionRange: (event: React.SyntheticEvent, itemId: TreeViewItemId) => void;
|
|
35
35
|
/**
|
|
36
36
|
* Expand the current selection range from the first navigable item to the given item.
|
|
37
37
|
* @param {React.SyntheticEvent} event The DOM event that triggered the change.
|
|
38
|
-
* @param {
|
|
38
|
+
* @param {TreeViewItemId} itemId The id of the item up to which the selection range should be expanded.
|
|
39
39
|
*/
|
|
40
|
-
selectRangeFromStartToItem: (event: React.SyntheticEvent, itemId:
|
|
40
|
+
selectRangeFromStartToItem: (event: React.SyntheticEvent, itemId: TreeViewItemId) => void;
|
|
41
41
|
/**
|
|
42
42
|
* Expand the current selection range from the given item to the last navigable item.
|
|
43
43
|
* @param {React.SyntheticEvent} event The DOM event that triggered the change.
|
|
44
|
-
* @param {
|
|
44
|
+
* @param {TreeViewItemId} itemId The id of the item from which the selection range should be expanded.
|
|
45
45
|
*/
|
|
46
|
-
selectRangeFromItemToEnd: (event: React.SyntheticEvent, itemId:
|
|
46
|
+
selectRangeFromItemToEnd: (event: React.SyntheticEvent, itemId: TreeViewItemId) => void;
|
|
47
47
|
/**
|
|
48
48
|
* Update the selection when navigating with ArrowUp / ArrowDown keys.
|
|
49
49
|
* @param {React.SyntheticEvent} event The DOM event that triggered the change.
|
|
50
|
-
* @param {
|
|
51
|
-
* @param {
|
|
50
|
+
* @param {TreeViewItemId} currentItemId The id of the active item before the keyboard navigation.
|
|
51
|
+
* @param {TreeViewItemId} nextItemId The id of the active item after the keyboard navigation.
|
|
52
52
|
*/
|
|
53
|
-
selectItemFromArrowNavigation: (event: React.SyntheticEvent, currentItemId:
|
|
53
|
+
selectItemFromArrowNavigation: (event: React.SyntheticEvent, currentItemId: TreeViewItemId, nextItemId: TreeViewItemId) => void;
|
|
54
54
|
}
|
|
55
|
-
export type TreeViewSelectionValue<Multiple extends boolean | undefined> = Multiple extends true ?
|
|
55
|
+
export type TreeViewSelectionValue<Multiple extends boolean | undefined> = Multiple extends true ? TreeViewItemId[] : TreeViewItemId | null;
|
|
56
56
|
export interface UseTreeViewSelectionParameters<Multiple extends boolean | undefined> {
|
|
57
57
|
/**
|
|
58
|
-
*
|
|
58
|
+
* Whether selection is disabled.
|
|
59
59
|
* @default false
|
|
60
60
|
*/
|
|
61
61
|
disableSelection?: boolean;
|
|
@@ -71,12 +71,12 @@ export interface UseTreeViewSelectionParameters<Multiple extends boolean | undef
|
|
|
71
71
|
*/
|
|
72
72
|
selectedItems?: TreeViewSelectionValue<Multiple>;
|
|
73
73
|
/**
|
|
74
|
-
*
|
|
74
|
+
* Whether multiple items can be selected.
|
|
75
75
|
* @default false
|
|
76
76
|
*/
|
|
77
77
|
multiSelect?: Multiple;
|
|
78
78
|
/**
|
|
79
|
-
*
|
|
79
|
+
* Whether the Tree View renders a checkbox at the left of its label that allows selecting it.
|
|
80
80
|
* @default false
|
|
81
81
|
*/
|
|
82
82
|
checkboxSelection?: boolean;
|
|
@@ -100,17 +100,17 @@ export interface UseTreeViewSelectionParameters<Multiple extends boolean | undef
|
|
|
100
100
|
/**
|
|
101
101
|
* Callback fired when Tree Items are selected/deselected.
|
|
102
102
|
* @param {React.SyntheticEvent} event The DOM event that triggered the change. Can be null when the change is caused by the `publicAPI.setItemSelection()` method.
|
|
103
|
-
* @param {
|
|
103
|
+
* @param {TreeViewItemId[] | TreeViewItemId} itemIds The ids of the selected items.
|
|
104
104
|
* When `multiSelect` is `true`, this is an array of strings; when false (default) a string.
|
|
105
105
|
*/
|
|
106
106
|
onSelectedItemsChange?: (event: React.SyntheticEvent | null, itemIds: TreeViewSelectionValue<Multiple>) => void;
|
|
107
107
|
/**
|
|
108
108
|
* Callback fired when a Tree Item is selected or deselected.
|
|
109
109
|
* @param {React.SyntheticEvent} event The DOM event that triggered the change. Can be null when the change is caused by the `publicAPI.setItemSelection()` method.
|
|
110
|
-
* @param {
|
|
110
|
+
* @param {TreeViewItemId} itemId The itemId of the modified item.
|
|
111
111
|
* @param {boolean} isSelected `true` if the item has just been selected, `false` if it has just been deselected.
|
|
112
112
|
*/
|
|
113
|
-
onItemSelectionToggle?: (event: React.SyntheticEvent | null, itemId:
|
|
113
|
+
onItemSelectionToggle?: (event: React.SyntheticEvent | null, itemId: TreeViewItemId, isSelected: boolean) => void;
|
|
114
114
|
}
|
|
115
115
|
export type UseTreeViewSelectionParametersWithDefaults<Multiple extends boolean> = DefaultizedProps<UseTreeViewSelectionParameters<Multiple>, 'disableSelection' | 'defaultSelectedItems' | 'multiSelect' | 'checkboxSelection' | 'selectionPropagation'>;
|
|
116
116
|
export interface UseTreeViewSelectionState {
|
|
@@ -129,19 +129,4 @@ export type UseTreeViewSelectionSignature = TreeViewPluginSignature<{
|
|
|
129
129
|
publicAPI: UseTreeViewSelectionPublicAPI;
|
|
130
130
|
state: UseTreeViewSelectionState;
|
|
131
131
|
dependencies: [UseTreeViewItemsSignature, UseTreeViewExpansionSignature, UseTreeViewItemsSignature];
|
|
132
|
-
}>;
|
|
133
|
-
export interface UseTreeItemRootSlotPropsFromSelection {
|
|
134
|
-
'aria-checked': React.AriaAttributes['aria-checked'];
|
|
135
|
-
}
|
|
136
|
-
export interface UseTreeItemCheckboxSlotPropsFromSelection {
|
|
137
|
-
visible?: boolean;
|
|
138
|
-
checked?: boolean;
|
|
139
|
-
indeterminate?: boolean;
|
|
140
|
-
disabled?: boolean;
|
|
141
|
-
tabIndex?: -1;
|
|
142
|
-
onChange?: TreeViewCancellableEventHandler<React.ChangeEvent<HTMLInputElement>>;
|
|
143
|
-
}
|
|
144
|
-
declare module '@mui/x-tree-view/useTreeItem' {
|
|
145
|
-
interface UseTreeItemRootSlotOwnProps extends UseTreeItemRootSlotPropsFromSelection {}
|
|
146
|
-
interface UseTreeItemCheckboxSlotOwnProps extends UseTreeItemCheckboxSlotPropsFromSelection {}
|
|
147
|
-
}
|
|
132
|
+
}>;
|
package/models/items.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export type TreeViewItemId = string;
|
|
|
2
2
|
export type TreeViewDefaultItemModelProperties = {
|
|
3
3
|
id: string;
|
|
4
4
|
label: string;
|
|
5
|
+
children?: TreeViewDefaultItemModelProperties[];
|
|
5
6
|
};
|
|
6
7
|
export type TreeViewBaseItem<R extends {} = TreeViewDefaultItemModelProperties> = R & {
|
|
7
8
|
children?: TreeViewBaseItem<R>[];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mui/x-tree-view",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.18.0",
|
|
4
4
|
"author": "MUI Team",
|
|
5
5
|
"description": "The community edition of the MUI X Tree View components.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -33,12 +33,12 @@
|
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@babel/runtime": "^7.28.4",
|
|
35
35
|
"@base-ui-components/utils": "0.1.2",
|
|
36
|
-
"@mui/utils": "^7.3.
|
|
36
|
+
"@mui/utils": "^7.3.5",
|
|
37
37
|
"@types/react-transition-group": "^4.4.12",
|
|
38
38
|
"clsx": "^2.1.1",
|
|
39
39
|
"prop-types": "^15.8.1",
|
|
40
40
|
"react-transition-group": "^4.4.5",
|
|
41
|
-
"@mui/x-internals": "8.
|
|
41
|
+
"@mui/x-internals": "8.18.0"
|
|
42
42
|
},
|
|
43
43
|
"peerDependencies": {
|
|
44
44
|
"@emotion/react": "^11.9.0",
|
/package/esm/internals/plugins/useTreeViewLabel/{useTreeViewLabel.itemPlugin.js → itemPlugin.js}
RENAMED
|
File without changes
|
|
File without changes
|
/package/internals/plugins/useTreeViewLabel/{useTreeViewLabel.itemPlugin.js → itemPlugin.js}
RENAMED
|
File without changes
|
/package/internals/plugins/useTreeViewSelection/{useTreeViewSelection.itemPlugin.js → itemPlugin.js}
RENAMED
|
File without changes
|