in src/label/newDataLabelUtils.ts [70:113]
export function drawDefaultLabels(
context: Selection<any, any, any, any>,
dataLabels: LabelOld[],
numeric: boolean = false,
hasTooltip: boolean = false
): Selection<any, any, any, any> {
const labels: Selection<any, any, any, any> = context
.selectAll(labelsClass.selectorName)
.data(dataLabels, labelKeyFunction);
labels
.exit()
.remove();
const dy: string = numeric
? undefined
: "-0.15em";
const mergedLabels = labels.enter()
.append("text")
.classed(labelsClass.className, true)
.merge(labels);
mergedLabels
.interrupt()
.text((label: LabelOld) => label.text)
.attr("transform", (d: LabelOld) => {
let translate = "translate(" + getLabelX(d) + "," + getLabelY(d) + ")";
return (d.labelOrientation === LabelOrientation.Vertical) ? (translate + "rotate(-90)") : translate;
})
.attr("dy", dy)
.style("fill", (d: LabelOld) => d.fill)
.style("font-size", (d: LabelOld) => pixelConverter.fromPoint(d.fontSize || DefaultLabelFontSizeInPt))
.style("font-family", (d: LabelOld) => d.fontFamily ? d.fontFamily : undefined)
.style("text-anchor", (d: LabelOld) => d.textAnchor);
if (hasTooltip) {
labels.append("title").text((d: LabelOld) => d.tooltip);
labels.style("pointer-events", "all");
}
return mergedLabels;
}