Spaces:
Build error
Build error
import {slice} from "./array.js"; | |
import constant from "./constant.js"; | |
import {bumpX, bumpY, bumpRadial} from "./curve/bump.js"; | |
import {withPath} from "./path.js"; | |
import {x as pointX, y as pointY} from "./point.js"; | |
function linkSource(d) { | |
return d.source; | |
} | |
function linkTarget(d) { | |
return d.target; | |
} | |
export function link(curve) { | |
let source = linkSource, | |
target = linkTarget, | |
x = pointX, | |
y = pointY, | |
context = null, | |
output = null, | |
path = withPath(link); | |
function link() { | |
let buffer; | |
const argv = slice.call(arguments); | |
const s = source.apply(this, argv); | |
const t = target.apply(this, argv); | |
if (context == null) output = curve(buffer = path()); | |
output.lineStart(); | |
argv[0] = s, output.point(+x.apply(this, argv), +y.apply(this, argv)); | |
argv[0] = t, output.point(+x.apply(this, argv), +y.apply(this, argv)); | |
output.lineEnd(); | |
if (buffer) return output = null, buffer + "" || null; | |
} | |
link.source = function(_) { | |
return arguments.length ? (source = _, link) : source; | |
}; | |
link.target = function(_) { | |
return arguments.length ? (target = _, link) : target; | |
}; | |
link.x = function(_) { | |
return arguments.length ? (x = typeof _ === "function" ? _ : constant(+_), link) : x; | |
}; | |
link.y = function(_) { | |
return arguments.length ? (y = typeof _ === "function" ? _ : constant(+_), link) : y; | |
}; | |
link.context = function(_) { | |
return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), link) : context; | |
}; | |
return link; | |
} | |
export function linkHorizontal() { | |
return link(bumpX); | |
} | |
export function linkVertical() { | |
return link(bumpY); | |
} | |
export function linkRadial() { | |
const l = link(bumpRadial); | |
l.angle = l.x, delete l.x; | |
l.radius = l.y, delete l.y; | |
return l; | |
} | |