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