{
const dragEl =frame.select("#adiv").node()
function dragstartHandler(event,data) {
dragcontrol[0]=data
event.dataTransfer.setData("text/plain", event.target.className);
event.dataTransfer.dropEffect = "move";
}
dragEl.addEventListener('dragstart', e=>dragstartHandler(e,'line'));
function dragoverHandler(event) {
event.preventDefault();
event.dataTransfer.dropEffect = "move";
}
function dropHandler(event,type) {
console.log('a',event,type)
if (dragcontrol[0]!=='line')return;
const [x,y]=[event.offsetX,event.offsetY]
const data = event.dataTransfer.getData("text/plain");
const plot=Plot.plot({
width:200,
height:200,
marks: [
Plot.ruleY([0]),
Plot.lineY(aapl, {x: "Date", y: "Close"})
]
})
plot.id='line0'
d3.selectAll("#newplota").remove()
d3.select("#plot").append('g').attr('id','newplota').attr('transform',`translate(${x},${y})`)
frame.node().querySelector("#newplota").append(plot)
d3.select('#newplota').call(drag('line'))
}
function zoomed(e){
console.log('zoom',e)
d3.select('#newplota').attr("transform", `translate(${e.sourceEvent.offsetX},${e.offsetY})`);
}
const targetEl = frame.node();
targetEl.addEventListener('dragover', dragoverHandler);
targetEl.addEventListener('drop', (e)=>dropHandler(e,'line'));
}