UNPKG

@mui/x-tree-view

Version:

The community edition of the MUI X Tree View components.

67 lines (66 loc) 2.88 kB
"use strict"; 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 the selection feature is enabled for an item. * Returns `true` when selection is enabled on the Tree View and the item is selectable (even if the item is disabled). */ isFeatureEnabledForItem: (0, _store.createSelector)(_useTreeViewItems.itemsSelectors.isItemSelectable, state => state.selection.isEnabled, (isItemSelectable, isSelectionEnabled, _itemId) => isSelectionEnabled && isItemSelectable), /** * Checks whether an item can be selected (if selection is enabled, if the item is not disabled, and if the item is selectable). */ canItemBeSelected: (0, _store.createSelector)(_useTreeViewItems.itemsSelectors.isItemDisabled, _useTreeViewItems.itemsSelectors.isItemSelectable, state => state.selection.isEnabled, (isItemDisabled, isItemSelectable, isSelectionEnabled, _itemId) => isSelectionEnabled && !isItemDisabled && isItemSelectable) };