@mui/x-tree-view
Version:
The community edition of the MUI X Tree View components.
50 lines (44 loc) • 2.57 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.selectorItemExpansionTrigger = exports.selectorIsItemExpanded = exports.selectorIsItemExpandable = exports.selectorExpandedItemsMap = exports.selectorExpandedItems = void 0;
var _selectors = require("../../utils/selectors");
var _useTreeViewItems = require("../useTreeViewItems/useTreeViewItems.selectors");
const selectorExpansion = state => state.expansion;
/**
* Get the expanded items.
* @param {TreeViewState<[UseTreeViewExpansionSignature]>} state The state of the tree view.
* @returns {TreeViewItemId[]} The expanded items.
*/
const selectorExpandedItems = exports.selectorExpandedItems = (0, _selectors.createSelector)([selectorExpansion], expansionState => expansionState.expandedItems);
/**
* Get the expanded items as a Map.
* @param {TreeViewState<[UseTreeViewExpansionSignature]>} state The state of the tree view.
* @returns {TreeViewExpansionValue} The expanded items as a Map.
*/
const selectorExpandedItemsMap = exports.selectorExpandedItemsMap = (0, _selectors.createSelector)([selectorExpandedItems], expandedItems => {
const expandedItemsMap = new Map();
expandedItems.forEach(id => {
expandedItemsMap.set(id, true);
});
return expandedItemsMap;
});
/**
* Check if an item is expanded.
* @param {TreeViewState<[UseTreeViewExpansionSignature]>} state The state of the tree view.
* @returns {boolean} `true` if the item is expanded, `false` otherwise.
*/
const selectorIsItemExpanded = exports.selectorIsItemExpanded = (0, _selectors.createSelector)([selectorExpandedItemsMap, (_, itemId) => itemId], (expandedItemsMap, itemId) => expandedItemsMap.has(itemId));
/**
* Check if an item is expandable.
* @param {TreeViewState<[UseTreeViewItemsSignature]>} state The state of the tree view.
* @returns {boolean} `true` if the item is expandable, `false` otherwise.
*/
const selectorIsItemExpandable = exports.selectorIsItemExpandable = (0, _selectors.createSelector)([_useTreeViewItems.selectorItemMeta], itemMeta => itemMeta?.expandable ?? false);
/**
* Get the slot that triggers the item's expansion when clicked.
* @param {TreeViewState<[UseTreeViewExpansionSignature]>} state The state of the tree view.
* @returns {'content' | 'iconContainer'} The slot that triggers the item's expansion when clicked. Is `null` if the item is not expandable.
*/
const selectorItemExpansionTrigger = exports.selectorItemExpansionTrigger = (0, _selectors.createSelector)([selectorExpansion], expansionState => expansionState.expansionTrigger);