UNPKG

@mui/x-tree-view

Version:

The community edition of the MUI X Tree View components.

62 lines (61 loc) 2.33 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 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) };