in src/visual.ts [1013:1059]
private fadeNode(node: ForceGraphNode): void {
if (!this.settings || this.settings.links.colorLink !== LinkColorType.Interactive) {
return;
}
let self: ForceGraph = this,
isHighlight = node.isOver || node.isDrag,
opacity: number = isHighlight
? ForceGraph.HoverOpacity
: ForceGraph.DefaultOpacity;
let highlight: string = isHighlight
? ForceGraph.DefaultLinkHighlightColor
: ForceGraph.DefaultLinkColor;
this.nodes.style("stroke-opacity", function (otherNode: ForceGraphNode) {
let thisOpacity: number = (self.settings.nodes.highlightReachableLinks
? self.isReachable(node, otherNode)
: self.areNodesConnected(node, otherNode))
? ForceGraph.DefaultOpacity
: opacity;
this.setAttribute("fill-opacity", thisOpacity);
return thisOpacity;
});
this.paths.style("stroke-opacity", (link: ForceGraphLink) =>
(this.settings.nodes.highlightReachableLinks
? this.isReachable(node, link.source)
: (link.source === node || link.target === node))
? ForceGraph.DefaultOpacity
: opacity
);
this.paths.style("stroke", (link: ForceGraphLink) => {
const color = (this.settings.nodes.highlightReachableLinks
? this.isReachable(node, link.source)
: (link.source === node || link.target === node))
? highlight
: ForceGraph.DefaultLinkColor;
return this.colorHelper.getHighContrastColor(
"foreground",
color
);
});
}