custom_stack =
{
const result_map = new Map();
data.columns.slice(1).forEach((label, i) =>
{
var entry = [];
entry.key = label;
entry.index = i;
result_map.set(label, entry);
});
var temp_map = new Map();
data.forEach((col, i) => {
data.columns.slice(1).forEach((key, j) => {
temp_map.set(key, col[key]);
});
const sorted_map = new Map([...temp_map.entries()].sort((a, b) => b[1] - a[1] ));
var prev_value = 0;
sorted_map.forEach((value, key) => {
const dest = result_map.get(key);
const new_entry = [ prev_value, prev_value + value ];
prev_value += value;
new_entry.data = data[i];
dest.push(new_entry);
});
});
return [...result_map.values()];
}