export function drawDefaultLabels()

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;
}