function transformOverlapDataToGraphData()

in dashboard/src/main/resources/static/metrics_ui.js [80:104]


function transformOverlapDataToGraphData(chartMetricName) {
  return (data) => {
    const uniqueDimensions = [...new Set(data.flatMap(x => x.dimensions))];
    const chartData = new google.visualization.DataTable();
    chartData.addColumn('string', chartMetricName);
    uniqueDimensions.forEach(
        dimension => chartData.addColumn('number', dimension));

    let overlapMap = {};
    data.forEach(item => {
      if (!overlapMap[item.dimensions[0]]) {
        overlapMap[item.dimensions[0]] = {};
      }
      overlapMap[item.dimensions[0]][item.dimensions[1]] = item.metric;
    });

    chartData.addRows(
        Object.keys(overlapMap).map(
            dimension => [dimension].concat(uniqueDimensions.map(
                overlapDimension => overlapMap[dimension][overlapDimension])))
    );

    return chartData;
  };
}