UNPKG

@mui/x-tree-view

Version:

The community edition of the MUI X Tree View components.

51 lines (50 loc) • 2.18 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.createMinimalInitialState = createMinimalInitialState; 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, 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, itemHeight: parameters.itemHeight ?? null }; } 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: parameters.defaultId, 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) }); }