in src/visual.ts [182:252]
public converter(dataView: DataView, colors: IColorPalette): TableHeatMapChartData {
if (!dataView
|| !dataView.categorical
|| !dataView.categorical.categories
|| !dataView.categorical.categories[0]
|| !dataView.categorical.categories[0].values
|| !dataView.categorical.categories[0].values.length
|| !dataView.categorical.values
|| !dataView.categorical.values[0]
|| !dataView.categorical.values[0].values
|| !dataView.categorical.values[0].values.length
) {
return <TableHeatMapChartData>{
dataPoints: null
};
}
let categoryValueFormatter: IValueFormatter;
let valueFormatter: IValueFormatter;
let dataPoints: TableHeatMapDataPoint[] = [];
categoryValueFormatter = ValueFormatter.create({
format: ValueFormatter.getFormatStringByColumn(dataView.categorical.categories[0].source),
value: dataView.categorical.categories[0].values[0]
});
valueFormatter = ValueFormatter.create({
format: ValueFormatter.getFormatStringByColumn(dataView.categorical.values[0].source),
value: dataView.categorical.values[0].values[0]
});
// dataView.categorical.categories
dataView.categorical.categories[0].values.forEach((categoryX, indexX) => {
dataView.categorical.values.forEach((categoryY) => {
let categoryYFormatter = ValueFormatter.create({
format: categoryY.source.format,
value: dataView.categorical.values[0].values[0]
});
let value = categoryY.values[indexX];
dataPoints.push({
categoryX: categoryX,
categoryY: categoryY.source.displayName,
value: value,
valueStr: categoryYFormatter.format(value),
tooltipInfo: [{
displayName: `Category`,
value: (categoryX || "").toString()
},
{
displayName: `Y`,
value: (categoryY.source.displayName || "").toString()
},
{
displayName: `Value`,
value: categoryYFormatter.format(value)
}]
});
});
});
return <TableHeatMapChartData>{
dataPoints: dataPoints,
categoryX: dataView.categorical.categories[0].values.filter((n) => {
return n !== undefined;
}),
categoryY: dataView.categorical.values.map(v => v.source.displayName).filter((n) => {
return n !== undefined;
}),
categoryValueFormatter: categoryValueFormatter,
valueFormatter: valueFormatter
};
}