/* CanvasJS jQuery StockChart Plugin - https://canvasjs.com/ Copyright 2024 fenopix */ (function(c,d,e,f){c.fn.CanvasJSChart=function(a){if(a){var b=this.first();a=new CanvasJS.Chart(this[0],a);b.children(".canvasjs-chart-container").data("canvasjsChartRef",a);a.render();return this}return this.first().children(".canvasjs-chart-container").data("canvasjsChartRef")};c.fn.CanvasJSStockChart=function(a){if(a){var b=this.first();a=new CanvasJS.StockChart(this[0],a);b.children(".canvasjs-stock-container").data("canvasjsStockChartRef",a);a.render();return this}return this.first().children(".canvasjs-stock-container").data("canvasjsStockChartRef")}})(jQuery, window,document); /* CanvasJS StockChart - v1.10.1 GA - https://canvasjs.com/ Copyright 2024 fenopix --------------------- License Information -------------------- CanvasJS StockChart is a commercial product which requires purchase of license. Without a commercial license you can use it for evaluation purposes for upto 30 days. Please refer to the following link for further details. https://canvasjs.com/license/ ---------------------Free for Non-Commercial Use-------------------- For non-commercial purposes you can use the software for free under Creative Commons Attribution-NonCommercial 3.0 License. A credit Link is added to the chart which should be preserved. Refer to the following link for further details on the same. https://creativecommons.org/licenses/by-nc/3.0/deed.en_US */ /*tslint:disable*/ /*eslint-disable*/ /*jshint ignore:start*/ (function(){function ia(k,U){k.prototype=ob(U.prototype);k.prototype.constructor=k;k.base=U.prototype}function ob(k){function U(){}U.prototype=k;return new U}function db(k,U,f){"millisecond"===f?k.setMilliseconds(k.getMilliseconds()+1*U):"second"===f?k.setSeconds(k.getSeconds()+1*U):"minute"===f?k.setMinutes(k.getMinutes()+1*U):"hour"===f?k.setHours(k.getHours()+1*U):"day"===f?k.setDate(k.getDate()+1*U):"week"===f?k.setDate(k.getDate()+7*U):"month"===f?k.setMonth(k.getMonth()+1*U):"year"===f&&k.setFullYear(k.getFullYear()+ 1*U);return k}function qa(k,U){var f=!1;0>k&&(f=!0,k*=-1);k=""+k;for(U=U?U:1;k.length
Please right click on the image and save it to your device
"),f.document.close()}}}function L(k){var f=((k&16711680)>>16).toString(16),s=((k&65280)>>8).toString(16);k=((k&255)>>0).toString(16);f=2>f.length?"0"+f:f;s=2>s.length?"0"+s:s;k=2>k.length?"0"+k:k;return"#"+f+s+k}function pb(k,f){var s=this.length>>>0,w=Number(f)||0,w=0>w?Math.ceil(w):Math.floor(w);for(0>w&&(w+=s);w=navigator.userAgent.search("MSIE")&&k._menuButton.childNodes[0]&&T(k._menuButton.childNodes[0],{WebkitFilter:"invert(0%)",filter:"invert(0%)"})):Aa(k._menuButton);else if(k.exportEnabled&&w){var f=!1;k._menuButton=document.createElement("button");za(k,k._menuButton,"menu");k._toolBar.appendChild(k._menuButton);z(k._menuButton, "touchstart",function(k){f=!0},k.allDOMEventHandlers);z(k._menuButton,"click",function(){"none"!==k._dropdownMenu.style.display||k._dropDownCloseTime&&500>=(new Date).getTime()-k._dropDownCloseTime.getTime()||(k._dropdownMenu.style.display="block",k._menuButton.blur(),k._dropdownMenu.focus())},k.allDOMEventHandlers,!0);z(k._menuButton,"mousemove",function(){f||(T(k._menuButton,{backgroundColor:k.toolbar.itemBackgroundColorOnHover,color:k.toolbar.fontColorOnHover}),0>=navigator.userAgent.search("MSIE")&& T(k._menuButton.childNodes[0],{WebkitFilter:"invert(100%)",filter:"invert(100%)"}))},k.allDOMEventHandlers,!0);z(k._menuButton,"mouseout",function(){f||(T(k._menuButton,{backgroundColor:k.toolbar.itemBackgroundColor,color:k.toolbar.fontColor}),0>=navigator.userAgent.search("MSIE")&&T(k._menuButton.childNodes[0],{WebkitFilter:"invert(0%)",filter:"invert(0%)"}))},k.allDOMEventHandlers,!0)}if(k.exportEnabled&&k._dropdownMenu){var s=k.theme&&-1!==k.theme.indexOf("dark")?"black":"#888888";T(k._dropdownMenu, {backgroundColor:k.toolbar.itemBackgroundColor,color:k.toolbar.fontColor,boxShadow:"2px 2px 10px "+s});for(var s=k._dropdownMenu.childNodes,$=[k._cultureInfo.printText,k._cultureInfo.saveJPGText,k._cultureInfo.savePNGText],F=0;F<$.length;F++)T(s[F],{backgroundColor:k.toolbar.itemBackgroundColor,color:k.toolbar.fontColor}),s[F].innerHTML=$[F]}else!k._dropdownMenu&&(k.exportEnabled&&w)&&(f=!1,k._dropdownMenu=document.createElement("div"),k._dropdownMenu.setAttribute("tabindex",-1),s=k.theme&&-1!==k.theme.indexOf("dark")? "black":"#888888",T(k._dropdownMenu,{position:"absolute",zIndex:1,userSelect:"none",MozUserSeelct:"none",WebkitUserSelect:"none",msUserSelect:"none",cursor:"pointer",right:"0px",top:"25px",minWidth:"120px",outline:0,fontSize:"14px",fontFamily:"Arial, Helvetica, sans-serif",padding:"5px 0px 5px 0px",textAlign:"left",lineHeight:"10px",backgroundColor:k.toolbar.itemBackgroundColor,boxShadow:"2px 2px 10px "+s}),k._dropdownMenu.style.display="none",k._toolBar.appendChild(k._dropdownMenu),z(k._dropdownMenu, "blur",function(){Aa(k._dropdownMenu);k._dropDownCloseTime=new Date},k.allDOMEventHandlers,!0),s=document.createElement("div"),T(s,{padding:"12px 8px 12px 8px"}),s.innerHTML=k._cultureInfo.printText,s.style.backgroundColor=k.toolbar.itemBackgroundColor,s.style.color=k.toolbar.fontColor,k._dropdownMenu.appendChild(s),z(s,"touchstart",function(k){f=!0},k.allDOMEventHandlers),z(s,"mousemove",function(){f||(this.style.backgroundColor=k.toolbar.itemBackgroundColorOnHover,this.style.color=k.toolbar.fontColorOnHover)}, k.allDOMEventHandlers,!0),z(s,"mouseout",function(){f||(this.style.backgroundColor=k.toolbar.itemBackgroundColor,this.style.color=k.toolbar.fontColor)},k.allDOMEventHandlers,!0),z(s,"click",function(){k.print();Aa(k._dropdownMenu)},k.allDOMEventHandlers,!0),s=document.createElement("div"),T(s,{padding:"12px 8px 12px 8px"}),s.innerHTML=k._cultureInfo.saveJPGText,s.style.backgroundColor=k.toolbar.itemBackgroundColor,s.style.color=k.toolbar.fontColor,k._dropdownMenu.appendChild(s),z(s,"touchstart",function(k){f= !0},k.allDOMEventHandlers),z(s,"mousemove",function(){f||(this.style.backgroundColor=k.toolbar.itemBackgroundColorOnHover,this.style.color=k.toolbar.fontColorOnHover)},k.allDOMEventHandlers,!0),z(s,"mouseout",function(){f||(this.style.backgroundColor=k.toolbar.itemBackgroundColor,this.style.color=k.toolbar.fontColor)},k.allDOMEventHandlers,!0),z(s,"click",function(){k.exportChart({format:"jpeg",fileName:k.exportFileName});Aa(k._dropdownMenu)},k.allDOMEventHandlers,!0),s=document.createElement("div"), T(s,{padding:"12px 8px 12px 8px"}),s.innerHTML=k._cultureInfo.savePNGText,s.style.backgroundColor=k.toolbar.itemBackgroundColor,s.style.color=k.toolbar.fontColor,k._dropdownMenu.appendChild(s),z(s,"touchstart",function(k){f=!0},k.allDOMEventHandlers),z(s,"mousemove",function(){f||(this.style.backgroundColor=k.toolbar.itemBackgroundColorOnHover,this.style.color=k.toolbar.fontColorOnHover)},k.allDOMEventHandlers,!0),z(s,"mouseout",function(){f||(this.style.backgroundColor=k.toolbar.itemBackgroundColor, this.style.color=k.toolbar.fontColor)},k.allDOMEventHandlers,!0),z(s,"click",function(){k.exportChart({format:"png",fileName:k.exportFileName});Aa(k._dropdownMenu)},k.allDOMEventHandlers,!0))}function jb(k,f,s){k*=ka;f*=ka;k=s.getImageData(k,f,2,2).data;f=!0;for(s=0;4>s;s++)if(k[s]!==k[s+4]|k[s]!==k[s+8]|k[s]!==k[s+12]){f=!1;break}return f?k[0]<<16|k[1]<<8|k[2]:0}function oa(k,f,s){return k in f?f[k]:s[k]}function Va(k,U,s,$){w&&kb?($=!f($)&&$?k.getContext("2d",{willReadFrequently:!0}):k.getContext("2d"), Wa=$.webkitBackingStorePixelRatio||$.mozBackingStorePixelRatio||$.msBackingStorePixelRatio||$.oBackingStorePixelRatio||$.backingStorePixelRatio||1,ka=$a/Wa,k.width=U*ka,k.height=s*ka,$a!==Wa&&(k.style.width=U+"px",k.style.height=s+"px",$.scale(ka,ka))):(k.width=U,k.height=s)}function sb(k){if(!tb){var f=!1,s=!1;"undefined"===typeof da.Chart.creditHref?(k.creditHref=wa("iuuqr;..b`ow`rkr/bnl."),k.creditText=wa("B`ow`rKR/bnl")):(f=k.updateOption("creditText"),s=k.updateOption("creditHref"));if(k.creditHref&& k.creditText){k._creditLink||(k._creditLink=document.createElement("a"),k._creditLink.setAttribute("class","canvasjs-chart-credit"),k._creditLink.setAttribute("title","JavaScript Charts"),T(k._creditLink,{outline:"none",margin:"0px",position:"absolute",right:"2px",top:k.height-14+"px",color:"dimgrey",textDecoration:"none",fontSize:"11px",fontFamily:"Calibri, Lucida Grande, Lucida Sans Unicode, Arial, sans-serif"}),k._creditLink.setAttribute("tabIndex",-1),k._creditLink.setAttribute("target","_blank")); if(0===k.renderCount||f||s)k._creditLink.setAttribute("href",k.creditHref),k._creditLink.innerHTML=k.creditText;k._creditLink&&k.creditHref&&k.creditText?(k._creditLink.parentElement||k._canvasJSContainer.appendChild(k._creditLink),k._creditLink.style.top=k.height-14+"px"):k._creditLink.parentElement&&k._canvasJSContainer.removeChild(k._creditLink)}}}function ta(k,f,s){Na&&(this.canvasCount|=0,window.console.log(++this.canvasCount));var $=document.createElement("canvas");$.setAttribute("class","canvasjs-chart-canvas"); Va($,k,f,s);w||"undefined"===typeof G_vmlCanvasManager||G_vmlCanvasManager.initElement($);return $}function T(k,f){for(var s in f)k.style[s]=f[s]}function za(k,f,s){f.getAttribute("state")||(f.style.backgroundColor=k.toolbar.itemBackgroundColor,f.style.color=k.toolbar.fontColor,f.style.border="none",T(f,{WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"}));f.getAttribute("state")!==s&&(f.setAttribute("state",s),f.setAttribute("type","button"),T(f,{padding:"5px 12px", cursor:"pointer","float":"left",width:"40px",height:"25px",outline:"0px",verticalAlign:"baseline",lineHeight:"0"}),f.innerHTML=""+k._cultureInfo[s+"Text"]+"",T(f.childNodes[0],{height:"95%",pointerEvents:"none"}));f.setAttribute("title",k._cultureInfo[s+"Text"])}function Ua(){for(var k=null,f=0;fe?"a":"p";case "tt":return 12>e?"am":"pm";case "T":return 12>e?"A":"P";case "TT":return 12>e?"AM":"PM";case "K":return d?"UTC":(String(z).match(v)|| [""]).pop().replace(A,"");case "z":return(0k;if(1>Math.abs(k)){var s=parseInt(k.toString().split("e-")[1]);s&&(k=(f?-1*k:k)*Math.pow(10,s-1),k="0."+Array(s).join("0")+k.toString().substring(2),k=f?"-"+k:k)}else s=parseInt(k.toString().split("+")[1]), 20k?!0:!1;w&&(k*=-1);var F=s?s.decimalSeparator:".",v=s?s.digitGroupSeparator:",",A="";f=String(f);var A=1,z=s="",E=-1,P=[],J=[],R=0,T=0,M=0,d=!1,t=0,z=f.match(/"[^"]*"|'[^']*'|[eE][+-]*[0]+|[,]+[.]|\u2030|./g);f=null;for(var x=0;z&&xE)E=x;else{if("%"===f)A*=100;else if("\u2030"===f){A*=1E3;continue}else if(","=== f[0]&&"."===f[f.length-1]){A/=Math.pow(1E3,f.length-1);E=x+f.length-1;continue}else"E"!==f[0]&&"e"!==f[0]||"0"!==f[f.length-1]||(d=!0);0>E?(P.push(f),"#"===f||"0"===f?R++:","===f&&M++):(J.push(f),"#"!==f&&"0"!==f||T++)}d&&(f=Math.floor(k),z=-Math.floor(Math.log(k)/Math.LN10+1),t=0===k?0:0===f?-(R+z):vb(f).length-R,A/=Math.pow(10,t));0>E&&(E=x);A=(k*A).toFixed(T);f=A.split(".");A=(f[0]+"").split("");k=(f[1]+"").split("");A&&"0"===A[0]&&A.shift();for(d=z=x=T=E=0;0t?f.replace("+", "").replace("-",""):f.replace("-",""),s+=f.replace(/[0]+/,function(a){return qa(t,a.length)}));v="";for(P=!1;0t?f.replace("+","").replace("-",""):f.replace("-",""),v+=f.replace(/[0]+/,function(a){return qa(t, a.length)}));s+=(P?F:"")+v;return w?"-"+s:s},Ca=function(f){var w=0,s=0;f=f||window.event;f.offsetX||0===f.offsetX?(w=f.offsetX,s=f.offsetY):f.layerX||0==f.layerX?(w=f.layerX,s=f.layerY):(w=f.pageX-f.target.offsetLeft,s=f.pageY-f.target.offsetTop);return{x:w,y:s}},kb=!0,$a=window.devicePixelRatio||1,Wa=1,ka=kb?$a/Wa:1,W=function(f,w,s,v,F,z,A,E,J,P,R,T,M){"undefined"===typeof M&&(M=1);A=A||0;E=E||"black";var L=15w)z=E-1;else break}s>w&&1E&&(A=w.pop(),v-=A.height,z=J)}this._wrappedText={lines:w,width:z,height:v};this.width=z+(this.leftPadding+this.rightPadding);this.height=v+(this.topPadding+this.bottomPadding);this.ctx.font=s};la.prototype._getFontString=function(){var f;f=""+(this.fontStyle? this.fontStyle+" ":"");f+=this.fontWeight?this.fontWeight+" ":"";f+=this.fontSize?this.fontSize+"px ":"";var v=this.fontFamily?this.fontFamily+"":"";!w&&v&&(v=v.split(",")[0],"'"!==v[0]&&'"'!==v[0]&&(v="'"+v+"'"));return f+=v};ia(Ya,X);ia(Ja,X);Ja.prototype.setLayout=function(){if(this.text){var k=this.dockInsidePlotArea?this.chart.plotArea:this.chart,w=k.layoutManager.getFreeSpace(),s=w.x1,v=w.y1,z=0,E=0,A=this.chart._menuButton&&this.chart.exportEnabled&&"top"===this.verticalAlign?40:0,J,L;this.textAlign= f(this.options.textAlign)?this.horizontalAlign:this.textAlign;"top"===this.verticalAlign||"bottom"===this.verticalAlign?(null===this.maxWidth&&(this.maxWidth=w.width-4-A*("center"===this.horizontalAlign?2:1)),E=0.5*w.height-this.margin-2,z=0):"center"===this.verticalAlign&&("left"===this.horizontalAlign||"right"===this.horizontalAlign?(null===this.maxWidth&&(this.maxWidth=w.height-4),E=0.5*w.width-this.margin-2):"center"===this.horizontalAlign&&(null===this.maxWidth&&(this.maxWidth=w.width-4),E=0.5* w.height-4));var P;f(this.padding)||"number"!==typeof this.padding?f(this.padding)||"object"!==typeof this.padding||(P=this.padding.top?this.padding.top:this.padding.bottom?this.padding.bottom:0,P+=this.padding.bottom?this.padding.bottom:this.padding.top?this.padding.top:0):P=2*this.padding;this.wrap||(E=Math.min(E,1.5*this.fontSize+P));E=new la(this.ctx,{fontSize:this.fontSize,fontFamily:this.fontFamily,fontColor:this.fontColor,fontStyle:this.fontStyle,fontWeight:this.fontWeight,textAlign:this.textAlign, verticalAlign:this.verticalAlign,borderColor:this.borderColor,borderThickness:this.borderThickness,backgroundColor:this.backgroundColor,maxWidth:this.maxWidth,maxHeight:E,cornerRadius:this.cornerRadius,text:this.text,padding:this.padding,textBaseline:"middle"});P=E.measureText();"top"===this.verticalAlign||"bottom"===this.verticalAlign?("top"===this.verticalAlign?(v=w.y1+2+this.fontSize/2+4,L="top"):"bottom"===this.verticalAlign&&(v=w.y2-2-P.height+this.fontSize/2+4,L="bottom"),"left"===this.horizontalAlign? s=w.x1+2:"center"===this.horizontalAlign?s=w.x1+w.width/2-P.width/2:"right"===this.horizontalAlign&&(s=w.x2-2-P.width-A),J=this.horizontalAlign,this.width=P.width,this.height=P.height):"center"===this.verticalAlign&&("left"===this.horizontalAlign?(s=w.x1+2+(this.fontSize/2+4),v=w.y2-2-(this.maxWidth/2-P.width/2),z=-90,L="left",this.width=P.height,this.height=P.width):"right"===this.horizontalAlign?(s=w.x2-2-(this.fontSize/2+4),v=w.y1+2+(this.maxWidth/2-P.width/2),z=90,L="right",this.width=P.height, this.height=P.width):"center"===this.horizontalAlign&&(v=k.y1+(k.height/2-P.height/2)+this.fontSize/2+4,s=k.x1+(k.width/2-P.width/2),L="center",this.width=P.width,this.height=P.height),J="center");E.x=s;E.y=v;E.angle=z;E.horizontalAlign=J;this._textBlock=E;k.layoutManager.registerSpace(L,{width:this.width+("left"===L||"right"===L?this.margin+2:0),height:this.height+("top"===L||"bottom"===L?this.margin+2:0)});this.bounds={x1:s,y1:v,x2:s+this.width,y2:v+this.height};this.ctx.textBaseline="top"}};Ja.prototype.render= function(){this._textBlock&&this._textBlock.render(!0)};ia(Oa,X);Oa.prototype.setLayout=Ja.prototype.setLayout;Oa.prototype.render=Ja.prototype.render;bb.prototype.get=function(f,w){var s=null;0a[l].x&&0d?{x:a[f].x+d/3,y:a[f].y+b/3}:{x:a[f].x,y:a[f].y+(1===c.length?0:b/9)};f=g;l=0===f?0:f-1;B=f===a.length-1?f:f+1;b=Math.abs((a[B].x-a[l].x)/(0===a[f].x-a[l].x?0.01:a[f].x-a[l].x))*(e-1)/2+1;d=(a[B].x-a[l].x)/b;b=(a[B].y-a[l].y)/b; c[c.length]=a[f].x>a[l].x&&0d?{x:a[f].x-d/3,y:a[f].y-b/3}:{x:a[f].x,y:a[f].y-b/9};c[c.length]=a[g]}return c}function E(a,e,c,b,g,l,B,f,d,m){var n=0;m?(B.color=l,f.color=l):m=1;n=d?Math.abs(g-c):Math.abs(b-e);n=0this.labelAngle?this.labelAngle-= 180:270<=this.labelAngle&&360>=this.labelAngle&&(this.labelAngle-=360);this.options.scaleBreaks&&(this.scaleBreaks=new M(this.chart,this.options.scaleBreaks,++this.chart._eventManager.lastObjectId,this));this.stripLines=[];if(this.options.stripLines&&0=this._appliedBreaks[a+1].startValue&&(this._appliedBreaks[a].endValue=Math.max(this._appliedBreaks[a].endValue,this._appliedBreaks[a+1].endValue),window.console&&window.console.log("CanvasJS Error: Breaks "+a+" and "+(a+1)+" are overlapping."), this._appliedBreaks.splice(a,2),a--)}}function V(a,e,c,b,g,l){V.base.constructor.call(this,"Break",e,c,b,l);this.id=g;this.chart=a;this.ctx=this.chart.ctx;this.scaleBreaks=l;this.optionsName=e;this.isOptionsInArray=!0;this.type=c.type?this.type:l.type;this.fillOpacity=f(c.fillOpacity)?l.fillOpacity:this.fillOpacity;this.lineThickness=f(c.lineThickness)?l.lineThickness:this.lineThickness;this.color=c.color?this.color:l.color;this.lineColor=c.lineColor?this.lineColor:l.lineColor;this.lineDashType=c.lineDashType? this.lineDashType:l.lineDashType;!f(this.startValue)&&this.startValue.getTime&&(this.startValue=this.startValue.getTime());!f(this.endValue)&&this.endValue.getTime&&(this.endValue=this.endValue.getTime());"number"===typeof this.startValue&&("number"===typeof this.endValue&&this.endValue=navigator.userAgent.search("MSIE")&&this._zoomButton.childNodes[0]&&T(this._zoomButton.childNodes[0],{WebkitFilter:"invert(0%)",filter:"invert(0%)"});else{var c=!1;Aa(this._zoomButton=document.createElement("button"));za(this,this._zoomButton,"pan");this._toolBar.appendChild(this._zoomButton);this._zoomButton.style.borderRight=this.toolbar.buttonBorderThickness+"px solid "+this.toolbar.buttonBorderColor;z(this._zoomButton,"touchstart",function(a){c=!0},this.allDOMEventHandlers);z(this._zoomButton, "click",function(){a.zoomEnabled?(a.zoomEnabled=!1,a.panEnabled=!0,za(a,a._zoomButton,"zoom")):(a.zoomEnabled=!0,a.panEnabled=!1,za(a,a._zoomButton,"pan"));a.render()},this.allDOMEventHandlers);z(this._zoomButton,"mousemove",function(){c?c=!1:(T(a._zoomButton,{backgroundColor:a.toolbar.itemBackgroundColorOnHover,color:a.toolbar.fontColorOnHover,transition:"0.4s",WebkitTransition:"0.4s"}),0>=navigator.userAgent.search("MSIE")&&T(a._zoomButton.childNodes[0],{WebkitFilter:"invert(100%)",filter:"invert(100%)"}))}, this.allDOMEventHandlers);z(this._zoomButton,"mouseout",function(){c||(T(a._zoomButton,{backgroundColor:a.toolbar.itemBackgroundColor,color:a.toolbar.fontColor,transition:"0.4s",WebkitTransition:"0.4s"}),0>=navigator.userAgent.search("MSIE")&&T(a._zoomButton.childNodes[0],{WebkitFilter:"invert(0%)",filter:"invert(0%)"}))},this.allDOMEventHandlers)}this._resetButton?(T(this._resetButton,{borderRight:this.toolbar.buttonBorderThickness+"px solid "+this.toolbar.buttonBorderColor,backgroundColor:a.toolbar.itemBackgroundColor, color:a.toolbar.fontColor}),0>=navigator.userAgent.search("MSIE")&&this._resetButton.childNodes[0]&&T(this._resetButton.childNodes[0],{WebkitFilter:"invert(0%)",filter:"invert(0%)"}),this._resetButton.title=this._cultureInfo.resetText):(c=!1,Aa(this._resetButton=document.createElement("button")),za(this,this._resetButton,"reset"),this._resetButton.style.borderRight=(this.exportEnabled?this.toolbar.buttonBorderThickness:0)+"px solid "+this.toolbar.buttonBorderColor,this._toolBar.appendChild(this._resetButton), z(this._resetButton,"touchstart",function(a){c=!0},this.allDOMEventHandlers),z(this._resetButton,"click",function(){a.toolTip.hide();a.toolTip&&a.toolTip.enabled&&a.toolTip.dispatchEvent("hidden",{chart:a,toolTip:a.toolTip},a.toolTip);a.zoomEnabled||a.panEnabled?(a.zoomEnabled=!0,a.panEnabled=!1,za(a,a._zoomButton,"pan"),a._defaultCursor="default",a.overlaidCanvas.style.cursor=a._defaultCursor):(a.zoomEnabled=!1,a.panEnabled=!1);if(a.sessionVariables.axisX)for(var b=0;b=navigator.userAgent.search("MSIE")&&T(a._resetButton.childNodes[0],{WebkitFilter:"invert(0%)",filter:"invert(0%)"});Aa(a._zoomButton,a._resetButton);a.stockChart&&(a.stockChart._rangeEventParameter={stockChart:a.stockChart,source:"chart",index:a.stockChart.charts.indexOf(a),minimum:null,maximum:null});a._dispatchRangeEvent("rangeChanging","reset");a.stockChart&&(a.stockChart._rangeEventParameter.type="rangeChanging", a.stockChart.dispatchEvent("rangeChanging",a.stockChart._rangeEventParameter,a.stockChart));a.render();a.syncCharts&&a.stockChart&&(a.stockChart.rangeUpdatedBy=!a.stockChart.navigator.slider||f(a.stockChart.navigator.slider.options.minimum)&&f(a.stockChart.navigator.slider.options.maximum)?!a.stockChart.rangeSelector.enabled||!a.stockChart.rangeSelector.inputFields.enabled||f(a.stockChart.rangeSelector.inputFields.options.startValue)&&f(a.stockChart.rangeSelector.inputFields.options.endValue)?null: "inputFields":"navigator",f(a.stockChart._selectedRangeButtonIndex)||(a.stockChart.rangeUpdatedBy="rangeButton"),a.syncCharts(null,null),"rangeButton"===a.stockChart.rangeUpdatedBy&&a.stockChart.rangeSelector.selectedRangeButtonIndex=navigator.userAgent.search("MSIE")&&T(a._resetButton.childNodes[0],{WebkitFilter:"invert(100%)",filter:"invert(100%)"}))},this.allDOMEventHandlers),z(this._resetButton,"mouseout",function(){c||(T(a._resetButton,{backgroundColor:a.toolbar.itemBackgroundColor,color:a.toolbar.fontColor,transition:"0.4s",WebkitTransition:"0.4s"}),0>=navigator.userAgent.search("MSIE")&&T(a._resetButton.childNodes[0],{WebkitFilter:"invert(0%)",filter:"invert(0%)"}))},this.allDOMEventHandlers), this.overlaidCanvas.style.cursor=a._defaultCursor);this.zoomEnabled||this.panEnabled||(this._zoomButton?(a._zoomButton.getAttribute("state")===a._cultureInfo.zoomText?(this.panEnabled=!0,this.zoomEnabled=!1):(this.zoomEnabled=!0,this.panEnabled=!1),Ua(a._zoomButton,a._resetButton)):(this.zoomEnabled=!0,this.panEnabled=!1))}else this.panEnabled=this.zoomEnabled=!1;ib(this);"none"!==this._toolBar.style.display&&this._zoomButton&&(this.panEnabled?za(a,a._zoomButton,"zoom"):za(a,a._zoomButton,"pan"), a._resetButton.getAttribute("state")!==a._cultureInfo.resetText&&za(a,a._resetButton,"reset"));this.options.toolTip&&this.toolTip.options!==this.options.toolTip&&(this.toolTip.options=this.options.toolTip);for(e in this.toolTip.options)this.toolTip.options.hasOwnProperty(e)&&this.toolTip.updateOption(e)};v.prototype._updateSize=function(){return lb.call(this,[this.canvas,this.overlaidCanvas,this._eventManager.ghostCanvas])};v.prototype._initialize=function(){this.isNavigator=f(this.parent)||f(this.parent._defaultsKey)|| "Navigator"!==this.parent._defaultsKey?!1:!0;this._animator?this._animator.cancelAllAnimations():this._animator=new ea(this);this.removeAllEventListeners();this.disableToolTip=!1;this._axes=[];this.funnelPyramidClickHandler=this.pieDoughnutClickHandler=null;this._updateOptions();this.animatedRender=w&&this.animationEnabled&&0===this.renderCount;this._updateSize();this.clearCanvas();this.ctx.beginPath();this.axisX=[];this.axisX2=[];this.axisY=[];this.axisY2=[];this._indexLabels=[];this._dataInRenderedOrder= [];this._events=[];this._eventManager&&this._eventManager.reset();this.plotInfo={axisPlacement:null,plotTypes:[]};this.layoutManager=new Ma(0,0,this.width,this.height,this.isNavigator?0:2);this.plotArea.layoutManager&&this.plotArea.layoutManager.reset();this.data=[];this.title=null;this.subtitles=[];var a=0,e=null;if(this.options.data){for(var c=0;cb.linkedDataSeriesIndex||b.linkedDataSeriesIndex>=this.options.data.length||"number"!==typeof b.linkedDataSeriesIndex||"error"===this.options.data[b.linkedDataSeriesIndex].type)&&(b.linkedDataSeriesIndex= null);null===b.name&&(b.name="DataSeries "+a);null===b.color?1a&&"undefined"!==typeof G.startTimePercent?a>=G.startTimePercent&&G.animationCallback(G.easingFunction(a-G.startTimePercent,0,1,1-G.startTimePercent), G):G.animationCallback(G.easingFunction(a,0,1,1),G);n.dispatchEvent("dataAnimationIterationEnd",{chart:n})},function(){c=[];for(var a=0;aa.dataSeriesIndexes.length))for(var e=a.axisY.dataInfo,c=a.axisX.dataInfo,b,g,l=!1,B=0;Bc.max&&(c.max=b);ge.max&&"number"===typeof g&&(e.max=g);if(0D&&(D=1/D);c.minDiff>D&&1!==D&&(c.minDiff=D)}else D=b-f.dataPoints[d-1].x,0>D&&(D*=-1),c.minDiff>D&&0!==D&&(c.minDiff=D);null!==g&&null!==f.dataPoints[d-1].y&&(a.axisY.logarithmic?(D=g/f.dataPoints[d-1].y,1>D&&(D=1/D),e.minDiff>D&&1!==D&&(e.minDiff=D)):(D=g-f.dataPoints[d-1].y,0>D&& (D*=-1),e.minDiff>D&&0!==D&&(e.minDiff=D)))}if(bh&&!n)n=!0;else if(b>h&&n)continue;f.dataPoints[d].label&&(a.axisX.labels[b]=f.dataPoints[d].label);bc.viewPortMax&&(c.viewPortMax=b);null===g?c.viewPortMin===b&&pe.viewPortMax&&"number"===typeof g&&(e.viewPortMax=g))}}f.axisX.valueType=f.xValueType=l?"dateTime":"number"}}; v.prototype._processStackedPlotUnit=function(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length)){for(var e=a.axisY.dataInfo,c=a.axisX.dataInfo,b,g,l=!1,B=[],d=[],G=Infinity,m=-Infinity,n={},p=0;pc.max&&(c.max=b);if(0y&&(y=1/y);c.minDiff>y&&1!==y&&(c.minDiff=y)}else y=b-q.dataPoints[h-1].x,0>y&&(y*=-1),c.minDiff>y&&0!==y&&(c.minDiff=y);null!==g&&null!==q.dataPoints[h-1].y&&(a.axisY.logarithmic?0y&&(y=1/y),e.minDiff>y&&1!==y&&(e.minDiff=y)):(y=g-q.dataPoints[h- 1].y,0>y&&(y*=-1),e.minDiff>y&&0!==y&&(e.minDiff=y)))}if(bw&&!x)x=!0;else if(b>w&&x)continue;q.dataPoints[h].label&&(a.axisX.labels[b]=q.dataPoints[h].label);bc.viewPortMax&&(c.viewPortMax=b);null===q.dataPoints[h].y?c.viewPortMin===b&&sae.max&&(e.max=a),hc.viewPortMax||(ae.viewPortMax&&(e.viewPortMax=a)));for(h in d)d.hasOwnProperty(h)&&!isNaN(h)&&(a=d[h],ae.max&&(e.max=Math.max(a,m)),hc.viewPortMax||(ae.viewPortMax&&(e.viewPortMax=Math.max(a,m))))}};v.prototype._processStacked100PlotUnit=function(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length)){for(var e= a.axisY.dataInfo,c=a.axisX.dataInfo,b,g,l=!1,B=!1,d=!1,G={},m=[],n=0;nc.max&&(c.max=b);if(0w&&(w=1/w);c.minDiff>w&&1!==w&&(c.minDiff=w)}else w=b-p.dataPoints[q-1].x,0>w&&(w*=-1),c.minDiff>w&&0!==w&&(c.minDiff=w);f(g)||null===p.dataPoints[q-1].y||(a.axisY.logarithmic?0w&&(w=1/w),e.minDiff>w&&1!==w&&(e.minDiff=w)):(w=g-p.dataPoints[q-1].y,0>w&&(w*=-1),e.minDiff>w&&0!==w&&(e.minDiff=w)))}if(bu&&!D)D=!0;else if(b>u&&D)continue;p.dataPoints[q].label&&(a.axisX.labels[b]=p.dataPoints[q].label);bc.viewPortMax&&(c.viewPortMax=b);null===g?c.viewPortMin===b&&xg&&(d=!0),m[b]=m[b]?m[b]+Math.abs(g):Math.abs(g))}}p.axisX.valueType=p.xValueType= l?"dateTime":"number"}a.axisY.logarithmic?(e.max=f(e.viewPortMax)?99*Math.pow(a.axisY.logarithmBase,-0.05):Math.max(e.viewPortMax,99*Math.pow(a.axisY.logarithmBase,-0.05)),e.min=f(e.viewPortMin)?1:Math.min(e.viewPortMin,1)):B&&!d?(e.max=f(e.viewPortMax)?99:Math.max(e.viewPortMax,99),e.min=f(e.viewPortMin)?1:Math.min(e.viewPortMin,1)):B&&d?(e.max=f(e.viewPortMax)?99:Math.max(e.viewPortMax,99),e.min=f(e.viewPortMin)?-99:Math.min(e.viewPortMin,-99)):!B&&d&&(e.max=f(e.viewPortMax)?-1:Math.max(e.viewPortMax, -1),e.min=f(e.viewPortMin)?-99:Math.min(e.viewPortMin,-99));e.viewPortMin=e.min;e.viewPortMax=e.max;a.dataPointYSums=m}};v.prototype._processMultiYPlotUnit=function(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length))for(var e=a.axisY.dataInfo,c=a.axisX.dataInfo,b,g,l,B,f=!1,d=0;dc.max&&(c.max=b);le.max&&(e.max=B);0D&&(D=1/D), c.minDiff>D&&1!==D&&(c.minDiff=D)):(D=b-m.dataPoints[n-1].x,0>D&&(D*=-1),c.minDiff>D&&0!==D&&(c.minDiff=D)),g&&(null!==g[0]&&m.dataPoints[n-1].y&&null!==m.dataPoints[n-1].y[0])&&(a.axisY.logarithmic?(D=g[0]/m.dataPoints[n-1].y[0],1>D&&(D=1/D),e.minDiff>D&&1!==D&&(e.minDiff=D)):(D=g[0]-m.dataPoints[n-1].y[0],0>D&&(D*=-1),e.minDiff>D&&0!==D&&(e.minDiff=D))));if(!(bu&&!q)q=!0;else if(b>u&&q)continue;m.dataPoints[n].label&&(a.axisX.labels[b]=m.dataPoints[n].label); bc.viewPortMax&&(c.viewPortMax=b);if(c.viewPortMin===b&&g)for(r=0;re.viewPortMax&&(e.viewPortMax=B))}}m.axisX.valueType=m.xValueType=f?"dateTime":"number"}};v.prototype._processSpecificPlotUnit=function(a){if("waterfall"===a.type&&a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length))for(var e=a.axisY.dataInfo,c=a.axisX.dataInfo, b,g,l=!1,B=0;Bc.max&&(c.max=b),f.dataPointEOs[d].cumulativeSume.max&&(e.max=f.dataPointEOs[d].cumulativeSum),0p&&(p=1/p),c.minDiff>p&&1!==p&&(c.minDiff=p)):(p=b-f.dataPoints[d-1].x,0>p&&(p*=-1),c.minDiff>p&&0!==p&&(c.minDiff=p)),null!==g&&null!==f.dataPoints[d-1].y&&(a.axisY.logarithmic?(g=f.dataPointEOs[d].cumulativeSum/f.dataPointEOs[d-1].cumulativeSum,1>g&&(g=1/g),e.minDiff>g&&1!==g&&(e.minDiff=g)):(g=f.dataPointEOs[d].cumulativeSum-f.dataPointEOs[d-1].cumulativeSum,0>g&&(g*=-1),e.minDiff>g&&0!==g&&(e.minDiff=g)))),!(bh&&!n)n=!0;else if(b> h&&n)continue;f.dataPoints[d].label&&(a.axisX.labels[b]=f.dataPoints[d].label);bc.viewPortMax&&(c.viewPortMax=b);0e.viewPortMax&&(e.viewPortMax=f.dataPointEOs[d-1].cumulativeSum));f.dataPointEOs[d].cumulativeSume.viewPortMax&&(e.viewPortMax= f.dataPointEOs[d].cumulativeSum)}f.axisX.valueType=f.xValueType=l?"dateTime":"number"}};v.prototype.calculateAutoBreaks=function(){function a(a,b,c,g){if(g)return c=Math.pow(Math.min(c*a/b,b/a),0.2),1>=c&&(c=Math.pow(1>a?1/a:Math.min(b/a,a),0.25)),{startValue:a*c,endValue:b/c};c=0.2*Math.min(c-b+a,b-a);0>=c&&(c=0.25*Math.min(b-a,Math.abs(a)));return{startValue:a+c,endValue:b-c}}function e(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length)){var b=a.axisX.scaleBreaks&&a.axisX.scaleBreaks.autoCalculate&& 1<=a.axisX.scaleBreaks.maxNumberOfAutoBreaks,c=a.axisY.scaleBreaks&&a.axisY.scaleBreaks.autoCalculate&&1<=a.axisY.scaleBreaks.maxNumberOfAutoBreaks;if(b||c)for(var e=a.axisY.dataInfo,h=a.axisX.dataInfo,l,B=h.min,m=h.max,d=e.min,n=e.max,h=h._dataRanges,e=e._dataRanges,p,q=0,G=0;Gx.dataPoints.length))for(q=0;qh[p].max&&(h[p].max=l)),c){var na=(n+1-d)*Math.max(parseFloat(a.axisY.scaleBreaks.collapsibleThreshold)||10,10)/100;if((l="waterfall"===a.type?x.dataPointEOs[q].cumulativeSum:x.dataPoints[q].y)&&l.length)for(var w=0;we[p].max&&(e[p].max=l[w]);else f(l)||(p=Math.floor((l-d)/na),le[p].max&&(e[p].max=l))}}}}function c(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length)&&a.axisX.scaleBreaks&&a.axisX.scaleBreaks.autoCalculate&&1<=a.axisX.scaleBreaks.maxNumberOfAutoBreaks)for(var b=a.axisX.dataInfo,c=b.min,e=b.max,h=b._dataRanges,l,B=0,m=0;mf.dataPoints.length))for(B=0;Bh[l].max&&(h[l].max=b)}}for(var b,g=this,l=!1,B=0;Bn[h].max&&(n[h].max=p)}delete this._axes[B].dataInfo.dataPointYPositiveSums}if(this._axes[B].dataInfo.dataPointYNegativeSums){q=this._axes[B].dataInfo.dataPointYNegativeSums;n=m;for(d in q)q.hasOwnProperty(d)&&!isNaN(d)&&(p=-1*q[d],f(p)||(h=Math.floor((p-G)/b),pn[h].max&&(n[h].max=p)));delete this._axes[B].dataInfo.dataPointYNegativeSums}for(d=0;db&&l.push({diff:p,start:n,end:G});break}else d++;if(this._axes[B].scaleBreaks.customBreaks)for(d=0;d=g.x1&&(a<=g.x2&&e>=g.y1&&e<=g.y2)&&(b=g.id)}return b};v.prototype.getAutoFontSize=nb;v.prototype.resetOverlayedCanvas=function(){this.overlaidCanvasCtx.clearRect(0,0,this.width,this.height)};v.prototype.clearCanvas=mb;v.prototype.attachEvent=function(a){this._events.push(a)};v.prototype._touchEventHandler=function(a){if(a.changedTouches&&this.interactivityEnabled){var e=[],c= a.changedTouches,b=c?c[0]:a,g=null;switch(a.type){case "touchstart":case "MSPointerDown":e=["mousemove","mousedown"];this._lastTouchData=Ca(b);this._lastTouchData.time=new Date;break;case "touchmove":case "MSPointerMove":e=["mousemove"];break;case "touchend":case "MSPointerUp":var l=this._lastTouchData&&this._lastTouchData.time?new Date-this._lastTouchData.time:0,e="touchstart"===this._lastTouchEventType||"MSPointerDown"===this._lastTouchEventType||300>l?["mouseup","click"]:["mouseup"];break;default:return}if(!(c&& 1l)this._lastTouchData.scroll=!0}catch(d){}this._lastTouchEventType=a.type;if(this._lastTouchData.scroll&&this.zoomEnabled)this.isDrag&&this.resetOverlayedCanvas(),this.isDrag=!1;else for(c=0;c=B.x1&&c.x<=B.x2&&c.y>=B.y1&&c.y<=B.y2){g[b].call(g.context,c.x,c.y);"mousedown"===b&&!0===g.capture?(v.capturedEventParam=g,this.overlaidCanvas.setCapture?this.overlaidCanvas.setCapture():document.documentElement.addEventListener("mouseup",this._mouseEventHandler,!1)):"mouseup"===b&&(g.chart.overlaidCanvas.releaseCapture?g.chart.overlaidCanvas.releaseCapture():document.documentElement.removeEventListener("mouseup",this._mouseEventHandler,!1));break}else g=null;a.target.style.cursor= g&&g.cursor?g.cursor:this._defaultCursor}l=this.plotArea;if(c.xl.x2||c.yl.y2){this.toolTip&&this.toolTip.enabled?(this.toolTip.hide(),this.toolTip.dispatchEvent("hidden",{chart:this,toolTip:this.toolTip},this.toolTip)):this.resetOverlayedCanvas();for(l=0;lc.maximum&&(l=c.viewportMaximum/c.maximum,c.sessionVariables.newViewportMinimum=c.viewportMinimum/l,c.sessionVariables.newViewportMaximum=c.viewportMaximum/l,B=!0):c.viewportMinimumc.maximum&&(l=c.viewportMaximum-c.maximum,c.sessionVariables.newViewportMinimum=c.viewportMinimum-l,c.sessionVariables.newViewportMaximum= c.viewportMaximum-l,B=!0);else if((!g||2Math.abs(c)&&(this.panEnabled||this.zoomEnabled)){this.toolTip.hide();this.toolTip&&this.toolTip.enabled&&this.toolTip.dispatchEvent("hidden",{chart:this,toolTip:this.toolTip},this.toolTip);for(var f=0;fh)var x=h,h=q,q=x;if(p.scaleBreaks)for(x=0;!l&&x=h;if(isFinite(p.dataInfo.minDiff))if(x=p.getApparentDifference(q,h,null,!0),!(l||!(this.panEnabled&&p.scaleBreaks&&p.scaleBreaks._appliedBreaks.length)&&(p.logarithmic&&xp.maximum))G.push(p),n.push({val1:q,val2:h}), d=!0;else if(!g){d=!1;break}}return{isValid:d,axesWithValidRange:G,axesRanges:n}};v.prototype.preparePlotArea=function(){var a=this.plotArea;!w&&(0c.lineCoordinates.x2?e.x2:c.lineCoordinates.x2;a.y2=e.y1>c.lineCoordinates.y2?e.y1:c.lineCoordinates.y2;a.width=a.x2-a.x1;a.height=a.y2-a.y1}this.axisY2&&0c.lineCoordinates.x2?e.x2:c.lineCoordinates.x2,a.y2=e.y2>c.lineCoordinates.y2?e.y2:c.lineCoordinates.y2,a.width=a.x2-a.x1,a.height=a.y2-a.y1)}else e=this.layoutManager.getFreeSpace(), a.x1=e.x1,a.x2=e.x2,a.y1=e.y1,a.y2=e.y2,a.width=e.width,a.height=e.height;w||(a.canvas.width=a.width,a.canvas.height=a.height,a.canvas.style.left=a.x1+"px",a.canvas.style.top=a.y1+"px",(0c.x2||n.point.yc.y2+1)continue}else if("rangearea"===p||"rangesplinearea"===p){if(n.dataPoint.xz.viewportMaximum||Math.max.apply(null,n.dataPoint.y)N.viewportMaximum)continue}else if(0<= p.indexOf("line")||0<=p.indexOf("area")||0<=p.indexOf("bubble")||0<=p.indexOf("scatter")){if(n.dataPoint.xz.viewportMaximum||n.dataPoint.yN.viewportMaximum)continue}else if(0<=p.indexOf("column")||"waterfall"===p||"error"===p&&!n.axisSwapped){if(n.dataPoint.xz.viewportMaximum||n.bounds.y1>c.y2||n.bounds.y2z.viewportMaximum||n.bounds.x1>c.x2||n.bounds.x2z.viewportMaximum||Math.max.apply(null,n.dataPoint.y)N.viewportMaximum)continue}else if(n.dataPoint.xz.viewportMaximum)continue;B=d=2;"horizontal"===t?(G=r.width,m=r.height):(m=r.width,G=r.height);if("normal"===this.plotInfo.axisPlacement){if(0<= p.indexOf("line")||0<=p.indexOf("area"))y="auto",d=4;else if(0<=p.indexOf("stacked"))"auto"===y&&(y="inside");else if("bubble"===p||"scatter"===p)y="inside";q=n.point.x-G/2+("horizontal"===t?0:r._lineHeight/2);if("inside"!==y)g=c.y1,l=c.y2,0n.point.y,!O||(0<=p.indexOf("line")||0<=p.indexOf("area"))||(h-=b))):(h=n.point.y+r._lineHeight/ 2+d+b,h>l-m+r._lineHeight/2-d&&(h="auto"===y?Math.min(n.point.y,l)+r._lineHeight/2-m-d-b:l+r._lineHeight/2-m-d-b,O=h-("horizontal"===t?r._lineHeight/2:m)n.bounds.y2-n.bounds.y1&&(h-=m/2+d),0>h-r._lineHeight/2&&(h+=Math.abs(h-r._lineHeight/2)<=(n.bounds.y2-n.bounds.y1)/2+d?Math.abs(h-r._lineHeight/2):(n.bounds.y2-n.bounds.y1)/2+d)}else h=Math.min(n.point.y,b),h>l-m-d&&("bubble"===p||"scatter"===p)&&(h=Math.min(n.point.y+d,c.y2-m-d));h=Math.min(h,l)}}else 0<=p.indexOf("line")||0<=p.indexOf("area")||0<=p.indexOf("scatter")?(y="auto",B=4):0<=p.indexOf("stacked")?"auto"===y&& (y="inside"):"bubble"===p&&(y="inside"),h=n.point.y+r._lineHeight/2-m/2,"inside"!==y?(l=c.x1,g=c.x2,0>A?(q=n.point.x-G+("horizontal"===t?0:r._lineHeight/2)-B-b,("horizontal"===t?q:q-r._lineHeight/2)n.point.x)&&(q-=b))):(q=n.point.x+("horizontal"===t?0:r._lineHeight/2)+B+b,("horizontal"===t?q:q-r._lineHeight/2)>g-G-B-b&&(q="auto"===y? Math.min(n.point.x,g)-("horizontal"===t?G:G-r._lineHeight/2)-B-b:g-G-B+("horizontal"===t?0:r._lineHeight/2),(O=q-("horizontal"===t?0:r._lineHeight/2)A?Math.max(n.bounds.x1,c.x1):Math.min(n.bounds.x2,c.x2)-G-B+("horizontal"===t?0:r._lineHeight/2):(Math.max(n.bounds.x1,c.x1)+Math.min(n.bounds.x2,c.x2))/2-G/2+("horizontal"===t?0:r._lineHeight/2),q=0>A?b:Math.min(n.point.x,b),q=Math.max(q, l+("horizontal"===t?0:r._lineHeight/2+d)));"vertical"===t&&(h+=m-r._lineHeight/2,0<="ohlc candlestick boxandwhisker column rangecolumn stackedcolumn stackedcolumn100 error".split(" ").indexOf(p)&&(O=0n.point.y:h-("horizontal"===t?r._lineHeight/2:m)p.indexOf("bar")&&("error"!==p||!n.axisSwapped)&&n.point.x>c.x1&&n.point.xc.y1&&n.point.yA&&h-m>n.point.y?h-m:n.point.y:0A&&h-r._lineHeight/2>n.point.y?h-r._lineHeight/2:n.point.y):e.lineTo(q+G/2-("horizontal"===t?0:r._lineHeight/2),h+("vertical"===t?h-m=a.dataSeriesIndexes.length)){var b=this._eventManager.ghostCtx;c.save();var g=this.plotArea;c.beginPath();c.rect(g.x1,g.y1, g.width,g.height);c.clip();for(var l=[],f,d=0;da.axisX.dataInfo.viewPortMax&&(!m.connectNullData||!s)))if("number"!==typeof n[u].y)0n[u].y===a.axisY.reversed?1:-1,color:D})}c.stroke();w&&b.stroke()}}r.drawMarkers(l);w&&(e.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&& c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(g.x1,g.y1,g.width,g.height),b.beginPath());c.restore();c.beginPath();return{source:e,dest:this.plotArea.ctx,animationCallback:x.xClipAnimation,easingFunction:x.easing.linear,animationBase:0}}};v.prototype.renderStepLine=function(a){var e=a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx:e;if(!(0>=a.dataSeriesIndexes.length)){var b= this._eventManager.ghostCtx;c.save();var g=this.plotArea;c.beginPath();c.rect(g.x1,g.y1,g.width,g.height);c.clip();for(var l=[],f,d=0;da.axisX.dataInfo.viewPortMax&&(!m.connectNullData||!s)))if("number"!==typeof n[u].y)0n[u].y===a.axisY.reversed?1:-1,color:D})}c.stroke();w&&b.stroke()}}r.drawMarkers(l);w&&(e.drawImage(this._preRenderCanvas, 0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(g.x1,g.y1,g.width,g.height),b.beginPath());c.restore();c.beginPath();return{source:e,dest:this.plotArea.ctx,animationCallback:x.xClipAnimation,easingFunction:x.easing.linear, animationBase:0}}};v.prototype.renderSpline=function(a){function e(a){a=s(a,2);if(0=a.dataSeriesIndexes.length)){var g=this._eventManager.ghostCtx;b.save();var l=this.plotArea;b.beginPath();b.rect(l.x1,l.y1,l.width,l.height); b.clip();for(var f=[],d=0;da.axisX.dataInfo.viewPortMax&&(!m.connectNullData||!K)))if("number"!==typeof n[k].y)0n[k].y===a.axisY.reversed?1:-1,color:D});K=!1}e(y)}r.drawMarkers(f);w&&(c.drawImage(this._preRenderCanvas,0,0,this.width, this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(l.x1,l.y1,l.width,l.height),g.beginPath());b.restore();b.beginPath();return{source:c,dest:this.plotArea.ctx,animationCallback:x.xClipAnimation,easingFunction:x.easing.linear, animationBase:0}}};v.prototype.renderColumn=function(a){var e=a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx:e;if(!(0>=a.dataSeriesIndexes.length)){var b=null,g=this.plotArea,l=0,f,d,G,m=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),l=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,n=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:Math.min(0.15*this.width, 0.9*(this.plotArea.width/a.plotType.totalDataSeries))<<0,p=a.axisX.dataInfo.minDiff;isFinite(p)||(p=0.3*Math.abs(a.axisX.range));p=this.dataPointWidth=this.options.dataPointWidth?this.dataPointWidth:0.9*(g.width*(a.axisX.logarithmic?Math.log(p)/Math.log(a.axisX.range):Math.abs(p)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&l>n&&(l=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,n));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&nn&&(p=n);c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(g.x1,g.y1,g.width,g.height);c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(g.x1,g.y1,g.width,g.height),this._eventManager.ghostCtx.clip());for(n=0;na.axisX.dataInfo.viewPortMax)&&"number"===typeof D[l].y){f=a.axisX.convertValueToPixel(G);d=a.axisY.convertValueToPixel(D[l].y);f=a.axisX.reversed?f+a.plotType.totalDataSeries*p/2-(a.previousDataSeriesCount+n)*p<<0:f-a.plotType.totalDataSeries*p/2+(a.previousDataSeriesCount+n)*p<<0;var k=a.axisX.reversed?f-p<<0:f+p<<0,u;0<=D[l].y?u=m:(u=d,d=m);d>u&&(b=d,d=u,u=b);b=D[l].color?D[l].color:h._colorSet[l%h._colorSet.length];W(c,a.axisX.reversed?k:f,d,a.axisX.reversed? f:k,u,b,0,null,r&&(a.axisY.reversed?0>D[l].y:0<=D[l].y),(a.axisY.reversed?0<=D[l].y:0>D[l].y)&&r,!1,!1,h.fillOpacity);b=h.dataPointIds[l];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:q,dataPointIndex:l,x1:f,y1:d,x2:k,y2:u};b=L(b);w&&W(this._eventManager.ghostCtx,a.axisX.reversed?k:f,d,a.axisX.reversed?f:k,u,b,0,null,!1,!1,!1,!1);(D[l].indexLabel||h.indexLabel||D[l].indexLabelFormatter||h.indexLabelFormatter)&&this._indexLabels.push({chartType:"column",dataPoint:D[l], dataSeries:h,point:{x:f+(k-f)/2,y:0>D[l].y===a.axisY.reversed?d:u},direction:0>D[l].y===a.axisY.reversed?1:-1,bounds:{x1:f,y1:Math.min(d,u),x2:k,y2:Math.max(d,u)},color:b})}}w&&(e.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas, 0,0,this.width,this.height),c.clearRect(g.x1,g.y1,g.width,g.height),this._eventManager.ghostCtx.restore());c.restore();return{source:e,dest:this.plotArea.ctx,animationCallback:x.yScaleAnimation,easingFunction:x.easing.easeOutQuart,animationBase:ma.axisY.bounds.y2?a.axisY.bounds.y2:m}}};v.prototype.renderStackedColumn=function(a){var e=a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx:e;if(!(0>=a.dataSeriesIndexes.length)){var b=null,g=this.plotArea, l=[],f=[],d=[],G=[],m=0,n,p,q=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),m=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,h=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.15*this.width<<0,D=a.axisX.dataInfo.minDiff;isFinite(D)||(D=0.3*Math.abs(a.axisX.range));D=this.options.dataPointWidth?this.dataPointWidth:0.9*(g.width*(a.axisX.logarithmic?Math.log(D)/ Math.log(a.axisX.range):Math.abs(D)/Math.abs(a.axisX.range))/a.plotType.plotUnits.length)<<0;this.dataPointMaxWidth&&m>h&&(m=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,h));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&hh&&(D=h);c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(g.x1,g.y1,g.width,g.height);c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(g.x1, g.y1,g.width,g.height),this._eventManager.ghostCtx.clip());for(h=0;ha.axisX.dataInfo.viewPortMax)&&"number"===typeof u[m].y){n=a.axisX.convertValueToPixel(b);n=n-a.plotType.plotUnits.length*D/2+a.index*D<<0;var y=n+D<<0,s;if(a.axisY.logarithmic|| a.axisY.scaleBreaks&&0=u[m].y)G[b]=u[m].y+(G[b]?G[b]:0),s=a.axisY.convertValueToPixel(G[b]),p="undefined"!==typeof f[b]?f[b]:q,f[b]=s;else if(p=a.axisY.convertValueToPixel(u[m].y),0<=u[m].y){var v="undefined"!==typeof l[b]?l[b]:0;p-=v;s=q-v;l[b]=v+(s-p)}else v= f[b]?f[b]:0,s=p+v,p=q+v,f[b]=v+(s-p);b=u[m].color?u[m].color:k._colorSet[m%k._colorSet.length];W(c,n,a.axisY.reversed?s:p,y,a.axisY.reversed?p:s,b,0,null,t&&(a.axisY.reversed?0>u[m].y:0<=u[m].y),(a.axisY.reversed?0<=u[m].y:0>u[m].y)&&t,!1,!1,k.fillOpacity);b=k.dataPointIds[m];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:r,dataPointIndex:m,x1:n,y1:p,x2:y,y2:s};b=L(b);w&&W(this._eventManager.ghostCtx,n,p,y,s,b,0,null,!1,!1,!1,!1);(u[m].indexLabel||k.indexLabel||u[m].indexLabelFormatter|| k.indexLabelFormatter)&&this._indexLabels.push({chartType:"stackedColumn",dataPoint:u[m],dataSeries:k,point:{x:n+(y-n)/2,y:0<=u[m].y?p:s},direction:0>u[m].y===a.axisY.reversed?1:-1,bounds:{x1:n,y1:Math.min(p,s),x2:y,y2:Math.max(p,s)},color:b})}}}w&&(e.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height), this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(g.x1,g.y1,g.width,g.height),this._eventManager.ghostCtx.restore());c.restore();return{source:e,dest:this.plotArea.ctx,animationCallback:x.yScaleAnimation,easingFunction:x.easing.easeOutQuart,animationBase:qa.axisY.bounds.y2?a.axisY.bounds.y2:q}}};v.prototype.renderStackedColumn100=function(a){var e=a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx: e;if(!(0>=a.dataSeriesIndexes.length)){var b=null,g=this.plotArea,l=[],f=[],d=[],G=[],m=0,n,p,q=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),m=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,h=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.15*this.width<<0,D=a.axisX.dataInfo.minDiff;isFinite(D)||(D=0.3*Math.abs(a.axisX.range));D=this.options.dataPointWidth? this.dataPointWidth:0.9*(g.width*(a.axisX.logarithmic?Math.log(D)/Math.log(a.axisX.range):Math.abs(D)/Math.abs(a.axisX.range))/a.plotType.plotUnits.length)<<0;this.dataPointMaxWidth&&m>h&&(m=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,h));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&hh&&(D=h);c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(g.x1,g.y1,g.width,g.height); c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(g.x1,g.y1,g.width,g.height),this._eventManager.ghostCtx.clip());for(h=0;ha.axisX.dataInfo.viewPortMax)&&"number"===typeof u[m].y){n=a.axisX.convertValueToPixel(b);p=0!==a.dataPointYSums[b]? 100*(u[m].y/a.dataPointYSums[b]):0;n=n-a.plotType.plotUnits.length*D/2+a.index*D<<0;var y=n+D<<0,s;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=d[b])continue;p=a.axisY.convertValueToPixel(d[b]);s=l[b]?l[b]:q;l[b]=p}else if(a.axisY.scaleBreaks&&0=u[m].y)G[b]=p+("undefined"!==typeof G[b]?G[b]:0),s=a.axisY.convertValueToPixel(G[b]),p=f[b]?f[b]:q,f[b]=s; else if(p=a.axisY.convertValueToPixel(p),0<=u[m].y){var v="undefined"!==typeof l[b]?l[b]:0;p-=v;s=q-v;a.dataSeriesIndexes.length-1===h&&1>=Math.abs(g.y1-p)&&(p=g.y1);l[b]=v+(s-p)}else v="undefined"!==typeof f[b]?f[b]:0,s=p+v,p=q+v,a.dataSeriesIndexes.length-1===h&&1>=Math.abs(g.y2-s)&&(s=g.y2),f[b]=v+(s-p);b=u[m].color?u[m].color:k._colorSet[m%k._colorSet.length];W(c,n,a.axisY.reversed?s:p,y,a.axisY.reversed?p:s,b,0,null,t&&(a.axisY.reversed?0>u[m].y:0<=u[m].y),(a.axisY.reversed?0<=u[m].y:0>u[m].y)&& t,!1,!1,k.fillOpacity);b=k.dataPointIds[m];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:r,dataPointIndex:m,x1:n,y1:p,x2:y,y2:s};b=L(b);w&&W(this._eventManager.ghostCtx,n,p,y,s,b,0,null,!1,!1,!1,!1);(u[m].indexLabel||k.indexLabel||u[m].indexLabelFormatter||k.indexLabelFormatter)&&this._indexLabels.push({chartType:"stackedColumn100",dataPoint:u[m],dataSeries:k,point:{x:n+(y-n)/2,y:0<=u[m].y?p:s},direction:0>u[m].y===a.axisY.reversed?1:-1,bounds:{x1:n,y1:Math.min(p,s), x2:y,y2:Math.max(p,s)},color:b})}}w&&(e.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(g.x1,g.y1,g.width,g.height),this._eventManager.ghostCtx.restore());c.restore();return{source:e, dest:this.plotArea.ctx,animationCallback:x.yScaleAnimation,easingFunction:x.easing.easeOutQuart,animationBase:qa.axisY.bounds.y2?a.axisY.bounds.y2:q}}};v.prototype.renderBar=function(a){var e=a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx:e;if(!(0>=a.dataSeriesIndexes.length)){var b=null,g=this.plotArea,l=0,f,d,G,m=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),l=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth? this.dataPointWidth:1,n=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:Math.min(0.15*this.height,0.9*(this.plotArea.height/a.plotType.totalDataSeries))<<0,p=a.axisX.dataInfo.minDiff;isFinite(p)||(p=0.3*Math.abs(a.axisX.range));p=this.options.dataPointWidth?this.dataPointWidth:0.9*(g.height*(a.axisX.logarithmic?Math.log(p)/Math.log(a.axisX.range):Math.abs(p)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&l>n&&(l= Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,n));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&nn&&(p=n);c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(g.x1,g.y1,g.width,g.height);c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(g.x1,g.y1,g.width,g.height),this._eventManager.ghostCtx.clip());for(n=0;na.axisX.dataInfo.viewPortMax)&&"number"===typeof D[l].y){d=a.axisX.convertValueToPixel(G);f=a.axisY.convertValueToPixel(D[l].y);d=a.axisX.reversed?d+a.plotType.totalDataSeries*p/2-(a.previousDataSeriesCount+n)*p<<0:d-a.plotType.totalDataSeries*p/2+(a.previousDataSeriesCount+ n)*p<<0;var k=a.axisX.reversed?d-p<<0:d+p<<0,u;0<=D[l].y?u=m:(u=f,f=m);b=D[l].color?D[l].color:h._colorSet[l%h._colorSet.length];W(c,a.axisY.reversed?f:u,a.axisX.reversed?k:d,a.axisY.reversed?u:f,a.axisX.reversed?d:k,b,0,null,r,!1,!1,!1,h.fillOpacity);b=h.dataPointIds[l];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:q,dataPointIndex:l,x1:u,y1:d,x2:f,y2:k};b=L(b);w&&W(this._eventManager.ghostCtx,u,a.axisX.reversed?k:d,f,a.axisX.reversed?d:k,b,0,null,!1,!1,!1,!1);(D[l].indexLabel|| h.indexLabel||D[l].indexLabelFormatter||h.indexLabelFormatter)&&this._indexLabels.push({chartType:"bar",dataPoint:D[l],dataSeries:h,point:{x:0<=D[l].y?f:u,y:d+(k-d)/2},direction:0>D[l].y===a.axisY.reversed?1:-1,bounds:{x1:Math.min(u,f),y1:d,x2:Math.max(u,f),y2:k},color:b})}}}w&&(e.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas, 0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(g.x1,g.y1,g.width,g.height),this._eventManager.ghostCtx.restore());c.restore();return{source:e,dest:this.plotArea.ctx,animationCallback:x.xScaleAnimation,easingFunction:x.easing.easeOutQuart,animationBase:ma.axisY.bounds.x2?a.axisY.bounds.x2:m}}};v.prototype.renderStackedBar=function(a){var e=a.targetCanvasCtx||this.plotArea.ctx, c=w?this._preRenderCtx:e;if(!(0>=a.dataSeriesIndexes.length)){var b=null,g=this.plotArea,l=[],f=[],d=[],G=[],m=0,n,p,q=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),m=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,h=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.15*this.height<<0,D=a.axisX.dataInfo.minDiff;isFinite(D)||(D=0.3*Math.abs(a.axisX.range));D=this.options.dataPointWidth? this.dataPointWidth:0.9*(g.height*(a.axisX.logarithmic?Math.log(D)/Math.log(a.axisX.range):Math.abs(D)/Math.abs(a.axisX.range))/a.plotType.plotUnits.length)<<0;this.dataPointMaxWidth&&m>h&&(m=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,h));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&hh&&(D=h);c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(g.x1,g.y1,g.width,g.height); c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(g.x1,g.y1,g.width,g.height),this._eventManager.ghostCtx.clip());for(h=0;ha.axisX.dataInfo.viewPortMax)&&"number"===typeof u[m].y){p=a.axisX.convertValueToPixel(b); p=p-a.plotType.plotUnits.length*D/2+a.index*D<<0;var y=p+D<<0,s;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=u[m].y)G[b]=u[m].y+(G[b]?G[b]:0),n=f[b]?f[b]:q,f[b]=s=a.axisY.convertValueToPixel(G[b]);else if(n=a.axisY.convertValueToPixel(u[m].y),0<=u[m].y){var v=l[b]?l[b]:0;s=q+v;n+= v;l[b]=v+(n-s)}else v=f[b]?f[b]:0,s=n-v,n=q-v,f[b]=v+(n-s);b=u[m].color?u[m].color:k._colorSet[m%k._colorSet.length];W(c,a.axisY.reversed?n:s,p,a.axisY.reversed?s:n,y,b,0,null,t,!1,!1,!1,k.fillOpacity);b=k.dataPointIds[m];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:r,dataPointIndex:m,x1:s,y1:p,x2:n,y2:y};b=L(b);w&&W(this._eventManager.ghostCtx,s,p,n,y,b,0,null,!1,!1,!1,!1);(u[m].indexLabel||k.indexLabel||u[m].indexLabelFormatter||k.indexLabelFormatter)&&this._indexLabels.push({chartType:"stackedBar", dataPoint:u[m],dataSeries:k,point:{x:0<=u[m].y?n:s,y:p+(y-p)/2},direction:0>u[m].y===a.axisY.reversed?1:-1,bounds:{x1:Math.min(s,n),y1:p,x2:Math.max(s,n),y2:y},color:b})}}}w&&(e.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas, 0,0,this.width,this.height),c.clearRect(g.x1,g.y1,g.width,g.height),this._eventManager.ghostCtx.restore());c.restore();return{source:e,dest:this.plotArea.ctx,animationCallback:x.xScaleAnimation,easingFunction:x.easing.easeOutQuart,animationBase:qa.axisY.bounds.x2?a.axisY.bounds.x2:q}}};v.prototype.renderStackedBar100=function(a){var e=a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx:e;if(!(0>=a.dataSeriesIndexes.length)){var b=null,g=this.plotArea, l=[],f=[],d=[],G=[],m=0,n,p,q=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),m=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,h=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.15*this.height<<0,D=a.axisX.dataInfo.minDiff;isFinite(D)||(D=0.3*Math.abs(a.axisX.range));D=this.options.dataPointWidth?this.dataPointWidth:0.9*(g.height*(a.axisX.logarithmic?Math.log(D)/ Math.log(a.axisX.range):Math.abs(D)/Math.abs(a.axisX.range))/a.plotType.plotUnits.length)<<0;this.dataPointMaxWidth&&m>h&&(m=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,h));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&hh&&(D=h);c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(g.x1,g.y1,g.width,g.height);c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(g.x1, g.y1,g.width,g.height),this._eventManager.ghostCtx.clip());for(h=0;ha.axisX.dataInfo.viewPortMax)&&"number"===typeof u[m].y){p=a.axisX.convertValueToPixel(b);var y;y=0!==a.dataPointYSums[b]?100*(u[m].y/a.dataPointYSums[b]):0;p=p-a.plotType.plotUnits.length* D/2+a.index*D<<0;var s=p+D<<0;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=d[b])continue;y=l[b]?l[b]:q;l[b]=n=a.axisY.convertValueToPixel(d[b])}else if(a.axisY.scaleBreaks&&0=u[m].y)G[b]=y+(G[b]?G[b]:0),n=f[b]?f[b]:q,f[b]=y=a.axisY.convertValueToPixel(G[b]);else if(n=a.axisY.convertValueToPixel(y),0<=u[m].y){var v=l[b]?l[b]:0;y=q+v;n+=v;a.dataSeriesIndexes.length-1===h&& 1>=Math.abs(g.x2-n)&&(n=g.x2);l[b]=v+(n-y)}else v=f[b]?f[b]:0,y=n-v,n=q-v,a.dataSeriesIndexes.length-1===h&&1>=Math.abs(g.x1-y)&&(y=g.x1),f[b]=v+(n-y);b=u[m].color?u[m].color:k._colorSet[m%k._colorSet.length];W(c,a.axisY.reversed?n:y,p,a.axisY.reversed?y:n,s,b,0,null,t,!1,!1,!1,k.fillOpacity);b=k.dataPointIds[m];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:r,dataPointIndex:m,x1:y,y1:p,x2:n,y2:s};b=L(b);w&&W(this._eventManager.ghostCtx,y,p,n,s,b,0,null,!1,!1,!1,!1); (u[m].indexLabel||k.indexLabel||u[m].indexLabelFormatter||k.indexLabelFormatter)&&this._indexLabels.push({chartType:"stackedBar100",dataPoint:u[m],dataSeries:k,point:{x:0<=u[m].y?n:y,y:p+(s-p)/2},direction:0>u[m].y===a.axisY.reversed?1:-1,bounds:{x1:Math.min(y,n),y1:p,x2:Math.max(y,n),y2:s},color:b})}}}w&&(e.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&& c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(g.x1,g.y1,g.width,g.height),this._eventManager.ghostCtx.restore());c.restore();return{source:e,dest:this.plotArea.ctx,animationCallback:x.xScaleAnimation,easingFunction:x.easing.easeOutQuart,animationBase:qa.axisY.bounds.x2?a.axisY.bounds.x2:q}}};v.prototype.renderArea=function(a){var e, c;function b(){ba&&(0=a.axisY.viewportMinimum&&0<=a.axisY.viewportMaximum?v=y:0>a.axisY.viewportMaximum?v=d.y1:0=a.dataSeriesIndexes.length)){var f= this._eventManager.ghostCtx,d=a.axisY.lineCoordinates,G=[],m=this.plotArea,n;l.save();w&&f.save();l.beginPath();l.rect(m.x1,m.y1,m.width,m.height);l.clip();w&&(f.beginPath(),f.rect(m.x1,m.y1,m.width,m.height),f.clip());for(var p=0;pa.axisX.dataInfo.viewPortMax&&(!h.connectNullData||!ga)))if("number"!== typeof D[k].y)h.connectNullData||(ga||e)||b(),ga=!0;else{t=a.axisX.convertValueToPixel(s);u=a.axisY.convertValueToPixel(D[k].y);e||ga?(!e&&h.connectNullData?(l.setLineDash&&(h.options.nullDataLineDashType||c===h.lineDashType&&h.lineDashType!==h.nullDataLineDashType)&&(e=t,c=u,t=n.x,u=n.y,b(),l.moveTo(n.x,n.y),t=e,u=c,ba=n,c=h.nullDataLineDashType,l.setLineDash(N)),l.lineTo(t,u),w&&f.lineTo(t,u)):(l.beginPath(),l.moveTo(t,u),w&&(f.beginPath(),f.moveTo(t,u)),ba={x:t,y:u}),ga=e=!1):(l.lineTo(t,u),w&& f.lineTo(t,u),0==k%250&&b());n={x:t,y:u};kD[k].y===a.axisY.reversed?1:-1,color:C})}b();r.drawMarkers(G)}}w&&(g.drawImage(this._preRenderCanvas,0,0,this.width,this.height),l.globalCompositeOperation="source-atop",a.axisX.maskCanvas&& l.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&l.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),l.clearRect(m.x1,m.y1,m.width,m.height),this._eventManager.ghostCtx.restore());l.restore();return{source:g,dest:this.plotArea.ctx,animationCallback:x.xClipAnimation,easingFunction:x.easing.linear,animationBase:0}}};v.prototype.renderSplineArea=function(a){function e(){var c= s(K,2);if(0=a.axisY.viewportMinimum&&0<=a.axisY.viewportMaximum?v=t:0>a.axisY.viewportMaximum?v=l.y1:0=a.dataSeriesIndexes.length)){var g=this._eventManager.ghostCtx,l=a.axisY.lineCoordinates,f=[],d=this.plotArea;b.save();w&&g.save();b.beginPath();b.rect(d.x1,d.y1,d.width,d.height);b.clip();w&&(g.beginPath(),g.rect(d.x1,d.y1,d.width, d.height),g.clip());for(var G=0;Ga.axisX.dataInfo.viewPortMax&&(!n.connectNullData||!k)))if("number"!==typeof p[q].y)0p[q].y===a.axisY.reversed?1:-1,color:y});k=!1}e();r.drawMarkers(f)}}w&& (c.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(d.x1,d.y1,d.width,d.height),this._eventManager.ghostCtx.restore());b.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:x.xClipAnimation, easingFunction:x.easing.linear,animationBase:0}}};v.prototype.renderStepArea=function(a){var e,c;function b(){ba&&(0=a.axisY.viewportMinimum&&0<=a.axisY.viewportMaximum?A=y:0>a.axisY.viewportMaximum?A=d.y1:0=a.dataSeriesIndexes.length)){var f=this._eventManager.ghostCtx,d=a.axisY.lineCoordinates,G=[],m=this.plotArea,n;l.save();w&&f.save();l.beginPath();l.rect(m.x1,m.y1,m.width,m.height);l.clip();w&&(f.beginPath(),f.rect(m.x1,m.y1,m.width,m.height),f.clip());for(var p=0;pa.axisX.dataInfo.viewPortMax&&(!h.connectNullData||!c))){var ca=u;"number"!==typeof k[t].y?(h.connectNullData||(c||e)||b(),c=!0):(s=a.axisX.convertValueToPixel(v),u=a.axisY.convertValueToPixel(k[t].y),e||c?(!e&&h.connectNullData?(l.setLineDash&&(h.options.nullDataLineDashType||N===h.lineDashType&&h.lineDashType!==h.nullDataLineDashType)&&(e=s,c=u,s=n.x,u=n.y,b(),l.moveTo(n.x,n.y),s=e,u=c,ba=n,N=h.nullDataLineDashType,l.setLineDash(O)),l.lineTo(s,ca),l.lineTo(s, u),w&&(f.lineTo(s,ca),f.lineTo(s,u))):(l.beginPath(),l.moveTo(s,u),w&&(f.beginPath(),f.moveTo(s,u)),ba={x:s,y:u}),c=e=!1):(l.lineTo(s,ca),w&&f.lineTo(s,ca),l.lineTo(s,u),w&&f.lineTo(s,u),0==t%250&&b()),n={x:s,y:u},tk[t].y===a.axisY.reversed? 1:-1,color:C}))}b();r.drawMarkers(G)}}w&&(g.drawImage(this._preRenderCanvas,0,0,this.width,this.height),l.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&l.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&l.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),l.clearRect(m.x1,m.y1,m.width,m.height),this._eventManager.ghostCtx.restore());l.restore();return{source:g, dest:this.plotArea.ctx,animationCallback:x.xClipAnimation,easingFunction:x.easing.linear,animationBase:0}}};v.prototype.renderStackedArea=function(a){function e(){if(!(1>m.length)){for(0=a.dataSeriesIndexes.length)){var g= null,l=null,f=[],d=this.plotArea,k=[],m=[],n=[],p=[],q=0,h,t,s=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),v=this._eventManager.ghostCtx,u,K,y;w&&v.beginPath();b.save();w&&v.save();b.beginPath();b.rect(d.x1,d.y1,d.width,d.height);b.clip();w&&(v.beginPath(),v.rect(d.x1,d.y1,d.width,d.height),v.clip());for(var g=[],A=0;Aa.axisX.dataInfo.viewPortMax&&(!C.connectNullData||!ca)))if("number"!==typeof ja.y)C.connectNullData||(ca||K)||e(),ca=!0;else{h=a.axisX.convertValueToPixel(l);var va=k[l]?k[l]:0;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=p[l]&&a.axisY.logarithmic)continue;t=a.axisY.convertValueToPixel(p[l])}else t=a.axisY.convertValueToPixel(ja.y),t-=va;m.push({x:h,y:s-va});k[l]=s-t;K||ca?(!K&&C.connectNullData?(b.setLineDash&&(C.options.nullDataLineDashType||y===C.lineDashType&&C.lineDashType!==C.nullDataLineDashType)&&(K=m.pop(),y=m[m.length-1],e(),b.moveTo(u.x,u.y),m.push(y),m.push(K),y=C.nullDataLineDashType,b.setLineDash(O)),b.lineTo(h,t),w&&v.lineTo(h,t)):(b.beginPath(),b.moveTo(h,t),w&&(v.beginPath(),v.moveTo(h, t))),ca=K=!1):(b.lineTo(h,t),w&&v.lineTo(h,t),0==q%250&&(e(),b.moveTo(h,t),w&&v.moveTo(h,t),m.push({x:h,y:s-va})));u={x:h,y:t};qja.y===a.axisY.reversed?1:-1,color:g})}}e();b.moveTo(h,t);w&&v.moveTo(h,t)}delete C.dataPointIndexes}r.drawMarkers(f);w&&(c.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas, 0,0,this.width,this.height),b.clearRect(d.x1,d.y1,d.width,d.height),v.restore());b.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:x.xClipAnimation,easingFunction:x.easing.linear,animationBase:0}}};v.prototype.renderStackedArea100=function(a){function e(){for(0=a.dataSeriesIndexes.length)){var g=null,l=null,f=this.plotArea,d=[],k=[],m=[],n=[],p=[],q=0,h,t,s,v,u,K=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),y=this._eventManager.ghostCtx;b.save();w&&y.save();b.beginPath();b.rect(f.x1,f.y1,f.width,f.height);b.clip();w&&(y.beginPath(),y.rect(f.x1,f.y1,f.width,f.height),y.clip());for(var g=[],A=0;Aa.axisX.dataInfo.viewPortMax&&(!C.connectNullData||!ca)))if("number"!==typeof ja.y)C.connectNullData||(ca||v)||e(),ca=!0;else{var va;va=0!==a.dataPointYSums[l]? 100*(ja.y/a.dataPointYSums[l]):0;h=a.axisX.convertValueToPixel(l);var fa=k[l]?k[l]:0;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=p[l]&&a.axisY.logarithmic)continue;t=a.axisY.convertValueToPixel(p[l])}else t=a.axisY.convertValueToPixel(va),t-=fa;m.push({x:h,y:K-fa});k[l]=K-t;v||ca?(!v&&C.connectNullData?(b.setLineDash&&(C.options.nullDataLineDashType||u===C.lineDashType&&C.lineDashType!==C.nullDataLineDashType)&&(v=m.pop(),u= m[m.length-1],e(),b.moveTo(s.x,s.y),m.push(u),m.push(v),u=C.nullDataLineDashType,b.setLineDash(O)),b.lineTo(h,t),w&&y.lineTo(h,t)):(b.beginPath(),b.moveTo(h,t),w&&(y.beginPath(),y.moveTo(h,t))),ca=v=!1):(b.lineTo(h,t),w&&y.lineTo(h,t),0==q%250&&(e(),b.moveTo(h,t),w&&y.moveTo(h,t),m.push({x:h,y:K-fa})));s={x:h,y:t};qja.y===a.axisY.reversed?1:-1,color:g})}}e();b.moveTo(h,t);w&&y.moveTo(h,t)}delete C.dataPointIndexes}r.drawMarkers(d);w&&(c.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&& b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(f.x1,f.y1,f.width,f.height),y.restore());b.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:x.xClipAnimation,easingFunction:x.easing.linear,animationBase:0}}};v.prototype.renderBubble=function(a){var e=a.targetCanvasCtx||this.plotArea.ctx, c=w?this._preRenderCtx:e;if(!(0>=a.dataSeriesIndexes.length)){var b=this.plotArea,g=0,l,f;c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(b.x1,b.y1,b.width,b.height);c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(b.x1,b.y1,b.width,b.height),this._eventManager.ghostCtx.clip());for(var d=-Infinity,k=Infinity,m=0;ma.axisX.dataInfo.viewPortMax||"undefined"===typeof q[g].z||(h=q[g].z,h>d&&(d=h),ha.axisX.dataInfo.viewPortMax)&& "number"===typeof q[g].y){l=a.axisX.convertValueToPixel(l);f=a.axisY.convertValueToPixel(q[g].y);var h=q[g].z,v=2*Math.max(Math.sqrt((d===k?s/2:t+(s-t)/(d-k)*(h-k))/Math.PI)<<0,1),h=p.getMarkerProperties(g,c);h.size=v;c.globalAlpha=p.fillOpacity;r.drawMarker(l,f,c,h.type,h.size,h.color,h.borderColor,h.borderThickness);c.globalAlpha=1;var u=p.dataPointIds[g];this._eventManager.objectMap[u]={id:u,objectType:"dataPoint",dataSeriesIndex:n,dataPointIndex:g,x1:l,y1:f,size:v};v=L(u);w&&r.drawMarker(l,f, this._eventManager.ghostCtx,h.type,h.size,v,v,h.borderThickness);(q[g].indexLabel||p.indexLabel||q[g].indexLabelFormatter||p.indexLabelFormatter)&&this._indexLabels.push({chartType:"bubble",dataPoint:q[g],dataSeries:p,point:{x:l,y:f},direction:1,bounds:{x1:l-h.size/2,y1:f-h.size/2,x2:l+h.size/2,y2:f+h.size/2},color:null})}w&&(e.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height), a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(b.x1,b.y1,b.width,b.height),this._eventManager.ghostCtx.restore());c.restore();return{source:e,dest:this.plotArea.ctx,animationCallback:x.fadeInAnimation,easingFunction:x.easing.easeInQuad,animationBase:0}}};v.prototype.renderScatter=function(a){var e=a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx: e;if(!(0>=a.dataSeriesIndexes.length)){var b=this.plotArea,g=0,l,f;c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(b.x1,b.y1,b.width,b.height);c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(b.x1,b.y1,b.width,b.height),this._eventManager.ghostCtx.clip());for(var d=0;da.axisX.dataInfo.viewPortMax)&&"number"===typeof n[g].y){l=a.axisX.convertValueToPixel(l);f=a.axisY.convertValueToPixel(n[g].y);var h=m.getMarkerProperties(g,l,f,c);c.globalAlpha=m.fillOpacity;r.drawMarker(h.x,h.y,h.ctx,h.type,h.size,h.color,h.borderColor,h.borderThickness);c.globalAlpha=1;Math.sqrt((p-l)*(p-l)+(q-f)*(q-f))Math.min(this.plotArea.width, this.plotArea.height)||(p=m.dataPointIds[g],this._eventManager.objectMap[p]={id:p,objectType:"dataPoint",dataSeriesIndex:k,dataPointIndex:g,x1:l,y1:f},p=L(p),w&&r.drawMarker(h.x,h.y,this._eventManager.ghostCtx,h.type,h.size,p,p,h.borderThickness),(n[g].indexLabel||m.indexLabel||n[g].indexLabelFormatter||m.indexLabelFormatter)&&this._indexLabels.push({chartType:"scatter",dataPoint:n[g],dataSeries:m,point:{x:l,y:f},direction:1,bounds:{x1:l-h.size/2,y1:f-h.size/2,x2:l+h.size/2,y2:f+h.size/2},color:null}), p=l,q=f)}}}w&&(e.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(b.x1,b.y1,b.width,b.height),this._eventManager.ghostCtx.restore());c.restore();return{source:e,dest:this.plotArea.ctx, animationCallback:x.fadeInAnimation,easingFunction:x.easing.easeInQuad,animationBase:0}}};v.prototype.renderCandlestick=function(a){var e=a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx:e,b=this._eventManager.ghostCtx;if(!(0>=a.dataSeriesIndexes.length)){var g=null,l=null,d=this.plotArea,k=0,t,m,n,p,q,h,g=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,l=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth? this.dataPointWidth:0.015*this.width,r=a.axisX.dataInfo.minDiff;isFinite(r)||(r=0.3*Math.abs(a.axisX.range));r=this.options.dataPointWidth?this.dataPointWidth:0.7*d.width*(a.axisX.logarithmic?Math.log(r)/Math.log(a.axisX.range):Math.abs(r)/Math.abs(a.axisX.range))<<0;this.dataPointMaxWidth&&g>l&&(g=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,l));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&ll&&(r=l);c.save();w&&b.save();c.beginPath();c.rect(d.x1,d.y1,d.width,d.height);c.clip();w&&(b.beginPath(),b.rect(d.x1,d.y1,d.width,d.height),b.clip());for(var s=0;sa.axisX.dataInfo.viewPortMax)&&!f(K[k].y)&&K[k].y.length&&"number"===typeof K[k].y[0]&& "number"===typeof K[k].y[1]&&"number"===typeof K[k].y[2]&&"number"===typeof K[k].y[3]){t=a.axisX.convertValueToPixel(h);m=a.axisY.convertValueToPixel(K[k].y[0]);n=a.axisY.convertValueToPixel(K[k].y[1]);p=a.axisY.convertValueToPixel(K[k].y[2]);q=a.axisY.convertValueToPixel(K[k].y[3]);var A=t-r/2<<0,z=A+r<<0,l=u.options.fallingColor?u.fallingColor:u._colorSet[0],g=K[k].color?K[k].color:u._colorSet[0],C=Math.round(Math.max(1,0.15*r)),E=0===C%2?0:0.5,F=u.dataPointIds[k];this._eventManager.objectMap[F]= {id:F,objectType:"dataPoint",dataSeriesIndex:v,dataPointIndex:k,x1:A,y1:m,x2:z,y2:n,x3:t,y3:p,x4:t,y4:q,borderThickness:C,color:g};c.strokeStyle=g;c.beginPath();c.lineWidth=C;b.lineWidth=Math.max(C,4);"candlestick"===u.type?(c.moveTo(t-E,n),c.lineTo(t-E,Math.min(m,q)),c.stroke(),c.moveTo(t-E,Math.max(m,q)),c.lineTo(t-E,p),c.stroke(),W(c,A,Math.min(m,q),z,Math.max(m,q),K[k].y[0]<=K[k].y[3]?u.risingColor:l,C,g,y,y,!1,!1,u.fillOpacity),w&&(g=L(F),b.strokeStyle=g,b.moveTo(t-E,n),b.lineTo(t-E,Math.min(m, q)),b.stroke(),b.moveTo(t-E,Math.max(m,q)),b.lineTo(t-E,p),b.stroke(),W(b,A,Math.min(m,q),z,Math.max(m,q),g,0,null,!1,!1,!1,!1))):"ohlc"===u.type&&(c.moveTo(t-E,n),c.lineTo(t-E,p),c.stroke(),c.beginPath(),c.moveTo(t,m),c.lineTo(A,m),c.stroke(),c.beginPath(),c.moveTo(t,q),c.lineTo(z,q),c.stroke(),w&&(g=L(F),b.strokeStyle=g,b.moveTo(t-E,n),b.lineTo(t-E,p),b.stroke(),b.beginPath(),b.moveTo(t,m),b.lineTo(A,m),b.stroke(),b.beginPath(),b.moveTo(t,q),b.lineTo(z,q),b.stroke()));(K[k].indexLabel||u.indexLabel|| K[k].indexLabelFormatter||u.indexLabelFormatter)&&this._indexLabels.push({chartType:u.type,dataPoint:K[k],dataSeries:u,point:{x:A+(z-A)/2,y:a.axisY.reversed?p:n},direction:1,bounds:{x1:A,y1:Math.min(n,p),x2:z,y2:Math.max(n,p)},color:g})}}w&&(e.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height), this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(d.x1,d.y1,d.width,d.height),b.restore());c.restore();return{source:e,dest:this.plotArea.ctx,animationCallback:x.fadeInAnimation,easingFunction:x.easing.easeInQuad,animationBase:0}}};v.prototype.renderBoxAndWhisker=function(a){var e=a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx:e,b=this._eventManager.ghostCtx;if(!(0>=a.dataSeriesIndexes.length)){var g=null,l=this.plotArea, d=0,k,t,m,n,p,q,h,g=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,d=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.015*this.width,r=a.axisX.dataInfo.minDiff;isFinite(r)||(r=0.3*Math.abs(a.axisX.range));r=this.options.dataPointWidth?this.dataPointWidth:0.7*l.width*(a.axisX.logarithmic?Math.log(r)/Math.log(a.axisX.range):Math.abs(r)/Math.abs(a.axisX.range))<<0;this.dataPointMaxWidth&&g> d&&(g=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,d));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&dd&&(r=d);c.save();w&&b.save();c.beginPath();c.rect(l.x1,l.y1,l.width,l.height);c.clip();w&&(b.beginPath(),b.rect(l.x1,l.y1,l.width,l.height),b.clip());for(var s=!1,s=!!a.axisY.reversed,v=0;va.axisX.dataInfo.viewPortMax)&&!f(y[d].y)&&y[d].y.length&&"number"===typeof y[d].y[0]&&"number"===typeof y[d].y[1]&&"number"===typeof y[d].y[2]&&"number"===typeof y[d].y[3]&&"number"===typeof y[d].y[4]&&5===y[d].y.length){k=a.axisX.convertValueToPixel(h);t=a.axisY.convertValueToPixel(y[d].y[0]);m=a.axisY.convertValueToPixel(y[d].y[1]);n=a.axisY.convertValueToPixel(y[d].y[2]); p=a.axisY.convertValueToPixel(y[d].y[3]);q=a.axisY.convertValueToPixel(y[d].y[4]);var z=k-r/2<<0,C=k+r/2<<0,g=y[d].color?y[d].color:K._colorSet[0],E=Math.round(Math.max(1,0.15*r)),F=0===E%2?0:0.5,N=y[d].whiskerColor?y[d].whiskerColor:y[d].color?K.whiskerColor?K.whiskerColor:y[d].color:K.whiskerColor?K.whiskerColor:g,O="number"===typeof y[d].whiskerThickness?y[d].whiskerThickness:"number"===typeof K.options.whiskerThickness?K.whiskerThickness:E,ga=y[d].whiskerDashType?y[d].whiskerDashType:K.whiskerDashType, ca=f(y[d].whiskerLength)?f(K.options.whiskerLength)?r:K.whiskerLength:y[d].whiskerLength,ca="number"===typeof ca?0>=ca?0:ca>=r?r:ca:"string"===typeof ca?parseInt(ca)*r/100>r?r:parseInt(ca)*r/100:r,ja=1===Math.round(O)%2?0.5:0,va=y[d].stemColor?y[d].stemColor:y[d].color?K.stemColor?K.stemColor:y[d].color:K.stemColor?K.stemColor:g,fa="number"===typeof y[d].stemThickness?y[d].stemThickness:"number"===typeof K.options.stemThickness?K.stemThickness:E,H=1===Math.round(fa)%2?0.5:0,J=y[d].stemDashType?y[d].stemDashType: K.stemDashType,P=y[d].lineColor?y[d].lineColor:y[d].color?K.lineColor?K.lineColor:y[d].color:K.lineColor?K.lineColor:g,M="number"===typeof y[d].lineThickness?y[d].lineThickness:"number"===typeof K.options.lineThickness?K.lineThickness:E,T=y[d].lineDashType?y[d].lineDashType:K.lineDashType,Q=1===Math.round(M)%2?0.5:0,U=K.upperBoxColor,Ia=K.lowerBoxColor,xa=f(K.options.fillOpacity)?1:K.fillOpacity,S=K.dataPointIds[d];this._eventManager.objectMap[S]={id:S,objectType:"dataPoint",dataSeriesIndex:u,dataPointIndex:d, x1:z,y1:t,x2:C,y2:m,x3:k,y3:n,x4:k,y4:p,y5:q,borderThickness:E,color:g,stemThickness:fa,stemColor:va,whiskerThickness:O,whiskerLength:ca,whiskerColor:N,lineThickness:M,lineColor:P};c.save();0=a.dataSeriesIndexes.length)){var b=null,g=this.plotArea,l=0,d,k,t,l=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth: 1;d=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.03*this.width;var m=a.axisX.dataInfo.minDiff;isFinite(m)||(m=0.3*Math.abs(a.axisX.range));m=this.options.dataPointWidth?this.dataPointWidth:0.9*(g.width*(a.axisX.logarithmic?Math.log(m)/Math.log(a.axisX.range):Math.abs(m)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&l>d&&(l=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,d));!this.dataPointMaxWidth&& (this.dataPointMinWidth&&dd&&(m=d);c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(g.x1,g.y1,g.width,g.height);c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(g.x1,g.y1,g.width,g.height),this._eventManager.ghostCtx.clip());for(var n=0;na.axisX.dataInfo.viewPortMax)&&!f(h[l].y)&&h[l].y.length&&"number"===typeof h[l].y[0]&&"number"===typeof h[l].y[1]){b=a.axisX.convertValueToPixel(t);d=a.axisY.convertValueToPixel(h[l].y[0]);k=a.axisY.convertValueToPixel(h[l].y[1]);var s=a.axisX.reversed?b+a.plotType.totalDataSeries*m/2-(a.previousDataSeriesCount+n)*m<<0:b-a.plotType.totalDataSeries*m/2+(a.previousDataSeriesCount+ n)*m<<0,v=a.axisX.reversed?s-m<<0:s+m<<0,b=h[l].color?h[l].color:q._colorSet[l%q._colorSet.length];if(d>k){var u=d;d=k;k=u}u=q.dataPointIds[l];this._eventManager.objectMap[u]={id:u,objectType:"dataPoint",dataSeriesIndex:p,dataPointIndex:l,x1:s,y1:d,x2:v,y2:k};W(c,a.axisX.reversed?v:s,d,a.axisX.reversed?s:v,k,b,0,b,r,r,!1,!1,q.fillOpacity);b=L(u);w&&W(this._eventManager.ghostCtx,a.axisX.reversed?v:s,d,a.axisX.reversed?s:v,k,b,0,null,!1,!1,!1,!1);if(h[l].indexLabel||q.indexLabel||h[l].indexLabelFormatter|| q.indexLabelFormatter)this._indexLabels.push({chartType:"rangeColumn",dataPoint:h[l],dataSeries:q,indexKeyword:0,point:{x:s+(v-s)/2,y:h[l].y[1]>=h[l].y[0]?k:d},direction:h[l].y[1]>=h[l].y[0]?-1:1,bounds:{x1:s,y1:Math.min(d,k),x2:v,y2:Math.max(d,k)},color:b}),this._indexLabels.push({chartType:"rangeColumn",dataPoint:h[l],dataSeries:q,indexKeyword:1,point:{x:s+(v-s)/2,y:h[l].y[1]>=h[l].y[0]?d:k},direction:h[l].y[1]>=h[l].y[0]?1:-1,bounds:{x1:s,y1:Math.min(d,k),x2:v,y2:Math.max(d,k)},color:b})}}w&&(e.drawImage(this._preRenderCanvas, 0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(g.x1,g.y1,g.width,g.height),this._eventManager.ghostCtx.restore());c.restore();return{source:e,dest:this.plotArea.ctx,animationCallback:x.fadeInAnimation,easingFunction:x.easing.easeInQuad, animationBase:0}}};v.prototype.renderError=function(a){var e=a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx:e,b=a.axisY._position?"left"===a.axisY._position||"right"===a.axisY._position?!1:!0:!1;if(!(0>=a.dataSeriesIndexes.length)){var g=null,l=!1,d=this.plotArea,k=0,t,m,n,p,q,h,r,s=a.axisX.dataInfo.minDiff;isFinite(s)||(s=0.3*Math.abs(a.axisX.range));c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(d.x1,d.y1,d.width,d.height);c.clip();w&&(this._eventManager.ghostCtx.beginPath(), this._eventManager.ghostCtx.rect(d.x1,d.y1,d.width,d.height),this._eventManager.ghostCtx.clip());for(var v=0,u=0;uk&&(g=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,k));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&kk&&(u=k);if(0=N.length?0:N.length>=u?u:N.length:"string"===typeof N.length?parseInt(N.length)*u/100>u?u:parseInt(N.length)*u/100>u:u;N.thickness="number"===typeof N.thickness?0>N.thickness?0:Math.round(N.thickness):2;var O={color:z[k].stemColor?z[k].stemColor:z[k].color?A.stemColor?A.stemColor:z[k].color:A.stemColor?A.stemColor:g,thickness:z[k].stemThickness?z[k].stemThickness:A.stemThickness,dashType:z[k].stemDashType? z[k].stemDashType:A.stemDashType};O.thickness="number"===typeof O.thickness?0>O.thickness?0:Math.round(O.thickness):2;z[k].getTime?r=z[k].x.getTime():r=z[k].x;if(!(ra.axisX.dataInfo.viewPortMax)&&!f(z[k].y)&&z[k].y.length&&"number"===typeof z[k].y[0]&&"number"===typeof z[k].y[1]){var ga=a.axisX.convertValueToPixel(r);b?m=ga:t=ga;ga=a.axisY.convertValueToPixel(z[k].y[0]);b?n=ga:q=ga;ga=a.axisY.convertValueToPixel(z[k].y[1]);b?p=ga:h=ga;b?(q=a.axisX.reversed?m+(C?v: 1)*u/2-(C?F-1:0)*u<<0:m-(C?v:1)*u/2+(C?F-1:0)*u<<0,h=a.axisX.reversed?q-u<<0:q+u<<0):(n=a.axisX.reversed?t+(C?v:1)*u/2-(C?F-1:0)*u<<0:t-(C?v:1)*u/2+(C?F-1:0)*u<<0,p=a.axisX.reversed?n-u<<0:n+u<<0);!b&&q>h&&(ga=q,q=h,h=ga);b&&n>p&&(ga=n,n=p,p=ga);ga=A.dataPointIds[k];this._eventManager.objectMap[ga]={id:ga,objectType:"dataPoint",dataSeriesIndex:y,dataPointIndex:k,x1:Math.min(n,p),y1:Math.min(q,h),x2:Math.max(p,n),y2:Math.max(h,q),isXYSwapped:b,stemProperties:O,whiskerProperties:N};E(c,Math.min(n,p), Math.min(q,h),Math.max(p,n),Math.max(h,q),g,N,O,b);w&&E(this._eventManager.ghostCtx,n,q,p,h,g,N,O,b);if(z[k].indexLabel||A.indexLabel||z[k].indexLabelFormatter||A.indexLabelFormatter)this._indexLabels.push({chartType:"error",dataPoint:z[k],dataSeries:A,indexKeyword:0,point:{x:b?z[k].y[1]>=z[k].y[0]?n:p:n+(p-n)/2,y:b?q+(h-q)/2:z[k].y[1]>=z[k].y[0]?h:q},direction:z[k].y[1]>=z[k].y[0]?-1:1,bounds:{x1:b?Math.min(n,p):n,y1:b?q:Math.min(q,h),x2:b?Math.max(n,p):p,y2:b?h:Math.max(q,h)},color:g,axisSwapped:b}), this._indexLabels.push({chartType:"error",dataPoint:z[k],dataSeries:A,indexKeyword:1,point:{x:b?z[k].y[1]>=z[k].y[0]?p:n:n+(p-n)/2,y:b?q+(h-q)/2:z[k].y[1]>=z[k].y[0]?q:h},direction:z[k].y[1]>=z[k].y[0]?1:-1,bounds:{x1:b?Math.min(n,p):n,y1:b?q:Math.min(q,h),x2:b?Math.max(n,p):p,y2:b?h:Math.max(q,h)},color:g,axisSwapped:b})}}}w&&(e.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height), a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(d.x1,d.y1,d.width,d.height),this._eventManager.ghostCtx.restore());c.restore();return{source:e,dest:this.plotArea.ctx,animationCallback:x.fadeInAnimation,easingFunction:x.easing.easeInQuad,animationBase:0}}};v.prototype.renderRangeBar=function(a){var e=a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx: e;if(!(0>=a.dataSeriesIndexes.length)){var b=null,g=this.plotArea,l=0,d,k,t,m,l=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1;d=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:Math.min(0.15*this.height,0.9*(this.plotArea.height/a.plotType.totalDataSeries))<<0;var n=a.axisX.dataInfo.minDiff;isFinite(n)||(n=0.3*Math.abs(a.axisX.range));n=this.options.dataPointWidth?this.dataPointWidth:0.9* (g.height*(a.axisX.logarithmic?Math.log(n)/Math.log(a.axisX.range):Math.abs(n)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&l>d&&(l=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,d));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&dd&&(n=d);c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(g.x1,g.y1,g.width,g.height);c.clip();w&&(this._eventManager.ghostCtx.beginPath(), this._eventManager.ghostCtx.rect(g.x1,g.y1,g.width,g.height),this._eventManager.ghostCtx.clip());for(var p=0;pa.axisX.dataInfo.viewPortMax)&&!f(r[l].y)&&r[l].y.length&&"number"===typeof r[l].y[0]&&"number"===typeof r[l].y[1]){d=a.axisY.convertValueToPixel(r[l].y[0]); k=a.axisY.convertValueToPixel(r[l].y[1]);t=a.axisX.convertValueToPixel(m);t=a.axisX.reversed?t+a.plotType.totalDataSeries*n/2-(a.previousDataSeriesCount+p)*n<<0:t-a.plotType.totalDataSeries*n/2+(a.previousDataSeriesCount+p)*n<<0;var v=a.axisX.reversed?t-n<<0:t+n<<0;d>k&&(b=d,d=k,k=b);b=r[l].color?r[l].color:h._colorSet[l%h._colorSet.length];W(c,d,a.axisX.reversed?v:t,k,a.axisX.reversed?t:v,b,0,null,s,!1,!1,!1,h.fillOpacity);b=h.dataPointIds[l];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint", dataSeriesIndex:q,dataPointIndex:l,x1:d,y1:t,x2:k,y2:v};b=L(b);w&&W(this._eventManager.ghostCtx,d,a.axisX.reversed?v:t,k,a.axisX.reversed?t:v,b,0,null,!1,!1,!1,!1);if(r[l].indexLabel||h.indexLabel||r[l].indexLabelFormatter||h.indexLabelFormatter)this._indexLabels.push({chartType:"rangeBar",dataPoint:r[l],dataSeries:h,indexKeyword:0,point:{x:r[l].y[1]>=r[l].y[0]?d:k,y:t+(v-t)/2},direction:r[l].y[1]>=r[l].y[0]?-1:1,bounds:{x1:Math.min(d,k),y1:t,x2:Math.max(d,k),y2:v},color:b}),this._indexLabels.push({chartType:"rangeBar", dataPoint:r[l],dataSeries:h,indexKeyword:1,point:{x:r[l].y[1]>=r[l].y[0]?k:d,y:t+(v-t)/2},direction:r[l].y[1]>=r[l].y[0]?1:-1,bounds:{x1:Math.min(d,k),y1:t,x2:Math.max(d,k),y2:v},color:b})}}}w&&(e.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas, 0,0,this.width,this.height),c.clearRect(g.x1,g.y1,g.width,g.height),this._eventManager.ghostCtx.restore());c.restore();return{source:e,dest:this.plotArea.ctx,animationCallback:x.fadeInAnimation,easingFunction:x.easing.easeInQuad,animationBase:0}}};v.prototype.renderRangeArea=function(a){function e(){if(K){for(var a=null,c=k.length-1;0<=c;c--)a=k[c],b.lineTo(a.x,a.y2),g.lineTo(a.x,a.y2);b.closePath();b.globalAlpha=n.fillOpacity;b.fill();b.globalAlpha=1;g.fill();if(0=a.dataSeriesIndexes.length)){var g=this._eventManager.ghostCtx,l=[],d=this.plotArea;b.save();w&&g.save();b.beginPath();b.rect(d.x1,d.y1,d.width,d.height);b.clip();w&&(g.beginPath(), g.rect(d.x1,d.y1,d.width,d.height),g.clip());for(var f=0;fa.axisX.dataInfo.viewPortMax&&(!n.connectNullData||!N)))if(null!==p[h].y&&p[h].y.length&&"number"===typeof p[h].y[0]&&"number"===typeof p[h].y[1]){t=a.axisX.convertValueToPixel(u);s=a.axisY.convertValueToPixel(p[h].y[0]);v=a.axisY.convertValueToPixel(p[h].y[1]);q||N?(n.connectNullData&&!q?(b.setLineDash&&(n.options.nullDataLineDashType|| C===n.lineDashType&&n.lineDashType!==n.nullDataLineDashType)&&(k[k.length-1].newLineDashArray=F,C=n.nullDataLineDashType,b.setLineDash(E)),b.lineTo(t,s),w&&g.lineTo(t,s),k.push({x:t,y1:s,y2:v})):(b.beginPath(),b.moveTo(t,s),K={x:t,y:s},k=[],k.push({x:t,y1:s,y2:v}),w&&(g.beginPath(),g.moveTo(t,s))),N=q=!1):(b.lineTo(t,s),k.push({x:t,y1:s,y2:v}),w&&g.lineTo(t,s),0==h%250&&e());u=n.dataPointIds[h];this._eventManager.objectMap[u]={id:u,objectType:"dataPoint",dataSeriesIndex:m,dataPointIndex:h,x1:t,y1:s, y2:v};hp[h].y[1]===a.axisY.reversed? -1:1,color:y}),this._indexLabels.push({chartType:"rangeArea",dataPoint:p[h],dataSeries:n,indexKeyword:1,point:{x:t,y:v},direction:p[h].y[0]>p[h].y[1]===a.axisY.reversed?1:-1,color:y})}else N||q||e(),N=!0;e();r.drawMarkers(l)}}w&&(c.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&& this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(d.x1,d.y1,d.width,d.height),this._eventManager.ghostCtx.restore());b.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:x.xClipAnimation,easingFunction:x.easing.linear,animationBase:0}}};v.prototype.renderRangeSplineArea=function(a){function e(a,c){var e=s(v,2);if(0=a.dataSeriesIndexes.length)){var g=this._eventManager.ghostCtx,l=[],d=this.plotArea;b.save();w&&g.save();b.beginPath();b.rect(d.x1,d.y1,d.width,d.height);b.clip();w&&(g.beginPath(),g.rect(d.x1,d.y1,d.width,d.height),g.clip());for(var f=0;fa.axisX.dataInfo.viewPortMax&&(!m.connectNullData||!h)))if(null!==n[p].y&&n[p].y.length&&"number"===typeof n[p].y[0]&&"number"===typeof n[p].y[1]){q=a.axisX.convertValueToPixel(q);h=a.axisY.convertValueToPixel(n[p].y[0]);t=a.axisY.convertValueToPixel(n[p].y[1]);var F=m.dataPointIds[p];this._eventManager.objectMap[F]={id:F,objectType:"dataPoint",dataSeriesIndex:k,dataPointIndex:p,x1:q,y1:h,y2:t};v[v.length]={x:q,y:h};z[z.length]={x:q,y:t};p=a.dataSeriesIndexes.length)){var b=this._eventManager.ghostCtx, g=null,l=this.plotArea,d=0,f,k,m,n,p=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),d=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1;k=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:Math.min(0.15*this.width,0.9*(this.plotArea.width/a.plotType.totalDataSeries))<<0;var q=a.axisX.dataInfo.minDiff;isFinite(q)||(q=0.3*Math.abs(a.axisX.range));q=this.options.dataPointWidth? this.dataPointWidth:0.6*(l.width*(a.axisX.logarithmic?Math.log(q)/Math.log(a.axisX.range):Math.abs(q)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&d>k&&(d=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,k));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&kk&&(q=k);c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(l.x1,l.y1,l.width,l.height); c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(l.x1,l.y1,l.width,l.height),this._eventManager.ghostCtx.clip());for(var h=0;hm&&(g=k,k=m,m=g);a.axisY.reversed&&(g=k,k=m,m=g);g=r.dataPointIds[d];this._eventManager.objectMap[g]={id:g,objectType:"dataPoint",dataSeriesIndex:t,dataPointIndex:d,x1:f,y1:k,x2:F,y2:m};var N=s[d].color?s[d].color:0s[d].y===a.axisY.reversed?1:-1,bounds:{x1:f,y1:Math.min(k,m),x2:F,y2:Math.max(k,m)},color:g})}}w&&(e.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(l.x1,l.y1,l.width, l.height),this._eventManager.ghostCtx.restore());c.restore();return{source:e,dest:this.plotArea.ctx,animationCallback:x.fadeInAnimation,easingFunction:x.easing.easeInQuad,animationBase:0}}};var d=function(a,e,c,b,g,l,d,f,k){if(!(0>c)){"undefined"===typeof f&&(f=1);if(!w){var m=Number((d%(2*Math.PI)).toFixed(8));Number((l%(2*Math.PI)).toFixed(8))===m&&(d-=1E-4)}a.save();a.globalAlpha=f;"pie"===g?(a.beginPath(),a.moveTo(e.x,e.y),a.arc(e.x,e.y,c,l,d,!1),a.fillStyle=b,a.strokeStyle="white",a.lineWidth= 2,a.closePath(),a.fill()):"doughnut"===g&&(a.beginPath(),a.arc(e.x,e.y,c,l,d,!1),0<=k&&a.arc(e.x,e.y,k*c,d,l,!0),a.closePath(),a.fillStyle=b,a.strokeStyle="white",a.lineWidth=2,a.fill());a.globalAlpha=1;a.restore()}};v.prototype.renderPie=function(a){function e(){if(m&&n){var a=0,b=0,c=0,e=0;f(m.options.indexLabelMaxWidth)&&(m.indexLabelMaxWidth=0.33*q.width);for(var g=0;gMath.PI/2-u&&p.midAngle p.midAngle)c=g;a++}else if(p.midAngle>3*Math.PI/2-u&&p.midAngle<3*Math.PI/2+u){if(0===b||h[e].midAngle>p.midAngle)e=g;b++}p.hemisphere=l>Math.PI/2&&l<=3*Math.PI/2?"left":"right";p.indexLabelTextBlock=new la(r.plotArea.ctx,{fontSize:p.indexLabelFontSize,fontFamily:p.indexLabelFontFamily,fontColor:p.indexLabelFontColor,fontStyle:p.indexLabelFontStyle,fontWeight:p.indexLabelFontWeight,textAlign:p.indexLabelTextAlign,backgroundColor:p.indexLabelBackgroundColor,borderColor:p.indexLabelBorderColor,borderThickness:p.indexLabelBorderThickness, maxWidth:p.indexLabelMaxWidth,maxHeight:p.indexLabelWrap?5*p.indexLabelFontSize:1.5*p.indexLabelFontSize,text:p.indexLabelText,padding:0,textBaseline:"middle"});p.indexLabelTextBlock.measureText()}d=l=0;k=!1;for(g=0;gMath.PI/2-u&&p.midAngle3*Math.PI/2-u&&p.midAngle<3*Math.PI/2+u)&&(d<=b/2&&!k?(p.hemisphere= "left",d++):(p.hemisphere="right",k=!0))}}function c(a,b){var c=r.plotArea.ctx;c.clearRect(q.x1,q.y1,q.width,q.height);c.fillStyle=r.backgroundColor;c.fillRect(q.x1,q.y1,q.width,q.height);for(c=0;ce){var l=0.07*C*Math.cos(h[c].midAngle),f=0.07*C*Math.sin(h[c].midAngle),k=!1;if(n[c].exploded){if(1E-9a.indexLabelTextBlock.y?g-e:c-h}function g(a){for(var c=null,e=1;eb(h[c],h[a])||("right"===h[a].hemisphere?h[c].indexLabelTextBlock.y>=h[a].indexLabelTextBlock.y:h[c].indexLabelTextBlock.y<= h[a].indexLabelTextBlock.y)))break;else c=null;return c}function l(a,c,e){e=(e||0)+1;if(1E3c&&p.indexLabelTextBlock.ym)return 0;var q=0,k=0,k=q=q=0;0>c?p.indexLabelTextBlock.y-p.indexLabelTextBlock.height/2>f&&p.indexLabelTextBlock.y-p.indexLabelTextBlock.height/2+cm&&(c=p.indexLabelTextBlock.y+p.indexLabelTextBlock.height/2+c-m);c=p.indexLabelTextBlock.y+c;f=0;f="right"===p.hemisphere?y.x+Math.sqrt(Math.pow(s,2)-Math.pow(c-y.y,2)):y.x-Math.sqrt(Math.pow(s,2)-Math.pow(c-y.y,2));k=y.x+C*Math.cos(p.midAngle);q=y.y+C*Math.sin(p.midAngle);q=Math.sqrt(Math.pow(f-k,2)+Math.pow(c-q,2));k=Math.acos(C/s);q=Math.acos((s*s+C*C-q*q)/(2*C*s));c=qb(h[f],h[a])||("right"===h[a].hemisphere?h[f].indexLabelTextBlock.y<=h[a].indexLabelTextBlock.y:h[f].indexLabelTextBlock.y>=h[a].indexLabelTextBlock.y)))break;else f=null;k=f;q=g(a);m=f=0;0>c?(m="right"===p.hemisphere?k:q,d=c,null!==m&&(k=-c,c=p.indexLabelTextBlock.y-p.indexLabelTextBlock.height/2-(h[m].indexLabelTextBlock.y+h[m].indexLabelTextBlock.height/ 2),c-k+f.toFixed(v)&&(d=c>x?-(c-x):-(k-(m-f)))))):0x?c-x:k-(f-m)))));d&&(e=p.indexLabelTextBlock.y+d,c=0,c="right"===p.hemisphere?y.x+Math.sqrt(Math.pow(s,2)-Math.pow(e-y.y,2)):y.x-Math.sqrt(Math.pow(s,2)-Math.pow(e-y.y,2)),p.midAngle> Math.PI/2-u&&p.midAnglef.indexLabelTextBlock.x?c=f.indexLabelTextBlock.x-15:"right"===p.hemisphere&&("left"===a.hemisphere&&c3*Math.PI/2-u&&p.midAngle<3*Math.PI/2+u&&(f=(a-1+h.length)%h.length,f=h[f],a=h[(a+1+h.length)%h.length],"right"===p.hemisphere&&"left"===f.hemisphere&&ca.indexLabelTextBlock.x)&&(c=a.indexLabelTextBlock.x-15)),p.indexLabelTextBlock.y=e,p.indexLabelTextBlock.x=c,p.indexLabelAngle=Math.atan2(p.indexLabelTextBlock.y-y.y,p.indexLabelTextBlock.x-y.x))}return d}function k(){var a=r.plotArea.ctx;a.fillStyle="grey";a.strokeStyle="grey";a.font="16px Arial";a.textBaseline="middle";for(var c=a=0,e=0,d=!0,c=0;10>c&&(1>c||0z){for(var A=t=0,na=0;nat?f.indexLabelText="":f.indexLabelTextBlock.maxWidth=0.85*t,0.3*f.indexLabelTextBlock.maxWidthe&&(e=u)),u=u=0,0e&&(e=u)));var ba=function(a,b,c){for(var e=[],g=0;e.push(h[b]),b!==c;b=(b+1+n.length)%n.length);e.sort(function(a,b){return a.y-b.y});for(b=0;bz){q=B.indexLabelTextBlock.x;var k=B.indexLabelTextBlock.y-B.indexLabelTextBlock.height/2,t=B.indexLabelTextBlock.y+B.indexLabelTextBlock.height/2,r=m.indexLabelTextBlock.y-m.indexLabelTextBlock.height/2,u=m.indexLabelTextBlock.x+m.indexLabelTextBlock.width,x=m.indexLabelTextBlock.y+m.indexLabelTextBlock.height/2;q=B.indexLabelTextBlock.x+B.indexLabelTextBlock.widthu+p||k>x+p||ta&&(a=f),d!==a&&(c=d,e+=-z),0===f%Math.max(n.length/ 10,3)&&(l=!0)):l=!0;l&&(0=a.dataSeriesIndexes.length)){var m=this.data[a.dataSeriesIndexes[0]],n=m.dataPoints,p=10,q=this.plotArea,h=m.dataPointEOs,x=2,s,w=1.3,u=20/180*Math.PI,v=6,y={x:(q.x2+q.x1)/2,y:(q.y2+q.y1)/2},z=0;a=!1;for(var A=0;Ab&&(g=b,l=!0);var f=n[c].color?n[c].color:m._colorSet[c%m._colorSet.length];g>e&&d(r.plotArea.ctx,h[c].center,h[c].radius,f,m.type,e,g,m.fillOpacity,h[c].percentInnerRadius);if(l)break}t();r.dispatchEvent("dataAnimationIterationEnd",{chart:r});1<=a&&r.dispatchEvent("dataAnimationEnd",{chart:r})},function(){r.disableToolTip=!1;r._animator.animate(0, r.animatedRender?500:0,function(a){c(a,!1);t();r.dispatchEvent("dataAnimationIterationEnd",{chart:r})});r.dispatchEvent("dataAnimationEnd",{chart:r})})}}};var t=function(a,e,c,b){"undefined"===typeof c&&(c=1);0>=Math.round(e.y4-e.y1)||(a.save(),a.globalAlpha=c,a.beginPath(),a.moveTo(Math.round(e.x1),Math.round(e.y1)),a.lineTo(Math.round(e.x2),Math.round(e.y2)),a.lineTo(Math.round(e.x3),Math.round(e.y3)),a.lineTo(Math.round(e.x4),Math.round(e.y4)),"undefined"!==e.x5&&(a.lineTo(Math.round(e.x5),Math.round(e.y5)), a.lineTo(Math.round(e.x6),Math.round(e.y6))),a.closePath(),a.fillStyle=b?b:e.color,a.fill(),a.globalAplha=1,a.restore())};v.prototype.renderFunnel=function(a){function e(){for(var a=0,b=[],c=0;cn?(n=c,d=(b+n)*(g-m)/2,a-=d,p=g-m,m+=g-m,p+=0==n?0:a/n,m+=a/n,d=!0):(p=(Math.abs(da)*b-Math.sqrt(n))/2,n=b-2*p/Math.abs(da),m+=p,m>g&&(m-=p,n=c,d=(b+n)*(g-m)/2,a-=d,p=g-m,m+=g-m,p+=a/n,m+=a/n,d=!0), b=n)),e.push(p);return e}function b(){if(u&&A){for(var a,b,c,e,g,l,d,m,p,n,q,k,B,t,r,x,s,v=[],y=[],G={percent:null,total:null},D=null,C=0;Cv[C]&&(v[C]=C!==Z?u.reversed?S[C].x3-S[C].x4:S[C].x2-S[C].x1:S[C].x2-S[C].x1,v[C]/=2));r=b.indexLabelMaxWidth?b.indexLabelMaxWidth:u.options.indexLabelMaxWidth?u.indexLabelMaxWidth:v[C];if(r>v[C]||0>r)r=v[C];y[C]="inside"===u.indexLabelPlacement?t?Math.max(S[C].height,m):1.5*m:!1;G=z.getPercentAndTotal(u, b);if(u.indexLabelFormatter||b.indexLabelFormatter)D={chart:z.options,dataSeries:u,dataPoint:b,total:G.total,percent:G.percent};b=b.indexLabelFormatter?b.indexLabelFormatter(D):b.indexLabel?z.replaceKeywordsWithValue(b.indexLabel,b,u,C):u.indexLabelFormatter?u.indexLabelFormatter(D):u.indexLabel?z.replaceKeywordsWithValue(u.indexLabel,b,u,C):b.label?b.label:"";0>=k&&(k=0);1E3>r&&1E3-rf?f:u.indexLabelMaxWidth:f,d=I.length-1;0<=d;d--){l=A[I[d].id];c=I[d];e=c.textBlock;b=(a=q(d)b.y&&(g=!0);c=l.indexLabelMaxWidth||f;if(c>f||0>c)c=f;h.push(c)}if(g)for(d=I.length-1;0<=d;d--)a=S[d],I[d].textBlock.maxWidth=h[h.length-(d+1)],I[d].textBlock.measureText(),I[d].textBlock.height= I[d].textBlock.height===2*I[d].textBlock.padding?0:I[d].textBlock.height,I[d].textBlock.width=I[d].textBlock.width===2*I[d].textBlock.padding?0:I[d].textBlock.width,I[d].textBlock.x=P-f,c=I[d].textBlock.heightW+E&&(I[d].textBlock.y=W+E-I[d].height),I[d].textBlock.yxa+E&&(I[d].textBlock.y=xa+E-I[d].height))}function l(){var a,b,c,e;if("inside"!==u.indexLabelPlacement)for(var g=0;gIa?h(c).x2+1:(a.x2+a.x3)/2+ 1:(a.x2+a.x3)/2+1:"undefined"!==typeof a.x5?cW+E&&(I[g].textBlock.y=W+E-I[g].height),I[g].textBlock.yxa+E&&(I[g].textBlock.y=xa+E-I[g].height)));else for(g=0;g=c?(b=g!=Z?(a.x4+a.x3)/2-e/2:(a.x5+a.x4)/2-e/2,c=g!=Z?(a.y1+a.y3)/2-c/2:(a.y1+a.y4)/2-c/2,I[g].textBlock.x=b,I[g].textBlock.y=c):I[g].isDirty=!0)}function d(){function a(b,c){var e;if(0>b||b>=I.length)return 0;var g,h=I[b].textBlock;if(0>c){c*=-1;g=p(b);e=k(g,b);if(e>=c)return h.y-=c,c;if(0==b)return 0=c)return h.y+=c,c;if(b==S.length-1)return 0g)&&(f=q(k),!(f>=I.length-1)&&I[k].textBlock.y+I[k].height+ea>I[f].textBlock.y&&(I[k].textBlock.y=I[k].textBlock.y+I[k].height-g>g-I[k].textBlock.y?g+1:g-I[k].height-1))}for(f=S.length-1;0g&&(g=0,I[g].isDirty))break;if(I[f].textBlock.y=h){h=0;d+=I[h].height;break}g=p(h);if(0>g){h=0;d+=I[h].height;break}}if(h!=f){l=I[h].textBlock.y;a-=l;a=d-a;l=c(a,e,h);break}}}return l}function c(a,b,e){var g=[],h=0,l=0;for(a=Math.abs(a);e<=b;e++)g.push(S[e]);g.sort(function(a,b){return a.height-b.height});for(e=0;e+m.y.toFixed(6))&&(e=l.y+e+ea-m.y,g=a(r,-e),ga?u.reversed?xa-E:W-E:I[a].textBlock.y+I[a].height+ea)}function r(a,b,c){var e,g,h,d=[],f=E,p=[]; -1!==b&&(0<=$.indexOf(b)?(g=$.indexOf(b),$.splice(g,1)):($.push(b),$=$.sort(function(a,b){return a-b})));if(0===$.length)d=ka;else{g=E*(1!=$.length||0!=$[0]&&$[0]!=S.length-1?2:1)/m();for(var q=0;qp&&(p*=-1),c.y1+=b-p[e],c.y2+=b-p[e],c.y3+=b-p[e],c.y4+=b-p[e],c.y5&&(c.y5+=b-p[e],c.y6+=b-p[e]),p[e]=b}};a._animator.animate(0,c,function(c){var e=a.plotArea.ctx||a.ctx;ma=!0;e.clearRect(y.x1,y.y1,y.x2-y.x1,y.y2-y.y1);e.fillStyle=a.backgroundColor;e.fillRect(y.x1,y.y1,y.width,y.height);k.changeSection(c,b);var g={};g.dataSeries=u;g.dataPoint= u.reversed?u.dataPoints[A.length-1-b]:u.dataPoints[b];g.index=u.reversed?A.length-1-b:b;a.toolTip.highlightObjects([g]);for(g=0;ga){b=S[c];break}return b?(a=b.y6?a> b.y6?b.x3+(b.x4-b.x3)/(b.y4-b.y3)*(a-b.y3):b.x2+(b.x3-b.x2)/(b.y3-b.y2)*(a-b.y2):b.x2+(b.x3-b.x2)/(b.y3-b.y2)*(a-b.y2),{x1:a,x2:a}):-1}function s(a){for(var b=0;b=a.dataSeriesIndexes.length)){for(var u=this.data[a.dataSeriesIndexes[0]],A=u.dataPoints, y=this.plotArea,E=0.025*y.width,F=0.01*y.width,C=0,J=y.height-2*E,L=Math.min(y.width-2*F,2.8*y.height),N=!1,O=0;OJ?fa=J:0>=fa&&(fa=0),H>a?H=a-0.5:0>=H&&(H=0)):"pyramid"===u.type&&(H=fa=0,u.reversed=u.reversed?!1:!0);var F=O+a/2,X=O,V=O+a,W=u.reversed?T:M,Q=F-H/2,ha=F+H/2,Ia=u.reversed?M+fa:T-fa,xa=u.reversed?M:T;H=u.valueRepresents=u.valueRepresents?u.valueRepresents:"height";O=[];a=[];var S=[],F=[],aa=M,Z,da=(Ia-W)/(Q-X),ia=-da,L="area"===H?c():e();if(-1!==L){if(u.reversed)for(F.push(aa),H=L.length-1;0a&&(C=a));for(H=0;H\n');b.document.body&& b.document.body.style&&(b.document.body.style.margin="0px 0px 0px 0px",b.document.body.style.padding="0px 0px 0px 0px");b.document.close();setTimeout(function(){b.focus();b.print();setTimeout(function(){c._canvasJSContainer.removeChild(e)},1E3)},500)};v.prototype.getPercentAndTotal=function(a,e){var c=null,b=null,g=c=null;if(0<=a.type.indexOf("stacked"))b=0,c=e.x.getTime?e.x.getTime():e.x,c in a.plotUnit.yTotals&&(b=a.plotUnit.yTotals[c],c=a.plotUnit.yAbsTotals[c],g=isNaN(e.y)?0:0===c?0:100*(e.y/ c));else if("pie"===a.type||"doughnut"===a.type||"funnel"===a.type||"pyramid"===a.type){for(c=b=0;c=d||"undefined"===typeof d||0>=t||"undefined"===typeof t))if("horizontal"===this.orientation){q.textBlock= new la(this.ctx,{x:0,y:0,maxWidth:t,maxHeight:this.itemWrap?d:this.lineHeight,angle:0,text:q.text,textAlign:"left",fontSize:this.fontSize,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontColor:this.fontColor,fontStyle:this.fontStyle,textBaseline:"middle"});q.textBlock.measureText();null!==this.itemWidth&&(q.textBlock.width=this.itemWidth-(x+k+("line"===q.chartType||"spline"===q.chartType||"stepLine"===q.chartType?2*0.1*this.lineHeight:0)));if(!p||p.width+Math.round(q.textBlock.width+x+k+ (0===p.width?0:this.horizontalSpacing)+("line"===q.chartType||"spline"===q.chartType||"stepLine"===q.chartType?2*0.1*this.lineHeight:0))>l)p={items:[],width:0},m.push(p),this.height+=h,h=0;h=Math.max(h,q.textBlock.height?q.textBlock.height:this.lineHeight);q.textBlock.x=p.width;q.textBlock.y=0;p.width+=Math.round(q.textBlock.width+x+k+(0===p.width?0:this.horizontalSpacing)+("line"===q.chartType||"spline"===q.chartType||"stepLine"===q.chartType?2*0.1*this.lineHeight:0));p.items.push(q);this.width= Math.max(p.width,this.width)}else q.textBlock=new la(this.ctx,{x:0,y:0,maxWidth:w,maxHeight:!0===this.itemWrap?d:1.5*this.fontSize,angle:0,text:q.text,textAlign:"left",fontSize:this.fontSize,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontColor:this.fontColor,fontStyle:this.fontStyle,textBaseline:"middle"}),q.textBlock.measureText(),null!==this.itemWidth&&(q.textBlock.width=this.itemWidth-(x+k+("line"===q.chartType||"spline"===q.chartType||"stepLine"===q.chartType?2*0.1*this.lineHeight: 0))),this.height>0,0),this.dataPoints.length):0):(n=this.dataPoints[this.dataPoints.length-1].x-this.dataPoints[0].x,n=0>0,0),this.dataPoints.length):0));for(;;){l=0a?b.x/a:a/b.x:Math.abs(b.x-a);pn-g&&n+g>=this.dataPoints.length)break;-1===d?(g++,d=1):d=-1}return e||(c.dataPoint.x.getTime?c.dataPoint.x.getTime():c.dataPoint.x)!==(a.getTime?a.getTime():a)?e&&null!==c.dataPoint?c:null: c};J.prototype.getDataPointAtXY=function(a,e,c){if(!this.dataPoints||0===this.dataPoints.length||athis.chart.plotArea.x2||ethis.chart.plotArea.y2)return null;c=c||!1;var b=[],g=0,l=0,d=1,k=!1,r=Infinity,m=0,n=0,p=0;if("none"!==this.chart.plotInfo.axisPlacement)if(p=(this.chart.axisX[0]?this.chart.axisX[0]:this.chart.axisX2[0]).getXValueAt({x:a,y:e}),this.axisX.logarithmic)var q=Math.log(this.dataPoints[this.dataPoints.length-1].x/this.dataPoints[0].x), p=1>0,0),this.dataPoints.length):0;else q=this.dataPoints[this.dataPoints.length-1].x-this.dataPoints[0].x,p=0>0,0),this.dataPoints.length):0;for(;;){l=0= q.x1&&(a<=q.x2&&e>=q.y1&&e<=q.y2)&&(b.push({dataPoint:h,dataPointIndex:l,dataSeries:this,distance:Math.min(Math.abs(q.x1-a),Math.abs(q.x2-a),Math.abs(q.y1-e),Math.abs(q.y2-e))}),k=!0);break;case "line":case "stepLine":case "spline":case "area":case "stepArea":case "stackedArea":case "stackedArea100":case "splineArea":case "scatter":var x=oa("markerSize",h,this)||4,s=c?20:x,t=Math.sqrt(Math.pow(q.x1-a,2)+Math.pow(q.y1-e,2));t<=s&&b.push({dataPoint:h,dataPointIndex:l,dataSeries:this,distance:t});q= Math.abs(q.x1-a);q<=r?r=q:0s&&(t=Math.atan2(e-x.y,a-x.x),0>t&&(t+=2*Math.PI),t=Number(((180*(t/Math.PI)%360+360)%360).toFixed(12)),x=Number(((180*(q.startAngle/Math.PI)%360+360)%360).toFixed(12)),s=Number(((180*(q.endAngle/Math.PI)%360+360)%360).toFixed(12)),0===s&&1=s&&(0!==h.y&&!f(h.y))&&(s+=360,tx&&tt.y1&&et.y6?(l=t.x6+(t.x5-t.x6)/(t.y5-t.y6)*(e-t.y6),t=t.x3+(t.x4-t.x3)/(t.y4-t.y3)*(e-t.y3)):(l=t.x1+(t.x6-t.x1)/(t.y6-t.y1)*(e-t.y1),t=t.x2+(t.x3-t.x2)/(t.y3-t.y2)*(e-t.y2)):(l=t.x1+(t.x4-t.x1)/(t.y4-t.y1)*(e-t.y1),t=t.x2+(t.x3-t.x2)/(t.y3-t.y2)*(e-t.y2)),a>l&&a=q.x1-q.borderThickness/2&&a<=q.x2+q.borderThickness/2&&e>=q.y4-q.borderThickness/2&&e<=q.y1+q.borderThickness/2||Math.abs(q.x2-a+q.x1-a)=q.y1&&e<=q.y4)b.push({dataPoint:h,dataPointIndex:l,dataSeries:this,distance:Math.min(Math.abs(q.x1-a),Math.abs(q.x2-a),Math.abs(q.y2-e),Math.abs(q.y3-e))}),k=!0;break;case "candlestick":if(a>=q.x1-q.borderThickness/2&&a<=q.x2+q.borderThickness/2&&e>=q.y2-q.borderThickness/2&&e<=q.y3+q.borderThickness/2||Math.abs(q.x2- a+q.x1-a)=q.y1&&e<=q.y4)b.push({dataPoint:h,dataPointIndex:l,dataSeries:this,distance:Math.min(Math.abs(q.x1-a),Math.abs(q.x2-a),Math.abs(q.y2-e),Math.abs(q.y3-e))}),k=!0;break;case "ohlc":if(Math.abs(q.x2-a+q.x1-a)=q.y2&&e<=q.y3||a>=q.x1&&a<=(q.x2+q.x1)/2&&e>=q.y1-q.borderThickness/2&&e<=q.y1+q.borderThickness/2||a>=(q.x1+q.x2)/2&&a<=q.x2&&e>=q.y4-q.borderThickness/2&&e<=q.y4+q.borderThickness/2)b.push({dataPoint:h,dataPointIndex:l,dataSeries:this,distance:Math.min(Math.abs(q.x1- a),Math.abs(q.x2-a),Math.abs(q.y2-e),Math.abs(q.y3-e))}),k=!0}if(k||1E3p-g&&p+g>=this.dataPoints.length)break;-1===d?(g++,d=1):d=-1}a=null;for(e=0;ep[h].endValue;h++);a=h=p[h].startValue&&c<=p[h].endValue;n=c;a||(a=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.options,value:n,label:this.labels[n]?this.labels[n]:null}):"axisX"===this.type&&this.labels[n]?this.labels[n]:ha(n,this.valueFormatString,this.chart._cultureInfo),a=new la(this.ctx,{x:0,y:0,maxWidth:l,maxHeight:d,angle:this.labelAngle, text:this.prefix+a+this.suffix,backgroundColor:this.labelBackgroundColor,borderColor:this.labelBorderColor,cornerRadius:this.labelCornerRadius,textAlign:this.labelTextAlign,fontSize:this.labelFontSize,fontFamily:this.labelFontFamily,fontWeight:this.labelFontWeight,fontColor:this.labelFontColor,fontStyle:this.labelFontStyle,textBaseline:"middle",borderThickness:this.labelBorderThickness}),this._labels.push({position:n,textBlock:a,effectiveHeight:null}))}h=q;for(c=this.intervalStartPosition;c<=g;c= parseFloat(1E-12>this.interval?this.logarithmic&&this.equidistantInterval?c*Math.pow(this.logarithmBase,this.interval):c+this.interval:(this.logarithmic&&this.equidistantInterval?c*Math.pow(this.logarithmBase,this.interval):c+this.interval).toFixed(12))){for(;hp[h].endValue;h++);a=h=p[h].startValue&&c<=p[h].endValue;n=c;a||(a=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.options,value:n,label:this.labels[n]?this.labels[n]:null}):"axisX"===this.type&& this.labels[n]?this.labels[n]:ha(n,this.valueFormatString,this.chart._cultureInfo),a=new la(this.ctx,{x:0,y:0,maxWidth:l,maxHeight:d,angle:this.labelAngle,text:this.prefix+a+this.suffix,textAlign:this.labelTextAlign,backgroundColor:this.labelBackgroundColor,borderColor:this.labelBorderColor,borderThickness:this.labelBorderThickness,cornerRadius:this.labelCornerRadius,fontSize:this.labelFontSize,fontFamily:this.labelFontFamily,fontWeight:this.labelFontWeight,fontColor:this.labelFontColor,fontStyle:this.labelFontStyle, textBaseline:"middle"}),this._labels.push({position:n,textBlock:a,effectiveHeight:null}))}}else for(this.intervalStartPosition=this.getLabelStartPoint(new Date(this.viewportMinimum),this.intervalType,this.interval),g=db(new Date(this.viewportMaximum),this.interval,this.intervalType),h=q,c=this.intervalStartPosition;cp[h].endValue;h++);n=a;a=h=p[h].startValue&&a<=p[h].endValue;a||(a=this.labelFormatter?this.labelFormatter({chart:this.chart, axis:this.options,value:new Date(n),label:this.labels[n]?this.labels[n]:null}):"axisX"===this.type&&this.labels[n]?this.labels[n]:ra(n,this.valueFormatString,this.chart._cultureInfo),a=new la(this.ctx,{x:0,y:0,maxWidth:l,backgroundColor:this.labelBackgroundColor,borderColor:this.labelBorderColor,borderThickness:this.labelBorderThickness,cornerRadius:this.labelCornerRadius,maxHeight:d,angle:this.labelAngle,text:this.prefix+a+this.suffix,textAlign:this.labelTextAlign,fontSize:this.labelFontSize,fontFamily:this.labelFontFamily, fontWeight:this.labelFontWeight,fontColor:this.labelFontColor,fontStyle:this.labelFontStyle,textBaseline:"middle"}),this._labels.push({position:n,textBlock:a,effectiveHeight:null,breaksLabelType:void 0}))}if("bottom"===this._position||"top"===this._position)k=this.logarithmic&&!this.equidistantInterval&&2<=this._labels.length?this.lineCoordinates.width*Math.log(Math.min(this._labels[this._labels.length-1].position/this._labels[this._labels.length-2].position,this._labels[1].position/this._labels[0].position))/ Math.log(this.range):this.lineCoordinates.width/(this.logarithmic&&this.equidistantInterval?Math.log(this.range)/Math.log(this.logarithmBase):Math.abs(this.range))*Y[this.intervalType+"Duration"]*this.interval,l="undefined"===typeof this.options.labelMaxWidth?0.5*this.chart.width>>0:this.options.labelMaxWidth,this.chart.panEnabled||(d="undefined"===typeof this.options.labelWrap||this.labelWrap?0.8*this.chart.height>>0:1.5*this.labelFontSize);else if("left"===this._position||"right"===this._position)k= this.logarithmic&&!this.equidistantInterval&&2<=this._labels.length?this.lineCoordinates.height*Math.log(Math.min(this._labels[this._labels.length-1].position/this._labels[this._labels.length-2].position,this._labels[1].position/this._labels[0].position))/Math.log(this.range):this.lineCoordinates.height/(this.logarithmic&&this.equidistantInterval?Math.log(this.range)/Math.log(this.logarithmBase):Math.abs(this.range))*Y[this.intervalType+"Duration"]*this.interval,this.chart.panEnabled||(l="undefined"=== typeof this.options.labelMaxWidth?0.3*this.chart.width>>0:this.options.labelMaxWidth),d="undefined"===typeof this.options.labelWrap||this.labelWrap?0.3*this.chart.height>>0:1.5*this.labelFontSize;for(b=0;bthis.labelAngle?this.labelAngle-= 180:270<=this.labelAngle&&360>=this.labelAngle&&(this.labelAngle-=360)),"bottom"===this._position||"top"===this._position)if(l=0.9*k>>0,q=0,!this.chart.panEnabled&&1<=this._labels.length){this.sessionVariables.labelFontSize=this.labelFontSize;this.sessionVariables.labelMaxWidth=l;this.sessionVariables.labelMaxHeight=d;this.sessionVariables.labelAngle=this.labelAngle;this.sessionVariables.labelWrap=this.labelWrap;for(c=0;cq&&(x=c,q=n.width)}c=0;for(c=this.intervalStartPosition>0>2*l&&(this.sessionVariables.labelAngle=-25)):(this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth,this.sessionVariables.labelAngle=this.sessionVariables.labelMaxWidth> l?-25:this.sessionVariables.labelAngle):f(this.options.labelMaxWidth)?(this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxHeight=d,this.sessionVariables.labelMaxWidth=l,e&&r.width+e.width>>0>2*l&&(this.sessionVariables.labelAngle=-25,this.sessionVariables.labelMaxWidth=n)):(this.sessionVariables.labelAngle=this.sessionVariables.labelMaxWidth>l?-25:this.sessionVariables.labelAngle,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth,this.sessionVariables.labelMaxHeight= d,this.sessionVariables.labelWrap=this.labelWrap);else{if(f(this.options.labelWrap))if(!f(this.options.labelMaxWidth))this.options.labelMaxWidth>0,h=this.labelFontSize,qp&&(p=b-2*l,b>=2*l&&b<2.2*l?(this.sessionVariables.labelMaxWidth= l,f(this.options.labelFontSize)&&12=2.2*l&&b<2.8*l?(this.sessionVariables.labelAngle=-25,this.sessionVariables.labelMaxWidth=n,this.sessionVariables.labelFontSize=h):b>=2.8*l&&b<3.2*l?(this.sessionVariables.labelMaxWidth=Math.max(l,q),this.sessionVariables.labelWrap=!0,f(this.options.labelFontSize)&&12=3.2*l&&b<3.6*l?(this.sessionVariables.labelAngle=-25,this.sessionVariables.labelWrap=!0,this.sessionVariables.labelMaxWidth=n,this.sessionVariables.labelFontSize=this.labelFontSize):b>3.6*l&&b<5*l?(f(this.options.labelFontSize)&&125*l&&(this.sessionVariables.labelWrap=!0,this.sessionVariables.labelMaxWidth=l,this.sessionVariables.labelFontSize=h,this.sessionVariables.labelMaxHeight=d,this.sessionVariables.labelAngle=this.labelAngle));else if(x===c&&(0===x&&q+this._labels[x+1].textBlock.measureText().width-2*l>p||x===this._labels.length-1&&q+this._labels[x- 1].textBlock.measureText().width-2*l>p||0p&&q+this._labels[x-1].textBlock.measureText().width-2*l>p))p=0===x?q+this._labels[x+1].textBlock.measureText().width-2*l:q+this._labels[x-1].textBlock.measureText().width-2*l,this.sessionVariables.labelFontSize=f(this.options.labelFontSize)?h:this.options.labelFontSize,this.sessionVariables.labelWrap=!0,this.sessionVariables.labelAngle=-25,this.sessionVariables.labelMaxWidth= n;else if(0===p)for(this.sessionVariables.labelFontSize=f(this.options.labelFontSize)?h:this.options.labelFontSize,this.sessionVariables.labelWrap=!0,b=0;b>0>2*l&&(this.sessionVariables.labelAngle= -25))}else(this.sessionVariables.labelAngle=this.labelAngle,this.sessionVariables.labelMaxHeight=0===this.labelAngle?d:Math.min((b-l*Math.cos(Math.PI/180*Math.abs(this.labelAngle)))/Math.sin(Math.PI/180*Math.abs(this.labelAngle)),b),n=0!=this.labelAngle?(m-(t+a.fontSize/2)*Math.cos(Math.PI/180*Math.abs(this.labelAngle)))/Math.sin(Math.PI/180*Math.abs(this.labelAngle)):l,this.sessionVariables.labelMaxHeight=this.labelWrap?(m-n*Math.sin(Math.PI/180*Math.abs(this.labelAngle)))/Math.cos(Math.PI/180*Math.abs(this.labelAngle)): 1.5*this.labelFontSize,f(this.options.labelWrap))?f(this.options.labelWrap)&&(this.labelWrap&&!f(this.options.labelMaxWidth)?(this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth?this.options.labelMaxWidth:n,this.sessionVariables.labelMaxHeight=d):(this.sessionVariables.labelAngle=this.labelAngle,this.sessionVariables.labelMaxWidth=n,this.sessionVariables.labelMaxHeight=b<0.9*k?0.9*k:b,this.sessionVariables.labelWrap=this.labelWrap)):(this.options.labelWrap? (this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth?this.options.labelMaxWidth:n):(f(this.options.labelMaxWidth),this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth?this.options.labelMaxWidth:n,this.sessionVariables.labelWrap=this.labelWrap),this.sessionVariables.labelMaxHeight=d)}for(b=0;b>0:this.options.labelMaxWidth,d="undefined"===typeof this.options.labelWrap||this.labelWrap?0.3*this.chart.height>>0:1.5*this.labelFontSize,!this.chart.panEnabled&&1<=this._labels.length){this.sessionVariables.labelFontSize= this.labelFontSize;this.sessionVariables.labelMaxWidth=l;this.sessionVariables.labelMaxHeight=d;this.sessionVariables.labelAngle=f(this.sessionVariables.labelAngle)?0:this.sessionVariables.labelAngle;this.sessionVariables.labelWrap=this.labelWrap;for(c=0;c>0,k-2*d>q&&(q=k-2*d,k>=2*d&& k<2.4*d?(f(this.options.labelFontSize)&&12=2.4*d&&k<2.8*d?(this.sessionVariables.labelMaxHeight=b,this.sessionVariables.labelFontSize=this.labelFontSize,this.sessionVariables.labelWrap=!0):k>=2.8*d&&k<3.2*d?(this.sessionVariables.labelMaxHeight=d,this.sessionVariables.labelWrap= !0,f(this.options.labelFontSize)&&12=3.2*d&&k<3.6*d?(this.sessionVariables.labelMaxHeight=b,this.sessionVariables.labelWrap=!0,this.sessionVariables.labelFontSize=this.labelFontSize):k>3.6* d&&k<10*d?(f(this.options.labelFontSize)&&1210*d&&k<50*d&&(f(this.options.labelFontSize)&&12>0:1.5*this.labelFontSize;if("left"===this._position||"right"===this._position)f(l.options.labelWrap)&&!f(this.sessionVariables.stripLineLabelMaxHeight)?s=this.sessionVariables.stripLineLabelMaxHeight:this.sessionVariables.stripLineLabelMaxHeight= s=l.labelWrap?0.8*this.chart.width>>0:1.5*this.labelFontSize;f(l.labelBackgroundColor)&&(l.labelBackgroundColor="#EEEEEE")}else d="bottom"===this._position||"top"===this._position?0.9*this.chart.width>>0:0.9*this.chart.height>>0,s=f(l.options.labelWrap)||l.labelWrap?"bottom"===this._position||"top"===this._position?0.8*this.chart.width>>0:0.8*this.chart.height>>0:1.5*this.labelFontSize,f(l.labelBackgroundColor)&&(f(l.startValue)&&0!==l.startValue?l.labelBackgroundColor=w?"transparent":null:l.labelBackgroundColor= "#EEEEEE");l.labelFontSize="outside"===l.labelPlacement&&f(l.options.labelFontSize)?this.labelFontSize:l.labelFontSize;l.labelFontFamily="outside"===l.labelPlacement&&f(l.options.labelFontFamily)?this.labelFontFamily:l.labelFontFamily;l.labelFontWeight="outside"===l.labelPlacement&&f(l.options.labelFontWeight)?this.labelFontWeight:l.labelFontWeight;l.labelFontStyle="outside"===l.labelPlacement&&f(l.options.labelFontStyle)?this.labelFontStyle:l.labelFontStyle;a=new la(this.ctx,{x:0,y:0,backgroundColor:l.labelBackgroundColor, borderColor:l.labelBorderColor,borderThickness:l.labelBorderThickness,cornerRadius:l.labelCornerRadius,maxWidth:l.options.labelMaxWidth?l.options.labelMaxWidth:d,maxHeight:s,angle:this.labelAngle,text:l.labelFormatter?l.labelFormatter({chart:this.chart,axis:this,stripLine:l}):l.label,textAlign:l.labelTextAlign,fontSize:l.labelFontSize,fontFamily:l.labelFontFamily,fontWeight:l.labelFontWeight,fontColor:l.labelFontColor||l.color,fontStyle:l.labelFontStyle,textBaseline:"middle"});this._stripLineLabels.push({position:l.value, textBlock:a,effectiveHeight:null,stripLine:l})}};A.prototype.createLabelsAndCalculateWidth=function(){var a=0,e=0;this._labels=[];this._stripLineLabels=[];var c=this.chart.isNavigator?0:5;if("left"===this._position||"right"===this._position){this.createLabels();if("inside"!=this.labelPlacement||"inside"===this.labelPlacement&&0=this.viewportMinimum&&this._stripLineLabels[e].stripLine.value<=this.viewportMaximum)&&(b=this._stripLineLabels[e].textBlock,b=b.measureText(),g=0===this.labelAngle?b.width:b.width*Math.cos(Math.PI/180*Math.abs(this.labelAngle))+ b.height*Math.sin(Math.PI/180*Math.abs(this.labelAngle)),"inside"===this.tickPlacement&&(g+=this.tickLength),"inside"===this.labelPlacement&&(a+=0=this.viewportMinimum&&this._stripLineLabels[c].stripLine.value<=this.viewportMaximum)&&(e=this._stripLineLabels[c].textBlock,e=e.measureText(),g=0===this.labelAngle?e.height:e.width*Math.sin(Math.PI/180*Math.abs(this.labelAngle))+e.height*Math.cos(Math.PI/180*Math.abs(this.labelAngle)),"inside"===this.tickPlacement&&(g+=this.tickLength),"inside"===this.labelPlacement&& (a+=0q[h].viewportMaximum);x++)r[x].endValue=q[h].viewPortMinimum&&(q[h].scaleBreaks.lastBreakIndex= x));for(var s=x=0,u=0,v=0,w=0,A=0,z=0,C,E,F=k=0,J,O,L,r=J=O=L=!1,h=0;hx;){var H=0,R=0,W=0,Y=0,$=g=0,Q=0,aa=0,X=0,V=0,S=0,Z=0;if(c&&0n.width-p?n.width-p:l.x2-Z-aa);if(a&&0n.width-p?n.width-p:l.x2-Z-aa),a[h]._labels&&1t&&(k+=0a[h].labelAngle?C-st&&(k=E+u/2-t-Z),C-sa[h].labelAngle&&0n.width-p?n.width-p:l.x2-Z-aa),e[h].lineCoordinates.width=Math.abs(t-d),e[h]._labels&&1x;){X=Y=W=aa=Q=$=g=T=U=H=V=0;if(a&&0n.width-10?n.width-10:l.x2-X-$),c[h].labelAutoFit&&!f(v)&&(0c[h].labelAngle?Math.max(d,v):0===c[h].labelAngle? Math.max(d,v/2):d),0b[h].chart.width-10?b[h].chart.width-10:l.x2-X-$),b[h]&& b[h].labelAutoFit&&!f(A)&&(0 c[h].chart.height?c[h].chart.height:l.y2),c[h].lineCoordinates.y1=k-(p[h]+c[h].margin+V),c[h].lineCoordinates.y2=k-(p[h]+c[h].margin+V),"inside"===c[h].labelPlacement&&0n.height- Math.max(Q,10)?n.height-Math.max(Q,10):l.y2-W):l.y2>n.height-Math.max(Q,10)?n.height-Math.max(Q,10):l.y2;if(c&&0c[Q].labelAngle||0===c[Q].labelAngle?t-Y:d);if(b&&0n.height-Math.max(Q,10)?n.height-Math.max(Q,10):l.y2-W):l.y2>n.height-Math.max(Q,10)?n.height-Math.max(Q,10):l.y2;if(c&&0c[Q].labelAngle?Math.max(t,v):0===c[Q].labelAngle?Math.max(t,v/2):t,d=0>c[Q].labelAngle||0===c[Q].labelAngle?t-X:d);if(b&&0e[d].spacing?0:Math.abs(e[d].spacing/c),this.logarithmic&&(e[d].size=Math.pow(this.logarithmBase,e[d].size))};A.prototype.calculateBreaksInPixels=function(){if(!(this.scaleBreaks&&0>=this.scaleBreaks._appliedBreaks.length)){var a=this.scaleBreaks?this.scaleBreaks._appliedBreaks:[];a.length&&(this.scaleBreaks.firstBreakIndex=this.scaleBreaks.lastBreakIndex= null);for(var e=0;ethis.conversionParameters.maximum);e++)a[e].endValue=this.conversionParameters.minimum&&(a[e].startPixel=this.convertValueToPixel(a[e].startValue),this.scaleBreaks.lastBreakIndex=e),a[e].endValue<=this.conversionParameters.maximum&&(a[e].endPixel=this.convertValueToPixel(a[e].endValue)))}};A.prototype.renderLabelsTicksAndTitle= function(){var a=this,e=!1,c=0,b=0,g=1,d=0;0!==this.labelAngle&&360!==this.labelAngle&&(g=1.2);if("undefined"===typeof this.options.interval){if("bottom"===this._position||"top"===this._position)if(this.logarithmic&&!this.equidistantInterval&&this.labelAutoFit){for(var c=[],g=0!==this.labelAngle&&360!==this.labelAngle?1:1.2,f,k=this.viewportMaximum,t=this.lineCoordinates.width/Math.log(this.range),m=this._labels.length-1;0<=m;m--){p=this._labels[m];if(p.position this.viewportMaximum||!(m===this._labels.length-1||fthis.lineCoordinates.width* g&&this.labelAutoFit&&(e=!0)}if("left"===this._position||"right"===this._position)if(this.logarithmic&&!this.equidistantInterval&&this.labelAutoFit){for(var c=[],n,k=this.viewportMaximum,t=this.lineCoordinates.height/Math.log(this.range),m=this._labels.length-1;0<=m;m--){p=this._labels[m];if(p.positionthis.viewportMaximum||!(m===this._labels.length-1||nthis.lineCoordinates.height*g&&this.labelAutoFit&&(e=!0)}}this.logarithmic&&(!this.equidistantInterval&&this.labelAutoFit)&&this._labels.sort(function(a,b){return a.position-b.position}); var m=0,p,q;if("bottom"===this._position){for(m=0;mthis.viewportMaximum||(q=this.getPixelCoordinatesOnAxis(p.position),this.tickThickness&&"inside"!=this.tickPlacement&&(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor,b=1===this.ctx.lineWidth%2?(q.x<<0)+0.5:q.x<<0,this.ctx.beginPath(),this.ctx.moveTo(b,q.y<<0),this.ctx.lineTo(b,q.y+this.tickLength<<0),this.ctx.stroke()),e&&0!==d++%2&&this.labelAutoFit|| (0===p.textBlock.angle?(q.x-=p.textBlock.width/2,q.y="inside"===this.labelPlacement?q.y-(("inside"===this.tickPlacement?this.tickLength:0)+p.textBlock.height-p.textBlock.fontSize/2):q.y+("inside"===this.tickPlacement?0:this.tickLength)+p.textBlock.fontSize/2+5):0>this.labelAngle?(q.x-="inside"===this.labelPlacement?0:p.textBlock.width*Math.cos(Math.PI/180*this.labelAngle),q.y="inside"===this.labelPlacement?q.y-("inside"===this.tickPlacement?this.tickLength:0)-(p.textBlock.height-p.textBlock.fontSize/ 2)*Math.cos(Math.PI/180*this.labelAngle):q.y+("inside"===this.tickPlacement?0:this.tickLength)+5+Math.abs(p.textBlock.width*Math.sin(Math.PI/180*this.labelAngle)-p.textBlock.fontSize/2*Math.cos(Math.PI/180*this.labelAngle))):(q.x-="inside"===this.labelPlacement?p.textBlock.width*Math.cos(Math.PI/180*this.labelAngle):0,q.y="inside"===this.labelPlacement?q.y-("inside"===this.tickPlacement?this.tickLength:0)-p.textBlock.width*Math.sin(Math.PI/180*this.labelAngle)-(p.textBlock.height-p.textBlock.fontSize/ 2)*Math.cos(Math.PI/180*this.labelAngle):q.y+("inside"===this.tickPlacement?0:this.tickLength)+5+Math.abs(p.textBlock.fontSize/2*Math.cos(Math.PI/180*this.labelAngle))),p.textBlock.x=q.x,p.textBlock.y=q.y));"inside"===this.tickPlacement&&this.chart.addEventListener("dataAnimationIterationEnd",function(){for(m=0;ma.viewportMaximum)&&(q=a.getPixelCoordinatesOnAxis(p.position),a.tickThickness)){a.ctx.lineWidth=a.tickThickness; a.ctx.strokeStyle=a.tickColor;var b=1===a.ctx.lineWidth%2?(q.x<<0)+0.5:q.x<<0;a.ctx.save();a.ctx.beginPath();a.ctx.moveTo(b,q.y<<0);a.ctx.lineTo(b,q.y-a.tickLength<<0);a.ctx.stroke();a.ctx.restore()}},this);this.title&&(this._titleTextBlock.measureText(),this._titleTextBlock.x=this.lineCoordinates.x1+this.lineCoordinates.width/2-this._titleTextBlock.width/2,this._titleTextBlock.y=this.bounds.y2-this._titleTextBlock.height+this._titleTextBlock._lineHeight/2-1,this.titleMaxWidth=this._titleTextBlock.maxWidth, this._titleTextBlock.render(!0))}else if("top"===this._position){for(m=0;mthis.viewportMaximum||(q=this.getPixelCoordinatesOnAxis(p.position),this.tickThickness&&"inside"!=this.tickPlacement&&(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor,b=1===this.ctx.lineWidth%2?(q.x<<0)+0.5:q.x<<0,this.ctx.beginPath(),this.ctx.moveTo(b,q.y<<0),this.ctx.lineTo(b,q.y-this.tickLength<<0),this.ctx.stroke()), e&&0!==d++%2&&this.labelAutoFit||(0===p.textBlock.angle?(q.x-=p.textBlock.width/2,q.y="inside"===this.labelPlacement?q.y+this.labelFontSize/2+("inside"===this.tickPlacement?this.tickLength:0)+5:q.y-(("inside"===this.tickPlacement?0:this.tickLength)+p.textBlock.height-p.textBlock.fontSize/2)):0>this.labelAngle?(q.x-="inside"===this.labelPlacement?p.textBlock.width*Math.cos(Math.PI/180*this.labelAngle):0,q.y="inside"===this.labelPlacement?q.y+("inside"===this.tickPlacement?this.tickLength:0)+5-p.textBlock.width* Math.sin(Math.PI/180*this.labelAngle)+p.textBlock.fontSize/2*Math.cos(Math.PI/180*this.labelAngle):q.y-("inside"===this.tickPlacement?0:this.tickLength)-2-(p.textBlock.height-p.textBlock.fontSize/2)*Math.cos(Math.PI/180*this.labelAngle)):(q.x-="inside"===this.labelPlacement?0:p.textBlock.width*Math.cos(Math.PI/180*this.labelAngle),q.y="inside"===this.labelPlacement?q.y+("inside"===this.tickPlacement?this.tickLength:0)+5+p.textBlock.fontSize/2*Math.cos(Math.PI/180*this.labelAngle):q.y-("inside"=== this.tickPlacement?0:this.tickLength)-2-((p.textBlock.height-p.textBlock.fontSize/2)*Math.cos(Math.PI/180*this.labelAngle)+p.textBlock.width*Math.sin(Math.PI/180*this.labelAngle))),p.textBlock.x=q.x,p.textBlock.y=q.y));"inside"===this.tickPlacement&&this.chart.addEventListener("dataAnimationIterationEnd",function(){for(m=0;ma.viewportMaximum)&&(q=a.getPixelCoordinatesOnAxis(p.position),a.tickThickness)){a.ctx.lineWidth= a.tickThickness;a.ctx.strokeStyle=a.tickColor;var b=1===a.ctx.lineWidth%2?(q.x<<0)+0.5:q.x<<0;a.ctx.save();a.ctx.beginPath();a.ctx.moveTo(b,q.y<<0);a.ctx.lineTo(b,q.y+a.tickLength<<0);a.ctx.stroke();a.ctx.restore()}},this);this.title&&(this._titleTextBlock.measureText(),this._titleTextBlock.x=this.lineCoordinates.x1+this.lineCoordinates.width/2-this._titleTextBlock.width/2,this._titleTextBlock.y=this.bounds.y1+this._titleTextBlock._lineHeight/2+1,this.titleMaxWidth=this._titleTextBlock.maxWidth,this._titleTextBlock.render(!0))}else if("left"=== this._position){for(m=0;mthis.viewportMaximum||(q=this.getPixelCoordinatesOnAxis(p.position),this.tickThickness&&"inside"!=this.tickPlacement&&(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor,b=1===this.ctx.lineWidth%2?(q.y<<0)+0.5:q.y<<0,this.ctx.beginPath(),this.ctx.moveTo(q.x<<0,b),this.ctx.lineTo(q.x-this.tickLength<<0,b),this.ctx.stroke()),e&&0!==d++%2&&this.labelAutoFit||(0===this.labelAngle? (p.textBlock.y=q.y,p.textBlock.x="inside"===this.labelPlacement?q.x+("inside"===this.tickPlacement?this.tickLength:0)+5:q.x-p.textBlock.width*Math.cos(Math.PI/180*this.labelAngle)-("inside"===this.tickPlacement?0:this.tickLength)-5):0>this.labelAngle?(p.textBlock.y="inside"===this.labelPlacement?q.y:q.y-p.textBlock.width*Math.sin(Math.PI/180*this.labelAngle),p.textBlock.x="inside"===this.labelPlacement?q.x-p.textBlock.fontSize/2*Math.sin(Math.PI/180*this.labelAngle)+("inside"===this.tickPlacement? this.tickLength:0)+5:q.x-p.textBlock.width*Math.cos(Math.PI/180*this.labelAngle)+(p.textBlock.height-p.textBlock.fontSize/2)*Math.sin(Math.PI/180*this.labelAngle)-("inside"===this.tickPlacement?0:this.tickLength)-5):(p.textBlock.y="inside"===this.labelPlacement?q.y:q.y-p.textBlock.width*Math.sin(Math.PI/180*this.labelAngle),p.textBlock.x="inside"===this.labelPlacement?q.x+(p.textBlock.height-p.textBlock.fontSize/2)*Math.sin(Math.PI/180*this.labelAngle)+("inside"===this.tickPlacement?this.tickLength: 0)+5:q.x-p.textBlock.width*Math.cos(Math.PI/180*this.labelAngle)-p.textBlock.fontSize/2*Math.sin(Math.PI/180*this.labelAngle)-("inside"===this.tickPlacement?0:this.tickLength)-5)));"inside"===this.tickPlacement&&this.chart.addEventListener("dataAnimationIterationEnd",function(){for(m=0;ma.viewportMaximum)&&(q=a.getPixelCoordinatesOnAxis(p.position),a.tickThickness)){a.ctx.lineWidth=a.tickThickness;a.ctx.strokeStyle= a.tickColor;var b=1===a.ctx.lineWidth%2?(q.y<<0)+0.5:q.y<<0;a.ctx.save();a.ctx.beginPath();a.ctx.moveTo(q.x<<0,b);a.ctx.lineTo(q.x+a.tickLength<<0,b);a.ctx.stroke();a.ctx.restore()}},this);this.title&&(this._titleTextBlock.measureText(),this._titleTextBlock.x=this.bounds.x1+this._titleTextBlock._lineHeight/2,this._titleTextBlock.y=this.lineCoordinates.height/2+this._titleTextBlock.width/2+this.lineCoordinates.y1,this.titleMaxWidth=this._titleTextBlock.maxWidth,this._titleTextBlock.render(!0))}else if("right"=== this._position){for(m=0;mthis.viewportMaximum||(q=this.getPixelCoordinatesOnAxis(p.position),this.tickThickness&&"inside"!=this.tickPlacement&&(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor,b=1===this.ctx.lineWidth%2?(q.y<<0)+0.5:q.y<<0,this.ctx.beginPath(),this.ctx.moveTo(q.x<<0,b),this.ctx.lineTo(q.x+this.tickLength<<0,b),this.ctx.stroke()),e&&0!==d++%2&&this.labelAutoFit||(0===this.labelAngle? (p.textBlock.y=q.y,p.textBlock.x="inside"===this.labelPlacement?q.x-p.textBlock.width-("inside"===this.tickPlacement?this.tickLength:0)-5:q.x+("inside"===this.tickPlacement?0:this.tickLength)+5):0>this.labelAngle?(p.textBlock.y="inside"===this.labelPlacement?q.y-p.textBlock.width*Math.sin(Math.PI/180*this.labelAngle):q.y,p.textBlock.x="inside"===this.labelPlacement?q.x-p.textBlock.width*Math.cos(Math.PI/180*this.labelAngle)+(p.textBlock.height-p.textBlock.fontSize/2)*Math.sin(Math.PI/180*this.labelAngle)- ("inside"===this.tickPlacement?this.tickLength:0)-5:q.x-p.textBlock.fontSize/2*Math.sin(Math.PI/180*this.labelAngle)+("inside"===this.tickPlacement?0:this.tickLength)+5):(p.textBlock.y="inside"===this.labelPlacement?q.y-p.textBlock.width*Math.sin(Math.PI/180*this.labelAngle):q.y,p.textBlock.x="inside"===this.labelPlacement?q.x-p.textBlock.width*Math.cos(Math.PI/180*this.labelAngle)-p.textBlock.fontSize/2*Math.sin(Math.PI/180*this.labelAngle)-("inside"===this.tickPlacement?this.tickLength:0)-5:q.x+ (p.textBlock.height-p.textBlock.fontSize/2)*Math.sin(Math.PI/180*this.labelAngle)+("inside"===this.tickPlacement?0:this.tickLength)+5)));"inside"===this.tickPlacement&&this.chart.addEventListener("dataAnimationIterationEnd",function(){for(m=0;ma.viewportMaximum)&&(q=a.getPixelCoordinatesOnAxis(p.position),a.tickThickness)){a.ctx.lineWidth=a.tickThickness;a.ctx.strokeStyle=a.tickColor;var b=1===a.ctx.lineWidth%2?(q.y<< 0)+0.5:q.y<<0;a.ctx.save();a.ctx.beginPath();a.ctx.moveTo(q.x<<0,b);a.ctx.lineTo(q.x-a.tickLength<<0,b);a.ctx.stroke();a.ctx.restore()}},this);this.title&&(this._titleTextBlock.measureText(),this._titleTextBlock.x=this.bounds.x2-this._titleTextBlock._lineHeight/2,this._titleTextBlock.y=this.lineCoordinates.height/2-this._titleTextBlock.width/2+this.lineCoordinates.y1,this.titleMaxWidth=this._titleTextBlock.maxWidth,this._titleTextBlock.render(!0))}d=0;if("inside"===this.labelPlacement)this.chart.addEventListener("dataAnimationIterationEnd", function(){for(m=0;ma.viewportMaximum||e&&0!==d++%2&&a.labelAutoFit)||(a.ctx.save(),a.ctx.beginPath(),p.textBlock.render(!0),a.ctx.restore())},this);else for(m=0;mthis.viewportMaximum||e&&0!==d++%2&&this.labelAutoFit)||p.textBlock.render(!0)};A.prototype.renderInterlacedColors=function(){var a=this.chart.plotArea.ctx,e,c,b=this.chart.plotArea, g=0;e=!0;if(("bottom"===this._position||"top"===this._position)&&this.interlacedColor)for(a.fillStyle=this.interlacedColor,g=0;gthis._labels.length-1?this.getPixelCoordinatesOnAxis(this.viewportMaximum):this.getPixelCoordinatesOnAxis(this._labels[g+1].position),a.fillRect(Math.min(c.x,e.x),b.y1,Math.abs(c.x-e.x),Math.abs(b.y1-b.y2)),e=!1):e=!0;else if(("left"===this._position||"right"===this._position)&&this.interlacedColor)for(a.fillStyle= this.interlacedColor,g=0;gthis._labels.length-1?this.getPixelCoordinatesOnAxis(this.viewportMaximum):this.getPixelCoordinatesOnAxis(this._labels[g+1].position),a.fillRect(b.x1,Math.min(c.y,e.y),Math.abs(b.x1-b.x2),Math.abs(e.y-c.y)),e=!1):e=!0;a.beginPath()};A.prototype.renderStripLinesOfThicknessType=function(a){if(this.stripLines&&0this.viewportMaximum||f(n.value)||isNaN(this.range))||"value"===a&&(n.startValue<=this.viewportMinimum&&n.endValue<=this.viewportMinimum||n.startValue>=this.viewportMaximum&&n.endValue>=this.viewportMaximum||f(n.startValue)||f(n.endValue)||isNaN(this.range))||t.push(n))}for(g=0;gthis.viewportMaximum||isNaN(this.range)))if(b=this.getPixelCoordinatesOnAxis(c.position),"outside"===c.stripLine.labelPlacement){n&&(this.ctx.strokeStyle=n.color,this.ctx.lineWidth="pixel"===n._thicknessType?n.thickness:this.tickThickness);if("bottom"===this._position){var p=1===this.ctx.lineWidth%2?(b.x<<0)+0.5:b.x<<0;this.ctx.beginPath();this.ctx.moveTo(p,b.y<<0);this.ctx.lineTo(p,b.y+this.tickLength<<0);this.ctx.stroke();0===this.labelAngle?(b.x-=c.textBlock.width/ 2,b.y+=this.tickLength+c.textBlock.fontSize/2+5):(b.x-=0>this.labelAngle?c.textBlock.width*Math.cos(Math.PI/180*this.labelAngle):0,b.y+=this.tickLength+5+(0>this.labelAngle?Math.abs(c.textBlock.width*Math.sin(Math.PI/180*this.labelAngle)-c.textBlock.fontSize/2*Math.cos(Math.PI/180*this.labelAngle)):Math.abs(c.textBlock.fontSize/2*Math.cos(Math.PI/180*this.labelAngle))))}else"top"===this._position?(p=1===this.ctx.lineWidth%2?(b.x<<0)+0.5:b.x<<0,this.ctx.beginPath(),this.ctx.moveTo(p,b.y<<0),this.ctx.lineTo(p, b.y-this.tickLength<<0),this.ctx.stroke(),0===this.labelAngle?(b.x-=c.textBlock.width/2,b.y-=this.tickLength+c.textBlock.height-c.textBlock.fontSize/2):(b.x-=0this.chart.plotArea.x1?f(n.startValue)?b.x-=c.textBlock.height-c.textBlock.fontSize/2+n.thickness/2:b.x-=c.textBlock.height/2-c.textBlock.fontSize/2:(c.textBlock.angle= 90,f(n.startValue)?b.x+=c.textBlock.height-c.textBlock.fontSize/2+n.thickness/2:b.x+=c.textBlock.height/2-c.textBlock.fontSize/2),b.y=-90===c.textBlock.angle?"near"===c.stripLine.labelAlign?this.chart.plotArea.y2-3:"center"===c.stripLine.labelAlign?(this.chart.plotArea.y2+this.chart.plotArea.y1+c.textBlock.width)/2:this.chart.plotArea.y1+c.textBlock.width+3:"near"===c.stripLine.labelAlign?this.chart.plotArea.y2-c.textBlock.width-3:"center"===c.stripLine.labelAlign?(this.chart.plotArea.y2+this.chart.plotArea.y1- c.textBlock.width)/2:this.chart.plotArea.y1+3):"top"===this._position?(c.textBlock.maxWidth=this.options.stripLines[g].labelMaxWidth?this.options.stripLines[g].labelMaxWidth:this.chart.plotArea.height-3,c.textBlock.measureText(),b.x-c.textBlock.height-n.thickness/2>this.chart.plotArea.x1?f(n.startValue)?b.x-=c.textBlock.height-c.textBlock.fontSize/2+n.thickness/2:b.x-=c.textBlock.height/2-c.textBlock.fontSize/2:(c.textBlock.angle=90,f(n.startValue)?b.x+=c.textBlock.height-c.textBlock.fontSize/2+n.thickness/ 2:b.x+=c.textBlock.height/2-c.textBlock.fontSize/2),b.y=-90===c.textBlock.angle?"near"===c.stripLine.labelAlign?this.chart.plotArea.y1+c.textBlock.width+3:"center"===c.stripLine.labelAlign?(this.chart.plotArea.y2+this.chart.plotArea.y1+c.textBlock.width)/2:this.chart.plotArea.y2-3:"near"===c.stripLine.labelAlign?this.chart.plotArea.y1+3:"center"===c.stripLine.labelAlign?(this.chart.plotArea.y2+this.chart.plotArea.y1-c.textBlock.width)/2:this.chart.plotArea.y2-c.textBlock.width-3):"left"===this._position? (c.textBlock.maxWidth=this.options.stripLines[g].labelMaxWidth?this.options.stripLines[g].labelMaxWidth:this.chart.plotArea.width-3,c.textBlock.angle=0,c.textBlock.measureText(),b.y-c.textBlock.height-n.thickness/2>this.chart.plotArea.y1?f(n.startValue)?b.y-=c.textBlock.height-c.textBlock.fontSize/2+n.thickness/2:b.y-=c.textBlock.height/2-c.textBlock.fontSize/2:f(n.startValue)?b.y+=c.textBlock.height-c.textBlock.fontSize/2+n.thickness/2:b.y+=c.textBlock.height/2-c.textBlock.fontSize+3,b.x="near"=== c.stripLine.labelAlign?this.chart.plotArea.x1+3:"center"===c.stripLine.labelAlign?(this.chart.plotArea.x2+this.chart.plotArea.x1)/2-c.textBlock.width/2:this.chart.plotArea.x2-c.textBlock.width-3):"right"===this._position&&(c.textBlock.maxWidth=this.options.stripLines[g].labelMaxWidth?this.options.stripLines[g].labelMaxWidth:this.chart.plotArea.width-3,c.textBlock.angle=0,c.textBlock.measureText(),b.y-c.textBlock.height-n.thickness/2>this.chart.plotArea.y1?f(n.startValue)?b.y-=c.textBlock.height-c.textBlock.fontSize/ 2+n.thickness/2:b.y-=c.textBlock.height/2-c.textBlock.fontSize/2:f(n.startValue)?b.y+=c.textBlock.height-c.textBlock.fontSize/2+n.thickness/2:b.y-=c.textBlock.height/2-c.textBlock.fontSize/2+3,b.x="near"===c.stripLine.labelAlign?this.chart.plotArea.x2-c.textBlock.width-3:"center"===c.stripLine.labelAlign?(this.chart.plotArea.x2+this.chart.plotArea.x1)/2-c.textBlock.width/2:this.chart.plotArea.x1+3),c.textBlock.x=b.x,c.textBlock.y=b.y,r.push(c));if(!m){b=!1;this.ctx.save();this.ctx.beginPath();this.ctx.rect(this.chart.plotArea.x1, this.chart.plotArea.y1,this.chart.plotArea.width,this.chart.plotArea.height);this.ctx.clip();for(g=0;gthis.viewportMaximum||isNaN(this.range))||a[e].render(this.maskCtx);this.maskCtx.restore()}};A.prototype.renderCrosshair=function(a,e){isFinite(this.minimum)&&isFinite(this.maximum)&&this.crosshair.render(a,e)};A.prototype.showCrosshair=function(a){f(a)||(athis.viewportMaximum)||("top"===this._position||"bottom"===this._position? this.crosshair.render(this.convertValueToPixel(a),null,a):this.crosshair.render(null,this.convertValueToPixel(a),a))};A.prototype.renderGrid=function(){if(this.gridThickness&&0this.viewportMaximum||this._labels[b].breaksLabelType)||(a.beginPath(),e=this.getPixelCoordinatesOnAxis(this._labels[b].position),e=1===a.lineWidth%2?(e.x<<0)+0.5:e.x<<0,a.moveTo(e,c.y1<<0),a.lineTo(e,c.y2<<0),a.stroke());else if("left"===this._position||"right"===this._position)for(var b=0;bthis.viewportMaximum||this._labels[b].breaksLabelType)||(a.beginPath(),e=this.getPixelCoordinatesOnAxis(this._labels[b].position), e=1===a.lineWidth%2?(e.y<<0)+0.5:e.y<<0,a.moveTo(c.x1<<0,e),a.lineTo(c.x2<<0,e),a.stroke());a.restore()}};A.prototype.renderAxisLine=function(){var a=this.chart.ctx,e=w?this.chart._preRenderCtx:a,c=Math.ceil(this.tickThickness/(this.reversed?-2:2)),b=Math.ceil(this.tickThickness/(this.reversed?2:-2)),g,d;e.save();if("bottom"===this._position||"top"===this._position){if(this.lineThickness){this.reversed?(g=this.lineCoordinates.x2,d=this.lineCoordinates.x1):(g=this.lineCoordinates.x1,d=this.lineCoordinates.x2); e.lineWidth=this.lineThickness;e.strokeStyle=this.lineColor?this.lineColor:"black";e.setLineDash&&e.setLineDash(R(this.lineDashType,this.lineThickness));var k=1===this.lineThickness%2?(this.lineCoordinates.y1<<0)+0.5:this.lineCoordinates.y1<<0;e.beginPath();if(this.scaleBreaks&&!f(this.scaleBreaks.firstBreakIndex))if(f(this.scaleBreaks.lastBreakIndex))g=this.scaleBreaks._appliedBreaks[this.scaleBreaks.firstBreakIndex].endPixel+b;else for(var t=this.scaleBreaks.firstBreakIndex;t<=this.scaleBreaks.lastBreakIndex;t++)e.moveTo(g, k),e.lineTo(this.scaleBreaks._appliedBreaks[t].startPixel+c,k),g=this.scaleBreaks._appliedBreaks[t].endPixel+b;g&&(e.moveTo(g,k),e.lineTo(d,k));e.stroke()}}else if(("left"===this._position||"right"===this._position)&&this.lineThickness){this.reversed?(g=this.lineCoordinates.y1,d=this.lineCoordinates.y2):(g=this.lineCoordinates.y2,d=this.lineCoordinates.y1);e.lineWidth=this.lineThickness;e.strokeStyle=this.lineColor;e.setLineDash&&e.setLineDash(R(this.lineDashType,this.lineThickness));k=1===this.lineThickness% 2?(this.lineCoordinates.x1<<0)+0.5:this.lineCoordinates.x1<<0;e.beginPath();if(this.scaleBreaks&&!f(this.scaleBreaks.firstBreakIndex))if(f(this.scaleBreaks.lastBreakIndex))g=this.scaleBreaks._appliedBreaks[this.scaleBreaks.firstBreakIndex].endPixel+c;else for(t=this.scaleBreaks.firstBreakIndex;t<=this.scaleBreaks.lastBreakIndex;t++)e.moveTo(k,g),e.lineTo(k,this.scaleBreaks._appliedBreaks[t].startPixel+b),g=this.scaleBreaks._appliedBreaks[t].endPixel+c;g&&(e.moveTo(k,g),e.lineTo(k,d));e.stroke()}w&& (a.drawImage(this.chart._preRenderCanvas,0,0,this.chart.width,this.chart.height),this.chart._breaksCanvasCtx&&this.chart._breaksCanvasCtx.drawImage(this.chart._preRenderCanvas,0,0,this.chart.width,this.chart.height),e.clearRect(0,0,this.chart.width,this.chart.height));e.restore()};A.prototype.getPixelCoordinatesOnAxis=function(a){var e={};if("bottom"===this._position||"top"===this._position)e.x=this.convertValueToPixel(a),e.y=this.lineCoordinates.y1;if("left"===this._position||"right"===this._position)e.y= this.convertValueToPixel(a),e.x=this.lineCoordinates.x2;return e};A.prototype.convertPixelToValue=function(a){if("undefined"===typeof a)return null;var e=0,c=0,b,e=!0,g=this.scaleBreaks?this.scaleBreaks._appliedBreaks:[],c="number"===typeof a?a:"left"===this._position||"right"===this._position?a.y:a.x;if(this.logarithmic){a=b=Math.pow(this.logarithmBase,(c-this.conversionParameters.reference)/this.conversionParameters.pixelPerUnit);if(c<=this.conversionParameters.reference===("left"===this._position|| "right"===this._position)!==this.reversed)for(c=0;cg[c].startValue/this.conversionParameters.minimum){b/=g[c].startValue/this.conversionParameters.minimum;if(bg[c].startValue/g[c- 1].endValue){b/=g[c].startValue/g[c-1].endValue;if(bthis.conversionParameters.minimum))if(e)if(g[c].endValue>this.conversionParameters.minimum){if(1 g[c].startValue){a=Math.pow(g[c].endValue/g[c].startValue,Math.log(b)/Math.log(g[c].size));break}else a*=g[c].startValue/this.conversionParameters.minimum*Math.pow(g[c].size,Math.log(g[c].startValue/this.conversionParameters.minimum)/Math.log(g[c].endValue/g[c].startValue))*b,b*=Math.pow(g[c].size,Math.log(this.conversionParameters.minimum/g[c].startValue)/Math.log(g[c].endValue/g[c].startValue));e=!1}else if(b1/g[c].size){a*=Math.pow(g[c].endValue/g[c].startValue,1>=g[c].size?1:Math.log(b)/Math.log(g[c].size))*b;break}else a/=g[c].endValue/g[c].startValue/g[c].size;b*=g[c].size;e=!1}else break;else if(b1/g[c].size){a*=Math.pow(g[c].endValue/g[c].startValue,1>=g[c].size?1:Math.log(b)/Math.log(g[c].size))*b;break}else a/=g[c].endValue/g[c].startValue/g[c].size;b*=g[c].size}else break;e=a*this.viewportMinimum}else{a=b=(c-this.conversionParameters.reference)/ this.conversionParameters.pixelPerUnit;if(c<=this.conversionParameters.reference===("left"===this._position||"right"===this._position)!==this.reversed)for(c=0;c=g[c].size?0:b*(g[c].endValue-g[c].startValue)/g[c].size;break}else a+=g[c].endValue-this.conversionParameters.minimum- g[c].size*(g[c].endValue-this.conversionParameters.minimum)/(g[c].endValue-g[c].startValue),b-=g[c].size*(g[c].endValue-this.conversionParameters.minimum)/(g[c].endValue-g[c].startValue);e=!1}else if(b>g[c].startValue-this.conversionParameters.minimum){b-=g[c].startValue-this.conversionParameters.minimum;if(bg[c].startValue-g[c- 1].endValue){b-=g[c].startValue-g[c-1].endValue;if(bthis.conversionParameters.minimum))if(e)if(g[c].endValue>this.conversionParameters.minimum)if(g[c].size&&this.conversionParameters.minimum+b*(g[c].endValue-g[c].startValue)/g[c].size>g[c].startValue){a=0>=g[c].size?0:b*(g[c].endValue-g[c].startValue)/ g[c].size;break}else a+=g[c].startValue-this.conversionParameters.minimum+g[c].size*(this.conversionParameters.minimum-g[c].startValue)/(g[c].endValue-g[c].startValue),b+=g[c].size*(this.conversionParameters.minimum-g[c].startValue)/(g[c].endValue-g[c].startValue),e=!1;else if(b-1*g[c].size){a+=(g[c].endValue-g[c].startValue)*(0===g[c].size?1:b/g[c].size)+b;break}else a-=g[c].endValue-g[c].startValue- g[c].size;b+=g[c].size;e=!1}else break;else if(b-1*g[c].size){a+=(g[c].endValue-g[c].startValue)*(0===g[c].size?1:b/g[c].size)+b;break}else a-=g[c].endValue-g[c].startValue-g[c].size;b+=g[c].size}else break;e=this.conversionParameters.minimum+a}return e};A.prototype.convertValueToPixel=function(a){a=this.getApparentDifference(this.conversionParameters.minimum,a,a);return this.logarithmic?this.conversionParameters.reference+ this.conversionParameters.pixelPerUnit*Math.log(a/this.conversionParameters.minimum)/this.conversionParameters.lnLogarithmBase+0.5<<0:"axisX"===this.type?this.conversionParameters.reference+this.conversionParameters.pixelPerUnit*(a-this.conversionParameters.minimum)+0.5<<0:this.conversionParameters.reference+this.conversionParameters.pixelPerUnit*(a-this.conversionParameters.minimum)+0.5};A.prototype.getApparentDifference=function(a,e,c,b){var g=this.scaleBreaks?this.scaleBreaks._appliedBreaks:[]; if(this.logarithmic){c=f(c)?e/a:c;for(var d=0;dg[d].endValue||(a<=g[d].startValue&&e>=g[d].endValue?c=c/g[d].endValue*g[d].startValue*g[d].size:a>=g[d].startValue&&e>=g[d].endValue?c=c/g[d].endValue*a*Math.pow(g[d].size,Math.log(g[d].endValue/a)/Math.log(g[d].endValue/g[d].startValue)):a<=g[d].startValue&&e<=g[d].endValue?c=c/e*g[d].startValue*Math.pow(g[d].size,Math.log(e/g[d].startValue)/Math.log(g[d].endValue/g[d].startValue)):!b&&(a>g[d].startValue&&eg[d].endValue||(a<=g[d].startValue&&e>=g[d].endValue?c=c-g[d].endValue+g[d].startValue+g[d].size:a>g[d].startValue&&e>=g[d].endValue?c=c-g[d].endValue+a+g[d].size*(g[d].endValue-a)/(g[d].endValue-g[d].startValue):a<=g[d].startValue&&eg[d].startValue&& ea[g].endValue||(this.viewportMinimum>=a[g].startValue&&this.viewportMaximum<=a[g].endValue?c=0:this.viewportMinimum<=a[g].startValue&& this.viewportMaximum>=a[g].endValue?(b=b/a[g].endValue*a[g].startValue,c=0a[g].startValue&&this.viewportMaximum>=a[g].endValue?(b=b/a[g].endValue*this.viewportMinimum,c=0a[g].endValue||(this.viewportMinimum>=a[g].startValue&&this.viewportMaximum<=a[g].endValue?c=0:this.viewportMinimum<=a[g].startValue&&this.viewportMaximum>=a[g].endValue?(b=b-a[g].endValue+a[g].startValue,c=0a[g].startValue&&this.viewportMaximum>=a[g].endValue?(b=b-a[g].endValue+this.viewportMinimum,c=0this.maxWidth?8:6);var a=Math.max(b,Math.floor(this.maxWidth/a)),g,d,k,b=0;!f(this.options.viewportMinimum)&&(!f(this.options.viewportMaximum)&&this.options.viewportMinimum>=this.options.viewportMaximum)&&(this.viewportMinimum=this.viewportMaximum=null); if(f(this.options.viewportMinimum)&&!f(this.sessionVariables.newViewportMinimum)&&!isNaN(this.sessionVariables.newViewportMinimum))this.viewportMinimum=this.sessionVariables.newViewportMinimum;else if(null===this.viewportMinimum||isNaN(this.viewportMinimum))this.viewportMinimum=this.minimum;if(f(this.options.viewportMaximum)&&!f(this.sessionVariables.newViewportMaximum)&&!isNaN(this.sessionVariables.newViewportMaximum))this.viewportMaximum=this.sessionVariables.newViewportMaximum;else if(null===this.viewportMaximum|| isNaN(this.viewportMaximum))this.viewportMaximum=this.maximum;if(this.scaleBreaks)for(b=0;b=this.scaleBreaks._appliedBreaks[b].startValue||!f(this.options.minimum)&&this.options.minimum>=this.scaleBreaks._appliedBreaks[b].startValue||!f(this.options.viewportMinimum)&&this.viewportMinimum>=this.scaleBreaks._appliedBreaks[b].startValue)&&(!f(this.sessionVariables.newViewportMaximum)&& this.sessionVariables.newViewportMaximum<=this.scaleBreaks._appliedBreaks[b].endValue||!f(this.options.maximum)&&this.options.maximum<=this.scaleBreaks._appliedBreaks[b].endValue||!f(this.options.viewportMaximum)&&this.viewportMaximum<=this.scaleBreaks._appliedBreaks[b].endValue)){this.scaleBreaks._appliedBreaks.splice(b,1);break}if("axisX"===this.type){if(this.dataSeries&&0d?(b=Math.min(0.01*Math.abs(this.getApparentDifference(d,g,null,!0)),5),0<=d?g=d-b:d=isFinite(g)?g+b:0):(b=Math.min(0.01*Math.abs(this.getApparentDifference(g,d,null,!0)),0.05),0!==d&&(d+=b),0!==g&&(g-= b)),k=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:1d&&(d=0));b=this.getApparentDifference(isNaN(this.viewportMinimum)||null===this.viewportMinimum?g:this.viewportMinimum,isNaN(this.viewportMaximum)||null===this.viewportMaximum?d:this.viewportMaximum,null,!0);if("axisX"===this.type&&c){this.valueType= "dateTime";this.intervalType||(b/1<=a?(this.interval=1,this.intervalType="millisecond"):b/2<=a?(this.interval=2,this.intervalType="millisecond"):b/5<=a?(this.interval=5,this.intervalType="millisecond"):b/10<=a?(this.interval=10,this.intervalType="millisecond"):b/20<=a?(this.interval=20,this.intervalType="millisecond"):b/50<=a?(this.interval=50,this.intervalType="millisecond"):b/100<=a?(this.interval=100,this.intervalType="millisecond"):b/200<=a?(this.interval=200,this.intervalType="millisecond"): b/250<=a?(this.interval=250,this.intervalType="millisecond"):b/300<=a?(this.interval=300,this.intervalType="millisecond"):b/400<=a?(this.interval=400,this.intervalType="millisecond"):b/500<=a?(this.interval=500,this.intervalType="millisecond"):b/(1*Y.secondDuration)<=a?(this.interval=1,this.intervalType="second"):b/(2*Y.secondDuration)<=a?(this.interval=2,this.intervalType="second"):b/(5*Y.secondDuration)<=a?(this.interval=5,this.intervalType="second"):b/(10*Y.secondDuration)<=a?(this.interval=10, this.intervalType="second"):b/(15*Y.secondDuration)<=a?(this.interval=15,this.intervalType="second"):b/(20*Y.secondDuration)<=a?(this.interval=20,this.intervalType="second"):b/(30*Y.secondDuration)<=a?(this.interval=30,this.intervalType="second"):b/(1*Y.minuteDuration)<=a?(this.interval=1,this.intervalType="minute"):b/(2*Y.minuteDuration)<=a?(this.interval=2,this.intervalType="minute"):b/(5*Y.minuteDuration)<=a?(this.interval=5,this.intervalType="minute"):b/(10*Y.minuteDuration)<=a?(this.interval= 10,this.intervalType="minute"):b/(15*Y.minuteDuration)<=a?(this.interval=15,this.intervalType="minute"):b/(20*Y.minuteDuration)<=a?(this.interval=20,this.intervalType="minute"):b/(30*Y.minuteDuration)<=a?(this.interval=30,this.intervalType="minute"):b/(1*Y.hourDuration)<=a?(this.interval=1,this.intervalType="hour"):b/(2*Y.hourDuration)<=a?(this.interval=2,this.intervalType="hour"):b/(3*Y.hourDuration)<=a?(this.interval=3,this.intervalType="hour"):b/(6*Y.hourDuration)<=a?(this.interval=6,this.intervalType= "hour"):b/(1*Y.dayDuration)<=a?(this.interval=1,this.intervalType="day"):b/(2*Y.dayDuration)<=a?(this.interval=2,this.intervalType="day"):b/(4*Y.dayDuration)<=a?(this.interval=4,this.intervalType="day"):b/(1*Y.weekDuration)<=a?(this.interval=1,this.intervalType="week"):b/(2*Y.weekDuration)<=a?(this.interval=2,this.intervalType="week"):b/(3*Y.weekDuration)<=a?(this.interval=3,this.intervalType="week"):b/(1*Y.monthDuration)<=a?(this.interval=1,this.intervalType="month"):b/(2*Y.monthDuration)<=a?(this.interval= 2,this.intervalType="month"):b/(3*Y.monthDuration)<=a?(this.interval=3,this.intervalType="month"):b/(6*Y.monthDuration)<=a?(this.interval=6,this.intervalType="month"):(this.interval=b/(1*Y.yearDuration)<=a?1:b/(2*Y.yearDuration)<=a?2:b/(4*Y.yearDuration)<=a?4:Math.floor(A.getNiceNumber(b/(a-1),!0)/Y.yearDuration),this.intervalType="year"));if(null===this.viewportMinimum||isNaN(this.viewportMinimum))this.viewportMinimum=g-k/2;if(null===this.viewportMaximum||isNaN(this.viewportMaximum))this.viewportMaximum= d+k/2;e?this.autoValueFormatString="MMM DD YYYY HH:mm":"year"===this.intervalType?this.autoValueFormatString="YYYY":"month"===this.intervalType?this.autoValueFormatString="MMM YYYY":"week"===this.intervalType?this.autoValueFormatString="MMM DD YYYY":"day"===this.intervalType?this.autoValueFormatString="MMM DD YYYY":"hour"===this.intervalType?this.autoValueFormatString="hh:mm TT":"minute"===this.intervalType?this.autoValueFormatString="hh:mm TT":"second"===this.intervalType?this.autoValueFormatString= "hh:mm:ss TT":"millisecond"===this.intervalType&&(this.autoValueFormatString="fff'ms'");this.valueFormatString||(this.valueFormatString=this.autoValueFormatString)}else{this.intervalType="number";b=A.getNiceNumber(b,!1);this.interval=this.options&&0d?(b=Math.min(0.01*Math.abs(this.getApparentDifference(d,g,null,!0)),5),0<=d?g=d-b:d=isFinite(g)?g+b:0):(b=Math.min(0.01*Math.abs(this.getApparentDifference(g,d,null,!0)),0.05),0!==d&&(d+=b),0!==g&&(g-=b)):(d="undefined"===typeof this.options.interval?-Infinity:this.options.interval,g="undefined"!==typeof this.options.interval||isFinite(this.dataInfo.minDiff)?0:Infinity),k=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:1d&&(d=0)),Math.abs(this.getApparentDifference(g,d,null,!0)),"axisX"===this.type&&c){this.valueType="dateTime";if(null===this.minimum||isNaN(this.minimum))this.minimum=g-k/2,this.minimum=Math.min(this.minimum,null===this.sessionVariables.viewportMinimum||isNaN(this.sessionVariables.viewportMinimum)?Infinity:this.sessionVariables.viewportMinimum);if(null===this.maximum||isNaN(this.maximum))this.maximum= d+k/2,this.maximum=Math.max(this.maximum,null===this.sessionVariables.viewportMaximum||isNaN(this.sessionVariables.viewportMaximum)?-Infinity:this.sessionVariables.viewportMaximum)}else this.intervalType=this.valueType="number",null===this.minimum&&(this.minimum="axisX"===this.type?g-k/2:Math.floor(g/this.interval)*this.interval,this.minimum=Math.min(this.minimum,null===this.sessionVariables.viewportMinimum||isNaN(this.sessionVariables.viewportMinimum)?Infinity:this.sessionVariables.viewportMinimum)), null===this.maximum&&(this.maximum="axisX"===this.type?d+k/2:Math.ceil(d/this.interval)*this.interval,this.maximum=Math.max(this.maximum,null===this.sessionVariables.viewportMaximum||isNaN(this.sessionVariables.viewportMaximum)?-Infinity:this.sessionVariables.viewportMaximum)),0===this.maximum&&0===this.minimum&&(0===this.options.minimum?this.maximum+=10:0===this.options.maximum&&(this.minimum-=10));f(this.sessionVariables.newViewportMinimum)&&(this.viewportMinimum=Math.max(this.viewportMinimum,this.minimum)); f(this.sessionVariables.newViewportMaximum)&&(this.viewportMaximum=Math.min(this.viewportMaximum,this.maximum));this.range=this.viewportMaximum-this.viewportMinimum;this.intervalStartPosition="axisX"===this.type&&c?this.getLabelStartPoint(new Date(this.viewportMinimum),this.intervalType,this.interval):Math.floor((this.viewportMinimum+0.2*this.interval)/this.interval)*this.interval;this.valueFormatString||(this.valueFormatString=A.generateValueFormatString(this.range,2))}};A.prototype.calculateLogarithmicAxisParameters= function(){var a=this.chart.layoutManager.getFreeSpace(),e=Math.log(this.logarithmBase),c;"bottom"===this._position||"top"===this._position?(this.maxWidth=a.width,this.maxHeight=a.height):(this.maxWidth=a.height,this.maxHeight=a.width);var a="axisX"===this.type?500>this.maxWidth?7:Math.max(7,Math.floor(this.maxWidth/100)):Math.max(Math.floor(this.maxWidth/50),3),b,g,d,k;k=1;if(null===this.viewportMinimum||isNaN(this.viewportMinimum))this.viewportMinimum=this.minimum;if(null===this.viewportMaximum|| isNaN(this.viewportMaximum))this.viewportMaximum=this.maximum;if(this.scaleBreaks)for(k=0;k=this.scaleBreaks._appliedBreaks[k].startValue||!f(this.options.minimum)&&this.options.minimum>=this.scaleBreaks._appliedBreaks[k].startValue||!f(this.options.viewportMinimum)&&this.viewportMinimum>=this.scaleBreaks._appliedBreaks[k].startValue)&&(!f(this.sessionVariables.newViewportMaximum)&& this.sessionVariables.newViewportMaximum<=this.scaleBreaks._appliedBreaks[k].endValue||!f(this.options.maximum)&&this.options.maximum<=this.scaleBreaks._appliedBreaks[k].endValue||!f(this.options.viewportMaximum)&&this.viewportMaximum<=this.scaleBreaks._appliedBreaks[k].endValue)){this.scaleBreaks._appliedBreaks.splice(k,1);break}"axisX"===this.type?(b=null!==this.viewportMinimum?this.viewportMinimum:this.dataInfo.viewPortMin,g=null!==this.viewportMaximum?this.viewportMaximum:this.dataInfo.viewPortMax, 1===g/b&&(k=Math.pow(this.logarithmBase,"undefined"===typeof this.options.interval?0.4:this.options.interval),g*=k,b/=k),d=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:g/b>this.logarithmBase?g/b*Math.pow(this.logarithmBase,0.5):this.logarithmBase):"axisY"===this.type&&(b=null!==this.viewportMinimum?this.viewportMinimum:this.dataInfo.viewPortMin,g=null!==this.viewportMaximum?this.viewportMaximum:this.dataInfo.viewPortMax,0>=b&&!isFinite(g)?(g="undefined"===typeof this.options.interval?0: this.options.interval,b=1):0>=b?b=g:isFinite(g)||(g=b),1===b&&1===g?(g*=this.logarithmBase-1/this.logarithmBase,b=1):1===g/b?(k=Math.min(g*Math.pow(this.logarithmBase,0.01),Math.pow(this.logarithmBase,5)),g*=k,b/=k):b>g?(k=Math.min(b/g*Math.pow(this.logarithmBase,0.01),Math.pow(this.logarithmBase,5)),1<=g?b=g/k:g=b*k):(k=Math.min(g/b*Math.pow(this.logarithmBase,0.01),Math.pow(this.logarithmBase,0.04)),1!==g&&(g*=k),1!==b&&(b/=k)),d=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:g/b>this.logarithmBase? g/b*Math.pow(this.logarithmBase,0.5):this.logarithmBase,this.includeZero&&(null===this.viewportMinimum||isNaN(this.viewportMinimum))&&1g&&(g=1));k=(isNaN(this.viewportMaximum)||null===this.viewportMaximum?g:this.viewportMaximum)/(isNaN(this.viewportMinimum)||null===this.viewportMinimum?b:this.viewportMinimum);var t=(isNaN(this.viewportMaximum)||null===this.viewportMaximum?g:this.viewportMaximum)-(isNaN(this.viewportMinimum)|| null===this.viewportMinimum?b:this.viewportMinimum);this.intervalType="number";k=Math.pow(this.logarithmBase,A.getNiceNumber(Math.abs(Math.log(k)/e),!1));this.options&&0this.logarithmBase? g/b*Math.pow(this.logarithmBase,0.5):this.logarithmBase):"axisY"===this.type&&(b=null!==this.minimum?this.minimum:this.dataInfo.min,g=null!==this.maximum?this.maximum:this.dataInfo.max,isFinite(b)||isFinite(g)?1===b&&1===g?(g*=this.logarithmBase,b/=this.logarithmBase):1===g/b?(k=Math.pow(this.logarithmBase,this.interval),g*=k,b/=k):b>g?(k=Math.min(0.01*(b/g),5),1<=g?b=g/k:g=b*k):(k=Math.min(g/b*Math.pow(this.logarithmBase,0.01),Math.pow(this.logarithmBase,0.04)),1!==g&&(g*=k),1!==b&&(b/=k)):(g="undefined"=== typeof this.options.interval?0:this.options.interval,b=1),d=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:g/b>this.logarithmBase?g/b*Math.pow(this.logarithmBase,0.5):this.logarithmBase,this.includeZero&&(null===this.minimum||isNaN(this.minimum))&&1g&&(g=1)),this.intervalType="number",null===this.minimum&&(this.minimum="axisX"===this.type?b/Math.sqrt(d):Math.pow(this.logarithmBase,this.interval*Math.floor(Math.log(b)/ e/this.interval)),f(null===this.sessionVariables.viewportMinimum||isNaN(this.sessionVariables.viewportMinimum)?"undefined"===typeof this.sessionVariables.newViewportMinimum?Infinity:this.sessionVariables.newViewportMinimum:this.sessionVariables.viewportMinimum)||(this.minimum=Math.min(this.minimum,null===this.sessionVariables.viewportMinimum||isNaN(this.sessionVariables.viewportMinimum)?"undefined"===typeof this.sessionVariables.newViewportMinimum?Infinity:this.sessionVariables.newViewportMinimum: this.sessionVariables.viewportMinimum))),null===this.maximum&&(this.maximum="axisX"===this.type?g*Math.sqrt(d):Math.pow(this.logarithmBase,this.interval*Math.ceil(Math.log(g)/e/this.interval)),f(null===this.sessionVariables.viewportMaximum||isNaN(this.sessionVariables.viewportMaximum)?"undefined"===typeof this.sessionVariables.newViewportMaximum?0:this.sessionVariables.newViewportMaximum:this.sessionVariables.viewportMaximum)||(this.maximum=Math.max(this.maximum,null===this.sessionVariables.viewportMaximum|| isNaN(this.sessionVariables.viewportMaximum)?"undefined"===typeof this.sessionVariables.newViewportMaximum?0:this.sessionVariables.newViewportMaximum:this.sessionVariables.viewportMaximum))),1===this.maximum&&1===this.minimum&&(1===this.options.minimum?this.maximum*=this.logarithmBase-1/this.logarithmBase:1===this.options.maximum&&(this.minimum/=this.logarithmBase-1/this.logarithmBase));this.viewportMinimum=Math.max(this.viewportMinimum,this.minimum);this.viewportMaximum=Math.min(this.viewportMaximum, this.maximum);this.viewportMinimum>this.viewportMaximum&&(!this.options.viewportMinimum&&!this.options.minimum||this.options.viewportMaximum||this.options.maximum?this.options.viewportMinimum||this.options.minimum||!this.options.viewportMaximum&&!this.options.maximum||(this.viewportMinimum=this.minimum=(this.options.viewportMaximum||this.options.maximum)/Math.pow(this.logarithmBase,2*Math.ceil(this.interval))):this.viewportMaximum=this.maximum=this.options.viewportMinimum||this.options.minimum);b= Math.pow(this.logarithmBase,Math.floor(Math.log(this.viewportMinimum)/(e*this.interval)+0.2)*this.interval);this.range=this.viewportMaximum/this.viewportMinimum;this.noTicks=a;if(!this.options.interval&&this.rangethis.viewportMaximum||3>a?2:3)){for(e=Math.floor(this.viewportMinimum/c+0.5)*c;ethis.interval&& (this.interval=c,b=Math.pow(this.logarithmBase,Math.floor(Math.log(this.viewportMinimum)/(e*this.interval)+0.2)*this.interval))),this.equidistantInterval=!0,this.intervalStartPosition=b;if(!this.valueFormatString&&(this.valueFormatString="#,##0.##",1>this.viewportMinimum)){e=Math.floor(Math.abs(Math.log(this.viewportMinimum)/Math.LN10))+2;if(isNaN(e)||!isFinite(e))e=2;if(2a&&(b+=Math.floor(Math.abs(Math.log(a)/ Math.LN10)),isNaN(b)||!isFinite(b))&&(b=e);for(var g=0;gc?1>=b?1:5>=b?5:10:Math.max(Math.floor(b),1);return-20>c?Number(b*Math.pow(10,c)):Number((b*Math.pow(10,c)).toFixed(20))};A.getNiceNumber=function(a,e){var c=Math.floor(Math.log(a)/Math.LN10),b=a/Math.pow(10,c),b=e?1.5>b?1:3>b?2:7>b?5:10:1>=b?1:2>=b?2:5>=b?5:10;return-20>c?Number(b*Math.pow(10,c)):Number((b*Math.pow(10,c)).toFixed(20))}; A.prototype.getLabelStartPoint=function(){var a=Y[this.intervalType+"Duration"]*this.interval,a=new Date(Math.floor(this.viewportMinimum/a)*a);if("millisecond"!==this.intervalType)if("second"===this.intervalType)0=a||"bottom"===this.scaleBreaks.parent._position&&0<=a)this.ctx.lineTo(b,k),this.ctx.lineTo(f,k),this.ctx.lineTo(f,g);else if("wavy"===this.type){t=b;m=g;d=0.5;n=(k-m)/a/3;for(var q=0;q=a||"right"===this.scaleBreaks.parent._position&&0<=a)this.ctx.lineTo(f,g),this.ctx.lineTo(f,k),this.ctx.lineTo(b,k);else if("wavy"===this.type){t=b;m=g;d=0.5;n= (f-t)/a/3;for(q=0;q=e.axisY[b].viewportMinimum&& a<=e.axisY[b].viewportMaximum?a:null);else if("top"===this.parent._position)for(b=0;b=e.axisY2[b].viewportMinimum&&a<=e.axisY2[b].viewportMaximum?a:null);else if("left"===this.parent._position)for(b=0;b=e.axisX[b].viewportMinimum&&a<=e.axisX[b].viewportMaximum?a:null);else{if("right"===this.parent._position)for(b=0;b=e.axisX2[b].viewportMinimum&&a<=e.axisX2[b].viewportMaximum?a:null)}else if("bottom"===this.parent._position)for(b=0;b=e.axisX[b].viewportMinimum&&a<=e.axisX[b].viewportMaximum?a:null);else if("top"===this.parent._position)for(b=0;b=e.axisX2[b].viewportMinimum&&a<=e.axisX2[b].viewportMaximum?a:null); else if("left"===this.parent._position)for(b=0;b=e.axisY[b].viewportMinimum&&a<=e.axisY[b].viewportMaximum?a:null);else if("right"===this.parent._position)for(b=0;b=e.axisY2[b].viewportMinimum&&a<=e.axisY2[b].viewportMaximum?a:null);for(b=0;b=e.axisX[b].viewportMinimum&&a<=e.axisX[b].viewportMaximum)&&(e.axisX[b].showCrosshair(a),e.axisX[b].crosshair._updatedValue=a,this===e.axisX[b].crosshair&&(c=!0));for(b=0;b=e.axisX2[b].viewportMinimum&&a<=e.axisX2[b].viewportMaximum)&&(e.axisX2[b].showCrosshair(a),e.axisX2[b].crosshair._updatedValue=a,this===e.axisX2[b].crosshair&&(c=!0));for(b=0;b=e.axisY[b].viewportMinimum&&a<=e.axisY[b].viewportMaximum)&&(e.axisY[b].showCrosshair(a),e.axisY[b].crosshair._updatedValue=a,this===e.axisY[b].crosshair&&(c=!0));for(b=0;b=e.axisY2[b].viewportMinimum&&a<=e.axisY2[b].viewportMaximum)&&(e.axisY2[b].showCrosshair(a),e.axisY2[b].crosshair._updatedValue=a,this===e.axisY2[b].crosshair&& (c=!0));this.chart.toolTip&&this.chart.toolTip._entries&&this.chart.toolTip.highlightObjects(this.chart.toolTip._entries);return c};Z.prototype.hide=function(){this.chart.resetOverlayedCanvas();this.chart.renderCrosshairs(this.parent);this._hidden=!0};Z.prototype.render=function(a,e,c){var b,d,l,k,t=null,r=null,m=null,n="";this.valueFormatString||("dateTime"===this.parent.valueType?this.valueFormatString=this.parent.valueFormatString:(m=0,m="xySwapped"===this.chart.plotInfo.axisPlacement?50this.parent.range?2:Math.floor(Math.abs(Math.log(this.parent.range)/Math.LN10))+(5>this.parent.range?2:10>this.parent.range?1:0):50this.parent.range?2:10>this.parent.range?1:0),this.valueFormatString=A.generateValueFormatString(this.parent.range,m)));var p=null===this.opacity?1:this.opacity,q=Math.abs("pixel"===this._thicknessType?this.thickness:this.parent.conversionParameters.pixelPerUnit* this.thickness),h=this.chart.overlaidCanvasCtx,x=h.globalAlpha;h.beginPath();h.strokeStyle=this.color;h.lineWidth=q;h.save();this.labelFontSize=Math.abs(f(this.options.labelFontSize)?this.parent.labelFontSize:this.labelFontSize);this.labelMaxWidth=f(this.options.labelMaxWidth)?0.3*this.chart.width:this.labelMaxWidth;this.labelMaxHeight=f(this.options.labelWrap)||this.labelWrap?0.3*this.chart.height:2*this.labelFontSize;0this.chart.bounds.x2?m.x=this.chart.bounds.x2-m.width:m.xthis.chart.bounds.y2?m.y=this.chart.bounds.y2-m.height:m.ythis.chart.bounds.y2&&(m.y=this.chart.bounds.y2-m.measureText().height+m.fontSize/2);"left"=== this.parent._position?m.x=this.parent.lineCoordinates.x2-m.measureText().width:"right"===this.parent._position&&(m.x=this.parent.lineCoordinates.x2)}}else if("bottom"===this.parent._position||"top"===this.parent._position){s=this.parent.convertPixelToValue({x:a});for(u=0;uthis.chart.bounds.x2&&(m.x=this.chart.bounds.x2-m.width);m.xthis.chart.bounds.y2&&(m.y=this.chart.bounds.y2-m.measureText().height+m.fontSize/2);"left"===this.parent._position?m.x=this.parent.lineCoordinates.x2- m.measureText().width:"right"===this.parent._position&&(m.x=this.parent.lineCoordinates.x2)}n=null;h.globalAlpha=p;if("bottom"===this.parent._position||"top"===this.parent._position)"top"===this.parent._position&&m.y-m.fontSize/2this.chart.bounds.y2&&(m.y=this.chart.bounds.y2-m.height+m.fontSize/2+2),this.value>=Math.min(this.parent.viewportMinimum, this.parent.viewportMaximum)&&this.value<=Math.max(this.parent.viewportMinimum,this.parent.viewportMaximum)&&0this.chart.bounds.x2&&(m.x=this.chart.bounds.x2-m.measureText().width),this.value>=Math.min(this.parent.viewportMinimum, this.parent.viewportMaximum)&&this.value<=Math.max(this.parent.viewportMinimum,this.parent.viewportMaximum)&&0this.chart.bounds.y2&&(m.y=this.chart.bounds.y2-m.measureText().height+m.fontSize/2);"left"===this.parent._position?m.x=this.parent.lineCoordinates.x1-m.measureText().width:"right"===this.parent._position&&(m.x=this.parent.lineCoordinates.x2)}else{if("bottom"===this.parent._position||"top"===this.parent._position)m.text=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent.options,crosshair:this.options,value:f(c)?this.parent.convertPixelToValue(a):c}):f(this.options.label)? ha(f(c)?this.parent.convertPixelToValue(a):c,this.valueFormatString,this.chart._cultureInfo):this.label,m.x=b-m.measureText().width/2,m.x+m.width>this.chart.bounds.x2&&(m.x=this.chart.bounds.x2-m.width),m.xthis.chart.bounds.x2&&(m.x=this.chart.bounds.x2-m.width);m.xthis.chart.bounds.y2&&(m.y=this.chart.bounds.y2-m.measureText().height+m.fontSize/2),"left"===this.parent._position?m.x=this.parent.lineCoordinates.x2-m.measureText().width:"right"===this.parent._position&&(m.x=this.parent.lineCoordinates.x2);"left"===this.parent._position&&m.xthis.chart.bounds.x2?m.x=this.chart.bounds.x2-m.measureText().width:"top"=== this.parent._position&&m.y-m.fontSize/2this.chart.bounds.y2&&(m.y=this.chart.bounds.y2-m.height+m.fontSize/2+2);h.globalAlpha=p;0=Math.min(this.parent.viewportMinimum,this.parent.viewportMaximum)&&this.value<=Math.max(this.parent.viewportMinimum,this.parent.viewportMaximum)&& (f(this._textBlock)||(f(this._textBlock.text)||!("number"===typeof this._textBlock.text.valueOf()||0(new Date).getTime()-this._lastUpdated||(this._lastUpdated=(new Date).getTime(),this.chart.resetOverlayedCanvas(), this._updateToolTip(a,e),this.enabled&&(this._updatedEventParameters&&!isNaN(this._prevX)&&!isNaN(this._prevY))&&this.dispatchEvent("updated",this._updatedEventParameters,this))};ma.prototype._updateToolTip=function(a,e,c){c="undefined"===typeof c?!0:c;this._updateOptions();this.container||this._initialize();this.enabled||this.hide();if(!this.chart.disableToolTip){if("undefined"===typeof a||"undefined"===typeof e){if(isNaN(this._prevX)||isNaN(this._prevY))return;a=this._prevX;e=this._prevY}else this._prevX= a,this._prevY=e;var b=null,d=null,l=[],k=0;if(this.shared&&this.enabled&&"none"!==this.chart.plotInfo.axisPlacement){var t=[];if(this.chart.axisX)for(var r=0;rm.dataSeries.axisY.viewportMaximum&&c++;c-m.dataPoint.y.length&&l.push(m)}else"column"===d.type||"bar"===d.type?0>m.dataPoint.y?0>m.dataSeries.axisY.viewportMinimum&&m.dataSeries.axisY.viewportMaximum>=m.dataPoint.y&&l.push(m):m.dataSeries.axisY.viewportMinimum<=m.dataPoint.y&&0<=m.dataSeries.axisY.viewportMaximum&&l.push(m):"bubble"===d.type?(c=this.chart._eventManager.objectMap[d.dataPointIds[m.index]].size/2,m.dataPoint.y>=m.dataSeries.axisY.viewportMinimum- c&&m.dataPoint.y<=m.dataSeries.axisY.viewportMaximum+c&&l.push(m)):"waterfall"===d.type?(c=0,m.cumulativeSumYStartValuem.dataSeries.axisY.viewportMaximum&&c++,m.cumulativeSumm.dataSeries.axisY.viewportMaximum&&c++,2>c&&-2=m.dataSeries.axisY.viewportMinimum&&m.dataPoint.y<= m.dataSeries.axisY.viewportMaximum)&&l.push(m);else l.push(m)}}if(0a&&(a+=this.container.clientWidth+20);a+this.container.clientWidth>Math.max(this.chart.container.clientWidth,this.chart.width)&&(a=Math.max(0,Math.max(this.chart.container.clientWidth,this.chart.width)-this.container.clientWidth));e=1!==l.length||this.shared||"line"!==l[0].dataSeries.type&&"stepLine"!==l[0].dataSeries.type&&"spline"!==l[0].dataSeries.type&&"area"!== l[0].dataSeries.type&&"stepArea"!==l[0].dataSeries.type&&"splineArea"!==l[0].dataSeries.type?"bar"===l[0].dataSeries.type||"rangeBar"===l[0].dataSeries.type||"stackedBar"===l[0].dataSeries.type||"stackedBar100"===l[0].dataSeries.type?l[0].dataSeries.axisX.convertValueToPixel(l[0].dataPoint.x):e:l[0].dataSeries.axisY.convertValueToPixel(l[0].dataPoint.y);e=-e+10;0":"X:{axisXIndex}
":""),f+=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"{name}:  {y}", t=c.axisXIndex):"bubble"===c.type?(this.chart.axisX&&1":"X:{axisXIndex}
":""),f+=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"{name}:  {y},   {z}"):"rangeColumn"===c.type||"rangeBar"===c.type||"rangeArea"===c.type||"rangeSplineArea"===c.type|| "error"===c.type?(this.chart.axisX&&1":"X:{axisXIndex}
":""),f+=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"{name}:  {y[0]}, {y[1]}"):"candlestick"===c.type||"ohlc"===c.type?(this.chart.axisX&&1":"X:{axisXIndex}
":""),f+=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"{name}:
Open:   {y[0]}
High:    {y[1]}
Low:   {y[2]}
Close:   {y[3]}"):"boxAndWhisker"===c.type&&(this.chart.axisX&&1":"X:{axisXIndex}
":""),f+=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"{name}:
Minimum:  {y[0]}
Q1:            {y[1]}
Q2:            {y[4]}
Q3:            {y[2]}
Maximum:  {y[3]}"), null===e&&(e=""),c.visible&&(!0===this.reversed?(e=this.chart.replaceKeywordsWithValue(f,b,c,d)+e,k"+e)):(e+=this.chart.replaceKeywordsWithValue(f,b,c,d),k"))))}null!==e&&(e=r+e)}else{c=a[0].dataSeries;b=a[0].dataPoint;d=a[0].index;if(null===b.toolTipContent||"undefined"===typeof b.toolTipContent&&null===c.options.toolTipContent)return null;"line"===c.type||"stepLine"===c.type||"spline"===c.type||"area"===c.type||"stepArea"===c.type||"splineArea"===c.type|| "column"===c.type||"bar"===c.type||"scatter"===c.type||"stackedColumn"===c.type||"stackedColumn100"===c.type||"stackedBar"===c.type||"stackedBar100"===c.type||"stackedArea"===c.type||"stackedArea100"===c.type||"waterfall"===c.type?f=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:""+(b.label?"{label}":"{x}")+":  {y}":"bubble"===c.type? f=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:""+(b.label?"{label}":"{x}")+":  {y},   {z}":"pie"===c.type||"doughnut"===c.type||"funnel"===c.type||"pyramid"===c.type?f=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:""+(b.name?"{name}:  ":b.label?"{label}:  ":"")+"{y}":"rangeColumn"===c.type||"rangeBar"===c.type||"rangeArea"===c.type||"rangeSplineArea"===c.type||"error"===c.type?f=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:""+(b.label?"{label}":"{x}")+" :  {y[0]},  {y[1]}":"candlestick"=== c.type||"ohlc"===c.type?f=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:""+(b.label?"{label}":"{x}")+"
Open:   {y[0]}
High:    {y[1]}
Low:     {y[2]}
Close:   {y[3]}":"boxAndWhisker"===c.type&&(f=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&& "function"!==typeof this.content?this.content:""+(b.label?"{label}":"{x}")+"
Minimum:  {y[0]}
Q1:            {y[1]}
Q2:            {y[4]}
Q3:            {y[2]}
Maximum:  {y[3]}");null===e&&(e="");e+=this.chart.replaceKeywordsWithValue(f, b,c,d)}return e};ma.prototype.enableAnimation=function(){if(!this.container.style.WebkitTransition){var a=this.getContainerTransition(this.containerTransitionDuration);this.container.style.WebkitTransition=a;this.container.style.MsTransition=a;this.container.style.transition=a;this.container.style.MozTransition=this.mozContainerTransition}};ma.prototype.disableAnimation=function(){this.container.style.WebkitTransition&&(this.container.style.WebkitTransition="",this.container.style.MozTransition="", this.container.style.MsTransition="",this.container.style.transition="")};ma.prototype.hide=function(a){this.container&&(this.container.style.display="none",this.currentSeriesIndex=-1,this._entries=this._dataSeriesIndex=this._xValue=null,this._prevY=this._prevX=NaN,this._updatedEventParameters=null,("undefined"===typeof a||a)&&this.chart.resetOverlayedCanvas())};ma.prototype.show=function(a,d,c){this._updateToolTip(a,d,"undefined"===typeof c?!1:c)};ma.prototype.showAtIndex=function(a,d){};ma.prototype.showAtX= function(a,d){if(!this.enabled)return!1;this.chart.clearedOverlayedCanvas=null;this._updateOptions();var c,b,g,l=[];g=!1;d=!f(d)&&0<=d&&d=b.dataSeries.axisX.viewportMinimum&&b.dataPoint.x<=b.dataSeries.axisX.viewportMaximum){g=!1;break}else if(b.dataPoint.xb.dataSeries.axisX.viewportMaximum||b.dataPoint.yb.dataSeries.axisY.viewportMaximum)g=!0;else{g=!1;break}if(g)return this.hide(), !1;this.highlightObjects(l);this._entries=l;k="";k=this.getToolTipInnerHTML({entries:l});if(null!==k){this.contentDiv.innerHTML=k;if(this.isToolTipDefinedInData&&f(this.options.content)&&f(this.options.contentFormatter))for(b=this.contentDiv.getElementsByTagName("span"),k=0;kc&&(c+=this.container.clientWidth+20);c+this.container.clientWidth>Math.max(this.chart.container.clientWidth,this.chart.width)&&(c=Math.max(0,Math.max(this.chart.container.clientWidth,this.chart.width)-this.container.clientWidth));l=1!==l.length||this.shared||"line"!==l[0].dataSeries.type&&"stepLine"!==l[0].dataSeries.type&&"spline"!==l[0].dataSeries.type&&"area"!==l[0].dataSeries.type&& "stepArea"!==l[0].dataSeries.type&&"splineArea"!==l[0].dataSeries.type?"bar"===l[0].dataSeries.type||"rangeBar"===l[0].dataSeries.type||"stackedBar"===l[0].dataSeries.type||"stackedBar100"===l[0].dataSeries.type?l[0].dataSeries.axisX.convertValueToPixel(l[0].dataPoint.x):l[0].dataSeries.axisY.convertValueToPixel(l[0].dataPoint.y):l[0].dataSeries.axisY.convertValueToPixel(l[0].dataPoint.y);l=-l+10;0b&&a.push(d),d.animationCallback(b),1<=b&&d.onComplete)d.onComplete();this.animations=a;0(b?b.minimum:null)?Math.min(b?b.maximum:null,c):b?b.maximum: null:!f(c)&&c>(d?d.minimum:null)?Math.min(d?d.maximum:null,c):d?d.maximum:null;r.stockChart._rangeEventParameter={stockChart:r.stockChart,source:"inputFields",index:null,minimum:a,maximum:e};r.stockChart._rangeEventParameter.type="rangeChanging";r.stockChart.dispatchEvent("rangeChanging",r.stockChart._rangeEventParameter,r.stockChart);r.stockChart.sessionVariables._axisXMin=a;r.stockChart.sessionVariables._axisXMax=e;r.stockChart._syncCharts(a,e);r.stockChart._rangeEventParameter.type="rangeChanged"; r.stockChart.dispatchEvent("rangeChanged",r.stockChart._rangeEventParameter,r.stockChart);r.stockChart.rangeSelector&&r.stockChart.rangeSelector.resetRangeButtons();r.stockChart.rangeUpdatedBy="inputFields"}},this.rangeSelector.stockChart.allDOMEventHandlers);z(this.elements[0],"keydown",function(a){r.enabled&&13===a.keyCode&&(this.blur(),a.preventDefault&&a.preventDefault())},this.rangeSelector.stockChart.allDOMEventHandlers);z(this.elements[1],"keydown",function(a){r.enabled&&13===a.keyCode&&(this.blur(), a.preventDefault&&a.preventDefault())},this.rangeSelector.stockChart.allDOMEventHandlers)}function Z(d,f){Z.base.constructor.call(this,"ButtonStyle","buttonStyle",f,null,d.rangeSelector);this.stockChart=d;this.parent=this.rangeSelector=d.rangeSelector;this.optionsName="buttonStyle"}function da(d,f){da.base.constructor.call(this,"Style","style",f,null,d.rangeSelector.inputFields);this.stockChart=d;this.parent=this.inputFields=d.rangeSelector.inputFields;this.optionsName="style"}var ea=!0;ia(s,X);s.prototype._updateOptions= function(){this.updateOption("width");this.updateOption("height");this.updateOption("theme");this.updateOption("colorSet")&&(this.selectedColorSet="undefined"!==typeof pa[this.colorSet]?pa[this.colorSet]:pa.colorSet1);this.updateOption("backgroundColor");this.backgroundColor||(this.backgroundColor="rgba(0,0,0,0)");this.updateOption("exportEnabled");this.updateOption("exportFileName");this.updateOption("creditHref");this.updateOption("creditHref");this.updateOption("culture");this._cultureInfo=new Pa(this.options.culture); this.updateOption("animationEnabled");this.updateOption("animationDuration");this.updateOption("rangeChanging");this.updateOption("rangeChanged");this.toolbar=new Ya(this,this.options.toolbar);ib(this)};s._supportedChartTypes=ya("line stepLine spline column area stepArea splineArea bubble scatter stackedColumn stackedColumn100 stackedArea stackedArea100 candlestick ohlc boxAndWhisker rangeColumn error rangeArea rangeSplineArea waterfall".split(" "));s.prototype._initialize=function(){this._updateOptions(); this.animationEnabled=this.animationEnabled&&w;this._updateSize();this.clearCanvas();this.ctx.beginPath();var d,t=f(this.options.charts)?[]:this.options.charts;ya(t);for(var x=0;xt.indexOf(d.options)&&(this.charts.splice(x,1),d.destroy(),this._canvasJSContainer.removeChild(d.panel),x--);this.layoutManager=new Ma(0,0,this.width,this.height,2);this.plotArea.layoutManager&&this.plotArea.layoutManager.reset();this.title=null;this.subtitles=[];this.options.title&& (this.title=new J(this,this.options.title),this.title.setLayout());if(this.options.subtitles)for(x=0;xt.maxWidth?t.maxWidth:this.rangeSelector.inputFields.style.width,this.rangeSelector.inputFieldsWidth+=t+this.rangeSelector.inputFields.style.spacing+d.measureText().width,this.rangeSelector.inputFieldsHeight=f(this.rangeSelector.inputFieldsHeight)||this.rangeSelector.inputFieldsHeightthis._chartsPlotAreaX1)&&(this._chartsPlotAreaX1=g.bounds.x1);this.navigator.width=this.navigator.chart.width=this.navigator.slider.fullWidth=this.navigator.options.width?this.navigator.options.width:this._chartsPlotAreaX2-this._chartsPlotAreaX1+(g&&g.bounds?g.bounds.x1:0);this.navigator.panel.style.left=this._chartsPlotAreaX1+this.layoutManager.getFreeSpace().x1-(g&&g.bounds?g.bounds.x1:0)+"px";this.navigator.panel.style.width= this.navigator.chart.panel.style.width=this.navigator.options.width?this.navigator.options.width:this._chartsPlotAreaX2-this._chartsPlotAreaX1+(g&&g.bounds?g.bounds.x1:0)+"px";0x&&(x=g.maximum),f(g.options.viewportMinimum)||(this._axisXMin=v=g.options.viewportMinimum,r.minimum="chart"),f(g.options.viewportMaximum)||(this._axisXMax=A=g.options.viewportMaximum, r.maximum="chart");var z;this.navigator&&(this.navigator.enabled&&this.navigator.chart&&ea)&&(z=this.navigator.chart.axisX&&0g.maximum?g.maximum:g.viewportMaximum+l);t._rangeEventParameter={stockChart:t,source:"buttons",index:this._index,minimum:c,maximum:d};"on"!=this.state&&(t._rangeEventParameter.type="rangeChanging",t.dispatchEvent("rangeChanging",t._rangeEventParameter,t),t._syncCharts(c,d),t.sessionVariables._axisXMin=c,t.sessionVariables._axisXMax=d,t._rangeEventParameter.type="rangeChanged",t.dispatchEvent("rangeChanged", t._rangeEventParameter,t),this.state="on");this.textBlock.fontWeight="bold";this.textBlock.fontColor=a.stockChart.rangeSelector.buttonStyle.labelFontColorOnHover;this.textBlock.backgroundColor=a.stockChart.rangeSelector.buttonStyle.backgroundColorOnSelect;this.textBlock.render(!0);t.rangeUpdatedBy="rangeButton";t.rangeSelector.sessionVariables._clickedRangeButtonIndex=this._index}};if(c.enabled){c.cursor=this.rangeSelector.buttonStyle.cursor;if("on"===c.state&&"navigator"!==r.minimum&&(!this.rangeSelector.inputFields.enabled|| f(this.rangeSelector.inputFields.options.startValue))&&!f(this._selectedRangeButtonIndex)){"on"===c.state&&"navigator"!==r.minimum&&(c.textBlock.fontWeight="bold",c.textBlock.fontColor=this.rangeSelector.buttonStyle.labelFontColorOnHover,c.textBlock.backgroundColor=this.rangeSelector.buttonStyle.backgroundColorOnSelect);if("ytd"===c.rangeType&&g)a=new Date(g.viewportMaximum),a.setDate(1),a.setMonth(0),a=a.getTime();else if(f(m))z?(a=z.minimum,e=z.maximum):g&&(a=g.minimum,e=g.maximum);else{var n="navigator"=== r.maximum?this.navigator.slider.maximum:this.rangeSelector.inputFields.enabled&&!f(this.rangeSelector.inputFields.options.endValue)?this.rangeSelector.inputFields.options.endValue:f(g.options.viewportMaximum)?g.viewportMaximum:g.options.viewportMaximum;n>(z?z.maximum:g.maximum)&&(n=z?z.maximum:g.maximum);if(n-m<(z?z.minimum:g.minimum)){if("navigator"!==r.maximum&&f(this.rangeSelector.inputFields.options.endValue))"chart"===r.maximum&&(r.maximum="rangeButton");else{this._selectedRangeButtonIndex=null; continue}e=z?z:g;m=e.minimum-(n-m);a=e.minimum;e=Math.min(e.maximum,("dateTime"===e.valueType?n.getTime():n)+m)}else a=n-m,e=n}r.minimum="rangeButton";r.maximum=f(r.maximum)||"chart"===r.maximum&&f(g.options.viewportMaximum)?"rangeButton":r.maximum}f(this._axisXMin)||(c.state="off");this._axisXMin="navigator"!==r.minimum&&(f(this._axisXMin)||this.rangeSelector.hasOptionChanged("selectedRangeButtonIndex"))?a:this._axisXMin;this._axisXMax="navigator"!==r.maximum&&(f(this._axisXMax)||this.rangeSelector.hasOptionChanged("selectedRangeButtonIndex"))? e:this._axisXMax}else c.cursor="not-allowed"}if(this.rangeSelector.inputFields&&this.rangeSelector.inputFields.enabled){this.rangeSelector.inputFields.valueType=this.options.rangeSelector&&this.options.rangeSelector.inputFields&&this.options.rangeSelector.inputFields.valueType?this.options.rangeSelector.inputFields.valueType:this.isDateTime?"dateTime":"number";for(d=0;dz.maximum)this._initialAxisXMin=this._initialAxisXMin===this._axisXMin?z.minimum:this._initialAxisXMin, this._axisXMin=z.minimum;if(this._axisXMaxz.maximum)this._initialAxisXMax=this._initialAxisXMax===this._axisXMax?z.maximum:this._initialAxisXMax,this._axisXMax=z.maximum;r&&(f(r.minimum)&&f(this.sessionVariables._axisXMin))&&(this._axisXMin=z.minimum);r&&(f(r.maximum)&&f(this.sessionVariables._axisXMax))&&(this._axisXMax=z.maximum)}!f(z)&&z.reversed?this._syncCharts(this._axisXMax,this._axisXMin):this._syncCharts(this._axisXMin,this._axisXMax)};s.prototype.setChartsLayout= function(){var d,f,k=0,r=this.width;this.isPlotAreaSet=this.isDateTime=!1;for(var a=0;ac.lineCoordinates.x2?e.x2:c.lineCoordinates.x2}d.axisY2&&0c.lineCoordinates.x2?e.x2:c.lineCoordinates.x2)}for(e=0;e\n');r.document.body&&r.document.body.style&&(r.document.body.style.margin="0px 0px 0px 0px",r.document.body.style.padding="0px 0px 0px 0px");r.document.close();setTimeout(function(){r.focus();r.print();setTimeout(function(){k._canvasJSContainer.removeChild(f)}, 1E3)},500)};s.prototype.getObjectAtXY=function(d,k,x){x=null;if(!f(this.rangeSelector)){for(var r=0;r=a.bounds.x1&&(d<=a.bounds.x2&&k>=a.bounds.y1&&k<=a.bounds.y2)&&(x=a.id)}for(r=0;r=a.bounds.x1&&(d<=a.bounds.x2&&k>=a.bounds.y1&&k<=a.bounds.y2)&&(x=a.id)}return x};s.prototype._touchEventHandler=function(d){if(d.changedTouches){var k= [],x=d.changedTouches,r=x?x[0]:d,a=null;switch(d.type){case "touchstart":case "MSPointerDown":k=["mousemove","mousedown"];this._lastTouchData=Ca(r);this._lastTouchData.time=new Date;break;case "touchmove":case "MSPointerMove":k=["mousemove"];break;case "touchend":case "MSPointerUp":var e=this._lastTouchData&&this._lastTouchData.time?new Date-this._lastTouchData.time:0,k="touchstart"===this._lastTouchEventType||"MSPointerDown"===this._lastTouchEventType||300>e?["mouseup","click"]:["mouseup"];break; default:return}if(!(x&&1e)this._lastTouchData.scroll=!0}catch(b){}this._lastTouchEventType=d.type;if(this._lastTouchData&&this._lastTouchData.scroll)this.isDrag&&this.resetOverlayedCanvas(),this.isDrag=!1;else for(x=0;x=a.x1&&f.x<=a.x2&&f.y>=a.y1&&f.y<=a.y2){r[k].call(r.context,f.x,f.y);"mousedown"===k&&!0===r.capture?(Chart.capturedEventParam= r,this.overlaidCanvas.setCapture?this.overlaidCanvas.setCapture():document.documentElement.addEventListener("mouseup",this._mouseEventHandler,!1)):"mouseup"===k&&(r.stockChart.overlaidCanvas.releaseCapture?r.stockChart.overlaidCanvas.releaseCapture():document.documentElement.removeEventListener("mouseup",this._mouseEventHandler,!1));break}else r=null;d.target.style.cursor=r&&r.cursor?r.cursor:this._defaultCursor}k=this.bounds;(f.xk.x2||f.yk.y2)&&this.resetOverlayedCanvas();!this.isDrag&& this._eventManager&&this._eventManager.mouseEventHandler(d)}};s.prototype.resetOverlayedCanvas=function(){this.overlaidCanvasCtx.clearRect(0,0,this.width,this.height)};s.prototype.clearCanvas=mb;s.prototype.getAutoFontSize=nb;ia(J,Ja);ia(F,Oa);La.prototype.alignVerticalAxes=function(){if(!this.isNavigator&&this.stockChart){for(var d=this.sessionVariables.plotAreaBounds,f=this.stockChart._chartsPlotAreaX1-d.x1,d=d.x2-this.stockChart._chartsPlotAreaX2,k=0;k=this.height)d&&this.stockChart._canvasJSContainer.removeChild(this.panel);else{this.height=f(this.options.height)? 0.14*this.stockChart.height:parseInt(this.options.height);d||this.stockChart._canvasJSContainer.appendChild(this.panel);var t=this.stockChart.layoutManager.getFreeSpace(),s=t.x1,r=t.y1;this.width=this.options.width?this.width:t.width;"top"===this.verticalAlign?(r=t.y1+2,d="top"):(r=t.y2-this.height-2,d="bottom");"left"===this.horizontalAlign?s=t.x1-2:"center"===this.horizontalAlign?s=t.x1+t.width/2-this.width/2:"right"===this.horizontalAlign&&(s=t.x2-2-this.width);this.panel.style.top=r+"px";this.panel.style.left= s+"px";this.panel.style.height=this.height+"px";this.panel.style.width=this.width+"px";this.stockChart.layoutManager.registerSpace(d,{width:this.width,height:this.height+2});this.bounds={x1:s,y1:r,x2:s+this.width,y2:r+this.height}}};A.prototype._updateSlider=function(d,k){if(!(0>=this.height)&&this.enabled){var s=this.chart.axisX&&this.chart.axisX.length?this.chart.axisX[0]:this.chart.axisX2[0];if(!f(s)){var r=Math.min(s.bounds.x2,Math.max(s.bounds.x1,s.convertValueToPixel(s.reversed?Math.max(d,Math.min(s.maximum, k)):Math.min(d,Math.min(s.maximum,k))))),a=Math.max(s.bounds.x1,Math.min(s.bounds.x2,s.convertValueToPixel(s.reversed?Math.min(d,Math.min(s.maximum,k)):Math.max(d,Math.min(s.maximum,k)))));this.slider.panel.style.left=r+"px";this.slider.left=r;this.slider.panel.style.width=a-r+"px";this.slider.width=a-r;this.slider.minimum=s.convertPixelToValue(s.reversed?a:r);this.slider.maximum=s.convertPixelToValue(s.reversed?r:a);this.chart.resetOverlayedCanvas();this.slider.maskInverted?W(this.chart.overlaidCanvasCtx, r,0,a,this.height,this.slider.maskColor,0,this.slider.outlineColor,0,0,0,0,this.slider.maskOpacity):(W(this.chart.overlaidCanvasCtx,s.bounds.x1,0,r,this.height,this.slider.maskColor,0,this.slider.outlineColor,!1,!1,!1,!1,this.slider.maskOpacity),W(this.chart.overlaidCanvasCtx,a,0,this.width,this.height,this.slider.maskColor,0,this.slider.outlineColor,!1,!1,!1,!1,this.slider.maskOpacity));this.chart.overlaidCanvasCtx.lineWidth=this.slider.outlineThickness;this.chart.overlaidCanvasCtx.strokeStyle=this.slider.outlineColor; this.chart.overlaidCanvasCtx.save();this.chart.overlaidCanvasCtx.beginPath();0r){var s=Math.max(0,k+a),c=Math.min(r+a,d.navigator.width); r+a>d.navigator.width&&(r=r+a-d.navigator.width,s-=r);0>k+a&&(r=Math.abs(k+a),c+=r);d.stockChart._rangeEventParameter={stockChart:d.stockChart,source:"navigator",index:null,minimum:e.convertPixelToValue(s),maximum:e.convertPixelToValue(c)};d.stockChart.sessionVariables._axisXMin=e.convertPixelToValue(s);d.stockChart.sessionVariables._axisXMax=e.convertPixelToValue(c);d.navigator.dynamicUpdate?(d.stockChart._rangeEventParameter.type="rangeChanging",d.stockChart.dispatchEvent("rangeChanging",d.stockChart._rangeEventParameter, d.stockChart),d.stockChart._syncCharts(e.convertPixelToValue(s),e.convertPixelToValue(c)),d.stockChart._rangeEventParameter.type="rangeChanged",d.stockChart.dispatchEvent("rangeChanged",d.stockChart._rangeEventParameter,d.stockChart)):d.navigator._updateSlider(d.stockChart.sessionVariables._axisXMin,d.stockChart.sessionVariables._axisXMax);d.stockChart.rangeUpdatedBy="navigator"}}},this.navigator.stockChart.allDOMEventHandlers);z(this.navigator.panel,window.navigator.msPointerEnabled?"MSPointerDown": "touchstart",function(f){d.stockChart._touchEventHandler(f)},this.navigator.stockChart.allDOMEventHandlers);z(this.navigator.stockChart.container,"mousemove",function(k){var s=d.navigator.chart.axisX&&d.navigator.chart.axisX.length?d.navigator.chart.axisX[0]:d.navigator.chart.axisX2[0];if(!f(d.currentHandle)&&d.startPosition){d.navigator.chart.overlaidCanvas.style.cursor=d.navigator.chart.container.style.cursor=d.navigator.panel.style.cursor="ew-resize";var r;r=d.currentHandle===d.leftHandle?1:-1; var a=Ca(k);k=k.target||k.srcElement;a.x=k===d.currentHandle?a.x+(d.currentHandle.offsetLeft+d.currentHandle.clientWidth/2+d.panel.offsetLeft):k===d.mask||k===d.panel?a.x+d.panel.offsetLeft:k===d.rightHandle&&d.currentHandle===d.leftHandle?a.x+(d.rightHandle.offsetLeft+d.rightHandle.clientWidth/2+d.panel.offsetLeft):k===d.leftHandle&&d.currentHandle===d.rightHandle?a.x+d.panel.offsetLeft:a.x+("canvasjs-chart-toolbar"===k.parentElement.className?k.offsetParent.offsetLeft+k.offsetLeft-d.stockChart._chartsPlotAreaX1: k.parentElement.parentElement.parentElement===d.navigator.panel?k.offsetLeft:k.offsetLeft-d.stockChart._chartsPlotAreaX1);var e=a.x-d.startPosition.x;if(0!==e){k=d.panel.offsetLeft;var c=d.panel.clientWidth;0d.startWidth?(k=0r&&(k=d.startLeft));k+c<=d._left+d.fullWidth&&(2k;k++)this.buttons.push(new P(this.stockChart,k));this.buttonLabels="1m 3m 6m YTD 1y All".split(" ")}this._wrapElements= !1;var s=this.stockChart.layoutManager.getFreeSpace(),r=s.x1,k=s.y1;this._shiftInputField=!0;this.width=this.options.width?this.width:s.width;f(this.buttonStyle.options.labelFontSize)&&(this.buttonStyle.labelFontSize=this.stockChart.getAutoFontSize(this.buttonStyle.labelFontSize));if(this.stockChart.title&&this.stockChart.title.text&&("top"===this.stockChart.title.verticalAlign||"right"===this.stockChart.title.horizontalAlign&&"center"===this.stockChart.title.verticalAlign&&this.stockChart.exportEnabled)|| "bottom"===this.verticalAlign)this._shiftInputField=!1;if(this.stockChart.subtitles)for(k=0;k=this.width-(this.stockChart.exportEnabled&& this._shiftInputField?40:0)&&(this.height=this.options.height?this.height:2*this.height,this._wrapElements=!0);!this.inputFields.enabled&&(0===this.buttons.length&&f(this.options.height))&&(this.height=0);"bottom"===this.verticalAlign?(k=s.y2-this.height,d="bottom"):(k=s.y1,d="top");"left"===this.horizontalAlign?r=s.x1+2:"center"===this.horizontalAlign?r=s.x1+s.width/2-this.width/2:"right"===this.horizontalAlign&&(r=s.x2-2-this.width);this.stockChart.layoutManager.registerSpace(d,{width:this.width, height:this.height});this.bounds={x1:r,y1:k,x2:r+this.width,y2:k+this.height,width:this.width,height:this.height};for(k=0;kthis.inputFields.style.maxWidth&&(s._width=this.inputFields.style.maxWidth);d+=s._width+this.inputFields.style.spacing;this.inputFields.elements[k].style.width=s._width-this.inputFields.style.spacing-2*this.inputFields.style.borderThickness-5+"px";s.x=s.bounds.x1=1===s.borderThickness%2?(this.bounds.x2-d-(this.stockChart.exportEnabled&&this._shiftInputField?40:0)<<0)+0.5:this.bounds.x2-d-(this.stockChart.exportEnabled&&this._shiftInputField?40:0);s.bounds.x2=s.bounds.x1+s._width; this.inputFields.elements[k].style.left=this.bounds.x2-d-(this.stockChart.exportEnabled&&this._shiftInputField?40:0)+this.inputFields.style.borderThickness+"px";d+=this.inputFields._labels[k].measureText().width;this.inputFields._labels[k].x=this.inputFields._labels[k].bounds.x1=this.bounds.x2-d-(this.stockChart.exportEnabled&&this._shiftInputField?40:0);this.inputFields._labels[k].bounds.x2=this.inputFields._labels[k].bounds.x1+this.inputFields._labels[k].measureText().width;this.inputFields.style.width= s.width=s._width;s.y=(1===s.borderThickness%2?(this._wrapElements?this.bounds.y1+this.rangeButtonsHeight+8:this.bounds.y1)+(s.height-s.topPadding-s.bottomPadding+s.borderThickness)/2<<0.5:(this._wrapElements?this.bounds.y1+this.rangeButtonsHeight+8:this.bounds.y1)+(s.height-s.topPadding-s.bottomPadding+s.borderThickness)/2)+2;this.inputFields._labels[k].y=(this._wrapElements?this.bounds.y1+this.rangeButtonsHeight+8:this.bounds.y1)+(s.height-s.topPadding-s.bottomPadding+s.borderThickness)/2+2;s.bounds.y1= this.inputFields._labels[k].bounds.y1=s.y+(s.topPadding+s.bottomPadding)/2-(r.height-s.borderThickness)/2;s.bounds.y2=this.inputFields._labels[k].bounds.y2=s.bounds.y1+r.height;this.inputFields.elements[k].style.top=this.inputFields._labels[k].bounds.y1+"px";s.render(!0);this.inputFields._labels[k].render(!0)}};R.prototype._updateInputFields=function(d,f){!this.inputFields.elements[0].focused&&isFinite(d)&&(this.inputFields.elements[0].value="dateTime"===this.inputFields.valueType?ra(d,"YYYY-MM-DD"): ha(d,this.inputFields.valueFormatString));!this.inputFields.elements[1].focused&&isFinite(f)&&(this.inputFields.elements[1].value="dateTime"===this.inputFields.valueType?ra(f,"YYYY-MM-DD"):ha(f,this.inputFields.valueFormatString));for(var k=0;kg;g++)for(var e=0;3>e;e++){for(var f=0,d=0;3>d;d++)f+=a[g][d]*b[d][e];c[g][e]=f}return c}function P(a,b){b.fillStyle=a.fillStyle;b.lineCap=a.lineCap;b.lineJoin=a.lineJoin;b.lineWidth=a.lineWidth;b.miterLimit=a.miterLimit;b.shadowBlur=a.shadowBlur;b.shadowColor=a.shadowColor;b.shadowOffsetX= a.shadowOffsetX;b.shadowOffsetY=a.shadowOffsetY;b.strokeStyle=a.strokeStyle;b.globalAlpha=a.globalAlpha;b.font=a.font;b.textAlign=a.textAlign;b.textBaseline=a.textBaseline;b.arcScaleX_=a.arcScaleX_;b.arcScaleY_=a.arcScaleY_;b.lineScale_=a.lineScale_}function Q(a){var b=a.indexOf("(",3),c=a.indexOf(")",b+1),b=a.substring(b+1,c).split(",");if(4!=b.length||"a"!=a.charAt(3))b[3]=1;return b}function E(a,b,c){return Math.min(c,Math.max(b,a))}function F(a,b,c){0>c&&c++;16*c?a+6*(b-a)*c: 1>2*c?b:2>3*c?a+6*(b-a)*(2/3-c):a}function G(a){if(a in H)return H[a];var b,c=1;a=String(a);if("#"==a.charAt(0))b=a;else if(/^rgb/.test(a)){c=Q(a);b="#";for(var g,e=0;3>e;e++)g=-1!=c[e].indexOf("%")?Math.floor(255*(parseFloat(c[e])/100)):+c[e],b+=v[E(g,0,255)];c=+c[3]}else if(/^hsl/.test(a)){e=c=Q(a);b=parseFloat(e[0])/360%360;0>b&&b++;g=E(parseFloat(e[1])/100,0,1);e=E(parseFloat(e[2])/100,0,1);if(0==g)g=e=b=e;else{var f=0.5>e?e*(1+g):e+g-e*g,d=2*e-f;g=F(d,f,b+1/3);e=F(d,f,b);b=F(d,f,b-1/3)}b="#"+ v[Math.floor(255*g)]+v[Math.floor(255*e)]+v[Math.floor(255*b)];c=c[3]}else b=Z[a]||a;return H[a]={color:b,alpha:c}}function C(a){this.m_=D();this.mStack_=[];this.aStack_=[];this.currentPath_=[];this.fillStyle=this.strokeStyle="#000";this.lineWidth=1;this.lineJoin="miter";this.lineCap="butt";this.miterLimit=1*q;this.globalAlpha=1;this.font="10px sans-serif";this.textAlign="left";this.textBaseline="alphabetic";this.canvas=a;var b="width:"+a.clientWidth+"px;height:"+a.clientHeight+"px;overflow:hidden;position:absolute", c=a.ownerDocument.createElement("div");c.style.cssText=b;a.appendChild(c);b=c.cloneNode(!1);b.style.backgroundColor="red";b.style.filter="alpha(opacity=0)";a.appendChild(b);this.element_=c;this.lineScale_=this.arcScaleY_=this.arcScaleX_=1}function R(a,b,c,g){a.currentPath_.push({type:"bezierCurveTo",cp1x:b.x,cp1y:b.y,cp2x:c.x,cp2y:c.y,x:g.x,y:g.y});a.currentX_=g.x;a.currentY_=g.y}function S(a,b){var c=G(a.strokeStyle),g=c.color,c=c.alpha*a.globalAlpha,e=a.lineScale_*a.lineWidth;1>e&&(c*=e);b.push("')}function T(a,b,c,g){var e=a.fillStyle,f=a.arcScaleX_,d=a.arcScaleY_,k=g.x-c.x,n=g.y-c.y;if(e instanceof w){var h=0,l=g=0,u=0,m=1;if("gradient"==e.type_){h=e.x1_/f;c=e.y1_/d;var p=s(a,e.x0_/f,e.y0_/d),h=s(a,h,c),h=180*Math.atan2(h.x-p.x,h.y-p.y)/Math.PI;0>h&&(h+=360);1E-6>h&&(h=0)}else p=s(a,e.x0_,e.y0_),g=(p.x-c.x)/k,l=(p.y-c.y)/n,k/=f*q, n/=d*q,m=x.max(k,n),u=2*e.r0_/m,m=2*e.r1_/m-u;f=e.colors_;f.sort(function(a,b){return a.offset-b.offset});d=f.length;p=f[0].color;c=f[d-1].color;k=f[0].alpha*a.globalAlpha;a=f[d-1].alpha*a.globalAlpha;for(var n=[],r=0;r')}else e instanceof I?k&&n&&b.push("'):(e=G(a.fillStyle),b.push(''))}function s(a,b,c){a=a.m_;return{x:q*(b*a[0][0]+c*a[1][0]+a[2][0])-r,y:q*(b*a[0][1]+c*a[1][1]+a[2][1])-r}}function z(a,b,c){isFinite(b[0][0])&&(isFinite(b[0][1])&&isFinite(b[1][0])&&isFinite(b[1][1])&&isFinite(b[2][0])&&isFinite(b[2][1]))&&(a.m_=b,c&&(a.lineScale_=aa(ba(b[0][0]*b[1][1]-b[0][1]* b[1][0]))))}function w(a){this.type_=a;this.r1_=this.y1_=this.x1_=this.r0_=this.y0_=this.x0_=0;this.colors_=[]}function I(a,b){if(!a||1!=a.nodeType||"IMG"!=a.tagName)throw new A("TYPE_MISMATCH_ERR");if("complete"!=a.readyState)throw new A("INVALID_STATE_ERR");switch(b){case "repeat":case null:case "":this.repetition_="repeat";break;case "repeat-x":case "repeat-y":case "no-repeat":this.repetition_=b;break;default:throw new A("SYNTAX_ERR");}this.src_=a.src;this.width_=a.width;this.height_=a.height} function A(a){this.code=this[a];this.message=a+": DOM Exception "+this.code}var x=Math,k=x.round,J=x.sin,K=x.cos,ba=x.abs,aa=x.sqrt,q=10,r=q/2;navigator.userAgent.match(/MSIE ([\d.]+)?/);var M=Array.prototype.slice;O(document);var U={init:function(a){a=a||document;a.createElement("canvas");a.attachEvent("onreadystatechange",W(this.init_,this,a))},init_:function(a){a=a.getElementsByTagName("canvas");for(var b=0;bd;d++)for(var B=0;16>B;B++)v[16*d+B]=d.toString(16)+B.toString(16);var Z={aliceblue:"#F0F8FF",antiquewhite:"#FAEBD7",aquamarine:"#7FFFD4",azure:"#F0FFFF",beige:"#F5F5DC", bisque:"#FFE4C4",black:"#000000",blanchedalmond:"#FFEBCD",blueviolet:"#8A2BE2",brown:"#A52A2A",burlywood:"#DEB887",cadetblue:"#5F9EA0",chartreuse:"#7FFF00",chocolate:"#D2691E",coral:"#FF7F50",cornflowerblue:"#6495ED",cornsilk:"#FFF8DC",crimson:"#DC143C",cyan:"#00FFFF",darkblue:"#00008B",darkcyan:"#008B8B",darkgoldenrod:"#B8860B",darkgray:"#A9A9A9",darkgreen:"#006400",darkgrey:"#A9A9A9",darkkhaki:"#BDB76B",darkmagenta:"#8B008B",darkolivegreen:"#556B2F",darkorange:"#FF8C00",darkorchid:"#9932CC",darkred:"#8B0000", darksalmon:"#E9967A",darkseagreen:"#8FBC8F",darkslateblue:"#483D8B",darkslategray:"#2F4F4F",darkslategrey:"#2F4F4F",darkturquoise:"#00CED1",darkviolet:"#9400D3",deeppink:"#FF1493",deepskyblue:"#00BFFF",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1E90FF",firebrick:"#B22222",floralwhite:"#FFFAF0",forestgreen:"#228B22",gainsboro:"#DCDCDC",ghostwhite:"#F8F8FF",gold:"#FFD700",goldenrod:"#DAA520",grey:"#808080",greenyellow:"#ADFF2F",honeydew:"#F0FFF0",hotpink:"#FF69B4",indianred:"#CD5C5C",indigo:"#4B0082", ivory:"#FFFFF0",khaki:"#F0E68C",lavender:"#E6E6FA",lavenderblush:"#FFF0F5",lawngreen:"#7CFC00",lemonchiffon:"#FFFACD",lightblue:"#ADD8E6",lightcoral:"#F08080",lightcyan:"#E0FFFF",lightgoldenrodyellow:"#FAFAD2",lightgreen:"#90EE90",lightgrey:"#D3D3D3",lightpink:"#FFB6C1",lightsalmon:"#FFA07A",lightseagreen:"#20B2AA",lightskyblue:"#87CEFA",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#B0C4DE",lightyellow:"#FFFFE0",limegreen:"#32CD32",linen:"#FAF0E6",magenta:"#FF00FF",mediumaquamarine:"#66CDAA", mediumblue:"#0000CD",mediumorchid:"#BA55D3",mediumpurple:"#9370DB",mediumseagreen:"#3CB371",mediumslateblue:"#7B68EE",mediumspringgreen:"#00FA9A",mediumturquoise:"#48D1CC",mediumvioletred:"#C71585",midnightblue:"#191970",mintcream:"#F5FFFA",mistyrose:"#FFE4E1",moccasin:"#FFE4B5",navajowhite:"#FFDEAD",oldlace:"#FDF5E6",olivedrab:"#6B8E23",orange:"#FFA500",orangered:"#FF4500",orchid:"#DA70D6",palegoldenrod:"#EEE8AA",palegreen:"#98FB98",paleturquoise:"#AFEEEE",palevioletred:"#DB7093",papayawhip:"#FFEFD5", peachpuff:"#FFDAB9",peru:"#CD853F",pink:"#FFC0CB",plum:"#DDA0DD",powderblue:"#B0E0E6",rosybrown:"#BC8F8F",royalblue:"#4169E1",saddlebrown:"#8B4513",salmon:"#FA8072",sandybrown:"#F4A460",seagreen:"#2E8B57",seashell:"#FFF5EE",sienna:"#A0522D",skyblue:"#87CEEB",slateblue:"#6A5ACD",slategray:"#708090",slategrey:"#708090",snow:"#FFFAFA",springgreen:"#00FF7F",steelblue:"#4682B4",tan:"#D2B48C",thistle:"#D8BFD8",tomato:"#FF6347",turquoise:"#40E0D0",violet:"#EE82EE",wheat:"#F5DEB3",whitesmoke:"#F5F5F5",yellowgreen:"#9ACD32"}, H={},L={},$={butt:"flat",round:"round"},d=C.prototype;d.clearRect=function(){this.textMeasureEl_&&(this.textMeasureEl_.removeNode(!0),this.textMeasureEl_=null);this.element_.innerHTML=""};d.beginPath=function(){this.currentPath_=[]};d.moveTo=function(a,b){var c=s(this,a,b);this.currentPath_.push({type:"moveTo",x:c.x,y:c.y});this.currentX_=c.x;this.currentY_=c.y};d.lineTo=function(a,b){var c=s(this,a,b);this.currentPath_.push({type:"lineTo",x:c.x,y:c.y});this.currentX_=c.x;this.currentY_=c.y};d.bezierCurveTo= function(a,b,c,g,e,f){e=s(this,e,f);a=s(this,a,b);c=s(this,c,g);R(this,a,c,e)};d.quadraticCurveTo=function(a,b,c,g){a=s(this,a,b);c=s(this,c,g);g={x:this.currentX_+2/3*(a.x-this.currentX_),y:this.currentY_+2/3*(a.y-this.currentY_)};R(this,g,{x:g.x+(c.x-this.currentX_)/3,y:g.y+(c.y-this.currentY_)/3},c)};d.arc=function(a,b,c,g,e,f){c*=q;var d=f?"at":"wa",k=a+K(g)*c-r,n=b+J(g)*c-r;g=a+K(e)*c-r;e=b+J(e)*c-r;k!=g||f||(k+=0.125);a=s(this,a,b);k=s(this,k,n);g=s(this,g,e);this.currentPath_.push({type:d, x:a.x,y:a.y,radius:c,xStart:k.x,yStart:k.y,xEnd:g.x,yEnd:g.y})};d.rect=function(a,b,c,g){this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+g);this.lineTo(a,b+g);this.closePath()};d.strokeRect=function(a,b,c,g){var e=this.currentPath_;this.beginPath();this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+g);this.lineTo(a,b+g);this.closePath();this.stroke();this.currentPath_=e};d.fillRect=function(a,b,c,g){var e=this.currentPath_;this.beginPath();this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+ c,b+g);this.lineTo(a,b+g);this.closePath();this.fill();this.currentPath_=e};d.createLinearGradient=function(a,b,c,g){var e=new w("gradient");e.x0_=a;e.y0_=b;e.x1_=c;e.y1_=g;return e};d.createRadialGradient=function(a,b,c,g,e,f){var d=new w("gradientradial");d.x0_=a;d.y0_=b;d.r0_=c;d.x1_=g;d.y1_=e;d.r1_=f;return d};d.drawImage=function(a,b){var c,g,e,d,r,y,n,h;e=a.runtimeStyle.width;d=a.runtimeStyle.height;a.runtimeStyle.width="auto";a.runtimeStyle.height="auto";var l=a.width,u=a.height;a.runtimeStyle.width= e;a.runtimeStyle.height=d;if(3==arguments.length)c=arguments[1],g=arguments[2],r=y=0,n=e=l,h=d=u;else if(5==arguments.length)c=arguments[1],g=arguments[2],e=arguments[3],d=arguments[4],r=y=0,n=l,h=u;else if(9==arguments.length)r=arguments[1],y=arguments[2],n=arguments[3],h=arguments[4],c=arguments[5],g=arguments[6],e=arguments[7],d=arguments[8];else throw Error("Invalid number of arguments");var m=s(this,c,g),p=[];p.push(" ','","");this.element_.insertAdjacentHTML("BeforeEnd",p.join(""))};d.stroke=function(a){var b=[];b.push("d.x)d.x=f.x;if(null==c.y||f.yd.y)d.y=f.y}}b.push(' ">');a?T(this,b,c,d):S(this,b);b.push("");this.element_.insertAdjacentHTML("beforeEnd",b.join(""))};d.fill=function(){this.stroke(!0)};d.closePath=function(){this.currentPath_.push({type:"close"})};d.save=function(){var a= {};P(this,a);this.aStack_.push(a);this.mStack_.push(this.m_);this.m_=t(D(),this.m_)};d.restore=function(){this.aStack_.length&&(P(this.aStack_.pop(),this),this.m_=this.mStack_.pop())};d.translate=function(a,b){z(this,t([[1,0,0],[0,1,0],[a,b,1]],this.m_),!1)};d.rotate=function(a){var b=K(a);a=J(a);z(this,t([[b,a,0],[-a,b,0],[0,0,1]],this.m_),!1)};d.scale=function(a,b){this.arcScaleX_*=a;this.arcScaleY_*=b;z(this,t([[a,0,0],[0,b,0],[0,0,1]],this.m_),!0)};d.transform=function(a,b,c,d,e,f){z(this,t([[a, b,0],[c,d,0],[e,f,1]],this.m_),!0)};d.setTransform=function(a,b,c,d,e,f){z(this,[[a,b,0],[c,d,0],[e,f,1]],!0)};d.drawText_=function(a,b,c,d,e){var f=this.m_;d=0;var r=1E3,t=0,n=[],h;h=this.font;if(L[h])h=L[h];else{var l=document.createElement("div").style;try{l.font=h}catch(u){}h=L[h]={style:l.fontStyle||"normal",variant:l.fontVariant||"normal",weight:l.fontWeight||"normal",size:l.fontSize||10,family:l.fontFamily||"sans-serif"}}var l=h,m=this.element_;h={};for(var p in l)h[p]=l[p];p=parseFloat(m.currentStyle.fontSize); m=parseFloat(l.size);"number"==typeof l.size?h.size=l.size:-1!=l.size.indexOf("px")?h.size=m:-1!=l.size.indexOf("em")?h.size=p*m:-1!=l.size.indexOf("%")?h.size=p/100*m:-1!=l.size.indexOf("pt")?h.size=m/0.75:h.size=p;h.size*=0.981;p=h.style+" "+h.variant+" "+h.weight+" "+h.size+"px "+h.family;m=this.element_.currentStyle;l=this.textAlign.toLowerCase();switch(l){case "left":case "center":case "right":break;case "end":l="ltr"==m.direction?"right":"left";break;case "start":l="rtl"==m.direction?"right": "left";break;default:l="left"}switch(this.textBaseline){case "hanging":case "top":t=h.size/1.75;break;case "middle":break;default:case null:case "alphabetic":case "ideographic":case "bottom":t=-h.size/2.25}switch(l){case "right":d=1E3;r=0.05;break;case "center":d=r=500}b=s(this,b+0,c+t);n.push('');e?S(this,n):T(this,n,{x:-d,y:0}, {x:r,y:h.size});e=f[0][0].toFixed(3)+","+f[1][0].toFixed(3)+","+f[0][1].toFixed(3)+","+f[1][1].toFixed(3)+",0,0";b=k(b.x/q)+","+k(b.y/q);n.push('','','');this.element_.insertAdjacentHTML("beforeEnd",n.join(""))};d.fillText=function(a,b,c,d){this.drawText_(a,b,c,d,!1)};d.strokeText=function(a, b,c,d){this.drawText_(a,b,c,d,!0)};d.measureText=function(a){this.textMeasureEl_||(this.element_.insertAdjacentHTML("beforeEnd",''),this.textMeasureEl_=this.element_.lastChild);var b=this.element_.ownerDocument;this.textMeasureEl_.innerHTML="";this.textMeasureEl_.style.font=this.font;this.textMeasureEl_.appendChild(b.createTextNode(a));return{width:this.textMeasureEl_.offsetWidth}};d.clip=function(){}; d.arcTo=function(){};d.createPattern=function(a,b){return new I(a,b)};w.prototype.addColorStop=function(a,b){b=G(b);this.colors_.push({offset:a,color:b.color,alpha:b.alpha})};d=A.prototype=Error();d.INDEX_SIZE_ERR=1;d.DOMSTRING_SIZE_ERR=2;d.HIERARCHY_REQUEST_ERR=3;d.WRONG_DOCUMENT_ERR=4;d.INVALID_CHARACTER_ERR=5;d.NO_DATA_ALLOWED_ERR=6;d.NO_MODIFICATION_ALLOWED_ERR=7;d.NOT_FOUND_ERR=8;d.NOT_SUPPORTED_ERR=9;d.INUSE_ATTRIBUTE_ERR=10;d.INVALID_STATE_ERR=11;d.SYNTAX_ERR=12;d.INVALID_MODIFICATION_ERR= 13;d.NAMESPACE_ERR=14;d.INVALID_ACCESS_ERR=15;d.VALIDATION_ERR=16;d.TYPE_MISMATCH_ERR=17;G_vmlCanvasManager=U;CanvasRenderingContext2D=C;CanvasGradient=w;CanvasPattern=I;DOMException=A}(); /*tslint:enable*/ /*eslint-enable*/ /*jshint ignore:end*/