UNPKG

@fusioncharts/features

Version:

FusionCharts JavaScript charting framework

1 lines 2.19 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 _inputBase=_interopRequireDefault(require("./input-base"));var ZoomIn=function(_Base){function ZoomIn(){var _this;_this=_Base.call(this)||this;var input=_this;input._toggle=function(){input.isEnabled()&&input.zoom()};return _this}(0,_inheritsLoose2.default)(ZoomIn,_Base);var _proto=ZoomIn.prototype;_proto.getName=function getName(){return"zoomInButton"};_proto.configure=function configure(){_Base.prototype.configure.call(this);var input=this,config=input.config;config.stepZoom=config.stepZoom||5.33;!config.skipGraphics&&input.setLinkedItem("button",input.createButton({icon:"zoomInIcon",handlers:{click:input._toggle},tooltext:input.config.tooltext,state:"activated"}));input.enable()};_proto.zoom=function zoom(){var input=this,visibleRange,rangePadding,axis,eventArgs={},config=input.config,hookFn=config.hookFn,zoomed=false,startX,endX,startY,endY,level,axisZoomed,zoomLimit=Math.pow(10,config.zoomDecimalLimit)||1;input.getFromEnv("animationManager").setAnimationState("zoom");input.getFromEnv("axesObArr").forEach((function(axisOb){axis=axisOb.axis;visibleRange=axis.getVisibleConfig();rangePadding=Math.round((visibleRange.maxValue-visibleRange.minValue)/config.stepZoom*zoomLimit)/zoomLimit;if(rangePadding>Number.EPSILON){axisOb.stack.push(visibleRange);if(axisOb.isY){startY=visibleRange.minValue+rangePadding;endY=visibleRange.maxValue-rangePadding}else{startX=visibleRange.minValue+rangePadding;endX=visibleRange.maxValue-rangePadding;eventArgs=input.constructor._getZoomInfo(startX,endX,axis)}level=axisOb.stack.length+1;hookFn&&hookFn(visibleRange.minValue,visibleRange.maxValue);axisZoomed=axis.setVisibleConfig(visibleRange.minValue+rangePadding,visibleRange.maxValue-rangePadding);zoomed=zoomed||axisZoomed}}));if(zoomed){input._raiseZoomEvents("zoomin","zoomedin",Object.assign(eventArgs,{level:level,startX:startX,endX:endX,startY:startY,endY:endY}))}};return ZoomIn}(_inputBase.default);var _default=exports.default=ZoomIn;