in src/visual.ts [987:1022]
private showHoverData(hoverDataContainer: IHoverDataContainer, dataPoint: IDualKpiDataPoint, latestValue: number, hoverDataPercentType: PercentType, valueAsPercent: boolean, abbreviateValue: boolean) {
let hoverDate: Selection = hoverDataContainer.date;
hoverDate
.datum(dataPoint)
.text((d: IDualKpiDataPoint) => this.timeFormatter(d.date));
let hoverValue: Selection = hoverDataContainer.text;
hoverValue
.datum(dataPoint)
.text((d: IDualKpiDataPoint) => {
let value = abbreviateValue ? this.valueFormatter(d.value) : this.commaNumberFormatter(Math.round(d.value));
if (valueAsPercent) {
return DualKpi.percentFormatter(d.value);
}
return value;
});
let hoverPercent: Selection = hoverDataContainer.percent;
hoverPercent
.datum(dataPoint)
.text((d: IDualKpiDataPoint) => {
if (valueAsPercent) {
let value: number = hoverDataPercentType === PercentType.lastDate ? latestValue - d.value
: d.value - latestValue;
return DualKpi.percentFormatter(value);
}
let leftValue: number = hoverDataPercentType === PercentType.lastDate ? d.value : latestValue,
rightValue: number = hoverDataPercentType === PercentType.lastDate ? latestValue : d.value;
return DualKpi.getPercentChange(leftValue, rightValue);
});
this.bottomContainer.bottomContainer.classed("hidden", true);
hoverDataContainer.container.classed(DualKpi.INVISIBLE, false);
}