@mui/x-tree-view-pro 8.10.2 → 8.11.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.
Files changed (28) hide show
  1. package/CHANGELOG.md +214 -13
  2. package/RichTreeViewPro/RichTreeViewPro.js +14 -12
  3. package/RichTreeViewPro/RichTreeViewPro.types.d.ts +3 -2
  4. package/RichTreeViewPro/index.d.ts +2 -1
  5. package/esm/RichTreeViewPro/RichTreeViewPro.js +14 -12
  6. package/esm/RichTreeViewPro/RichTreeViewPro.types.d.ts +3 -2
  7. package/esm/RichTreeViewPro/index.d.ts +2 -1
  8. package/esm/index.js +1 -1
  9. package/esm/internals/plugins/useTreeViewItemsReordering/index.d.ts +2 -1
  10. package/esm/internals/plugins/useTreeViewItemsReordering/index.js +2 -1
  11. package/esm/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.itemPlugin.js +6 -5
  12. package/esm/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.js +57 -71
  13. package/esm/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.selectors.d.ts +17 -433
  14. package/esm/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.selectors.js +35 -50
  15. package/esm/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.utils.js +2 -2
  16. package/esm/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.js +82 -78
  17. package/esm/internals/plugins/useTreeViewLazyLoading/utils.js +3 -1
  18. package/index.js +1 -1
  19. package/internals/plugins/useTreeViewItemsReordering/index.d.ts +2 -1
  20. package/internals/plugins/useTreeViewItemsReordering/index.js +8 -1
  21. package/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.itemPlugin.js +4 -3
  22. package/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.js +55 -69
  23. package/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.selectors.d.ts +17 -433
  24. package/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.selectors.js +35 -50
  25. package/internals/plugins/useTreeViewItemsReordering/useTreeViewItemsReordering.utils.js +1 -1
  26. package/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.js +81 -77
  27. package/internals/plugins/useTreeViewLazyLoading/utils.js +3 -1
  28. package/package.json +14 -13
@@ -1,10 +1,10 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
3
  import useEnhancedEffect from '@mui/utils/useEnhancedEffect';
4
- import { selectorIsItemBeingEdited, selectorItemIndex, selectorItemMeta, selectorItemOrderedChildrenIds } from '@mui/x-tree-view/internals';
4
+ import { itemsSelectors, labelSelectors } from '@mui/x-tree-view/internals';
5
5
  import { chooseActionToApply, isAncestor, moveItemInTree } from "./useTreeViewItemsReordering.utils.js";
6
6
  import { useTreeViewItemsReorderingItemPlugin } from "./useTreeViewItemsReordering.itemPlugin.js";
