2024-01-29 09:26:07 +08:00

28 lines
933 B
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.flatten = void 0;
function flatten(treeNodes, expandedKeys) {
const expandedKeySet = expandedKeys ? new Set(expandedKeys) : undefined;
const flattenedNodes = [];
function traverse(treeNodes) {
treeNodes.forEach((treeNode) => {
flattenedNodes.push(treeNode);
if (treeNode.isLeaf || !treeNode.children || treeNode.ignored)
return;
if (treeNode.isGroup) {
// group node shouldn't be expanded
traverse(treeNode.children);
}
else if (
// normal non-leaf node
expandedKeySet === undefined ||
expandedKeySet.has(treeNode.key)) {
traverse(treeNode.children);
}
});
}
traverse(treeNodes);
return flattenedNodes;
}
exports.flatten = flatten;