@mui/x-tree-view
Version:
The community edition of the MUI X Tree View components.
58 lines (57 loc) • 2.41 kB
JavaScript
;
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;