{
const div = d3.create('div').attr('id', 'viz');
while (true) {
const children = div.selectAll('.children').data(randomiseData());
const enter = children
.enter()
.append('div')
.attr('class', 'children')
.style('width', d => `${d.w}%`)
.style('transition', 'width 0.5s')
.style('border-width', (d, i) => computeBorder(d, i))
.style('background-color', d => d.color);
const exit = children.exit().remove();
children.merge(children).style('width', d => `${d.w}%`);
yield div.node();
await Promises.tick(1000);
}
}