File manager - Edit - /var/www/ams.cmtc.ac.th/Highcharts-6.0.3/js/modules/stock.js
Back
/* Highcharts JS v6.0.3 (2017-11-14) Highstock as a plugin for Highcharts (c) 2017 Torstein Honsi License: www.highcharts.com/license */ (function(H){"object"===typeof module&&module.exports?module.exports=H:H(Highcharts)})(function(H){(function(a){var C=a.addEvent,r=a.Axis,A=a.Chart,y=a.css,E=a.dateFormat,w=a.defined,F=a.each,g=a.extend,m=a.noop,G=a.pick,D=a.timeUnits,u=a.wrap;u(a.Series.prototype,"init",function(a){var b;a.apply(this,Array.prototype.slice.call(arguments,1));(b=this.xAxis)&&b.options.ordinal&&C(this,"updatedData",function(){delete b.ordinalIndex})});u(r.prototype,"getTimeTicks",function(a,c,q,p,n,k,f,t){var b=0,v, e,l={},h,d,x,z=[],K=-Number.MAX_VALUE,P=this.options.tickPixelInterval;if(!this.options.ordinal&&!this.options.breaks||!k||3>k.length||void 0===q)return a.call(this,c,q,p,n);d=k.length;for(v=0;v<d;v++){x=v&&k[v-1]>p;k[v]<q&&(b=v);if(v===d-1||k[v+1]-k[v]>5*f||x){if(k[v]>K){for(e=a.call(this,c,k[b],k[v],n);e.length&&e[0]<=K;)e.shift();e.length&&(K=e[e.length-1]);z=z.concat(e)}b=v+1}if(x)break}a=e.info;if(t&&a.unitRange<=D.hour){v=z.length-1;for(b=1;b<v;b++)E("%d",z[b])!==E("%d",z[b-1])&&(l[z[b]]="day", h=!0);h&&(l[z[0]]="day");a.higherRanks=l}z.info=a;if(t&&w(P)){t=a=z.length;v=[];var L;for(h=[];t--;)b=this.translate(z[t]),L&&(h[t]=L-b),v[t]=L=b;h.sort();h=h[Math.floor(h.length/2)];h<.6*P&&(h=null);t=z[a-1]>p?a-1:a;for(L=void 0;t--;)b=v[t],p=Math.abs(L-b),L&&p<.8*P&&(null===h||p<.8*h)?(l[z[t]]&&!l[z[t+1]]?(p=t+1,L=b):p=t,z.splice(p,1)):L=b}return z});g(r.prototype,{beforeSetTickPositions:function(){var a,c=[],q=!1,p,n=this.getExtremes(),k=n.min,f=n.max,t,B=this.isXAxis&&!!this.options.breaks,n= this.options.ordinal,v=Number.MAX_VALUE,e=this.chart.options.chart.ignoreHiddenSeries;p="highcharts-navigator-xaxis"===this.options.className;!this.options.overscroll||this.max!==this.dataMax||this.chart.mouseIsDown&&!p||this.eventArgs&&(!this.eventArgs||"navigator"===this.eventArgs.trigger)||(this.max+=this.options.overscroll,!p&&w(this.userMin)&&(this.min+=this.options.overscroll));if(n||B){F(this.series,function(l,h){if(!(e&&!1===l.visible||!1===l.takeOrdinalPosition&&!B)&&(c=c.concat(l.processedXData), a=c.length,c.sort(function(d,e){return d-e}),v=Math.min(v,G(l.closestPointRange,v)),a))for(h=a-1;h--;)c[h]===c[h+1]&&c.splice(h,1)});a=c.length;if(2<a){p=c[1]-c[0];for(t=a-1;t--&&!q;)c[t+1]-c[t]!==p&&(q=!0);!this.options.keepOrdinalPadding&&(c[0]-k>p||f-c[c.length-1]>p)&&(q=!0)}else this.options.overscroll&&(2===a?v=c[1]-c[0]:1===a?(v=this.options.overscroll,c=[c[0],c[0]+v]):v=this.overscrollPointsRange);q?(this.options.overscroll&&(this.overscrollPointsRange=v,c=c.concat(this.getOverscrollPositions())), this.ordinalPositions=c,p=this.ordinal2lin(Math.max(k,c[0]),!0),t=Math.max(this.ordinal2lin(Math.min(f,c[c.length-1]),!0),1),this.ordinalSlope=f=(f-k)/(t-p),this.ordinalOffset=k-p*f):(this.overscrollPointsRange=G(this.closestPointRange,this.overscrollPointsRange),this.ordinalPositions=this.ordinalSlope=this.ordinalOffset=void 0)}this.isOrdinal=n&&q;this.groupIntervalFactor=null},val2lin:function(a,c){var b=this.ordinalPositions;if(b){var p=b.length,n,k;for(n=p;n--;)if(b[n]===a){k=n;break}for(n=p- 1;n--;)if(a>b[n]||0===n){a=(a-b[n])/(b[n+1]-b[n]);k=n+a;break}c=c?k:this.ordinalSlope*(k||0)+this.ordinalOffset}else c=a;return c},lin2val:function(a,c){var b=this.ordinalPositions;if(b){var p=this.ordinalSlope,n=this.ordinalOffset,k=b.length-1,f;if(c)0>a?a=b[0]:a>k?a=b[k]:(k=Math.floor(a),f=a-k);else for(;k--;)if(c=p*k+n,a>=c){p=p*(k+1)+n;f=(a-c)/(p-c);break}return void 0!==f&&void 0!==b[k]?b[k]+(f?f*(b[k+1]-b[k]):0):a}return a},getExtendedPositions:function(){var a=this,c=a.chart,q=a.series[0].currentDataGrouping, p=a.ordinalIndex,n=q?q.count+q.unitName:"raw",k=a.options.overscroll,f=a.getExtremes(),t,B;p||(p=a.ordinalIndex={});p[n]||(t={series:[],chart:c,getExtremes:function(){return{min:f.dataMin,max:f.dataMax+k}},options:{ordinal:!0},val2lin:r.prototype.val2lin,ordinal2lin:r.prototype.ordinal2lin},F(a.series,function(k){B={xAxis:t,xData:k.xData.slice(),chart:c,destroyGroupedData:m};B.xData=B.xData.concat(a.getOverscrollPositions());B.options={dataGrouping:q?{enabled:!0,forced:!0,approximation:"open",units:[[q.unitName, [q.count]]]}:{enabled:!1}};k.processData.apply(B);t.series.push(B)}),a.beforeSetTickPositions.apply(t),p[n]=t.ordinalPositions);return p[n]},getOverscrollPositions:function(){var b=this.options.overscroll,c=this.overscrollPointsRange,q=[],p=this.dataMax;if(a.defined(c))for(q.push(p);p<=this.dataMax+b;)p+=c,q.push(p);return q},getGroupIntervalFactor:function(a,c,q){var b;q=q.processedXData;var n=q.length,k=[];b=this.groupIntervalFactor;if(!b){for(b=0;b<n-1;b++)k[b]=q[b+1]-q[b];k.sort(function(k,a){return k- a});k=k[Math.floor(n/2)];a=Math.max(a,q[0]);c=Math.min(c,q[n-1]);this.groupIntervalFactor=b=n*k/(c-a)}return b},postProcessTickInterval:function(a){var b=this.ordinalSlope;return b?this.options.breaks?this.closestPointRange||a:a/(b/this.closestPointRange):a}});r.prototype.ordinal2lin=r.prototype.val2lin;u(A.prototype,"pan",function(a,c){var b=this.xAxis[0],p=b.options.overscroll,n=c.chartX,k=!1;if(b.options.ordinal&&b.series.length){var f=this.mouseDownX,t=b.getExtremes(),B=t.dataMax,v=t.min,e=t.max, l=this.hoverPoints,h=b.closestPointRange||b.overscrollPointsRange,f=(f-n)/(b.translationSlope*(b.ordinalSlope||h)),d={ordinalPositions:b.getExtendedPositions()},h=b.lin2val,x=b.val2lin,z;d.ordinalPositions?1<Math.abs(f)&&(l&&F(l,function(d){d.setState()}),0>f?(l=d,z=b.ordinalPositions?b:d):(l=b.ordinalPositions?b:d,z=d),d=z.ordinalPositions,B>d[d.length-1]&&d.push(B),this.fixedRange=e-v,f=b.toFixedRange(null,null,h.apply(l,[x.apply(l,[v,!0])+f,!0]),h.apply(z,[x.apply(z,[e,!0])+f,!0])),f.min>=Math.min(t.dataMin, v)&&f.max<=Math.max(B,e)+p&&b.setExtremes(f.min,f.max,!0,!1,{trigger:"pan"}),this.mouseDownX=n,y(this.container,{cursor:"move"})):k=!0}else k=!0;k&&(p&&(b.max=b.dataMax+p),a.apply(this,Array.prototype.slice.call(arguments,1)))})})(H);(function(a){function C(){return Array.prototype.slice.call(arguments,1)}function r(a){a.apply(this);this.drawBreaks(this.xAxis,["x"]);this.drawBreaks(this.yAxis,A(this.pointArrayMap,["y"]))}var A=a.pick,y=a.wrap,E=a.each,w=a.extend,F=a.isArray,g=a.fireEvent,m=a.Axis, G=a.Series;w(m.prototype,{isInBreak:function(a,g){var b=a.repeat||Infinity,c=a.from,q=a.to-a.from;g=g>=c?(g-c)%b:b-(c-g)%b;return a.inclusive?g<=q:g<q&&0!==g},isInAnyBreak:function(a,g){var b=this.options.breaks,c=b&&b.length,q,p,n;if(c){for(;c--;)this.isInBreak(b[c],a)&&(q=!0,p||(p=A(b[c].showPoints,this.isXAxis?!1:!0)));n=q&&g?q&&!p:q}return n}});y(m.prototype,"setTickPositions",function(a){a.apply(this,Array.prototype.slice.call(arguments,1));if(this.options.breaks){var g=this.tickPositions,b= this.tickPositions.info,c=[],q;for(q=0;q<g.length;q++)this.isInAnyBreak(g[q])||c.push(g[q]);this.tickPositions=c;this.tickPositions.info=b}});y(m.prototype,"init",function(a,u,b){var c=this;b.breaks&&b.breaks.length&&(b.ordinal=!1);a.call(this,u,b);a=this.options.breaks;c.isBroken=F(a)&&!!a.length;c.isBroken&&(c.val2lin=function(a){var b=a,n,k;for(k=0;k<c.breakArray.length;k++)if(n=c.breakArray[k],n.to<=a)b-=n.len;else if(n.from>=a)break;else if(c.isInBreak(n,a)){b-=a-n.from;break}return b},c.lin2val= function(a){var b,n;for(n=0;n<c.breakArray.length&&!(b=c.breakArray[n],b.from>=a);n++)b.to<a?a+=b.len:c.isInBreak(b,a)&&(a+=b.len);return a},c.setExtremes=function(a,b,c,k,f){for(;this.isInAnyBreak(a);)a-=this.closestPointRange;for(;this.isInAnyBreak(b);)b-=this.closestPointRange;m.prototype.setExtremes.call(this,a,b,c,k,f)},c.setAxisTranslation=function(a){m.prototype.setAxisTranslation.call(this,a);a=c.options.breaks;var b=[],n=[],k=0,f,t,B=c.userMin||c.min,v=c.userMax||c.max,e=A(c.pointRangePadding, 0),l,h;E(a,function(d){t=d.repeat||Infinity;c.isInBreak(d,B)&&(B+=d.to%t-B%t);c.isInBreak(d,v)&&(v-=v%t-d.from%t)});E(a,function(d){l=d.from;for(t=d.repeat||Infinity;l-t>B;)l-=t;for(;l<B;)l+=t;for(h=l;h<v;h+=t)b.push({value:h,move:"in"}),b.push({value:h+(d.to-d.from),move:"out",size:d.breakSize})});b.sort(function(d,e){return d.value===e.value?("in"===d.move?0:1)-("in"===e.move?0:1):d.value-e.value});f=0;l=B;E(b,function(d){f+="in"===d.move?1:-1;1===f&&"in"===d.move&&(l=d.value);0===f&&(n.push({from:l, to:d.value,len:d.value-l-(d.size||0)}),k+=d.value-l-(d.size||0))});c.breakArray=n;c.unitLength=v-B-k+e;g(c,"afterBreaks");c.options.staticScale?c.transA=c.options.staticScale:c.unitLength&&(c.transA*=(v-c.min+e)/c.unitLength);e&&(c.minPixelPadding=c.transA*c.minPointOffset);c.min=B;c.max=v})});y(G.prototype,"generatePoints",function(a){a.apply(this,C(arguments));var g=this.xAxis,b=this.yAxis,c=this.points,m,p=c.length,n=this.options.connectNulls,k;if(g&&b&&(g.options.breaks||b.options.breaks))for(;p--;)m= c[p],k=null===m.y&&!1===n,k||!g.isInAnyBreak(m.x,!0)&&!b.isInAnyBreak(m.y,!0)||(c.splice(p,1),this.data[p]&&this.data[p].destroyElements())});a.Series.prototype.drawBreaks=function(a,m){var b=this,c=b.points,q,p,n,k;a&&E(m,function(f){q=a.breakArray||[];p=a.isXAxis?a.min:A(b.options.threshold,a.min);E(c,function(b){k=A(b["stack"+f.toUpperCase()],b[f]);E(q,function(f){n=!1;if(p<f.from&&k>f.to||p>f.from&&k<f.from)n="pointBreak";else if(p<f.from&&k>f.from&&k<f.to||p>f.from&&k>f.to&&k<f.from)n="pointInBreak"; n&&g(a,n,{point:b,brk:f})})})})};a.Series.prototype.gappedPath=function(){var g=this.options.gapSize,m=this.points.slice(),b=m.length-1,c=this.yAxis,q;if(g&&0<b)for("value"!==this.options.gapUnit&&(g*=this.closestPointRange);b--;)m[b+1].x-m[b].x>g&&(q=(m[b].x+m[b+1].x)/2,m.splice(b+1,0,{isNull:!0,x:q}),this.options.stacking&&(q=c.stacks[this.stackKey][q]=new a.StackItem(c,c.options.stackLabels,!1,q,this.stack),q.total=0));return this.getGraphPath(m)};y(a.seriesTypes.column.prototype,"drawPoints", r);y(a.Series.prototype,"drawPoints",r)})(H);(function(a){var C=a.arrayMax,r=a.arrayMin,A=a.Axis,y=a.defaultPlotOptions,E=a.defined,w=a.each,F=a.extend,g=a.format,m=a.isNumber,G=a.merge,D=a.pick,u=a.Point,b=a.Tooltip,c=a.wrap,q=a.Series.prototype,p=q.processData,n=q.generatePoints,k=q.destroy,f={approximation:"average",groupPixelWidth:2,dateTimeLabelFormats:{millisecond:["%A, %b %e, %H:%M:%S.%L","%A, %b %e, %H:%M:%S.%L","-%H:%M:%S.%L"],second:["%A, %b %e, %H:%M:%S","%A, %b %e, %H:%M:%S","-%H:%M:%S"], minute:["%A, %b %e, %H:%M","%A, %b %e, %H:%M","-%H:%M"],hour:["%A, %b %e, %H:%M","%A, %b %e, %H:%M","-%H:%M"],day:["%A, %b %e, %Y","%A, %b %e","-%A, %b %e, %Y"],week:["Week from %A, %b %e, %Y","%A, %b %e","-%A, %b %e, %Y"],month:["%B %Y","%B","-%B %Y"],year:["%Y","%Y","-%Y"]}},t={line:{},spline:{},area:{},areaspline:{},column:{approximation:"sum",groupPixelWidth:10},arearange:{approximation:"range"},areasplinerange:{approximation:"range"},columnrange:{approximation:"range",groupPixelWidth:10},candlestick:{approximation:"ohlc", groupPixelWidth:10},ohlc:{approximation:"ohlc",groupPixelWidth:5}},B=a.defaultDataGroupingUnits=[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1]],["week",[1]],["month",[1,3,6]],["year",null]],v=a.approximations={sum:function(e){var a=e.length,h;if(!a&&e.hasNulls)h=null;else if(a)for(h=0;a--;)h+=e[a];return h},average:function(e){var a=e.length;e=v.sum(e);m(e)&&a&&(e/=a);return e},averages:function(){var e= [];w(arguments,function(a){e.push(v.average(a))});return void 0===e[0]?void 0:e},open:function(e){return e.length?e[0]:e.hasNulls?null:void 0},high:function(e){return e.length?C(e):e.hasNulls?null:void 0},low:function(e){return e.length?r(e):e.hasNulls?null:void 0},close:function(e){return e.length?e[e.length-1]:e.hasNulls?null:void 0},ohlc:function(e,a,h,d){e=v.open(e);a=v.high(a);h=v.low(h);d=v.close(d);if(m(e)||m(a)||m(h)||m(d))return[e,a,h,d]},range:function(e,a){e=v.low(e);a=v.high(a);if(m(e)|| m(a))return[e,a];if(null===e&&null===a)return null}};q.groupData=function(a,l,h,d){var e=this.data,k=this.options.data,b=[],P=[],L=[],I=a.length,c,g,n=!!l,J=[];d="function"===typeof d?d:v[d]||t[this.type]&&v[t[this.type].approximation]||v[f.approximation];var S=this.pointArrayMap,q=S&&S.length,B=0;g=0;var p,u;q?w(S,function(){J.push([])}):J.push([]);p=q||1;for(u=0;u<=I&&!(a[u]>=h[0]);u++);for(u;u<=I;u++){for(;void 0!==h[B+1]&&a[u]>=h[B+1]||u===I;){c=h[B];this.dataGroupInfo={start:g,length:J[0].length}; g=d.apply(this,J);void 0!==g&&(b.push(c),P.push(g),L.push(this.dataGroupInfo));g=u;for(c=0;c<p;c++)J[c].length=0,J[c].hasNulls=!1;B+=1;if(u===I)break}if(u===I)break;if(S){c=this.cropStart+u;var y=e&&e[c]||this.pointClass.prototype.applyOptions.apply({series:this},[k[c]]),D;for(c=0;c<q;c++)D=y[S[c]],m(D)?J[c].push(D):null===D&&(J[c].hasNulls=!0)}else c=n?l[u]:null,m(c)?J[0].push(c):null===c&&(J[0].hasNulls=!0)}return[b,P,L]};q.processData=function(){var a=this.chart,l=this.options.dataGrouping,h=!1!== this.allowDG&&l&&D(l.enabled,a.options.isStock),d=this.visible||!a.options.chart.ignoreHiddenSeries,x,k=this.currentDataGrouping,f;this.forceCrop=h;this.groupPixelWidth=null;this.hasProcessed=!0;if(!1!==p.apply(this,arguments)&&h){this.destroyGroupedData();var b=this.processedXData,c=this.processedYData,I=a.plotSizeX,a=this.xAxis,t=a.options.ordinal,g=this.groupPixelWidth=a.getGroupPixelWidth&&a.getGroupPixelWidth();if(g){this.isDirty=x=!0;this.points=null;h=a.getExtremes();f=h.min;h=h.max;t=t&&a.getGroupIntervalFactor(f, h,this)||1;g=g*(h-f)/I*t;I=a.getTimeTicks(a.normalizeTimeTickInterval(g,l.units||B),Math.min(f,b[0]),Math.max(h,b[b.length-1]),a.options.startOfWeek,b,this.closestPointRange);b=q.groupData.apply(this,[b,c,I,l.approximation]);c=b[0];t=b[1];if(l.smoothed&&c.length){l=c.length-1;for(c[l]=Math.min(c[l],h);l--&&0<l;)c[l]+=g/2;c[0]=Math.max(c[0],f)}f=I.info;this.closestPointRange=I.info.totalRange;this.groupMap=b[2];E(c[0])&&c[0]<a.dataMin&&d&&(a.min===a.dataMin&&(a.min=c[0]),a.dataMin=c[0]);this.processedXData= c;this.processedYData=t}else this.groupMap=null;this.hasGroupedData=x;this.currentDataGrouping=f;this.preventGraphAnimation=(k&&k.totalRange)!==(f&&f.totalRange)}};q.destroyGroupedData=function(){var a=this.groupedData;w(a||[],function(e,h){e&&(a[h]=e.destroy?e.destroy():null)});this.groupedData=null};q.generatePoints=function(){n.apply(this);this.destroyGroupedData();this.groupedData=this.hasGroupedData?this.points:null};c(u.prototype,"update",function(e){this.dataGroup?a.error(24):e.apply(this, [].slice.call(arguments,1))});c(b.prototype,"tooltipFooterHeaderFormatter",function(e,l,h){var d=l.series,x=d.tooltipOptions,k=d.options.dataGrouping,f=x.xDateFormat,b,c=d.xAxis,I=a.dateFormat;return c&&"datetime"===c.options.type&&k&&m(l.key)?(e=d.currentDataGrouping,k=k.dateTimeLabelFormats,e?(c=k[e.unitName],1===e.count?f=c[0]:(f=c[1],b=c[2])):!f&&k&&(f=this.getXDateFormat(l,x,c)),f=I(f,l.key),b&&(f+=I(b,l.key+e.totalRange-1)),g(x[(h?"footer":"header")+"Format"],{point:F(l.point,{key:f}),series:d})): e.call(this,l,h)});q.destroy=function(){for(var a=this.groupedData||[],l=a.length;l--;)a[l]&&a[l].destroy();k.apply(this)};c(q,"setOptions",function(a,k){a=a.call(this,k);var e=this.type,d=this.chart.options.plotOptions,x=y[e].dataGrouping;t[e]&&(x||(x=G(f,t[e])),a.dataGrouping=G(x,d.series&&d.series.dataGrouping,d[e].dataGrouping,k.dataGrouping));this.chart.options.isStock&&(this.requireSorting=!0);return a});c(A.prototype,"setScale",function(a){a.call(this);w(this.series,function(a){a.hasProcessed= !1})});A.prototype.getGroupPixelWidth=function(){var a=this.series,k=a.length,h,d=0,x=!1,z;for(h=k;h--;)(z=a[h].options.dataGrouping)&&(d=Math.max(d,z.groupPixelWidth));for(h=k;h--;)(z=a[h].options.dataGrouping)&&a[h].hasProcessed&&(k=(a[h].processedXData||a[h].data).length,a[h].groupPixelWidth||k>this.chart.plotSizeX/d||k&&z.forced)&&(x=!0);return x?d:0};A.prototype.setDataGrouping=function(a,k){var h;k=D(k,!0);a||(a={forced:!1,units:null});if(this instanceof A)for(h=this.series.length;h--;)this.series[h].update({dataGrouping:a}, !1);else w(this.chart.options.series,function(d){d.dataGrouping=a},!1);k&&this.chart.redraw()}})(H);(function(a){var C=a.each,r=a.Point,A=a.seriesType,y=a.seriesTypes;A("ohlc","column",{lineWidth:1,tooltip:{pointFormat:'\x3cspan class\x3d"highcharts-color-{point.colorIndex}"\x3e\u25cf\x3c/span\x3e \x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eOpen: {point.open}\x3cbr/\x3eHigh: {point.high}\x3cbr/\x3eLow: {point.low}\x3cbr/\x3eClose: {point.close}\x3cbr/\x3e'},threshold:null,stickyTracking:!0},{directTouch:!1, pointArrayMap:["open","high","low","close"],toYData:function(a){return[a.open,a.high,a.low,a.close]},pointValKey:"close",translate:function(){var a=this,w=a.yAxis,r=!!a.modifyValue,g=["plotOpen","plotHigh","plotLow","plotClose","yBottom"];y.column.prototype.translate.apply(a);C(a.points,function(m){C([m.open,m.high,m.low,m.close,m.low],function(y,D){null!==y&&(r&&(y=a.modifyValue(y)),m[g[D]]=w.toPixels(y,!0))});m.tooltipPos[1]=m.plotHigh+w.pos-a.chart.plotTop})},drawPoints:function(){var a=this,y= a.chart;C(a.points,function(w){var g,m,r,D,u=w.graphic,b,c=!u;void 0!==w.plotY&&(u||(w.graphic=u=y.renderer.path().add(a.group)),m=u.strokeWidth()%2/2,b=Math.round(w.plotX)-m,r=Math.round(w.shapeArgs.width/2),D=["M",b,Math.round(w.yBottom),"L",b,Math.round(w.plotHigh)],null!==w.open&&(g=Math.round(w.plotOpen)+m,D.push("M",b,g,"L",b-r,g)),null!==w.close&&(g=Math.round(w.plotClose)+m,D.push("M",b,g,"L",b+r,g)),u[c?"attr":"animate"]({d:D}).addClass(w.getClassName(),!0))})},animate:null},{getClassName:function(){return r.prototype.getClassName.call(this)+ (this.open<this.close?" highcharts-point-up":" highcharts-point-down")}})})(H);(function(a){var C=a.defaultPlotOptions,r=a.each,A=a.merge;a=a.seriesType;a("candlestick","ohlc",A(C.column,{states:{hover:{lineWidth:2}},tooltip:C.ohlc.tooltip,threshold:null}),{drawPoints:function(){var a=this,A=a.chart;r(a.points,function(w){var y=w.graphic,g,m,r,D,u,b,c,q=!y;void 0!==w.plotY&&(y||(w.graphic=y=A.renderer.path().add(a.group)),u=y.strokeWidth()%2/2,b=Math.round(w.plotX)-u,g=w.plotOpen,m=w.plotClose,r= Math.min(g,m),g=Math.max(g,m),c=Math.round(w.shapeArgs.width/2),m=Math.round(r)!==Math.round(w.plotHigh),D=g!==w.yBottom,r=Math.round(r)+u,g=Math.round(g)+u,u=[],u.push("M",b-c,g,"L",b-c,r,"L",b+c,r,"L",b+c,g,"Z","M",b,r,"L",b,m?Math.round(w.plotHigh):r,"M",b,g,"L",b,D?Math.round(w.yBottom):g),y[q?"attr":"animate"]({d:u}).addClass(w.getClassName(),!0))})}})})(H);var U=function(a){var C=a.each,r=a.seriesTypes,A=a.stableSort;return{translate:function(){r.column.prototype.translate.apply(this);var a= this.options,E=this.chart,w=this.points,F=w.length-1,g,m,G=a.onSeries;g=G&&E.get(G);var a=a.onKey||"y",G=g&&g.options.step,D=g&&g.points,u=D&&D.length,b=this.xAxis,c=this.yAxis,q=b.getExtremes(),p=0,n,k,f;if(g&&g.visible&&u)for(p=(g.pointXOffset||0)+(g.barW||0)/2,g=g.currentDataGrouping,k=D[u-1].x+(g?g.totalRange:0),A(w,function(a,k){return a.x-k.x}),a="plot"+a[0].toUpperCase()+a.substr(1);u--&&w[F]&&!(g=w[F],n=D[u],n.x<=g.x&&void 0!==n[a]&&(g.x<=k&&(g.plotY=n[a],n.x<g.x&&!G&&(f=D[u+1])&&void 0!== f[a]&&(g.plotY+=(g.x-n.x)/(f.x-n.x)*(f[a]-n[a]))),F--,u++,0>F)););C(w,function(a,k){var f;void 0===a.plotY&&(a.x>=q.min&&a.x<=q.max?a.plotY=E.chartHeight-b.bottom-(b.opposite?b.height:0)+b.offset-c.top:a.shapeArgs={});a.plotX+=p;(m=w[k-1])&&m.plotX===a.plotX&&(void 0===m.stackIndex&&(m.stackIndex=0),f=m.stackIndex+1);a.stackIndex=f})}}}(H);(function(a,C){var r=a.addEvent,A=a.each,y=a.noop,E=a.seriesType,w=a.TrackerMixin,F=a.SVGRenderer.prototype.symbols;E("flags","column",{pointRange:0,shape:"flag", stackDistance:12,textAlign:"center",tooltip:{pointFormat:"{point.text}\x3cbr/\x3e"},threshold:null,y:-30},{sorted:!1,noSharedTooltip:!0,allowDG:!1,takeOrdinalPosition:!1,trackerGroups:["markerGroup"],forceCrop:!0,init:a.Series.prototype.init,translate:C.translate,drawPoints:function(){var g=this.points,m=this.chart,w=m.renderer,r,u,b=this.options,c=b.y,q,p,n,k,f,t,B=this.yAxis,v={},e=[];for(p=g.length;p--;)n=g[p],t=n.plotX>this.xAxis.len,r=n.plotX,k=n.stackIndex,q=n.options.shape||b.shape,u=n.plotY, void 0!==u&&(u=n.plotY+c-(void 0!==k&&k*b.stackDistance)),n.anchorX=k?void 0:n.plotX,f=k?void 0:n.plotY,k=n.graphic,void 0!==u&&0<=r&&!t?(k||(k=n.graphic=w.label("",null,null,q,null,null,b.useHTML).attr({align:"flag"===q?"left":"center",width:b.width,height:b.height,"text-align":b.textAlign}).addClass("highcharts-point").add(this.markerGroup),n.graphic.div&&(n.graphic.div.point=n),k.isNew=!0),0<r&&(r-=k.strokeWidth()%2),k.attr({text:n.options.title||b.title||"A"})[k.isNew?"attr":"animate"]({y:u,anchorY:f}), v[n.plotX]?v[n.plotX].size=Math.max(v[n.plotX].size,k.width):v[n.plotX]={align:0,size:k.width,target:r,anchorX:r},n.tooltipPos=m.inverted?[B.len+B.pos-m.plotLeft-u,this.xAxis.len-r]:[r,u+B.pos-m.plotTop]):k&&(n.graphic=k.destroy());a.objectEach(v,function(a){a.plotX=a.anchorX;e.push(a)});a.distribute(e,this.xAxis.len);A(g,function(a){var k=a.graphic&&v[a.plotX];k&&(a.graphic[a.graphic.isNew?"attr":"animate"]({x:k.pos,anchorX:a.anchorX}),a.graphic.isNew=!1)});b.useHTML&&a.wrap(this.markerGroup,"on", function(k){return a.SVGElement.prototype.on.apply(k.apply(this,[].slice.call(arguments,1)),[].slice.call(arguments,1))})},drawTracker:function(){var a=this.points;w.drawTrackerPoint.apply(this);A(a,function(g){var m=g.graphic;m&&r(m.element,"mouseover",function(){0<g.stackIndex&&!g.raised&&(g._y=m.y,m.attr({y:g._y-8}),g.raised=!0);A(a,function(a){a!==g&&a.raised&&a.graphic&&(a.graphic.attr({y:a._y}),a.raised=!1)})})})},animate:y,buildKDTree:y,setClip:y});F.flag=function(a,m,r,w,u){var b=u&&u.anchorX|| a;u=u&&u.anchorY||m;return F.circle(b-1,u-1,2,2).concat(["M",b,u,"L",a,m+w,a,m,a+r,m,a+r,m+w,a,m+w,"Z"])};A(["circle","square"],function(a){F[a+"pin"]=function(g,r,w,u,b){var c=b&&b.anchorX;b=b&&b.anchorY;"circle"===a&&u>w&&(g-=Math.round((u-w)/2),w=u);g=F[a](g,r,w,u);c&&b&&(g.push("M","circle"===a?g[1]-g[4]:g[1]+g[4]/2,r>b?r:r+u,"L",c,b),g=g.concat(F.circle(c-1,b-1,2,2)));return g}})})(H,U);(function(a){function C(a,f,b){this.init(a,f,b)}var r=a.addEvent,A=a.Axis,y=a.correctFloat,E=a.defaultOptions, w=a.defined,F=a.destroyObjectProperties,g=a.each,m=a.fireEvent,G=a.hasTouch,D=a.isTouchDevice,u=a.merge,b=a.pick,c=a.removeEvent,q=a.wrap,p,n={height:D?20:14,barBorderRadius:0,buttonBorderRadius:0,liveRedraw:a.svg&&!D,margin:10,minWidth:6,step:.2,zIndex:3};E.scrollbar=u(!0,n,E.scrollbar);a.swapXY=p=function(a,f){var k=a.length,b;if(f)for(f=0;f<k;f+=3)b=a[f+1],a[f+1]=a[f+2],a[f+2]=b;return a};C.prototype={init:function(a,f,c){this.scrollbarButtons=[];this.renderer=a;this.userOptions=f;this.options= u(n,f);this.chart=c;this.size=b(this.options.size,this.options.height);f.enabled&&(this.render(),this.initEvents(),this.addEvents())},render:function(){var a=this.renderer,f=this.options,b=this.size,c;this.group=c=a.g("scrollbar").attr({zIndex:f.zIndex,translateY:-99999}).add();this.track=a.rect().addClass("highcharts-scrollbar-track").attr({x:0,r:f.trackBorderRadius||0,height:b,width:b}).add(c);this.trackBorderWidth=this.track.strokeWidth();this.track.attr({y:-this.trackBorderWidth%2/2});this.scrollbarGroup= a.g().add(c);this.scrollbar=a.rect().addClass("highcharts-scrollbar-thumb").attr({height:b,width:b,r:f.barBorderRadius||0}).add(this.scrollbarGroup);this.scrollbarRifles=a.path(p(["M",-3,b/4,"L",-3,2*b/3,"M",0,b/4,"L",0,2*b/3,"M",3,b/4,"L",3,2*b/3],f.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup);this.scrollbarStrokeWidth=this.scrollbar.strokeWidth();this.scrollbarGroup.translate(-this.scrollbarStrokeWidth%2/2,-this.scrollbarStrokeWidth%2/2);this.drawScrollbarButton(0); this.drawScrollbarButton(1)},position:function(a,b,c,g){var k=this.options.vertical,e=0,l=this.rendered?"animate":"attr";this.x=a;this.y=b+this.trackBorderWidth;this.width=c;this.xOffset=this.height=g;this.yOffset=e;k?(this.width=this.yOffset=c=e=this.size,this.xOffset=b=0,this.barWidth=g-2*c,this.x=a+=this.options.margin):(this.height=this.xOffset=g=b=this.size,this.barWidth=c-2*g,this.y+=this.options.margin);this.group[l]({translateX:a,translateY:this.y});this.track[l]({width:c,height:g});this.scrollbarButtons[1][l]({translateX:k? 0:c-b,translateY:k?g-e:0})},drawScrollbarButton:function(a){var k=this.renderer,b=this.scrollbarButtons,c=this.options,g=this.size,e;e=k.g().add(this.group);b.push(e);e=k.rect().addClass("highcharts-scrollbar-button").add(e);e.attr(e.crisp({x:-.5,y:-.5,width:g+1,height:g+1,r:c.buttonBorderRadius},e.strokeWidth()));k.path(p(["M",g/2+(a?-1:1),g/2-3,"L",g/2+(a?-1:1),g/2+3,"L",g/2+(a?2:-2),g/2],c.vertical)).addClass("highcharts-scrollbar-arrow").add(b[a])},setRange:function(a,b){var k=this.options,f= k.vertical,c=k.minWidth,e=this.barWidth,l,h,d=this.rendered&&!this.hasDragged?"animate":"attr";w(e)&&(a=Math.max(a,0),l=Math.ceil(e*a),this.calculatedWidth=h=y(e*Math.min(b,1)-l),h<c&&(l=(e-c+h)*a,h=c),c=Math.floor(l+this.xOffset+this.yOffset),e=h/2-.5,this.from=a,this.to=b,f?(this.scrollbarGroup[d]({translateY:c}),this.scrollbar[d]({height:h}),this.scrollbarRifles[d]({translateY:e}),this.scrollbarTop=c,this.scrollbarLeft=0):(this.scrollbarGroup[d]({translateX:c}),this.scrollbar[d]({width:h}),this.scrollbarRifles[d]({translateX:e}), this.scrollbarLeft=c,this.scrollbarTop=0),12>=h?this.scrollbarRifles.hide():this.scrollbarRifles.show(!0),!1===k.showFull&&(0>=a&&1<=b?this.group.hide():this.group.show()),this.rendered=!0)},initEvents:function(){var a=this;a.mouseMoveHandler=function(b){var c=a.chart.pointer.normalize(b),f=a.options.vertical?"chartY":"chartX",k=a.initPositions;!a.grabbedCenter||b.touches&&0===b.touches[0][f]||(c=a.cursorToScrollbarPosition(c)[f],f=a[f],f=c-f,a.hasDragged=!0,a.updatePosition(k[0]+f,k[1]+f),a.hasDragged&& m(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMType:b.type,DOMEvent:b}))};a.mouseUpHandler=function(b){a.hasDragged&&m(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMType:b.type,DOMEvent:b});a.grabbedCenter=a.hasDragged=a.chartX=a.chartY=null};a.mouseDownHandler=function(b){b=a.chart.pointer.normalize(b);b=a.cursorToScrollbarPosition(b);a.chartX=b.chartX;a.chartY=b.chartY;a.initPositions=[a.from,a.to];a.grabbedCenter=!0};a.buttonToMinClick=function(b){var c=y(a.to-a.from)*a.options.step; a.updatePosition(y(a.from-c),y(a.to-c));m(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:b})};a.buttonToMaxClick=function(b){var c=(a.to-a.from)*a.options.step;a.updatePosition(a.from+c,a.to+c);m(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:b})};a.trackClick=function(b){var c=a.chart.pointer.normalize(b),f=a.to-a.from,k=a.y+a.scrollbarTop,e=a.x+a.scrollbarLeft;a.options.vertical&&c.chartY>k||!a.options.vertical&&c.chartX>e?a.updatePosition(a.from+f,a.to+f):a.updatePosition(a.from- f,a.to-f);m(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:b})}},cursorToScrollbarPosition:function(a){var b=this.options,b=b.minWidth>this.calculatedWidth?b.minWidth:0;return{chartX:(a.chartX-this.x-this.xOffset)/(this.barWidth-b),chartY:(a.chartY-this.y-this.yOffset)/(this.barWidth-b)}},updatePosition:function(a,b){1<b&&(a=y(1-y(b-a)),b=1);0>a&&(b=y(b-a),a=0);this.from=a;this.to=b},update:function(a){this.destroy();this.init(this.chart.renderer,u(!0,this.options,a),this.chart)},addEvents:function(){var a= this.options.inverted?[1,0]:[0,1],b=this.scrollbarButtons,c=this.scrollbarGroup.element,n=this.mouseDownHandler,m=this.mouseMoveHandler,e=this.mouseUpHandler,a=[[b[a[0]].element,"click",this.buttonToMinClick],[b[a[1]].element,"click",this.buttonToMaxClick],[this.track.element,"click",this.trackClick],[c,"mousedown",n],[c.ownerDocument,"mousemove",m],[c.ownerDocument,"mouseup",e]];G&&a.push([c,"touchstart",n],[c.ownerDocument,"touchmove",m],[c.ownerDocument,"touchend",e]);g(a,function(a){r.apply(null, a)});this._events=a},removeEvents:function(){g(this._events,function(a){c.apply(null,a)});this._events.length=0},destroy:function(){var a=this.chart.scroller;this.removeEvents();g(["track","scrollbarRifles","scrollbar","scrollbarGroup","group"],function(a){this[a]&&this[a].destroy&&(this[a]=this[a].destroy())},this);a&&this===a.scrollbar&&(a.scrollbar=null,F(a.scrollbarButtons))}};q(A.prototype,"init",function(a){var c=this;a.apply(c,Array.prototype.slice.call(arguments,1));c.options.scrollbar&&c.options.scrollbar.enabled&& (c.options.scrollbar.vertical=!c.horiz,c.options.startOnTick=c.options.endOnTick=!1,c.scrollbar=new C(c.chart.renderer,c.options.scrollbar,c.chart),r(c.scrollbar,"changed",function(a){var k=Math.min(b(c.options.min,c.min),c.min,c.dataMin),f=Math.max(b(c.options.max,c.max),c.max,c.dataMax)-k,e;c.horiz&&!c.reversed||!c.horiz&&c.reversed?(e=k+f*this.to,k+=f*this.from):(e=k+f*(1-this.from),k+=f*(1-this.to));c.setExtremes(k,e,!0,!1,a)}))});q(A.prototype,"render",function(a){var c=Math.min(b(this.options.min, this.min),this.min,b(this.dataMin,this.min)),k=Math.max(b(this.options.max,this.max),this.max,b(this.dataMax,this.max)),g=this.scrollbar,n=this.titleOffset||0;a.apply(this,Array.prototype.slice.call(arguments,1));if(g){this.horiz?(g.position(this.left,this.top+this.height+2+this.chart.scrollbarsOffsets[1]+(this.opposite?0:n+this.axisTitleMargin+this.offset),this.width,this.height),n=1):(g.position(this.left+this.width+2+this.chart.scrollbarsOffsets[0]+(this.opposite?n+this.axisTitleMargin+this.offset: 0),this.top,this.width,this.height),n=0);if(!this.opposite&&!this.horiz||this.opposite&&this.horiz)this.chart.scrollbarsOffsets[n]+=this.scrollbar.size+this.scrollbar.options.margin;isNaN(c)||isNaN(k)||!w(this.min)||!w(this.max)?g.setRange(0,0):(n=(this.min-c)/(k-c),c=(this.max-c)/(k-c),this.horiz&&!this.reversed||!this.horiz&&this.reversed?g.setRange(n,c):g.setRange(1-c,1-n))}});q(A.prototype,"getOffset",function(a){var b=this.horiz?2:1,c=this.scrollbar;a.apply(this,Array.prototype.slice.call(arguments, 1));c&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[b]+=c.size+c.options.margin)});q(A.prototype,"destroy",function(a){this.scrollbar&&(this.scrollbar=this.scrollbar.destroy());a.apply(this,Array.prototype.slice.call(arguments,1))});a.Scrollbar=C})(H);(function(a){function C(a){this.init(a)}var r=a.addEvent,A=a.Axis,y=a.Chart,E=a.defaultOptions,w=a.defined,F=a.destroyObjectProperties,g=a.each,m=a.erase,G=a.error,D=a.extend,u=a.grep,b=a.hasTouch,c=a.isArray,q=a.isNumber,p=a.isObject,n= a.merge,k=a.pick,f=a.removeEvent,t=a.Scrollbar,B=a.Series,v=a.seriesTypes,e=a.wrap,l=[].concat(a.defaultDataGroupingUnits),h=function(a){var d=u(arguments,q);if(d.length)return Math[a].apply(0,d)};l[4]=["day",[1,2,3,4]];l[5]=["week",[1,2,3]];D(E,{navigator:{height:40,margin:25,maskInside:!0,handles:{width:7,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0},series:{type:void 0===v.areaspline?"line":"areaspline",compare:null,dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2, smoothed:!0,units:l},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},pointRange:0,threshold:null},xAxis:{overscroll:0,className:"highcharts-navigator-xaxis",tickLength:0,tickPixelInterval:200,labels:{align:"left",x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",startOnTick:!1,endOnTick:!1,minPadding:.1,maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}}}); a.Renderer.prototype.symbols["navigator-handle"]=function(a,b,c,h,e){a=e.width/2;b=Math.round(a/3)+.5;e=e.height;return["M",-a-1,.5,"L",a,.5,"L",a,e+.5,"L",-a-1,e+.5,"L",-a-1,.5,"M",-b,4,"L",-b,e-3,"M",b-1,4,"L",b-1,e-3]};C.prototype={drawHandle:function(a,b,c,e){var d=this.navigatorOptions.handles.height;this.handles[b][e](c?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(a,10)+.5-d)}:{translateX:Math.round(this.left+parseInt(a,10)),translateY:Math.round(this.top+ this.height/2-d/2-1)})},drawOutline:function(a,b,c,e){var d=this.navigatorOptions.maskInside,h=this.outline.strokeWidth(),x=h/2,h=h%2/2,z=this.outlineHeight,l=this.scrollbarHeight,k=this.size,g=this.left-l,f=this.top;c?(g-=x,c=f+b+h,b=f+a+h,a=["M",g+z,f-l-h,"L",g+z,c,"L",g,c,"L",g,b,"L",g+z,b,"L",g+z,f+k+l].concat(d?["M",g+z,c-x,"L",g+z,b+x]:[])):(a+=g+l-h,b+=g+l-h,f+=x,a=["M",g,f,"L",a,f,"L",a,f+z,"L",b,f+z,"L",b,f,"L",g+k+2*l,f].concat(d?["M",a-x,f,"L",b+x,f]:[]));this.outline[e]({d:a})},drawMasks:function(a, b,c,e){var d=this.left,h=this.top,x=this.height,z,l,k,f;c?(k=[d,d,d],f=[h,h+a,h+b],l=[x,x,x],z=[a,b-a,this.size-b]):(k=[d,d+a,d+b],f=[h,h,h],l=[a,b-a,this.size-b],z=[x,x,x]);g(this.shades,function(a,d){a[e]({x:k[d],y:f[d],width:l[d],height:z[d]})})},renderElements:function(){var a=this,b=a.navigatorOptions,c=b.maskInside,h=a.chart,e=h.renderer,l;a.navigatorGroup=l=e.g("navigator").attr({zIndex:8,visibility:"hidden"}).add();g([!c,c,!c],function(d,b){a.shades[b]=e.rect().addClass("highcharts-navigator-mask"+ (1===b?"-inside":"-outside")).add(l)});a.outline=e.path().addClass("highcharts-navigator-outline").add(l);b.handles.enabled&&g([0,1],function(d){b.handles.inverted=h.inverted;a.handles[d]=e.symbol(b.handles.symbols[d],-b.handles.width/2-1,0,b.handles.width,b.handles.height,b.handles);a.handles[d].attr({zIndex:7-d}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][d]).add(l)})},update:function(a){g(this.series||[],function(a){a.baseSeries&&delete a.baseSeries.navigatorSeries}); this.destroy();n(!0,this.chart.options.navigator,this.options,a);this.init(this.chart)},render:function(d,b,c,h){var e=this.chart,x,l,z=this.scrollbarHeight,g,f=this.xAxis;x=f.fake?e.xAxis[0]:f;var n=this.navigatorEnabled,K,m=this.rendered;l=e.inverted;var p,r=e.xAxis[0].minRange,u=e.xAxis[0].options.maxRange;if(!this.hasDragged||w(c)){if(!q(d)||!q(b))if(m)c=0,h=k(f.width,x.width);else return;this.left=k(f.left,e.plotLeft+z+(l?e.plotWidth:0));this.size=K=g=k(f.len,(l?e.plotHeight:e.plotWidth)-2*z); e=l?z:g+2*z;c=k(c,f.toPixels(d,!0));h=k(h,f.toPixels(b,!0));q(c)&&Infinity!==Math.abs(c)||(c=0,h=e);d=f.toValue(c,!0);b=f.toValue(h,!0);p=Math.abs(a.correctFloat(b-d));p<r?this.grabbedLeft?c=f.toPixels(b-r,!0):this.grabbedRight&&(h=f.toPixels(d+r,!0)):w(u)&&p>u&&(this.grabbedLeft?c=f.toPixels(b-u,!0):this.grabbedRight&&(h=f.toPixels(d+u,!0)));this.zoomedMax=Math.min(Math.max(c,h,0),K);this.zoomedMin=Math.min(Math.max(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(c,h),0),K);this.range=this.zoomedMax- this.zoomedMin;K=Math.round(this.zoomedMax);c=Math.round(this.zoomedMin);n&&(this.navigatorGroup.attr({visibility:"visible"}),m=m&&!this.hasDragged?"animate":"attr",this.drawMasks(c,K,l,m),this.drawOutline(c,K,l,m),this.navigatorOptions.handles.enabled&&(this.drawHandle(c,0,l,m),this.drawHandle(K,1,l,m)));this.scrollbar&&(l?(l=this.top-z,x=this.left-z+(n||!x.opposite?0:(x.titleOffset||0)+x.axisTitleMargin),z=g+2*z):(l=this.top+(n?this.height:-z),x=this.left-z),this.scrollbar.position(x,l,e,z),this.scrollbar.setRange(this.zoomedMin/ g,this.zoomedMax/g));this.rendered=!0}},addMouseEvents:function(){var a=this,c=a.chart,e=c.container,h=[],l,f;a.mouseMoveHandler=l=function(d){a.onMouseMove(d)};a.mouseUpHandler=f=function(d){a.onMouseUp(d)};h=a.getPartsEvents("mousedown");h.push(r(e,"mousemove",l),r(e.ownerDocument,"mouseup",f));b&&(h.push(r(e,"touchmove",l),r(e.ownerDocument,"touchend",f)),h.concat(a.getPartsEvents("touchstart")));a.eventsToUnbind=h;a.series&&a.series[0]&&h.push(r(a.series[0].xAxis,"foundExtremes",function(){c.navigator.modifyNavigatorAxisExtremes()}))}, getPartsEvents:function(a){var d=this,b=[];g(["shades","handles"],function(c){g(d[c],function(h,e){b.push(r(h.element,a,function(a){d[c+"Mousedown"](a,e)}))})});return b},shadesMousedown:function(a,b){a=this.chart.pointer.normalize(a);var d=this.chart,c=this.xAxis,h=this.zoomedMin,e=this.left,l=this.size,x=this.range,f=a.chartX,g;d.inverted&&(f=a.chartY,e=this.top);1===b?(this.grabbedCenter=f,this.fixedWidth=x,this.dragOffset=f-h):(a=f-e-x/2,0===b?a=Math.max(0,a):2===b&&a+x>=l&&(a=l-x,g=this.getUnionExtremes().dataMax), a!==h&&(this.fixedWidth=x,b=c.toFixedRange(a,a+x,null,g),d.xAxis[0].setExtremes(Math.min(b.min,b.max),Math.max(b.min,b.max),!0,null,{trigger:"navigator"})))},handlesMousedown:function(a,b){this.chart.pointer.normalize(a);a=this.chart;var d=a.xAxis[0],c=a.inverted&&!d.reversed||!a.inverted&&d.reversed;0===b?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=c?d.min:d.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=c?d.max:d.min);a.fixedRange=null}, onMouseMove:function(a){var d=this,b=d.chart,c=d.left,h=d.navigatorSize,e=d.range,l=d.dragOffset,f=b.inverted;a.touches&&0===a.touches[0].pageX||(a=b.pointer.normalize(a),b=a.chartX,f&&(c=d.top,b=a.chartY),d.grabbedLeft?(d.hasDragged=!0,d.render(0,0,b-c,d.otherHandlePos)):d.grabbedRight?(d.hasDragged=!0,d.render(0,0,d.otherHandlePos,b-c)):d.grabbedCenter&&(d.hasDragged=!0,b<l?b=l:b>h+l-e&&(b=h+l-e),d.render(0,0,b-l,b-l+e)),d.hasDragged&&d.scrollbar&&d.scrollbar.options.liveRedraw&&(a.DOMType=a.type, setTimeout(function(){d.onMouseUp(a)},0)))},onMouseUp:function(a){var d=this.chart,b=this.xAxis,c=this.scrollbar,h,e,l=a.DOMEvent||a;(!this.hasDragged||c&&c.hasDragged)&&"scrollbar"!==a.trigger||(this.zoomedMin===this.otherHandlePos?h=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(e=this.fixedExtreme),this.zoomedMax===this.size&&(e=this.getUnionExtremes().dataMax),b=b.toFixedRange(this.zoomedMin,this.zoomedMax,h,e),w(b.min)&&d.xAxis[0].setExtremes(Math.min(b.min,b.max),Math.max(b.min,b.max), !0,this.hasDragged?!1:null,{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:l}));"mousemove"!==a.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null)},removeEvents:function(){this.eventsToUnbind&&(g(this.eventsToUnbind,function(a){a()}),this.eventsToUnbind=void 0);this.removeBaseSeriesEvents()},removeBaseSeriesEvents:function(){var a=this.baseSeries||[];this.navigatorEnabled&&a[0]&&(!1!== this.navigatorOptions.adaptToUpdatedData&&g(a,function(a){f(a,"updatedData",this.updatedDataHandler)},this),a[0].xAxis&&f(a[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))},init:function(a){var d=a.options,b=d.navigator,c=b.enabled,l=d.scrollbar,f=l.enabled,d=c?b.height:0,g=f?l.height:0;this.handles=[];this.shades=[];this.chart=a;this.setBaseSeries();this.height=d;this.scrollbarHeight=g;this.scrollbarEnabled=f;this.navigatorEnabled=c;this.navigatorOptions=b;this.scrollbarOptions=l;this.outlineHeight= d+g;this.opposite=k(b.opposite,!c&&a.inverted);var m=this,l=m.baseSeries,f=a.xAxis.length,q=a.yAxis.length,p=l&&l[0]&&l[0].xAxis||a.xAxis[0];a.extraMargin={type:m.opposite?"plotTop":"marginBottom",value:(c||!a.inverted?m.outlineHeight:0)+b.margin};a.inverted&&(a.extraMargin.type=m.opposite?"marginRight":"plotLeft");a.isDirtyBox=!0;m.navigatorEnabled?(m.xAxis=new A(a,n({breaks:p.options.breaks,ordinal:p.options.ordinal},b.xAxis,{id:"navigator-x-axis",yAxis:"navigator-y-axis",isX:!0,type:"datetime", index:f,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1},a.inverted?{offsets:[g,0,-g,0],width:d}:{offsets:[0,-g,0,g],height:d})),m.yAxis=new A(a,n(b.yAxis,{id:"navigator-y-axis",alignTicks:!1,offset:0,index:q,zoomEnabled:!1},a.inverted?{width:d}:{height:d})),l||b.series.data?m.updateNavigatorSeries():0===a.series.length&&e(a,"redraw",function(d,b){0<a.series.length&&!m.series&&(m.setBaseSeries(),a.redraw=d);d.call(a,b)}),m.renderElements(),m.addMouseEvents()): m.xAxis={translate:function(d,b){var c=a.xAxis[0],e=c.getExtremes(),l=c.len-2*g,x=h("min",c.options.min,e.dataMin),c=h("max",c.options.max,e.dataMax)-x;return b?d*c/l+x:l*(d-x)/c},toPixels:function(a){return this.translate(a)},toValue:function(a){return this.translate(a,!0)},toFixedRange:A.prototype.toFixedRange,fake:!0};a.options.scrollbar.enabled&&(a.scrollbar=m.scrollbar=new t(a.renderer,n(a.options.scrollbar,{margin:m.navigatorEnabled?0:10,vertical:a.inverted}),a),r(m.scrollbar,"changed",function(d){var b= m.size,c=b*this.to,b=b*this.from;m.hasDragged=m.scrollbar.hasDragged;m.render(0,0,b,c);(a.options.scrollbar.liveRedraw||"mousemove"!==d.DOMType)&&setTimeout(function(){m.onMouseUp(d)})}));m.addBaseSeriesEvents();m.addChartEvents()},getUnionExtremes:function(a){var d=this.chart.xAxis[0],b=this.xAxis,c=b.options,e=d.options,l;a&&null===d.dataMin||(l={dataMin:k(c&&c.min,h("min",e.min,d.dataMin,b.dataMin,b.min)),dataMax:k(c&&c.max,h("max",e.max,d.dataMax,b.dataMax,b.max))});return l},setBaseSeries:function(a, b){var d=this.chart,c=this.baseSeries=[];a=a||d.options&&d.options.navigator.baseSeries||0;g(d.series||[],function(b,d){b.options.isInternal||!b.options.showInNavigator&&(d!==a&&b.options.id!==a||!1===b.options.showInNavigator)||c.push(b)});this.xAxis&&!this.xAxis.fake&&this.updateNavigatorSeries(b)},updateNavigatorSeries:function(b){var d=this,e=d.chart,h=d.baseSeries,l,k,m=d.navigatorOptions.series,q,p={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:"navigator-x-axis", yAxis:"navigator-y-axis",showInLegend:!1,stacking:!1,isInternal:!0,visible:!0},r=d.series=a.grep(d.series||[],function(b){var c=b.baseSeries;return 0>a.inArray(c,h)?(c&&(f(c,"updatedData",d.updatedDataHandler),delete c.navigatorSeries),b.destroy(),!1):!0});h&&h.length&&g(h,function(a){var f=a.navigatorSeries,x=D({color:a.color},c(m)?E.navigator.series:m);f&&!1===d.navigatorOptions.adaptToUpdatedData||(p.name="Navigator "+h.length,l=a.options||{},q=l.navigatorOptions||{},k=n(l,p,x,q),x=q.data||x.data, d.hasNavigatorData=d.hasNavigatorData||!!x,k.data=x||l.data&&l.data.slice(0),f&&f.options?f.update(k,b):(a.navigatorSeries=e.initSeries(k),a.navigatorSeries.baseSeries=a,r.push(a.navigatorSeries)))});if(m.data&&(!h||!h.length)||c(m))d.hasNavigatorData=!1,m=a.splat(m),g(m,function(a,b){p.name="Navigator "+(r.length+1);k=n(E.navigator.series,{color:e.series[b]&&!e.series[b].options.isInternal&&e.series[b].color||e.options.colors[b]||e.options.colors[0]},p,a);k.data=a.data;k.data&&(d.hasNavigatorData= !0,r.push(e.initSeries(k)))});this.addBaseSeriesEvents()},addBaseSeriesEvents:function(){var a=this,b=a.baseSeries||[];b[0]&&b[0].xAxis&&r(b[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes);g(b,function(b){r(b,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)});r(b,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)});!1!==this.navigatorOptions.adaptToUpdatedData&&b.xAxis&&r(b,"updatedData",this.updatedDataHandler);r(b,"remove",function(){this.navigatorSeries&& (m(a.series,this.navigatorSeries),this.navigatorSeries.remove(!1),delete this.navigatorSeries)})},this)},modifyNavigatorAxisExtremes:function(){var a=this.xAxis,b;a.getExtremes&&(!(b=this.getUnionExtremes(!0))||b.dataMin===a.min&&b.dataMax===a.max||(a.min=b.dataMin,a.max=b.dataMax))},modifyBaseAxisExtremes:function(){var a=this.chart.navigator,b=this.getExtremes(),c=b.dataMin,e=b.dataMax,b=b.max-b.min,h=a.stickToMin,l=a.stickToMax,f=this.options.overscroll,g,k,m=a.series&&a.series[0],n=!!this.setExtremes; this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger||(h&&(k=c,g=k+b),l&&(g=e+f,h||(k=Math.max(g-b,m&&m.xData?m.xData[0]:-Number.MAX_VALUE))),n&&(h||l)&&q(k)&&(this.min=this.userMin=k,this.max=this.userMax=g));a.stickToMin=a.stickToMax=null},updatedDataHandler:function(){var a=this.chart.navigator,b=this.navigatorSeries;a.stickToMax=Math.round(a.zoomedMax)>=Math.round(a.size);a.stickToMin=q(this.xAxis.min)&&this.xAxis.min<=this.xData[0]&&(!this.chart.fixedRange||!a.stickToMax);b&&!a.hasNavigatorData&& (b.options.pointStart=this.xData[0],b.setData(this.options.data,!1,null,!1))},addChartEvents:function(){r(this.chart,"redraw",function(){var a=this.navigator,b=a&&(a.baseSeries&&a.baseSeries[0]&&a.baseSeries[0].xAxis||a.scrollbar&&this.xAxis[0]);b&&a.render(b.min,b.max)})},destroy:function(){this.removeEvents();this.xAxis&&(m(this.chart.xAxis,this.xAxis),m(this.chart.axes,this.xAxis));this.yAxis&&(m(this.chart.yAxis,this.yAxis),m(this.chart.axes,this.yAxis));g(this.series||[],function(a){a.destroy&& a.destroy()});g("series xAxis yAxis shades outline scrollbarTrack scrollbarRifles scrollbarGroup scrollbar navigatorGroup rendered".split(" "),function(a){this[a]&&this[a].destroy&&this[a].destroy();this[a]=null},this);g([this.handles],function(a){F(a)},this)}};a.Navigator=C;e(A.prototype,"zoom",function(a,b,c){var d=this.chart,e=d.options,h=e.chart.zoomType,l=e.navigator,e=e.rangeSelector,f;this.isXAxis&&(l&&l.enabled||e&&e.enabled)&&("x"===h?d.resetZoomButton="blocked":"y"===h?f=!1:"xy"===h&&this.options.range&& (d=this.previousZoom,w(b)?this.previousZoom=[this.min,this.max]:d&&(b=d[0],c=d[1],delete this.previousZoom)));return void 0!==f?f:a.call(this,b,c)});e(y.prototype,"init",function(a,b,c){r(this,"beforeRender",function(){var a=this.options;if(a.navigator.enabled||a.scrollbar.enabled)this.scroller=this.navigator=new C(this)});a.call(this,b,c)});e(y.prototype,"setChartSize",function(a){var b=this.legend,c=this.navigator,d,e,h,l;a.apply(this,[].slice.call(arguments,1));c&&(e=b&&b.options,h=c.xAxis,l=c.yAxis, d=c.scrollbarHeight,this.inverted?(c.left=c.opposite?this.chartWidth-d-c.height:this.spacing[3]+d,c.top=this.plotTop+d):(c.left=this.plotLeft+d,c.top=c.navigatorOptions.top||this.chartHeight-c.height-d-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(e&&"bottom"===e.verticalAlign&&e.enabled&&!e.floating?b.legendHeight+k(e.margin,10):0)),h&&l&&(this.inverted?h.options.left=l.options.left=c.left:h.options.top=l.options.top=c.top,h.setAxisSize(),l.setAxisSize()))}); e(B.prototype,"addPoint",function(a,b,c,e,h){var d=this.options.turboThreshold;d&&this.xData.length>d&&p(b,!0)&&this.chart.navigator&&G(20,!0);a.call(this,b,c,e,h)});e(y.prototype,"addSeries",function(a,b,c,e){a=a.call(this,b,!1,e);this.navigator&&this.navigator.setBaseSeries(null,!1);k(c,!0)&&this.redraw();return a});e(B.prototype,"update",function(a,b,c){a.call(this,b,!1);this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1);k(c,!0)&&this.chart.redraw()});y.prototype.callbacks.push(function(a){var b= a.navigator;b&&(a=a.xAxis[0].getExtremes(),b.render(a.min,a.max))})})(H);(function(a){function C(a){this.init(a)}var r=a.addEvent,A=a.Axis,y=a.Chart,E=a.css,w=a.createElement,F=a.dateFormat,g=a.defaultOptions,m=g.global.useUTC,G=a.defined,D=a.destroyObjectProperties,u=a.discardElement,b=a.each,c=a.extend,q=a.fireEvent,p=a.Date,n=a.isNumber,k=a.merge,f=a.pick,t=a.pInt,B=a.splat,v=a.wrap;c(g,{rangeSelector:{verticalAlign:"top",buttonTheme:{"stroke-width":0,width:28,height:18,padding:2,zIndex:7},floating:!1, x:0,y:0,height:void 0,inputPosition:{align:"right",x:0,y:0},buttonPosition:{align:"left",x:0,y:0}}});g.lang=k(g.lang,{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"From",rangeSelectorTo:"To"});C.prototype={clickButton:function(a,c){var e=this,d=e.chart,l=e.buttonOptions[a],g=d.xAxis[0],k=d.scroller&&d.scroller.getUnionExtremes()||g||{},q=k.dataMin,p=k.dataMax,u,w=g&&Math.round(Math.min(g.max,f(p,g.max))),t=l.type,v,k=l._range,J,y,D,C=l.dataGrouping;if(null!==q&&null!==p){d.fixedRange=k;C&&(this.forcedDataGrouping= !0,A.prototype.setDataGrouping.call(g||{chart:this.chart},C,!1));if("month"===t||"year"===t)g?(t={range:l,max:w,dataMin:q,dataMax:p},u=g.minFromRange.call(t),n(t.newMax)&&(w=t.newMax)):k=l;else if(k)u=Math.max(w-k,q),w=Math.min(u+k,p);else if("ytd"===t)if(g)void 0===p&&(q=Number.MAX_VALUE,p=Number.MIN_VALUE,b(d.series,function(a){a=a.xData;q=Math.min(a[0],q);p=Math.max(a[a.length-1],p)}),c=!1),w=e.getYTDExtremes(p,q,m),u=J=w.min,w=w.max;else{r(d,"beforeRender",function(){e.clickButton(a)});return}else"all"=== t&&g&&(u=q,w=p);u+=l._offsetMin;w+=l._offsetMax;e.setSelected(a);g?g.setExtremes(u,w,f(c,1),null,{trigger:"rangeSelectorButton",rangeSelectorButton:l}):(v=B(d.options.xAxis)[0],D=v.range,v.range=k,y=v.min,v.min=J,r(d,"load",function(){v.range=D;v.min=y}))}},setSelected:function(a){this.selected=this.options.selected=a},defaultButtons:[{type:"month",count:1,text:"1m"},{type:"month",count:3,text:"3m"},{type:"month",count:6,text:"6m"},{type:"ytd",text:"YTD"},{type:"year",count:1,text:"1y"},{type:"all", text:"All"}],init:function(a){var c=this,e=a.options.rangeSelector,d=e.buttons||[].concat(c.defaultButtons),f=e.selected,g=function(){var a=c.minInput,b=c.maxInput;a&&a.blur&&q(a,"blur");b&&b.blur&&q(b,"blur")};c.chart=a;c.options=e;c.buttons=[];a.extraTopMargin=e.height;c.buttonOptions=d;this.unMouseDown=r(a.container,"mousedown",g);this.unResize=r(a,"resize",g);b(d,c.computeButtonRange);void 0!==f&&d[f]&&this.clickButton(f,!1);r(a,"load",function(){a.xAxis&&a.xAxis[0]&&r(a.xAxis[0],"setExtremes", function(b){this.max-this.min!==a.fixedRange&&"rangeSelectorButton"!==b.trigger&&"updatedData"!==b.trigger&&c.forcedDataGrouping&&this.setDataGrouping(!1,!1)})})},updateButtonStates:function(){var a=this.chart,c=a.xAxis[0],h=Math.round(c.max-c.min),d=!c.hasVisibleSeries,a=a.scroller&&a.scroller.getUnionExtremes()||c,f=a.dataMin,g=a.dataMax,a=this.getYTDExtremes(g,f,m),k=a.min,q=a.max,p=this.selected,r=n(p),w=this.options.allButtonsEnabled,u=this.buttons;b(this.buttonOptions,function(a,b){var e=a._range, l=a.type,m=a.count||1,n=u[b],x=0;a=a._offsetMax-a._offsetMin;b=b===p;var z=e>g-f,t=e<c.minRange,v=!1,I=!1,e=e===h;("month"===l||"year"===l)&&h>=864E5*{month:28,year:365}[l]*m+a&&h<=864E5*{month:31,year:366}[l]*m+a?e=!0:"ytd"===l?(e=q-k+a===h,v=!b):"all"===l&&(e=c.max-c.min>=g-f,I=!b&&r&&e);l=!w&&(z||t||I||d);m=b&&e||e&&!r&&!v;l?x=3:m&&(r=!0,x=2);n.state!==x&&n.setState(x)})},computeButtonRange:function(a){var b=a.type,c=a.count||1,d={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5}; if(d[b])a._range=d[b]*c;else if("month"===b||"year"===b)a._range=864E5*{month:30,year:365}[b]*c;a._offsetMin=f(a.offsetMin,0);a._offsetMax=f(a.offsetMax,0);a._range+=a._offsetMax-a._offsetMin},setInputValue:function(a,b){var c=this.chart.options.rangeSelector,d=this[a+"Input"];G(b)&&(d.previousValue=d.HCTime,d.HCTime=b);d.value=F(c.inputEditDateFormat||"%Y-%m-%d",d.HCTime);this[a+"DateBox"].attr({text:F(c.inputDateFormat||"%b %e, %Y",d.HCTime)})},showInput:function(a){var b=this.inputGroup,c=this[a+ "DateBox"];E(this[a+"Input"],{left:b.translateX+c.x+"px",top:b.translateY+"px",width:c.width-2+"px",height:c.height-2+"px",border:"2px solid silver"})},hideInput:function(a){E(this[a+"Input"],{border:0,width:"1px",height:"1px"});this.setInputValue(a)},drawInput:function(a){function b(){var a=p.value,b=(f.inputDateParser||Date.parse)(a),e=d.xAxis[0],h=d.scroller&&d.scroller.xAxis?d.scroller.xAxis:e,l=h.dataMin,h=h.dataMax;b!==p.previousValue&&(p.previousValue=b,n(b)||(b=a.split("-"),b=Date.UTC(t(b[0]), t(b[1])-1,t(b[2]))),n(b)&&(m||(b+=6E4*(new Date).getTimezoneOffset()),q?b>c.maxInput.HCTime?b=void 0:b<l&&(b=l):b<c.minInput.HCTime?b=void 0:b>h&&(b=h),void 0!==b&&e.setExtremes(q?b:e.min,q?e.max:b,void 0,void 0,{trigger:"rangeSelectorInput"})))}var c=this,d=c.chart,e=d.renderer,f=d.options.rangeSelector,k=c.div,q="min"===a,p,r,u=this.inputGroup;this[a+"Label"]=r=e.label(g.lang[q?"rangeSelectorFrom":"rangeSelectorTo"],this.inputGroup.offset).addClass("highcharts-range-label").attr({padding:2}).add(u); u.offset+=r.width+5;this[a+"DateBox"]=e=e.label("",u.offset).addClass("highcharts-range-input").attr({padding:2,width:f.inputBoxWidth||90,height:f.inputBoxHeight||17,stroke:f.inputBoxBorderColor||"#cccccc","stroke-width":1,"text-align":"center"}).on("click",function(){c.showInput(a);c[a+"Input"].focus()}).add(u);u.offset+=e.width+(q?10:0);this[a+"Input"]=p=w("input",{name:a,className:"highcharts-range-selector",type:"text"},{top:d.plotTop+"px"},k);p.onfocus=function(){c.showInput(a)};p.onblur=function(){c.hideInput(a)}; p.onchange=b;p.onkeypress=function(a){13===a.keyCode&&b()}},getPosition:function(){var a=this.chart,b=a.options.rangeSelector,a="top"===b.verticalAlign?a.plotTop-a.axisOffset[0]:0;return{buttonTop:a+b.buttonPosition.y,inputTop:a+b.inputPosition.y-10}},getYTDExtremes:function(a,b,c){var d=new p(a),h=d[p.hcGetFullYear]();c=c?p.UTC(h,0,1):+new p(h,0,1);b=Math.max(b||0,c);d=d.getTime();return{max:Math.min(a||d,d),min:b}},render:function(a,c){var h=this,d=h.chart,e=d.renderer,l=d.container,k=d.options, m=k.exporting&&!1!==k.exporting.enabled&&k.navigation&&k.navigation.buttonOptions,n=g.lang,p=h.div,q=k.rangeSelector,k=q.floating,u=h.buttons,p=h.inputGroup,r=q.buttonTheme,t=q.buttonPosition,v=q.inputPosition,y=q.inputEnabled,A=r&&r.states,B=d.plotLeft,D,C=h.buttonGroup,E;E=h.rendered;var Q=h.options.verticalAlign,F=d.legend,G=F&&F.options,H=t.y,R=v.y,T=E||!1,O=0,M=0,N;if(!1!==q.enabled){E||(h.group=E=e.g("range-selector-group").attr({zIndex:7}).add(),h.buttonGroup=C=e.g("range-selector-buttons").add(E), h.zoomText=e.text(n.rangeSelectorZoom,f(B+t.x,B),15).css(q.labelStyle).add(C),D=f(B+t.x,B)+h.zoomText.getBBox().width+5,b(h.buttonOptions,function(a,b){u[b]=e.button(a.text,D,0,function(){var c=a.events&&a.events.click,d;c&&(d=c.call(a));!1!==d&&h.clickButton(b);h.isActive=!0},r,A&&A.hover,A&&A.select,A&&A.disabled).attr({"text-align":"center"}).add(C);D+=u[b].width+f(q.buttonSpacing,5)}),!1!==y&&(h.div=p=w("div",null,{position:"relative",height:0,zIndex:1}),l.parentNode.insertBefore(p,l),h.inputGroup= p=e.g("input-group").add(E),p.offset=0,h.drawInput("min"),h.drawInput("max")));B=d.plotLeft-d.spacing[3];h.updateButtonStates();m&&this.titleCollision(d)&&"top"===Q&&"right"===t.align&&t.y+C.getBBox().height-12<(m.y||0)+m.height&&(O=-40);"left"===t.align?N=t.x-d.spacing[3]:"right"===t.align&&(N=t.x+O-d.spacing[1]);C.align({y:t.y,width:C.getBBox().width,align:t.align,x:N},!0,d.spacingBox);h.group.placed=T;h.buttonGroup.placed=T;!1!==y&&(O=m&&this.titleCollision(d)&&"top"===Q&&"right"===v.align&&v.y- p.getBBox().height-12<(m.y||0)+m.height+d.spacing[0]?-40:0,"left"===v.align?N=B:"right"===v.align&&(N=-Math.max(d.axisOffset[1],-O)),p.align({y:v.y,width:p.getBBox().width,align:v.align,x:v.x+N-2},!0,d.spacingBox),l=p.alignAttr.translateX+p.alignOptions.x-O+p.getBBox().x+2,m=p.alignOptions.width,n=C.alignAttr.translateX+C.getBBox().x,N=C.getBBox().width+20,(v.align===t.align||n+N>l&&l+m>n&&H<R+p.getBBox().height)&&p.attr({translateX:p.alignAttr.translateX+(d.axisOffset[1]>=-O?0:-O),translateY:p.alignAttr.translateY+ C.getBBox().height+10}),h.setInputValue("min",a),h.setInputValue("max",c),h.inputGroup.placed=T);h.group.align({verticalAlign:Q},!0,d.spacingBox);a=h.group.getBBox().height+20;c=h.group.alignAttr.translateY;"bottom"===Q&&(F=G&&"bottom"===G.verticalAlign&&G.enabled&&!G.floating?F.legendHeight+f(G.margin,10):0,a=a+F-20,M=c-a-(k?0:q.y)-10);if("top"===Q)k&&(M=0),d.titleOffset&&(M=d.titleOffset+d.options.title.margin),M+=d.margin[0]-d.spacing[0]||0;else if("middle"===Q)if(R===H)M=0>R?c+void 0:c;else if(R|| H)M=0>R||0>H?M-Math.min(R,H):c-a+NaN;h.group.translate(q.x,q.y+Math.floor(M));!1!==y&&(h.minInput.style.marginTop=h.group.translateY+"px",h.maxInput.style.marginTop=h.group.translateY+"px");h.rendered=!0}},getHeight:function(){var a=this.options,b=this.group,c=a.y,d=a.buttonPosition.y,a=a.inputPosition.y,b=b?b.getBBox(!0).height+13+c:0,c=Math.min(a,d);if(0>a&&0>d||0<a&&0<d)b+=Math.abs(c);return b},titleCollision:function(a){return!(a.options.title.text||a.options.subtitle.text)},update:function(a){var b= this.chart;k(!0,b.options.rangeSelector,a);this.destroy();this.init(b);b.rangeSelector.render()},destroy:function(){var b=this,c=b.minInput,h=b.maxInput;b.unMouseDown();b.unResize();D(b.buttons);c&&(c.onfocus=c.onblur=c.onchange=null);h&&(h.onfocus=h.onblur=h.onchange=null);a.objectEach(b,function(a,c){a&&"chart"!==c&&(a.destroy?a.destroy():a.nodeType&&u(this[c]));a!==C.prototype[c]&&(b[c]=null)},this)}};A.prototype.toFixedRange=function(a,b,c,d){var h=this.chart&&this.chart.fixedRange;a=f(c,this.translate(a, !0,!this.horiz));b=f(d,this.translate(b,!0,!this.horiz));c=h&&(b-a)/h;.7<c&&1.3>c&&(d?a=b-h:b=a+h);n(a)||(a=b=void 0);return{min:a,max:b}};A.prototype.minFromRange=function(){var a=this.range,b={month:"Month",year:"FullYear"}[a.type],c,d=this.max,k,g,m=function(a,c){var d=new Date(a),h=d["get"+b]();d["set"+b](h+c);h===d["get"+b]()&&d.setDate(0);return d.getTime()-a};n(a)?(c=d-a,g=a):(c=d+m(d,-a.count),this.chart&&(this.chart.fixedRange=d-c));k=f(this.dataMin,Number.MIN_VALUE);n(c)||(c=k);c<=k&&(c= k,void 0===g&&(g=m(c,a.count)),this.newMax=Math.min(c+g,this.dataMax));n(d)||(c=void 0);return c};v(y.prototype,"init",function(a,b,c){r(this,"init",function(){this.options.rangeSelector.enabled&&(this.rangeSelector=new C(this))});a.call(this,b,c)});v(y.prototype,"render",function(a,c,h){var d=this.axes,e=this.rangeSelector;e&&(b(d,function(a){a.updateNames();a.setScale()}),this.getAxisMargins(),e.render(),d=e.options.verticalAlign,e.options.floating||("bottom"===d?this.extraBottomMargin=!0:"middle"!== d&&(this.extraTopMargin=!0)));a.call(this,c,h)});v(y.prototype,"update",function(b,c,h,d){var e=this.rangeSelector,l;this.extraTopMargin=this.extraBottomMargin=!1;e&&(e.render(),l=c.rangeSelector&&c.rangeSelector.verticalAlign||e.options&&e.options.verticalAlign,e.options.floating||("bottom"===l?this.extraBottomMargin=!0:"middle"!==l&&(this.extraTopMargin=!0)));b.call(this,a.merge(!0,c,{chart:{marginBottom:f(c.chart&&c.chart.marginBottom,this.margin.bottom),spacingBottom:f(c.chart&&c.chart.spacingBottom, this.spacing.bottom)}}),h,d)});v(y.prototype,"redraw",function(a,b,c){var d=this.rangeSelector;d&&!d.options.floating&&(d.render(),d=d.options.verticalAlign,"bottom"===d?this.extraBottomMargin=!0:"middle"!==d&&(this.extraTopMargin=!0));a.call(this,b,c)});y.prototype.adjustPlotArea=function(){var a=this.rangeSelector;this.rangeSelector&&(a=a.getHeight(),this.extraTopMargin&&(this.plotTop+=a),this.extraBottomMargin&&(this.marginBottom+=a))};y.prototype.callbacks.push(function(a){function b(){c=a.xAxis[0].getExtremes(); n(c.min)&&d.render(c.min,c.max)}var c,d=a.rangeSelector,e,f;d&&(f=r(a.xAxis[0],"afterSetExtremes",function(a){d.render(a.min,a.max)}),e=r(a,"redraw",b),b());r(a,"destroy",function(){d&&(e(),f())})});a.RangeSelector=C})(H);(function(a){var C=a.arrayMax,r=a.arrayMin,A=a.Axis,y=a.Chart,E=a.defined,w=a.each,F=a.format,g=a.grep,m=a.inArray,G=a.isNumber,D=a.isString,u=a.map,b=a.merge,c=a.pick,q=a.Point,p=a.Series,n=a.splat,k=a.SVGRenderer,f=a.wrap,t=p.prototype,B=t.init,v=t.processData,e=q.prototype.tooltipFormatter; a.StockChart=a.stockChart=function(e,h,d){var l=D(e)||e.nodeName,f=arguments[l?1:0],k=f.series,g=a.getOptions(),m,p=c(f.navigator&&f.navigator.enabled,g.navigator.enabled,!0),q=p?{startOnTick:!1,endOnTick:!1}:null,r={marker:{enabled:!1,radius:2}},t={shadow:!1,borderWidth:0};f.xAxis=u(n(f.xAxis||{}),function(a){return b({minPadding:0,maxPadding:0,overscroll:0,ordinal:!0,title:{text:null},labels:{overflow:"justify"},showLastLabel:!0},g.xAxis,a,{type:"datetime",categories:null},q)});f.yAxis=u(n(f.yAxis|| {}),function(a){m=c(a.opposite,!0);return b({labels:{y:-2},opposite:m,showLastLabel:!1,title:{text:null}},g.yAxis,a)});f.series=null;f=b({chart:{panning:!0,pinchType:"x"},navigator:{enabled:p},scrollbar:{enabled:c(g.scrollbar.enabled,!0)},rangeSelector:{enabled:c(g.rangeSelector.enabled,!0)},title:{text:null},tooltip:{split:!0,crosshairs:!0},legend:{enabled:!1},plotOptions:{line:r,spline:r,area:r,areaspline:r,arearange:r,areasplinerange:r,column:t,columnrange:t,candlestick:t,ohlc:t}},f,{isStock:!0}); f.series=k;return l?new y(e,f,d):new y(f,h)};f(A.prototype,"autoLabelAlign",function(a){var b=this.chart,c=this.options,b=b._labelPanes=b._labelPanes||{},e=this.options.labels;return this.chart.options.isStock&&"yAxis"===this.coll&&(c=c.top+","+c.height,!b[c]&&e.enabled)?(15===e.x&&(e.x=0),void 0===e.align&&(e.align="right"),b[c]=this,"right"):a.apply(this,[].slice.call(arguments,1))});f(A.prototype,"destroy",function(a){var b=this.chart,c=this.options&&this.options.top+","+this.options.height;c&& b._labelPanes&&b._labelPanes[c]===this&&delete b._labelPanes[c];return a.apply(this,Array.prototype.slice.call(arguments,1))});f(A.prototype,"getPlotLinePath",function(b,h,d,e,f,g){var l=this,k=this.isLinked&&!this.series?this.linkedParent.series:this.series,n=l.chart,p=n.renderer,q=l.left,r=l.top,t,v,x,z,y=[],A=[],B,C;if("xAxis"!==l.coll&&"yAxis"!==l.coll)return b.apply(this,[].slice.call(arguments,1));A=function(a){var b="xAxis"===a?"yAxis":"xAxis";a=l.options[b];return G(a)?[n[b][a]]:D(a)?[n.get(a)]: u(k,function(a){return a[b]})}(l.coll);w(l.isXAxis?n.yAxis:n.xAxis,function(a){if(E(a.options.id)?-1===a.options.id.indexOf("navigator"):1){var b=a.isXAxis?"yAxis":"xAxis",b=E(a.options[b])?n[b][a.options[b]]:n[b][0];l===b&&A.push(a)}});B=A.length?[]:[l.isXAxis?n.yAxis[0]:n.xAxis[0]];w(A,function(b){-1!==m(b,B)||a.find(B,function(a){return a.pos===b.pos&&a.len&&b.len})||B.push(b)});C=c(g,l.translate(h,null,null,e));G(C)&&(l.horiz?w(B,function(a){var b;v=a.pos;z=v+a.len;t=x=Math.round(C+l.transB); if(t<q||t>q+l.width)f?t=x=Math.min(Math.max(q,t),q+l.width):b=!0;b||y.push("M",t,v,"L",x,z)}):w(B,function(a){var b;t=a.pos;x=t+a.len;v=z=Math.round(r+l.height-C);if(v<r||v>r+l.height)f?v=z=Math.min(Math.max(r,v),l.top+l.height):b=!0;b||y.push("M",t,v,"L",x,z)}));return 0<y.length?p.crispPolyLine(y,d||1):null});k.prototype.crispPolyLine=function(a,b){var c;for(c=0;c<a.length;c+=6)a[c+1]===a[c+4]&&(a[c+1]=a[c+4]=Math.round(a[c+1])-b%2/2),a[c+2]===a[c+5]&&(a[c+2]=a[c+5]=Math.round(a[c+2])+b%2/2);return a}; f(A.prototype,"hideCrosshair",function(a,b){a.call(this,b);this.crossLabel&&(this.crossLabel=this.crossLabel.hide())});f(A.prototype,"drawCrosshair",function(a,b,d){var e,h;a.call(this,b,d);if(E(this.crosshair.label)&&this.crosshair.label.enabled&&this.cross){a=this.chart;var f=this.options.crosshair.label,l=this.horiz;e=this.opposite;h=this.left;var g=this.top,k=this.crossLabel,m,n=f.format,p="",q="inside"===this.options.tickPosition,r=!1!==this.crosshair.snap,t=0;b||(b=this.cross&&this.cross.e); m=l?"center":e?"right"===this.labelAlign?"right":"left":"left"===this.labelAlign?"left":"center";k||(k=this.crossLabel=a.renderer.label(null,null,null,f.shape||"callout").addClass("highcharts-crosshair-label"+(this.series[0]&&" highcharts-color-"+this.series[0].colorIndex)).attr({align:f.align||m,padding:c(f.padding,8),r:c(f.borderRadius,3),zIndex:2}).add(this.labelGroup));l?(m=r?d.plotX+h:b.chartX,g+=e?0:this.height):(m=e?this.width+h:0,g=r?d.plotY+g:b.chartY);n||f.formatter||(this.isDatetimeAxis&& (p="%b %d, %Y"),n="{value"+(p?":"+p:"")+"}");b=r?d[this.isXAxis?"x":"y"]:this.toValue(l?b.chartX:b.chartY);k.attr({text:n?F(n,{value:b}):f.formatter.call(this,b),x:m,y:g,visibility:"visible"});b=k.getBBox();if(l){if(q&&!e||!q&&e)g=k.y-b.height}else g=k.y-b.height/2;l?(e=h-b.x,h=h+this.width-b.x):(e="left"===this.labelAlign?h:0,h="right"===this.labelAlign?h+this.width:a.chartWidth);k.translateX<e&&(t=e-k.translateX);k.translateX+b.width>=h&&(t=-(k.translateX+b.width-h));k.attr({x:m+t,y:g,anchorX:l? m:this.opposite?0:a.chartWidth,anchorY:l?this.opposite?a.chartHeight:0:g+b.height/2})}});t.init=function(){B.apply(this,arguments);this.setCompare(this.options.compare)};t.setCompare=function(a){this.modifyValue="value"===a||"percent"===a?function(b,c){var d=this.compareValue;if(void 0!==b&&void 0!==d)return b="value"===a?b-d:b/d*100-(100===this.options.compareBase?0:100),c&&(c.change=b),b}:null;this.userOptions.compare=a;this.chart.hasRendered&&(this.isDirty=!0)};t.processData=function(){var a,b= -1,c,e,f=!0===this.options.compareStart?0:1,k,g;v.apply(this,arguments);if(this.xAxis&&this.processedYData)for(c=this.processedXData,e=this.processedYData,k=e.length,this.pointArrayMap&&(b=m("close",this.pointArrayMap),-1===b&&(b=m(this.pointValKey||"y",this.pointArrayMap))),a=0;a<k-f;a++)if(g=e[a]&&-1<b?e[a][b]:e[a],G(g)&&c[a+f]>=this.xAxis.min&&0!==g){this.compareValue=g;break}};f(t,"getExtremes",function(a){var b;a.apply(this,[].slice.call(arguments,1));this.modifyValue&&(b=[this.modifyValue(this.dataMin), this.modifyValue(this.dataMax)],this.dataMin=r(b),this.dataMax=C(b))});A.prototype.setCompare=function(a,b){this.isXAxis||(w(this.series,function(b){b.setCompare(a)}),c(b,!0)&&this.chart.redraw())};q.prototype.tooltipFormatter=function(b){b=b.replace("{point.change}",(0<this.change?"+":"")+a.numberFormat(this.change,c(this.series.tooltipOptions.changeDecimals,2)));return e.apply(this,[b])};f(p.prototype,"render",function(a){this.chart.is3d&&this.chart.is3d()||this.chart.polar||!this.xAxis||this.xAxis.isRadial|| (!this.clipBox&&this.animate?(this.clipBox=b(this.chart.clipBox),this.clipBox.width=this.xAxis.len,this.clipBox.height=this.yAxis.len):this.chart[this.sharedClipKey]?this.chart[this.sharedClipKey].attr({width:this.xAxis.len,height:this.yAxis.len}):this.clipBox&&(this.clipBox.width=this.xAxis.len,this.clipBox.height=this.yAxis.len));a.call(this)});f(y.prototype,"getSelectedPoints",function(a){var b=a.call(this);w(this.series,function(a){a.hasGroupedData&&(b=b.concat(g(a.points||[],function(a){return a.selected})))}); return b});f(y.prototype,"update",function(a,c){"scrollbar"in c&&this.navigator&&(b(!0,this.options.scrollbar,c.scrollbar),this.navigator.update({},!1),delete c.scrollbar);return a.apply(this,Array.prototype.slice.call(arguments,1))})})(H)});
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.58 |
proxy
|
phpinfo
|
Settings