in src/UXClient/Components/Marker/Marker.ts [413:463]
private setValueLabels (closestTime) {
let values = this.getValuesAtTime(closestTime);
values = values.filter((d) => {
return d && this.chartComponentData.getDataType(d.aggregateKey) === DataTypes.Numeric;
});
let self = this;
let valueLabels = this.markerContainer.selectAll(".tsi-markerValue").data(values, (d) => {
return d.aggregateKey + "_" + d.splitBy;
});
valueLabels.enter()
.append("div")
.classed("tsi-markerValue", true)
.classed('tsi-seriesLabelValue', this.isSeriesLabels)
.merge(valueLabels)
.classed('tsi-isInterpolated', d => {
return d.isInterpolated;
})
.style('top', (d) => this.calcTopOfValueLabel(d) + 'px')
.each(function (d: any) {
let tooltipKey = self.getTooltipKey(d);
let tooltip;
if (self.tooltipMap[tooltipKey]) {
tooltip = self.tooltipMap[tooltipKey];
} else {
tooltip = new Tooltip(d3.select(this));
self.tooltipMap[tooltipKey] = tooltip;
}
tooltip.render(self.chartOptions.theme);
let tooltipHeight = MARKERVALUENUMERICHEIGHT;
tooltip.draw(d, self.chartComponentData, 0, MARKERVALUENUMERICHEIGHT/2, {right:0, left:0, top:0, bottom:0}, (tooltipTextElement) => {
self.tooltipFormat(d, tooltipTextElement, null, null);
}, null, 0, 0, self.colorMap[d.aggregateKey + "_" + d.splitBy], true);
let markerValueCaret = d3.select(this).selectAll('.tsi-markerValueCaret')
.data([d]);
markerValueCaret.enter().append('div')
.attr('class', 'tsi-markerValueCaret')
.merge(markerValueCaret as d3.Selection<HTMLDivElement,any,any,unknown>)
.style("border-right-color", () => self.colorMap[d.aggregateKey + "_" + d.splitBy]);
markerValueCaret.exit().remove();
});
let valueLabelsExit = valueLabels.exit();
valueLabelsExit.each((d) => {
delete this.tooltipMap[this.getTooltipKey(d)];
})
valueLabelsExit.remove();
}