viewof point = {
const svg = d3.select(DOM.svg(width, 300)),
n = svg.node();
const g = svg.append("g")
.attr("transform", `translate(${width/2}, 150)`)
.call(d3.drag().on("drag", function () {
d3.select(this).attr("transform", `translate(${d3.event.x},${d3.event.y})`);
n.value = [d3.event.x, d3.event.y];
svg.dispatch("input");
}));
g.append("circle").attr("r", 20);
g.append("text")
.attr("text-anchor", "middle")
.attr("font-size", 12)
.attr("font-family", "sans-serif")
.attr("y", 36)
.text("Drag me");
n.value = [width/2, 150];
return n;
}