chartEl = {
const el = d3.select(DOM.element('div'));
el.style("height", `${height}px`);
el.style("width", `${width}px`);
el.datum({ data, annotations }).call(chart);
const zoom = d3
.zoom()
.scaleExtent([1, 500])
.translateExtent([[0, 0], [width, height]])
.on("zoom", ({ transform }) => {
xScale.domain(transform.rescaleX(xScaleCopy).domain());
yScale.domain(transform.rescaleY(yScaleCopy).domain());
el.datum({ data, annotations }).call(chart);
});
el.select('d3fc-svg.plot-area')
.on("measure.range", ({ detail }) => {
xScaleCopy.range([0, detail.width]);
yScaleCopy.range([detail.height, 0]);
})
.call(zoom)
.on("dblclick.zoom", e => {
el.select('d3fc-svg.plot-area')
.transition()
.duration(750)
.call(zoom.transform, d3.zoomIdentity);
});
return el.node();
}