UNPKG

@fusioncharts/features

Version:

FusionCharts JavaScript charting framework

1 lines 3.44 kB
"use strict";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("@fusioncharts/core/src/component-interface");var _lib=require("@fusioncharts/core/src/lib");var inclusionList={candlestick:true},getHoverEventHandlers=function getHoverEventHandlers(manager){return{onhover:function onhover(event){event.originalEvent&&manager.show(event)},onhoverout:function onhoverout(event){event.originalEvent&&manager.hide(event)}}},onFcInstantiated=function onFcInstantiated(event){if(event.sender.getType&&event.sender.getType()==="chartAPI"&&inclusionList[event.sender.getName&&event.sender.getName()]){var chart=event.sender,manager,handlersAPI;chart.registerFactory("multiCanvasCrossline",(function(){(0,_lib.componentFactory)(chart,manageMultiCanvasCrossline,"multiCanvasCrosslineManager");manager=chart.getChildren("multiCanvasCrosslineManager")[0];handlersAPI=manager._handlers;chart.iterateComponents((function(child){if(child.getName()==="canvas"){child.addEventListener("fc-mouseover",handlersAPI.onhover);child.addEventListener("fc-mousemove",handlersAPI.onhover);child.addEventListener("fc-mouseout",handlersAPI.onhoverout)}}))}),["canvas"])}};var manageMultiCanvasCrossline=function(_ComponentInterface){function manageMultiCanvasCrossline(){var _this;_this=_ComponentInterface.call(this)||this;_this._handlers=getHoverEventHandlers(_this);return _this}(0,_inheritsLoose2.default)(manageMultiCanvasCrossline,_ComponentInterface);var _proto=manageMultiCanvasCrossline.prototype;_proto.getAxesInfo=function getAxesInfo(event,targetCanvas){if(event===void 0){event={}}var manager=this,listOfAxes=targetCanvas.getAxes(),i,info=[],axis,isY,isVertical,coordinate=(0,_lib.getMouseCoordinate)(manager.getFromEnv("chart-container"),event.originalEvent,manager.getFromEnv("chart")),chartX=coordinate.chartX||0,chartY=coordinate.chartY||0;for(i=listOfAxes.length-1;i>=0;i--){axis=listOfAxes[i].axis;isY=listOfAxes[i].isY;isVertical=!!axis.config.isVertical;info.push({value:isVertical?axis.getValue(chartY):axis.getValue(chartX),axis:axis,isVertical:isVertical,isY:isY})}return info};_proto.getName=function getName(){return"multiCanvasCrosslineManager"};_proto.getType=function getType(){return"multiCanvasCrosslineManager"};_proto.show=function show(event){var _this2=this;var targetCanvas=event.sender;this.getFromEnv("chart").iterateComponents((function(component){if(component.getName()==="canvas"&&component!==targetCanvas){component.fireEvent("fc-mousemove",{axes:_this2.getAxesInfo(event,targetCanvas)})}}))};_proto.hide=function hide(event){var targetCanvas=event.sender,coordinate=(0,_lib.getMouseCoordinate)(targetCanvas.getFromEnv("chart-container"),event&&event.originalEvent,targetCanvas.getFromEnv("chart"));if(!targetCanvas.isWithinCanvas(coordinate.chartX,coordinate.chartY)){this.getFromEnv("chart").iterateComponents((function(component){if(component.getName()==="canvas"&&component!==targetCanvas){component.fireEvent("fc-mouseout")}}))}};return manageMultiCanvasCrossline}(_componentInterface.ComponentInterface);var _default=exports.default={extension:function extension(Fusioncharts){Fusioncharts.addEventListener("instantiated",onFcInstantiated)},name:"multi-canvas-crossline-manager",type:"extension",requiresFusionCharts:true};