UNPKG

@mui/x-tree-view

Version:

The community edition of the MUI X Tree View components.

50 lines (44 loc) 2.57 kB
"use strict"; 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);