in src/gantt.ts [566:649]
public static getTooltipInfo(
task: Task,
formatters: GanttChartFormatters,
durationUnit: string,
localizationManager: ILocalizationManager,
isEndDateFillled: boolean): VisualTooltipDataItem[] {
let tooltipDataArray: VisualTooltipDataItem[] = [];
if (task.taskType) {
tooltipDataArray.push({
displayName: localizationManager.getDisplayName("Role_Legend"),
value: task.taskType
});
}
tooltipDataArray.push({
displayName: localizationManager.getDisplayName("Role_Task"),
value: task.name
});
if (task.start && !isNaN(task.start.getDate())) {
tooltipDataArray.push({
displayName: localizationManager.getDisplayName("Role_StartDate"),
value: formatters.startDateFormatter.format(task.start)
});
}
if (_.isEmpty(task.Milestones) && task.end && !isNaN(task.end.getDate())) {
tooltipDataArray.push({
displayName: localizationManager.getDisplayName("Role_EndDate"),
value: formatters.startDateFormatter.format(task.end)
});
}
if (_.isEmpty(task.Milestones) && task.duration && !isEndDateFillled) {
const durationLabel: string = DurationHelper.generateLabelForDuration(task.duration, durationUnit, localizationManager);
tooltipDataArray.push({
displayName: localizationManager.getDisplayName("Role_Duration"),
value: durationLabel
});
}
if (task.completion) {
tooltipDataArray.push({
displayName: localizationManager.getDisplayName("Role_Completion"),
value: formatters.completionFormatter.format(task.completion)
});
}
if (task.resource) {
tooltipDataArray.push({
displayName: localizationManager.getDisplayName("Role_Resource"),
value: task.resource
});
}
if (task.tooltipInfo && task.tooltipInfo.length) {
tooltipDataArray.push(...task.tooltipInfo);
}
task.extraInformation
.map(tooltip => {
if (typeof tooltip.value === "string") {
return tooltip;
}
const value: any = tooltip.value;
if (isNaN(Date.parse(value)) || typeof value === "number") {
tooltip.value = value.toString();
} else {
tooltip.value = formatters.startDateFormatter.format(value);
}
return tooltip;
})
.forEach(tooltip => tooltipDataArray.push(tooltip));
tooltipDataArray
.filter(x => x.value && typeof x.value !== "string")
.forEach(tooltip => tooltip.value = tooltip.value.toString());
return tooltipDataArray;
}