UNPKG

quoslibero

Version:

FusionCharts JavaScript charting framework

1 lines 1.48 kB
import{ComponentInterface}from'../../../../fc-core/src/component-interface';import{getMouseCoordinate}from'../../../../fc-core/src/lib';let dragstart=function(a){return function(b){let c,d,e,f=a.getFromEnv('chart'),g=f.config,h=a.config,j=g.datasetOrder||f.getDatasets(),k=getMouseCoordinate(f.getFromEnv('chart-container'),b,f),l=k.chartX,m=k.chartY,n=j.length;for(;n--&&!c;)e=j[n],e&&e.getState('visible')&&(d=e._getHoveredPlot&&e._getHoveredPlot(l,m),d&&d.hovered&&(c=!0,h.dragStart=!0,h.hoveredInfo=d,h.hoveredDS=e,e.drag('dragstart',b,d.pointIndex,k)))}},dragmove=function(a){return function(b){let c=a.config;c.dragStart&&c.hoveredDS.drag('dragmove',b,c.hoveredInfo.pointIndex)}},dragend=function(a){return function(b){let c=a.config;c.dragStart&&c.hoveredDS.drag('dragend',b,c.hoveredInfo.pointIndex),c.dragStart=!1}},eventList=['fc-dragstart','fc-dragmove','fc-dragend'];class DragTracker extends ComponentInterface{constructor(){super(),this.config.eventCb={"fc-dragstart":dragstart(this),"fc-dragmove":dragmove(this),"fc-dragend":dragend(this)}}addEvents(){var a=this,b=a.getFromEnv('chart'),c=this.config.eventCb,d=b.getChildren('canvas');a.removeEvents(),d.forEach(a=>{eventList.forEach(b=>{a.addEventListener(b,c[b])})})}removeEvents(){var a=this,b=this.config.eventCb,c=a.getFromEnv('chart'),d=c.getChildren('canvas');d.forEach(a=>{eventList.forEach(c=>{a.removeEventListener(c,b[c])})})}_dispose(){this.removeEvents(),super._dispose()}}export default DragTracker;