in src/EnhancedScatterChart.ts [1037:1104]
private static getMetadata(
categories: DataViewCategoryColumn[],
grouped: DataViewValueColumnGroup[],
): EnhancedScatterChartMeasureMetadata {
let categoryIndex: number = getCategoryIndexOfRole(categories, EnhancedScatterChart.ColumnCategory),
colorFillIndex: number = getCategoryIndexOfRole(categories, EnhancedScatterChart.ColumnColorFill),
imageIndex: number = getCategoryIndexOfRole(categories, EnhancedScatterChart.ColumnImage),
backdropIndex: number = getCategoryIndexOfRole(categories, EnhancedScatterChart.ColumnBackdrop),
xIndex: number = getMeasureIndexOfRole(grouped, EnhancedScatterChart.ColumnX),
yIndex: number = getMeasureIndexOfRole(grouped, EnhancedScatterChart.ColumnY),
sizeIndex: number = getMeasureIndexOfRole(grouped, EnhancedScatterChart.ColumnSize),
shapeIndex: number = getMeasureIndexOfRole(grouped, EnhancedScatterChart.ColumnShape),
rotationIndex: number = getMeasureIndexOfRole(grouped, EnhancedScatterChart.ColumnRotation),
xStartIndex: number = getMeasureIndexOfRole(grouped, EnhancedScatterChart.ColumnXStart),
xEndIndex: number = getMeasureIndexOfRole(grouped, EnhancedScatterChart.ColumnXEnd),
yStartIndex: number = getMeasureIndexOfRole(grouped, EnhancedScatterChart.ColumnYStart),
yEndIndex: number = getMeasureIndexOfRole(grouped, EnhancedScatterChart.ColumnYEnd),
xCol: DataViewMetadataColumn,
yCol: DataViewMetadataColumn,
sizeCol: DataViewMetadataColumn,
xAxisLabel: string = EnhancedScatterChart.EmptyString,
yAxisLabel: string = EnhancedScatterChart.EmptyString;
if (grouped && grouped.length) {
const firstGroup: DataViewValueColumnGroup = grouped[0];
if (xIndex >= 0) {
xCol = firstGroup.values[xIndex].source;
xAxisLabel = firstGroup.values[xIndex].source.displayName;
}
if (yIndex >= 0) {
yCol = firstGroup.values[yIndex].source;
yAxisLabel = firstGroup.values[yIndex].source.displayName;
}
if (sizeIndex >= 0) {
sizeCol = firstGroup.values[sizeIndex].source;
}
}
return {
idx: {
category: categoryIndex,
x: xIndex,
y: yIndex,
size: sizeIndex,
colorFill: colorFillIndex,
shape: shapeIndex,
image: imageIndex,
rotation: rotationIndex,
backdrop: backdropIndex,
xStart: xStartIndex,
xEnd: xEndIndex,
yStart: yStartIndex,
yEnd: yEndIndex
},
cols: {
x: xCol,
y: yCol,
size: sizeCol
},
axesLabels: {
x: xAxisLabel,
y: yAxisLabel
}
};
}