import {
forEach
} from 'min-dash';
export function getTopLevel(elements) {
var topLevel = {},
parents = [],
result = [],
clearedParents = [];
forEach(elements, function(element) {
var parent = element.parent;
if (!topLevel[parent.id]) {
topLevel[parent.id] = [];
}
if (parents.indexOf(parent.id) === -1) {
parents.push(parent.id);
}
topLevel[parent.id].push(element);
});
forEach(parents, function(parent) {
forEach(topLevel[parent], function(element) {
Iif (topLevel[element.id]) {
clearedParents.push(element.id);
}
});
});
forEach(parents, function(parent) {
var idx = clearedParents.indexOf(parent);
Eif (idx === -1) {
result = result.concat(topLevel[parent]);
}
});
return result;
} |