@mui/x-tree-view 8.0.0-beta.0 → 8.0.0-beta.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.
- package/CHANGELOG.md +77 -0
- package/esm/hooks/useTreeItemUtils/useTreeItemUtils.js +8 -14
- package/esm/index.js +1 -1
- package/esm/internals/models/itemPlugin.d.ts +3 -3
- package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.js +3 -8
- package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js +1 -4
- package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +6 -6
- package/esm/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +13 -15
- package/esm/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.d.ts +0 -3
- package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.itemPlugin.js +9 -12
- package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +16 -11
- package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +14 -20
- package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.js +5 -7
- package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +5 -4
- package/esm/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.d.ts +0 -2
- package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +16 -21
- package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +43 -38
- package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +331 -0
- package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.js +38 -1
- package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +5 -4
- package/esm/internals/utils/selectors.d.ts +1 -1
- package/esm/useTreeItem/useTreeItem.js +11 -17
- package/esm/useTreeItem/useTreeItem.types.d.ts +0 -4
- package/hooks/useTreeItemUtils/useTreeItemUtils.js +7 -13
- package/index.js +1 -1
- package/internals/models/itemPlugin.d.ts +3 -3
- package/internals/plugins/useTreeViewItems/useTreeViewItems.js +3 -8
- package/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js +1 -4
- package/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +6 -6
- package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +12 -14
- package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.d.ts +0 -3
- package/internals/plugins/useTreeViewLabel/useTreeViewLabel.itemPlugin.js +9 -12
- package/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +16 -12
- package/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +14 -20
- package/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.js +5 -7
- package/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +5 -4
- package/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.d.ts +0 -2
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +15 -20
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +42 -37
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +331 -0
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.js +39 -2
- package/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +5 -4
- package/internals/utils/selectors.d.ts +1 -1
- package/modern/hooks/useTreeItemUtils/useTreeItemUtils.js +8 -14
- package/modern/index.js +1 -1
- package/modern/internals/models/itemPlugin.d.ts +3 -3
- package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.js +3 -8
- package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js +1 -4
- package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +6 -6
- package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +13 -15
- package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.d.ts +0 -3
- package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.itemPlugin.js +9 -12
- package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +16 -11
- package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +14 -20
- package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.js +5 -7
- package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +5 -4
- package/modern/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.d.ts +0 -2
- package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +16 -21
- package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +43 -38
- package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +331 -0
- package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.js +38 -1
- package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +5 -4
- package/modern/internals/utils/selectors.d.ts +1 -1
- package/modern/useTreeItem/useTreeItem.js +11 -17
- package/modern/useTreeItem/useTreeItem.types.d.ts +0 -4
- package/package.json +1 -1
- package/tsconfig.build.tsbuildinfo +1 -1
- package/useTreeItem/useTreeItem.js +11 -17
- package/useTreeItem/useTreeItem.types.d.ts +0 -4
|
@@ -6,16 +6,18 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.useTreeViewSelectionItemPlugin = void 0;
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var _fastObjectShallowCompare = require("@mui/x-internals/fastObjectShallowCompare");
|
|
9
10
|
var _TreeViewProvider = require("../../TreeViewProvider");
|
|
10
11
|
var _useTreeViewItems = require("../useTreeViewItems/useTreeViewItems.selectors");
|
|
11
12
|
var _useTreeViewSelection = require("./useTreeViewSelection.selectors");
|
|
12
13
|
var _useSelector = require("../../hooks/useSelector");
|
|
13
|
-
function selectorItemCheckboxStatus(state, {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}) {
|
|
14
|
+
function selectorItemCheckboxStatus(state, itemId) {
|
|
15
|
+
const isCheckboxSelectionEnabled = (0, _useTreeViewSelection.selectorIsCheckboxSelectionEnabled)(state);
|
|
16
|
+
const isSelectionEnabledForItem = (0, _useTreeViewSelection.selectorIsItemSelectionEnabled)(state, itemId);
|
|
17
17
|
if ((0, _useTreeViewSelection.selectorIsItemSelected)(state, itemId)) {
|
|
18
18
|
return {
|
|
19
|
+
disabled: !isSelectionEnabledForItem,
|
|
20
|
+
visible: isCheckboxSelectionEnabled,
|
|
19
21
|
indeterminate: false,
|
|
20
22
|
checked: true
|
|
21
23
|
};
|
|
@@ -23,6 +25,8 @@ function selectorItemCheckboxStatus(state, {
|
|
|
23
25
|
const children = (0, _useTreeViewItems.selectorItemOrderedChildrenIds)(state, itemId);
|
|
24
26
|
if (children.length === 0) {
|
|
25
27
|
return {
|
|
28
|
+
disabled: !isSelectionEnabledForItem,
|
|
29
|
+
visible: isCheckboxSelectionEnabled,
|
|
26
30
|
indeterminate: false,
|
|
27
31
|
checked: false
|
|
28
32
|
};
|
|
@@ -41,8 +45,10 @@ function selectorItemCheckboxStatus(state, {
|
|
|
41
45
|
};
|
|
42
46
|
traverseDescendants(itemId);
|
|
43
47
|
return {
|
|
48
|
+
disabled: !isSelectionEnabledForItem,
|
|
49
|
+
visible: isCheckboxSelectionEnabled,
|
|
44
50
|
indeterminate: hasSelectedDescendant && hasUnSelectedDescendant || !hasUnSelectedDescendant,
|
|
45
|
-
checked:
|
|
51
|
+
checked: (0, _useTreeViewSelection.selectorSelectionPropagationRules)(state).parents ? hasSelectedDescendant : false
|
|
46
52
|
};
|
|
47
53
|
}
|
|
48
54
|
const useTreeViewSelectionItemPlugin = ({
|
|
@@ -52,37 +58,26 @@ const useTreeViewSelectionItemPlugin = ({
|
|
|
52
58
|
itemId
|
|
53
59
|
} = props;
|
|
54
60
|
const {
|
|
55
|
-
store
|
|
56
|
-
selection: {
|
|
57
|
-
disableSelection,
|
|
58
|
-
checkboxSelection,
|
|
59
|
-
selectionPropagation
|
|
60
|
-
}
|
|
61
|
+
store
|
|
61
62
|
} = (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
|
+
const checkboxStatus = (0, _useSelector.useSelector)(store, selectorItemCheckboxStatus, itemId, _fastObjectShallowCompare.fastObjectShallowCompare);
|
|
66
64
|
return {
|
|
67
65
|
propsEnhancers: {
|
|
68
66
|
checkbox: ({
|
|
69
67
|
externalEventHandlers,
|
|
70
|
-
interactions
|
|
71
|
-
status
|
|
68
|
+
interactions
|
|
72
69
|
}) => {
|
|
73
70
|
const handleChange = event => {
|
|
74
71
|
externalEventHandlers.onChange?.(event);
|
|
75
72
|
if (event.defaultMuiPrevented) {
|
|
76
73
|
return;
|
|
77
74
|
}
|
|
78
|
-
if (
|
|
75
|
+
if (!(0, _useTreeViewSelection.selectorIsItemSelectionEnabled)(store.value, itemId)) {
|
|
79
76
|
return;
|
|
80
77
|
}
|
|
81
78
|
interactions.handleCheckboxSelection(event);
|
|
82
79
|
};
|
|
83
80
|
return (0, _extends2.default)({
|
|
84
|
-
visible: checkboxSelection,
|
|
85
|
-
disabled: disableSelection || status.disabled,
|
|
86
81
|
tabIndex: -1,
|
|
87
82
|
onChange: handleChange
|
|
88
83
|
}, checkboxStatus);
|
|
@@ -20,16 +20,10 @@ const useTreeViewSelection = ({
|
|
|
20
20
|
}) => {
|
|
21
21
|
const lastSelectedItem = React.useRef(null);
|
|
22
22
|
const lastSelectedRange = React.useRef({});
|
|
23
|
-
(0, _useEnhancedEffect.default)(() => {
|
|
24
|
-
store.update(prevState => (0, _extends2.default)({}, prevState, {
|
|
25
|
-
selection: {
|
|
26
|
-
selectedItemsMap: (0, _useTreeViewSelection.createSelectedItemsMap)(models.selectedItems.value)
|
|
27
|
-
}
|
|
28
|
-
}));
|
|
29
|
-
}, [store, models.selectedItems.value]);
|
|
30
23
|
const setSelectedItems = (event, newModel, additionalItemsToPropagate) => {
|
|
31
24
|
let cleanModel;
|
|
32
|
-
|
|
25
|
+
const isMultiSelectEnabled = (0, _useTreeViewSelection2.selectorIsMultiSelectEnabled)(store.value);
|
|
26
|
+
if (isMultiSelectEnabled && (params.selectionPropagation.descendants || params.selectionPropagation.parents)) {
|
|
33
27
|
cleanModel = (0, _useTreeViewSelection.propagateSelection)({
|
|
34
28
|
store,
|
|
35
29
|
selectionPropagation: params.selectionPropagation,
|
|
@@ -41,7 +35,7 @@ const useTreeViewSelection = ({
|
|
|
41
35
|
cleanModel = newModel;
|
|
42
36
|
}
|
|
43
37
|
if (params.onItemSelectionToggle) {
|
|
44
|
-
if (
|
|
38
|
+
if (isMultiSelectEnabled) {
|
|
45
39
|
const changes = (0, _useTreeViewSelection.getAddedAndRemovedItems)({
|
|
46
40
|
store,
|
|
47
41
|
newModel: cleanModel,
|
|
@@ -75,10 +69,11 @@ const useTreeViewSelection = ({
|
|
|
75
69
|
keepExistingSelection = false,
|
|
76
70
|
shouldBeSelected
|
|
77
71
|
}) => {
|
|
78
|
-
if (
|
|
72
|
+
if (!(0, _useTreeViewSelection2.selectorIsSelectionEnabled)(store.value)) {
|
|
79
73
|
return;
|
|
80
74
|
}
|
|
81
75
|
let newSelected;
|
|
76
|
+
const isMultiSelectEnabled = (0, _useTreeViewSelection2.selectorIsMultiSelectEnabled)(store.value);
|
|
82
77
|
if (keepExistingSelection) {
|
|
83
78
|
const cleanSelectedItems = (0, _useTreeViewSelection.convertSelectedItemsToArray)(models.selectedItems.value);
|
|
84
79
|
const isSelectedBefore = (0, _useTreeViewSelection2.selectorIsItemSelected)(store.value, itemId);
|
|
@@ -92,9 +87,9 @@ const useTreeViewSelection = ({
|
|
|
92
87
|
} else {
|
|
93
88
|
// eslint-disable-next-line no-lonely-if
|
|
94
89
|
if (shouldBeSelected === false || shouldBeSelected == null && (0, _useTreeViewSelection2.selectorIsItemSelected)(store.value, itemId)) {
|
|
95
|
-
newSelected =
|
|
90
|
+
newSelected = isMultiSelectEnabled ? [] : null;
|
|
96
91
|
} else {
|
|
97
|
-
newSelected =
|
|
92
|
+
newSelected = isMultiSelectEnabled ? [itemId] : itemId;
|
|
98
93
|
}
|
|
99
94
|
}
|
|
100
95
|
setSelectedItems(event, newSelected,
|
|
@@ -105,7 +100,8 @@ const useTreeViewSelection = ({
|
|
|
105
100
|
lastSelectedRange.current = {};
|
|
106
101
|
};
|
|
107
102
|
const selectRange = (event, [start, end]) => {
|
|
108
|
-
|
|
103
|
+
const isMultiSelectEnabled = (0, _useTreeViewSelection2.selectorIsMultiSelectEnabled)(store.value);
|
|
104
|
+
if (!isMultiSelectEnabled) {
|
|
109
105
|
return;
|
|
110
106
|
}
|
|
111
107
|
let newSelectedItems = (0, _useTreeViewSelection.convertSelectedItemsToArray)(models.selectedItems.value).slice();
|
|
@@ -137,7 +133,8 @@ const useTreeViewSelection = ({
|
|
|
137
133
|
selectRange(event, [itemId, (0, _tree.getLastNavigableItem)(store.value)]);
|
|
138
134
|
};
|
|
139
135
|
const selectAllNavigableItems = event => {
|
|
140
|
-
|
|
136
|
+
const isMultiSelectEnabled = (0, _useTreeViewSelection2.selectorIsMultiSelectEnabled)(store.value);
|
|
137
|
+
if (!isMultiSelectEnabled) {
|
|
141
138
|
return;
|
|
142
139
|
}
|
|
143
140
|
const navigableItems = (0, _tree.getAllNavigableItems)(store.value);
|
|
@@ -145,7 +142,8 @@ const useTreeViewSelection = ({
|
|
|
145
142
|
lastSelectedRange.current = (0, _useTreeViewSelection.getLookupFromArray)(navigableItems);
|
|
146
143
|
};
|
|
147
144
|
const selectItemFromArrowNavigation = (event, currentItem, nextItem) => {
|
|
148
|
-
|
|
145
|
+
const isMultiSelectEnabled = (0, _useTreeViewSelection2.selectorIsMultiSelectEnabled)(store.value);
|
|
146
|
+
if (!isMultiSelectEnabled) {
|
|
149
147
|
return;
|
|
150
148
|
}
|
|
151
149
|
let newSelectedItems = (0, _useTreeViewSelection.convertSelectedItemsToArray)(models.selectedItems.value).slice();
|
|
@@ -169,17 +167,22 @@ const useTreeViewSelection = ({
|
|
|
169
167
|
}
|
|
170
168
|
setSelectedItems(event, newSelectedItems);
|
|
171
169
|
};
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
170
|
+
(0, _useEnhancedEffect.default)(() => {
|
|
171
|
+
store.update(prevState => (0, _extends2.default)({}, prevState, {
|
|
172
|
+
selection: {
|
|
173
|
+
rawSelectedItems: models.selectedItems.value,
|
|
174
|
+
// Only re-compute the map when the model changes.
|
|
175
|
+
selectedItemsMap: prevState.selection.rawSelectedItems === models.selectedItems.value ? prevState.selection.selectedItemsMap : (0, _useTreeViewSelection.createSelectedItemsMap)(models.selectedItems.value),
|
|
176
|
+
isEnabled: !params.disableSelection,
|
|
177
|
+
isMultiSelectEnabled: params.multiSelect,
|
|
178
|
+
isCheckboxSelectionEnabled: params.checkboxSelection,
|
|
179
|
+
selectionPropagation: {
|
|
180
|
+
descendants: params.selectionPropagation.descendants,
|
|
181
|
+
parents: params.selectionPropagation.parents
|
|
182
|
+
}
|
|
180
183
|
}
|
|
181
|
-
}
|
|
182
|
-
}
|
|
184
|
+
}));
|
|
185
|
+
}, [store, models.selectedItems.value, params.multiSelect, params.checkboxSelection, params.disableSelection, params.selectionPropagation.descendants, params.selectionPropagation.parents]);
|
|
183
186
|
return {
|
|
184
187
|
getRootProps: () => ({
|
|
185
188
|
'aria-multiselectable': params.multiSelect
|
|
@@ -194,8 +197,7 @@ const useTreeViewSelection = ({
|
|
|
194
197
|
selectRangeFromStartToItem,
|
|
195
198
|
selectRangeFromItemToEnd,
|
|
196
199
|
selectItemFromArrowNavigation
|
|
197
|
-
}
|
|
198
|
-
contextValue: pluginContextValue
|
|
200
|
+
}
|
|
199
201
|
};
|
|
200
202
|
};
|
|
201
203
|
exports.useTreeViewSelection = useTreeViewSelection;
|
|
@@ -216,16 +218,19 @@ useTreeViewSelection.getDefaultizedParams = ({
|
|
|
216
218
|
defaultSelectedItems: params.defaultSelectedItems ?? (params.multiSelect ? DEFAULT_SELECTED_ITEMS : null),
|
|
217
219
|
selectionPropagation: params.selectionPropagation ?? EMPTY_SELECTION_PROPAGATION
|
|
218
220
|
});
|
|
219
|
-
useTreeViewSelection.getInitialState = params =>
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
221
|
+
useTreeViewSelection.getInitialState = params => {
|
|
222
|
+
const rawSelectedItems = params.selectedItems === undefined ? params.defaultSelectedItems : params.selectedItems;
|
|
223
|
+
return {
|
|
224
|
+
selection: {
|
|
225
|
+
rawSelectedItems,
|
|
226
|
+
selectedItemsMap: (0, _useTreeViewSelection.createSelectedItemsMap)(rawSelectedItems),
|
|
227
|
+
isEnabled: !params.disableSelection,
|
|
228
|
+
isMultiSelectEnabled: params.multiSelect,
|
|
229
|
+
isCheckboxSelectionEnabled: params.checkboxSelection,
|
|
230
|
+
selectionPropagation: params.selectionPropagation
|
|
231
|
+
}
|
|
232
|
+
};
|
|
233
|
+
};
|
|
229
234
|
useTreeViewSelection.params = {
|
|
230
235
|
disableSelection: true,
|
|
231
236
|
multiSelect: true,
|
|
@@ -11,10 +11,20 @@ export declare const selectorIsItemSelected: ((state: any, itemId: string) => bo
|
|
|
11
11
|
resetResultsCount: () => void;
|
|
12
12
|
} & {
|
|
13
13
|
resultFunc: (resultFuncArgs_0: {
|
|
14
|
+
rawSelectedItems: string | string[] | null;
|
|
14
15
|
selectedItemsMap: Map<string, true>;
|
|
16
|
+
isEnabled: boolean;
|
|
17
|
+
isMultiSelectEnabled: boolean;
|
|
18
|
+
isCheckboxSelectionEnabled: boolean;
|
|
19
|
+
selectionPropagation: import("../../..").TreeViewSelectionPropagation;
|
|
15
20
|
}, resultFuncArgs_1: string) => boolean;
|
|
16
21
|
memoizedResultFunc: ((resultFuncArgs_0: {
|
|
22
|
+
rawSelectedItems: string | string[] | null;
|
|
17
23
|
selectedItemsMap: Map<string, true>;
|
|
24
|
+
isEnabled: boolean;
|
|
25
|
+
isMultiSelectEnabled: boolean;
|
|
26
|
+
isCheckboxSelectionEnabled: boolean;
|
|
27
|
+
selectionPropagation: import("../../..").TreeViewSelectionPropagation;
|
|
18
28
|
}, resultFuncArgs_1: string) => boolean) & {
|
|
19
29
|
clearCache: () => void;
|
|
20
30
|
resultsCount: () => number;
|
|
@@ -29,4 +39,325 @@ export declare const selectorIsItemSelected: ((state: any, itemId: string) => bo
|
|
|
29
39
|
} & {
|
|
30
40
|
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
31
41
|
memoize: typeof import("reselect").weakMapMemoize;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Check if multi selection is enabled.
|
|
45
|
+
* @param {TreeViewState<[UseTreeViewSelectionSignature]>} state The state of the tree view.
|
|
46
|
+
* @returns {boolean} `true` if multi selection is enabled, `false` otherwise.
|
|
47
|
+
*/
|
|
48
|
+
export declare const selectorIsMultiSelectEnabled: ((state: import("../../corePlugins/useTreeViewId/useTreeViewId.types").UseTreeViewIdState & import("./useTreeViewSelection.types").UseTreeViewSelectionState & Partial<{}> & {
|
|
49
|
+
cacheKey: import("../../models").TreeViewStateCacheKey;
|
|
50
|
+
}) => boolean) & {
|
|
51
|
+
clearCache: () => void;
|
|
52
|
+
resultsCount: () => number;
|
|
53
|
+
resetResultsCount: () => void;
|
|
54
|
+
} & {
|
|
55
|
+
resultFunc: (resultFuncArgs_0: {
|
|
56
|
+
rawSelectedItems: string | string[] | null;
|
|
57
|
+
selectedItemsMap: Map<string, true>;
|
|
58
|
+
isEnabled: boolean;
|
|
59
|
+
isMultiSelectEnabled: boolean;
|
|
60
|
+
isCheckboxSelectionEnabled: boolean;
|
|
61
|
+
selectionPropagation: import("../../..").TreeViewSelectionPropagation;
|
|
62
|
+
}) => boolean;
|
|
63
|
+
memoizedResultFunc: ((resultFuncArgs_0: {
|
|
64
|
+
rawSelectedItems: string | string[] | null;
|
|
65
|
+
selectedItemsMap: Map<string, true>;
|
|
66
|
+
isEnabled: boolean;
|
|
67
|
+
isMultiSelectEnabled: boolean;
|
|
68
|
+
isCheckboxSelectionEnabled: boolean;
|
|
69
|
+
selectionPropagation: import("../../..").TreeViewSelectionPropagation;
|
|
70
|
+
}) => boolean) & {
|
|
71
|
+
clearCache: () => void;
|
|
72
|
+
resultsCount: () => number;
|
|
73
|
+
resetResultsCount: () => void;
|
|
74
|
+
};
|
|
75
|
+
lastResult: () => boolean;
|
|
76
|
+
dependencies: [TreeViewRootSelector<UseTreeViewSelectionSignature>];
|
|
77
|
+
recomputations: () => number;
|
|
78
|
+
resetRecomputations: () => void;
|
|
79
|
+
dependencyRecomputations: () => number;
|
|
80
|
+
resetDependencyRecomputations: () => void;
|
|
81
|
+
} & {
|
|
82
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
83
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* Check if selection is enabled.
|
|
87
|
+
* @param {TreeViewState<[UseTreeViewSelectionSignature]>} state The state of the tree view.
|
|
88
|
+
* @returns {boolean} `true` if selection is enabled, `false` otherwise.
|
|
89
|
+
*/
|
|
90
|
+
export declare const selectorIsSelectionEnabled: ((state: import("../../corePlugins/useTreeViewId/useTreeViewId.types").UseTreeViewIdState & import("./useTreeViewSelection.types").UseTreeViewSelectionState & Partial<{}> & {
|
|
91
|
+
cacheKey: import("../../models").TreeViewStateCacheKey;
|
|
92
|
+
}) => boolean) & {
|
|
93
|
+
clearCache: () => void;
|
|
94
|
+
resultsCount: () => number;
|
|
95
|
+
resetResultsCount: () => void;
|
|
96
|
+
} & {
|
|
97
|
+
resultFunc: (resultFuncArgs_0: {
|
|
98
|
+
rawSelectedItems: string | string[] | null;
|
|
99
|
+
selectedItemsMap: Map<string, true>;
|
|
100
|
+
isEnabled: boolean;
|
|
101
|
+
isMultiSelectEnabled: boolean;
|
|
102
|
+
isCheckboxSelectionEnabled: boolean;
|
|
103
|
+
selectionPropagation: import("../../..").TreeViewSelectionPropagation;
|
|
104
|
+
}) => boolean;
|
|
105
|
+
memoizedResultFunc: ((resultFuncArgs_0: {
|
|
106
|
+
rawSelectedItems: string | string[] | null;
|
|
107
|
+
selectedItemsMap: Map<string, true>;
|
|
108
|
+
isEnabled: boolean;
|
|
109
|
+
isMultiSelectEnabled: boolean;
|
|
110
|
+
isCheckboxSelectionEnabled: boolean;
|
|
111
|
+
selectionPropagation: import("../../..").TreeViewSelectionPropagation;
|
|
112
|
+
}) => boolean) & {
|
|
113
|
+
clearCache: () => void;
|
|
114
|
+
resultsCount: () => number;
|
|
115
|
+
resetResultsCount: () => void;
|
|
116
|
+
};
|
|
117
|
+
lastResult: () => boolean;
|
|
118
|
+
dependencies: [TreeViewRootSelector<UseTreeViewSelectionSignature>];
|
|
119
|
+
recomputations: () => number;
|
|
120
|
+
resetRecomputations: () => void;
|
|
121
|
+
dependencyRecomputations: () => number;
|
|
122
|
+
resetDependencyRecomputations: () => void;
|
|
123
|
+
} & {
|
|
124
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
125
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
126
|
+
};
|
|
127
|
+
/**
|
|
128
|
+
* Check if checkbox selection is enabled.
|
|
129
|
+
* @param {TreeViewState<[UseTreeViewSelectionSignature]>} state The state of the tree view.
|
|
130
|
+
* @returns {boolean} `true` if checkbox selection is enabled, `false` otherwise.
|
|
131
|
+
*/
|
|
132
|
+
export declare const selectorIsCheckboxSelectionEnabled: ((state: import("../../corePlugins/useTreeViewId/useTreeViewId.types").UseTreeViewIdState & import("./useTreeViewSelection.types").UseTreeViewSelectionState & Partial<{}> & {
|
|
133
|
+
cacheKey: import("../../models").TreeViewStateCacheKey;
|
|
134
|
+
}) => boolean) & {
|
|
135
|
+
clearCache: () => void;
|
|
136
|
+
resultsCount: () => number;
|
|
137
|
+
resetResultsCount: () => void;
|
|
138
|
+
} & {
|
|
139
|
+
resultFunc: (resultFuncArgs_0: {
|
|
140
|
+
rawSelectedItems: string | string[] | null;
|
|
141
|
+
selectedItemsMap: Map<string, true>;
|
|
142
|
+
isEnabled: boolean;
|
|
143
|
+
isMultiSelectEnabled: boolean;
|
|
144
|
+
isCheckboxSelectionEnabled: boolean;
|
|
145
|
+
selectionPropagation: import("../../..").TreeViewSelectionPropagation;
|
|
146
|
+
}) => boolean;
|
|
147
|
+
memoizedResultFunc: ((resultFuncArgs_0: {
|
|
148
|
+
rawSelectedItems: string | string[] | null;
|
|
149
|
+
selectedItemsMap: Map<string, true>;
|
|
150
|
+
isEnabled: boolean;
|
|
151
|
+
isMultiSelectEnabled: boolean;
|
|
152
|
+
isCheckboxSelectionEnabled: boolean;
|
|
153
|
+
selectionPropagation: import("../../..").TreeViewSelectionPropagation;
|
|
154
|
+
}) => boolean) & {
|
|
155
|
+
clearCache: () => void;
|
|
156
|
+
resultsCount: () => number;
|
|
157
|
+
resetResultsCount: () => void;
|
|
158
|
+
};
|
|
159
|
+
lastResult: () => boolean;
|
|
160
|
+
dependencies: [TreeViewRootSelector<UseTreeViewSelectionSignature>];
|
|
161
|
+
recomputations: () => number;
|
|
162
|
+
resetRecomputations: () => void;
|
|
163
|
+
dependencyRecomputations: () => number;
|
|
164
|
+
resetDependencyRecomputations: () => void;
|
|
165
|
+
} & {
|
|
166
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
167
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
168
|
+
};
|
|
169
|
+
/**
|
|
170
|
+
* Check if selection is enabled for an item (if selection is enabled and if the item is not disabled).
|
|
171
|
+
* @param {TreeViewState<[UseTreeViewSelectionSignature]>} state The state of the tree view.
|
|
172
|
+
* @param {string} itemId The id of the item to check.
|
|
173
|
+
* @returns {boolean} `true` if selection is enabled for the item, `false` otherwise.
|
|
174
|
+
*/
|
|
175
|
+
export declare const selectorIsItemSelectionEnabled: ((state: any, itemId: string) => boolean) & {
|
|
176
|
+
clearCache: () => void;
|
|
177
|
+
resultsCount: () => number;
|
|
178
|
+
resetResultsCount: () => void;
|
|
179
|
+
} & {
|
|
180
|
+
resultFunc: (resultFuncArgs_0: boolean, resultFuncArgs_1: boolean) => boolean;
|
|
181
|
+
memoizedResultFunc: ((resultFuncArgs_0: boolean, resultFuncArgs_1: boolean) => boolean) & {
|
|
182
|
+
clearCache: () => void;
|
|
183
|
+
resultsCount: () => number;
|
|
184
|
+
resetResultsCount: () => void;
|
|
185
|
+
};
|
|
186
|
+
lastResult: () => boolean;
|
|
187
|
+
dependencies: [((state: any, itemId: string) => boolean) & {
|
|
188
|
+
clearCache: () => void;
|
|
189
|
+
resultsCount: () => number;
|
|
190
|
+
resetResultsCount: () => void;
|
|
191
|
+
} & {
|
|
192
|
+
resultFunc: (resultFuncArgs_0: {
|
|
193
|
+
[itemId: string]: import("../..").TreeViewItemMeta;
|
|
194
|
+
}, resultFuncArgs_1: string) => boolean;
|
|
195
|
+
memoizedResultFunc: ((resultFuncArgs_0: {
|
|
196
|
+
[itemId: string]: import("../..").TreeViewItemMeta;
|
|
197
|
+
}, resultFuncArgs_1: string) => boolean) & {
|
|
198
|
+
clearCache: () => void;
|
|
199
|
+
resultsCount: () => number;
|
|
200
|
+
resetResultsCount: () => void;
|
|
201
|
+
};
|
|
202
|
+
lastResult: () => boolean;
|
|
203
|
+
dependencies: [((state: import("../../corePlugins/useTreeViewId/useTreeViewId.types").UseTreeViewIdState & import("../useTreeViewItems").UseTreeViewItemsState<import("../../..").TreeViewDefaultItemModelProperties> & Partial<{}> & {
|
|
204
|
+
cacheKey: import("../../models").TreeViewStateCacheKey;
|
|
205
|
+
}) => {
|
|
206
|
+
[itemId: string]: import("../..").TreeViewItemMeta;
|
|
207
|
+
}) & {
|
|
208
|
+
clearCache: () => void;
|
|
209
|
+
resultsCount: () => number;
|
|
210
|
+
resetResultsCount: () => void;
|
|
211
|
+
} & {
|
|
212
|
+
resultFunc: (resultFuncArgs_0: {
|
|
213
|
+
disabledItemsFocusable: boolean;
|
|
214
|
+
itemModelLookup: {
|
|
215
|
+
[itemId: string]: import("../../..").TreeViewBaseItem<import("../../..").TreeViewDefaultItemModelProperties>;
|
|
216
|
+
};
|
|
217
|
+
itemMetaLookup: {
|
|
218
|
+
[itemId: string]: import("../..").TreeViewItemMeta;
|
|
219
|
+
};
|
|
220
|
+
itemOrderedChildrenIdsLookup: {
|
|
221
|
+
[parentItemId: string]: string[];
|
|
222
|
+
};
|
|
223
|
+
itemChildrenIndexesLookup: {
|
|
224
|
+
[parentItemId: string]: {
|
|
225
|
+
[itemId: string]: number;
|
|
226
|
+
};
|
|
227
|
+
};
|
|
228
|
+
loading: boolean;
|
|
229
|
+
error: Error | null;
|
|
230
|
+
}) => {
|
|
231
|
+
[itemId: string]: import("../..").TreeViewItemMeta;
|
|
232
|
+
};
|
|
233
|
+
memoizedResultFunc: ((resultFuncArgs_0: {
|
|
234
|
+
disabledItemsFocusable: boolean;
|
|
235
|
+
itemModelLookup: {
|
|
236
|
+
[itemId: string]: import("../../..").TreeViewBaseItem<import("../../..").TreeViewDefaultItemModelProperties>;
|
|
237
|
+
};
|
|
238
|
+
itemMetaLookup: {
|
|
239
|
+
[itemId: string]: import("../..").TreeViewItemMeta;
|
|
240
|
+
};
|
|
241
|
+
itemOrderedChildrenIdsLookup: {
|
|
242
|
+
[parentItemId: string]: string[];
|
|
243
|
+
};
|
|
244
|
+
itemChildrenIndexesLookup: {
|
|
245
|
+
[parentItemId: string]: {
|
|
246
|
+
[itemId: string]: number;
|
|
247
|
+
};
|
|
248
|
+
};
|
|
249
|
+
loading: boolean;
|
|
250
|
+
error: Error | null;
|
|
251
|
+
}) => {
|
|
252
|
+
[itemId: string]: import("../..").TreeViewItemMeta;
|
|
253
|
+
}) & {
|
|
254
|
+
clearCache: () => void;
|
|
255
|
+
resultsCount: () => number;
|
|
256
|
+
resetResultsCount: () => void;
|
|
257
|
+
};
|
|
258
|
+
lastResult: () => {
|
|
259
|
+
[itemId: string]: import("../..").TreeViewItemMeta;
|
|
260
|
+
};
|
|
261
|
+
dependencies: [TreeViewRootSelector<import("../useTreeViewItems").UseTreeViewItemsSignature>];
|
|
262
|
+
recomputations: () => number;
|
|
263
|
+
resetRecomputations: () => void;
|
|
264
|
+
dependencyRecomputations: () => number;
|
|
265
|
+
resetDependencyRecomputations: () => void;
|
|
266
|
+
} & {
|
|
267
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
268
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
269
|
+
}, (_: any, itemId: string) => string];
|
|
270
|
+
recomputations: () => number;
|
|
271
|
+
resetRecomputations: () => void;
|
|
272
|
+
dependencyRecomputations: () => number;
|
|
273
|
+
resetDependencyRecomputations: () => void;
|
|
274
|
+
} & {
|
|
275
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
276
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
277
|
+
}, ((state: import("../../corePlugins/useTreeViewId/useTreeViewId.types").UseTreeViewIdState & import("./useTreeViewSelection.types").UseTreeViewSelectionState & Partial<{}> & {
|
|
278
|
+
cacheKey: import("../../models").TreeViewStateCacheKey;
|
|
279
|
+
}) => boolean) & {
|
|
280
|
+
clearCache: () => void;
|
|
281
|
+
resultsCount: () => number;
|
|
282
|
+
resetResultsCount: () => void;
|
|
283
|
+
} & {
|
|
284
|
+
resultFunc: (resultFuncArgs_0: {
|
|
285
|
+
rawSelectedItems: string | string[] | null;
|
|
286
|
+
selectedItemsMap: Map<string, true>;
|
|
287
|
+
isEnabled: boolean;
|
|
288
|
+
isMultiSelectEnabled: boolean;
|
|
289
|
+
isCheckboxSelectionEnabled: boolean;
|
|
290
|
+
selectionPropagation: import("../../..").TreeViewSelectionPropagation;
|
|
291
|
+
}) => boolean;
|
|
292
|
+
memoizedResultFunc: ((resultFuncArgs_0: {
|
|
293
|
+
rawSelectedItems: string | string[] | null;
|
|
294
|
+
selectedItemsMap: Map<string, true>;
|
|
295
|
+
isEnabled: boolean;
|
|
296
|
+
isMultiSelectEnabled: boolean;
|
|
297
|
+
isCheckboxSelectionEnabled: boolean;
|
|
298
|
+
selectionPropagation: import("../../..").TreeViewSelectionPropagation;
|
|
299
|
+
}) => boolean) & {
|
|
300
|
+
clearCache: () => void;
|
|
301
|
+
resultsCount: () => number;
|
|
302
|
+
resetResultsCount: () => void;
|
|
303
|
+
};
|
|
304
|
+
lastResult: () => boolean;
|
|
305
|
+
dependencies: [TreeViewRootSelector<UseTreeViewSelectionSignature>];
|
|
306
|
+
recomputations: () => number;
|
|
307
|
+
resetRecomputations: () => void;
|
|
308
|
+
dependencyRecomputations: () => number;
|
|
309
|
+
resetDependencyRecomputations: () => void;
|
|
310
|
+
} & {
|
|
311
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
312
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
313
|
+
}];
|
|
314
|
+
recomputations: () => number;
|
|
315
|
+
resetRecomputations: () => void;
|
|
316
|
+
dependencyRecomputations: () => number;
|
|
317
|
+
resetDependencyRecomputations: () => void;
|
|
318
|
+
} & {
|
|
319
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
320
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
321
|
+
};
|
|
322
|
+
/**
|
|
323
|
+
* Get the selection propagation rules.
|
|
324
|
+
* @param {TreeViewState<[UseTreeViewSelectionSignature]>} state The state of the tree view.
|
|
325
|
+
* @returns {TreeViewSelectionPropagation} The selection propagation rules.
|
|
326
|
+
*/
|
|
327
|
+
export declare const selectorSelectionPropagationRules: ((state: import("../../corePlugins/useTreeViewId/useTreeViewId.types").UseTreeViewIdState & import("./useTreeViewSelection.types").UseTreeViewSelectionState & Partial<{}> & {
|
|
328
|
+
cacheKey: import("../../models").TreeViewStateCacheKey;
|
|
329
|
+
}) => import("../../..").TreeViewSelectionPropagation) & {
|
|
330
|
+
clearCache: () => void;
|
|
331
|
+
resultsCount: () => number;
|
|
332
|
+
resetResultsCount: () => void;
|
|
333
|
+
} & {
|
|
334
|
+
resultFunc: (resultFuncArgs_0: {
|
|
335
|
+
rawSelectedItems: string | string[] | null;
|
|
336
|
+
selectedItemsMap: Map<string, true>;
|
|
337
|
+
isEnabled: boolean;
|
|
338
|
+
isMultiSelectEnabled: boolean;
|
|
339
|
+
isCheckboxSelectionEnabled: boolean;
|
|
340
|
+
selectionPropagation: import("../../..").TreeViewSelectionPropagation;
|
|
341
|
+
}) => import("../../..").TreeViewSelectionPropagation;
|
|
342
|
+
memoizedResultFunc: ((resultFuncArgs_0: {
|
|
343
|
+
rawSelectedItems: string | string[] | null;
|
|
344
|
+
selectedItemsMap: Map<string, true>;
|
|
345
|
+
isEnabled: boolean;
|
|
346
|
+
isMultiSelectEnabled: boolean;
|
|
347
|
+
isCheckboxSelectionEnabled: boolean;
|
|
348
|
+
selectionPropagation: import("../../..").TreeViewSelectionPropagation;
|
|
349
|
+
}) => import("../../..").TreeViewSelectionPropagation) & {
|
|
350
|
+
clearCache: () => void;
|
|
351
|
+
resultsCount: () => number;
|
|
352
|
+
resetResultsCount: () => void;
|
|
353
|
+
};
|
|
354
|
+
lastResult: () => import("../../..").TreeViewSelectionPropagation;
|
|
355
|
+
dependencies: [TreeViewRootSelector<UseTreeViewSelectionSignature>];
|
|
356
|
+
recomputations: () => number;
|
|
357
|
+
resetRecomputations: () => void;
|
|
358
|
+
dependencyRecomputations: () => number;
|
|
359
|
+
resetDependencyRecomputations: () => void;
|
|
360
|
+
} & {
|
|
361
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
362
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
32
363
|
};
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.selectorIsItemSelected = void 0;
|
|
6
|
+
exports.selectorSelectionPropagationRules = exports.selectorIsSelectionEnabled = exports.selectorIsMultiSelectEnabled = exports.selectorIsItemSelectionEnabled = exports.selectorIsItemSelected = exports.selectorIsCheckboxSelectionEnabled = void 0;
|
|
7
7
|
var _selectors = require("../../utils/selectors");
|
|
8
|
+
var _useTreeViewItems = require("../useTreeViewItems/useTreeViewItems.selectors");
|
|
8
9
|
const selectorTreeViewSelectionState = state => state.selection;
|
|
9
10
|
|
|
10
11
|
/**
|
|
@@ -12,4 +13,40 @@ const selectorTreeViewSelectionState = state => state.selection;
|
|
|
12
13
|
* @param {TreeViewState<[UseTreeViewSelectionSignature]>} state The state of the tree view.
|
|
13
14
|
* @returns {boolean} `true` if the item is selected, `false` otherwise.
|
|
14
15
|
*/
|
|
15
|
-
const selectorIsItemSelected = exports.selectorIsItemSelected = (0, _selectors.createSelector)([selectorTreeViewSelectionState, (_, itemId) => itemId], (selectionState, itemId) => selectionState.selectedItemsMap.has(itemId));
|
|
16
|
+
const selectorIsItemSelected = exports.selectorIsItemSelected = (0, _selectors.createSelector)([selectorTreeViewSelectionState, (_, itemId) => itemId], (selectionState, itemId) => selectionState.selectedItemsMap.has(itemId));
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Check if multi selection is enabled.
|
|
20
|
+
* @param {TreeViewState<[UseTreeViewSelectionSignature]>} state The state of the tree view.
|
|
21
|
+
* @returns {boolean} `true` if multi selection is enabled, `false` otherwise.
|
|
22
|
+
*/
|
|
23
|
+
const selectorIsMultiSelectEnabled = exports.selectorIsMultiSelectEnabled = (0, _selectors.createSelector)([selectorTreeViewSelectionState], selectionState => selectionState.isEnabled && selectionState.isMultiSelectEnabled);
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Check if selection is enabled.
|
|
27
|
+
* @param {TreeViewState<[UseTreeViewSelectionSignature]>} state The state of the tree view.
|
|
28
|
+
* @returns {boolean} `true` if selection is enabled, `false` otherwise.
|
|
29
|
+
*/
|
|
30
|
+
const selectorIsSelectionEnabled = exports.selectorIsSelectionEnabled = (0, _selectors.createSelector)([selectorTreeViewSelectionState], selectionState => selectionState.isEnabled);
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Check if checkbox selection is enabled.
|
|
34
|
+
* @param {TreeViewState<[UseTreeViewSelectionSignature]>} state The state of the tree view.
|
|
35
|
+
* @returns {boolean} `true` if checkbox selection is enabled, `false` otherwise.
|
|
36
|
+
*/
|
|
37
|
+
const selectorIsCheckboxSelectionEnabled = exports.selectorIsCheckboxSelectionEnabled = (0, _selectors.createSelector)([selectorTreeViewSelectionState], selectionState => selectionState.isCheckboxSelectionEnabled);
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Check if selection is enabled for an item (if selection is enabled and if the item is not disabled).
|
|
41
|
+
* @param {TreeViewState<[UseTreeViewSelectionSignature]>} state The state of the tree view.
|
|
42
|
+
* @param {string} itemId The id of the item to check.
|
|
43
|
+
* @returns {boolean} `true` if selection is enabled for the item, `false` otherwise.
|
|
44
|
+
*/
|
|
45
|
+
const selectorIsItemSelectionEnabled = exports.selectorIsItemSelectionEnabled = (0, _selectors.createSelector)([_useTreeViewItems.selectorIsItemDisabled, selectorIsSelectionEnabled], (isItemDisabled, isSelectionEnabled) => isSelectionEnabled && !isItemDisabled);
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Get the selection propagation rules.
|
|
49
|
+
* @param {TreeViewState<[UseTreeViewSelectionSignature]>} state The state of the tree view.
|
|
50
|
+
* @returns {TreeViewSelectionPropagation} The selection propagation rules.
|
|
51
|
+
*/
|
|
52
|
+
const selectorSelectionPropagationRules = exports.selectorSelectionPropagationRules = (0, _selectors.createSelector)([selectorTreeViewSelectionState], selectionState => selectionState.selectionPropagation);
|
|
@@ -115,18 +115,19 @@ export interface UseTreeViewSelectionParameters<Multiple extends boolean | undef
|
|
|
115
115
|
export type UseTreeViewSelectionDefaultizedParameters<Multiple extends boolean> = DefaultizedProps<UseTreeViewSelectionParameters<Multiple>, 'disableSelection' | 'defaultSelectedItems' | 'multiSelect' | 'checkboxSelection' | 'selectionPropagation'>;
|
|
116
116
|
export interface UseTreeViewSelectionState {
|
|
117
117
|
selection: {
|
|
118
|
+
rawSelectedItems: TreeViewSelectionValue<boolean>;
|
|
118
119
|
selectedItemsMap: Map<string, true>;
|
|
120
|
+
isEnabled: boolean;
|
|
121
|
+
isMultiSelectEnabled: boolean;
|
|
122
|
+
isCheckboxSelectionEnabled: boolean;
|
|
123
|
+
selectionPropagation: TreeViewSelectionPropagation;
|
|
119
124
|
};
|
|
120
125
|
}
|
|
121
|
-
interface UseTreeViewSelectionContextValue {
|
|
122
|
-
selection: Pick<UseTreeViewSelectionDefaultizedParameters<boolean>, 'multiSelect' | 'checkboxSelection' | 'disableSelection' | 'selectionPropagation'>;
|
|
123
|
-
}
|
|
124
126
|
export type UseTreeViewSelectionSignature = TreeViewPluginSignature<{
|
|
125
127
|
params: UseTreeViewSelectionParameters<any>;
|
|
126
128
|
defaultizedParams: UseTreeViewSelectionDefaultizedParameters<any>;
|
|
127
129
|
instance: UseTreeViewSelectionInstance;
|
|
128
130
|
publicAPI: UseTreeViewSelectionPublicAPI;
|
|
129
|
-
contextValue: UseTreeViewSelectionContextValue;
|
|
130
131
|
modelNames: 'selectedItems';
|
|
131
132
|
state: UseTreeViewSelectionState;
|
|
132
133
|
dependencies: [UseTreeViewItemsSignature, UseTreeViewExpansionSignature, UseTreeViewItemsSignature];
|
|
@@ -3,7 +3,7 @@ import { TreeViewAnyPluginSignature, TreeViewState } from "../models/index.js";
|
|
|
3
3
|
/**
|
|
4
4
|
* Type of a selector that take the whole tree view state as input and returns a value based on a required plugin.
|
|
5
5
|
*/
|
|
6
|
-
export type TreeViewRootSelector<TSignature extends TreeViewAnyPluginSignature> = <TSignatures extends [TSignature]>(state: TreeViewState<TSignatures>) => TSignature['state'][keyof TSignature['state']];
|
|
6
|
+
export type TreeViewRootSelector<TSignature extends TreeViewAnyPluginSignature, IsOptional extends boolean = false> = <TSignatures extends [TSignature]>(state: TreeViewState<TSignatures>) => IsOptional extends true ? TSignature['state'][keyof TSignature['state']] | undefined : TSignature['state'][keyof TSignature['state']];
|
|
7
7
|
/**
|
|
8
8
|
* Type of a selector that take the whole tree view state as input and returns a value based on an optional plugin.
|
|
9
9
|
*/
|