dragValue = function (index) {
function started() {
d3.select(this).classed("static", false);
d3.select(this).classed("dragged", true);
}
function dragged(event, d) {
let x = event.x;
if (x < xValueScale[index].range()[0]) x = xValueScale[index].range()[0];
else if (x > xValueScale[index].range()[1])
x = xValueScale[index].range()[1];
updateValue(index, x);
dispatcher.call(
"syncValues",
this,
valueScale[index].invert(xValueScale[index].invert(x)),
index
);
}
function ended() {
d3.select(this).classed("dragged", false);
d3.select(this).classed("static", true);
}
return d3.drag().on("start", started).on("drag", dragged).on("end", ended);
}