in src/chordChart.ts [1238:1277]
private renderLines(
filteredData: ChordLabelEnabledDataPoint[],
arcVal: Arc<any, DefaultArcObject>,
outerArc: Arc<any, DefaultArcObject>
): void {
let lines: Selection<any, ChordLabelEnabledDataPoint, any, any> =
this.lines.selectAll("polyline").data(filteredData);
let midAngle = (d: ChordArcDescriptor) =>
d.startAngle + (d.endAngle - d.startAngle) / 2;
lines.exit().remove();
lines = lines.merge(
lines
.enter()
.append("polyline")
.classed(ChordChart.lineClass.className, true)
);
lines
.attr("points", (d: ChordArcDescriptor): any => {
let textPoint: [number, number] = outerArc.centroid(<any>d);
textPoint[0] =
(this.radius + ChordChart.LabelMargin / 2) *
(midAngle(d) < Math.PI ? 1 : -1);
let midPoint: [number, number] = outerArc.centroid(<any>d);
let chartPoint: [number, number] = arcVal.centroid(<any>d);
chartPoint[0] *= ChordChart.InnerLinePointMultiplier;
chartPoint[1] *= ChordChart.InnerLinePointMultiplier;
return [chartPoint, midPoint, textPoint];
})
.style("opacity", ChordChart.PolylineOpacity)
.style("stroke", (d: ChordArcDescriptor) => d.data.labelColor)
.style("pointer-events", "none");
}