dtable-utils
Version:
dtable common utils
37 lines (33 loc) • 973 B
JavaScript
Object.defineProperty(exports, '__esModule', { value: true });
/**
* Get group by paths
* @param {array} paths e.g. [ 0, 1, 2 ]
* @param {array} groups grouped rows
* @returns group, object
*/
var getGroupByPath = function getGroupByPath(paths, groups) {
if (!Array.isArray(paths) || !Array.isArray(groups)) {
return null;
}
var level0GroupIndex = paths[0];
if (level0GroupIndex < 0 || level0GroupIndex >= groups.length) {
return null;
}
var level = 1;
var foundGroup = groups[level0GroupIndex];
while (level < paths.length) {
if (!foundGroup) {
break;
}
var subGroups = foundGroup.subgroups;
var currentLevelGroupIndex = paths[level];
if (!Array.isArray(subGroups) || currentLevelGroupIndex < 0 || currentLevelGroupIndex >= subGroups.length) {
break;
}
foundGroup = subGroups[currentLevelGroupIndex];
level += 1;
}
return foundGroup;
};
exports.getGroupByPath = getGroupByPath;
;