UNPKG

@mui/x-tree-view

Version:

The community edition of the MUI X Tree View components.

58 lines (57 loc) 2.41 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.createMinimalInitialState = createMinimalInitialState; exports.createTreeViewDefaultId = void 0; exports.deriveStateFromParameters = deriveStateFromParameters; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _empty = require("@base-ui/utils/empty"); var _utils = require("../plugins/expansion/utils"); var _items = require("../plugins/items"); /** * Returns the properties of the state that are derived from the parameters. * This do not contain state properties that don't update whenever the parameters update. */ function deriveStateFromParameters(parameters) { return { disabledItemsFocusable: parameters.disabledItemsFocusable ?? false, domStructure: 'nested', itemChildrenIndentation: parameters.itemChildrenIndentation ?? '12px', providedTreeId: parameters.id, // TODO: Fix expansionTrigger: (0, _utils.getExpansionTrigger)({ isItemEditable: parameters.isItemEditable, expansionTrigger: parameters.expansionTrigger }), disableSelection: parameters.disableSelection ?? false, multiSelect: parameters.multiSelect ?? false, checkboxSelection: parameters.checkboxSelection ?? false, selectionPropagation: parameters.selectionPropagation ?? _empty.EMPTY_OBJECT }; } function applyModelInitialValue(controlledValue, defaultValue, fallback) { if (controlledValue !== undefined) { return controlledValue; } if (defaultValue !== undefined) { return defaultValue; } return fallback; } function createMinimalInitialState(parameters) { return (0, _extends2.default)({ treeId: undefined, focusedItemId: null }, deriveStateFromParameters(parameters), _items.TreeViewItemsPlugin.buildItemsStateIfNeeded(parameters), { expandedItems: applyModelInitialValue(parameters.expandedItems, parameters.defaultExpandedItems, []), selectedItems: applyModelInitialValue(parameters.selectedItems, parameters.defaultSelectedItems, parameters.multiSelect ? _empty.EMPTY_ARRAY : null) }); } let globalTreeViewDefaultId = 0; const createTreeViewDefaultId = () => { globalTreeViewDefaultId += 1; return `mui-tree-view-${globalTreeViewDefaultId}`; }; exports.createTreeViewDefaultId = createTreeViewDefaultId;