chart = {
const svg = d3.create("svg")
.attr("viewBox", [0, 0, 1000, height])
const startYear = sampleYearData[0];
const yAxis = svg.append("g");
yAxis.call(d3.axisLeft(yScale).ticks(0).tickSizeOuter(0))
.attr("transform", `translate(${margins},${margins})`);
svg.append("text")
.attr("class", "dragText")
.attr("font-size", 24)
.attr("text-anchor", "end")
.attr("cursor", "grab")
.attr("x", margins - 5)
.attr("y", margins + yScale(startYear) + 12)
.text(startYear)
.call(
d3.drag()
.on("drag", (event, d) => {
const roundedYear = parseInt(yScale.invert(event.y - margins - 12));
if(roundedYear >= yScale.domain()[0] && roundedYear <= yScale.domain()[1]){
svg.select(".dragText").attr("y", event.y);
svg.select(".dragText").text(roundedYear);
svg.select(".dragTextCommentary").text(`dragYear: ${roundedYear}`);
}
})
);
svg.append("text")
.attr("class", "dragTextCommentary")
.attr("font-size", 18)
.attr("fill", "purple")
.attr("x", margins + 10)
.attr("y", margins + 16)
.text(`dragYear: ${startYear}`);
return svg.node();
}