private enumerateDataPoints()

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 } }
                    },
                });
            }
        }
    }