chart = {
const svg = d3.select(DOM.svg(width, height));
svg.append("g")
.append("rect")
.attr("x", x(0))
.attr("y", 10)
.attr("height", 20)
.attr("width", x(100) - x(0))
.attr("fill", "#6b9f4a")
.transition()
.duration(2000)
.ease(d3.easeQuadInOut)
.on("start", function repeat() {
d3.active(this)
.attr("width", x(100) - x(0))
.transition()
.duration(2000)
.attr("width", x(100) - x(0))
.transition()
.duration(0)
.attr("width", x(50) - x(0))
.transition()
.duration(2000)
.delay(4500)
.on("start", repeat);
});
svg.append("g")
.append("rect")
.attr("x", x(100))
.attr("y", 10)
.attr("height", 20)
.attr("width", 0)
.attr("fill", "#c44023")
.transition()
.duration(2000)
.ease(d3.easeQuadInOut)
.on("start", function repeat() {
d3.active(this)
.attr("x", x(100))
.attr("width", 0)
.attr("fill", "yellow")
.transition()
.duration(2000)
.attr("x", x(100))
.attr("width", 0)
.transition()
.duration(0)
.attr("x", x(50))
.attr("width", x(100) - x(50))
.attr("fill", "#6b9f4a")
.transition()
.duration(500)
.attr("fill", "orange")
.transition()
.duration(2000)
.attr("x", x(50))
.attr("width", 0)
.attr("fill", "orange")
.transition()
.duration(0)
.delay(4000)
.on("start", repeat);
});
svg.append("g")
.call(xAxis);
return svg.node();
}