@fusioncharts/core
Version:
JavaScript Data Visualisation Library
1 lines • 3.29 kB
JavaScript
;var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule=true;exports.default=void 0;var _inheritsLoose2=_interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _componentInterface=require("../component-interface");var MOUSEOVER="fc-mouseover",MOUSEDOWN="fc-mousedown",MOUSEUP="fc-mouseup",MOUSEMOVE="fc-mousemove",MOUSEOUT="fc-mouseout",CLICK="fc-click",UNDEF;var MouseTracker=function(_ComponentInterface){function MouseTracker(){var _this2;_this2=_ComponentInterface.call(this)||this;_this2.pIndex=1;_this2.handler=function handlerIIFE(_this){return function(e){e.originalEvent&&_this.getFromEnv("chart")._mouseEvtHandler(e,_this.config.evtData)}}(_this2);_this2.eventsList=[MOUSEDOWN,MOUSEUP,MOUSEMOVE,CLICK,MOUSEOVER];_this2.config={};_this2.config.evtData={};return _this2}(0,_inheritsLoose2.default)(MouseTracker,_ComponentInterface);var _proto=MouseTracker.prototype;_proto.getMouseEvents=function getMouseEvents(e,datasetIndex,plotIndex){var mouseTracker=this,lastDatasetIndex=mouseTracker._lastDatasetIndex,lastPointIndex=mouseTracker._lastPointIndex,derivedEvensInfo={fireOut:false,events:[]};switch(e.type){case CLICK:derivedEvensInfo.events.push(CLICK);break;case MOUSEMOVE:if(lastDatasetIndex===datasetIndex&&lastPointIndex===plotIndex){clearTimeout(mouseTracker.mouseoutTimer);derivedEvensInfo.events.push(MOUSEMOVE)}else{derivedEvensInfo.events.push(MOUSEOVER);derivedEvensInfo.fireOut=true}break;case MOUSEDOWN:if(lastDatasetIndex!==datasetIndex||lastPointIndex!==plotIndex){derivedEvensInfo.fireOut=true;derivedEvensInfo.events.push(MOUSEOVER)}derivedEvensInfo.events.push(MOUSEDOWN);break;case MOUSEOVER:if(lastDatasetIndex===datasetIndex&&lastPointIndex===plotIndex){clearTimeout(mouseTracker.mouseoutTimer)}else{derivedEvensInfo.fireOut=true;derivedEvensInfo.events.push(MOUSEOVER)}break;case MOUSEUP:mouseTracker.hasTouchEvent=false;derivedEvensInfo.events.push(MOUSEUP);break;case MOUSEOUT:derivedEvensInfo.fireOut=true}return derivedEvensInfo};_proto.addEvents=function addEvents(){var mouseTracker=this,chart=mouseTracker.getFromEnv("chart"),allCanvas=chart.getChildren("canvas"),canvas,evtData=mouseTracker.config.evtData,eventsList=mouseTracker.eventsList,i,eventIndex;chart.config.enableMouseOutEvent&&eventsList.push(MOUSEOUT);mouseTracker._removeListners();evtData.chart=chart;evtData.mouseTracker=mouseTracker;for(i=0;i<allCanvas.length;i++){canvas=allCanvas[i];for(eventIndex in eventsList){canvas.addEventListener(eventsList[eventIndex],mouseTracker.handler)}}};_proto._removeListners=function _removeListners(){var mouseTracker=this,allCanvas=mouseTracker.getFromEnv("chart").getChildren("canvas"),canvas,eventsList=mouseTracker.eventsList,eventIndex,i;for(i=0;i<allCanvas.length;i++){canvas=allCanvas[i];for(eventIndex in eventsList){canvas.removeEventListener(eventsList[eventIndex],mouseTracker.handler)}}mouseTracker._removeDocEvents()};_proto._removeDocEvents=function _removeDocEvents(){this.eventOutput&&this.eventOutput.unlisten();this.eventOutput=UNDEF};_proto._dispose=function _dispose(){this._removeListners();_ComponentInterface.prototype._dispose.call(this)};return MouseTracker}(_componentInterface.ComponentInterface);var _default=exports.default=MouseTracker;