function transformData(data, ident, stages, groupAttr) {
let tData = [];
stages.forEach((stage) => {
data.forEach((r) => {
let time = typeof stage.time === "number" ? stage.time : r[stage.time];
let row = {
[ident]: r[ident],
__stageName: stage.name,
__stageId: stage.id,
__time: time
};
if (groupAttr) {
row = { ...row, [groupAttr]: r[groupAttr] };
}
if (stage.variables.length > 0) {
stage.variables.forEach((v) => {
row = { ...row, [v.name]: r[v.var] };
});
tData.push(row);
}
});
});
return tData;
}