@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.
Files changed (28) hide show
  1. package/CHANGELOG.md +479 -0
  2. package/README.md +1 -1
  3. package/hooks/useTreeItemUtils/useTreeItemUtils.d.ts +4 -4
  4. package/index.js +1 -1
  5. package/internals/models/plugin.d.ts +1 -1
  6. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +23 -24
  7. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.d.ts +66 -10
  8. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js +8 -1
  9. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +1 -5
  10. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.d.ts +3 -0
  11. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.js +12 -0
  12. package/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.d.ts +252 -84
  13. package/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +26 -8
  14. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +13 -16
  15. package/modern/index.js +1 -1
  16. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +23 -24
  17. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js +8 -1
  18. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.js +12 -0
  19. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +13 -16
  20. package/modern/useTreeItem/useTreeItem.js +3 -5
  21. package/node/index.js +1 -1
  22. package/node/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +22 -24
  23. package/node/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js +9 -2
  24. package/node/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.js +15 -2
  25. package/node/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +13 -16
  26. package/node/useTreeItem/useTreeItem.js +3 -5
  27. package/package.json +4 -4
  28. 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: import("../useTreeViewItems/useTreeViewItems.types").TreeViewItemMetaLookup, resultFuncArgs_1: string | null) => import("../..").TreeViewItemMeta | null;
56
- memoizedResultFunc: ((resultFuncArgs_0: import("../useTreeViewItems/useTreeViewItems.types").TreeViewItemMetaLookup, resultFuncArgs_1: string | null) => import("../..").TreeViewItemMeta | null) & {
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
- }) => import("../useTreeViewItems/useTreeViewItems.types").TreeViewItemMetaLookup) & {
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: import("../useTreeViewItems/useTreeViewItems.types").TreeViewItemModelLookup<import("../../..").TreeViewDefaultItemModelProperties>;
72
- itemMetaLookup: import("../useTreeViewItems/useTreeViewItems.types").TreeViewItemMetaLookup;
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
- }) => import("../useTreeViewItems/useTreeViewItems.types").TreeViewItemMetaLookup;
93
+ }) => {
94
+ [itemId: string]: import("../..").TreeViewItemMeta;
95
+ };
82
96
  memoizedResultFunc: ((resultFuncArgs_0: {
83
97
  disabledItemsFocusable: boolean;
84
- itemModelLookup: import("../useTreeViewItems/useTreeViewItems.types").TreeViewItemModelLookup<import("../../..").TreeViewDefaultItemModelProperties>;
85
- itemMetaLookup: import("../useTreeViewItems/useTreeViewItems.types").TreeViewItemMetaLookup;
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
- }) => import("../useTreeViewItems/useTreeViewItems.types").TreeViewItemMetaLookup) & {
112
+ }) => {
113
+ [itemId: string]: import("../..").TreeViewItemMeta;
114
+ }) & {
95
115
  clearCache: () => void;
96
116
  resultsCount: () => number;
97
117
  resetResultsCount: () => void;
98
118
  };
99
- lastResult: () => import("../useTreeViewItems/useTreeViewItems.types").TreeViewItemMetaLookup;
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
  };