in src/gantt.ts [1637:1683]
private calculateAxes(
viewportIn: IViewport,
textProperties: TextProperties,
startDate: Date,
endDate: Date,
ticksCount: number,
scrollbarVisible: boolean): IAxisProperties {
let dataTypeDatetime: ValueType = ValueType.fromPrimitiveTypeAndCategory(PrimitiveType.Date);
let category: DataViewMetadataColumn = {
displayName: this.localizationManager.getDisplayName("Role_StartDate"),
queryName: GanttRoles.StartDate,
type: dataTypeDatetime,
index: 0
};
let visualOptions: GanttCalculateScaleAndDomainOptions = {
viewport: viewportIn,
margin: this.margin,
forcedXDomain: [startDate, endDate],
forceMerge: false,
showCategoryAxisLabel: false,
showValueAxisLabel: false,
categoryAxisScaleType: axisScale.linear,
valueAxisScaleType: null,
valueAxisDisplayUnits: 0,
categoryAxisDisplayUnits: 0,
trimOrdinalDataOnOverflow: false,
forcedTickCount: ticksCount
};
const width: number = viewportIn.width;
let axes: IAxisProperties = this.calculateAxesProperties(viewportIn, visualOptions, category);
axes.willLabelsFit = AxisHelper.LabelLayoutStrategy.willLabelsFit(
axes,
width,
textMeasurementService.measureSvgTextWidth,
textProperties);
// If labels do not fit and we are not scrolling, try word breaking
axes.willLabelsWordBreak = (!axes.willLabelsFit && !scrollbarVisible) && AxisHelper.LabelLayoutStrategy.willLabelsWordBreak(
axes, this.margin, width, textMeasurementService.measureSvgTextWidth,
textMeasurementService.estimateSvgTextHeight, textMeasurementService.getTailoredTextOrDefault,
textProperties);
return axes;
}