UNPKG

highcharts

Version:
13 lines 4.04 kB
/** * Highcharts JS v13.0.1 (2026-08-17) * @module highcharts/modules/mouse-wheel-zoom * @requires highcharts * * Non-cartesian series zoom module * * (c) 2024-2026 Highsoft AS * Author: Hubert Kozik * * A commercial license may be required depending on use, * see www.highcharts.com/license */import*as e from"../highcharts.js";let t={};t.n=e=>{let o=e&&e.__esModule?()=>e.default:()=>e;return t.d(o,{a:o}),o},t.d=(e,o)=>{if(Array.isArray(o))for(var i=0;i<o.length;){var a=o[i++],s=o[i++];t.o(e,a)?0===s&&i++:0===s?Object.defineProperty(e,a,{enumerable:!0,value:o[i++]}):Object.defineProperty(e,a,{enumerable:!0,get:s})}else for(var a in o)t.o(o,a)&&!t.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:o[a]})},t.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);let o=e.default;var i=t.n(o);let{composed:a}=i();function s(e){let t=this,{trigger:o,selection:i,reset:a,from:s={},to:r={}}=e;"xy"===t.zooming.type&&("mousewheel"===o||"pan"===o||i||a)&&t.series.forEach(i=>{if(!i.isCartesian&&!1!==i.options.zoomEnabled){i.isDirty=!0,t.isDirtyBox=!0,e.hasZoomed=!0;let{plotWidth:a=0,plotHeight:n=0}=t;if("pan"===o&&i.zooming)i.zooming.panX-=(r.x||0)/a,i.zooming.panY-=(r.y||0)/n;else if(Object.keys(s).length){let{width:e=1,height:o=1}=r,l=Math.abs(i.group?.scaleX||1),{x:h=0,y:p=0,width:c=1,height:m=1}=s,d=h,g=p,f=i.zooming?.scale||i.group?.scaleX||1,u=(i.zooming?.width||1)*a,z=(i.zooming?.height||1)*n;if(Object.keys(r).length)u=c/e*u,z=c/o*z,h-=t.plotLeft,p-=t.plotTop,d=h-u/2,g=p-z/2,f=Math.min(a/u,n/z);else{c/=l,m/=l,f=Math.min(a/c,n/m);let e=0,o=0;i.zooming&&(e=i.zooming.x*a,o=i.zooming.y*n);let s=(h-t.plotLeft)/(a-c*l||1),r=(p-t.plotTop)/(n-m*l||1);u=c,z=m,h-=t.plotLeft,p-=t.plotTop,h/=l,p/=l,h+=e+c*s,p+=o+m*r,d-=t.plotLeft,g-=t.plotTop,d/=l,g/=l,d+=e,g+=o}i.zooming={x:d/a,y:g/n,zoomX:h/a,zoomY:p/n,width:u/a,height:z/n,scale:f,panX:0,panY:0},f<1&&delete i.zooming}else delete i.zooming}})}function r(e){let{chart:t,group:o,zooming:i}=this,{plotSizeX:a=0,plotSizeY:s=0}=t,{scale:r,translateX:n,translateY:l,name:h}=e,p=0,c=0,m=n,d=l;t.inverted&&([a,s]=[s,a]),o&&i&&(r=i.scale,p=i.zoomX*a*(r-Math.abs(o.scaleX||1)),c=i.zoomY*s*(r-Math.abs(o.scaleY||1)),"series"===h&&(i.x=Math.max(0,Math.min(1-i.width,i.x+i.panX/r)),p+=i.panX*a,i.panX=0,i.y=Math.max(0,Math.min(1-i.height,i.y+i.panY/r)),c+=i.panY*s,i.panY=0),n=(o.translateX||m)-p,(l=(o.translateY||d)-c)>d?l=d:(o.translateY||d)-c<s*(1-r)+d&&(l=s*(1-r)+d),n>m?n=m:n<a*(1-r)+m&&(n=a*(1-r)+m),e.scale=r,e.translateX=n,e.translateY=l)}function n(){let e;this.series.find(e=>!!e.zooming)&&(this.zoomClipRect||(this.zoomClipRect=this.renderer.clipRect()),this.zoomClipRect.attr({x:this.plotLeft,y:this.plotTop,width:this.inverted?this.clipBox.height:this.clipBox.width,height:this.inverted?this.clipBox.width:this.clipBox.height}),e=this.zoomClipRect),this.seriesGroup?.clip(e),this.series.forEach(t=>{t.dataLabelsParentGroups?.forEach(t=>{t.clip(e)})})}function l(e){if(e.point.series&&!e.point.series.isCartesian&&e.point.series.group&&e.point.series.zooming){let t=e.point.series.chart,o=e.point.series.zooming.scale,i=e.point.series.group.translateX||0,a=e.point.series.group.translateY||0;e.ret[0]=e.ret[0]*o+i-t.plotLeft,e.ret[1]=e.ret[1]*o+a-t.plotTop}}function h(e){e.skipAxes&&this.series.forEach(e=>{e.group&&e.zooming&&e.group.attr({translateX:0,translateY:0,scaleX:1,scaleY:1})})}function p({index:e,zIndex:t=6}){var o;this.hasDataLabels?.()&&(this.dataLabelsParentGroups||(this.dataLabelsParentGroups=[]),(o=this.dataLabelsParentGroups)[e]||(o[e]=this.chart.renderer.g().attr({zIndex:t}).add()))}let c=class{static compose(e,t,i){(0,o.pushUnique)(a,"NonCartesianSeriesZoom")&&((0,o.addEvent)(e,"afterDrawChartBox",n),(0,o.addEvent)(e,"transform",s),(0,o.addEvent)(e,"afterSetChartSize",h),(0,o.addEvent)(t,"getPlotBox",r),(0,o.addEvent)(t,"initDataLabelsGroup",p),(0,o.addEvent)(i,"getAnchor",l))}},m=i();m.NonCartesianSeriesZoom=m.NonCartesianSeriesZoom||c,m.NonCartesianSeriesZoom.compose(m.Chart,m.Series,m.Tooltip);let d=i();export{d as default};