@dfnivo/sankey
Version:
<a href="https://nivo.rocks"><img alt="nivo" src="https://raw.githubusercontent.com/plouc/nivo/master/nivo.png" width="216" height="68"/></a>
36 lines (35 loc) • 1.89 kB
JavaScript
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
import { sankeyLinkHorizontal, sankeyLinkVertical } from "./links";
import { SankeyLinksItem } from "./SankeyLinksItem";
import { useMemo } from "react";
export var SankeyLinks = function(param) {
var links = param.links, layout = param.layout, linkOpacity = param.linkOpacity, linkHoverOpacity = param.linkHoverOpacity, linkHoverOthersOpacity = param.linkHoverOthersOpacity, linkContract = param.linkContract, linkBlendMode = param.linkBlendMode, enableLinkGradient = param.enableLinkGradient, setCurrentLink = param.setCurrentLink, currentLink = param.currentLink, currentNode = param.currentNode, isCurrentLink = param.isCurrentLink, isInteractive = param.isInteractive, onClick = param.onClick, tooltip = param.tooltip;
var getOpacity = function(link) {
if (!currentNode && !currentLink) return linkOpacity;
if (isCurrentLink(link)) return linkHoverOpacity;
return linkHoverOthersOpacity;
};
var getLinkPath = useMemo(function() {
return layout === "horizontal" ? sankeyLinkHorizontal() : sankeyLinkVertical();
}, [
layout
]);
return /*#__PURE__*/ _jsx(_Fragment, {
children: links.map(function(link) {
return /*#__PURE__*/ _jsx(SankeyLinksItem, {
link: link,
layout: layout,
path: getLinkPath(link, linkContract),
color: link.color,
opacity: getOpacity(link),
blendMode: linkBlendMode,
enableGradient: enableLinkGradient,
setCurrent: setCurrentLink,
isInteractive: isInteractive,
onClick: onClick,
tooltip: tooltip
}, "".concat(link.source.id, ".").concat(link.target.id));
})
});
};
//# sourceMappingURL=SankeyLinks.js.map