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