private getLabelLayout()

in src/visual.ts [1156:1203]


    private getLabelLayout(): ILabelLayout {
        let labelSettings: HistogramLabelSettings = this.data.settings.labels,
            xScale: LinearScale<any, any> = this.data.xScale,
            yScale: LinearScale<any, any> = this.data.yScale,
            fontSizeInPx: string = PixelConverter.fromPoint(labelSettings.fontSize),
            fontFamily: string = dataLabelUtils.LabelTextProperties.fontFamily,
            dataLabelFormatter: IValueFormatter = ValueFormatter.create({
                value: labelSettings.displayUnits,
                precision: labelSettings.precision
            });

        return {
            labelText: (dataPoint: HistogramDataPoint) => {
                return dataLabelFormatter.format(dataPoint.y).toString();
            },
            labelLayout: {
                x: (dataPoint: HistogramDataPoint) => {
                    let x: number,
                        dx: number;

                    x = xScale(dataPoint.x0);
                    dx = dataPoint.size.width / Default.DataLabelXOffset
                        - this.columnWidth / Default.MiddleFactor;

                    return x - dx;
                },
                y: (dataPoint: HistogramDataPoint) => {
                    let y: number,
                        dy: number,
                        delta: number;

                    y = yScale(dataPoint.y);
                    dy = dataPoint.size.height;
                    delta = y - dy;

                    return delta < 0 ? y + dy / 2 : delta;
                }
            },
            filter: (dataPoint: HistogramDataPoint) => {
                return dataPoint != null;
            },
            style: {
                "fill": labelSettings.color,
                "font-size": fontSizeInPx,
                "font-family": fontFamily
            }
        };
    }