{
const svg = d3
.create("svg")
.attr("viewBox", [0, 0, width, height]);
const arcs = pie(piedata);
let g = svg.append("g").attr("transform", "translate(" + radius + "," + height / 2 + ")");
let path = g.selectAll("path")
.data(arcs)
.join("path")
.attr("fill", d => color(d.data.typevar))
.attr("class", (d,i) => "arc"+i);
path = path
.transition()
.duration(500)
.attrTween("d", arcTween);
const [arc0, arc1, arc2] = arcs.slice(0, 3)
console.log(g);
g.select("path.arc0")
.transition()
.duration(1000)
.delay(1500)
.attr("d", d => arcOver(d))
.transition()
.attr("d", d => arc(d))
g.transition()
.duration(1000)
.delay(2500)
.attr("transform", "translate(" + radius + "," + height / 2 + ") rotate(" + angle(arc1) + ")")
g.select("path.arc1")
.transition()
.duration(1000)
.delay(2700)
.attr("d", d => arcOver(d))
.transition()
.attr("d", d => arc(d))
g.transition()
.duration(1000)
.delay(3500)
.attr("transform", "translate(" + radius + "," + height / 2 + ") rotate(" + angle(arc2) + ")")
g.select("path.arc2")
.transition()
.duration(1000)
.delay(3700)
.attr("d", d => arcOver(d))
g.selectAll('path').transition().ease(d3.easeBackIn.overshoot(1)).duration(500).delay(5500).style('opacity', 0).attr('transform', 'translate(-500, -500)')
return svg.node()
}