quoslibero
Version:
FusionCharts JavaScript charting framework
1 lines • 4.11 kB
JavaScript
import{pluckNumber,hasTouch,TOUCH_THRESHOLD_PIXELS,CLICK_THRESHOLD_PIXELS,hashify}from'../../../../fc-core/src/lib';import LineDataset from'../line';import{addDep}from'../../../../fc-core/src/dependency-manager';import zoomlineAnimation from'./index.animation';let POINTER='pointer',DEFAULT_CURSOR='default',DATAPLOTCLICK='dataplotclick',HTP=hasTouch?TOUCH_THRESHOLD_PIXELS:CLICK_THRESHOLD_PIXELS;addDep({name:'zoomlineAnimation',type:'animationRule',extension:zoomlineAnimation});class ZoomLineDataset extends LineDataset{getType(){return'dataset'}getName(){return'zoomLine'}__setDefaultConfig(){super.__setDefaultConfig(),this.config.skipIgnorerIndices=[],this.config.showPeakData=0,this.config.showTerminalValidData=0,this.config.minPeakDataLimit=null,this.config.maxPeakDataLimit=null}_plotConfigure(a,b,c){super._plotConfigure(a,b,c);let d=this,e=d.config,f=d.components.data[a].config.setValue,g=c||d.getFromEnv('xAxis').getTicksLen(),h=e.showTerminalValidData,i=e.showPeakData,j=e.maxPeakDataLimit,k=e.minPeakDataLimit;i&&(j<k&&f>j&&f<k?e.skipIgnorerIndices.push(a):j>k&&(f>j||f<k)&&e.skipIgnorerIndices.push(a)),h&&a===g-1&&e.skipIgnorerIndices.push(a)}drawPlots(){var a=this,b=a.getFromEnv('xAxis'),c=a.getFromEnv('chartConfig').viewPortConfig;b.getPixel(c.step)-b.getPixel(0)>=c.amrd?super.drawPlots():a.hideAllAnchors()}_setConfigure(a,b){var c=this,d=c.config,e=c.getFromEnv('chart'),f=e.config,g=e.getFromEnv('dataSource').chart,h=c.config.JSONData;d.drawanchors=pluckNumber(g.drawanchors,g.showanchors,1),d.anchorradius=pluckNumber(h.anchorradius,g.anchorradius,d.linethickness+2),d.showTerminalValidData=pluckNumber(f.showTerminalValidData,0),d.showPeakData=pluckNumber(f.showPeakData,0),d.showPeakData&&(f.maxPeakDataLimit||f.minPeakDataLimit)&&(d.maxPeakDataLimit=pluckNumber(f.maxPeakDataLimit,Number.MIN_SAFE_INTEGER),d.minPeakDataLimit=pluckNumber(f.minPeakDataLimit,Number.MAX_SAFE_INTEGER)),super._setConfigure(a,b)}configureAttributes(a){super.configureAttributes(a);var b,c,d={},e=this,f=e.getFromEnv('chart').getFromEnv('dataSource').chart;c=e.config,b=c.linethickness+pluckNumber(f.pinlinethicknessdelta,1),d['stroke-width']=0<b&&b||0,d['stroke-dasharray']=[3,2],d.stroke=hashify(c.linecolor),d['stroke-opacity']=c.alpha/100,d['stroke-linejoin']=c['stroke-linejoin']='round',d['stroke-linecap']=c['stroke-linecap']='round',c.pin=d,c.animation=!1,c.transposeanimduration=0,c.defaultPadding={left:0,right:0}}drawLabel(){return this}isWithinShape(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r=Math.pow;if(a)return(e=a.config.anchorProps,f=a.config,h=e.borderThickness,i=this,j=i.components.data,k=pluckNumber(f.dragTolerance,0),l=a._xPos,m=a._yPos,null!==m)?(q=a.config.hoverEffects,g=Math.max(e.radius,q&&q.anchorRadius||0,HTP)+h/2,n=c-l,o=d-m,p=Math.sqrt(r(n,2)+r(o,2)),!!(p<=g||p<=k)&&{pointIndex:b,hovered:!0,pointObj:j[b]}):void 0}hideAllAnchors(){var a,b,c,d=this,e=d.components.data,f=e.length;for(b=0,c=f;b<c;b++)a=e[b],a&&a.graphics&&a.graphics.element&&a.graphics.element.hide()}_firePlotEvent(a,b,c){var d,e,f,g=this,h=g.getFromEnv('chart'),i=g.components,j=i.data,k=g.getFromEnv('toolTipController'),l=j[b],m=l.graphics.element,n=g.config.currentToolTip,o=!h.config.useCrossline;d=l.config,f=d.setLink,e=d.eventArgs;'fc-mouseover'===a?(o&&g._decideTooltipType(b,c),g._rolloverResponseSetter(h,l,c),f&&(m.node.style.cursor=POINTER)):'fc-mouseout'===a?(k.hide(n),g._rolloutResponseSetter(h,l,c),f&&(m.node.style.cursor=DEFAULT_CURSOR)):'fc-click'===a?h.plotEventHandler(m,c,DATAPLOTCLICK,e):'fc-mousemove'===a?o&&g._decideTooltipType(b,c):void 0}calculateScrollRange(){var a=Math.min,b=Math.round,c=Math.max;let d=this,e=d.config,f=d.getFromEnv('xAxis'),g=f.getTicksLen(),h=d.getFromEnv('chartConfig').viewPortConfig.step||1;e.scrollMinVal=c(b(f.getVisibleConfig().minValue),0)-h,e.scrollMaxVal=a(b(f.getVisibleConfig().maxValue)+1,g)+h,e.scrollMinValForLabel=c(b(f.getVisibleConfig().minValue),0)-h,e.scrollMaxValForLabel=a(b(f.getVisibleConfig().maxValue)+1,g)+h,e.scrollMinVal-=e.scrollMinVal%h,e.scrollMinValForLabel-=e.scrollMinValForLabel%h}}export default ZoomLineDataset;