UNPKG

@visx/shape

Version:
62 lines 1.48 kB
import cx from 'classnames'; import { path as d3Path } from '@visx/vendor/d3-path'; import { getX, getY, getSource, getTarget } from "../../../util/accessors.js"; import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime"; export function pathHorizontalStep(_ref) { let { source, target, x, y, percent } = _ref; return link => { const sourceData = source(link); const targetData = target(link); const sx = x(sourceData); const sy = y(sourceData); const tx = x(targetData); const ty = y(targetData); const path = d3Path(); path.moveTo(sx, sy); path.lineTo(sx + (tx - sx) * percent, sy); path.lineTo(sx + (tx - sx) * percent, ty); path.lineTo(tx, ty); return path.toString(); }; } export default function LinkHorizontalStep(_ref2) { let { className, innerRef, data, path, percent = 0.5, x = getY, // note this returns a y value y = getX, // note this returns a x value source = getSource, target = getTarget, children, ...restProps } = _ref2; const pathGen = path || pathHorizontalStep({ source, target, x, y, percent }); if (children) return /*#__PURE__*/_jsx(_Fragment, { children: children({ path: pathGen }) }); return /*#__PURE__*/_jsx("path", { ref: innerRef, className: cx('visx-link visx-link-horizontal-step', className), d: pathGen(data) || '', ...restProps }); }