private handleAverageLineUpdate()

in src/barChart.ts [706:729]


    private handleAverageLineUpdate(height: number, width: number, yScale: ScaleLinear<number, number>) {
        let average = this.calculateAverage();
        let fontSize = Math.min(height, width) * BarChart.Config.xAxisFontMultiplier;
        let chosenColor = this.getColorValue(this.barChartSettings.averageLine.fill);
        // If there's no room to place lable above line, place it below
        let labelYOffset = fontSize * ((yScale(average) > fontSize * 1.5) ? -0.5 : 1.5);

        this.averageLine
            .style("font-size", fontSize)
            .style("display", (this.barChartSettings.averageLine.show) ? "initial" : "none")
            .attr("transform", "translate(0, " + Math.round(yScale(average)) + ")");

        this.averageLine.select("#averageLine")
            .style("stroke", chosenColor)
            .style("stroke-width", "3px")
            .style("stroke-dasharray", "6,6")
            .attr("x1", 0)
            .attr("x1", "" + width);

        this.averageLine.select("#averageLineLabel")
            .text("Average: " + average.toFixed(2))
            .attr("transform", "translate(0, " + labelYOffset + ")")
            .style("fill", this.barChartSettings.averageLine.showDataLabel ? chosenColor : "none");
    }