{
const svg = d3.create("svg").attr("width", 500).attr("height", 350);
while (true) {
svg
.selectAll("text")
.data(randomMovies(), (d) => d.titel)
.join(
(enter) =>
enter
.append("text")
.style("opacity", 0)
.attr("transform", (d, i) => `translate(${10}, ${30 + i * 30})`)
.style("fill", "blue"),
(update) => update,
(exit) =>
exit
.style("fill", "red")
.transition()
.duration(1000)
.attr("transform", (d, i) => `translate(${300},${30 + i * 30})`)
.remove()
)
.transition()
.duration(1000)
.style("opacity", 1)
.text((d) => d.rang + " " + d.titel)
.attr("transform", (d, i) => `translate(${10}, ${30 + i * 30})`)
.style("fill", "black");
yield svg.node();
await Promises.tick(2500);
}
}