public calculateXAxes()

in src/visual.ts [1338:1382]


    public calculateXAxes(
        metaDataColumn: DataViewMetadataColumn,
        widthOfLabel: number,
        scrollbarVisible: boolean
    ): IAxisProperties {
        let axes: IAxisProperties,
            width: number = this.viewportIn.width,
            xPoints: number[] = this.getXPoints();

        axes = HistogramAxisHelper.createAxis({
            onRight: Visual.shouldShowYOnRight(this.data.settings),
            pixelSpan: this.viewportIn.width,
            dataDomain: xPoints,
            metaDataColumn,
            formatString: ValueFormatter.getFormatStringByColumn(metaDataColumn),
            outerPadding: Default.SvgOuterPadding,
            isScalar: false,
            isVertical: false,
            useTickIntervalForDisplayUnits: true,
            isCategoryAxis: true,
            getValueFn: (index, valueType) => index,
            scaleType: axisScale.linear,
            innerPaddingRatio: Default.InnerPaddingRatio,
            minOrdinalRectThickness: widthOfLabel,
            tickLabelPadding: undefined
        });

        axes.axisLabel = this.data.settings.general.displayName;

        axes.willLabelsFit = willLabelsFit(
            axes,
            width,
            textMeasurementService.measureSvgTextWidth,
            Default.TextProperties
        );

        // If labels do not fit and we are not scrolling, try word breaking
        axes.willLabelsWordBreak = (!axes.willLabelsFit && !scrollbarVisible) && willLabelsWordBreak(
            axes, Default.SvgMargin, width, textMeasurementService.measureSvgTextWidth,
            textMeasurementService.estimateSvgTextHeight, textMeasurementService.getTailoredTextOrDefault,
            Default.TextProperties
        );

        return axes;
    }