in src/columnChart/baseColumnChart.ts [1446:1528]
private enumerateDataPoints(instances: VisualObjectInstance[]): void {
const data: MekkoColumnChartData = this.data;
if (!data || !data.series) {
return;
}
const seriesCount: number = data.series.length;
if (seriesCount === 0) {
return;
}
let properties: any = {};
if (this.checkDataToFeatures()) {
properties["categoryGradient"] = this.data.dataPointSettings.categoryGradient;
instances.push({
objectName: "dataPoint",
selector: null,
properties: properties
});
}
if (data.hasDynamicSeries || seriesCount > 1 || !data.categoryMetadata) {
if (!this.data.dataPointSettings.categoryGradient) {
for (let series of data.series) {
instances.push({
objectName: "dataPoint",
displayName: series.displayName,
selector: ColorHelper.normalizeSelector(series.identity.getSelector()),
properties: {
fill: { solid: { color: series.color } }
},
});
}
}
}
else {
// For single-category, single-measure column charts, the user can color the individual bars.
const singleSeriesData: MekkoChartColumnDataPoint[] = data.series[0].data,
categoryFormatter: IValueFormatter = data.categoryFormatter;
// Add default color and show all slices
instances.push({
objectName: "dataPoint",
selector: null,
properties: {
defaultColor: {
solid: {
color: data.defaultDataPointColor || this.colorPalette.getColor("0").value
}
}
}
});
instances.push({
objectName: "dataPoint",
selector: null,
properties: {
showAllDataPoints: !!data.showAllDataPoints
}
});
for (let i: number = 0; i < singleSeriesData.length && data.showAllDataPoints; i++) {
const singleSeriesDataPoints = singleSeriesData[i],
categoryValue: any = data.categories[i];
instances.push({
objectName: "dataPoint",
displayName: categoryFormatter
? categoryFormatter.format(categoryValue)
: categoryValue,
selector: ColorHelper.normalizeSelector(
(singleSeriesDataPoints.identity as ISelectionId).getSelector(),
true),
properties: {
fill: { solid: { color: singleSeriesDataPoints.color } }
},
});
}
}
}