You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

121 lines
56 KiB
JavaScript

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