chart = { const svg = d3 .create('svg') .attr('class', 'chart-test') .call(setSize, width, 100);+const g = svg.append('g');-g.selectAll('.node') .data(data) .join(enterNode, updateNode, n => n.remove());+let node = g.selectAll();invalidation.then(() => console.log('invalidated'));-return svg.node();+return Object.assign(svg.node(), { update(data) { scaleRadius.domain([d3.min(data, d => d.value), d3.max(data, d => d.value)]); scaleX.domain([0, d3.max(data, d => d.id)]); node = node.data(data, d => d.id).join(enterNode, updateNode); } });}
-onShuffle = () => { mutable data = data.map(v => ({ ...v, value: Math.random() * 10 })); }+onShuffle = () => mutable data = data.map(v => ({ ...v, value: Math.random() * 10 }))
scaleRadius = d3 .scaleLinear()-.domain([d3.min(data, d => d.value), d3.max(data, d => d.value)]).range([10, 25])
scaleX = d3 .scaleLinear()-.domain([0, d3.max(data, d => d.id)]).range([30, width - 30])