@mantine/core
Version:
React components library focused on usability, accessibility and developer experience
28 lines (27 loc) • 927 B
JavaScript
"use client";
//#region packages/@mantine/core/src/components/Tree/flatten-tree-data/flatten-tree-data.ts
function flattenTreeDataTo(acc, data, expandedState, parent, level) {
for (let i = 0; i < data.length; i++) {
const node = data[i];
const hasLoadedChildren = Array.isArray(node.children);
const hasAsyncChildren = !!node.hasChildren && !hasLoadedChildren;
const hasChildren = hasLoadedChildren || hasAsyncChildren;
const expanded = expandedState[node.value] || false;
acc.push({
node,
level,
parent,
hasChildren,
expanded
});
if (expanded && hasLoadedChildren) flattenTreeDataTo(acc, node.children, expandedState, node.value, level + 1);
}
}
function flattenTreeData(data, expandedState) {
const result = [];
flattenTreeDataTo(result, data, expandedState, null, 1);
return result;
}
//#endregion
exports.flattenTreeData = flattenTreeData;
//# sourceMappingURL=flatten-tree-data.cjs.map