@fusioncharts/features
Version:
FusionCharts JavaScript charting framework
1 lines • 4.31 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 _inputBase=_interopRequireDefault(require("./input-base"));var _lib=require("@fusioncharts/core/src/lib");var InputSwipeGesture=function(_Base){function InputSwipeGesture(){var _this;_this=_Base.call(this)||this;var input=_this;input.controlArr=[{nativeInteraction:["fc-dragend"],callback:input.end.bind(input),component:input},{nativeInteraction:["fc-dragmove"],callback:input.move.bind(input),component:input},{nativeInteraction:["fc-dragstart"],callback:input.start.bind(input),component:input}];return _this}(0,_inheritsLoose2.default)(InputSwipeGesture,_Base);var _proto=InputSwipeGesture.prototype;_proto.getName=function getName(){return"swipeGesture"};_proto.configure=function configure(){_Base.prototype.configure.call(this);this.enable()};_proto.getPresentScrollValue=function getPresentScrollValue(){var xAxis=this.config.xAxis,visibleConfig=xAxis.getVisibleConfig(),limit=xAxis.getLimit(),visibleLength=visibleConfig.maxValue-visibleConfig.minValue,totalLength=limit.max-limit.min;return(visibleConfig.minValue-limit.min)/(totalLength-visibleLength)};_proto.start=function start(e){var input=this,chart=input.getFromEnv("chart"),coordinate,config=input.config,presentScrollValue;coordinate=(0,_lib.getMouseCoordinate)(chart.getFromEnv("chart-container"),e.originalEvent,chart);config.previousX=coordinate.chartX;config.previousY=coordinate.chartY;config.presentScrollValue=presentScrollValue=input.getPresentScrollValue();chart.fireChartInstanceEvent("scrollStart",{scrollPosition:presentScrollValue})};_proto.move=function move(e){var input=this,config=input.config,chart=input.getFromEnv("chart"),scrollPosition,xAxis=config.xAxis,scrollbar=chart.getChildren("scrollBar")&&chart.getChildren("scrollBar")[0],scrollAnchor=scrollbar&&scrollbar.getChildren("scrollAnchor")[0],xAxisRange=xAxis.config.axisRange,coordinate=(0,_lib.getMouseCoordinate)(chart.getFromEnv("chart-container"),e.originalEvent,chart),presentX=coordinate.chartX,presentY=coordinate.chartY,diff=scrollbar&&scrollbar.config&&!scrollbar.config.isHorizontal?(presentY-config.previousY)/config.plotDifference:(presentX-config.previousX)/config.plotDifference,visibleConfig=xAxis.getVisibleConfig(),previousScrollValue=config.previousScrollValue=config.presentScrollValue,min=visibleConfig.minValue-diff,axisMin=config.axisMin,axisMax=config.axisMax,max=visibleConfig.maxValue-diff;if(min<axisMin&&axisMin===visibleConfig.minValue||max>axisMax&&axisMax===visibleConfig.maxValue){return}if(min<axisMin){max+=diff;diff=visibleConfig.minValue-axisMin;max-=diff;min=axisMin}else if(axisMax<max){min+=diff;diff=axisMax-visibleConfig.maxValue;min+=diff;max=axisMax}scrollPosition=(min-xAxisRange.min)/(xAxisRange.max-xAxisRange.min-(max-min));scrollAnchor.config.scrollPosition=scrollPosition;chart.getFromEnv("animationManager").setAnimationState("scroll");xAxis.setVisibleConfig(min,max);chart.setScrollBarDimension&&chart.setScrollBarDimension();scrollbar.asyncDraw();chart.fireChartInstanceEvent("onScroll",{scrollPosition:previousScrollValue});chart.fireEvent("onScroll",{scrollPosition:scrollPosition});config.previousX=presentX;config.previousY=presentY;config.presentScrollValue=input.getPresentScrollValue()};_proto.end=function end(){var input=this,config=input.config;input.getFromEnv("chart").fireChartInstanceEvent("scrollEnd",{previousScrollPosition:config.previousScrollValue,scrollPosition:config.presentScrollValue})};_proto.setControl=function setControl(){var input=this,manager=input.getLinkedParent(),controlArr=input.controlArr;manager.releaseControl(controlArr);if(input.isEnabled()){manager.getControl(controlArr)}};_proto.draw=function draw(){var input=this,config=input.config,xAxisArr=input.getFromEnv("canvas").getAxes().filter((function(axisObj){return!axisObj.isY})),xAxis=config.xAxis=xAxisArr&&xAxisArr[0]&&xAxisArr[0].axis,axisRange=xAxis.config.axisRange;config.plotDifference=xAxis.getPixel(1)-xAxis.getPixel(0);config.axisMin=axisRange.min;config.axisMax=axisRange.max};return InputSwipeGesture}(_inputBase.default);var _default=exports.default=InputSwipeGesture;