UNPKG

quoslibero

Version:

FusionCharts JavaScript charting framework

1 lines 1.33 kB
import Base from'./input-base';import{getMouseCoordinate}from'../../../fc-core/src/lib';var zoomOnPoint=function(a,b,c,d){var e=Math.round,f=b-a.minValue,g=a.maxValue-b;return{min:e((b-f/c*(c-1))*d)/d,max:e((b+g/c*(c-1))*d)/d}};class InputDbTapZoom extends Base{constructor(){super();var a=this;a.controlArr=[{nativeInteraction:['fc-dbclick'],callback:a.zoom.bind(a),component:a}]}getName(){return'dbTapZoom'}configure(){super.configure(),this.enable()}setControl(){var a=this,b=a.controlArr,c=a.getLinkedParent();c.releaseControl(b),a.isEnabled()&&c.getControl(b)}zoom(a){var b,c,d,e,f,g,h,i,j,k,l=this,m=l.getFromEnv('chart'),n=getMouseCoordinate(m.getLinkedItem('container'),a,m),o=l.config,p=o.hookFn,q={},r=!1,s=Math.pow(10,o.zoomDecimalLimit)||1;m.getFromEnv('animationManager').setAnimationState('zoom'),l.getFromEnv('axesObArr').forEach(function(a){b=a.axis,c=b.getValue(a.isY?n.chartY:n.chartX),e=b.getVisibleConfig(),d=zoomOnPoint(e,c,o.stepzoom,s),a.isY?(i=d.min,j=d.max):(g=d.min,h=d.max,q=l.constructor._getZoomInfo(g,h,b)),b.getZoom()<=s&&(p&&'function'==typeof o.hookFn&&p(d.min,d.max),f=b.setVisibleConfig(d.min,d.max),r=r||f,a.stack.push(e),k=a.stack.length+1)}),r&&l._raiseZoomEvents('zoomin','zoomedin',Object.assign(q,{level:k,startX:g,endX:h,startY:i,endY:j},a.originalEvent))}}export default InputDbTapZoom;