@mui/x-tree-view
Version:
The community edition of the MUI X Tree View components.
62 lines (61 loc) • 2.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.selectionSelectors = void 0;
var _store = require("@mui/x-internals/store");
var _useTreeViewItems = require("../useTreeViewItems/useTreeViewItems.selectors");
const selectedItemsSelector = (0, _store.createSelectorMemoized)(state => state.selection.selectedItems, selectedItemsRaw => {
if (Array.isArray(selectedItemsRaw)) {
return selectedItemsRaw;
}
if (selectedItemsRaw != null) {
return [selectedItemsRaw];
}
return [];
});
const selectedItemsMapSelector = (0, _store.createSelectorMemoized)(selectedItemsSelector, selectedItems => {
const selectedItemsMap = new Map();
selectedItems.forEach(id => {
selectedItemsMap.set(id, true);
});
return selectedItemsMap;
});
const selectionSelectors = exports.selectionSelectors = {
/**
* Gets the selected items as provided to the component.
*/
selectedItemsRaw: (0, _store.createSelector)(state => state.selection.selectedItems),
/**
* Gets the selected items as an array.
*/
selectedItems: selectedItemsSelector,
/**
* Gets the selected items as a Map.
*/
selectedItemsMap: selectedItemsMapSelector,
/**
* Checks whether selection is enabled.
*/
enabled: (0, _store.createSelector)(state => state.selection.isEnabled),
/**
* Checks whether multi selection is enabled.
*/
isMultiSelectEnabled: (0, _store.createSelector)(state => state.selection.isMultiSelectEnabled),
/**
* Checks whether checkbox selection is enabled.
*/
isCheckboxSelectionEnabled: (0, _store.createSelector)(state => state.selection.isCheckboxSelectionEnabled),
/**
* Gets the selection propagation rules.
*/
propagationRules: (0, _store.createSelector)(state => state.selection.selectionPropagation),
/**
* Checks whether an item is selected.
*/
isItemSelected: (0, _store.createSelector)(selectedItemsMapSelector, (selectedItemsMap, itemId) => selectedItemsMap.has(itemId)),
/**
* Checks whether an item can be selected (if selection is enabled and if the item is not disabled).
*/
canItemBeSelected: (0, _store.createSelector)(_useTreeViewItems.itemsSelectors.isItemDisabled, state => state.selection.isEnabled, (isItemDisabled, isSelectionEnabled, _itemId) => isSelectionEnabled && !isItemDisabled)
};