@mui/x-tree-view
Version:
The community edition of the MUI X Tree View components.
70 lines (69 loc) • 2.93 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.itemsSelectors = void 0;
var _store = require("@mui/x-internals/store");
var _useTreeViewItems = require("./useTreeViewItems.utils");
const EMPTY_CHILDREN = [];
const itemsSelectors = exports.itemsSelectors = {
/**
* Gets the DOM structure of the Tree View.
*/
domStructure: (0, _store.createSelector)(state => state.items.domStructure),
/**
* Checks whether the disabled items are focusable.
*/
disabledItemFocusable: (0, _store.createSelector)(state => state.items.disabledItemsFocusable),
/**
* Gets the meta-information of all items.
*/
itemMetaLookup: (0, _store.createSelector)(state => state.items.itemMetaLookup),
/**
* Gets the ordered children ids of all items.
*/
itemOrderedChildrenIdsLookup: (0, _store.createSelector)(state => state.items.itemOrderedChildrenIdsLookup),
/**
* Gets the meta-information of an item.
*/
itemMeta: (0, _store.createSelector)((state, itemId) => state.items.itemMetaLookup[itemId ?? _useTreeViewItems.TREE_VIEW_ROOT_PARENT_ID] ?? null),
/**
* Gets the ordered children ids of an item.
*/
itemOrderedChildrenIds: (0, _store.createSelector)((state, itemId) => state.items.itemOrderedChildrenIdsLookup[itemId ?? _useTreeViewItems.TREE_VIEW_ROOT_PARENT_ID] ?? EMPTY_CHILDREN),
/**
* Gets the model of an item.
*/
itemModel: (0, _store.createSelector)((state, itemId) => state.items.itemModelLookup[itemId]),
/**
* Checks whether an item is disabled.
*/
isItemDisabled: (0, _store.createSelector)((state, itemId) => (0, _useTreeViewItems.isItemDisabled)(state.items.itemMetaLookup, itemId)),
/**
* Gets the index of an item in its parent's children.
*/
itemIndex: (0, _store.createSelector)((state, itemId) => {
const itemMeta = state.items.itemMetaLookup[itemId];
if (itemMeta == null) {
return -1;
}
const parentIndexes = state.items.itemChildrenIndexesLookup[itemMeta.parentId ?? _useTreeViewItems.TREE_VIEW_ROOT_PARENT_ID];
return parentIndexes[itemMeta.id];
}),
/**
* Gets the id of an item's parent.
*/
itemParentId: (0, _store.createSelector)((state, itemId) => state.items.itemMetaLookup[itemId]?.parentId ?? null),
/**
* Gets the depth of an item (items at the root level have a depth of 0).
*/
itemDepth: (0, _store.createSelector)((state, itemId) => state.items.itemMetaLookup[itemId]?.depth ?? 0),
/**
* Checks whether an item can be focused.
*/
canItemBeFocused: (0, _store.createSelector)((state, itemId) => state.items.disabledItemsFocusable || !(0, _useTreeViewItems.isItemDisabled)(state.items.itemMetaLookup, itemId)),
/**
* Checks whether an item is selectable based on the `isItemSelectionDisabled` prop.
*/
isItemSelectable: (0, _store.createSelector)((state, itemId) => state.items.itemMetaLookup[itemId]?.selectable ?? true)
};