react-tree-graph
Version:
A react library for generating a graphical tree from data using d3
32 lines (29 loc) • 1.03 kB
JavaScript
import _extends from '@babel/runtime/helpers/extends';
import PropTypes from 'prop-types';
import React from 'react';
import wrapHandlers from '../wrapHandlers.js';
function diagonal(x1, y1, x2, y2) {
return `M${x1},${y1}C${(x1 + x2) / 2},${y1} ${(x1 + x2) / 2},${y2} ${x2},${y2}`;
}
function Link(props) {
const wrappedProps = wrapHandlers(props.pathProps, props.source.data[props.keyProp], props.target.data[props.keyProp]);
const d = props.pathFunc(props.x1, props.y1, props.x2, props.y2);
return /*#__PURE__*/React.createElement("path", _extends({}, wrappedProps, {
d: d
}));
}
Link.propTypes = {
source: PropTypes.object.isRequired,
target: PropTypes.object.isRequired,
keyProp: PropTypes.string.isRequired,
x1: PropTypes.number.isRequired,
x2: PropTypes.number.isRequired,
y1: PropTypes.number.isRequired,
y2: PropTypes.number.isRequired,
pathFunc: PropTypes.func.isRequired,
pathProps: PropTypes.object.isRequired
};
Link.defaultProps = {
pathFunc: diagonal
};
export { Link as default };