UNPKG

@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
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