UNPKG

quoslibero

Version:

FusionCharts JavaScript charting framework

1 lines 2.56 kB
import CoreMouseTracker from'../../../../fc-core/src/mouse-tracker';import{getMouseCoordinate}from'../../../../fc-core/src/lib';let _helperFn=function(a){return function(){a.deactivate(),a.fireEvent('canvasHovered',{hoveredInfo:{},e:{}}),clearTimeout(a.domainValidationTimer),a.domainValidationTimer=setTimeout(()=>{a.activate()},100)}};class MouseTracker extends CoreMouseTracker{constructor(){super(),this.handler=function(a){return function(b){a.mouseEvtHandler(b)}}(this),this.eventsList.push('fc-mouseout'),this.active=!0}mouseEvtHandler(a){if(this.active){var b,c,d,e,f,g,h,j,k=this,l=a.originalEvent,m=k.getLinkedParent(),n=m.getChild(void 0,'dataset'),o=m.getChild(void 0,'timeInstanceMarker')[0],p=m.getChild(void 0,'timeSpanMinMarker')[0],q=m.getChild(void 0,'timeSpanFullMarker')[0],r=n.length;if(b=getMouseCoordinate(k.getFromEnv('chart-container'),l,k.getFromEnv('chart')),c=b.chartX,d=b.chartY,g=o.getHoveredMarker(c,d),g&&g.hovered)return void k.fireEvent('canvasHovered',{hoveredInfo:g,e:a,i:r,chartX:c,chartY:d});if(g&&void 0!==g.previouslyHoveredIndex&&(k.fireEvent('canvasHovered',{hoveredInfo:g,e:a,i:r,chartX:c,chartY:d}),o.config.previouslyHoveredIndex=void 0),g=p.getHoveredMarker(c,d),g&&g.hovered)return void k.fireEvent('canvasHovered',{hoveredInfo:g,e:a,i:r,chartX:c,chartY:d});for(g&&void 0!==g.previouslyHoveredIndex&&(k.fireEvent('canvasHovered',{hoveredInfo:g,e:a,i:r,chartX:c,chartY:d}),p.config.previouslyHoveredIndex=void 0);r--;)e=n[r],'hidden'!==e.config.visibility&&(f=e._getHoveredPlot&&e._getHoveredPlot(c,d),f&&f.hovered&&(h=f,j=r));if(!h){if(g=q.getHoveredMarker(c,d),g&&g.hovered)return void k.fireEvent('canvasHovered',{hoveredInfo:g,e:a,i:r,chartX:c,chartY:d});g&&void 0!==g.previouslyHoveredIndex&&(k.fireEvent('canvasHovered',{hoveredInfo:g,e:a,i:r,chartX:c,chartY:d}),q.config.previouslyHoveredIndex=void 0)}k.fireEvent('canvasHovered',{hoveredInfo:h||f,e:a,i:j,chartX:c,chartY:d})}}addEvents(){var a,b=this,c=b.getLinkedParent(),d=b.eventsList;for(a in b._removeListners(),d)c.addEventListener(d[a],b.handler);this.config.onDomainValidated=_helperFn(b),b.addExtEventListener('domainValidated',this.config.onDomainValidated,b.getFromEnv('chart'))}_removeListners(){var a,b=this,c=b.getLinkedParent(),d=b.eventsList;for(a in d)c.removeEventListener(d[a],b.handler);b.removeExtEventListener('domainValidated',this.config.onDomainValidated,b.getFromEnv('chart'))}remove(...a){this._removeListners(),super.remove(...a)}activate(){this.active=!0}deactivate(){this.active=!1,_helperFn()}}export default MouseTracker;