@mui/x-tree-view 8.0.0-alpha.2 → 8.0.0-alpha.5
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 +479 -0
- package/README.md +1 -1
- package/hooks/useTreeItemUtils/useTreeItemUtils.d.ts +4 -4
- package/index.js +1 -1
- package/internals/models/plugin.d.ts +1 -1
- 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/useTreeViewItems/useTreeViewItems.selectors.d.ts +252 -84
- package/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +26 -8
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +13 -16
- package/modern/index.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/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +13 -16
- package/modern/useTreeItem/useTreeItem.js +3 -5
- package/node/index.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/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +13 -16
- package/node/useTreeItem/useTreeItem.js +3 -5
- package/package.json +4 -4
- package/useTreeItem/useTreeItem.js +3 -5
|
@@ -12,9 +12,11 @@ export declare const selectorIsItemExpanded: ((state: any, itemId: string) => bo
|
|
|
12
12
|
} & {
|
|
13
13
|
resultFunc: (resultFuncArgs_0: {
|
|
14
14
|
expandedItemsMap: Map<string, true>;
|
|
15
|
+
expansionTrigger: "content" | "iconContainer";
|
|
15
16
|
}, resultFuncArgs_1: string) => boolean;
|
|
16
17
|
memoizedResultFunc: ((resultFuncArgs_0: {
|
|
17
18
|
expandedItemsMap: Map<string, true>;
|
|
19
|
+
expansionTrigger: "content" | "iconContainer";
|
|
18
20
|
}, resultFuncArgs_1: string) => boolean) & {
|
|
19
21
|
clearCache: () => void;
|
|
20
22
|
resultsCount: () => number;
|
|
@@ -52,8 +54,12 @@ export declare const selectorIsItemExpandable: ((state: any, itemId: string | nu
|
|
|
52
54
|
resultsCount: () => number;
|
|
53
55
|
resetResultsCount: () => void;
|
|
54
56
|
} & {
|
|
55
|
-
resultFunc: (resultFuncArgs_0:
|
|
56
|
-
|
|
57
|
+
resultFunc: (resultFuncArgs_0: {
|
|
58
|
+
[itemId: string]: import("../..").TreeViewItemMeta;
|
|
59
|
+
}, resultFuncArgs_1: string | null) => import("../..").TreeViewItemMeta | null;
|
|
60
|
+
memoizedResultFunc: ((resultFuncArgs_0: {
|
|
61
|
+
[itemId: string]: import("../..").TreeViewItemMeta;
|
|
62
|
+
}, resultFuncArgs_1: string | null) => import("../..").TreeViewItemMeta | null) & {
|
|
57
63
|
clearCache: () => void;
|
|
58
64
|
resultsCount: () => number;
|
|
59
65
|
resetResultsCount: () => void;
|
|
@@ -61,15 +67,21 @@ export declare const selectorIsItemExpandable: ((state: any, itemId: string | nu
|
|
|
61
67
|
lastResult: () => import("../..").TreeViewItemMeta | null;
|
|
62
68
|
dependencies: [((state: import("../../corePlugins/useTreeViewId/useTreeViewId.types").UseTreeViewIdState & import("../useTreeViewItems").UseTreeViewItemsState<import("../../..").TreeViewDefaultItemModelProperties> & Partial<{}> & {
|
|
63
69
|
cacheKey: import("../../models").TreeViewStateCacheKey;
|
|
64
|
-
}) =>
|
|
70
|
+
}) => {
|
|
71
|
+
[itemId: string]: import("../..").TreeViewItemMeta;
|
|
72
|
+
}) & {
|
|
65
73
|
clearCache: () => void;
|
|
66
74
|
resultsCount: () => number;
|
|
67
75
|
resetResultsCount: () => void;
|
|
68
76
|
} & {
|
|
69
77
|
resultFunc: (resultFuncArgs_0: {
|
|
70
78
|
disabledItemsFocusable: boolean;
|
|
71
|
-
itemModelLookup:
|
|
72
|
-
|
|
79
|
+
itemModelLookup: {
|
|
80
|
+
[itemId: string]: import("../../..").TreeViewBaseItem<import("../../..").TreeViewDefaultItemModelProperties>;
|
|
81
|
+
};
|
|
82
|
+
itemMetaLookup: {
|
|
83
|
+
[itemId: string]: import("../..").TreeViewItemMeta;
|
|
84
|
+
};
|
|
73
85
|
itemOrderedChildrenIdsLookup: {
|
|
74
86
|
[parentItemId: string]: string[];
|
|
75
87
|
};
|
|
@@ -78,11 +90,17 @@ export declare const selectorIsItemExpandable: ((state: any, itemId: string | nu
|
|
|
78
90
|
[itemId: string]: number;
|
|
79
91
|
};
|
|
80
92
|
};
|
|
81
|
-
}) =>
|
|
93
|
+
}) => {
|
|
94
|
+
[itemId: string]: import("../..").TreeViewItemMeta;
|
|
95
|
+
};
|
|
82
96
|
memoizedResultFunc: ((resultFuncArgs_0: {
|
|
83
97
|
disabledItemsFocusable: boolean;
|
|
84
|
-
itemModelLookup:
|
|
85
|
-
|
|
98
|
+
itemModelLookup: {
|
|
99
|
+
[itemId: string]: import("../../..").TreeViewBaseItem<import("../../..").TreeViewDefaultItemModelProperties>;
|
|
100
|
+
};
|
|
101
|
+
itemMetaLookup: {
|
|
102
|
+
[itemId: string]: import("../..").TreeViewItemMeta;
|
|
103
|
+
};
|
|
86
104
|
itemOrderedChildrenIdsLookup: {
|
|
87
105
|
[parentItemId: string]: string[];
|
|
88
106
|
};
|
|
@@ -91,12 +109,16 @@ export declare const selectorIsItemExpandable: ((state: any, itemId: string | nu
|
|
|
91
109
|
[itemId: string]: number;
|
|
92
110
|
};
|
|
93
111
|
};
|
|
94
|
-
}) =>
|
|
112
|
+
}) => {
|
|
113
|
+
[itemId: string]: import("../..").TreeViewItemMeta;
|
|
114
|
+
}) & {
|
|
95
115
|
clearCache: () => void;
|
|
96
116
|
resultsCount: () => number;
|
|
97
117
|
resetResultsCount: () => void;
|
|
98
118
|
};
|
|
99
|
-
lastResult: () =>
|
|
119
|
+
lastResult: () => {
|
|
120
|
+
[itemId: string]: import("../..").TreeViewItemMeta;
|
|
121
|
+
};
|
|
100
122
|
dependencies: [TreeViewRootSelector<import("../useTreeViewItems").UseTreeViewItemsSignature>];
|
|
101
123
|
recomputations: () => number;
|
|
102
124
|
resetRecomputations: () => void;
|
|
@@ -122,3 +144,37 @@ export declare const selectorIsItemExpandable: ((state: any, itemId: string | nu
|
|
|
122
144
|
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
123
145
|
memoize: typeof import("reselect").weakMapMemoize;
|
|
124
146
|
};
|
|
147
|
+
/**
|
|
148
|
+
* Get the slot that triggers the item's expansion when clicked.
|
|
149
|
+
* @param {TreeViewState<[UseTreeViewExpansionSignature]>} state The state of the tree view.
|
|
150
|
+
* @returns {'content' | 'iconContainer'} The slot that triggers the item's expansion when clicked. Is `null` if the item is not expandable.
|
|
151
|
+
*/
|
|
152
|
+
export declare const selectorItemExpansionTrigger: ((state: import("../../corePlugins/useTreeViewId/useTreeViewId.types").UseTreeViewIdState & import("./useTreeViewExpansion.types").UseTreeViewExpansionState & Partial<{}> & {
|
|
153
|
+
cacheKey: import("../../models").TreeViewStateCacheKey;
|
|
154
|
+
}) => "content" | "iconContainer") & {
|
|
155
|
+
clearCache: () => void;
|
|
156
|
+
resultsCount: () => number;
|
|
157
|
+
resetResultsCount: () => void;
|
|
158
|
+
} & {
|
|
159
|
+
resultFunc: (resultFuncArgs_0: {
|
|
160
|
+
expandedItemsMap: Map<string, true>;
|
|
161
|
+
expansionTrigger: "content" | "iconContainer";
|
|
162
|
+
}) => "content" | "iconContainer";
|
|
163
|
+
memoizedResultFunc: ((resultFuncArgs_0: {
|
|
164
|
+
expandedItemsMap: Map<string, true>;
|
|
165
|
+
expansionTrigger: "content" | "iconContainer";
|
|
166
|
+
}) => "content" | "iconContainer") & {
|
|
167
|
+
clearCache: () => void;
|
|
168
|
+
resultsCount: () => number;
|
|
169
|
+
resetResultsCount: () => void;
|
|
170
|
+
};
|
|
171
|
+
lastResult: () => "content" | "iconContainer";
|
|
172
|
+
dependencies: [TreeViewRootSelector<UseTreeViewExpansionSignature>];
|
|
173
|
+
recomputations: () => number;
|
|
174
|
+
resetRecomputations: () => void;
|
|
175
|
+
dependencyRecomputations: () => number;
|
|
176
|
+
resetDependencyRecomputations: () => void;
|
|
177
|
+
} & {
|
|
178
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
179
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
180
|
+
};
|
|
@@ -14,4 +14,11 @@ export const selectorIsItemExpanded = createSelector([selectorExpansion, (_, ite
|
|
|
14
14
|
* @param {TreeViewState<[UseTreeViewItemsSignature]>} state The state of the tree view.
|
|
15
15
|
* @returns {boolean} `true` if the item is expandable, `false` otherwise.
|
|
16
16
|
*/
|
|
17
|
-
export const selectorIsItemExpandable = createSelector([selectorItemMeta], itemMeta => itemMeta?.expandable ?? false);
|
|
17
|
+
export const selectorIsItemExpandable = createSelector([selectorItemMeta], itemMeta => itemMeta?.expandable ?? false);
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Get the slot that triggers the item's expansion when clicked.
|
|
21
|
+
* @param {TreeViewState<[UseTreeViewExpansionSignature]>} state The state of the tree view.
|
|
22
|
+
* @returns {'content' | 'iconContainer'} The slot that triggers the item's expansion when clicked. Is `null` if the item is not expandable.
|
|
23
|
+
*/
|
|
24
|
+
export const selectorItemExpansionTrigger = createSelector([selectorExpansion], expansionState => expansionState.expansionTrigger);
|
|
@@ -63,11 +63,9 @@ export type UseTreeViewExpansionDefaultizedParameters = DefaultizedProps<UseTree
|
|
|
63
63
|
export interface UseTreeViewExpansionState {
|
|
64
64
|
expansion: {
|
|
65
65
|
expandedItemsMap: Map<string, true>;
|
|
66
|
+
expansionTrigger: 'content' | 'iconContainer';
|
|
66
67
|
};
|
|
67
68
|
}
|
|
68
|
-
interface UseTreeViewExpansionContextValue {
|
|
69
|
-
expansion: Pick<UseTreeViewExpansionParameters, 'expansionTrigger'>;
|
|
70
|
-
}
|
|
71
69
|
export type UseTreeViewExpansionSignature = TreeViewPluginSignature<{
|
|
72
70
|
params: UseTreeViewExpansionParameters;
|
|
73
71
|
defaultizedParams: UseTreeViewExpansionDefaultizedParameters;
|
|
@@ -75,8 +73,6 @@ export type UseTreeViewExpansionSignature = TreeViewPluginSignature<{
|
|
|
75
73
|
publicAPI: UseTreeViewExpansionPublicAPI;
|
|
76
74
|
modelNames: 'expandedItems';
|
|
77
75
|
state: UseTreeViewExpansionState;
|
|
78
|
-
contextValue: UseTreeViewExpansionContextValue;
|
|
79
76
|
dependencies: [UseTreeViewItemsSignature];
|
|
80
77
|
optionalDependencies: [UseTreeViewLabelSignature];
|
|
81
78
|
}>;
|
|
82
|
-
export {};
|
|
@@ -1 +1,4 @@
|
|
|
1
|
+
import { TreeViewUsedDefaultizedParams } from '../../models';
|
|
2
|
+
import { UseTreeViewExpansionSignature } from './useTreeViewExpansion.types';
|
|
1
3
|
export declare const createExpandedItemsMap: (expandedItems: string[]) => Map<string, true>;
|
|
4
|
+
export declare const getExpansionTrigger: ({ isItemEditable, expansionTrigger, }: Pick<TreeViewUsedDefaultizedParams<UseTreeViewExpansionSignature>, "isItemEditable" | "expansionTrigger">) => "content" | "iconContainer";
|
|
@@ -4,4 +4,16 @@ export const createExpandedItemsMap = expandedItems => {
|
|
|
4
4
|
expandedItemsMap.set(id, true);
|
|
5
5
|
});
|
|
6
6
|
return expandedItemsMap;
|
|
7
|
+
};
|
|
8
|
+
export const getExpansionTrigger = ({
|
|
9
|
+
isItemEditable,
|
|
10
|
+
expansionTrigger
|
|
11
|
+
}) => {
|
|
12
|
+
if (expansionTrigger) {
|
|
13
|
+
return expansionTrigger;
|
|
14
|
+
}
|
|
15
|
+
if (isItemEditable) {
|
|
16
|
+
return 'iconContainer';
|
|
17
|
+
}
|
|
18
|
+
return 'content';
|
|
7
19
|
};
|