7
- import { selectorCurrentItemReordering } from "./useTreeViewItemsReordering.selectors.js";
7
+ import { itemsReorderingSelectors } from "./useTreeViewItemsReordering.selectors.js";
8
8
  export const useTreeViewItemsReordering = ({
9
9
  params,
10
10
  store
@@ -20,7 +20,7 @@ export const useTreeViewItemsReordering = ({
20
20
  return true;
21
21
  }, [params.itemsReordering, params.isItemReorderable]);
22
22
  const getDroppingTargetValidActions = React.useCallback(itemId => {
23
- const currentReorder = selectorCurrentItemReordering(store.value);
23
+ const currentReorder = itemsReorderingSelectors.currentReorder(store.state);
24
24
  if (!currentReorder) {
25
25
  throw new Error('There is no ongoing reordering.');
26
26
  }
@@ -28,11 +28,11 @@ export const useTreeViewItemsReordering = ({
28
28
  return {};
29
29
  }
30
30
  const canMoveItemToNewPosition = params.canMoveItemToNewPosition;
31
- const targetItemMeta = selectorItemMeta(store.value, itemId);
32
- const targetItemIndex = selectorItemIndex(store.value, targetItemMeta.id);
33
- const draggedItemMeta = selectorItemMeta(store.value, currentReorder.draggedItemId);
34
- const draggedItemIndex = selectorItemIndex(store.value, draggedItemMeta.id);
35
- const isTargetLastSibling = targetItemIndex === selectorItemOrderedChildrenIds(store.value, targetItemMeta.parentId).length - 1;
31
+ const targetItemMeta = itemsSelectors.itemMeta(store.state, itemId);
32
+ const targetItemIndex = itemsSelectors.itemIndex(store.state, targetItemMeta.id);
33
+ const draggedItemMeta = itemsSelectors.itemMeta(store.state, currentReorder.draggedItemId);
34
+ const draggedItemIndex = itemsSelectors.itemIndex(store.state, draggedItemMeta.id);
35
+ const isTargetLastSibling = targetItemIndex === itemsSelectors.itemOrderedChildrenIds(store.state, targetItemMeta.parentId).length - 1;
36
36
  const oldPosition = {
37
37
  parentId: draggedItemMeta.parentId,
38
38
  index: draggedItemIndex
@@ -68,7 +68,7 @@ export const useTreeViewItemsReordering = ({
68
68
  } : null,
69
69
  'move-to-parent': targetItemMeta.parentId == null ? null : {
70
70
  parentId: targetItemMeta.parentId,
71
- index: selectorItemOrderedChildrenIds(store.value, targetItemMeta.parentId).length
71
+ index: itemsSelectors.itemOrderedChildrenIds(store.state, targetItemMeta.parentId).length
72
72
  }
73
73
  };
74
74
  const validActions = {};
@@ -81,64 +81,56 @@ export const useTreeViewItemsReordering = ({
81
81
  return validActions;
82
82
  }, [store, params.canMoveItemToNewPosition]);
83
83
  const startDraggingItem = React.useCallback(itemId => {
84
- store.update(prevState => {
85
- const isItemBeingEditing = selectorIsItemBeingEdited(prevState, itemId);
86
- if (isItemBeingEditing) {
87
- return prevState;
84
+ const isItemBeingEdited = labelSelectors.isItemBeingEdited(store.state, itemId);
85
+ if (isItemBeingEdited) {
86
+ return;
87
+ }
88
+ store.set('itemsReordering', _extends({}, store.state.itemsReordering, {
89
+ currentReorder: {
90
+ targetItemId: itemId,
91
+ draggedItemId: itemId,
92
+ action: null,
93
+ newPosition: null
88
94
  }
89
- return _extends({}, prevState, {
90
- itemsReordering: _extends({}, prevState.itemsReordering, {
91
- currentReorder: {
92
- targetItemId: itemId,
93
- draggedItemId: itemId,
94
- action: null,
95
- newPosition: null
96
- }
97
- })
98
- });
99
- });
95
+ }));
100
96
  }, [store]);
101
97
  const cancelDraggingItem = React.useCallback(() => {
102
- const currentReorder = selectorCurrentItemReordering(store.value);
98
+ const currentReorder = itemsReorderingSelectors.currentReorder(store.state);
103
99
  if (currentReorder == null) {
104
100
  return;
105
101
  }
106
- store.update(prevState => _extends({}, prevState, {
107
- itemsReordering: _extends({}, prevState.itemsReordering, {
108
- currentReorder: null
109
- })
102
+ store.set('itemsReordering', _extends({}, store.state.itemsReordering, {
103
+ currentReorder: null
110
104
  }));
111
105
  }, [store]);
112
106
  const completeDraggingItem = React.useCallback(itemId => {
113
- const currentReorder = selectorCurrentItemReordering(store.value);
107
+ const currentReorder = itemsReorderingSelectors.currentReorder(store.state);
114
108
  if (currentReorder == null || currentReorder.draggedItemId !== itemId) {
115
109
  return;
116
110
  }
117
111
  if (currentReorder.draggedItemId === currentReorder.targetItemId || currentReorder.action == null || currentReorder.newPosition == null) {
118
- store.update(prevState => _extends({}, prevState, {
119
- itemsReordering: _extends({}, prevState.itemsReordering, {
120
- currentReorder: null
121
- })
112
+ store.set('itemsReordering', _extends({}, store.state.itemsReordering, {
113
+ currentReorder: null
122
114
  }));
123
115
  return;
124
116
  }
125
- const draggedItemMeta = selectorItemMeta(store.value, currentReorder.draggedItemId);
117
+ const draggedItemMeta = itemsSelectors.itemMeta(store.state, currentReorder.draggedItemId);
126
118
  const oldPosition = {
127
119
  parentId: draggedItemMeta.parentId,
128
- index: selectorItemIndex(store.value, draggedItemMeta.id)
120
+ index: itemsSelectors.itemIndex(store.state, draggedItemMeta.id)
129
121
  };
130
122
  const newPosition = currentReorder.newPosition;
131
- store.update(prevState => _extends({}, prevState, {
132
- itemsReordering: _extends({}, prevState.itemsReordering, {
123
+ store.update({
124
+ itemsReordering: _extends({}, store.state.itemsReordering, {
133
125
  currentReorder: null
134
126
  }),
135
127
  items: moveItemInTree({
136
128
  itemToMoveId: itemId,
137
129
  newPosition,
138
130
  oldPosition,
139
- prevState: prevState.items
131
+ prevState: store.state.items
140
132
  })
141
- }));
133
+ });
142
134
  const onItemPositionChange = params.onItemPositionChange;
143
135
  onItemPositionChange?.({
144
136
  itemId,
@@ -154,40 +146,34 @@ export const useTreeViewItemsReordering = ({
154
146
  cursorX,
155
147
  contentElement
156
148
  }) => {
157
- store.update(prevState => {
158
- const prevItemReorder = prevState.itemsReordering.currentReorder;
159
- if (prevItemReorder == null || isAncestor(store, itemId, prevItemReorder.draggedItemId)) {
160
- return prevState;
161
- }
162
- const action = chooseActionToApply({
163
- itemChildrenIndentation: params.itemChildrenIndentation,
164
- validActions,
165
- targetHeight,
166
- targetDepth: prevState.items.itemMetaLookup[itemId].depth,
167
- cursorY,
168
- cursorX,
169
- contentElement
170
- });
171
- const newPosition = action == null ? null : validActions[action];
172
- if (prevItemReorder.targetItemId === itemId && prevItemReorder.action === action && prevItemReorder.newPosition?.parentId === newPosition?.parentId && prevItemReorder.newPosition?.index === newPosition?.index) {
173
- return prevState;
174
- }
175
- return _extends({}, prevState, {
176
- itemsReordering: _extends({}, prevState.itemsReordering, {
177
- currentReorder: _extends({}, prevItemReorder, {
178
- targetItemId: itemId,
179
- newPosition,
180
- action
181
- })
182
- })
183
- });
149
+ const prevItemReorder = store.state.itemsReordering.currentReorder;
150
+ if (prevItemReorder == null || isAncestor(store, itemId, prevItemReorder.draggedItemId)) {
151
+ return;
152
+ }
153
+ const action = chooseActionToApply({
154
+ itemChildrenIndentation: params.itemChildrenIndentation,
155
+ validActions,
156
+ targetHeight,
157
+ targetDepth: store.state.items.itemMetaLookup[itemId].depth,
158
+ cursorY,
159
+ cursorX,
160
+ contentElement
184
161
  });
162
+ const newPosition = action == null ? null : validActions[action];
163
+ if (prevItemReorder.targetItemId === itemId && prevItemReorder.action === action && prevItemReorder.newPosition?.parentId === newPosition?.parentId && prevItemReorder.newPosition?.index === newPosition?.index) {
164
+ return;
165
+ }
166
+ store.set('itemsReordering', _extends({}, store.state.itemsReordering, {
167
+ currentReorder: _extends({}, prevItemReorder, {
168
+ targetItemId: itemId,
169
+ newPosition,
170
+ action
171
+ })
172
+ }));
185
173
  }, [store, params.itemChildrenIndentation]);
186
174
  useEnhancedEffect(() => {
187
- store.update(prevState => _extends({}, prevState, {
188
- itemsReordering: _extends({}, prevState.itemsReordering, {
189
- isItemReorderable: params.itemsReordering ? params.isItemReorderable ?? (() => true) : () => false
190
- })
175
+ store.set('itemsReordering', _extends({}, store.state.itemsReordering, {
176
+ isItemReorderable: params.itemsReordering ? params.isItemReorderable ?? (() => true) : () => false
191
177
  }));
192
178
  }, [store, params.itemsReordering, params.isItemReorderable]);
193
179
  return {
@@ -1,445 +1,29 @@
1
1
  import { TreeViewState } from '@mui/x-tree-view/internals';
2
2
  import { UseTreeViewItemsReorderingSignature } from "./useTreeViewItemsReordering.types.js";
3
- /**
4
- * Get the properties of the current reordering.
5
- * @param {TreeViewState<[UseTreeViewItemsReorderingSignature]>} state The state of the tree view.
6
- * @returns {TreeViewItemsReorderingState['currentReorder']} The properties of the current reordering.
7
- */
8
- export declare const selectorCurrentItemReordering: ((state: import("@mui/x-tree-view/internals/corePlugins/useTreeViewId/useTreeViewId.types").UseTreeViewIdState & import("./useTreeViewItemsReordering.types.js").UseTreeViewItemsReorderingState & Partial<{}> & {
9
- cacheKey: import("@mui/x-tree-view/internals/models").TreeViewStateCacheKey;
10
- }) => {
11
- draggedItemId: string;
12
- targetItemId: string;
13
- newPosition: import("./useTreeViewItemsReordering.types.js").TreeViewItemReorderPosition | null;
14
- action: import("@mui/x-tree-view").TreeViewItemsReorderingAction | null;
15
- } | null) & {
16
- clearCache: () => void;
17
- resultsCount: () => number;
18
- resetResultsCount: () => void;
19
- } & {
20
- resultFunc: (resultFuncArgs_0: {
21
- isItemReorderable: (itemId: string) => boolean;
22
- currentReorder: {
23
- draggedItemId: string;
24
- targetItemId: string;
25
- newPosition: import("./useTreeViewItemsReordering.types.js").TreeViewItemReorderPosition | null;
26
- action: import("@mui/x-tree-view").TreeViewItemsReorderingAction | null;
27
- } | null;
28
- }) => {
3
+ export declare const itemsReorderingSelectors: {
4
+ /**
5
+ * Gets the properties of the current reordering.
6
+ */
7
+ currentReorder: (state: TreeViewState<[UseTreeViewItemsReorderingSignature]>) => {
29
8
  draggedItemId: string;
30
9
  targetItemId: string;
31
10
  newPosition: import("./useTreeViewItemsReordering.types.js").TreeViewItemReorderPosition | null;
32
11
  action: import("@mui/x-tree-view").TreeViewItemsReorderingAction | null;
33
12
  } | null;
34
- memoizedResultFunc: ((resultFuncArgs_0: {
35
- isItemReorderable: (itemId: string) => boolean;
36
- currentReorder: {
37
- draggedItemId: string;
38
- targetItemId: string;
39
- newPosition: import("./useTreeViewItemsReordering.types.js").TreeViewItemReorderPosition | null;
40
- action: import("@mui/x-tree-view").TreeViewItemsReorderingAction | null;
41
- } | null;
42
- }) => {
43
- draggedItemId: string;
44
- targetItemId: string;
45
- newPosition: import("./useTreeViewItemsReordering.types.js").TreeViewItemReorderPosition | null;
46
- action: import("@mui/x-tree-view").TreeViewItemsReorderingAction | null;
47
- } | null) & {
48
- clearCache: () => void;
49
- resultsCount: () => number;
50
- resetResultsCount: () => void;
51
- };
52
- lastResult: () => {
53
- draggedItemId: string;
54
- targetItemId: string;
55
- newPosition: import("./useTreeViewItemsReordering.types.js").TreeViewItemReorderPosition | null;
56
- action: import("@mui/x-tree-view").TreeViewItemsReorderingAction | null;
57
- } | null;
58
- dependencies: [(state: TreeViewState<[UseTreeViewItemsReorderingSignature]>) => {
59
- isItemReorderable: (itemId: string) => boolean;
60
- currentReorder: {
61
- draggedItemId: string;
62
- targetItemId: string;
63
- newPosition: import("./useTreeViewItemsReordering.types.js").TreeViewItemReorderPosition | null;
64
- action: import("@mui/x-tree-view").TreeViewItemsReorderingAction | null;
65
- } | null;
66
- }];
67
- recomputations: () => number;
68
- resetRecomputations: () => void;
69
- dependencyRecomputations: () => number;
70
- resetDependencyRecomputations: () => void;
71
- } & {
72
- memoize: typeof import("reselect").weakMapMemoize;
73
- argsMemoize: typeof import("reselect").weakMapMemoize;
74
- };
75
- /**
76
- * Get the properties of the dragged item.
77
- * @param {TreeViewState<[UseTreeViewItemsSignature, UseTreeViewItemsReorderingSignature]>} state The state of the tree view.
78
- * @param {string} itemId The id of the item.
79
- * @returns {TreeViewItemDraggedItemProperties | null} The properties of the dragged item if the current item is being dragged, `null` otherwise.
80
- */
81
- export declare const selectorDraggedItemProperties: ((state: any, itemId: string) => {
82
- newPosition: import("./useTreeViewItemsReordering.types.js").TreeViewItemReorderPosition | null;
83
- action: import("@mui/x-tree-view").TreeViewItemsReorderingAction;
84
- targetDepth: number;
85
- } | null) & {
86
- clearCache: () => void;
87
- resultsCount: () => number;
88
- resetResultsCount: () => void;
89
- } & {
90
- resultFunc: (resultFuncArgs_0: {
91
- draggedItemId: string;
92
- targetItemId: string;
93
- newPosition: import("./useTreeViewItemsReordering.types.js").TreeViewItemReorderPosition | null;
94
- action: import("@mui/x-tree-view").TreeViewItemsReorderingAction | null;
95
- } | null, resultFuncArgs_1: {
96
- [itemId: string]: import("@mui/x-tree-view/internals").TreeViewItemMeta;
97
- }, resultFuncArgs_2: string) => {
98
- newPosition: import("./useTreeViewItemsReordering.types.js").TreeViewItemReorderPosition | null;
99
- action: import("@mui/x-tree-view").TreeViewItemsReorderingAction;
100
- targetDepth: number;
101
- } | null;
102
- memoizedResultFunc: ((resultFuncArgs_0: {
103
- draggedItemId: string;
104
- targetItemId: string;
105
- newPosition: import("./useTreeViewItemsReordering.types.js").TreeViewItemReorderPosition | null;
106
- action: import("@mui/x-tree-view").TreeViewItemsReorderingAction | null;
107
- } | null, resultFuncArgs_1: {
108
- [itemId: string]: import("@mui/x-tree-view/internals").TreeViewItemMeta;
109
- }, resultFuncArgs_2: string) => {
110
- newPosition: import("./useTreeViewItemsReordering.types.js").TreeViewItemReorderPosition | null;
111
- action: import("@mui/x-tree-view").TreeViewItemsReorderingAction;
112
- targetDepth: number;
113
- } | null) & {
114
- clearCache: () => void;
115
- resultsCount: () => number;
116
- resetResultsCount: () => void;
117
- };
118
- lastResult: () => {
13
+ /**
14
+ * Gets the properties of the dragged item.
15
+ */
16
+ draggedItemProperties: (args_0: import("@mui/x-tree-view/internals/corePlugins/useTreeViewId/useTreeViewId.types").UseTreeViewIdState & import("@mui/x-tree-view/internals").UseTreeViewItemsState<import("@mui/x-tree-view").TreeViewDefaultItemModelProperties> & Partial<{}>, itemId: string) => {
119
17
  newPosition: import("./useTreeViewItemsReordering.types.js").TreeViewItemReorderPosition | null;
120
18
  action: import("@mui/x-tree-view").TreeViewItemsReorderingAction;
121
19
  targetDepth: number;
122
20
  } | null;
123
- dependencies: [((state: import("@mui/x-tree-view/internals/corePlugins/useTreeViewId/useTreeViewId.types").UseTreeViewIdState & import("./useTreeViewItemsReordering.types.js").UseTreeViewItemsReorderingState & Partial<{}> & {
124
- cacheKey: import("@mui/x-tree-view/internals/models").TreeViewStateCacheKey;
125
- }) => {
126
- draggedItemId: string;
127
- targetItemId: string;
128
- newPosition: import("./useTreeViewItemsReordering.types.js").TreeViewItemReorderPosition | null;
129
- action: import("@mui/x-tree-view").TreeViewItemsReorderingAction | null;
130
- } | null) & {
131
- clearCache: () => void;
132
- resultsCount: () => number;
133
- resetResultsCount: () => void;
134
- } & {
135
- resultFunc: (resultFuncArgs_0: {
136
- isItemReorderable: (itemId: string) => boolean;
137
- currentReorder: {
138
- draggedItemId: string;
139
- targetItemId: string;
140
- newPosition: import("./useTreeViewItemsReordering.types.js").TreeViewItemReorderPosition | null;
141
- action: import("@mui/x-tree-view").TreeViewItemsReorderingAction | null;
142
- } | null;
143
- }) => {
144
- draggedItemId: string;
145
- targetItemId: string;
146
- newPosition: import("./useTreeViewItemsReordering.types.js").TreeViewItemReorderPosition | null;
147
- action: import("@mui/x-tree-view").TreeViewItemsReorderingAction | null;
148
- } | null;
149
- memoizedResultFunc: ((resultFuncArgs_0: {
150
- isItemReorderable: (itemId: string) => boolean;
151
- currentReorder: {
152
- draggedItemId: string;
153
- targetItemId: string;
154
- newPosition: import("./useTreeViewItemsReordering.types.js").TreeViewItemReorderPosition | null;
155
- action: import("@mui/x-tree-view").TreeViewItemsReorderingAction | null;
156
- } | null;
157
- }) => {
158
- draggedItemId: string;
159
- targetItemId: string;
160
- newPosition: import("./useTreeViewItemsReordering.types.js").TreeViewItemReorderPosition | null;
161
- action: import("@mui/x-tree-view").TreeViewItemsReorderingAction | null;
162
- } | null) & {
163
- clearCache: () => void;
164
- resultsCount: () => number;
165
- resetResultsCount: () => void;
166
- };
167
- lastResult: () => {
168
- draggedItemId: string;
169
- targetItemId: string;
170
- newPosition: import("./useTreeViewItemsReordering.types.js").TreeViewItemReorderPosition | null;
171
- action: import("@mui/x-tree-view").TreeViewItemsReorderingAction | null;
172
- } | null;
173
- dependencies: [(state: TreeViewState<[UseTreeViewItemsReorderingSignature]>) => {
174
- isItemReorderable: (itemId: string) => boolean;
175
- currentReorder: {
176
- draggedItemId: string;
177
- targetItemId: string;
178
- newPosition: import("./useTreeViewItemsReordering.types.js").TreeViewItemReorderPosition | null;
179
- action: import("@mui/x-tree-view").TreeViewItemsReorderingAction | null;
180
- } | null;
181
- }];
182
- recomputations: () => number;
183
- resetRecomputations: () => void;
184
- dependencyRecomputations: () => number;
185
- resetDependencyRecomputations: () => void;
186
- } & {
187
- memoize: typeof import("reselect").weakMapMemoize;
188
- argsMemoize: typeof import("reselect").weakMapMemoize;
189
- }, ((state: import("@mui/x-tree-view/internals/corePlugins/useTreeViewId/useTreeViewId.types").UseTreeViewIdState & import("@mui/x-tree-view/internals").UseTreeViewItemsState<import("@mui/x-tree-view").TreeViewDefaultItemModelProperties> & Partial<{}> & {
190
- cacheKey: import("@mui/x-tree-view/internals/models").TreeViewStateCacheKey;
191
- }) => {
192
- [itemId: string]: import("@mui/x-tree-view/internals").TreeViewItemMeta;
193
- }) & {
194
- clearCache: () => void;
195
- resultsCount: () => number;
196
- resetResultsCount: () => void;
197
- } & {
198
- resultFunc: (resultFuncArgs_0: {
199
- disabledItemsFocusable: boolean;
200
- itemModelLookup: {
201
- [itemId: string]: import("@mui/x-tree-view").TreeViewBaseItem<import("@mui/x-tree-view").TreeViewDefaultItemModelProperties>;
202
- };
203
- itemMetaLookup: {
204
- [itemId: string]: import("@mui/x-tree-view/internals").TreeViewItemMeta;
205
- };
206
- itemOrderedChildrenIdsLookup: {
207
- [parentItemId: string]: string[];
208
- };
209
- itemChildrenIndexesLookup: {
210
- [parentItemId: string]: {
211
- [itemId: string]: number;
212
- };
213
- };
214
- loading: boolean;
215
- error: Error | null;
216
- }) => {
217
- [itemId: string]: import("@mui/x-tree-view/internals").TreeViewItemMeta;
218
- };
219
- memoizedResultFunc: ((resultFuncArgs_0: {
220
- disabledItemsFocusable: boolean;
221
- itemModelLookup: {
222
- [itemId: string]: import("@mui/x-tree-view").TreeViewBaseItem<import("@mui/x-tree-view").TreeViewDefaultItemModelProperties>;
223
- };
224
- itemMetaLookup: {
225
- [itemId: string]: import("@mui/x-tree-view/internals").TreeViewItemMeta;
226
- };
227
- itemOrderedChildrenIdsLookup: {
228
- [parentItemId: string]: string[];
229
- };
230
- itemChildrenIndexesLookup: {
231
- [parentItemId: string]: {
232
- [itemId: string]: number;
233
- };
234
- };
235
- loading: boolean;
236
- error: Error | null;
237
- }) => {
238
- [itemId: string]: import("@mui/x-tree-view/internals").TreeViewItemMeta;
239
- }) & {
240
- clearCache: () => void;
241
- resultsCount: () => number;
242
- resetResultsCount: () => void;
243
- };
244
- lastResult: () => {
245
- [itemId: string]: import("@mui/x-tree-view/internals").TreeViewItemMeta;
246
- };
247
- dependencies: [import("@mui/x-tree-view/internals/utils/selectors").TreeViewRootSelector<import("@mui/x-tree-view/internals").UseTreeViewItemsSignature>];
248
- recomputations: () => number;
249
- resetRecomputations: () => void;
250
- dependencyRecomputations: () => number;
251
- resetDependencyRecomputations: () => void;
252
- } & {
253
- memoize: typeof import("reselect").weakMapMemoize;
254
- argsMemoize: typeof import("reselect").weakMapMemoize;
255
- }, (_: any, itemId: string) => string];
256
- recomputations: () => number;
257
- resetRecomputations: () => void;
258
- dependencyRecomputations: () => number;
259
- resetDependencyRecomputations: () => void;
260
- } & {
261
- memoize: typeof import("reselect").weakMapMemoize;
262
- argsMemoize: typeof import("reselect").weakMapMemoize;
263
- };
264
- /**
265
- * Check if the current item is a valid target for the dragged item.
266
- * @param {TreeViewState<[UseTreeViewItemsReorderingSignature]>} state The state of the tree view.
267
- * @param {string} itemId The id of the item.
268
- * @returns {boolean} `true` if the current item is a valid target for the dragged item, `false` otherwise.
269
- */
270
- export declare const selectorIsItemValidReorderingTarget: ((state: any, itemId: string) => boolean | null) & {
271
- clearCache: () => void;
272
- resultsCount: () => number;
273
- resetResultsCount: () => void;
274
- } & {
275
- resultFunc: (resultFuncArgs_0: {
276
- draggedItemId: string;
277
- targetItemId: string;
278
- newPosition: import("./useTreeViewItemsReordering.types.js").TreeViewItemReorderPosition | null;
279
- action: import("@mui/x-tree-view").TreeViewItemsReorderingAction | null;
280
- } | null, resultFuncArgs_1: string) => boolean | null;
281
- memoizedResultFunc: ((resultFuncArgs_0: {
282
- draggedItemId: string;
283
- targetItemId: string;
284
- newPosition: import("./useTreeViewItemsReordering.types.js").TreeViewItemReorderPosition | null;
285
- action: import("@mui/x-tree-view").TreeViewItemsReorderingAction | null;
286
- } | null, resultFuncArgs_1: string) => boolean | null) & {
287
- clearCache: () => void;
288
- resultsCount: () => number;
289
- resetResultsCount: () => void;
290
- };
291
- lastResult: () => boolean | null;
292
- dependencies: [((state: import("@mui/x-tree-view/internals/corePlugins/useTreeViewId/useTreeViewId.types").UseTreeViewIdState & import("./useTreeViewItemsReordering.types.js").UseTreeViewItemsReorderingState & Partial<{}> & {
293
- cacheKey: import("@mui/x-tree-view/internals/models").TreeViewStateCacheKey;
294
- }) => {
295
- draggedItemId: string;
296
- targetItemId: string;
297
- newPosition: import("./useTreeViewItemsReordering.types.js").TreeViewItemReorderPosition | null;
298
- action: import("@mui/x-tree-view").TreeViewItemsReorderingAction | null;
299
- } | null) & {
300
- clearCache: () => void;
301
- resultsCount: () => number;
302
- resetResultsCount: () => void;
303
- } & {
304
- resultFunc: (resultFuncArgs_0: {
305
- isItemReorderable: (itemId: string) => boolean;
306
- currentReorder: {
307
- draggedItemId: string;
308
- targetItemId: string;
309
- newPosition: import("./useTreeViewItemsReordering.types.js").TreeViewItemReorderPosition | null;
310
- action: import("@mui/x-tree-view").TreeViewItemsReorderingAction | null;
311
- } | null;
312
- }) => {
313
- draggedItemId: string;
314
- targetItemId: string;
315
- newPosition: import("./useTreeViewItemsReordering.types.js").TreeViewItemReorderPosition | null;
316
- action: import("@mui/x-tree-view").TreeViewItemsReorderingAction | null;
317
- } | null;
318
- memoizedResultFunc: ((resultFuncArgs_0: {
319
- isItemReorderable: (itemId: string) => boolean;
320
- currentReorder: {
321
- draggedItemId: string;
322
- targetItemId: string;
323
- newPosition: import("./useTreeViewItemsReordering.types.js").TreeViewItemReorderPosition | null;
324
- action: import("@mui/x-tree-view").TreeViewItemsReorderingAction | null;
325
- } | null;
326
- }) => {
327
- draggedItemId: string;
328
- targetItemId: string;
329
- newPosition: import("./useTreeViewItemsReordering.types.js").TreeViewItemReorderPosition | null;
330
- action: import("@mui/x-tree-view").TreeViewItemsReorderingAction | null;
331
- } | null) & {
332
- clearCache: () => void;
333
- resultsCount: () => number;
334
- resetResultsCount: () => void;
335
- };
336
- lastResult: () => {
337
- draggedItemId: string;
338
- targetItemId: string;
339
- newPosition: import("./useTreeViewItemsReordering.types.js").TreeViewItemReorderPosition | null;
340
- action: import("@mui/x-tree-view").TreeViewItemsReorderingAction | null;
341
- } | null;
342
- dependencies: [(state: TreeViewState<[UseTreeViewItemsReorderingSignature]>) => {
343
- isItemReorderable: (itemId: string) => boolean;
344
- currentReorder: {
345
- draggedItemId: string;
346
- targetItemId: string;
347
- newPosition: import("./useTreeViewItemsReordering.types.js").TreeViewItemReorderPosition | null;
348
- action: import("@mui/x-tree-view").TreeViewItemsReorderingAction | null;
349
- } | null;
350
- }];
351
- recomputations: () => number;
352
- resetRecomputations: () => void;
353
- dependencyRecomputations: () => number;
354
- resetDependencyRecomputations: () => void;
355
- } & {
356
- memoize: typeof import("reselect").weakMapMemoize;
357
- argsMemoize: typeof import("reselect").weakMapMemoize;
358
- }, (_: any, itemId: string) => string];
359
- recomputations: () => number;
360
- resetRecomputations: () => void;
361
- dependencyRecomputations: () => number;
362
- resetDependencyRecomputations: () => void;
363
- } & {
364
- memoize: typeof import("reselect").weakMapMemoize;
365
- argsMemoize: typeof import("reselect").weakMapMemoize;
366
- };
367
- /**
368
- * Check if the items can be reordered.
369
- * @param {TreeViewState<[UseTreeViewItemsReorderingSignature]>} state The state of the tree view.
370
- * @param {string} itemId The id of the item.
371
- * @returns {boolean} `true` if the items can be reordered, `false` otherwise.
372
- */
373
- export declare const selectorCanItemBeReordered: ((state: any, itemId: string) => boolean) & {
374
- clearCache: () => void;
375
- resultsCount: () => number;
376
- resetResultsCount: () => void;
377
- } & {
378
- resultFunc: (resultFuncArgs_0: {
379
- isItemReorderable: (itemId: string) => boolean;
380
- currentReorder: {
381
- draggedItemId: string;
382
- targetItemId: string;
383
- newPosition: import("./useTreeViewItemsReordering.types.js").TreeViewItemReorderPosition | null;
384
- action: import("@mui/x-tree-view").TreeViewItemsReorderingAction | null;
385
- } | null;
386
- }, resultFuncArgs_1: boolean, resultFuncArgs_2: string) => boolean;
387
- memoizedResultFunc: ((resultFuncArgs_0: {
388
- isItemReorderable: (itemId: string) => boolean;
389
- currentReorder: {
390
- draggedItemId: string;
391
- targetItemId: string;
392
- newPosition: import("./useTreeViewItemsReordering.types.js").TreeViewItemReorderPosition | null;
393
- action: import("@mui/x-tree-view").TreeViewItemsReorderingAction | null;
394
- } | null;
395
- }, resultFuncArgs_1: boolean, resultFuncArgs_2: string) => boolean) & {
396
- clearCache: () => void;
397
- resultsCount: () => number;
398
- resetResultsCount: () => void;
399
- };
400
- lastResult: () => boolean;
401
- dependencies: [(state: TreeViewState<[UseTreeViewItemsReorderingSignature]>) => {
402
- isItemReorderable: (itemId: string) => boolean;
403
- currentReorder: {
404
- draggedItemId: string;
405
- targetItemId: string;
406
- newPosition: import("./useTreeViewItemsReordering.types.js").TreeViewItemReorderPosition | null;
407
- action: import("@mui/x-tree-view").TreeViewItemsReorderingAction | null;
408
- } | null;
409
- }, ((state: import("@mui/x-tree-view/internals/corePlugins/useTreeViewId/useTreeViewId.types").UseTreeViewIdState & Partial<import("@mui/x-tree-view/internals/plugins/useTreeViewLabel/useTreeViewLabel.types").UseTreeViewLabelState> & {
410
- cacheKey: import("@mui/x-tree-view/internals/models").TreeViewStateCacheKey;
411
- }) => boolean) & {
412
- clearCache: () => void;
413
- resultsCount: () => number;
414
- resetResultsCount: () => void;
415
- } & {
416
- resultFunc: (resultFuncArgs_0: {
417
- isItemEditable: ((item: any) => boolean) | boolean;
418
- editedItemId: string | null;
419
- } | undefined) => boolean;
420
- memoizedResultFunc: ((resultFuncArgs_0: {
421
- isItemEditable: ((item: any) => boolean) | boolean;
422
- editedItemId: string | null;
423
- } | undefined) => boolean) & {
424
- clearCache: () => void;
425
- resultsCount: () => number;
426
- resetResultsCount: () => void;
427
- };
428
- lastResult: () => boolean;
429
- dependencies: [import("@mui/x-tree-view/internals/utils/selectors").TreeViewRootSelector<import("@mui/x-tree-view/internals").UseTreeViewLabelSignature, true>];
430
- recomputations: () => number;
431
- resetRecomputations: () => void;
432
- dependencyRecomputations: () => number;
433
- resetDependencyRecomputations: () => void;
434
- } & {
435
- memoize: typeof import("reselect").weakMapMemoize;
436
- argsMemoize: typeof import("reselect").weakMapMemoize;
437
- }, (_: any, itemId: string) => string];
438
- recomputations: () => number;
439
- resetRecomputations: () => void;
440
- dependencyRecomputations: () => number;
441
- resetDependencyRecomputations: () => void;
442
- } & {
443
- memoize: typeof import("reselect").weakMapMemoize;
444
- argsMemoize: typeof import("reselect").weakMapMemoize;
21
+ /**
22
+ * Checks whether an item is a valid target for the dragged item.
23
+ */
24
+ isItemValidDropTarget: (state: TreeViewState<[UseTreeViewItemsReorderingSignature]>, itemId: string) => boolean;
25
+ /**
26
+ * Checks whether an item can be reordered.
27
+ */
28
+ canItemBeReordered: (args_0: import("@mui/x-tree-view/internals/corePlugins/useTreeViewId/useTreeViewId.types").UseTreeViewIdState & import("./useTreeViewItemsReordering.types.js").UseTreeViewItemsReorderingState & Partial<{}>, itemId: string) => boolean;
445
29
  };