d3-jsnext
Version:
d3, but futuristic
47 lines (38 loc) • 1.14 kB
JavaScript
import { d3_functor } from '../core/functor';
import { d3_target } from '../core/target';
import { d3_source } from '../core/source';
import { d3$svg } from './svg';
var d3$svg$diagonal;
d3$svg$diagonal = function() {
var source = d3_source,
target = d3_target,
projection = d3_svg_diagonalProjection;
function diagonal(d, i) {
var p0 = source.call(this, d, i),
p3 = target.call(this, d, i),
m = (p0.y + p3.y) / 2,
p = [p0, {x: p0.x, y: m}, {x: p3.x, y: m}, p3];
p = p.map(projection);
return "M" + p[0] + "C" + p[1] + " " + p[2] + " " + p[3];
}
diagonal.source = function(x) {
if (!arguments.length) return source;
source = d3_functor(x);
return diagonal;
};
diagonal.target = function(x) {
if (!arguments.length) return target;
target = d3_functor(x);
return diagonal;
};
diagonal.projection = function(x) {
if (!arguments.length) return projection;
projection = x;
return diagonal;
};
return diagonal;
};
function d3_svg_diagonalProjection(d) {
return [d.x, d.y];
}
export { d3$svg$diagonal, d3_svg_diagonalProjection };