highcharts
Advanced tools
Comparing version 6.0.6 to 6.0.7
{ | ||
"name": "highcharts", | ||
"version": "6.0.6", | ||
"version": "6.0.7", | ||
"main": "highcharts.js", | ||
"license": "https://www.highcharts.com/license" | ||
} |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ 3D features for Highcharts JS |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -8,63 +8,64 @@ (c) 2009-2016 Torstein Honsi | ||
*/ | ||
(function(x){"object"===typeof module&&module.exports?module.exports=x:x(Highcharts)})(function(x){(function(a){var r=a.deg2rad,u=a.isNumber,w=a.pick,p=a.relativeLength;a.CenteredSeriesMixin={getCenter:function(){var a=this.options,f=this.chart,h=2*(a.slicedOffset||0),c=f.plotWidth-2*h,f=f.plotHeight-2*h,b=a.center,b=[w(b[0],"50%"),w(b[1],"50%"),a.size||"100%",a.innerSize||0],l=Math.min(c,f),g,d;for(g=0;4>g;++g)d=b[g],a=2>g||2===g&&/%$/.test(d),b[g]=p(d,[c,f,l,b[2]][g])+(a?h:0);b[3]>b[2]&&(b[3]=b[2]); | ||
return b},getStartAndEndRadians:function(a,f){a=u(a)?a:0;f=u(f)&&f>a&&360>f-a?f:a+360;return{start:r*(a+-90),end:r*(f+-90)}}}})(x);(function(a){function r(a,c){this.init(a,c)}var u=a.CenteredSeriesMixin,w=a.each,p=a.extend,m=a.merge,f=a.splat;p(r.prototype,{coll:"pane",init:function(a,c){this.chart=c;this.background=[];c.pane.push(this);this.setOptions(a)},setOptions:function(a){this.options=m(this.defaultOptions,this.chart.angular?{background:{}}:void 0,a)},render:function(){var a=this.options,c= | ||
this.options.background,b=this.chart.renderer;this.group||(this.group=b.g("pane-group").attr({zIndex:a.zIndex||0}).add());this.updateCenter();if(c)for(c=f(c),a=Math.max(c.length,this.background.length||0),b=0;b<a;b++)c[b]&&this.axis?this.renderBackground(m(this.defaultBackgroundOptions,c[b]),b):this.background[b]&&(this.background[b]=this.background[b].destroy(),this.background.splice(b,1))},renderBackground:function(a,c){var b="animate";this.background[c]||(this.background[c]=this.chart.renderer.path().add(this.group), | ||
b="attr");this.background[c][b]({d:this.axis.getPlotBandPath(a.from,a.to,a)}).attr({fill:a.backgroundColor,stroke:a.borderColor,"stroke-width":a.borderWidth,"class":"highcharts-pane "+(a.className||"")})},defaultOptions:{center:["50%","50%"],size:"85%",startAngle:0},defaultBackgroundOptions:{shape:"circle",borderWidth:1,borderColor:"#cccccc",backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"#ffffff"],[1,"#e6e6e6"]]},from:-Number.MAX_VALUE,innerRadius:0,to:Number.MAX_VALUE,outerRadius:"105%"}, | ||
updateCenter:function(a){this.center=(a||this.axis||{}).center=u.getCenter.call(this)},update:function(a,c){m(!0,this.options,a);this.setOptions(this.options);this.render();w(this.chart.axes,function(b){b.pane===this&&(b.pane=null,b.update({},c))},this)}});a.Pane=r})(x);(function(a){var r=a.each,u=a.extend,w=a.map,p=a.merge,m=a.noop,f=a.pick,h=a.pInt,c=a.wrap,b,l,g=a.Axis.prototype;a=a.Tick.prototype;b={getOffset:m,redraw:function(){this.isDirty=!1},render:function(){this.isDirty=!1},setScale:m,setCategories:m, | ||
setTitle:m};l={defaultRadialGaugeOptions:{labels:{align:"center",x:0,y:null},minorGridLineWidth:0,minorTickInterval:"auto",minorTickLength:10,minorTickPosition:"inside",minorTickWidth:1,tickLength:10,tickPosition:"inside",tickWidth:2,title:{rotation:0},zIndex:2},defaultRadialXOptions:{gridLineWidth:1,labels:{align:null,distance:15,x:0,y:null,style:{textOverflow:"none"}},maxPadding:0,minPadding:0,showLastLabel:!1,tickLength:0},defaultRadialYOptions:{gridLineInterpolation:"circle",labels:{align:"right", | ||
x:-3,y:-2},showLastLabel:!1,title:{x:4,text:null,rotation:90}},setOptions:function(b){b=this.options=p(this.defaultOptions,this.defaultRadialOptions,b);b.plotBands||(b.plotBands=[])},getOffset:function(){g.getOffset.call(this);this.chart.axisOffset[this.side]=0},getLinePath:function(b,c){b=this.center;var d=this.chart,e=f(c,b[2]/2-this.offset);this.isCircular||void 0!==c?(c=this.chart.renderer.symbols.arc(this.left+b[0],this.top+b[1],e,e,{start:this.startAngleRad,end:this.endAngleRad,open:!0,innerR:0}), | ||
c.xBounds=[this.left+b[0]],c.yBounds=[this.top+b[1]-e]):(c=this.postTranslate(this.angleRad,e),c=["M",b[0]+d.plotLeft,b[1]+d.plotTop,"L",c.x,c.y]);return c},setAxisTranslation:function(){g.setAxisTranslation.call(this);this.center&&(this.transA=this.isCircular?(this.endAngleRad-this.startAngleRad)/(this.max-this.min||1):this.center[2]/2/(this.max-this.min||1),this.minPixelPadding=this.isXAxis?this.transA*this.minPointOffset:0)},beforeSetTickPositions:function(){if(this.autoConnect=this.isCircular&& | ||
void 0===f(this.userMax,this.options.max)&&this.endAngleRad-this.startAngleRad===2*Math.PI)this.max+=this.categories&&1||this.pointRange||this.closestPointRange||0},setAxisSize:function(){g.setAxisSize.call(this);this.isRadial&&(this.pane.updateCenter(this),this.isCircular&&(this.sector=this.endAngleRad-this.startAngleRad),this.len=this.width=this.height=this.center[2]*f(this.sector,1)/2)},getPosition:function(b,c){return this.postTranslate(this.isCircular?this.translate(b):this.angleRad,f(this.isCircular? | ||
c:this.translate(b),this.center[2]/2)-this.offset)},postTranslate:function(b,c){var d=this.chart,e=this.center;b=this.startAngleRad+b;return{x:d.plotLeft+e[0]+Math.cos(b)*c,y:d.plotTop+e[1]+Math.sin(b)*c}},getPlotBandPath:function(b,c,a){var d=this.center,e=this.startAngleRad,l=d[2]/2,k=[f(a.outerRadius,"100%"),a.innerRadius,f(a.thickness,10)],g=Math.min(this.offset,0),t=/%$/,m,p=this.isCircular;"polygon"===this.options.gridLineInterpolation?d=this.getPlotLinePath(b).concat(this.getPlotLinePath(c, | ||
!0)):(b=Math.max(b,this.min),c=Math.min(c,this.max),p||(k[0]=this.translate(b),k[1]=this.translate(c)),k=w(k,function(b){t.test(b)&&(b=h(b,10)*l/100);return b}),"circle"!==a.shape&&p?(b=e+this.translate(b),c=e+this.translate(c)):(b=-Math.PI/2,c=1.5*Math.PI,m=!0),k[0]-=g,k[2]-=g,d=this.chart.renderer.symbols.arc(this.left+d[0],this.top+d[1],k[0],k[0],{start:Math.min(b,c),end:Math.max(b,c),innerR:f(k[1],k[0]-k[2]),open:m}));return d},getPlotLinePath:function(b,c){var d=this,e=d.center,a=d.chart,l=d.getPosition(b), | ||
g,f,t;d.isCircular?t=["M",e[0]+a.plotLeft,e[1]+a.plotTop,"L",l.x,l.y]:"circle"===d.options.gridLineInterpolation?(b=d.translate(b))&&(t=d.getLinePath(0,b)):(r(a.xAxis,function(b){b.pane===d.pane&&(g=b)}),t=[],b=d.translate(b),e=g.tickPositions,g.autoConnect&&(e=e.concat([e[0]])),c&&(e=[].concat(e).reverse()),r(e,function(c,d){f=g.getPosition(c,b);t.push(d?"L":"M",f.x,f.y)}));return t},getTitlePosition:function(){var b=this.center,c=this.chart,a=this.options.title;return{x:c.plotLeft+b[0]+(a.x||0), | ||
y:c.plotTop+b[1]-{high:.5,middle:.25,low:0}[a.align]*b[2]+(a.y||0)}}};c(g,"init",function(c,e,a){var d=e.angular,k=e.polar,g=a.isX,y=d&&g,m,t=e.options,h=a.pane||0,r=this.pane=e.pane&&e.pane[h],h=r&&r.options;if(d){if(u(this,y?b:l),m=!g)this.defaultRadialOptions=this.defaultRadialGaugeOptions}else k&&(u(this,l),this.defaultRadialOptions=(m=g)?this.defaultRadialXOptions:p(this.defaultYAxisOptions,this.defaultRadialYOptions));d||k?(this.isRadial=!0,e.inverted=!1,t.chart.zoomType=null):this.isRadial= | ||
!1;r&&m&&(r.axis=this);c.call(this,e,a);!y&&r&&(d||k)&&(c=this.options,this.angleRad=(c.angle||0)*Math.PI/180,this.startAngleRad=(h.startAngle-90)*Math.PI/180,this.endAngleRad=(f(h.endAngle,h.startAngle+360)-90)*Math.PI/180,this.offset=c.offset||0,this.isCircular=m)});c(g,"autoLabelAlign",function(b){if(!this.isRadial)return b.apply(this,[].slice.call(arguments,1))});c(a,"getPosition",function(b,c,a,l,g){var d=this.axis;return d.getPosition?d.getPosition(a):b.call(this,c,a,l,g)});c(a,"getLabelPosition", | ||
function(b,c,a,l,g,q,y,m,t){var d=this.axis,e=q.y,k=20,n=q.align,v=(d.translate(this.pos)+d.startAngleRad+Math.PI/2)/Math.PI*180%360;d.isRadial?(b=d.getPosition(this.pos,d.center[2]/2+f(q.distance,-25)),"auto"===q.rotation?l.attr({rotation:v}):null===e&&(e=d.chart.renderer.fontMetrics(l.styles.fontSize).b-l.getBBox().height/2),null===n&&(d.isCircular?(this.label.getBBox().width>d.len*d.tickInterval/(d.max-d.min)&&(k=0),n=v>k&&v<180-k?"left":v>180+k&&v<360-k?"right":"center"):n="center",l.attr({align:n})), | ||
b.x+=q.x,b.y+=e):b=b.call(this,c,a,l,g,q,y,m,t);return b});c(a,"getMarkPath",function(b,c,a,l,g,q,y){var d=this.axis;d.isRadial?(b=d.getPosition(this.pos,d.center[2]/2+l),c=["M",c,a,"L",b.x,b.y]):c=b.call(this,c,a,l,g,q,y);return c})})(x);(function(a){var r=a.each,u=a.pick,w=a.defined,p=a.seriesType,m=a.seriesTypes,f=a.Series.prototype,h=a.Point.prototype;p("arearange","area",{lineWidth:1,threshold:null,tooltip:{pointFormat:'\x3cspan style\x3d"color:{series.color}"\x3e\u25cf\x3c/span\x3e {series.name}: \x3cb\x3e{point.low}\x3c/b\x3e - \x3cb\x3e{point.high}\x3c/b\x3e\x3cbr/\x3e'}, | ||
trackByArea:!0,dataLabels:{align:null,verticalAlign:null,xLow:0,xHigh:0,yLow:0,yHigh:0}},{pointArrayMap:["low","high"],dataLabelCollections:["dataLabel","dataLabelUpper"],toYData:function(c){return[c.low,c.high]},pointValKey:"low",deferTranslatePolar:!0,highToXY:function(c){var b=this.chart,a=this.xAxis.postTranslate(c.rectPlotX,this.yAxis.len-c.plotHigh);c.plotHighX=a.x-b.plotLeft;c.plotHigh=a.y-b.plotTop;c.plotLowX=c.plotX},translate:function(){var c=this,b=c.yAxis,a=!!c.modifyValue;m.area.prototype.translate.apply(c); | ||
r(c.points,function(l){var d=l.low,e=l.high,k=l.plotY;null===e||null===d?(l.isNull=!0,l.plotY=null):(l.plotLow=k,l.plotHigh=b.translate(a?c.modifyValue(e,l):e,0,1,0,1),a&&(l.yBottom=l.plotHigh))});this.chart.polar&&r(this.points,function(b){c.highToXY(b);b.tooltipPos=[(b.plotHighX+b.plotLowX)/2,(b.plotHigh+b.plotLow)/2]})},getGraphPath:function(c){var b=[],a=[],g,d=m.area.prototype.getGraphPath,e,k,v;v=this.options;var n=this.chart.polar&&!1!==v.connectEnds,q=v.connectNulls,y=v.step;c=c||this.points; | ||
for(g=c.length;g--;)e=c[g],e.isNull||n||q||c[g+1]&&!c[g+1].isNull||a.push({plotX:e.plotX,plotY:e.plotY,doCurve:!1}),k={polarPlotY:e.polarPlotY,rectPlotX:e.rectPlotX,yBottom:e.yBottom,plotX:u(e.plotHighX,e.plotX),plotY:e.plotHigh,isNull:e.isNull},a.push(k),b.push(k),e.isNull||n||q||c[g-1]&&!c[g-1].isNull||a.push({plotX:e.plotX,plotY:e.plotY,doCurve:!1});c=d.call(this,c);y&&(!0===y&&(y="left"),v.step={left:"right",center:"center",right:"left"}[y]);b=d.call(this,b);a=d.call(this,a);v.step=y;v=[].concat(c, | ||
b);this.chart.polar||"M"!==a[0]||(a[0]="L");this.graphPath=v;this.areaPath=c.concat(a);v.isArea=!0;v.xMap=c.xMap;this.areaPath.xMap=c.xMap;return v},drawDataLabels:function(){var c=this.data,b=c.length,a,g=[],d=this.options.dataLabels,e=d.align,k=d.verticalAlign,v=d.inside,n,q,y=this.chart.inverted;if(d.enabled||this._hasPointLabels){for(a=b;a--;)if(n=c[a])q=v?n.plotHigh<n.plotLow:n.plotHigh>n.plotLow,n.y=n.high,n._plotY=n.plotY,n.plotY=n.plotHigh,g[a]=n.dataLabel,n.dataLabel=n.dataLabelUpper,n.below= | ||
q,y?e||(d.align=q?"right":"left"):k||(d.verticalAlign=q?"top":"bottom"),d.x=d.xHigh,d.y=d.yHigh;f.drawDataLabels&&f.drawDataLabels.apply(this,arguments);for(a=b;a--;)if(n=c[a])q=v?n.plotHigh<n.plotLow:n.plotHigh>n.plotLow,n.dataLabelUpper=n.dataLabel,n.dataLabel=g[a],n.y=n.low,n.plotY=n._plotY,n.below=!q,y?e||(d.align=q?"left":"right"):k||(d.verticalAlign=q?"bottom":"top"),d.x=d.xLow,d.y=d.yLow;f.drawDataLabels&&f.drawDataLabels.apply(this,arguments)}d.align=e;d.verticalAlign=k},alignDataLabel:function(){m.column.prototype.alignDataLabel.apply(this, | ||
arguments)},drawPoints:function(){var c=this.points.length,b,a;f.drawPoints.apply(this,arguments);for(a=0;a<c;)b=this.points[a],b.lowerGraphic=b.graphic,b.graphic=b.upperGraphic,b._plotY=b.plotY,b._plotX=b.plotX,b.plotY=b.plotHigh,w(b.plotHighX)&&(b.plotX=b.plotHighX),b._isInside=b.isInside,this.chart.polar||(b.isInside=b.isTopInside=void 0!==b.plotY&&0<=b.plotY&&b.plotY<=this.yAxis.len&&0<=b.plotX&&b.plotX<=this.xAxis.len),a++;f.drawPoints.apply(this,arguments);for(a=0;a<c;)b=this.points[a],b.upperGraphic= | ||
b.graphic,b.graphic=b.lowerGraphic,b.isInside=b._isInside,b.plotY=b._plotY,b.plotX=b._plotX,a++},setStackedPoints:a.noop},{setState:function(){var c=this.state,b=this.series,a=b.chart.polar;w(this.plotHigh)||(this.plotHigh=b.yAxis.toPixels(this.high,!0));w(this.plotLow)||(this.plotLow=this.plotY=b.yAxis.toPixels(this.low,!0));b.stateMarkerGraphic&&(b.lowerStateMarkerGraphic=b.stateMarkerGraphic,b.stateMarkerGraphic=b.upperStateMarkerGraphic);this.graphic=this.upperGraphic;this.plotY=this.plotHigh; | ||
a&&(this.plotX=this.plotHighX);h.setState.apply(this,arguments);this.state=c;this.plotY=this.plotLow;this.graphic=this.lowerGraphic;a&&(this.plotX=this.plotLowX);b.stateMarkerGraphic&&(b.upperStateMarkerGraphic=b.stateMarkerGraphic,b.stateMarkerGraphic=b.lowerStateMarkerGraphic,b.lowerStateMarkerGraphic=void 0);h.setState.apply(this,arguments)},haloPath:function(){var c=this.series.chart.polar,b=[];this.plotY=this.plotLow;c&&(this.plotX=this.plotLowX);this.isInside&&(b=h.haloPath.apply(this,arguments)); | ||
this.plotY=this.plotHigh;c&&(this.plotX=this.plotHighX);this.isTopInside&&(b=b.concat(h.haloPath.apply(this,arguments)));return b},destroyElements:function(){r(["lowerGraphic","upperGraphic"],function(c){this[c]&&(this[c]=this[c].destroy())},this);this.graphic=null;return h.destroyElements.apply(this,arguments)}})})(x);(function(a){var r=a.seriesType;r("areasplinerange","arearange",null,{getPointSpline:a.seriesTypes.spline.prototype.getPointSpline})})(x);(function(a){var r=a.defaultPlotOptions,u= | ||
a.each,w=a.merge,p=a.noop,m=a.pick,f=a.seriesType,h=a.seriesTypes.column.prototype;f("columnrange","arearange",w(r.column,r.arearange,{pointRange:null,marker:null,states:{hover:{halo:!1}}}),{translate:function(){var c=this,b=c.yAxis,a=c.xAxis,g=a.startAngleRad,d,e=c.chart,k=c.xAxis.isRadial,v=Math.max(e.chartWidth,e.chartHeight)+999,n;h.translate.apply(c);u(c.points,function(l){var q=l.shapeArgs,f=c.options.minPointLength,t,h;l.plotHigh=n=Math.min(Math.max(-v,b.translate(l.high,0,1,0,1)),v);l.plotLow= | ||
Math.min(Math.max(-v,l.plotY),v);h=n;t=m(l.rectPlotY,l.plotY)-n;Math.abs(t)<f?(f-=t,t+=f,h-=f/2):0>t&&(t*=-1,h-=t);k?(d=l.barX+g,l.shapeType="path",l.shapeArgs={d:c.polarArc(h+t,h,d,d+l.pointWidth)}):(q.height=t,q.y=h,l.tooltipPos=e.inverted?[b.len+b.pos-e.plotLeft-h-t/2,a.len+a.pos-e.plotTop-q.x-q.width/2,t]:[a.left-e.plotLeft+q.x+q.width/2,b.pos-e.plotTop+h+t/2,t])})},directTouch:!0,trackerGroups:["group","dataLabelsGroup"],drawGraph:p,getSymbol:p,crispCol:h.crispCol,drawPoints:h.drawPoints,drawTracker:h.drawTracker, | ||
getColumnMetrics:h.getColumnMetrics,pointAttribs:h.pointAttribs,animate:function(){return h.animate.apply(this,arguments)},polarArc:function(){return h.polarArc.apply(this,arguments)},translate3dPoints:function(){return h.translate3dPoints.apply(this,arguments)},translate3dShapes:function(){return h.translate3dShapes.apply(this,arguments)}},{setState:h.pointClass.prototype.setState})})(x);(function(a){var r=a.each,u=a.isNumber,w=a.merge,p=a.pick,m=a.pInt,f=a.Series,h=a.seriesType,c=a.TrackerMixin; | ||
h("gauge","line",{dataLabels:{enabled:!0,defer:!1,y:15,borderRadius:3,crop:!1,verticalAlign:"top",zIndex:2,borderWidth:1,borderColor:"#cccccc"},dial:{},pivot:{},tooltip:{headerFormat:""},showInLegend:!1},{angular:!0,directTouch:!0,drawGraph:a.noop,fixedBox:!0,forceDL:!0,noSharedTooltip:!0,trackerGroups:["group","dataLabelsGroup"],translate:function(){var b=this.yAxis,c=this.options,a=b.center;this.generatePoints();r(this.points,function(d){var e=w(c.dial,d.dial),l=m(p(e.radius,80))*a[2]/200,g=m(p(e.baseLength, | ||
70))*l/100,n=m(p(e.rearLength,10))*l/100,q=e.baseWidth||3,f=e.topWidth||1,h=c.overshoot,t=b.startAngleRad+b.translate(d.y,null,null,null,!0);u(h)?(h=h/180*Math.PI,t=Math.max(b.startAngleRad-h,Math.min(b.endAngleRad+h,t))):!1===c.wrap&&(t=Math.max(b.startAngleRad,Math.min(b.endAngleRad,t)));t=180*t/Math.PI;d.shapeType="path";d.shapeArgs={d:e.path||["M",-n,-q/2,"L",g,-q/2,l,-f/2,l,f/2,g,q/2,-n,q/2,"z"],translateX:a[0],translateY:a[1],rotation:t};d.plotX=a[0];d.plotY=a[1]})},drawPoints:function(){var b= | ||
this,c=b.yAxis.center,a=b.pivot,d=b.options,e=d.pivot,k=b.chart.renderer;r(b.points,function(c){var a=c.graphic,e=c.shapeArgs,l=e.d,g=w(d.dial,c.dial);a?(a.animate(e),e.d=l):(c.graphic=k[c.shapeType](e).attr({rotation:e.rotation,zIndex:1}).addClass("highcharts-dial").add(b.group),c.graphic.attr({stroke:g.borderColor||"none","stroke-width":g.borderWidth||0,fill:g.backgroundColor||"#000000"}))});a?a.animate({translateX:c[0],translateY:c[1]}):(b.pivot=k.circle(0,0,p(e.radius,5)).attr({zIndex:2}).addClass("highcharts-pivot").translate(c[0], | ||
c[1]).add(b.group),b.pivot.attr({"stroke-width":e.borderWidth||0,stroke:e.borderColor||"#cccccc",fill:e.backgroundColor||"#000000"}))},animate:function(b){var c=this;b||(r(c.points,function(b){var a=b.graphic;a&&(a.attr({rotation:180*c.yAxis.startAngleRad/Math.PI}),a.animate({rotation:b.shapeArgs.rotation},c.options.animation))}),c.animate=null)},render:function(){this.group=this.plotGroup("group","series",this.visible?"visible":"hidden",this.options.zIndex,this.chart.seriesGroup);f.prototype.render.call(this); | ||
this.group.clip(this.chart.clipRect)},setData:function(b,c){f.prototype.setData.call(this,b,!1);this.processData();this.generatePoints();p(c,!0)&&this.chart.redraw()},drawTracker:c&&c.drawTrackerPoint},{setState:function(b){this.state=b}})})(x);(function(a){var r=a.each,u=a.noop,w=a.pick,p=a.seriesType,m=a.seriesTypes;p("boxplot","column",{threshold:null,tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e \x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eMaximum: {point.high}\x3cbr/\x3eUpper quartile: {point.q3}\x3cbr/\x3eMedian: {point.median}\x3cbr/\x3eLower quartile: {point.q1}\x3cbr/\x3eMinimum: {point.low}\x3cbr/\x3e'}, | ||
whiskerLength:"50%",fillColor:"#ffffff",lineWidth:1,medianWidth:2,whiskerWidth:2},{pointArrayMap:["low","q1","median","q3","high"],toYData:function(a){return[a.low,a.q1,a.median,a.q3,a.high]},pointValKey:"high",pointAttribs:function(){return{}},drawDataLabels:u,translate:function(){var a=this.yAxis,h=this.pointArrayMap;m.column.prototype.translate.apply(this);r(this.points,function(c){r(h,function(b){null!==c[b]&&(c[b+"Plot"]=a.translate(c[b],0,1,0,1))})})},drawPoints:function(){var a=this,h=a.options, | ||
c=a.chart.renderer,b,l,g,d,e,k,v=0,n,q,m,p,t=!1!==a.doQuartiles,u,A=a.options.whiskerLength;r(a.points,function(f){var y=f.graphic,r=y?"animate":"attr",K=f.shapeArgs,x={},C={},I={},J={},B=f.color||a.color;void 0!==f.plotY&&(n=K.width,q=Math.floor(K.x),m=q+n,p=Math.round(n/2),b=Math.floor(t?f.q1Plot:f.lowPlot),l=Math.floor(t?f.q3Plot:f.lowPlot),g=Math.floor(f.highPlot),d=Math.floor(f.lowPlot),y||(f.graphic=y=c.g("point").add(a.group),f.stem=c.path().addClass("highcharts-boxplot-stem").add(y),A&&(f.whiskers= | ||
c.path().addClass("highcharts-boxplot-whisker").add(y)),t&&(f.box=c.path(void 0).addClass("highcharts-boxplot-box").add(y)),f.medianShape=c.path(void 0).addClass("highcharts-boxplot-median").add(y)),C.stroke=f.stemColor||h.stemColor||B,C["stroke-width"]=w(f.stemWidth,h.stemWidth,h.lineWidth),C.dashstyle=f.stemDashStyle||h.stemDashStyle,f.stem.attr(C),A&&(I.stroke=f.whiskerColor||h.whiskerColor||B,I["stroke-width"]=w(f.whiskerWidth,h.whiskerWidth,h.lineWidth),f.whiskers.attr(I)),t&&(x.fill=f.fillColor|| | ||
h.fillColor||B,x.stroke=h.lineColor||B,x["stroke-width"]=h.lineWidth||0,f.box.attr(x)),J.stroke=f.medianColor||h.medianColor||B,J["stroke-width"]=w(f.medianWidth,h.medianWidth,h.lineWidth),f.medianShape.attr(J),k=f.stem.strokeWidth()%2/2,v=q+p+k,f.stem[r]({d:["M",v,l,"L",v,g,"M",v,b,"L",v,d]}),t&&(k=f.box.strokeWidth()%2/2,b=Math.floor(b)+k,l=Math.floor(l)+k,q+=k,m+=k,f.box[r]({d:["M",q,l,"L",q,b,"L",m,b,"L",m,l,"L",q,l,"z"]})),A&&(k=f.whiskers.strokeWidth()%2/2,g+=k,d+=k,u=/%$/.test(A)?p*parseFloat(A)/ | ||
100:A/2,f.whiskers[r]({d:["M",v-u,g,"L",v+u,g,"M",v-u,d,"L",v+u,d]})),e=Math.round(f.medianPlot),k=f.medianShape.strokeWidth()%2/2,e+=k,f.medianShape[r]({d:["M",q,e,"L",m,e]}))})},setStackedPoints:u})})(x);(function(a){var r=a.each,u=a.noop,w=a.seriesType,p=a.seriesTypes;w("errorbar","boxplot",{color:"#000000",grouping:!1,linkedTo:":previous",tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e {series.name}: \x3cb\x3e{point.low}\x3c/b\x3e - \x3cb\x3e{point.high}\x3c/b\x3e\x3cbr/\x3e'}, | ||
whiskerWidth:null},{type:"errorbar",pointArrayMap:["low","high"],toYData:function(a){return[a.low,a.high]},pointValKey:"high",doQuartiles:!1,drawDataLabels:p.arearange?function(){var a=this.pointValKey;p.arearange.prototype.drawDataLabels.call(this);r(this.data,function(f){f.y=f[a]})}:u,getColumnMetrics:function(){return this.linkedParent&&this.linkedParent.columnMetrics||p.column.prototype.getColumnMetrics.call(this)}})})(x);(function(a){var r=a.correctFloat,u=a.isNumber,w=a.pick,p=a.Point,m=a.Series, | ||
f=a.seriesType,h=a.seriesTypes;f("waterfall","column",{dataLabels:{inside:!0},lineWidth:1,lineColor:"#333333",dashStyle:"dot",borderColor:"#333333",states:{hover:{lineWidthPlus:0}}},{pointValKey:"y",translate:function(){var c=this.options,b=this.yAxis,a,g,d,e,k,f,n,q,m,p,t=w(c.minPointLength,5),u=t/2,x=c.threshold,E=c.stacking,z;h.column.prototype.translate.apply(this);q=m=x;g=this.points;a=0;for(c=g.length;a<c;a++)d=g[a],n=this.processedYData[a],e=d.shapeArgs,k=E&&b.stacks[(this.negStacks&&n<x?"-": | ||
"")+this.stackKey],z=this.getStackIndicator(z,d.x,this.index),p=w(k&&k[d.x].points[z.key],[0,n]),d.isSum?d.y=r(n):d.isIntermediateSum&&(d.y=r(n-m)),f=Math.max(q,q+d.y)+p[0],e.y=b.translate(f,0,1,0,1),d.isSum?(e.y=b.translate(p[1],0,1,0,1),e.height=Math.min(b.translate(p[0],0,1,0,1),b.len)-e.y):d.isIntermediateSum?(e.y=b.translate(p[1],0,1,0,1),e.height=Math.min(b.translate(m,0,1,0,1),b.len)-e.y,m=p[1]):(e.height=0<n?b.translate(q,0,1,0,1)-e.y:b.translate(q,0,1,0,1)-b.translate(q-n,0,1,0,1),q+=k&& | ||
k[d.x]?k[d.x].total:n),0>e.height&&(e.y+=e.height,e.height*=-1),d.plotY=e.y=Math.round(e.y)-this.borderWidth%2/2,e.height=Math.max(Math.round(e.height),.001),d.yBottom=e.y+e.height,e.height<=t&&!d.isNull?(e.height=t,e.y-=u,d.plotY=e.y,d.minPointLengthOffset=0>d.y?-u:u):d.minPointLengthOffset=0,e=d.plotY+(d.negative?e.height:0),this.chart.inverted?d.tooltipPos[0]=b.len-e:d.tooltipPos[1]=e},processData:function(c){var b=this.yData,a=this.options.data,g,d=b.length,e,k,f,n,q,h;k=e=f=n=this.options.threshold|| | ||
0;for(h=0;h<d;h++)q=b[h],g=a&&a[h]?a[h]:{},"sum"===q||g.isSum?b[h]=r(k):"intermediateSum"===q||g.isIntermediateSum?b[h]=r(e):(k+=q,e+=q),f=Math.min(k,f),n=Math.max(k,n);m.prototype.processData.call(this,c);this.options.stacking||(this.dataMin=f,this.dataMax=n)},toYData:function(c){return c.isSum?0===c.x?null:"sum":c.isIntermediateSum?0===c.x?null:"intermediateSum":c.y},pointAttribs:function(c,b){var a=this.options.upColor;a&&!c.options.color&&(c.color=0<c.y?a:null);c=h.column.prototype.pointAttribs.call(this, | ||
c,b);delete c.dashstyle;return c},getGraphPath:function(){return["M",0,0]},getCrispPath:function(){var c=this.data,b=c.length,a=this.graph.strokeWidth()+this.borderWidth,a=Math.round(a)%2/2,g=this.xAxis.reversed,d=this.yAxis.reversed,e=[],k,f,n;for(n=1;n<b;n++){f=c[n].shapeArgs;k=c[n-1].shapeArgs;f=["M",k.x+(g?0:k.width),k.y+c[n-1].minPointLengthOffset+a,"L",f.x+(g?k.width:0),k.y+c[n-1].minPointLengthOffset+a];if(0>c[n-1].y&&!d||0<c[n-1].y&&d)f[2]+=k.height,f[5]+=k.height;e=e.concat(f)}return e}, | ||
drawGraph:function(){m.prototype.drawGraph.call(this);this.graph.attr({d:this.getCrispPath()})},setStackedPoints:function(){var c=this.options,b,a;m.prototype.setStackedPoints.apply(this,arguments);b=this.stackedYData?this.stackedYData.length:0;for(a=1;a<b;a++)c.data[a].isSum||c.data[a].isIntermediateSum||(this.stackedYData[a]+=this.stackedYData[a-1])},getExtremes:function(){if(this.options.stacking)return m.prototype.getExtremes.apply(this,arguments)}},{getClassName:function(){var c=p.prototype.getClassName.call(this); | ||
this.isSum?c+=" highcharts-sum":this.isIntermediateSum&&(c+=" highcharts-intermediate-sum");return c},isValid:function(){return u(this.y,!0)||this.isSum||this.isIntermediateSum}})})(x);(function(a){var r=a.Series,u=a.seriesType,w=a.seriesTypes;u("polygon","scatter",{marker:{enabled:!1,states:{hover:{enabled:!1}}},stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:""},trackByArea:!0},{type:"polygon",getGraphPath:function(){for(var a=r.prototype.getGraphPath.call(this),m=a.length+1;m--;)(m===a.length|| | ||
"M"===a[m])&&0<m&&a.splice(m,0,"z");return this.areaPath=a},drawGraph:function(){this.options.fillColor=this.color;w.area.prototype.drawGraph.call(this)},drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,drawTracker:r.prototype.drawTracker,setStackedPoints:a.noop})})(x);(function(a){var r=a.arrayMax,u=a.arrayMin,w=a.Axis,p=a.color,m=a.each,f=a.isNumber,h=a.noop,c=a.pick,b=a.pInt,l=a.Point,g=a.Series,d=a.seriesType,e=a.seriesTypes;d("bubble","scatter",{dataLabels:{formatter:function(){return this.point.z}, | ||
(function(w){"object"===typeof module&&module.exports?module.exports=w:w(Highcharts)})(function(w){(function(a){var r=a.deg2rad,v=a.isNumber,t=a.pick,n=a.relativeLength;a.CenteredSeriesMixin={getCenter:function(){var a=this.options,e=this.chart,h=2*(a.slicedOffset||0),b=e.plotWidth-2*h,e=e.plotHeight-2*h,c=a.center,c=[t(c[0],"50%"),t(c[1],"50%"),a.size||"100%",a.innerSize||0],f=Math.min(b,e),k,g;for(k=0;4>k;++k)g=c[k],a=2>k||2===k&&/%$/.test(g),c[k]=n(g,[b,e,f,c[2]][k])+(a?h:0);c[3]>c[2]&&(c[3]=c[2]); | ||
return c},getStartAndEndRadians:function(a,e){a=v(a)?a:0;e=v(e)&&e>a&&360>e-a?e:a+360;return{start:r*(a+-90),end:r*(e+-90)}}}})(w);(function(a){function r(a,b){this.init(a,b)}var v=a.CenteredSeriesMixin,t=a.each,n=a.extend,p=a.merge,e=a.splat;n(r.prototype,{coll:"pane",init:function(a,b){this.chart=b;this.background=[];b.pane.push(this);this.setOptions(a)},setOptions:function(a){this.options=p(this.defaultOptions,this.chart.angular?{background:{}}:void 0,a)},render:function(){var a=this.options,b= | ||
this.options.background,c=this.chart.renderer;this.group||(this.group=c.g("pane-group").attr({zIndex:a.zIndex||0}).add());this.updateCenter();if(b)for(b=e(b),a=Math.max(b.length,this.background.length||0),c=0;c<a;c++)b[c]&&this.axis?this.renderBackground(p(this.defaultBackgroundOptions,b[c]),c):this.background[c]&&(this.background[c]=this.background[c].destroy(),this.background.splice(c,1))},renderBackground:function(a,b){var c="animate";this.background[b]||(this.background[b]=this.chart.renderer.path().add(this.group), | ||
c="attr");this.background[b][c]({d:this.axis.getPlotBandPath(a.from,a.to,a)}).attr({fill:a.backgroundColor,stroke:a.borderColor,"stroke-width":a.borderWidth,"class":"highcharts-pane "+(a.className||"")})},defaultOptions:{center:["50%","50%"],size:"85%",startAngle:0},defaultBackgroundOptions:{shape:"circle",borderWidth:1,borderColor:"#cccccc",backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"#ffffff"],[1,"#e6e6e6"]]},from:-Number.MAX_VALUE,innerRadius:0,to:Number.MAX_VALUE,outerRadius:"105%"}, | ||
updateCenter:function(a){this.center=(a||this.axis||{}).center=v.getCenter.call(this)},update:function(a,b){p(!0,this.options,a);this.setOptions(this.options);this.render();t(this.chart.axes,function(c){c.pane===this&&(c.pane=null,c.update({},b))},this)}});a.Pane=r})(w);(function(a){var r=a.each,v=a.extend,t=a.map,n=a.merge,p=a.noop,e=a.pick,h=a.pInt,b=a.wrap,c,f,k=a.Axis.prototype,g=a.Tick.prototype;a.radialAxisExtended||(a.radialAxisExtended=!0,c={getOffset:p,redraw:function(){this.isDirty=!1}, | ||
render:function(){this.isDirty=!1},setScale:p,setCategories:p,setTitle:p},f={defaultRadialGaugeOptions:{labels:{align:"center",x:0,y:null},minorGridLineWidth:0,minorTickInterval:"auto",minorTickLength:10,minorTickPosition:"inside",minorTickWidth:1,tickLength:10,tickPosition:"inside",tickWidth:2,title:{rotation:0},zIndex:2},defaultRadialXOptions:{gridLineWidth:1,labels:{align:null,distance:15,x:0,y:null,style:{textOverflow:"none"}},maxPadding:0,minPadding:0,showLastLabel:!1,tickLength:0},defaultRadialYOptions:{gridLineInterpolation:"circle", | ||
labels:{align:"right",x:-3,y:-2},showLastLabel:!1,title:{x:4,text:null,rotation:90}},setOptions:function(b){b=this.options=n(this.defaultOptions,this.defaultRadialOptions,b);b.plotBands||(b.plotBands=[])},getOffset:function(){k.getOffset.call(this);this.chart.axisOffset[this.side]=0},getLinePath:function(b,c){b=this.center;var d=this.chart,a=e(c,b[2]/2-this.offset);this.isCircular||void 0!==c?(c=this.chart.renderer.symbols.arc(this.left+b[0],this.top+b[1],a,a,{start:this.startAngleRad,end:this.endAngleRad, | ||
open:!0,innerR:0}),c.xBounds=[this.left+b[0]],c.yBounds=[this.top+b[1]-a]):(c=this.postTranslate(this.angleRad,a),c=["M",b[0]+d.plotLeft,b[1]+d.plotTop,"L",c.x,c.y]);return c},setAxisTranslation:function(){k.setAxisTranslation.call(this);this.center&&(this.transA=this.isCircular?(this.endAngleRad-this.startAngleRad)/(this.max-this.min||1):this.center[2]/2/(this.max-this.min||1),this.minPixelPadding=this.isXAxis?this.transA*this.minPointOffset:0)},beforeSetTickPositions:function(){if(this.autoConnect= | ||
this.isCircular&&void 0===e(this.userMax,this.options.max)&&this.endAngleRad-this.startAngleRad===2*Math.PI)this.max+=this.categories&&1||this.pointRange||this.closestPointRange||0},setAxisSize:function(){k.setAxisSize.call(this);this.isRadial&&(this.pane.updateCenter(this),this.isCircular&&(this.sector=this.endAngleRad-this.startAngleRad),this.len=this.width=this.height=this.center[2]*e(this.sector,1)/2)},getPosition:function(b,c){return this.postTranslate(this.isCircular?this.translate(b):this.angleRad, | ||
e(this.isCircular?c:this.translate(b),this.center[2]/2)-this.offset)},postTranslate:function(b,c){var d=this.chart,a=this.center;b=this.startAngleRad+b;return{x:d.plotLeft+a[0]+Math.cos(b)*c,y:d.plotTop+a[1]+Math.sin(b)*c}},getPlotBandPath:function(b,c,a){var d=this.center,f=this.startAngleRad,g=d[2]/2,m=[e(a.outerRadius,"100%"),a.innerRadius,e(a.thickness,10)],k=Math.min(this.offset,0),u=/%$/,p,y=this.isCircular;"polygon"===this.options.gridLineInterpolation?d=this.getPlotLinePath(b).concat(this.getPlotLinePath(c, | ||
!0)):(b=Math.max(b,this.min),c=Math.min(c,this.max),y||(m[0]=this.translate(b),m[1]=this.translate(c)),m=t(m,function(b){u.test(b)&&(b=h(b,10)*g/100);return b}),"circle"!==a.shape&&y?(b=f+this.translate(b),c=f+this.translate(c)):(b=-Math.PI/2,c=1.5*Math.PI,p=!0),m[0]-=k,m[2]-=k,d=this.chart.renderer.symbols.arc(this.left+d[0],this.top+d[1],m[0],m[0],{start:Math.min(b,c),end:Math.max(b,c),innerR:e(m[1],m[0]-m[2]),open:p}));return d},getPlotLinePath:function(b,c){var d=this,a=d.center,f=d.chart,g=d.getPosition(b), | ||
m,k,e;d.isCircular?e=["M",a[0]+f.plotLeft,a[1]+f.plotTop,"L",g.x,g.y]:"circle"===d.options.gridLineInterpolation?(b=d.translate(b))&&(e=d.getLinePath(0,b)):(r(f.xAxis,function(b){b.pane===d.pane&&(m=b)}),e=[],b=d.translate(b),a=m.tickPositions,m.autoConnect&&(a=a.concat([a[0]])),c&&(a=[].concat(a).reverse()),r(a,function(c,d){k=m.getPosition(c,b);e.push(d?"L":"M",k.x,k.y)}));return e},getTitlePosition:function(){var b=this.center,c=this.chart,a=this.options.title;return{x:c.plotLeft+b[0]+(a.x||0), | ||
y:c.plotTop+b[1]-{high:.5,middle:.25,low:0}[a.align]*b[2]+(a.y||0)}}},b(k,"init",function(b,a,g){var d=a.angular,m=a.polar,k=g.isX,u=d&&k,x,p=a.options,h=g.pane||0,y=this.pane=a.pane&&a.pane[h],h=y&&y.options;if(d){if(v(this,u?c:f),x=!k)this.defaultRadialOptions=this.defaultRadialGaugeOptions}else m&&(v(this,f),this.defaultRadialOptions=(x=k)?this.defaultRadialXOptions:n(this.defaultYAxisOptions,this.defaultRadialYOptions));d||m?(this.isRadial=!0,a.inverted=!1,p.chart.zoomType=null):this.isRadial= | ||
!1;y&&x&&(y.axis=this);b.call(this,a,g);!u&&y&&(d||m)&&(b=this.options,this.angleRad=(b.angle||0)*Math.PI/180,this.startAngleRad=(h.startAngle-90)*Math.PI/180,this.endAngleRad=(e(h.endAngle,h.startAngle+360)-90)*Math.PI/180,this.offset=b.offset||0,this.isCircular=x)}),b(k,"autoLabelAlign",function(b){if(!this.isRadial)return b.apply(this,[].slice.call(arguments,1))}),b(g,"getPosition",function(b,c,a,g,f){var d=this.axis;return d.getPosition?d.getPosition(a):b.call(this,c,a,g,f)}),b(g,"getLabelPosition", | ||
function(b,c,a,g,f,k,p,x,h){var d=this.axis,m=k.y,l=20,u=k.align,q=(d.translate(this.pos)+d.startAngleRad+Math.PI/2)/Math.PI*180%360;d.isRadial?(b=d.getPosition(this.pos,d.center[2]/2+e(k.distance,-25)),"auto"===k.rotation?g.attr({rotation:q}):null===m&&(m=d.chart.renderer.fontMetrics(g.styles.fontSize).b-g.getBBox().height/2),null===u&&(d.isCircular?(this.label.getBBox().width>d.len*d.tickInterval/(d.max-d.min)&&(l=0),u=q>l&&q<180-l?"left":q>180+l&&q<360-l?"right":"center"):u="center",g.attr({align:u})), | ||
b.x+=k.x,b.y+=m):b=b.call(this,c,a,g,f,k,p,x,h);return b}),b(g,"getMarkPath",function(b,c,a,g,f,k,e){var d=this.axis;d.isRadial?(b=d.getPosition(this.pos,d.center[2]/2+g),c=["M",c,a,"L",b.x,b.y]):c=b.call(this,c,a,g,f,k,e);return c}))})(w);(function(a){var r=a.each,v=a.pick,t=a.defined,n=a.seriesType,p=a.seriesTypes,e=a.Series.prototype,h=a.Point.prototype;n("arearange","area",{lineWidth:1,threshold:null,tooltip:{pointFormat:'\x3cspan style\x3d"color:{series.color}"\x3e\u25cf\x3c/span\x3e {series.name}: \x3cb\x3e{point.low}\x3c/b\x3e - \x3cb\x3e{point.high}\x3c/b\x3e\x3cbr/\x3e'}, | ||
trackByArea:!0,dataLabels:{align:null,verticalAlign:null,xLow:0,xHigh:0,yLow:0,yHigh:0}},{pointArrayMap:["low","high"],dataLabelCollections:["dataLabel","dataLabelUpper"],toYData:function(b){return[b.low,b.high]},pointValKey:"low",deferTranslatePolar:!0,highToXY:function(b){var c=this.chart,a=this.xAxis.postTranslate(b.rectPlotX,this.yAxis.len-b.plotHigh);b.plotHighX=a.x-c.plotLeft;b.plotHigh=a.y-c.plotTop;b.plotLowX=b.plotX},translate:function(){var b=this,c=b.yAxis,a=!!b.modifyValue;p.area.prototype.translate.apply(b); | ||
r(b.points,function(f){var g=f.low,d=f.high,m=f.plotY;null===d||null===g?(f.isNull=!0,f.plotY=null):(f.plotLow=m,f.plotHigh=c.translate(a?b.modifyValue(d,f):d,0,1,0,1),a&&(f.yBottom=f.plotHigh))});this.chart.polar&&r(this.points,function(c){b.highToXY(c);c.tooltipPos=[(c.plotHighX+c.plotLowX)/2,(c.plotHigh+c.plotLow)/2]})},getGraphPath:function(b){var c=[],a=[],k,g=p.area.prototype.getGraphPath,d,m,u;u=this.options;var l=this.chart.polar&&!1!==u.connectEnds,q=u.connectNulls,e=u.step;b=b||this.points; | ||
for(k=b.length;k--;)d=b[k],d.isNull||l||q||b[k+1]&&!b[k+1].isNull||a.push({plotX:d.plotX,plotY:d.plotY,doCurve:!1}),m={polarPlotY:d.polarPlotY,rectPlotX:d.rectPlotX,yBottom:d.yBottom,plotX:v(d.plotHighX,d.plotX),plotY:d.plotHigh,isNull:d.isNull},a.push(m),c.push(m),d.isNull||l||q||b[k-1]&&!b[k-1].isNull||a.push({plotX:d.plotX,plotY:d.plotY,doCurve:!1});b=g.call(this,b);e&&(!0===e&&(e="left"),u.step={left:"right",center:"center",right:"left"}[e]);c=g.call(this,c);a=g.call(this,a);u.step=e;u=[].concat(b, | ||
c);this.chart.polar||"M"!==a[0]||(a[0]="L");this.graphPath=u;this.areaPath=b.concat(a);u.isArea=!0;u.xMap=b.xMap;this.areaPath.xMap=b.xMap;return u},drawDataLabels:function(){var b=this.data,c=b.length,a,k=[],g=this.options.dataLabels,d=g.align,m=g.verticalAlign,u=g.inside,l,q,z=this.chart.inverted;if(g.enabled||this._hasPointLabels){for(a=c;a--;)if(l=b[a])q=u?l.plotHigh<l.plotLow:l.plotHigh>l.plotLow,l.y=l.high,l._plotY=l.plotY,l.plotY=l.plotHigh,k[a]=l.dataLabel,l.dataLabel=l.dataLabelUpper,l.below= | ||
q,z?d||(g.align=q?"right":"left"):m||(g.verticalAlign=q?"top":"bottom"),g.x=g.xHigh,g.y=g.yHigh;e.drawDataLabels&&e.drawDataLabels.apply(this,arguments);for(a=c;a--;)if(l=b[a])q=u?l.plotHigh<l.plotLow:l.plotHigh>l.plotLow,l.dataLabelUpper=l.dataLabel,l.dataLabel=k[a],l.y=l.low,l.plotY=l._plotY,l.below=!q,z?d||(g.align=q?"left":"right"):m||(g.verticalAlign=q?"bottom":"top"),g.x=g.xLow,g.y=g.yLow;e.drawDataLabels&&e.drawDataLabels.apply(this,arguments)}g.align=d;g.verticalAlign=m},alignDataLabel:function(){p.column.prototype.alignDataLabel.apply(this, | ||
arguments)},drawPoints:function(){var b=this.points.length,c,a;e.drawPoints.apply(this,arguments);for(a=0;a<b;)c=this.points[a],c.lowerGraphic=c.graphic,c.graphic=c.upperGraphic,c._plotY=c.plotY,c._plotX=c.plotX,c.plotY=c.plotHigh,t(c.plotHighX)&&(c.plotX=c.plotHighX),c._isInside=c.isInside,this.chart.polar||(c.isInside=c.isTopInside=void 0!==c.plotY&&0<=c.plotY&&c.plotY<=this.yAxis.len&&0<=c.plotX&&c.plotX<=this.xAxis.len),a++;e.drawPoints.apply(this,arguments);for(a=0;a<b;)c=this.points[a],c.upperGraphic= | ||
c.graphic,c.graphic=c.lowerGraphic,c.isInside=c._isInside,c.plotY=c._plotY,c.plotX=c._plotX,a++},setStackedPoints:a.noop},{setState:function(){var b=this.state,c=this.series,a=c.chart.polar;t(this.plotHigh)||(this.plotHigh=c.yAxis.toPixels(this.high,!0));t(this.plotLow)||(this.plotLow=this.plotY=c.yAxis.toPixels(this.low,!0));c.stateMarkerGraphic&&(c.lowerStateMarkerGraphic=c.stateMarkerGraphic,c.stateMarkerGraphic=c.upperStateMarkerGraphic);this.graphic=this.upperGraphic;this.plotY=this.plotHigh; | ||
a&&(this.plotX=this.plotHighX);h.setState.apply(this,arguments);this.state=b;this.plotY=this.plotLow;this.graphic=this.lowerGraphic;a&&(this.plotX=this.plotLowX);c.stateMarkerGraphic&&(c.upperStateMarkerGraphic=c.stateMarkerGraphic,c.stateMarkerGraphic=c.lowerStateMarkerGraphic,c.lowerStateMarkerGraphic=void 0);h.setState.apply(this,arguments)},haloPath:function(){var b=this.series.chart.polar,c=[];this.plotY=this.plotLow;b&&(this.plotX=this.plotLowX);this.isInside&&(c=h.haloPath.apply(this,arguments)); | ||
this.plotY=this.plotHigh;b&&(this.plotX=this.plotHighX);this.isTopInside&&(c=c.concat(h.haloPath.apply(this,arguments)));return c},destroyElements:function(){r(["lowerGraphic","upperGraphic"],function(b){this[b]&&(this[b]=this[b].destroy())},this);this.graphic=null;return h.destroyElements.apply(this,arguments)}})})(w);(function(a){var r=a.seriesType;r("areasplinerange","arearange",null,{getPointSpline:a.seriesTypes.spline.prototype.getPointSpline})})(w);(function(a){var r=a.defaultPlotOptions,v= | ||
a.each,t=a.merge,n=a.noop,p=a.pick,e=a.seriesType,h=a.seriesTypes.column.prototype;e("columnrange","arearange",t(r.column,r.arearange,{pointRange:null,marker:null,states:{hover:{halo:!1}}}),{translate:function(){var b=this,c=b.yAxis,a=b.xAxis,k=a.startAngleRad,g,d=b.chart,m=b.xAxis.isRadial,u=Math.max(d.chartWidth,d.chartHeight)+999,l;h.translate.apply(b);v(b.points,function(f){var q=f.shapeArgs,e=b.options.minPointLength,h,n;f.plotHigh=l=Math.min(Math.max(-u,c.translate(f.high,0,1,0,1)),u);f.plotLow= | ||
Math.min(Math.max(-u,f.plotY),u);n=l;h=p(f.rectPlotY,f.plotY)-l;Math.abs(h)<e?(e-=h,h+=e,n-=e/2):0>h&&(h*=-1,n-=h);m?(g=f.barX+k,f.shapeType="path",f.shapeArgs={d:b.polarArc(n+h,n,g,g+f.pointWidth)}):(q.height=h,q.y=n,f.tooltipPos=d.inverted?[c.len+c.pos-d.plotLeft-n-h/2,a.len+a.pos-d.plotTop-q.x-q.width/2,h]:[a.left-d.plotLeft+q.x+q.width/2,c.pos-d.plotTop+n+h/2,h])})},directTouch:!0,trackerGroups:["group","dataLabelsGroup"],drawGraph:n,getSymbol:n,crispCol:h.crispCol,drawPoints:h.drawPoints,drawTracker:h.drawTracker, | ||
getColumnMetrics:h.getColumnMetrics,pointAttribs:h.pointAttribs,animate:function(){return h.animate.apply(this,arguments)},polarArc:function(){return h.polarArc.apply(this,arguments)},translate3dPoints:function(){return h.translate3dPoints.apply(this,arguments)},translate3dShapes:function(){return h.translate3dShapes.apply(this,arguments)}},{setState:h.pointClass.prototype.setState})})(w);(function(a){var r=a.each,v=a.isNumber,t=a.merge,n=a.pick,p=a.pInt,e=a.Series,h=a.seriesType,b=a.TrackerMixin; | ||
h("gauge","line",{dataLabels:{enabled:!0,defer:!1,y:15,borderRadius:3,crop:!1,verticalAlign:"top",zIndex:2,borderWidth:1,borderColor:"#cccccc"},dial:{},pivot:{},tooltip:{headerFormat:""},showInLegend:!1},{angular:!0,directTouch:!0,drawGraph:a.noop,fixedBox:!0,forceDL:!0,noSharedTooltip:!0,trackerGroups:["group","dataLabelsGroup"],translate:function(){var b=this.yAxis,a=this.options,k=b.center;this.generatePoints();r(this.points,function(c){var d=t(a.dial,c.dial),g=p(n(d.radius,80))*k[2]/200,f=p(n(d.baseLength, | ||
70))*g/100,l=p(n(d.rearLength,10))*g/100,q=d.baseWidth||3,e=d.topWidth||1,h=a.overshoot,x=b.startAngleRad+b.translate(c.y,null,null,null,!0);v(h)?(h=h/180*Math.PI,x=Math.max(b.startAngleRad-h,Math.min(b.endAngleRad+h,x))):!1===a.wrap&&(x=Math.max(b.startAngleRad,Math.min(b.endAngleRad,x)));x=180*x/Math.PI;c.shapeType="path";c.shapeArgs={d:d.path||["M",-l,-q/2,"L",f,-q/2,g,-e/2,g,e/2,f,q/2,-l,q/2,"z"],translateX:k[0],translateY:k[1],rotation:x};c.plotX=k[0];c.plotY=k[1]})},drawPoints:function(){var b= | ||
this,a=b.yAxis.center,k=b.pivot,g=b.options,d=g.pivot,m=b.chart.renderer;r(b.points,function(c){var a=c.graphic,d=c.shapeArgs,f=d.d,k=t(g.dial,c.dial);a?(a.animate(d),d.d=f):(c.graphic=m[c.shapeType](d).attr({rotation:d.rotation,zIndex:1}).addClass("highcharts-dial").add(b.group),c.graphic.attr({stroke:k.borderColor||"none","stroke-width":k.borderWidth||0,fill:k.backgroundColor||"#000000"}))});k?k.animate({translateX:a[0],translateY:a[1]}):(b.pivot=m.circle(0,0,n(d.radius,5)).attr({zIndex:2}).addClass("highcharts-pivot").translate(a[0], | ||
a[1]).add(b.group),b.pivot.attr({"stroke-width":d.borderWidth||0,stroke:d.borderColor||"#cccccc",fill:d.backgroundColor||"#000000"}))},animate:function(b){var c=this;b||(r(c.points,function(b){var a=b.graphic;a&&(a.attr({rotation:180*c.yAxis.startAngleRad/Math.PI}),a.animate({rotation:b.shapeArgs.rotation},c.options.animation))}),c.animate=null)},render:function(){this.group=this.plotGroup("group","series",this.visible?"visible":"hidden",this.options.zIndex,this.chart.seriesGroup);e.prototype.render.call(this); | ||
this.group.clip(this.chart.clipRect)},setData:function(b,a){e.prototype.setData.call(this,b,!1);this.processData();this.generatePoints();n(a,!0)&&this.chart.redraw()},drawTracker:b&&b.drawTrackerPoint},{setState:function(b){this.state=b}})})(w);(function(a){var r=a.each,v=a.noop,t=a.pick,n=a.seriesType,p=a.seriesTypes;n("boxplot","column",{threshold:null,tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e \x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eMaximum: {point.high}\x3cbr/\x3eUpper quartile: {point.q3}\x3cbr/\x3eMedian: {point.median}\x3cbr/\x3eLower quartile: {point.q1}\x3cbr/\x3eMinimum: {point.low}\x3cbr/\x3e'}, | ||
whiskerLength:"50%",fillColor:"#ffffff",lineWidth:1,medianWidth:2,whiskerWidth:2},{pointArrayMap:["low","q1","median","q3","high"],toYData:function(a){return[a.low,a.q1,a.median,a.q3,a.high]},pointValKey:"high",pointAttribs:function(){return{}},drawDataLabels:v,translate:function(){var a=this.yAxis,h=this.pointArrayMap;p.column.prototype.translate.apply(this);r(this.points,function(b){r(h,function(c){null!==b[c]&&(b[c+"Plot"]=a.translate(b[c],0,1,0,1))})})},drawPoints:function(){var a=this,h=a.options, | ||
b=a.chart.renderer,c,f,k,g,d,m,u=0,l,q,p,n,x=!1!==a.doQuartiles,v,B=a.options.whiskerLength;r(a.points,function(e){var z=e.graphic,r=z?"animate":"attr",J=e.shapeArgs,w={},y={},H={},I={},C=e.color||a.color;void 0!==e.plotY&&(l=J.width,q=Math.floor(J.x),p=q+l,n=Math.round(l/2),c=Math.floor(x?e.q1Plot:e.lowPlot),f=Math.floor(x?e.q3Plot:e.lowPlot),k=Math.floor(e.highPlot),g=Math.floor(e.lowPlot),z||(e.graphic=z=b.g("point").add(a.group),e.stem=b.path().addClass("highcharts-boxplot-stem").add(z),B&&(e.whiskers= | ||
b.path().addClass("highcharts-boxplot-whisker").add(z)),x&&(e.box=b.path(void 0).addClass("highcharts-boxplot-box").add(z)),e.medianShape=b.path(void 0).addClass("highcharts-boxplot-median").add(z)),y.stroke=e.stemColor||h.stemColor||C,y["stroke-width"]=t(e.stemWidth,h.stemWidth,h.lineWidth),y.dashstyle=e.stemDashStyle||h.stemDashStyle,e.stem.attr(y),B&&(H.stroke=e.whiskerColor||h.whiskerColor||C,H["stroke-width"]=t(e.whiskerWidth,h.whiskerWidth,h.lineWidth),e.whiskers.attr(H)),x&&(w.fill=e.fillColor|| | ||
h.fillColor||C,w.stroke=h.lineColor||C,w["stroke-width"]=h.lineWidth||0,e.box.attr(w)),I.stroke=e.medianColor||h.medianColor||C,I["stroke-width"]=t(e.medianWidth,h.medianWidth,h.lineWidth),e.medianShape.attr(I),m=e.stem.strokeWidth()%2/2,u=q+n+m,e.stem[r]({d:["M",u,f,"L",u,k,"M",u,c,"L",u,g]}),x&&(m=e.box.strokeWidth()%2/2,c=Math.floor(c)+m,f=Math.floor(f)+m,q+=m,p+=m,e.box[r]({d:["M",q,f,"L",q,c,"L",p,c,"L",p,f,"L",q,f,"z"]})),B&&(m=e.whiskers.strokeWidth()%2/2,k+=m,g+=m,v=/%$/.test(B)?n*parseFloat(B)/ | ||
100:B/2,e.whiskers[r]({d:["M",u-v,k,"L",u+v,k,"M",u-v,g,"L",u+v,g]})),d=Math.round(e.medianPlot),m=e.medianShape.strokeWidth()%2/2,d+=m,e.medianShape[r]({d:["M",q,d,"L",p,d]}))})},setStackedPoints:v})})(w);(function(a){var r=a.each,v=a.noop,t=a.seriesType,n=a.seriesTypes;t("errorbar","boxplot",{color:"#000000",grouping:!1,linkedTo:":previous",tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e {series.name}: \x3cb\x3e{point.low}\x3c/b\x3e - \x3cb\x3e{point.high}\x3c/b\x3e\x3cbr/\x3e'}, | ||
whiskerWidth:null},{type:"errorbar",pointArrayMap:["low","high"],toYData:function(a){return[a.low,a.high]},pointValKey:"high",doQuartiles:!1,drawDataLabels:n.arearange?function(){var a=this.pointValKey;n.arearange.prototype.drawDataLabels.call(this);r(this.data,function(e){e.y=e[a]})}:v,getColumnMetrics:function(){return this.linkedParent&&this.linkedParent.columnMetrics||n.column.prototype.getColumnMetrics.call(this)}})})(w);(function(a){var r=a.correctFloat,v=a.isNumber,t=a.pick,n=a.Point,p=a.Series, | ||
e=a.seriesType,h=a.seriesTypes;e("waterfall","column",{dataLabels:{inside:!0},lineWidth:1,lineColor:"#333333",dashStyle:"dot",borderColor:"#333333",states:{hover:{lineWidthPlus:0}}},{pointValKey:"y",translate:function(){var b=this.options,a=this.yAxis,f,k,g,d,m,e,l,q,p,n,x=t(b.minPointLength,5),v=x/2,w=b.threshold,y=b.stacking,A;h.column.prototype.translate.apply(this);q=p=w;k=this.points;f=0;for(b=k.length;f<b;f++)g=k[f],l=this.processedYData[f],d=g.shapeArgs,m=y&&a.stacks[(this.negStacks&&l<w?"-": | ||
"")+this.stackKey],A=this.getStackIndicator(A,g.x,this.index),n=t(m&&m[g.x].points[A.key],[0,l]),g.isSum?g.y=r(l):g.isIntermediateSum&&(g.y=r(l-p)),e=Math.max(q,q+g.y)+n[0],d.y=a.translate(e,0,1,0,1),g.isSum?(d.y=a.translate(n[1],0,1,0,1),d.height=Math.min(a.translate(n[0],0,1,0,1),a.len)-d.y):g.isIntermediateSum?(d.y=a.translate(n[1],0,1,0,1),d.height=Math.min(a.translate(p,0,1,0,1),a.len)-d.y,p=n[1]):(d.height=0<l?a.translate(q,0,1,0,1)-d.y:a.translate(q,0,1,0,1)-a.translate(q-l,0,1,0,1),q+=m&& | ||
m[g.x]?m[g.x].total:l),0>d.height&&(d.y+=d.height,d.height*=-1),g.plotY=d.y=Math.round(d.y)-this.borderWidth%2/2,d.height=Math.max(Math.round(d.height),.001),g.yBottom=d.y+d.height,d.height<=x&&!g.isNull?(d.height=x,d.y-=v,g.plotY=d.y,g.minPointLengthOffset=0>g.y?-v:v):g.minPointLengthOffset=0,d=g.plotY+(g.negative?d.height:0),this.chart.inverted?g.tooltipPos[0]=a.len-d:g.tooltipPos[1]=d},processData:function(b){var a=this.yData,f=this.options.data,k,g=a.length,d,m,e,l,q,h;m=d=e=l=this.options.threshold|| | ||
0;for(h=0;h<g;h++)q=a[h],k=f&&f[h]?f[h]:{},"sum"===q||k.isSum?a[h]=r(m):"intermediateSum"===q||k.isIntermediateSum?a[h]=r(d):(m+=q,d+=q),e=Math.min(m,e),l=Math.max(m,l);p.prototype.processData.call(this,b);this.options.stacking||(this.dataMin=e,this.dataMax=l)},toYData:function(b){return b.isSum?0===b.x?null:"sum":b.isIntermediateSum?0===b.x?null:"intermediateSum":b.y},pointAttribs:function(b,a){var c=this.options.upColor;c&&!b.options.color&&(b.color=0<b.y?c:null);b=h.column.prototype.pointAttribs.call(this, | ||
b,a);delete b.dashstyle;return b},getGraphPath:function(){return["M",0,0]},getCrispPath:function(){var b=this.data,a=b.length,f=this.graph.strokeWidth()+this.borderWidth,f=Math.round(f)%2/2,k=this.xAxis.reversed,g=this.yAxis.reversed,d=[],m,e,l;for(l=1;l<a;l++){e=b[l].shapeArgs;m=b[l-1].shapeArgs;e=["M",m.x+(k?0:m.width),m.y+b[l-1].minPointLengthOffset+f,"L",e.x+(k?m.width:0),m.y+b[l-1].minPointLengthOffset+f];if(0>b[l-1].y&&!g||0<b[l-1].y&&g)e[2]+=m.height,e[5]+=m.height;d=d.concat(e)}return d}, | ||
drawGraph:function(){p.prototype.drawGraph.call(this);this.graph.attr({d:this.getCrispPath()})},setStackedPoints:function(){var b=this.options,a,f;p.prototype.setStackedPoints.apply(this,arguments);a=this.stackedYData?this.stackedYData.length:0;for(f=1;f<a;f++)b.data[f].isSum||b.data[f].isIntermediateSum||(this.stackedYData[f]+=this.stackedYData[f-1])},getExtremes:function(){if(this.options.stacking)return p.prototype.getExtremes.apply(this,arguments)}},{getClassName:function(){var b=n.prototype.getClassName.call(this); | ||
this.isSum?b+=" highcharts-sum":this.isIntermediateSum&&(b+=" highcharts-intermediate-sum");return b},isValid:function(){return v(this.y,!0)||this.isSum||this.isIntermediateSum}})})(w);(function(a){var r=a.Series,v=a.seriesType,t=a.seriesTypes;v("polygon","scatter",{marker:{enabled:!1,states:{hover:{enabled:!1}}},stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:""},trackByArea:!0},{type:"polygon",getGraphPath:function(){for(var a=r.prototype.getGraphPath.call(this),p=a.length+1;p--;)(p===a.length|| | ||
"M"===a[p])&&0<p&&a.splice(p,0,"z");return this.areaPath=a},drawGraph:function(){this.options.fillColor=this.color;t.area.prototype.drawGraph.call(this)},drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,drawTracker:r.prototype.drawTracker,setStackedPoints:a.noop})})(w);(function(a){var r=a.arrayMax,v=a.arrayMin,t=a.Axis,n=a.color,p=a.each,e=a.isNumber,h=a.noop,b=a.pick,c=a.pInt,f=a.Point,k=a.Series,g=a.seriesType,d=a.seriesTypes;g("bubble","scatter",{dataLabels:{formatter:function(){return this.point.z}, | ||
inside:!0,verticalAlign:"middle"},marker:{lineColor:null,lineWidth:1,fillOpacity:.5,radius:null,states:{hover:{radiusPlus:0}},symbol:"circle"},minSize:8,maxSize:"20%",softThreshold:!1,states:{hover:{halo:{size:5}}},tooltip:{pointFormat:"({point.x}, {point.y}), Size: {point.z}"},turboThreshold:0,zThreshold:0,zoneAxis:"z"},{pointArrayMap:["y","z"],parallelArrays:["x","y","z"],trackerGroups:["group","dataLabelsGroup"],specialGroup:"group",bubblePadding:!0,zoneAxis:"z",directTouch:!0,pointAttribs:function(b, | ||
c){var a=this.options.marker.fillOpacity;b=g.prototype.pointAttribs.call(this,b,c);1!==a&&(b.fill=p(b.fill).setOpacity(a).get("rgba"));return b},getRadii:function(b,c,a,d){var e,f,k,g=this.zData,n=[],l=this.options,q="width"!==l.sizeBy,h=l.zThreshold,m=c-b;f=0;for(e=g.length;f<e;f++)k=g[f],l.sizeByAbsoluteValue&&null!==k&&(k=Math.abs(k-h),c=Math.max(c-h,Math.abs(b-h)),b=0),null===k?k=null:k<b?k=a/2-1:(k=0<m?(k-b)/m:.5,q&&0<=k&&(k=Math.sqrt(k)),k=Math.ceil(a+k*(d-a))/2),n.push(k);this.radii=n},animate:function(b){var c= | ||
this.options.animation;b||(m(this.points,function(b){var a=b.graphic,d;a&&a.width&&(d={x:a.x,y:a.y,width:a.width,height:a.height},a.attr({x:b.plotX,y:b.plotY,width:1,height:1}),a.animate(d,c))}),this.animate=null)},translate:function(){var b,c=this.data,d,g,l=this.radii;e.scatter.prototype.translate.call(this);for(b=c.length;b--;)d=c[b],g=l?l[b]:0,f(g)&&g>=this.minPxSize/2?(d.marker=a.extend(d.marker,{radius:g,width:2*g,height:2*g}),d.dlBox={x:d.plotX-g,y:d.plotY-g,width:2*g,height:2*g}):d.shapeArgs= | ||
d.plotY=d.dlBox=void 0},alignDataLabel:e.column.prototype.alignDataLabel,buildKDTree:h,applyZones:h},{haloPath:function(b){return l.prototype.haloPath.call(this,0===b?0:(this.marker?this.marker.radius||0:0)+b)},ttBelow:!1});w.prototype.beforePadding=function(){var a=this,d=this.len,e=this.chart,g=0,l=d,h=this.isXAxis,p=h?"xData":"yData",w=this.min,x={},E=Math.min(e.plotWidth,e.plotHeight),z=Number.MAX_VALUE,F=-Number.MAX_VALUE,G=this.max-w,D=d/G,H=[];m(this.series,function(d){var g=d.options;!d.bubblePadding|| | ||
!d.visible&&e.options.chart.ignoreHiddenSeries||(a.allowZoomOutside=!0,H.push(d),h&&(m(["minSize","maxSize"],function(a){var c=g[a],d=/%$/.test(c),c=b(c);x[a]=d?E*c/100:c}),d.minPxSize=x.minSize,d.maxPxSize=Math.max(x.maxSize,x.minSize),d=d.zData,d.length&&(z=c(g.zMin,Math.min(z,Math.max(u(d),!1===g.displayNegative?g.zThreshold:-Number.MAX_VALUE))),F=c(g.zMax,Math.max(F,r(d))))))});m(H,function(b){var c=b[p],d=c.length,e;h&&b.getRadii(z,F,b.minPxSize,b.maxPxSize);if(0<G)for(;d--;)f(c[d])&&a.dataMin<= | ||
c[d]&&c[d]<=a.dataMax&&(e=b.radii[d],g=Math.min((c[d]-w)*D-e,g),l=Math.max((c[d]-w)*D+e,l))});H.length&&0<G&&!this.isLog&&(l-=d,D*=(d+g-l)/d,m([["min","userMin",g],["max","userMax",l]],function(b){void 0===c(a.options[b[0]],a[b[1]])&&(a[b[0]]+=b[2]/D)}))}})(x);(function(a){function r(c,b){var a=this.chart,g=this.options.animation,d=this.group,e=this.markerGroup,f=this.xAxis.center,h=a.plotLeft,n=a.plotTop;a.polar?a.renderer.isSVG&&(!0===g&&(g={}),b?(c={translateX:f[0]+h,translateY:f[1]+n,scaleX:.001, | ||
scaleY:.001},d.attr(c),e&&e.attr(c)):(c={translateX:h,translateY:n,scaleX:1,scaleY:1},d.animate(c,g),e&&e.animate(c,g),this.animate=null)):c.call(this,b)}var u=a.each,w=a.pick,p=a.seriesTypes,m=a.wrap,f=a.Series.prototype,h=a.Pointer.prototype;f.searchPointByAngle=function(a){var b=this.chart,c=this.xAxis.pane.center;return this.searchKDTree({clientX:180+-180/Math.PI*Math.atan2(a.chartX-c[0]-b.plotLeft,a.chartY-c[1]-b.plotTop)})};f.getConnectors=function(a,b,f,g){var c,e,k,l,h,m,p,r;e=g?1:0;c=0<= | ||
b&&b<=a.length-1?b:0>b?a.length-1+b:0;b=0>c-1?a.length-(1+e):c-1;e=c+1>a.length-1?e:c+1;k=a[b];e=a[e];l=k.plotX;k=k.plotY;h=e.plotX;m=e.plotY;e=a[c].plotX;c=a[c].plotY;l=(1.5*e+l)/2.5;k=(1.5*c+k)/2.5;h=(1.5*e+h)/2.5;p=(1.5*c+m)/2.5;m=Math.sqrt(Math.pow(l-e,2)+Math.pow(k-c,2));r=Math.sqrt(Math.pow(h-e,2)+Math.pow(p-c,2));l=Math.atan2(k-c,l-e);p=Math.PI/2+(l+Math.atan2(p-c,h-e))/2;Math.abs(l-p)>Math.PI/2&&(p-=Math.PI);l=e+Math.cos(p)*m;k=c+Math.sin(p)*m;h=e+Math.cos(Math.PI+p)*r;p=c+Math.sin(Math.PI+ | ||
p)*r;e={rightContX:h,rightContY:p,leftContX:l,leftContY:k,plotX:e,plotY:c};f&&(e.prevPointCont=this.getConnectors(a,b,!1,g));return e};m(f,"buildKDTree",function(a){this.chart.polar&&(this.kdByAngle?this.searchPoint=this.searchPointByAngle:this.options.findNearestPointBy="xy");a.apply(this)});f.toXY=function(a){var b,c=this.chart,g=a.plotX;b=a.plotY;a.rectPlotX=g;a.rectPlotY=b;b=this.xAxis.postTranslate(a.plotX,this.yAxis.len-b);a.plotX=a.polarPlotX=b.x-c.plotLeft;a.plotY=a.polarPlotY=b.y-c.plotTop; | ||
this.kdByAngle?(c=(g/Math.PI*180+this.xAxis.pane.options.startAngle)%360,0>c&&(c+=360),a.clientX=c):a.clientX=a.plotX};p.spline&&(m(p.spline.prototype,"getPointSpline",function(a,b,f,g){this.chart.polar?g?(a=this.getConnectors(b,g,!0,this.connectEnds),a=["C",a.prevPointCont.rightContX,a.prevPointCont.rightContY,a.leftContX,a.leftContY,a.plotX,a.plotY]):a=["M",f.plotX,f.plotY]:a=a.call(this,b,f,g);return a}),p.areasplinerange&&(p.areasplinerange.prototype.getPointSpline=p.spline.prototype.getPointSpline)); | ||
m(f,"translate",function(a){var b=this.chart;a.call(this);if(b.polar&&(this.kdByAngle=b.tooltip&&b.tooltip.shared,!this.preventPostTranslate))for(a=this.points,b=a.length;b--;)this.toXY(a[b])});m(f,"getGraphPath",function(a,b){var c=this,g,d,e;if(this.chart.polar){b=b||this.points;for(g=0;g<b.length;g++)if(!b[g].isNull){d=g;break}!1!==this.options.connectEnds&&void 0!==d&&(this.connectEnds=!0,b.splice(b.length,0,b[d]),e=!0);u(b,function(a){void 0===a.polarPlotY&&c.toXY(a)})}g=a.apply(this,[].slice.call(arguments, | ||
1));e&&b.pop();return g});m(f,"animate",r);p.column&&(p=p.column.prototype,p.polarArc=function(a,b,f,g){var c=this.xAxis.center,e=this.yAxis.len;return this.chart.renderer.symbols.arc(c[0],c[1],e-b,null,{start:f,end:g,innerR:e-w(a,e)})},m(p,"animate",r),m(p,"translate",function(a){var b=this.xAxis,c=b.startAngleRad,g,d,e;this.preventPostTranslate=!0;a.call(this);if(b.isRadial)for(g=this.points,e=g.length;e--;)d=g[e],a=d.barX+c,d.shapeType="path",d.shapeArgs={d:this.polarArc(d.yBottom,d.plotY,a,a+ | ||
d.pointWidth)},this.toXY(d),d.tooltipPos=[d.plotX,d.plotY],d.ttBelow=d.plotY>b.center[1]}),m(p,"alignDataLabel",function(a,b,h,g,d,e){this.chart.polar?(a=b.rectPlotX/Math.PI*180,null===g.align&&(g.align=20<a&&160>a?"left":200<a&&340>a?"right":"center"),null===g.verticalAlign&&(g.verticalAlign=45>a||315<a?"bottom":135<a&&225>a?"top":"middle"),f.alignDataLabel.call(this,b,h,g,d,e)):a.call(this,b,h,g,d,e)}));m(h,"getCoordinates",function(a,b){var c=this.chart,g={xAxis:[],yAxis:[]};c.polar?u(c.axes,function(a){var d= | ||
a.isXAxis,f=a.center,h=b.chartX-f[0]-c.plotLeft,f=b.chartY-f[1]-c.plotTop;g[d?"xAxis":"yAxis"].push({axis:a,value:a.translate(d?Math.PI-Math.atan2(h,f):Math.sqrt(Math.pow(h,2)+Math.pow(f,2)),!0)})}):g=a.call(this,b);return g});m(a.Chart.prototype,"getAxes",function(c){this.pane||(this.pane=[]);u(a.splat(this.options.pane),function(b){new a.Pane(b,this)},this);c.call(this)});m(a.Chart.prototype,"drawChartBox",function(a){a.call(this);u(this.pane,function(a){a.render()})});m(a.Chart.prototype,"get", | ||
function(c,b){return a.find(this.pane,function(a){return a.options.id===b})||c.call(this,b)})})(x)}); | ||
a){var c=this.options.marker.fillOpacity;b=k.prototype.pointAttribs.call(this,b,a);1!==c&&(b.fill=n(b.fill).setOpacity(c).get("rgba"));return b},getRadii:function(b,a,c,d){var g,k,f,e=this.zData,m=[],l=this.options,h="width"!==l.sizeBy,q=l.zThreshold,u=a-b;k=0;for(g=e.length;k<g;k++)f=e[k],l.sizeByAbsoluteValue&&null!==f&&(f=Math.abs(f-q),a=Math.max(a-q,Math.abs(b-q)),b=0),null===f?f=null:f<b?f=c/2-1:(f=0<u?(f-b)/u:.5,h&&0<=f&&(f=Math.sqrt(f)),f=Math.ceil(c+f*(d-c))/2),m.push(f);this.radii=m},animate:function(b){var a= | ||
this.options.animation;b||(p(this.points,function(b){var c=b.graphic,d;c&&c.width&&(d={x:c.x,y:c.y,width:c.width,height:c.height},c.attr({x:b.plotX,y:b.plotY,width:1,height:1}),c.animate(d,a))}),this.animate=null)},translate:function(){var b,c=this.data,g,f,k=this.radii;d.scatter.prototype.translate.call(this);for(b=c.length;b--;)g=c[b],f=k?k[b]:0,e(f)&&f>=this.minPxSize/2?(g.marker=a.extend(g.marker,{radius:f,width:2*f,height:2*f}),g.dlBox={x:g.plotX-f,y:g.plotY-f,width:2*f,height:2*f}):g.shapeArgs= | ||
g.plotY=g.dlBox=void 0},alignDataLabel:d.column.prototype.alignDataLabel,buildKDTree:h,applyZones:h},{haloPath:function(b){return f.prototype.haloPath.call(this,0===b?0:(this.marker?this.marker.radius||0:0)+b)},ttBelow:!1});t.prototype.beforePadding=function(){var a=this,d=this.len,g=this.chart,f=0,k=d,h=this.isXAxis,n=h?"xData":"yData",t=this.min,w={},y=Math.min(g.plotWidth,g.plotHeight),A=Number.MAX_VALUE,E=-Number.MAX_VALUE,F=this.max-t,D=d/F,G=[];p(this.series,function(d){var f=d.options;!d.bubblePadding|| | ||
!d.visible&&g.options.chart.ignoreHiddenSeries||(a.allowZoomOutside=!0,G.push(d),h&&(p(["minSize","maxSize"],function(b){var a=f[b],d=/%$/.test(a),a=c(a);w[b]=d?y*a/100:a}),d.minPxSize=w.minSize,d.maxPxSize=Math.max(w.maxSize,w.minSize),d=d.zData,d.length&&(A=b(f.zMin,Math.min(A,Math.max(v(d),!1===f.displayNegative?f.zThreshold:-Number.MAX_VALUE))),E=b(f.zMax,Math.max(E,r(d))))))});p(G,function(b){var c=b[n],d=c.length,g;h&&b.getRadii(A,E,b.minPxSize,b.maxPxSize);if(0<F)for(;d--;)e(c[d])&&a.dataMin<= | ||
c[d]&&c[d]<=a.dataMax&&(g=b.radii[d],f=Math.min((c[d]-t)*D-g,f),k=Math.max((c[d]-t)*D+g,k))});G.length&&0<F&&!this.isLog&&(k-=d,D*=(d+f-k)/d,p([["min","userMin",f],["max","userMax",k]],function(c){void 0===b(a.options[c[0]],a[c[1]])&&(a[c[0]]+=c[2]/D)}))}})(w);(function(a){var r=a.each,v=a.pick,t=a.seriesTypes,n=a.wrap,p=a.Series.prototype,e=a.Pointer.prototype;if(!a.polarExtended){a.polarExtended=!0;p.searchPointByAngle=function(b){var a=this.chart,f=this.xAxis.pane.center;return this.searchKDTree({clientX:180+ | ||
-180/Math.PI*Math.atan2(b.chartX-f[0]-a.plotLeft,b.chartY-f[1]-a.plotTop)})};p.getConnectors=function(b,a,f,k){var c,d,e,h,l,p,n,r;d=k?1:0;c=0<=a&&a<=b.length-1?a:0>a?b.length-1+a:0;a=0>c-1?b.length-(1+d):c-1;d=c+1>b.length-1?d:c+1;e=b[a];d=b[d];h=e.plotX;e=e.plotY;l=d.plotX;p=d.plotY;d=b[c].plotX;c=b[c].plotY;h=(1.5*d+h)/2.5;e=(1.5*c+e)/2.5;l=(1.5*d+l)/2.5;n=(1.5*c+p)/2.5;p=Math.sqrt(Math.pow(h-d,2)+Math.pow(e-c,2));r=Math.sqrt(Math.pow(l-d,2)+Math.pow(n-c,2));h=Math.atan2(e-c,h-d);n=Math.PI/2+(h+ | ||
Math.atan2(n-c,l-d))/2;Math.abs(h-n)>Math.PI/2&&(n-=Math.PI);h=d+Math.cos(n)*p;e=c+Math.sin(n)*p;l=d+Math.cos(Math.PI+n)*r;n=c+Math.sin(Math.PI+n)*r;d={rightContX:l,rightContY:n,leftContX:h,leftContY:e,plotX:d,plotY:c};f&&(d.prevPointCont=this.getConnectors(b,a,!1,k));return d};n(p,"buildKDTree",function(b){this.chart.polar&&(this.kdByAngle?this.searchPoint=this.searchPointByAngle:this.options.findNearestPointBy="xy");b.apply(this)});p.toXY=function(b){var a,f=this.chart,k=b.plotX;a=b.plotY;b.rectPlotX= | ||
k;b.rectPlotY=a;a=this.xAxis.postTranslate(b.plotX,this.yAxis.len-a);b.plotX=b.polarPlotX=a.x-f.plotLeft;b.plotY=b.polarPlotY=a.y-f.plotTop;this.kdByAngle?(f=(k/Math.PI*180+this.xAxis.pane.options.startAngle)%360,0>f&&(f+=360),b.clientX=f):b.clientX=b.plotX};t.spline&&(n(t.spline.prototype,"getPointSpline",function(b,a,f,k){this.chart.polar?k?(b=this.getConnectors(a,k,!0,this.connectEnds),b=["C",b.prevPointCont.rightContX,b.prevPointCont.rightContY,b.leftContX,b.leftContY,b.plotX,b.plotY]):b=["M", | ||
f.plotX,f.plotY]:b=b.call(this,a,f,k);return b}),t.areasplinerange&&(t.areasplinerange.prototype.getPointSpline=t.spline.prototype.getPointSpline));a.addEvent(p,"afterTranslate",function(){var b=this.chart,c,f;if(b.polar){this.kdByAngle=b.tooltip&&b.tooltip.shared;if(!this.preventPostTranslate)for(c=this.points,f=c.length;f--;)this.toXY(c[f]);this.hasClipCircleSetter||(this.hasClipCircleSetter=!!a.addEvent(this,"afterRender",function(){var c;b.polar&&(c=this.yAxis.center,this.group.clip(b.renderer.clipCircle(c[0], | ||
c[1],c[2]/2)),this.setClip=a.noop)}))}});n(p,"getGraphPath",function(b,a){var c=this,e,g,d;if(this.chart.polar){a=a||this.points;for(e=0;e<a.length;e++)if(!a[e].isNull){g=e;break}!1!==this.options.connectEnds&&void 0!==g&&(this.connectEnds=!0,a.splice(a.length,0,a[g]),d=!0);r(a,function(b){void 0===b.polarPlotY&&c.toXY(b)})}e=b.apply(this,[].slice.call(arguments,1));d&&a.pop();return e});var h=function(b,a){var c=this.chart,e=this.options.animation,g=this.group,d=this.markerGroup,h=this.xAxis.center, | ||
n=c.plotLeft,l=c.plotTop;c.polar?c.renderer.isSVG&&(!0===e&&(e={}),a?(b={translateX:h[0]+n,translateY:h[1]+l,scaleX:.001,scaleY:.001},g.attr(b),d&&d.attr(b)):(b={translateX:n,translateY:l,scaleX:1,scaleY:1},g.animate(b,e),d&&d.animate(b,e),this.animate=null)):b.call(this,a)};n(p,"animate",h);t.column&&(t=t.column.prototype,t.polarArc=function(b,a,f,e){var c=this.xAxis.center,d=this.yAxis.len;return this.chart.renderer.symbols.arc(c[0],c[1],d-a,null,{start:f,end:e,innerR:d-v(b,d)})},n(t,"animate", | ||
h),n(t,"translate",function(a){var b=this.xAxis,f=b.startAngleRad,e,g,d;this.preventPostTranslate=!0;a.call(this);if(b.isRadial)for(e=this.points,d=e.length;d--;)g=e[d],a=g.barX+f,g.shapeType="path",g.shapeArgs={d:this.polarArc(g.yBottom,g.plotY,a,a+g.pointWidth)},this.toXY(g),g.tooltipPos=[g.plotX,g.plotY],g.ttBelow=g.plotY>b.center[1]}),n(t,"alignDataLabel",function(a,c,f,e,g,d){this.chart.polar?(a=c.rectPlotX/Math.PI*180,null===e.align&&(e.align=20<a&&160>a?"left":200<a&&340>a?"right":"center"), | ||
null===e.verticalAlign&&(e.verticalAlign=45>a||315<a?"bottom":135<a&&225>a?"top":"middle"),p.alignDataLabel.call(this,c,f,e,g,d)):a.call(this,c,f,e,g,d)}));n(e,"getCoordinates",function(a,c){var b=this.chart,e={xAxis:[],yAxis:[]};b.polar?r(b.axes,function(a){var d=a.isXAxis,f=a.center,g=c.chartX-f[0]-b.plotLeft,f=c.chartY-f[1]-b.plotTop;e[d?"xAxis":"yAxis"].push({axis:a,value:a.translate(d?Math.PI-Math.atan2(g,f):Math.sqrt(Math.pow(g,2)+Math.pow(f,2)),!0)})}):e=a.call(this,c);return e});a.SVGRenderer.prototype.clipCircle= | ||
function(b,c,e){var f=a.uniqueKey(),g=this.createElement("clipPath").attr({id:f}).add(this.defs);b=this.circle(b,c,e).add(g);b.id=f;b.clipPath=g;return b};a.addEvent(a.Chart.prototype,"beforeGetAxes",function(){this.pane||(this.pane=[]);r(a.splat(this.options.pane),function(b){new a.Pane(b,this)},this)});a.addEvent(a.Chart.prototype,"afterDrawChartBox",function(){r(this.pane,function(a){a.render()})});n(a.Chart.prototype,"get",function(b,c){return a.find(this.pane,function(a){return a.options.id=== | ||
c})||b.call(this,c)})}})(w)}); |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Indicator series type for Highstock |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * Indicator series type for Highstock |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Indicator series type for Highstock |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * Indicator series type for Highstock |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Indicator series type for Highstock |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -19,3 +19,2 @@ * Indicator series type for Highstock | ||
(function(H) { | ||
/* eslint max-len: 0 */ | ||
@@ -48,4 +47,4 @@ | ||
/** | ||
* Bollinger bands (BB). This series requires `linkedTo` | ||
* option to be set and should be loaded after `stock/indicators/indicators.js` file. | ||
* Bollinger bands (BB). This series requires the `linkedTo` option to be | ||
* set and should be loaded after the `stock/indicators/indicators.js` file. | ||
* | ||
@@ -96,4 +95,4 @@ * @extends {plotOptions.sma} | ||
/** | ||
* Color of the line. | ||
* If not set, it's inherited from [plotOptions.bb.color](#plotOptions.bb.color). | ||
* Color of the line. If not set, it's inherited from | ||
* [plotOptions.bb.color](#plotOptions.bb.color). | ||
* | ||
@@ -121,27 +120,3 @@ * @type {String} | ||
tooltip: { | ||
/** | ||
* The HTML of the point's line in the tooltip. Variables are enclosed | ||
* by curly brackets. Available variables are point.x, point.y, series. | ||
* name and series.color and other properties on the same form. Furthermore, | ||
* point.y can be extended by the `tooltip.valuePrefix` and | ||
* `tooltip.valueSuffix` variables. This can also be overridden for | ||
* each series, which makes it a good hook for displaying units. | ||
* | ||
* In styled mode, the dot is colored by a class name rather | ||
* than the point color. | ||
* | ||
* @type {String} | ||
* @sample {highcharts} highcharts/tooltip/pointformat/ A different point format with value suffix | ||
* @sample {highmaps} maps/tooltip/format/ Format demo | ||
* @default | ||
* <span style="color:{point.color}">\u25CF</span> <b> {series.name}</b><br/> | ||
* Top: {point.top}<br/> | ||
* Middle: {point.middle}<br/> | ||
* Bottom: {point.bottom}<br/> | ||
*/ | ||
pointFormat: '<span style="color:{point.color}">\u25CF</span>' + | ||
'<b> {series.name}</b><br/>' + | ||
'Top: {point.top}<br/>' + | ||
'Middle: {point.middle}<br/>' + | ||
'Bottom: {point.bottom}<br/>' | ||
pointFormat: '<span style="color:{point.color}">\u25CF</span><b> {series.name}</b><br/>Top: {point.top}<br/>Middle: {point.middle}<br/>Bottom: {point.bottom}<br/>' | ||
}, | ||
@@ -185,7 +160,13 @@ marker: { | ||
each(indicator.points, function(point) { | ||
each([point.top, point.middle, point.bottom], function(value, i) { | ||
if (value !== null) { | ||
point[translatedBB[i]] = indicator.yAxis.toPixels(value, true); | ||
each( | ||
[point.top, point.middle, point.bottom], | ||
function(value, i) { | ||
if (value !== null) { | ||
point[translatedBB[i]] = indicator.yAxis.toPixels( | ||
value, | ||
true | ||
); | ||
} | ||
} | ||
}); | ||
); | ||
}); | ||
@@ -228,3 +209,6 @@ }, | ||
indicator.points = deviations[i]; | ||
indicator.options = merge(middleLineOptions[lineName].styles, gappedExtend); | ||
indicator.options = merge( | ||
middleLineOptions[lineName].styles, | ||
gappedExtend | ||
); | ||
indicator.graph = indicator['graph' + lineName]; | ||
@@ -231,0 +215,0 @@ SMA.prototype.drawGraph.call(indicator); |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Indicator series type for Highstock |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * Indicator series type for Highstock |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ (c) 2010-2017 Highsoft AS |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -26,3 +26,2 @@ * (c) 2010-2017 Highsoft AS | ||
*/ | ||
/* eslint max-len: 0 */ | ||
@@ -48,3 +47,4 @@ | ||
/** | ||
* The id of another series to use its data as volume data for the indiator calculation. | ||
* The id of another series to use its data as volume data for the | ||
* indiator calculation. | ||
*/ | ||
@@ -56,4 +56,6 @@ volumeSeriesID: 'volume' | ||
/** | ||
* Checks if the series and volumeSeries are accessible, number of points.x is longer than period, is series has OHLC data | ||
* @returns {Boolean} true if series is valid and can be computed, otherwise false | ||
* Checks if the series and volumeSeries are accessible, number of | ||
* points.x is longer than period, is series has OHLC data | ||
* @returns {Boolean} | ||
* true if series is valid and can be computed, otherwise false | ||
**/ | ||
@@ -64,10 +66,26 @@ isValid: function() { | ||
series = this.linkedParent, | ||
volumeSeries = this.volumeSeries || (this.volumeSeries = chart.get(options.params.volumeSeriesID)), | ||
isSeriesOHLC = series && series.yData && series.yData[0].length === 4; | ||
volumeSeries = ( | ||
this.volumeSeries || | ||
( | ||
this.volumeSeries = | ||
chart.get(options.params.volumeSeriesID) | ||
) | ||
), | ||
isSeriesOHLC = ( | ||
series && | ||
series.yData && | ||
series.yData[0].length === 4 | ||
); | ||
function isLengthValid(serie) { | ||
return serie.xData && serie.xData.length >= options.params.period; | ||
return serie.xData && | ||
serie.xData.length >= options.params.period; | ||
} | ||
return !!(series && volumeSeries && isLengthValid(series) && isLengthValid(volumeSeries) && isSeriesOHLC); | ||
return !!( | ||
series && | ||
volumeSeries && | ||
isLengthValid(series) && | ||
isLengthValid(volumeSeries) && isSeriesOHLC | ||
); | ||
}, | ||
@@ -77,5 +95,8 @@ | ||
* @typedef {Object} Values | ||
* @property {Number[][]} values combined xData and yData values into a tuple | ||
* @property {Number[]} xData values represent x timestamp values | ||
* @property {Number[]} yData values represent y values | ||
* @property {Number[][]} values | ||
* Combined xData and yData values into a tuple | ||
* @property {Number[]} xData | ||
* Values represent x timestamp values | ||
* @property {Number[]} yData | ||
* Values represent y values | ||
**/ | ||
@@ -85,3 +106,5 @@ | ||
* Returns indicator's data | ||
* @returns {False | Values} Returns false if the indicator is not valid, otherwise returns Values object | ||
* @returns {False | Values} | ||
* Returns false if the indicator is not valid, otherwise | ||
* returns Values object | ||
**/ | ||
@@ -122,3 +145,4 @@ getValues: function(series, params) { | ||
/** | ||
* Calculates money flow volume, changes i, nullIndex vars from upper scope! | ||
* Calculates money flow volume, changes i, nullIndex vars from upper | ||
* scope! | ||
* @private | ||
@@ -153,3 +177,5 @@ * @param {Number[]} ohlc OHLC point | ||
return isValid ? getMoneyFlowMultiplier(high, low, close) * volume : ((nullIndex = i), null); | ||
return isValid ? | ||
getMoneyFlowMultiplier(high, low, close) * volume : | ||
((nullIndex = i), null); | ||
} | ||
@@ -160,3 +186,6 @@ | ||
for (i = 0; i < period; i++) { | ||
moneyFlowVolume[i] = getMoneyFlowVolume(seriesYData[i], volumeSeriesYData[i]); | ||
moneyFlowVolume[i] = getMoneyFlowVolume( | ||
seriesYData[i], | ||
volumeSeriesYData[i] | ||
); | ||
sumVolume += volumeSeriesYData[i]; | ||
@@ -167,7 +196,14 @@ sumMoneyFlowVolume += moneyFlowVolume[i]; | ||
moneyFlowXData.push(xData[i - 1]); | ||
moneyFlowYData.push(i - nullIndex >= period && sumVolume !== 0 ? sumMoneyFlowVolume / sumVolume : null); | ||
moneyFlowYData.push( | ||
i - nullIndex >= period && sumVolume !== 0 ? | ||
sumMoneyFlowVolume / sumVolume : | ||
null | ||
); | ||
values.push([moneyFlowXData[0], moneyFlowYData[0]]); | ||
for (; i < len; i++) { | ||
moneyFlowVolume[i] = getMoneyFlowVolume(seriesYData[i], volumeSeriesYData[i]); | ||
moneyFlowVolume[i] = getMoneyFlowVolume( | ||
seriesYData[i], | ||
volumeSeriesYData[i] | ||
); | ||
@@ -180,3 +216,8 @@ sumVolume -= volumeSeriesYData[i - period]; | ||
point = [xData[i], i - nullIndex >= period ? sumMoneyFlowVolume / sumVolume : null]; | ||
point = [ | ||
xData[i], | ||
i - nullIndex >= period ? | ||
sumMoneyFlowVolume / sumVolume : | ||
null | ||
]; | ||
@@ -183,0 +224,0 @@ moneyFlowXData.push(point[0]); |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -10,3 +10,3 @@ Indicator series type for Highstock | ||
*/ | ||
(function(a){"object"===typeof module&&module.exports?module.exports=a:a(Highcharts)})(function(a){(function(a){var q=a.isArray;a=a.seriesType;a("ema","sma",{params:{index:0,period:14}},{getValues:function(a,g){var b=g.period,h=a.xData,c=a.yData,r=c?c.length:0;a=2/(b+1);var d=0,f=0,n=0,k=[],l=[],m=[],e=-1,p=[];if(h.length<b)return!1;for(q(c[0])&&(e=g.index?g.index:0);f<b;)p.push([h[f],0>e?c[f]:c[f][e]]),n+=0>e?c[f]:c[f][e],f++;g=n/b;for(b=f;b<r;b++)f=0>e?c[b-1]:c[b-1][e],d=[h[b-1],0===d?g:f*a+d*(1- | ||
a)],k.push(d),l.push(d[0]),m.push(d[1]),d=d[1],p.push([h[b],0>e?c[b]:c[b][e]]);c=0>e?c[b-1]:c[b-1][e];d=[h[b-1],0===d?void 0:c*a+d*(1-a)];k.push(d);l.push(d[0]);m.push(d[1]);return{values:k,xData:l,yData:m}}})})(a)}); | ||
(function(a){"object"===typeof module&&module.exports?module.exports=a:a(Highcharts)})(function(a){(function(a){function r(b,a,c,f,k,h,e,l){b=0>e?c[f-1]:c[f-1][e];return[a[f-1],void 0===h?l:b*k+h*(1-k)]}var t=a.isArray;a=a.seriesType;a("ema","sma",{params:{index:0,period:14}},{getValues:function(b,a){var c=a.period,f=b.xData,k=(b=b.yData)?b.length:0,h=2/(c+1),e=0,l=0,n=[],p=[],q=[],g=-1,m=[],d;if(f.length<c)return!1;for(t(b[0])&&(g=a.index?a.index:0);e<c;)m.push([f[e],0>g?b[e]:b[e][g]]),l+=0>g?b[e]: | ||
b[e][g],e++;a=l/c;for(c=e;c<k;c++)d=r(m,f,b,c,h,d,g,a),n.push(d),p.push(d[0]),q.push(d[1]),d=d[1],m.push([f[c],0>g?b[c]:b[c][g]]);d=r(m,f,b,c,h,d,g);n.push(d);p.push(d[0]);q.push(d[1]);return{values:n,xData:p,yData:q}}})})(a)}); |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -19,3 +19,2 @@ * Indicator series type for Highstock | ||
(function(H) { | ||
/* eslint max-len: 0 */ | ||
@@ -33,3 +32,12 @@ var isArray = H.isArray, | ||
function populateAverage(points, xVal, yVal, i, EMApercent, calEMA, index, SMA) { | ||
function populateAverage( | ||
points, | ||
xVal, | ||
yVal, | ||
i, | ||
EMApercent, | ||
calEMA, | ||
index, | ||
SMA | ||
) { | ||
var x = xVal[i - 1], | ||
@@ -39,3 +47,5 @@ yValue = index < 0 ? yVal[i - 1] : yVal[i - 1][index], | ||
y = calEMA === 0 ? SMA : ((yValue * EMApercent) + (calEMA * (1 - EMApercent))); | ||
y = calEMA === undefined ? | ||
SMA : | ||
((yValue * EMApercent) + (calEMA * (1 - EMApercent))); | ||
@@ -52,3 +62,4 @@ return [x, y]; | ||
/** | ||
* Exponential moving average indicator (EMA). This series requires `linkedTo` option to be set. | ||
* Exponential moving average indicator (EMA). This series requires the | ||
* `linkedTo` option to be set. | ||
* | ||
@@ -74,3 +85,2 @@ * @extends {plotOptions.sma} | ||
EMApercent = (2 / (period + 1)), | ||
calEMA = 0, | ||
range = 0, | ||
@@ -84,4 +94,5 @@ sum = 0, | ||
SMA = 0, | ||
i, | ||
EMAPoint; | ||
calEMA, | ||
EMAPoint, | ||
i; | ||
@@ -110,3 +121,12 @@ // Check period, if bigger than points length, skip | ||
for (i = range; i < yValLen; i++) { | ||
EMAPoint = populateAverage(points, xVal, yVal, i, EMApercent, calEMA, index, SMA); | ||
EMAPoint = populateAverage( | ||
points, | ||
xVal, | ||
yVal, | ||
i, | ||
EMApercent, | ||
calEMA, | ||
index, | ||
SMA | ||
); | ||
EMA.push(EMAPoint); | ||
@@ -120,3 +140,11 @@ xData.push(EMAPoint[0]); | ||
EMAPoint = populateAverage(points, xVal, yVal, i, EMApercent, calEMA, index); | ||
EMAPoint = populateAverage( | ||
points, | ||
xVal, | ||
yVal, | ||
i, | ||
EMApercent, | ||
calEMA, | ||
index | ||
); | ||
EMA.push(EMAPoint); | ||
@@ -123,0 +151,0 @@ xData.push(EMAPoint[0]); |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Indicator series type for Highstock |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -19,3 +19,2 @@ * Indicator series type for Highstock | ||
(function(H) { | ||
/* eslint max-len: 0 */ | ||
@@ -66,3 +65,6 @@ var UNDEFINED, | ||
distance = xData[i] - xData[i - 1]; | ||
if (closestDataRange === UNDEFINED || distance < closestDataRange) { | ||
if ( | ||
closestDataRange === UNDEFINED || | ||
distance < closestDataRange | ||
) { | ||
closestDataRange = distance; | ||
@@ -85,3 +87,4 @@ } | ||
/** | ||
* Ichimoku Kinko Hyo (IKH). This series requires `linkedTo` option to be set. | ||
* Ichimoku Kinko Hyo (IKH). This series requires `linkedTo` option to be | ||
* set. | ||
* | ||
@@ -95,4 +98,4 @@ * @extends {plotOptions.sma} | ||
* allAreas,colorAxis,compare,compareBase,joinBy,keys,stacking, | ||
* showInNavigator,navigatorOptions,pointInterval,pointIntervalUnit, | ||
* pointPlacement,pointRange,pointStart | ||
* showInNavigator,navigatorOptions,pointInterval, | ||
* pointIntervalUnit,pointPlacement,pointRange,pointStart | ||
* @optionparent plotOptions.ikh | ||
@@ -289,3 +292,9 @@ */ | ||
}, { | ||
pointArrayMap: ['tenkanSen', 'kijunSen', 'chikouSpan', 'senkouSpanA', 'senkouSpanB'], | ||
pointArrayMap: [ | ||
'tenkanSen', | ||
'kijunSen', | ||
'chikouSpan', | ||
'senkouSpanA', | ||
'senkouSpanB' | ||
], | ||
pointValKey: 'tenkanSen', | ||
@@ -354,3 +363,4 @@ nameComponents: ['periodSenkouSpanB', 'period', 'periodTenkan'], | ||
// add extra parameters for support tooltip in moved lines | ||
// add extra parameters for support tooltip in moved | ||
// lines | ||
point.plotY = point['plot' + value]; | ||
@@ -409,9 +419,20 @@ point.tooltipPos = [point.plotX, point['plot' + value]]; | ||
// Modify options and generate lines: | ||
each(['tenkanLine', 'kijunLine', 'chikouLine', 'senkouSpanA', 'senkouSpanB', 'senkouSpan'], function(lineName, i) { | ||
each([ | ||
'tenkanLine', | ||
'kijunLine', | ||
'chikouLine', | ||
'senkouSpanA', | ||
'senkouSpanB', | ||
'senkouSpan' | ||
], function(lineName, i) { | ||
// First line is rendered by default option | ||
indicator.points = allIchimokuPoints[i]; | ||
indicator.options = merge(mainLineOptions[lineName].styles, gappedExtend); | ||
indicator.options = merge( | ||
mainLineOptions[lineName].styles, | ||
gappedExtend | ||
); | ||
indicator.graph = indicator['graph' + lineName]; | ||
// For span, we need an access to the next points, used in getGraphPath() | ||
// For span, we need an access to the next points, used in | ||
// getGraphPath() | ||
indicator.nextPoints = allIchimokuPoints[i - 1]; | ||
@@ -421,3 +442,6 @@ if (i === 5) { | ||
indicator.points = allIchimokuPoints[i - 1]; | ||
indicator.options = merge(mainLineOptions[lineName].styles, gappedExtend); | ||
indicator.options = merge( | ||
mainLineOptions[lineName].styles, | ||
gappedExtend | ||
); | ||
indicator.graph = indicator['graph' + lineName]; | ||
@@ -518,3 +542,7 @@ indicator.nextPoints = allIchimokuPoints[i - 2]; | ||
// ikh requires close value | ||
if (xVal.length <= period || !isArray(yVal[0]) || yVal[0].length !== 4) { | ||
if ( | ||
xVal.length <= period || | ||
!isArray(yVal[0]) || | ||
yVal[0].length !== 4 | ||
) { | ||
return false; | ||
@@ -521,0 +549,0 @@ } |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Indicator series type for Highstock |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -19,3 +19,2 @@ * Indicator series type for Highstock | ||
(function(H) { | ||
/* eslint max-len: 0 */ | ||
@@ -38,3 +37,4 @@ var pick = H.pick, | ||
/** | ||
* Simple moving average indicator (SMA). This series requires `linkedTo` option to be set. | ||
* Simple moving average indicator (SMA). This series requires `linkedTo` | ||
* option to be set. | ||
* | ||
@@ -47,4 +47,4 @@ * @extends {plotOptions.line} | ||
* allAreas,colorAxis,compare,compareBase,joinBy,keys,stacking, | ||
* showInNavigator,navigatorOptions,pointInterval,pointIntervalUnit, | ||
* pointPlacement,pointRange,pointStart,joinBy | ||
* showInNavigator,navigatorOptions,pointInterval, | ||
* pointIntervalUnit,pointPlacement,pointRange,pointStart,joinBy | ||
* @optionparent plotOptions.sma | ||
@@ -74,3 +74,4 @@ */ | ||
/** | ||
* The main series ID that indicator will be based on. Required for this indicator. | ||
* The main series ID that indicator will be based on. Required for this | ||
* indicator. | ||
* | ||
@@ -84,4 +85,5 @@ * @type {String} | ||
/** | ||
* The point index which indicator calculations will base. | ||
* For example using OHLC data, index=2 means the indicator will be calculated using Low values. | ||
* The point index which indicator calculations will base. For | ||
* example using OHLC data, index=2 means the indicator will be | ||
* calculated using Low values. | ||
* | ||
@@ -138,3 +140,4 @@ * @type {Number} | ||
// Removal of processedXData property is required because on first translate processedXData array is empty | ||
// Removal of processedXData property is required because on | ||
// first translate processedXData array is empty | ||
if (indicator.bindTo.series === false) { | ||
@@ -141,0 +144,0 @@ delete indicator.processedXData; |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -10,8 +10,8 @@ Indicator series type for Highstock | ||
*/ | ||
(function(m){"object"===typeof module&&module.exports?module.exports=m:m(Highcharts)})(function(m){(function(b){var m=b.isArray;b=b.seriesType;b("ema","sma",{params:{index:0,period:14}},{getValues:function(b,p){var d=p.period,n=b.xData,e=b.yData,a=e?e.length:0;b=2/(d+1);var c=0,l=0,r=0,k=[],f=[],h=[],g=-1,t=[];if(n.length<d)return!1;for(m(e[0])&&(g=p.index?p.index:0);l<d;)t.push([n[l],0>g?e[l]:e[l][g]]),r+=0>g?e[l]:e[l][g],l++;p=r/d;for(d=l;d<a;d++)l=0>g?e[d-1]:e[d-1][g],c=[n[d-1],0===c?p:l*b+c*(1- | ||
b)],k.push(c),f.push(c[0]),h.push(c[1]),c=c[1],t.push([n[d],0>g?e[d]:e[d][g]]);e=0>g?e[d-1]:e[d-1][g];c=[n[d-1],0===c?void 0:e*b+c*(1-b)];k.push(c);f.push(c[0]);h.push(c[1]);return{values:k,xData:f,yData:h}}})})(m);(function(b){var m=b.seriesType,q=b.each,p=b.merge,d=b.defined,n=b.seriesTypes.sma,e=b.seriesTypes.ema;m("macd","sma",{params:{shortPeriod:12,longPeriod:26,signalPeriod:9,period:26},signalLine:{styles:{lineWidth:1,lineColor:void 0}},macdLine:{styles:{lineWidth:1,lineColor:void 0}},threshold:0, | ||
groupPadding:.1,pointPadding:.1,states:{hover:{halo:{size:0}}},tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e \x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eValue: {point.MACD}\x3cbr/\x3eSignal: {point.signal}\x3cbr/\x3eHistogram: {point.y}\x3cbr/\x3e'},dataGrouping:"averages",minPointLength:0},{nameComponents:["longPeriod","shortPeriod","signalPeriod"],pointArrayMap:["y","signal","MACD"],parallelArrays:["x","y","signal","MACD"],pointValKey:"y",markerAttribs:b.noop, | ||
getColumnMetrics:b.seriesTypes.column.prototype.getColumnMetrics,crispCol:b.seriesTypes.column.prototype.crispCol,init:function(){n.prototype.init.apply(this,arguments);this.options=p({signalLine:{styles:{lineColor:this.color}},macdLine:{styles:{color:this.color}}},this.options)},toYData:function(a){return[a.y,a.signal,a.MACD]},translate:function(){var a=this,c=["plotSignal","plotMACD"];b.seriesTypes.column.prototype.translate.apply(a);q(a.points,function(b){q([b.signal,b.MACD],function(d,e){null!== | ||
d&&(b[c[e]]=a.yAxis.toPixels(d,!0))})})},destroy:function(){this.graph=null;this.graphmacd=this.graphmacd.destroy();this.graphsignal=this.graphsignal.destroy();n.prototype.destroy.apply(this,arguments)},drawPoints:b.seriesTypes.column.prototype.drawPoints,drawGraph:function(){for(var a=this,c=a.points,b=c.length,e=a.options,k={options:{gapSize:e.gapSize}},f=[[],[]],h;b--;)h=c[b],d(h.plotMACD)&&f[0].push({plotX:h.plotX,plotY:h.plotMACD,isNull:!d(h.plotMACD)}),d(h.plotSignal)&&f[1].push({plotX:h.plotX, | ||
plotY:h.plotSignal,isNull:!d(h.plotMACD)});q(["macd","signal"],function(c,b){a.points=f[b];a.options=p(e[c+"Line"].styles,k);a.graph=a["graph"+c];n.prototype.drawGraph.call(a);a["graph"+c]=a.graph});a.points=c;a.options=e},getValues:function(a,c){var b=0,d,k,f=[],h=[],g=[];d=e.prototype.getValues(a,{period:c.shortPeriod});k=e.prototype.getValues(a,{period:c.longPeriod});d=d.values;k=k.values;for(a=1;a<=d.length;a++)k[a-1]&&k[a-1][1]&&f.push([d[a+c.shortPeriod+1][0],0,null,d[a+c.shortPeriod+1][1]- | ||
k[a-1][1]]);for(a=0;a<f.length;a++)h.push(f[a][0]),g.push([0,null,f[a][3]]);c=e.prototype.getValues({xData:h,yData:g},{period:c.signalPeriod,index:2});c=c.values;for(a=0;a<f.length;a++)f[a][0]>=c[0][0]&&(f[a][2]=c[b][1],g[a]=[0,c[b][1],f[a][3]],null===f[a][3]?(f[a][1]=0,g[a][0]=0):(f[a][1]=f[a][3]-c[b][1],g[a][0]=f[a][3]-c[b][1]),b++);return{values:f,xData:h,yData:g}}})})(m)}); | ||
(function(n){"object"===typeof module&&module.exports?module.exports=n:n(Highcharts)})(function(n){(function(b){function n(f,b,c,k,a,p,e,d){f=0>e?c[k-1]:c[k-1][e];return[b[k-1],void 0===p?d:f*a+p*(1-a)]}var r=b.isArray;b=b.seriesType;b("ema","sma",{params:{index:0,period:14}},{getValues:function(f,b){var c=b.period,k=f.xData,a=(f=f.yData)?f.length:0,p=2/(c+1),e=0,d=0,t=[],q=[],g=[],h=-1,m=[],l;if(k.length<c)return!1;for(r(f[0])&&(h=b.index?b.index:0);e<c;)m.push([k[e],0>h?f[e]:f[e][h]]),d+=0>h?f[e]: | ||
f[e][h],e++;b=d/c;for(c=e;c<a;c++)l=n(m,k,f,c,p,l,h,b),t.push(l),q.push(l[0]),g.push(l[1]),l=l[1],m.push([k[c],0>h?f[c]:f[c][h]]);l=n(m,k,f,c,p,l,h);t.push(l);q.push(l[0]);g.push(l[1]);return{values:t,xData:q,yData:g}}})})(n);(function(b){var n=b.seriesType,r=b.each,f=b.merge,m=b.defined,c=b.seriesTypes.sma,k=b.seriesTypes.ema;n("macd","sma",{params:{shortPeriod:12,longPeriod:26,signalPeriod:9,period:26},signalLine:{styles:{lineWidth:1,lineColor:void 0}},macdLine:{styles:{lineWidth:1,lineColor:void 0}}, | ||
threshold:0,groupPadding:.1,pointPadding:.1,states:{hover:{halo:{size:0}}},tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e \x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eValue: {point.MACD}\x3cbr/\x3eSignal: {point.signal}\x3cbr/\x3eHistogram: {point.y}\x3cbr/\x3e'},dataGrouping:"averages",minPointLength:0},{nameComponents:["longPeriod","shortPeriod","signalPeriod"],pointArrayMap:["y","signal","MACD"],parallelArrays:["x","y","signal","MACD"],pointValKey:"y",markerAttribs:b.noop, | ||
getColumnMetrics:b.seriesTypes.column.prototype.getColumnMetrics,crispCol:b.seriesTypes.column.prototype.crispCol,init:function(){c.prototype.init.apply(this,arguments);this.options=f({signalLine:{styles:{lineColor:this.color}},macdLine:{styles:{color:this.color}}},this.options)},toYData:function(a){return[a.y,a.signal,a.MACD]},translate:function(){var a=this,p=["plotSignal","plotMACD"];b.seriesTypes.column.prototype.translate.apply(a);r(a.points,function(b){r([b.signal,b.MACD],function(d,e){null!== | ||
d&&(b[p[e]]=a.yAxis.toPixels(d,!0))})})},destroy:function(){this.graph=null;this.graphmacd=this.graphmacd.destroy();this.graphsignal=this.graphsignal.destroy();c.prototype.destroy.apply(this,arguments)},drawPoints:b.seriesTypes.column.prototype.drawPoints,drawGraph:function(){for(var a=this,b=a.points,e=b.length,d=a.options,k={options:{gapSize:d.gapSize}},q=[[],[]],g;e--;)g=b[e],m(g.plotMACD)&&q[0].push({plotX:g.plotX,plotY:g.plotMACD,isNull:!m(g.plotMACD)}),m(g.plotSignal)&&q[1].push({plotX:g.plotX, | ||
plotY:g.plotSignal,isNull:!m(g.plotMACD)});r(["macd","signal"],function(b,e){a.points=q[e];a.options=f(d[b+"Line"].styles,k);a.graph=a["graph"+b];c.prototype.drawGraph.call(a);a["graph"+b]=a.graph});a.points=b;a.options=d},getValues:function(a,b){var e=0,d=[],f=[],c=[],g,h;g=k.prototype.getValues(a,{period:b.shortPeriod});h=k.prototype.getValues(a,{period:b.longPeriod});g=g.values;h=h.values;for(a=1;a<=g.length;a++)m(h[a-1])&&m(h[a-1][1])&&d.push([g[a+b.shortPeriod+1][0],0,null,g[a+b.shortPeriod+ | ||
1][1]-h[a-1][1]]);for(a=0;a<d.length;a++)f.push(d[a][0]),c.push([0,null,d[a][3]]);b=k.prototype.getValues({xData:f,yData:c},{period:b.signalPeriod,index:2});b=b.values;for(a=0;a<d.length;a++)d[a][0]>=b[0][0]&&(d[a][2]=b[e][1],c[a]=[0,b[e][1],d[a][3]],null===d[a][3]?(d[a][1]=0,c[a][0]=0):(d[a][1]=d[a][3]-b[e][1],c[a][0]=d[a][3]-b[e][1]),e++);return{values:d,xData:f,yData:c}}})})(n)}); |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -19,3 +19,2 @@ * Indicator series type for Highstock | ||
(function(H) { | ||
/* eslint max-len: 0 */ | ||
@@ -33,3 +32,12 @@ var isArray = H.isArray, | ||
function populateAverage(points, xVal, yVal, i, EMApercent, calEMA, index, SMA) { | ||
function populateAverage( | ||
points, | ||
xVal, | ||
yVal, | ||
i, | ||
EMApercent, | ||
calEMA, | ||
index, | ||
SMA | ||
) { | ||
var x = xVal[i - 1], | ||
@@ -39,3 +47,5 @@ yValue = index < 0 ? yVal[i - 1] : yVal[i - 1][index], | ||
y = calEMA === 0 ? SMA : ((yValue * EMApercent) + (calEMA * (1 - EMApercent))); | ||
y = calEMA === undefined ? | ||
SMA : | ||
((yValue * EMApercent) + (calEMA * (1 - EMApercent))); | ||
@@ -52,3 +62,4 @@ return [x, y]; | ||
/** | ||
* Exponential moving average indicator (EMA). This series requires `linkedTo` option to be set. | ||
* Exponential moving average indicator (EMA). This series requires the | ||
* `linkedTo` option to be set. | ||
* | ||
@@ -74,3 +85,2 @@ * @extends {plotOptions.sma} | ||
EMApercent = (2 / (period + 1)), | ||
calEMA = 0, | ||
range = 0, | ||
@@ -84,4 +94,5 @@ sum = 0, | ||
SMA = 0, | ||
i, | ||
EMAPoint; | ||
calEMA, | ||
EMAPoint, | ||
i; | ||
@@ -110,3 +121,12 @@ // Check period, if bigger than points length, skip | ||
for (i = range; i < yValLen; i++) { | ||
EMAPoint = populateAverage(points, xVal, yVal, i, EMApercent, calEMA, index, SMA); | ||
EMAPoint = populateAverage( | ||
points, | ||
xVal, | ||
yVal, | ||
i, | ||
EMApercent, | ||
calEMA, | ||
index, | ||
SMA | ||
); | ||
EMA.push(EMAPoint); | ||
@@ -120,3 +140,11 @@ xData.push(EMAPoint[0]); | ||
EMAPoint = populateAverage(points, xVal, yVal, i, EMApercent, calEMA, index); | ||
EMAPoint = populateAverage( | ||
points, | ||
xVal, | ||
yVal, | ||
i, | ||
EMApercent, | ||
calEMA, | ||
index | ||
); | ||
EMA.push(EMAPoint); | ||
@@ -398,4 +426,2 @@ xData.push(EMAPoint[0]); | ||
var j = 0, | ||
shortEMA, | ||
longEMA, | ||
MACD = [], | ||
@@ -405,2 +431,4 @@ xMACD = [], | ||
signalLine = [], | ||
shortEMA, | ||
longEMA, | ||
i; | ||
@@ -424,3 +452,3 @@ | ||
for (i = 1; i <= shortEMA.length; i++) { | ||
if (longEMA[i - 1] && longEMA[i - 1][1]) { | ||
if (defined(longEMA[i - 1]) && defined(longEMA[i - 1][1])) { | ||
MACD.push([ | ||
@@ -427,0 +455,0 @@ shortEMA[i + params.shortPeriod + 1][0], |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Money Flow Index indicator for Highstock |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * Money Flow Index indicator for Highstock |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Indicator series type for Highstock |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * Indicator series type for Highstock |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Indicator series type for Highstock |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -19,3 +19,2 @@ * Indicator series type for Highstock | ||
(function(H) { | ||
/* eslint max-len: 0 */ | ||
@@ -47,4 +46,4 @@ | ||
/** | ||
* Pivot points indicator. This series requires `linkedTo` | ||
* option to be set and should be loaded after `stock/indicators/indicators.js` file. | ||
* Pivot points indicator. This series requires the `linkedTo` option to be | ||
* set and should be loaded after `stock/indicators/indicators.js` file. | ||
* | ||
@@ -65,4 +64,5 @@ * @extends {plotOptions.sma} | ||
/** | ||
* Algorithm used to calculate ressistance and support lines based on pivot points. | ||
* Implemented algorithms: `'standard'`, `'fibonacci'` and `'camarilla'` | ||
* Algorithm used to calculate ressistance and support lines based | ||
* on pivot points. Implemented algorithms: `'standard'`, | ||
* `'fibonacci'` and `'camarilla'` | ||
* | ||
@@ -184,4 +184,5 @@ * @type {String} | ||
// For every Ressitance/Support group we need to render labels | ||
// Add one more item, which will just store dataLabels from previous iteration | ||
// For every Ressitance/Support group we need to render labels. | ||
// Add one more item, which will just store dataLabels from | ||
// previous iteration | ||
each(pointMapping.concat([false]), function(position, k) { | ||
@@ -194,3 +195,4 @@ i = pointsLength; | ||
// Store S4 dataLabel too: | ||
point['dataLabel' + pointMapping[k - 1]] = point.dataLabel; | ||
point['dataLabel' + pointMapping[k - 1]] = | ||
point.dataLabel; | ||
} else { | ||
@@ -204,6 +206,10 @@ point.y = point[position]; | ||
if (k) { | ||
point['dataLabel' + pointMapping[k - 1]] = point.dataLabel; | ||
point['dataLabel' + pointMapping[k - 1]] = | ||
point.dataLabel; | ||
} | ||
point.dataLabel = currentLabel = currentLabel && currentLabel.element ? currentLabel : null; | ||
point.dataLabel = currentLabel = | ||
currentLabel && currentLabel.element ? | ||
currentLabel : | ||
null; | ||
} | ||
@@ -221,3 +227,3 @@ } | ||
placement = this[params.algorithm + 'Placement'], | ||
PP = [], // 0- from, 1- to, 2- R1, 3- R2, 4- pivot, 5- S1, 6- S2 etc. | ||
PP = [], // 0- from, 1- to, 2- R1, 3- R2, 4- pivot, 5- S1 etc. | ||
endTimestamp, | ||
@@ -265,3 +271,4 @@ xData = [], | ||
// So we use simple logic: | ||
// Get first point in last range, calculate visible average range and multiply by period | ||
// Get first point in last range, calculate visible average range | ||
// and multiply by period | ||
this.endPoint = slicedX[0] + | ||
@@ -351,4 +358,4 @@ ((endTimestamp - slicedX[0]) / slicedXLen) * period; | ||
/** | ||
* A pivot points indicator. If the [type](#series.pivotpoints.type) option is not | ||
* specified, it is inherited from [chart.type](#chart.type). | ||
* A pivot points indicator. If the [type](#series.pivotpoints.type) option is | ||
* not specified, it is inherited from [chart.type](#chart.type). | ||
* | ||
@@ -355,0 +362,0 @@ * For options that apply to multiple series, it is recommended to add |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Indicator series type for Highstock |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -19,3 +19,2 @@ * Indicator series type for Highstock | ||
(function(H) { | ||
/* eslint max-len: 0 */ | ||
@@ -30,4 +29,5 @@ | ||
/** | ||
* Price envelopes indicator based on [SMA](#plotOptions.sma) calculations. This series requires `linkedTo` | ||
* option to be set and should be loaded after `stock/indicators/indicators.js` file. | ||
* Price envelopes indicator based on [SMA](#plotOptions.sma) calculations. | ||
* This series requires the `linkedTo` option to be set and should be loaded | ||
* after the `stock/indicators/indicators.js` file. | ||
* | ||
@@ -46,27 +46,3 @@ * @extends {plotOptions.sma} | ||
tooltip: { | ||
/** | ||
* The HTML of the point's line in the tooltip. Variables are enclosed | ||
* by curly brackets. Available variables are point.x, point.y, series. | ||
* name and series.color and other properties on the same form. Furthermore, | ||
* point.y can be extended by the `tooltip.valuePrefix` and | ||
* `tooltip.valueSuffix` variables. This can also be overridden for | ||
* each series, which makes it a good hook for displaying units. | ||
* | ||
* In styled mode, the dot is colored by a class name rather | ||
* than the point color. | ||
* | ||
* @type {String} | ||
* @sample {highcharts} highcharts/tooltip/pointformat/ A different point format with value suffix | ||
* @sample {highmaps} maps/tooltip/format/ Format demo | ||
* @default | ||
* <span style="color:{point.color}">\u25CF</span> <b> {series.name}</b><br/> | ||
* Top: {point.top}<br/> | ||
* Middle: {point.middle}<br/> | ||
* Bottom: {point.bottom}<br/> | ||
*/ | ||
pointFormat: '<span style="color:{point.color}">\u25CF</span>' + | ||
'<b> {series.name}</b><br/>' + | ||
'Top: {point.top}<br/>' + | ||
'Middle: {point.middle}<br/>' + | ||
'Bottom: {point.bottom}<br/>' | ||
pointFormat: '<span style="color:{point.color}">\u25CF</span><b> {series.name}</b><br/>Top: {point.top}<br/>Middle: {point.middle}<br/>Bottom: {point.bottom}<br/>' | ||
}, | ||
@@ -111,4 +87,5 @@ params: { | ||
/** | ||
* Color of the line. | ||
* If not set, it's inherited from [plotOptions.priceenvelopes.color](#plotOptions.priceenvelopes.color). | ||
* Color of the line. If not set, it's inherited from | ||
* [plotOptions.priceenvelopes.color](#plotOptions. | ||
* priceenvelopes.color). | ||
* | ||
@@ -170,7 +147,11 @@ * @type {String} | ||
each(indicator.points, function(point) { | ||
each([point.top, point.middle, point.bottom], function(value, i) { | ||
if (value !== null) { | ||
point[translatedEnvelopes[i]] = indicator.yAxis.toPixels(value, true); | ||
each( | ||
[point.top, point.middle, point.bottom], | ||
function(value, i) { | ||
if (value !== null) { | ||
point[translatedEnvelopes[i]] = | ||
indicator.yAxis.toPixels(value, true); | ||
} | ||
} | ||
}); | ||
); | ||
}); | ||
@@ -213,3 +194,6 @@ }, | ||
indicator.points = deviations[i]; | ||
indicator.options = merge(middleLineOptions[lineName].styles, gappedExtend); | ||
indicator.options = merge( | ||
middleLineOptions[lineName].styles, | ||
gappedExtend | ||
); | ||
indicator.graph = indicator['graph' + lineName]; | ||
@@ -246,3 +230,7 @@ SMA.prototype.drawGraph.call(indicator); | ||
// Price envelopes requires close value | ||
if (xVal.length < period || !isArray(yVal[0]) || yVal[0].length !== 4) { | ||
if ( | ||
xVal.length < period || | ||
!isArray(yVal[0]) || | ||
yVal[0].length !== 4 | ||
) { | ||
return false; | ||
@@ -279,4 +267,4 @@ } | ||
/** | ||
* A price envelopes indicator. If the [type](#series.priceenvelopes.type) option is not | ||
* specified, it is inherited from [chart.type](#chart.type). | ||
* A price envelopes indicator. If the [type](#series.priceenvelopes.type) | ||
* option is not specified, it is inherited from [chart.type](#chart.type). | ||
* | ||
@@ -283,0 +271,0 @@ * For options that apply to multiple series, it is recommended to add |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Parabolic SAR Indicator for Highstock |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -20,3 +20,2 @@ * Parabolic SAR Indicator for Highstock | ||
/* eslint max-len: 0 */ | ||
@@ -197,7 +196,10 @@ | ||
yVal = series.yData, | ||
extremePoint = yVal[0][1], // Extreme point is the lowest low for falling and highest high for rising psar - and we are starting with falling | ||
// Extreme point is the lowest low for falling and highest high | ||
// for rising psar - and we are starting with falling | ||
extremePoint = yVal[0][1], | ||
accelerationFactor = params.initialAccelerationFactor, | ||
maxAccelerationFactor = params.maxAccelerationFactor, | ||
increment = params.increment, | ||
initialAccelerationFactor = params.initialAccelerationFactor, // Set initial acc factor (for every new trend!) | ||
// Set initial acc factor (for every new trend!) | ||
initialAccelerationFactor = params.initialAccelerationFactor, | ||
PSAR = yVal[0][2], | ||
@@ -227,3 +229,6 @@ decimals = params.decimals, | ||
accelerationFactor = params.initialAccelerationFactor; | ||
accelerationFactorMultiply = getAccelerationFactorMultiply(accelerationFactor, EPMinusPSAR); | ||
accelerationFactorMultiply = getAccelerationFactorMultiply( | ||
accelerationFactor, | ||
EPMinusPSAR | ||
); | ||
@@ -230,0 +235,0 @@ PSARArr.push([xVal[index], PSAR]); |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Indicator series type for Highstock |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * Indicator series type for Highstock |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Indicator series type for Highstock |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -19,3 +19,2 @@ * Indicator series type for Highstock | ||
(function(H) { | ||
/* eslint max-len: 0 */ | ||
@@ -32,4 +31,5 @@ | ||
/** | ||
* Relative strength index (RSI) technical indicator. This series requires `linkedTo` | ||
* option to be set and should be loaded after `stock/indicators/indicators.js` file. | ||
* Relative strength index (RSI) technical indicator. This series | ||
* requires the `linkedTo` option to be set and should be loaded after | ||
* the `stock/indicators/indicators.js` file. | ||
* | ||
@@ -124,10 +124,15 @@ * @extends {plotOptions.sma} | ||
); | ||
// If average-loss is equal zero, then by definition RSI is set to 100: | ||
// If average-loss is equal zero, then by definition RSI is set | ||
// to 100: | ||
if (avgLoss === 0) { | ||
RSIPoint = 100; | ||
// If average-gain is equal zero, then by definition RSI is set to 0: | ||
// If average-gain is equal zero, then by definition RSI is set | ||
// to 0: | ||
} else if (avgGain === 0) { | ||
RSIPoint = 0; | ||
} else { | ||
RSIPoint = toFixed(100 - (100 / (1 + (avgGain / avgLoss))), decimals); | ||
RSIPoint = toFixed( | ||
100 - (100 / (1 + (avgGain / avgLoss))), | ||
decimals | ||
); | ||
} | ||
@@ -134,0 +139,0 @@ |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Indicator series type for Highstock |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -19,3 +19,2 @@ * Indicator series type for Highstock | ||
(function(H) { | ||
/* eslint max-len: 0 */ | ||
@@ -44,4 +43,4 @@ | ||
/** | ||
* Stochastic oscillator. This series requires `linkedTo` | ||
* option to be set and should be loaded after `stock/indicators/indicators.js` file. | ||
* Stochastic oscillator. This series requires the `linkedTo` option to be | ||
* set and should be loaded after the `stock/indicators/indicators.js` file. | ||
* | ||
@@ -75,25 +74,3 @@ * @extends {plotOptions.sma} | ||
tooltip: { | ||
/** | ||
* The HTML of the point's line in the tooltip. Variables are enclosed | ||
* by curly brackets. Available variables are point.x, point.y, series. | ||
* name and series.color and other properties on the same form. Furthermore, | ||
* point.y can be extended by the `tooltip.valuePrefix` and | ||
* `tooltip.valueSuffix` variables. This can also be overridden for | ||
* each series, which makes it a good hook for displaying units. | ||
* | ||
* In styled mode, the dot is colored by a class name rather | ||
* than the point color. | ||
* | ||
* @type {String} | ||
* @sample {highcharts} highcharts/tooltip/pointformat/ A different point format with value suffix | ||
* @sample {highmaps} maps/tooltip/format/ Format demo | ||
* @default | ||
* <span style="color:{point.color}">\u25CF</span> <b> {series.name}</b><br/> | ||
* %K: {point.y}<br/> | ||
* %D: {point.smoothed}<br/> | ||
*/ | ||
pointFormat: '<span style="color:{point.color}">\u25CF</span>' + | ||
'<b> {series.name}</b><br/>' + | ||
'%K: {point.y}<br/>' + | ||
'%D: {point.smoothed}<br/>' | ||
pointFormat: '<span style="color:{point.color}">\u25CF</span><b> {series.name}</b><br/>%K: {point.y}<br/>%D: {point.smoothed}<br/>' | ||
}, | ||
@@ -123,4 +100,5 @@ /** | ||
/** | ||
* Color of the line. | ||
* If not set, it's inherited from [plotOptions.stochastic.color](#plotOptions.stochastic.color). | ||
* Color of the line. If not set, it's inherited from | ||
* [plotOptions.stochastic.color](#plotOptions.stochastic. | ||
* color). | ||
* | ||
@@ -165,3 +143,6 @@ * @type {String} | ||
if (point.smoothed !== null) { | ||
point.plotSmoothed = indicator.yAxis.toPixels(point.smoothed, true); | ||
point.plotSmoothed = indicator.yAxis.toPixels( | ||
point.smoothed, | ||
true | ||
); | ||
} | ||
@@ -196,3 +177,6 @@ }); | ||
indicator.points = smoothing; | ||
indicator.options = merge(mainLineOptions.smoothedLine.styles, gappedExtend); | ||
indicator.options = merge( | ||
mainLineOptions.smoothedLine.styles, | ||
gappedExtend | ||
); | ||
indicator.graph = indicator.graphSmoothed; | ||
@@ -228,3 +212,7 @@ SMA.prototype.drawGraph.call(indicator); | ||
// Stochastic requires close value | ||
if (xVal.length < periodK || !isArray(yVal[0]) || yVal[0].length !== 4) { | ||
if ( | ||
xVal.length < periodK || | ||
!isArray(yVal[0]) || | ||
yVal[0].length !== 4 | ||
) { | ||
return false; | ||
@@ -234,3 +222,4 @@ } | ||
// For a N-period, we start from N-1 point, to calculate Nth point | ||
// That is why we later need to comprehend slice() elements list with (+1) | ||
// That is why we later need to comprehend slice() elements list | ||
// with (+1) | ||
for (i = periodK - 1; i < yValLen; i++) { | ||
@@ -237,0 +226,0 @@ slicedY = yVal.slice(i - periodK + 1, i + 1); |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Indicator series type for Highstock |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -26,3 +26,2 @@ * Indicator series type for Highstock | ||
*/ | ||
/* eslint max-len: 0 */ | ||
@@ -95,4 +94,5 @@ // Utils | ||
/** | ||
* The id of volume series which is mandatory. | ||
* For example using OHLC data, volumeSeriesID='volume' means the indicator will be calculated using OHLC and volume values. | ||
* The id of volume series which is mandatory. For example using | ||
* OHLC data, volumeSeriesID='volume' means the indicator will be | ||
* calculated using OHLC and volume values. | ||
* | ||
@@ -246,3 +246,4 @@ * @type {String} | ||
// If base series is deleted, indicator series data is filled with an empty array | ||
// If base series is deleted, indicator series data is filled with | ||
// an empty array | ||
indicator.dataEventsToUnbind.push( | ||
@@ -254,3 +255,4 @@ addEvent(baseSeries, 'remove', function() { | ||
// If volume series is deleted, indicator series data is filled with an empty array | ||
// If volume series is deleted, indicator series data is filled with | ||
// an empty array | ||
if (volumeSeries) { | ||
@@ -273,9 +275,12 @@ indicator.dataEventsToUnbind.push( | ||
attr.translateX = series.yAxis.pos; | ||
series.group.animate(attr, H.extend(H.animObject(series.options.animation), { | ||
step: function(val, fx) { | ||
series.group.attr({ | ||
scaleX: Math.max(0.001, fx.pos) | ||
}); | ||
} | ||
})); | ||
series.group.animate( | ||
attr, | ||
H.extend(H.animObject(series.options.animation), { | ||
step: function(val, fx) { | ||
series.group.attr({ | ||
scaleX: Math.max(0.001, fx.pos) | ||
}); | ||
} | ||
}) | ||
); | ||
@@ -330,4 +335,8 @@ // Delete this function to allow it only once | ||
if (wholeVol) { | ||
posWidths.push(pointWidth / wholeVol * priceZone.positiveVolumeData); | ||
negWidths.push(pointWidth / wholeVol * priceZone.negativeVolumeData); | ||
posWidths.push( | ||
pointWidth / wholeVol * priceZone.positiveVolumeData | ||
); | ||
negWidths.push( | ||
pointWidth / wholeVol * priceZone.negativeVolumeData | ||
); | ||
} else { | ||
@@ -339,5 +348,11 @@ posWidths.push(0); | ||
point.color = pos ? volumeDivision.styles.positiveColor : volumeDivision.styles.negativeColor; | ||
point.shapeArgs.width = pos ? indicator.posWidths[i] : indicator.negWidths[i]; | ||
point.shapeArgs.x = pos ? point.shapeArgs.x : indicator.posWidths[i]; | ||
point.color = pos ? | ||
volumeDivision.styles.positiveColor : | ||
volumeDivision.styles.negativeColor; | ||
point.shapeArgs.width = pos ? | ||
indicator.posWidths[i] : | ||
indicator.negWidths[i]; | ||
point.shapeArgs.x = pos ? | ||
point.shapeArgs.x : | ||
indicator.posWidths[i]; | ||
} | ||
@@ -372,3 +387,5 @@ }, | ||
if (indicatorPoints.length) { | ||
pointPadding = options.pointPadding < 0.5 ? options.pointPadding : 0.1; | ||
pointPadding = options.pointPadding < 0.5 ? | ||
options.pointPadding : | ||
0.1; | ||
volumeDataArray = indicator.volumeDataArray; | ||
@@ -378,4 +395,6 @@ maxVolume = H.arrayMax(volumeDataArray); | ||
chartPlotTop = chart.plotTop; | ||
barHeight = abs(yAxis.toPixels(yAxisMin) - yAxis.toPixels(yAxisMin + indicator.rangeStep)); | ||
oldBarHeight = abs(yAxis.toPixels(yAxisMin) - yAxis.toPixels(yAxisMin + indicator.rangeStep)); | ||
barHeight = abs(yAxis.toPixels(yAxisMin) - | ||
yAxis.toPixels(yAxisMin + indicator.rangeStep)); | ||
oldBarHeight = abs(yAxis.toPixels(yAxisMin) - | ||
yAxis.toPixels(yAxisMin + indicator.rangeStep)); | ||
@@ -390,7 +409,21 @@ if (pointPadding) { | ||
barX = point.barX = point.plotX = 0; | ||
barY = point.plotY = yAxis.toPixels(priceZones[index].start) - chartPlotTop - (yAxis.reversed ? (barHeight - oldBarHeight) : barHeight) - yBarOffset; | ||
barWidth = correctFloat(primalBarWidth * priceZones[index].wholeVolumeData / maxVolume); | ||
barY = point.plotY = ( | ||
yAxis.toPixels(priceZones[index].start) - | ||
chartPlotTop - | ||
( | ||
yAxis.reversed ? | ||
(barHeight - oldBarHeight) : | ||
barHeight | ||
) - | ||
yBarOffset | ||
); | ||
barWidth = correctFloat( | ||
primalBarWidth * | ||
priceZones[index].wholeVolumeData / maxVolume | ||
); | ||
point.pointWidth = barWidth; | ||
point.shapeArgs = indicator.crispCol.apply(indicator, [barX, barY, barWidth, barHeight]); | ||
point.shapeArgs = indicator.crispCol.apply( | ||
indicator, [barX, barY, barWidth, barHeight] | ||
); | ||
@@ -403,3 +436,8 @@ point.volumeNeg = priceZones[index].negativeVolumeData; | ||
if (zoneLinesOptions.enabled) { | ||
indicator.drawZones(chart, yAxis, indicator.zoneStarts, zoneLinesOptions.styles); | ||
indicator.drawZones( | ||
chart, | ||
yAxis, | ||
indicator.zoneStarts, | ||
zoneLinesOptions.styles | ||
); | ||
} | ||
@@ -424,3 +462,4 @@ } | ||
return H.error( | ||
'Base series not found! In case it has been removed, add a new one.', | ||
'Base series not found! In case it has been removed, add ' + | ||
'a new one.', | ||
true | ||
@@ -452,4 +491,11 @@ ); | ||
// Price zones contains all the information about the zones (index, start, end, volumes, etc.) | ||
priceZones = indicator.priceZones = indicator.specifyZones(isOHLC, xValues, yValues, ranges, volumeSeries); | ||
// Price zones contains all the information about the zones (index, | ||
// start, end, volumes, etc.) | ||
priceZones = indicator.priceZones = indicator.specifyZones( | ||
isOHLC, | ||
xValues, | ||
yValues, | ||
ranges, | ||
volumeSeries | ||
); | ||
@@ -469,7 +515,17 @@ each(priceZones, function(zone, index) { | ||
// Specifing where each zone should start ans end | ||
specifyZones: function(isOHLC, xValues, yValues, ranges, volumeSeries) { | ||
specifyZones: function( | ||
isOHLC, | ||
xValues, | ||
yValues, | ||
ranges, | ||
volumeSeries | ||
) { | ||
var indicator = this, | ||
rangeExtremes = isOHLC ? arrayExtremesOHLC(yValues) : false, | ||
lowRange = rangeExtremes ? rangeExtremes.min : H.arrayMin(yValues), | ||
highRange = rangeExtremes ? rangeExtremes.max : H.arrayMax(yValues), | ||
lowRange = rangeExtremes ? | ||
rangeExtremes.min : | ||
H.arrayMin(yValues), | ||
highRange = rangeExtremes ? | ||
rangeExtremes.max : | ||
H.arrayMax(yValues), | ||
zoneStarts = indicator.zoneStarts = [], | ||
@@ -491,3 +547,4 @@ priceZones = [], | ||
rangeStep = indicator.rangeStep = correctFloat(highRange - lowRange) / ranges; | ||
rangeStep = indicator.rangeStep = | ||
correctFloat(highRange - lowRange) / ranges; | ||
zoneStarts.push(lowRange); | ||
@@ -512,6 +569,18 @@ | ||
return indicator.volumePerZone(isOHLC, priceZones, volumeSeries, xValues, yValues); | ||
return indicator.volumePerZone( | ||
isOHLC, | ||
priceZones, | ||
volumeSeries, | ||
xValues, | ||
yValues | ||
); | ||
}, | ||
// Calculating sum of volume values for a specific zone | ||
volumePerZone: function(isOHLC, priceZones, volumeSeries, xValues, yValues) { | ||
volumePerZone: function( | ||
isOHLC, | ||
priceZones, | ||
volumeSeries, | ||
xValues, | ||
yValues | ||
) { | ||
var indicator = this, | ||
@@ -531,3 +600,4 @@ volumeXData = volumeSeries.processedXData, | ||
if (abs(baseSeriesLength - volumeSeriesLength)) { | ||
// If the first point don't have volume, add 0 value at the beggining of the volume array | ||
// If the first point don't have volume, add 0 value at the | ||
// beggining of the volume array | ||
if (xValues[0] !== volumeXData[0]) { | ||
@@ -537,4 +607,8 @@ volumeYData.unshift(0); | ||
// If the last point don't have volume, add 0 value at the end of the volume array | ||
if (xValues[baseSeriesLength - 1] !== volumeXData[volumeSeriesLength - 1]) { | ||
// If the last point don't have volume, add 0 value at the end | ||
// of the volume array | ||
if ( | ||
xValues[baseSeriesLength - 1] !== | ||
volumeXData[volumeSeriesLength - 1] | ||
) { | ||
volumeYData.push(0); | ||
@@ -555,5 +629,8 @@ } | ||
value = isOHLC ? yValues[i][3] : yValues[i]; | ||
previousValue = i ? (isOHLC ? yValues[i - 1][3] : yValues[i - 1]) : value; | ||
previousValue = i ? | ||
(isOHLC ? yValues[i - 1][3] : yValues[i - 1]) : | ||
value; | ||
// Checks if this is the point with the lowest close value and if so, adds it calculations | ||
// Checks if this is the point with the lowest close value | ||
// and if so, adds it calculations | ||
if (value <= zone.start && zone.index === 0) { | ||
@@ -563,3 +640,4 @@ startFlag = true; | ||
// Checks if this is the point with the highest close value and if so, adds it calculations | ||
// Checks if this is the point with the highest close value | ||
// and if so, adds it calculations | ||
if (value >= zone.end && zone.index === lastZoneIndex) { | ||
@@ -569,3 +647,6 @@ endFlag = true; | ||
if ((value > zone.start || startFlag) && (value < zone.end || endFlag)) { | ||
if ( | ||
(value > zone.start || startFlag) && | ||
(value < zone.end || endFlag) | ||
) { | ||
zone.wholeVolumeData += volumeYData[i]; | ||
@@ -614,4 +695,4 @@ | ||
} else { | ||
zoneLinesSVG = indicator.zoneLinesSVG = renderer.path(zoneLinesPath) | ||
.attr({ | ||
zoneLinesSVG = indicator.zoneLinesSVG = | ||
renderer.path(zoneLinesPath).attr({ | ||
'stroke-width': zonesStyles.lineWidth, | ||
@@ -636,4 +717,4 @@ 'stroke': zonesStyles.color, | ||
/** | ||
* A `Volume By Price (VBP)` series. If the [type](#series.vbp.type) option is not | ||
* specified, it is inherited from [chart.type](#chart.type). | ||
* A `Volume By Price (VBP)` series. If the [type](#series.vbp.type) option is | ||
* not specified, it is inherited from [chart.type](#chart.type). | ||
* | ||
@@ -640,0 +721,0 @@ * For options that apply to multiple series, it is recommended to add |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Indicator series type for Highstock |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -26,3 +26,2 @@ * Indicator series type for Highstock | ||
*/ | ||
/* eslint max-len: 0 */ | ||
@@ -58,4 +57,5 @@ var isArray = H.isArray, | ||
/** | ||
* The id of volume series which is mandatory. | ||
* For example using OHLC data, volumeSeriesID='volume' means the indicator will be calculated using OHLC and volume values. | ||
* The id of volume series which is mandatory. For example using | ||
* OHLC data, volumeSeriesID='volume' means the indicator will be | ||
* calculated using OHLC and volume values. | ||
* | ||
@@ -70,3 +70,4 @@ * @type {String} | ||
/** | ||
* Returns the final values of the indicator ready to be presented on a chart | ||
* Returns the final values of the indicator ready to be presented on a | ||
* chart | ||
* @returns {Object} Object containing computed VWAP | ||
@@ -98,9 +99,18 @@ **/ | ||
return indicator.calculateVWAPValues(isOHLC, xValues, yValues, volumeSeries, period); | ||
return indicator.calculateVWAPValues( | ||
isOHLC, | ||
xValues, | ||
yValues, | ||
volumeSeries, | ||
period | ||
); | ||
}, | ||
/** | ||
* Main algorithm used to calculate Volume Weighted Average Price (VWAP) values | ||
* Main algorithm used to calculate Volume Weighted Average Price (VWAP) | ||
* values | ||
* @param {Boolean} isOHLC says if data has OHLC format | ||
* @param {Array} xValues array of timestamps | ||
* @param {Array} yValues array of yValues, can be an array of a four arrays (OHLC) or array of values (line) | ||
* @param {Array} yValues | ||
* array of yValues, can be an array of a four arrays (OHLC) or | ||
* array of values (line) | ||
* @param {Array} volumeSeries volume series | ||
@@ -110,3 +120,9 @@ * @param {Number} period number of points to be calculated | ||
**/ | ||
calculateVWAPValues: function(isOHLC, xValues, yValues, volumeSeries, period) { | ||
calculateVWAPValues: function( | ||
isOHLC, | ||
xValues, | ||
yValues, | ||
volumeSeries, | ||
period | ||
) { | ||
var volumeValues = volumeSeries.yData, | ||
@@ -134,8 +150,15 @@ volumeLength = volumeSeries.xData.length, | ||
for (i = 0, j = 0; i < commonLength; i++) { | ||
// Depending on whether series is OHLC or line type, price is average of the high, low and close or a simple value | ||
typicalPrice = isOHLC ? ((yValues[i][1] + yValues[i][2] + yValues[i][3]) / 3) : yValues[i]; | ||
// Depending on whether series is OHLC or line type, price is | ||
// average of the high, low and close or a simple value | ||
typicalPrice = isOHLC ? | ||
((yValues[i][1] + yValues[i][2] + yValues[i][3]) / 3) : | ||
yValues[i]; | ||
typicalPrice *= volumeValues[i]; | ||
cPrice = j ? (cumulativePrice[i - 1] + typicalPrice) : typicalPrice; | ||
cVolume = j ? (cumulativeVolume[i - 1] + volumeValues[i]) : volumeValues[i]; | ||
cPrice = j ? | ||
(cumulativePrice[i - 1] + typicalPrice) : | ||
typicalPrice; | ||
cVolume = j ? | ||
(cumulativeVolume[i - 1] + volumeValues[i]) : | ||
volumeValues[i]; | ||
@@ -165,4 +188,5 @@ cumulativePrice.push(cPrice); | ||
/** | ||
* A `Volume Weighted Average Price (VWAP)` series. If the [type](#series.vwap.type) option is not | ||
* specified, it is inherited from [chart.type](#chart.type). | ||
* A `Volume Weighted Average Price (VWAP)` series. If the | ||
* [type](#series.vwap.type) option is not specified, it is inherited from | ||
* [chart.type](#chart.type). | ||
* | ||
@@ -169,0 +193,0 @@ * For options that apply to multiple series, it is recommended to add |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Indicator series type for Highstock |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * Indicator series type for Highstock |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Indicator series type for Highstock |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * Indicator series type for Highstock |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ 3D features for Highcharts JS |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -8,60 +8,61 @@ (c) 2009-2016 Torstein Honsi | ||
*/ | ||
(function(w){"object"===typeof module&&module.exports?module.exports=w:w(Highcharts)})(function(w){(function(a){var m=a.deg2rad,r=a.isNumber,t=a.pick,k=a.relativeLength;a.CenteredSeriesMixin={getCenter:function(){var a=this.options,h=this.chart,q=2*(a.slicedOffset||0),c=h.plotWidth-2*q,h=h.plotHeight-2*q,b=a.center,b=[t(b[0],"50%"),t(b[1],"50%"),a.size||"100%",a.innerSize||0],n=Math.min(c,h),g,d;for(g=0;4>g;++g)d=b[g],a=2>g||2===g&&/%$/.test(d),b[g]=k(d,[c,h,n,b[2]][g])+(a?q:0);b[3]>b[2]&&(b[3]=b[2]); | ||
return b},getStartAndEndRadians:function(a,h){a=r(a)?a:0;h=r(h)&&h>a&&360>h-a?h:a+360;return{start:m*(a+-90),end:m*(h+-90)}}}})(w);(function(a){function m(a,c){this.init(a,c)}var r=a.CenteredSeriesMixin,t=a.each,k=a.extend,f=a.merge,h=a.splat;k(m.prototype,{coll:"pane",init:function(a,c){this.chart=c;this.background=[];c.pane.push(this);this.setOptions(a)},setOptions:function(a){this.options=f(this.defaultOptions,this.chart.angular?{background:{}}:void 0,a)},render:function(){var a=this.options,c= | ||
this.options.background,b=this.chart.renderer;this.group||(this.group=b.g("pane-group").attr({zIndex:a.zIndex||0}).add());this.updateCenter();if(c)for(c=h(c),a=Math.max(c.length,this.background.length||0),b=0;b<a;b++)c[b]&&this.axis?this.renderBackground(f(this.defaultBackgroundOptions,c[b]),b):this.background[b]&&(this.background[b]=this.background[b].destroy(),this.background.splice(b,1))},renderBackground:function(a,c){var b="animate";this.background[c]||(this.background[c]=this.chart.renderer.path().add(this.group), | ||
b="attr");this.background[c][b]({d:this.axis.getPlotBandPath(a.from,a.to,a)}).attr({"class":"highcharts-pane "+(a.className||"")})},defaultOptions:{center:["50%","50%"],size:"85%",startAngle:0},defaultBackgroundOptions:{shape:"circle",from:-Number.MAX_VALUE,innerRadius:0,to:Number.MAX_VALUE,outerRadius:"105%"},updateCenter:function(a){this.center=(a||this.axis||{}).center=r.getCenter.call(this)},update:function(a,c){f(!0,this.options,a);this.setOptions(this.options);this.render();t(this.chart.axes, | ||
function(b){b.pane===this&&(b.pane=null,b.update({},c))},this)}});a.Pane=m})(w);(function(a){var m=a.each,r=a.extend,t=a.map,k=a.merge,f=a.noop,h=a.pick,q=a.pInt,c=a.wrap,b,n,g=a.Axis.prototype;a=a.Tick.prototype;b={getOffset:f,redraw:function(){this.isDirty=!1},render:function(){this.isDirty=!1},setScale:f,setCategories:f,setTitle:f};n={defaultRadialGaugeOptions:{labels:{align:"center",x:0,y:null},minorGridLineWidth:0,minorTickInterval:"auto",minorTickLength:10,minorTickPosition:"inside",minorTickWidth:1, | ||
tickLength:10,tickPosition:"inside",tickWidth:2,title:{rotation:0},zIndex:2},defaultRadialXOptions:{gridLineWidth:1,labels:{align:null,distance:15,x:0,y:null,style:{textOverflow:"none"}},maxPadding:0,minPadding:0,showLastLabel:!1,tickLength:0},defaultRadialYOptions:{gridLineInterpolation:"circle",labels:{align:"right",x:-3,y:-2},showLastLabel:!1,title:{x:4,text:null,rotation:90}},setOptions:function(d){d=this.options=k(this.defaultOptions,this.defaultRadialOptions,d);d.plotBands||(d.plotBands=[])}, | ||
getOffset:function(){g.getOffset.call(this);this.chart.axisOffset[this.side]=0},getLinePath:function(d,b){d=this.center;var c=this.chart,e=h(b,d[2]/2-this.offset);this.isCircular||void 0!==b?(b=this.chart.renderer.symbols.arc(this.left+d[0],this.top+d[1],e,e,{start:this.startAngleRad,end:this.endAngleRad,open:!0,innerR:0}),b.xBounds=[this.left+d[0]],b.yBounds=[this.top+d[1]-e]):(b=this.postTranslate(this.angleRad,e),b=["M",d[0]+c.plotLeft,d[1]+c.plotTop,"L",b.x,b.y]);return b},setAxisTranslation:function(){g.setAxisTranslation.call(this); | ||
this.center&&(this.transA=this.isCircular?(this.endAngleRad-this.startAngleRad)/(this.max-this.min||1):this.center[2]/2/(this.max-this.min||1),this.minPixelPadding=this.isXAxis?this.transA*this.minPointOffset:0)},beforeSetTickPositions:function(){if(this.autoConnect=this.isCircular&&void 0===h(this.userMax,this.options.max)&&this.endAngleRad-this.startAngleRad===2*Math.PI)this.max+=this.categories&&1||this.pointRange||this.closestPointRange||0},setAxisSize:function(){g.setAxisSize.call(this);this.isRadial&& | ||
(this.pane.updateCenter(this),this.isCircular&&(this.sector=this.endAngleRad-this.startAngleRad),this.len=this.width=this.height=this.center[2]*h(this.sector,1)/2)},getPosition:function(b,c){return this.postTranslate(this.isCircular?this.translate(b):this.angleRad,h(this.isCircular?c:this.translate(b),this.center[2]/2)-this.offset)},postTranslate:function(b,c){var d=this.chart,e=this.center;b=this.startAngleRad+b;return{x:d.plotLeft+e[0]+Math.cos(b)*c,y:d.plotTop+e[1]+Math.sin(b)*c}},getPlotBandPath:function(b, | ||
c,a){var d=this.center,e=this.startAngleRad,n=d[2]/2,g=[h(a.outerRadius,"100%"),a.innerRadius,h(a.thickness,10)],u=Math.min(this.offset,0),f=/%$/,y,k=this.isCircular;"polygon"===this.options.gridLineInterpolation?d=this.getPlotLinePath(b).concat(this.getPlotLinePath(c,!0)):(b=Math.max(b,this.min),c=Math.min(c,this.max),k||(g[0]=this.translate(b),g[1]=this.translate(c)),g=t(g,function(b){f.test(b)&&(b=q(b,10)*n/100);return b}),"circle"!==a.shape&&k?(b=e+this.translate(b),c=e+this.translate(c)):(b= | ||
-Math.PI/2,c=1.5*Math.PI,y=!0),g[0]-=u,g[2]-=u,d=this.chart.renderer.symbols.arc(this.left+d[0],this.top+d[1],g[0],g[0],{start:Math.min(b,c),end:Math.max(b,c),innerR:h(g[1],g[0]-g[2]),open:y}));return d},getPlotLinePath:function(b,c){var d=this,e=d.center,a=d.chart,n=d.getPosition(b),g,f,h;d.isCircular?h=["M",e[0]+a.plotLeft,e[1]+a.plotTop,"L",n.x,n.y]:"circle"===d.options.gridLineInterpolation?(b=d.translate(b))&&(h=d.getLinePath(0,b)):(m(a.xAxis,function(b){b.pane===d.pane&&(g=b)}),h=[],b=d.translate(b), | ||
e=g.tickPositions,g.autoConnect&&(e=e.concat([e[0]])),c&&(e=[].concat(e).reverse()),m(e,function(c,d){f=g.getPosition(c,b);h.push(d?"L":"M",f.x,f.y)}));return h},getTitlePosition:function(){var b=this.center,c=this.chart,a=this.options.title;return{x:c.plotLeft+b[0]+(a.x||0),y:c.plotTop+b[1]-{high:.5,middle:.25,low:0}[a.align]*b[2]+(a.y||0)}}};c(g,"init",function(c,e,a){var d=e.angular,g=e.polar,u=a.isX,v=d&&u,f,q=e.options,y=a.pane||0,m=this.pane=e.pane&&e.pane[y],y=m&&m.options;if(d){if(r(this, | ||
v?b:n),f=!u)this.defaultRadialOptions=this.defaultRadialGaugeOptions}else g&&(r(this,n),this.defaultRadialOptions=(f=u)?this.defaultRadialXOptions:k(this.defaultYAxisOptions,this.defaultRadialYOptions));d||g?(this.isRadial=!0,e.inverted=!1,q.chart.zoomType=null):this.isRadial=!1;m&&f&&(m.axis=this);c.call(this,e,a);!v&&m&&(d||g)&&(c=this.options,this.angleRad=(c.angle||0)*Math.PI/180,this.startAngleRad=(y.startAngle-90)*Math.PI/180,this.endAngleRad=(h(y.endAngle,y.startAngle+360)-90)*Math.PI/180, | ||
this.offset=c.offset||0,this.isCircular=f)});c(g,"autoLabelAlign",function(b){if(!this.isRadial)return b.apply(this,[].slice.call(arguments,1))});c(a,"getPosition",function(b,c,a,g,n){var d=this.axis;return d.getPosition?d.getPosition(a):b.call(this,c,a,g,n)});c(a,"getLabelPosition",function(b,c,a,g,n,x,v,f,k){var d=this.axis,e=x.y,p=20,u=x.align,l=(d.translate(this.pos)+d.startAngleRad+Math.PI/2)/Math.PI*180%360;d.isRadial?(b=d.getPosition(this.pos,d.center[2]/2+h(x.distance,-25)),"auto"===x.rotation? | ||
g.attr({rotation:l}):null===e&&(e=d.chart.renderer.fontMetrics(g.styles.fontSize).b-g.getBBox().height/2),null===u&&(d.isCircular?(this.label.getBBox().width>d.len*d.tickInterval/(d.max-d.min)&&(p=0),u=l>p&&l<180-p?"left":l>180+p&&l<360-p?"right":"center"):u="center",g.attr({align:u})),b.x+=x.x,b.y+=e):b=b.call(this,c,a,g,n,x,v,f,k);return b});c(a,"getMarkPath",function(b,c,a,g,n,f,v){var d=this.axis;d.isRadial?(b=d.getPosition(this.pos,d.center[2]/2+g),c=["M",c,a,"L",b.x,b.y]):c=b.call(this,c,a, | ||
g,n,f,v);return c})})(w);(function(a){var m=a.each,r=a.pick,t=a.defined,k=a.seriesType,f=a.seriesTypes,h=a.Series.prototype,q=a.Point.prototype;k("arearange","area",{threshold:null,tooltip:{pointFormat:'\x3cspan class\x3d"highcharts-color-{series.colorIndex}"\x3e\u25cf\x3c/span\x3e {series.name}: \x3cb\x3e{point.low}\x3c/b\x3e - \x3cb\x3e{point.high}\x3c/b\x3e\x3cbr/\x3e'},trackByArea:!0,dataLabels:{align:null,verticalAlign:null,xLow:0,xHigh:0,yLow:0,yHigh:0}},{pointArrayMap:["low","high"],dataLabelCollections:["dataLabel", | ||
"dataLabelUpper"],toYData:function(c){return[c.low,c.high]},pointValKey:"low",deferTranslatePolar:!0,highToXY:function(c){var b=this.chart,a=this.xAxis.postTranslate(c.rectPlotX,this.yAxis.len-c.plotHigh);c.plotHighX=a.x-b.plotLeft;c.plotHigh=a.y-b.plotTop;c.plotLowX=c.plotX},translate:function(){var c=this,b=c.yAxis,a=!!c.modifyValue;f.area.prototype.translate.apply(c);m(c.points,function(g){var d=g.low,e=g.high,n=g.plotY;null===e||null===d?(g.isNull=!0,g.plotY=null):(g.plotLow=n,g.plotHigh=b.translate(a? | ||
c.modifyValue(e,g):e,0,1,0,1),a&&(g.yBottom=g.plotHigh))});this.chart.polar&&m(this.points,function(b){c.highToXY(b);b.tooltipPos=[(b.plotHighX+b.plotLowX)/2,(b.plotHigh+b.plotLow)/2]})},getGraphPath:function(c){var b=[],a=[],g,d=f.area.prototype.getGraphPath,e,u,p;p=this.options;var l=this.chart.polar&&!1!==p.connectEnds,x=p.connectNulls,v=p.step;c=c||this.points;for(g=c.length;g--;)e=c[g],e.isNull||l||x||c[g+1]&&!c[g+1].isNull||a.push({plotX:e.plotX,plotY:e.plotY,doCurve:!1}),u={polarPlotY:e.polarPlotY, | ||
rectPlotX:e.rectPlotX,yBottom:e.yBottom,plotX:r(e.plotHighX,e.plotX),plotY:e.plotHigh,isNull:e.isNull},a.push(u),b.push(u),e.isNull||l||x||c[g-1]&&!c[g-1].isNull||a.push({plotX:e.plotX,plotY:e.plotY,doCurve:!1});c=d.call(this,c);v&&(!0===v&&(v="left"),p.step={left:"right",center:"center",right:"left"}[v]);b=d.call(this,b);a=d.call(this,a);p.step=v;p=[].concat(c,b);this.chart.polar||"M"!==a[0]||(a[0]="L");this.graphPath=p;this.areaPath=c.concat(a);p.isArea=!0;p.xMap=c.xMap;this.areaPath.xMap=c.xMap; | ||
return p},drawDataLabels:function(){var c=this.data,b=c.length,a,g=[],d=this.options.dataLabels,e=d.align,u=d.verticalAlign,p=d.inside,l,f,v=this.chart.inverted;if(d.enabled||this._hasPointLabels){for(a=b;a--;)if(l=c[a])f=p?l.plotHigh<l.plotLow:l.plotHigh>l.plotLow,l.y=l.high,l._plotY=l.plotY,l.plotY=l.plotHigh,g[a]=l.dataLabel,l.dataLabel=l.dataLabelUpper,l.below=f,v?e||(d.align=f?"right":"left"):u||(d.verticalAlign=f?"top":"bottom"),d.x=d.xHigh,d.y=d.yHigh;h.drawDataLabels&&h.drawDataLabels.apply(this, | ||
arguments);for(a=b;a--;)if(l=c[a])f=p?l.plotHigh<l.plotLow:l.plotHigh>l.plotLow,l.dataLabelUpper=l.dataLabel,l.dataLabel=g[a],l.y=l.low,l.plotY=l._plotY,l.below=!f,v?e||(d.align=f?"left":"right"):u||(d.verticalAlign=f?"bottom":"top"),d.x=d.xLow,d.y=d.yLow;h.drawDataLabels&&h.drawDataLabels.apply(this,arguments)}d.align=e;d.verticalAlign=u},alignDataLabel:function(){f.column.prototype.alignDataLabel.apply(this,arguments)},drawPoints:function(){var c=this.points.length,b,a;h.drawPoints.apply(this,arguments); | ||
for(a=0;a<c;)b=this.points[a],b.lowerGraphic=b.graphic,b.graphic=b.upperGraphic,b._plotY=b.plotY,b._plotX=b.plotX,b.plotY=b.plotHigh,t(b.plotHighX)&&(b.plotX=b.plotHighX),b._isInside=b.isInside,this.chart.polar||(b.isInside=b.isTopInside=void 0!==b.plotY&&0<=b.plotY&&b.plotY<=this.yAxis.len&&0<=b.plotX&&b.plotX<=this.xAxis.len),a++;h.drawPoints.apply(this,arguments);for(a=0;a<c;)b=this.points[a],b.upperGraphic=b.graphic,b.graphic=b.lowerGraphic,b.isInside=b._isInside,b.plotY=b._plotY,b.plotX=b._plotX, | ||
a++},setStackedPoints:a.noop},{setState:function(){var c=this.state,b=this.series,a=b.chart.polar;t(this.plotHigh)||(this.plotHigh=b.yAxis.toPixels(this.high,!0));t(this.plotLow)||(this.plotLow=this.plotY=b.yAxis.toPixels(this.low,!0));b.stateMarkerGraphic&&(b.lowerStateMarkerGraphic=b.stateMarkerGraphic,b.stateMarkerGraphic=b.upperStateMarkerGraphic);this.graphic=this.upperGraphic;this.plotY=this.plotHigh;a&&(this.plotX=this.plotHighX);q.setState.apply(this,arguments);this.state=c;this.plotY=this.plotLow; | ||
this.graphic=this.lowerGraphic;a&&(this.plotX=this.plotLowX);b.stateMarkerGraphic&&(b.upperStateMarkerGraphic=b.stateMarkerGraphic,b.stateMarkerGraphic=b.lowerStateMarkerGraphic,b.lowerStateMarkerGraphic=void 0);q.setState.apply(this,arguments)},haloPath:function(){var c=this.series.chart.polar,b=[];this.plotY=this.plotLow;c&&(this.plotX=this.plotLowX);this.isInside&&(b=q.haloPath.apply(this,arguments));this.plotY=this.plotHigh;c&&(this.plotX=this.plotHighX);this.isTopInside&&(b=b.concat(q.haloPath.apply(this, | ||
arguments)));return b},destroyElements:function(){m(["lowerGraphic","upperGraphic"],function(c){this[c]&&(this[c]=this[c].destroy())},this);this.graphic=null;return q.destroyElements.apply(this,arguments)}})})(w);(function(a){var m=a.seriesType;m("areasplinerange","arearange",null,{getPointSpline:a.seriesTypes.spline.prototype.getPointSpline})})(w);(function(a){var m=a.defaultPlotOptions,r=a.each,t=a.merge,k=a.noop,f=a.pick,h=a.seriesType,q=a.seriesTypes.column.prototype;h("columnrange","arearange", | ||
t(m.column,m.arearange,{pointRange:null,marker:null,states:{hover:{halo:!1}}}),{translate:function(){var c=this,b=c.yAxis,a=c.xAxis,g=a.startAngleRad,d,e=c.chart,u=c.xAxis.isRadial,p=Math.max(e.chartWidth,e.chartHeight)+999,l;q.translate.apply(c);r(c.points,function(n){var v=n.shapeArgs,h=c.options.minPointLength,k,x;n.plotHigh=l=Math.min(Math.max(-p,b.translate(n.high,0,1,0,1)),p);n.plotLow=Math.min(Math.max(-p,n.plotY),p);x=l;k=f(n.rectPlotY,n.plotY)-l;Math.abs(k)<h?(h-=k,k+=h,x-=h/2):0>k&&(k*= | ||
-1,x-=k);u?(d=n.barX+g,n.shapeType="path",n.shapeArgs={d:c.polarArc(x+k,x,d,d+n.pointWidth)}):(v.height=k,v.y=x,n.tooltipPos=e.inverted?[b.len+b.pos-e.plotLeft-x-k/2,a.len+a.pos-e.plotTop-v.x-v.width/2,k]:[a.left-e.plotLeft+v.x+v.width/2,b.pos-e.plotTop+x+k/2,k])})},directTouch:!0,trackerGroups:["group","dataLabelsGroup"],drawGraph:k,getSymbol:k,crispCol:q.crispCol,drawPoints:q.drawPoints,drawTracker:q.drawTracker,getColumnMetrics:q.getColumnMetrics,pointAttribs:q.pointAttribs,animate:function(){return q.animate.apply(this, | ||
arguments)},polarArc:function(){return q.polarArc.apply(this,arguments)},translate3dPoints:function(){return q.translate3dPoints.apply(this,arguments)},translate3dShapes:function(){return q.translate3dShapes.apply(this,arguments)}},{setState:q.pointClass.prototype.setState})})(w);(function(a){var m=a.each,r=a.isNumber,t=a.merge,k=a.pick,f=a.pInt,h=a.Series,q=a.seriesType,c=a.TrackerMixin;q("gauge","line",{dataLabels:{enabled:!0,defer:!1,y:15,borderRadius:3,crop:!1,verticalAlign:"top",zIndex:2},dial:{}, | ||
pivot:{},tooltip:{headerFormat:""},showInLegend:!1},{angular:!0,directTouch:!0,drawGraph:a.noop,fixedBox:!0,forceDL:!0,noSharedTooltip:!0,trackerGroups:["group","dataLabelsGroup"],translate:function(){var b=this.yAxis,c=this.options,a=b.center;this.generatePoints();m(this.points,function(d){var e=t(c.dial,d.dial),g=f(k(e.radius,80))*a[2]/200,n=f(k(e.baseLength,70))*g/100,l=f(k(e.rearLength,10))*g/100,h=e.baseWidth||3,v=e.topWidth||1,m=c.overshoot,q=b.startAngleRad+b.translate(d.y,null,null,null,!0); | ||
r(m)?(m=m/180*Math.PI,q=Math.max(b.startAngleRad-m,Math.min(b.endAngleRad+m,q))):!1===c.wrap&&(q=Math.max(b.startAngleRad,Math.min(b.endAngleRad,q)));q=180*q/Math.PI;d.shapeType="path";d.shapeArgs={d:e.path||["M",-l,-h/2,"L",n,-h/2,g,-v/2,g,v/2,n,h/2,-l,h/2,"z"],translateX:a[0],translateY:a[1],rotation:q};d.plotX=a[0];d.plotY=a[1]})},drawPoints:function(){var b=this,c=b.yAxis.center,a=b.pivot,d=b.options,e=d.pivot,u=b.chart.renderer;m(b.points,function(c){var a=c.graphic,e=c.shapeArgs,g=e.d;t(d.dial, | ||
c.dial);a?(a.animate(e),e.d=g):c.graphic=u[c.shapeType](e).attr({rotation:e.rotation,zIndex:1}).addClass("highcharts-dial").add(b.group)});a?a.animate({translateX:c[0],translateY:c[1]}):b.pivot=u.circle(0,0,k(e.radius,5)).attr({zIndex:2}).addClass("highcharts-pivot").translate(c[0],c[1]).add(b.group)},animate:function(b){var c=this;b||(m(c.points,function(b){var d=b.graphic;d&&(d.attr({rotation:180*c.yAxis.startAngleRad/Math.PI}),d.animate({rotation:b.shapeArgs.rotation},c.options.animation))}),c.animate= | ||
null)},render:function(){this.group=this.plotGroup("group","series",this.visible?"visible":"hidden",this.options.zIndex,this.chart.seriesGroup);h.prototype.render.call(this);this.group.clip(this.chart.clipRect)},setData:function(b,c){h.prototype.setData.call(this,b,!1);this.processData();this.generatePoints();k(c,!0)&&this.chart.redraw()},drawTracker:c&&c.drawTrackerPoint},{setState:function(b){this.state=b}})})(w);(function(a){var m=a.each,r=a.noop,t=a.seriesType,k=a.seriesTypes;t("boxplot","column", | ||
{threshold:null,tooltip:{pointFormat:'\x3cspan class\x3d"highcharts-color-{point.colorIndex}"\x3e\u25cf\x3c/span\x3e \x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eMaximum: {point.high}\x3cbr/\x3eUpper quartile: {point.q3}\x3cbr/\x3eMedian: {point.median}\x3cbr/\x3eLower quartile: {point.q1}\x3cbr/\x3eMinimum: {point.low}\x3cbr/\x3e'},whiskerLength:"50%"},{pointArrayMap:["low","q1","median","q3","high"],toYData:function(a){return[a.low,a.q1,a.median,a.q3,a.high]},pointValKey:"high",drawDataLabels:r, | ||
translate:function(){var a=this.yAxis,h=this.pointArrayMap;k.column.prototype.translate.apply(this);m(this.points,function(f){m(h,function(c){null!==f[c]&&(f[c+"Plot"]=a.translate(f[c],0,1,0,1))})})},drawPoints:function(){var a=this,h=a.chart.renderer,k,c,b,n,g,d,e=0,u,p,l,x,v=!1!==a.doQuartiles,r,t=a.options.whiskerLength;m(a.points,function(f){var m=f.graphic,q=m?"animate":"attr",y=f.shapeArgs;void 0!==f.plotY&&(u=y.width,p=Math.floor(y.x),l=p+u,x=Math.round(u/2),k=Math.floor(v?f.q1Plot:f.lowPlot), | ||
c=Math.floor(v?f.q3Plot:f.lowPlot),b=Math.floor(f.highPlot),n=Math.floor(f.lowPlot),m||(f.graphic=m=h.g("point").add(a.group),f.stem=h.path().addClass("highcharts-boxplot-stem").add(m),t&&(f.whiskers=h.path().addClass("highcharts-boxplot-whisker").add(m)),v&&(f.box=h.path(void 0).addClass("highcharts-boxplot-box").add(m)),f.medianShape=h.path(void 0).addClass("highcharts-boxplot-median").add(m)),d=f.stem.strokeWidth()%2/2,e=p+x+d,f.stem[q]({d:["M",e,c,"L",e,b,"M",e,k,"L",e,n]}),v&&(d=f.box.strokeWidth()% | ||
2/2,k=Math.floor(k)+d,c=Math.floor(c)+d,p+=d,l+=d,f.box[q]({d:["M",p,c,"L",p,k,"L",l,k,"L",l,c,"L",p,c,"z"]})),t&&(d=f.whiskers.strokeWidth()%2/2,b+=d,n+=d,r=/%$/.test(t)?x*parseFloat(t)/100:t/2,f.whiskers[q]({d:["M",e-r,b,"L",e+r,b,"M",e-r,n,"L",e+r,n]})),g=Math.round(f.medianPlot),d=f.medianShape.strokeWidth()%2/2,g+=d,f.medianShape[q]({d:["M",p,g,"L",l,g]}))})},setStackedPoints:r})})(w);(function(a){var m=a.each,r=a.noop,t=a.seriesType,k=a.seriesTypes;t("errorbar","boxplot",{grouping:!1,linkedTo:":previous", | ||
tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e {series.name}: \x3cb\x3e{point.low}\x3c/b\x3e - \x3cb\x3e{point.high}\x3c/b\x3e\x3cbr/\x3e'},whiskerWidth:null},{type:"errorbar",pointArrayMap:["low","high"],toYData:function(a){return[a.low,a.high]},pointValKey:"high",doQuartiles:!1,drawDataLabels:k.arearange?function(){var a=this.pointValKey;k.arearange.prototype.drawDataLabels.call(this);m(this.data,function(f){f.y=f[a]})}:r,getColumnMetrics:function(){return this.linkedParent&& | ||
this.linkedParent.columnMetrics||k.column.prototype.getColumnMetrics.call(this)}})})(w);(function(a){var m=a.correctFloat,r=a.isNumber,t=a.pick,k=a.Point,f=a.Series,h=a.seriesType,q=a.seriesTypes;h("waterfall","column",{dataLabels:{inside:!0}},{pointValKey:"y",translate:function(){var c=this.options,b=this.yAxis,a,g,d,e,f,p,l,k,v,h,r=t(c.minPointLength,5),y=r/2,w=c.threshold,A=c.stacking,z;q.column.prototype.translate.apply(this);k=v=w;g=this.points;a=0;for(c=g.length;a<c;a++)d=g[a],l=this.processedYData[a], | ||
e=d.shapeArgs,f=A&&b.stacks[(this.negStacks&&l<w?"-":"")+this.stackKey],z=this.getStackIndicator(z,d.x,this.index),h=t(f&&f[d.x].points[z.key],[0,l]),d.isSum?d.y=m(l):d.isIntermediateSum&&(d.y=m(l-v)),p=Math.max(k,k+d.y)+h[0],e.y=b.translate(p,0,1,0,1),d.isSum?(e.y=b.translate(h[1],0,1,0,1),e.height=Math.min(b.translate(h[0],0,1,0,1),b.len)-e.y):d.isIntermediateSum?(e.y=b.translate(h[1],0,1,0,1),e.height=Math.min(b.translate(v,0,1,0,1),b.len)-e.y,v=h[1]):(e.height=0<l?b.translate(k,0,1,0,1)-e.y:b.translate(k, | ||
0,1,0,1)-b.translate(k-l,0,1,0,1),k+=f&&f[d.x]?f[d.x].total:l),0>e.height&&(e.y+=e.height,e.height*=-1),d.plotY=e.y=Math.round(e.y)-this.borderWidth%2/2,e.height=Math.max(Math.round(e.height),.001),d.yBottom=e.y+e.height,e.height<=r&&!d.isNull?(e.height=r,e.y-=y,d.plotY=e.y,d.minPointLengthOffset=0>d.y?-y:y):d.minPointLengthOffset=0,e=d.plotY+(d.negative?e.height:0),this.chart.inverted?d.tooltipPos[0]=b.len-e:d.tooltipPos[1]=e},processData:function(c){var b=this.yData,a=this.options.data,g,d=b.length, | ||
e,u,p,l,k,h;u=e=p=l=this.options.threshold||0;for(h=0;h<d;h++)k=b[h],g=a&&a[h]?a[h]:{},"sum"===k||g.isSum?b[h]=m(u):"intermediateSum"===k||g.isIntermediateSum?b[h]=m(e):(u+=k,e+=k),p=Math.min(u,p),l=Math.max(u,l);f.prototype.processData.call(this,c);this.options.stacking||(this.dataMin=p,this.dataMax=l)},toYData:function(c){return c.isSum?0===c.x?null:"sum":c.isIntermediateSum?0===c.x?null:"intermediateSum":c.y},getGraphPath:function(){return["M",0,0]},getCrispPath:function(){var c=this.data,b=c.length, | ||
a=this.graph.strokeWidth()+this.borderWidth,a=Math.round(a)%2/2,g=this.xAxis.reversed,d=this.yAxis.reversed,e=[],f,p,l;for(l=1;l<b;l++){p=c[l].shapeArgs;f=c[l-1].shapeArgs;p=["M",f.x+(g?0:f.width),f.y+c[l-1].minPointLengthOffset+a,"L",p.x+(g?f.width:0),f.y+c[l-1].minPointLengthOffset+a];if(0>c[l-1].y&&!d||0<c[l-1].y&&d)p[2]+=f.height,p[5]+=f.height;e=e.concat(p)}return e},drawGraph:function(){f.prototype.drawGraph.call(this);this.graph.attr({d:this.getCrispPath()})},setStackedPoints:function(){var c= | ||
this.options,b,a;f.prototype.setStackedPoints.apply(this,arguments);b=this.stackedYData?this.stackedYData.length:0;for(a=1;a<b;a++)c.data[a].isSum||c.data[a].isIntermediateSum||(this.stackedYData[a]+=this.stackedYData[a-1])},getExtremes:function(){if(this.options.stacking)return f.prototype.getExtremes.apply(this,arguments)}},{getClassName:function(){var c=k.prototype.getClassName.call(this);this.isSum?c+=" highcharts-sum":this.isIntermediateSum&&(c+=" highcharts-intermediate-sum");return c},isValid:function(){return r(this.y, | ||
!0)||this.isSum||this.isIntermediateSum}})})(w);(function(a){var m=a.Series,r=a.seriesType,t=a.seriesTypes;r("polygon","scatter",{marker:{enabled:!1,states:{hover:{enabled:!1}}},stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:""},trackByArea:!0},{type:"polygon",getGraphPath:function(){for(var a=m.prototype.getGraphPath.call(this),f=a.length+1;f--;)(f===a.length||"M"===a[f])&&0<f&&a.splice(f,0,"z");return this.areaPath=a},drawGraph:function(){t.area.prototype.drawGraph.call(this)},drawLegendSymbol:a.LegendSymbolMixin.drawRectangle, | ||
drawTracker:m.prototype.drawTracker,setStackedPoints:a.noop})})(w);(function(a){var m=a.arrayMax,r=a.arrayMin,t=a.Axis,k=a.each,f=a.isNumber,h=a.noop,q=a.pick,c=a.pInt,b=a.Point,n=a.seriesType,g=a.seriesTypes;n("bubble","scatter",{dataLabels:{formatter:function(){return this.point.z},inside:!0,verticalAlign:"middle"},marker:{radius:null,states:{hover:{radiusPlus:0}},symbol:"circle"},minSize:8,maxSize:"20%",softThreshold:!1,states:{hover:{halo:{size:5}}},tooltip:{pointFormat:"({point.x}, {point.y}), Size: {point.z}"}, | ||
turboThreshold:0,zThreshold:0,zoneAxis:"z"},{pointArrayMap:["y","z"],parallelArrays:["x","y","z"],trackerGroups:["group","dataLabelsGroup"],specialGroup:"group",bubblePadding:!0,zoneAxis:"z",directTouch:!0,getRadii:function(b,c,a,g){var d,e,f,p=this.zData,h=[],k=this.options,n="width"!==k.sizeBy,u=k.zThreshold,m=c-b;e=0;for(d=p.length;e<d;e++)f=p[e],k.sizeByAbsoluteValue&&null!==f&&(f=Math.abs(f-u),c=Math.max(c-u,Math.abs(b-u)),b=0),null===f?f=null:f<b?f=a/2-1:(f=0<m?(f-b)/m:.5,n&&0<=f&&(f=Math.sqrt(f)), | ||
f=Math.ceil(a+f*(g-a))/2),h.push(f);this.radii=h},animate:function(b){var c=this.options.animation;b||(k(this.points,function(b){var a=b.graphic,d;a&&a.width&&(d={x:a.x,y:a.y,width:a.width,height:a.height},a.attr({x:b.plotX,y:b.plotY,width:1,height:1}),a.animate(d,c))}),this.animate=null)},translate:function(){var b,c=this.data,h,k,l=this.radii;g.scatter.prototype.translate.call(this);for(b=c.length;b--;)h=c[b],k=l?l[b]:0,f(k)&&k>=this.minPxSize/2?(h.marker=a.extend(h.marker,{radius:k,width:2*k,height:2* | ||
k}),h.dlBox={x:h.plotX-k,y:h.plotY-k,width:2*k,height:2*k}):h.shapeArgs=h.plotY=h.dlBox=void 0},alignDataLabel:g.column.prototype.alignDataLabel,buildKDTree:h,applyZones:h},{haloPath:function(c){return b.prototype.haloPath.call(this,0===c?0:(this.marker?this.marker.radius||0:0)+c)},ttBelow:!1});t.prototype.beforePadding=function(){var b=this,a=this.len,g=this.chart,h=0,l=a,n=this.isXAxis,v=n?"xData":"yData",t=this.min,w={},y=Math.min(g.plotWidth,g.plotHeight),C=Number.MAX_VALUE,A=-Number.MAX_VALUE, | ||
z=this.max-t,B=a/z,D=[];k(this.series,function(a){var d=a.options;!a.bubblePadding||!a.visible&&g.options.chart.ignoreHiddenSeries||(b.allowZoomOutside=!0,D.push(a),n&&(k(["minSize","maxSize"],function(b){var a=d[b],e=/%$/.test(a),a=c(a);w[b]=e?y*a/100:a}),a.minPxSize=w.minSize,a.maxPxSize=Math.max(w.maxSize,w.minSize),a=a.zData,a.length&&(C=q(d.zMin,Math.min(C,Math.max(r(a),!1===d.displayNegative?d.zThreshold:-Number.MAX_VALUE))),A=q(d.zMax,Math.max(A,m(a))))))});k(D,function(a){var c=a[v],d=c.length, | ||
e;n&&a.getRadii(C,A,a.minPxSize,a.maxPxSize);if(0<z)for(;d--;)f(c[d])&&b.dataMin<=c[d]&&c[d]<=b.dataMax&&(e=a.radii[d],h=Math.min((c[d]-t)*B-e,h),l=Math.max((c[d]-t)*B+e,l))});D.length&&0<z&&!this.isLog&&(l-=a,B*=(a+h-l)/a,k([["min","userMin",h],["max","userMax",l]],function(a){void 0===q(b.options[a[0]],b[a[1]])&&(b[a[0]]+=a[2]/B)}))}})(w);(function(a){function m(a,b){var c=this.chart,g=this.options.animation,d=this.group,e=this.markerGroup,f=this.xAxis.center,h=c.plotLeft,k=c.plotTop;c.polar?c.renderer.isSVG&& | ||
(!0===g&&(g={}),b?(a={translateX:f[0]+h,translateY:f[1]+k,scaleX:.001,scaleY:.001},d.attr(a),e&&e.attr(a)):(a={translateX:h,translateY:k,scaleX:1,scaleY:1},d.animate(a,g),e&&e.animate(a,g),this.animate=null)):a.call(this,b)}var r=a.each,t=a.pick,k=a.seriesTypes,f=a.wrap,h=a.Series.prototype,q=a.Pointer.prototype;h.searchPointByAngle=function(a){var b=this.chart,c=this.xAxis.pane.center;return this.searchKDTree({clientX:180+-180/Math.PI*Math.atan2(a.chartX-c[0]-b.plotLeft,a.chartY-c[1]-b.plotTop)})}; | ||
h.getConnectors=function(a,b,f,g){var c,e,h,k,l,n,m,q;e=g?1:0;c=0<=b&&b<=a.length-1?b:0>b?a.length-1+b:0;b=0>c-1?a.length-(1+e):c-1;e=c+1>a.length-1?e:c+1;h=a[b];e=a[e];k=h.plotX;h=h.plotY;l=e.plotX;n=e.plotY;e=a[c].plotX;c=a[c].plotY;k=(1.5*e+k)/2.5;h=(1.5*c+h)/2.5;l=(1.5*e+l)/2.5;m=(1.5*c+n)/2.5;n=Math.sqrt(Math.pow(k-e,2)+Math.pow(h-c,2));q=Math.sqrt(Math.pow(l-e,2)+Math.pow(m-c,2));k=Math.atan2(h-c,k-e);m=Math.PI/2+(k+Math.atan2(m-c,l-e))/2;Math.abs(k-m)>Math.PI/2&&(m-=Math.PI);k=e+Math.cos(m)* | ||
n;h=c+Math.sin(m)*n;l=e+Math.cos(Math.PI+m)*q;m=c+Math.sin(Math.PI+m)*q;e={rightContX:l,rightContY:m,leftContX:k,leftContY:h,plotX:e,plotY:c};f&&(e.prevPointCont=this.getConnectors(a,b,!1,g));return e};f(h,"buildKDTree",function(a){this.chart.polar&&(this.kdByAngle?this.searchPoint=this.searchPointByAngle:this.options.findNearestPointBy="xy");a.apply(this)});h.toXY=function(a){var b,c=this.chart,g=a.plotX;b=a.plotY;a.rectPlotX=g;a.rectPlotY=b;b=this.xAxis.postTranslate(a.plotX,this.yAxis.len-b);a.plotX= | ||
a.polarPlotX=b.x-c.plotLeft;a.plotY=a.polarPlotY=b.y-c.plotTop;this.kdByAngle?(c=(g/Math.PI*180+this.xAxis.pane.options.startAngle)%360,0>c&&(c+=360),a.clientX=c):a.clientX=a.plotX};k.spline&&(f(k.spline.prototype,"getPointSpline",function(a,b,f,g){this.chart.polar?g?(a=this.getConnectors(b,g,!0,this.connectEnds),a=["C",a.prevPointCont.rightContX,a.prevPointCont.rightContY,a.leftContX,a.leftContY,a.plotX,a.plotY]):a=["M",f.plotX,f.plotY]:a=a.call(this,b,f,g);return a}),k.areasplinerange&&(k.areasplinerange.prototype.getPointSpline= | ||
k.spline.prototype.getPointSpline));f(h,"translate",function(a){var b=this.chart;a.call(this);if(b.polar&&(this.kdByAngle=b.tooltip&&b.tooltip.shared,!this.preventPostTranslate))for(a=this.points,b=a.length;b--;)this.toXY(a[b])});f(h,"getGraphPath",function(a,b){var c=this,g,d,e;if(this.chart.polar){b=b||this.points;for(g=0;g<b.length;g++)if(!b[g].isNull){d=g;break}!1!==this.options.connectEnds&&void 0!==d&&(this.connectEnds=!0,b.splice(b.length,0,b[d]),e=!0);r(b,function(a){void 0===a.polarPlotY&& | ||
c.toXY(a)})}g=a.apply(this,[].slice.call(arguments,1));e&&b.pop();return g});f(h,"animate",m);k.column&&(k=k.column.prototype,k.polarArc=function(a,b,f,g){var c=this.xAxis.center,e=this.yAxis.len;return this.chart.renderer.symbols.arc(c[0],c[1],e-b,null,{start:f,end:g,innerR:e-t(a,e)})},f(k,"animate",m),f(k,"translate",function(a){var b=this.xAxis,c=b.startAngleRad,f,d,e;this.preventPostTranslate=!0;a.call(this);if(b.isRadial)for(f=this.points,e=f.length;e--;)d=f[e],a=d.barX+c,d.shapeType="path", | ||
d.shapeArgs={d:this.polarArc(d.yBottom,d.plotY,a,a+d.pointWidth)},this.toXY(d),d.tooltipPos=[d.plotX,d.plotY],d.ttBelow=d.plotY>b.center[1]}),f(k,"alignDataLabel",function(a,b,f,g,d,e){this.chart.polar?(a=b.rectPlotX/Math.PI*180,null===g.align&&(g.align=20<a&&160>a?"left":200<a&&340>a?"right":"center"),null===g.verticalAlign&&(g.verticalAlign=45>a||315<a?"bottom":135<a&&225>a?"top":"middle"),h.alignDataLabel.call(this,b,f,g,d,e)):a.call(this,b,f,g,d,e)}));f(q,"getCoordinates",function(a,b){var c= | ||
this.chart,f={xAxis:[],yAxis:[]};c.polar?r(c.axes,function(a){var d=a.isXAxis,g=a.center,h=b.chartX-g[0]-c.plotLeft,g=b.chartY-g[1]-c.plotTop;f[d?"xAxis":"yAxis"].push({axis:a,value:a.translate(d?Math.PI-Math.atan2(h,g):Math.sqrt(Math.pow(h,2)+Math.pow(g,2)),!0)})}):f=a.call(this,b);return f});f(a.Chart.prototype,"getAxes",function(c){this.pane||(this.pane=[]);r(a.splat(this.options.pane),function(b){new a.Pane(b,this)},this);c.call(this)});f(a.Chart.prototype,"drawChartBox",function(a){a.call(this); | ||
r(this.pane,function(a){a.render()})});f(a.Chart.prototype,"get",function(c,b){return a.find(this.pane,function(a){return a.options.id===b})||c.call(this,b)})})(w)}); | ||
(function(w){"object"===typeof module&&module.exports?module.exports=w:w(Highcharts)})(function(w){(function(b){var q=b.deg2rad,v=b.isNumber,r=b.pick,k=b.relativeLength;b.CenteredSeriesMixin={getCenter:function(){var b=this.options,m=this.chart,n=2*(b.slicedOffset||0),a=m.plotWidth-2*n,m=m.plotHeight-2*n,c=b.center,c=[r(c[0],"50%"),r(c[1],"50%"),b.size||"100%",b.innerSize||0],l=Math.min(a,m),g,d;for(g=0;4>g;++g)d=c[g],b=2>g||2===g&&/%$/.test(d),c[g]=k(d,[a,m,l,c[2]][g])+(b?n:0);c[3]>c[2]&&(c[3]=c[2]); | ||
return c},getStartAndEndRadians:function(b,m){b=v(b)?b:0;m=v(m)&&m>b&&360>m-b?m:b+360;return{start:q*(b+-90),end:q*(m+-90)}}}})(w);(function(b){function q(b,a){this.init(b,a)}var v=b.CenteredSeriesMixin,r=b.each,k=b.extend,f=b.merge,m=b.splat;k(q.prototype,{coll:"pane",init:function(b,a){this.chart=a;this.background=[];a.pane.push(this);this.setOptions(b)},setOptions:function(b){this.options=f(this.defaultOptions,this.chart.angular?{background:{}}:void 0,b)},render:function(){var b=this.options,a= | ||
this.options.background,c=this.chart.renderer;this.group||(this.group=c.g("pane-group").attr({zIndex:b.zIndex||0}).add());this.updateCenter();if(a)for(a=m(a),b=Math.max(a.length,this.background.length||0),c=0;c<b;c++)a[c]&&this.axis?this.renderBackground(f(this.defaultBackgroundOptions,a[c]),c):this.background[c]&&(this.background[c]=this.background[c].destroy(),this.background.splice(c,1))},renderBackground:function(b,a){var c="animate";this.background[a]||(this.background[a]=this.chart.renderer.path().add(this.group), | ||
c="attr");this.background[a][c]({d:this.axis.getPlotBandPath(b.from,b.to,b)}).attr({"class":"highcharts-pane "+(b.className||"")})},defaultOptions:{center:["50%","50%"],size:"85%",startAngle:0},defaultBackgroundOptions:{shape:"circle",from:-Number.MAX_VALUE,innerRadius:0,to:Number.MAX_VALUE,outerRadius:"105%"},updateCenter:function(b){this.center=(b||this.axis||{}).center=v.getCenter.call(this)},update:function(b,a){f(!0,this.options,b);this.setOptions(this.options);this.render();r(this.chart.axes, | ||
function(c){c.pane===this&&(c.pane=null,c.update({},a))},this)}});b.Pane=q})(w);(function(b){var q=b.each,v=b.extend,r=b.map,k=b.merge,f=b.noop,m=b.pick,n=b.pInt,a=b.wrap,c,l,g=b.Axis.prototype,d=b.Tick.prototype;b.radialAxisExtended||(b.radialAxisExtended=!0,c={getOffset:f,redraw:function(){this.isDirty=!1},render:function(){this.isDirty=!1},setScale:f,setCategories:f,setTitle:f},l={defaultRadialGaugeOptions:{labels:{align:"center",x:0,y:null},minorGridLineWidth:0,minorTickInterval:"auto",minorTickLength:10, | ||
minorTickPosition:"inside",minorTickWidth:1,tickLength:10,tickPosition:"inside",tickWidth:2,title:{rotation:0},zIndex:2},defaultRadialXOptions:{gridLineWidth:1,labels:{align:null,distance:15,x:0,y:null,style:{textOverflow:"none"}},maxPadding:0,minPadding:0,showLastLabel:!1,tickLength:0},defaultRadialYOptions:{gridLineInterpolation:"circle",labels:{align:"right",x:-3,y:-2},showLastLabel:!1,title:{x:4,text:null,rotation:90}},setOptions:function(a){a=this.options=k(this.defaultOptions,this.defaultRadialOptions, | ||
a);a.plotBands||(a.plotBands=[])},getOffset:function(){g.getOffset.call(this);this.chart.axisOffset[this.side]=0},getLinePath:function(a,c){a=this.center;var e=this.chart,d=m(c,a[2]/2-this.offset);this.isCircular||void 0!==c?(c=this.chart.renderer.symbols.arc(this.left+a[0],this.top+a[1],d,d,{start:this.startAngleRad,end:this.endAngleRad,open:!0,innerR:0}),c.xBounds=[this.left+a[0]],c.yBounds=[this.top+a[1]-d]):(c=this.postTranslate(this.angleRad,d),c=["M",a[0]+e.plotLeft,a[1]+e.plotTop,"L",c.x,c.y]); | ||
return c},setAxisTranslation:function(){g.setAxisTranslation.call(this);this.center&&(this.transA=this.isCircular?(this.endAngleRad-this.startAngleRad)/(this.max-this.min||1):this.center[2]/2/(this.max-this.min||1),this.minPixelPadding=this.isXAxis?this.transA*this.minPointOffset:0)},beforeSetTickPositions:function(){if(this.autoConnect=this.isCircular&&void 0===m(this.userMax,this.options.max)&&this.endAngleRad-this.startAngleRad===2*Math.PI)this.max+=this.categories&&1||this.pointRange||this.closestPointRange|| | ||
0},setAxisSize:function(){g.setAxisSize.call(this);this.isRadial&&(this.pane.updateCenter(this),this.isCircular&&(this.sector=this.endAngleRad-this.startAngleRad),this.len=this.width=this.height=this.center[2]*m(this.sector,1)/2)},getPosition:function(a,c){return this.postTranslate(this.isCircular?this.translate(a):this.angleRad,m(this.isCircular?c:this.translate(a),this.center[2]/2)-this.offset)},postTranslate:function(a,c){var e=this.chart,d=this.center;a=this.startAngleRad+a;return{x:e.plotLeft+ | ||
d[0]+Math.cos(a)*c,y:e.plotTop+d[1]+Math.sin(a)*c}},getPlotBandPath:function(a,c,d){var e=this.center,b=this.startAngleRad,l=e[2]/2,g=[m(d.outerRadius,"100%"),d.innerRadius,m(d.thickness,10)],p=Math.min(this.offset,0),u=/%$/,f,k=this.isCircular;"polygon"===this.options.gridLineInterpolation?e=this.getPlotLinePath(a).concat(this.getPlotLinePath(c,!0)):(a=Math.max(a,this.min),c=Math.min(c,this.max),k||(g[0]=this.translate(a),g[1]=this.translate(c)),g=r(g,function(a){u.test(a)&&(a=n(a,10)*l/100);return a}), | ||
"circle"!==d.shape&&k?(a=b+this.translate(a),c=b+this.translate(c)):(a=-Math.PI/2,c=1.5*Math.PI,f=!0),g[0]-=p,g[2]-=p,e=this.chart.renderer.symbols.arc(this.left+e[0],this.top+e[1],g[0],g[0],{start:Math.min(a,c),end:Math.max(a,c),innerR:m(g[1],g[0]-g[2]),open:f}));return e},getPlotLinePath:function(a,c){var e=this,d=e.center,b=e.chart,l=e.getPosition(a),g,u,f;e.isCircular?f=["M",d[0]+b.plotLeft,d[1]+b.plotTop,"L",l.x,l.y]:"circle"===e.options.gridLineInterpolation?(a=e.translate(a))&&(f=e.getLinePath(0, | ||
a)):(q(b.xAxis,function(a){a.pane===e.pane&&(g=a)}),f=[],a=e.translate(a),d=g.tickPositions,g.autoConnect&&(d=d.concat([d[0]])),c&&(d=[].concat(d).reverse()),q(d,function(c,e){u=g.getPosition(c,a);f.push(e?"L":"M",u.x,u.y)}));return f},getTitlePosition:function(){var a=this.center,c=this.chart,d=this.options.title;return{x:c.plotLeft+a[0]+(d.x||0),y:c.plotTop+a[1]-{high:.5,middle:.25,low:0}[d.align]*a[2]+(d.y||0)}}},a(g,"init",function(a,d,b){var e=d.angular,g=d.polar,p=b.isX,u=e&&p,f,C=d.options, | ||
n=b.pane||0,q=this.pane=d.pane&&d.pane[n],n=q&&q.options;if(e){if(v(this,u?c:l),f=!p)this.defaultRadialOptions=this.defaultRadialGaugeOptions}else g&&(v(this,l),this.defaultRadialOptions=(f=p)?this.defaultRadialXOptions:k(this.defaultYAxisOptions,this.defaultRadialYOptions));e||g?(this.isRadial=!0,d.inverted=!1,C.chart.zoomType=null):this.isRadial=!1;q&&f&&(q.axis=this);a.call(this,d,b);!u&&q&&(e||g)&&(a=this.options,this.angleRad=(a.angle||0)*Math.PI/180,this.startAngleRad=(n.startAngle-90)*Math.PI/ | ||
180,this.endAngleRad=(m(n.endAngle,n.startAngle+360)-90)*Math.PI/180,this.offset=a.offset||0,this.isCircular=f)}),a(g,"autoLabelAlign",function(a){if(!this.isRadial)return a.apply(this,[].slice.call(arguments,1))}),a(d,"getPosition",function(a,c,d,b,g){var e=this.axis;return e.getPosition?e.getPosition(d):a.call(this,c,d,b,g)}),a(d,"getLabelPosition",function(a,c,d,b,g,l,f,n,k){var e=this.axis,p=l.y,u=20,h=l.align,t=(e.translate(this.pos)+e.startAngleRad+Math.PI/2)/Math.PI*180%360;e.isRadial?(a=e.getPosition(this.pos, | ||
e.center[2]/2+m(l.distance,-25)),"auto"===l.rotation?b.attr({rotation:t}):null===p&&(p=e.chart.renderer.fontMetrics(b.styles.fontSize).b-b.getBBox().height/2),null===h&&(e.isCircular?(this.label.getBBox().width>e.len*e.tickInterval/(e.max-e.min)&&(u=0),h=t>u&&t<180-u?"left":t>180+u&&t<360-u?"right":"center"):h="center",b.attr({align:h})),a.x+=l.x,a.y+=p):a=a.call(this,c,d,b,g,l,f,n,k);return a}),a(d,"getMarkPath",function(a,c,d,b,g,l,f){var e=this.axis;e.isRadial?(a=e.getPosition(this.pos,e.center[2]/ | ||
2+b),c=["M",c,d,"L",a.x,a.y]):c=a.call(this,c,d,b,g,l,f);return c}))})(w);(function(b){var q=b.each,v=b.pick,r=b.defined,k=b.seriesType,f=b.seriesTypes,m=b.Series.prototype,n=b.Point.prototype;k("arearange","area",{threshold:null,tooltip:{pointFormat:'\x3cspan class\x3d"highcharts-color-{series.colorIndex}"\x3e\u25cf\x3c/span\x3e {series.name}: \x3cb\x3e{point.low}\x3c/b\x3e - \x3cb\x3e{point.high}\x3c/b\x3e\x3cbr/\x3e'},trackByArea:!0,dataLabels:{align:null,verticalAlign:null,xLow:0,xHigh:0,yLow:0, | ||
yHigh:0}},{pointArrayMap:["low","high"],dataLabelCollections:["dataLabel","dataLabelUpper"],toYData:function(a){return[a.low,a.high]},pointValKey:"low",deferTranslatePolar:!0,highToXY:function(a){var c=this.chart,b=this.xAxis.postTranslate(a.rectPlotX,this.yAxis.len-a.plotHigh);a.plotHighX=b.x-c.plotLeft;a.plotHigh=b.y-c.plotTop;a.plotLowX=a.plotX},translate:function(){var a=this,c=a.yAxis,b=!!a.modifyValue;f.area.prototype.translate.apply(a);q(a.points,function(g){var d=g.low,e=g.high,l=g.plotY; | ||
null===e||null===d?(g.isNull=!0,g.plotY=null):(g.plotLow=l,g.plotHigh=c.translate(b?a.modifyValue(e,g):e,0,1,0,1),b&&(g.yBottom=g.plotHigh))});this.chart.polar&&q(this.points,function(c){a.highToXY(c);c.tooltipPos=[(c.plotHighX+c.plotLowX)/2,(c.plotHigh+c.plotLow)/2]})},getGraphPath:function(a){var c=[],b=[],g,d=f.area.prototype.getGraphPath,e,u,p;p=this.options;var h=this.chart.polar&&!1!==p.connectEnds,x=p.connectNulls,t=p.step;a=a||this.points;for(g=a.length;g--;)e=a[g],e.isNull||h||x||a[g+1]&& | ||
!a[g+1].isNull||b.push({plotX:e.plotX,plotY:e.plotY,doCurve:!1}),u={polarPlotY:e.polarPlotY,rectPlotX:e.rectPlotX,yBottom:e.yBottom,plotX:v(e.plotHighX,e.plotX),plotY:e.plotHigh,isNull:e.isNull},b.push(u),c.push(u),e.isNull||h||x||a[g-1]&&!a[g-1].isNull||b.push({plotX:e.plotX,plotY:e.plotY,doCurve:!1});a=d.call(this,a);t&&(!0===t&&(t="left"),p.step={left:"right",center:"center",right:"left"}[t]);c=d.call(this,c);b=d.call(this,b);p.step=t;p=[].concat(a,c);this.chart.polar||"M"!==b[0]||(b[0]="L");this.graphPath= | ||
p;this.areaPath=a.concat(b);p.isArea=!0;p.xMap=a.xMap;this.areaPath.xMap=a.xMap;return p},drawDataLabels:function(){var a=this.data,c=a.length,b,g=[],d=this.options.dataLabels,e=d.align,u=d.verticalAlign,p=d.inside,h,f,t=this.chart.inverted;if(d.enabled||this._hasPointLabels){for(b=c;b--;)if(h=a[b])f=p?h.plotHigh<h.plotLow:h.plotHigh>h.plotLow,h.y=h.high,h._plotY=h.plotY,h.plotY=h.plotHigh,g[b]=h.dataLabel,h.dataLabel=h.dataLabelUpper,h.below=f,t?e||(d.align=f?"right":"left"):u||(d.verticalAlign= | ||
f?"top":"bottom"),d.x=d.xHigh,d.y=d.yHigh;m.drawDataLabels&&m.drawDataLabels.apply(this,arguments);for(b=c;b--;)if(h=a[b])f=p?h.plotHigh<h.plotLow:h.plotHigh>h.plotLow,h.dataLabelUpper=h.dataLabel,h.dataLabel=g[b],h.y=h.low,h.plotY=h._plotY,h.below=!f,t?e||(d.align=f?"left":"right"):u||(d.verticalAlign=f?"bottom":"top"),d.x=d.xLow,d.y=d.yLow;m.drawDataLabels&&m.drawDataLabels.apply(this,arguments)}d.align=e;d.verticalAlign=u},alignDataLabel:function(){f.column.prototype.alignDataLabel.apply(this, | ||
arguments)},drawPoints:function(){var a=this.points.length,c,b;m.drawPoints.apply(this,arguments);for(b=0;b<a;)c=this.points[b],c.lowerGraphic=c.graphic,c.graphic=c.upperGraphic,c._plotY=c.plotY,c._plotX=c.plotX,c.plotY=c.plotHigh,r(c.plotHighX)&&(c.plotX=c.plotHighX),c._isInside=c.isInside,this.chart.polar||(c.isInside=c.isTopInside=void 0!==c.plotY&&0<=c.plotY&&c.plotY<=this.yAxis.len&&0<=c.plotX&&c.plotX<=this.xAxis.len),b++;m.drawPoints.apply(this,arguments);for(b=0;b<a;)c=this.points[b],c.upperGraphic= | ||
c.graphic,c.graphic=c.lowerGraphic,c.isInside=c._isInside,c.plotY=c._plotY,c.plotX=c._plotX,b++},setStackedPoints:b.noop},{setState:function(){var a=this.state,c=this.series,b=c.chart.polar;r(this.plotHigh)||(this.plotHigh=c.yAxis.toPixels(this.high,!0));r(this.plotLow)||(this.plotLow=this.plotY=c.yAxis.toPixels(this.low,!0));c.stateMarkerGraphic&&(c.lowerStateMarkerGraphic=c.stateMarkerGraphic,c.stateMarkerGraphic=c.upperStateMarkerGraphic);this.graphic=this.upperGraphic;this.plotY=this.plotHigh; | ||
b&&(this.plotX=this.plotHighX);n.setState.apply(this,arguments);this.state=a;this.plotY=this.plotLow;this.graphic=this.lowerGraphic;b&&(this.plotX=this.plotLowX);c.stateMarkerGraphic&&(c.upperStateMarkerGraphic=c.stateMarkerGraphic,c.stateMarkerGraphic=c.lowerStateMarkerGraphic,c.lowerStateMarkerGraphic=void 0);n.setState.apply(this,arguments)},haloPath:function(){var a=this.series.chart.polar,c=[];this.plotY=this.plotLow;a&&(this.plotX=this.plotLowX);this.isInside&&(c=n.haloPath.apply(this,arguments)); | ||
this.plotY=this.plotHigh;a&&(this.plotX=this.plotHighX);this.isTopInside&&(c=c.concat(n.haloPath.apply(this,arguments)));return c},destroyElements:function(){q(["lowerGraphic","upperGraphic"],function(a){this[a]&&(this[a]=this[a].destroy())},this);this.graphic=null;return n.destroyElements.apply(this,arguments)}})})(w);(function(b){var q=b.seriesType;q("areasplinerange","arearange",null,{getPointSpline:b.seriesTypes.spline.prototype.getPointSpline})})(w);(function(b){var q=b.defaultPlotOptions,v= | ||
b.each,r=b.merge,k=b.noop,f=b.pick,m=b.seriesType,n=b.seriesTypes.column.prototype;m("columnrange","arearange",r(q.column,q.arearange,{pointRange:null,marker:null,states:{hover:{halo:!1}}}),{translate:function(){var a=this,c=a.yAxis,b=a.xAxis,g=b.startAngleRad,d,e=a.chart,u=a.xAxis.isRadial,p=Math.max(e.chartWidth,e.chartHeight)+999,h;n.translate.apply(a);v(a.points,function(l){var t=l.shapeArgs,m=a.options.minPointLength,n,k;l.plotHigh=h=Math.min(Math.max(-p,c.translate(l.high,0,1,0,1)),p);l.plotLow= | ||
Math.min(Math.max(-p,l.plotY),p);k=h;n=f(l.rectPlotY,l.plotY)-h;Math.abs(n)<m?(m-=n,n+=m,k-=m/2):0>n&&(n*=-1,k-=n);u?(d=l.barX+g,l.shapeType="path",l.shapeArgs={d:a.polarArc(k+n,k,d,d+l.pointWidth)}):(t.height=n,t.y=k,l.tooltipPos=e.inverted?[c.len+c.pos-e.plotLeft-k-n/2,b.len+b.pos-e.plotTop-t.x-t.width/2,n]:[b.left-e.plotLeft+t.x+t.width/2,c.pos-e.plotTop+k+n/2,n])})},directTouch:!0,trackerGroups:["group","dataLabelsGroup"],drawGraph:k,getSymbol:k,crispCol:n.crispCol,drawPoints:n.drawPoints,drawTracker:n.drawTracker, | ||
getColumnMetrics:n.getColumnMetrics,pointAttribs:n.pointAttribs,animate:function(){return n.animate.apply(this,arguments)},polarArc:function(){return n.polarArc.apply(this,arguments)},translate3dPoints:function(){return n.translate3dPoints.apply(this,arguments)},translate3dShapes:function(){return n.translate3dShapes.apply(this,arguments)}},{setState:n.pointClass.prototype.setState})})(w);(function(b){var q=b.each,v=b.isNumber,r=b.merge,k=b.pick,f=b.pInt,m=b.Series,n=b.seriesType,a=b.TrackerMixin; | ||
n("gauge","line",{dataLabels:{enabled:!0,defer:!1,y:15,borderRadius:3,crop:!1,verticalAlign:"top",zIndex:2},dial:{},pivot:{},tooltip:{headerFormat:""},showInLegend:!1},{angular:!0,directTouch:!0,drawGraph:b.noop,fixedBox:!0,forceDL:!0,noSharedTooltip:!0,trackerGroups:["group","dataLabelsGroup"],translate:function(){var a=this.yAxis,b=this.options,g=a.center;this.generatePoints();q(this.points,function(c){var d=r(b.dial,c.dial),l=f(k(d.radius,80))*g[2]/200,p=f(k(d.baseLength,70))*l/100,h=f(k(d.rearLength, | ||
10))*l/100,n=d.baseWidth||3,t=d.topWidth||1,m=b.overshoot,q=a.startAngleRad+a.translate(c.y,null,null,null,!0);v(m)?(m=m/180*Math.PI,q=Math.max(a.startAngleRad-m,Math.min(a.endAngleRad+m,q))):!1===b.wrap&&(q=Math.max(a.startAngleRad,Math.min(a.endAngleRad,q)));q=180*q/Math.PI;c.shapeType="path";c.shapeArgs={d:d.path||["M",-h,-n/2,"L",p,-n/2,l,-t/2,l,t/2,p,n/2,-h,n/2,"z"],translateX:g[0],translateY:g[1],rotation:q};c.plotX=g[0];c.plotY=g[1]})},drawPoints:function(){var a=this,b=a.yAxis.center,g=a.pivot, | ||
d=a.options,e=d.pivot,u=a.chart.renderer;q(a.points,function(c){var b=c.graphic,e=c.shapeArgs,g=e.d;r(d.dial,c.dial);b?(b.animate(e),e.d=g):c.graphic=u[c.shapeType](e).attr({rotation:e.rotation,zIndex:1}).addClass("highcharts-dial").add(a.group)});g?g.animate({translateX:b[0],translateY:b[1]}):a.pivot=u.circle(0,0,k(e.radius,5)).attr({zIndex:2}).addClass("highcharts-pivot").translate(b[0],b[1]).add(a.group)},animate:function(a){var c=this;a||(q(c.points,function(a){var b=a.graphic;b&&(b.attr({rotation:180* | ||
c.yAxis.startAngleRad/Math.PI}),b.animate({rotation:a.shapeArgs.rotation},c.options.animation))}),c.animate=null)},render:function(){this.group=this.plotGroup("group","series",this.visible?"visible":"hidden",this.options.zIndex,this.chart.seriesGroup);m.prototype.render.call(this);this.group.clip(this.chart.clipRect)},setData:function(a,b){m.prototype.setData.call(this,a,!1);this.processData();this.generatePoints();k(b,!0)&&this.chart.redraw()},drawTracker:a&&a.drawTrackerPoint},{setState:function(a){this.state= | ||
a}})})(w);(function(b){var q=b.each,v=b.noop,r=b.seriesType,k=b.seriesTypes;r("boxplot","column",{threshold:null,tooltip:{pointFormat:'\x3cspan class\x3d"highcharts-color-{point.colorIndex}"\x3e\u25cf\x3c/span\x3e \x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eMaximum: {point.high}\x3cbr/\x3eUpper quartile: {point.q3}\x3cbr/\x3eMedian: {point.median}\x3cbr/\x3eLower quartile: {point.q1}\x3cbr/\x3eMinimum: {point.low}\x3cbr/\x3e'},whiskerLength:"50%"},{pointArrayMap:["low","q1","median","q3","high"], | ||
toYData:function(b){return[b.low,b.q1,b.median,b.q3,b.high]},pointValKey:"high",drawDataLabels:v,translate:function(){var b=this.yAxis,m=this.pointArrayMap;k.column.prototype.translate.apply(this);q(this.points,function(f){q(m,function(a){null!==f[a]&&(f[a+"Plot"]=b.translate(f[a],0,1,0,1))})})},drawPoints:function(){var b=this,m=b.chart.renderer,n,a,c,l,g,d,e=0,u,p,h,k,t=!1!==b.doQuartiles,r,v=b.options.whiskerLength;q(b.points,function(f){var q=f.graphic,x=q?"animate":"attr",E=f.shapeArgs;void 0!== | ||
f.plotY&&(u=E.width,p=Math.floor(E.x),h=p+u,k=Math.round(u/2),n=Math.floor(t?f.q1Plot:f.lowPlot),a=Math.floor(t?f.q3Plot:f.lowPlot),c=Math.floor(f.highPlot),l=Math.floor(f.lowPlot),q||(f.graphic=q=m.g("point").add(b.group),f.stem=m.path().addClass("highcharts-boxplot-stem").add(q),v&&(f.whiskers=m.path().addClass("highcharts-boxplot-whisker").add(q)),t&&(f.box=m.path(void 0).addClass("highcharts-boxplot-box").add(q)),f.medianShape=m.path(void 0).addClass("highcharts-boxplot-median").add(q)),d=f.stem.strokeWidth()% | ||
2/2,e=p+k+d,f.stem[x]({d:["M",e,a,"L",e,c,"M",e,n,"L",e,l]}),t&&(d=f.box.strokeWidth()%2/2,n=Math.floor(n)+d,a=Math.floor(a)+d,p+=d,h+=d,f.box[x]({d:["M",p,a,"L",p,n,"L",h,n,"L",h,a,"L",p,a,"z"]})),v&&(d=f.whiskers.strokeWidth()%2/2,c+=d,l+=d,r=/%$/.test(v)?k*parseFloat(v)/100:v/2,f.whiskers[x]({d:["M",e-r,c,"L",e+r,c,"M",e-r,l,"L",e+r,l]})),g=Math.round(f.medianPlot),d=f.medianShape.strokeWidth()%2/2,g+=d,f.medianShape[x]({d:["M",p,g,"L",h,g]}))})},setStackedPoints:v})})(w);(function(b){var q=b.each, | ||
v=b.noop,r=b.seriesType,k=b.seriesTypes;r("errorbar","boxplot",{grouping:!1,linkedTo:":previous",tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e {series.name}: \x3cb\x3e{point.low}\x3c/b\x3e - \x3cb\x3e{point.high}\x3c/b\x3e\x3cbr/\x3e'},whiskerWidth:null},{type:"errorbar",pointArrayMap:["low","high"],toYData:function(b){return[b.low,b.high]},pointValKey:"high",doQuartiles:!1,drawDataLabels:k.arearange?function(){var b=this.pointValKey;k.arearange.prototype.drawDataLabels.call(this); | ||
q(this.data,function(f){f.y=f[b]})}:v,getColumnMetrics:function(){return this.linkedParent&&this.linkedParent.columnMetrics||k.column.prototype.getColumnMetrics.call(this)}})})(w);(function(b){var q=b.correctFloat,v=b.isNumber,r=b.pick,k=b.Point,f=b.Series,m=b.seriesType,n=b.seriesTypes;m("waterfall","column",{dataLabels:{inside:!0}},{pointValKey:"y",translate:function(){var a=this.options,c=this.yAxis,b,g,d,e,f,p,h,k,t,m,v=r(a.minPointLength,5),w=v/2,z=a.threshold,A=a.stacking,y;n.column.prototype.translate.apply(this); | ||
k=t=z;g=this.points;b=0;for(a=g.length;b<a;b++)d=g[b],h=this.processedYData[b],e=d.shapeArgs,f=A&&c.stacks[(this.negStacks&&h<z?"-":"")+this.stackKey],y=this.getStackIndicator(y,d.x,this.index),m=r(f&&f[d.x].points[y.key],[0,h]),d.isSum?d.y=q(h):d.isIntermediateSum&&(d.y=q(h-t)),p=Math.max(k,k+d.y)+m[0],e.y=c.translate(p,0,1,0,1),d.isSum?(e.y=c.translate(m[1],0,1,0,1),e.height=Math.min(c.translate(m[0],0,1,0,1),c.len)-e.y):d.isIntermediateSum?(e.y=c.translate(m[1],0,1,0,1),e.height=Math.min(c.translate(t, | ||
0,1,0,1),c.len)-e.y,t=m[1]):(e.height=0<h?c.translate(k,0,1,0,1)-e.y:c.translate(k,0,1,0,1)-c.translate(k-h,0,1,0,1),k+=f&&f[d.x]?f[d.x].total:h),0>e.height&&(e.y+=e.height,e.height*=-1),d.plotY=e.y=Math.round(e.y)-this.borderWidth%2/2,e.height=Math.max(Math.round(e.height),.001),d.yBottom=e.y+e.height,e.height<=v&&!d.isNull?(e.height=v,e.y-=w,d.plotY=e.y,d.minPointLengthOffset=0>d.y?-w:w):d.minPointLengthOffset=0,e=d.plotY+(d.negative?e.height:0),this.chart.inverted?d.tooltipPos[0]=c.len-e:d.tooltipPos[1]= | ||
e},processData:function(a){var c=this.yData,b=this.options.data,g,d=c.length,e,u,p,h,k,t;u=e=p=h=this.options.threshold||0;for(t=0;t<d;t++)k=c[t],g=b&&b[t]?b[t]:{},"sum"===k||g.isSum?c[t]=q(u):"intermediateSum"===k||g.isIntermediateSum?c[t]=q(e):(u+=k,e+=k),p=Math.min(u,p),h=Math.max(u,h);f.prototype.processData.call(this,a);this.options.stacking||(this.dataMin=p,this.dataMax=h)},toYData:function(a){return a.isSum?0===a.x?null:"sum":a.isIntermediateSum?0===a.x?null:"intermediateSum":a.y},getGraphPath:function(){return["M", | ||
0,0]},getCrispPath:function(){var a=this.data,c=a.length,b=this.graph.strokeWidth()+this.borderWidth,b=Math.round(b)%2/2,g=this.xAxis.reversed,d=this.yAxis.reversed,e=[],f,p,h;for(h=1;h<c;h++){p=a[h].shapeArgs;f=a[h-1].shapeArgs;p=["M",f.x+(g?0:f.width),f.y+a[h-1].minPointLengthOffset+b,"L",p.x+(g?f.width:0),f.y+a[h-1].minPointLengthOffset+b];if(0>a[h-1].y&&!d||0<a[h-1].y&&d)p[2]+=f.height,p[5]+=f.height;e=e.concat(p)}return e},drawGraph:function(){f.prototype.drawGraph.call(this);this.graph.attr({d:this.getCrispPath()})}, | ||
setStackedPoints:function(){var a=this.options,b,l;f.prototype.setStackedPoints.apply(this,arguments);b=this.stackedYData?this.stackedYData.length:0;for(l=1;l<b;l++)a.data[l].isSum||a.data[l].isIntermediateSum||(this.stackedYData[l]+=this.stackedYData[l-1])},getExtremes:function(){if(this.options.stacking)return f.prototype.getExtremes.apply(this,arguments)}},{getClassName:function(){var a=k.prototype.getClassName.call(this);this.isSum?a+=" highcharts-sum":this.isIntermediateSum&&(a+=" highcharts-intermediate-sum"); | ||
return a},isValid:function(){return v(this.y,!0)||this.isSum||this.isIntermediateSum}})})(w);(function(b){var q=b.Series,v=b.seriesType,r=b.seriesTypes;v("polygon","scatter",{marker:{enabled:!1,states:{hover:{enabled:!1}}},stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:""},trackByArea:!0},{type:"polygon",getGraphPath:function(){for(var b=q.prototype.getGraphPath.call(this),f=b.length+1;f--;)(f===b.length||"M"===b[f])&&0<f&&b.splice(f,0,"z");return this.areaPath=b},drawGraph:function(){r.area.prototype.drawGraph.call(this)}, | ||
drawLegendSymbol:b.LegendSymbolMixin.drawRectangle,drawTracker:q.prototype.drawTracker,setStackedPoints:b.noop})})(w);(function(b){var q=b.arrayMax,v=b.arrayMin,r=b.Axis,k=b.each,f=b.isNumber,m=b.noop,n=b.pick,a=b.pInt,c=b.Point,l=b.seriesType,g=b.seriesTypes;l("bubble","scatter",{dataLabels:{formatter:function(){return this.point.z},inside:!0,verticalAlign:"middle"},marker:{radius:null,states:{hover:{radiusPlus:0}},symbol:"circle"},minSize:8,maxSize:"20%",softThreshold:!1,states:{hover:{halo:{size:5}}}, | ||
tooltip:{pointFormat:"({point.x}, {point.y}), Size: {point.z}"},turboThreshold:0,zThreshold:0,zoneAxis:"z"},{pointArrayMap:["y","z"],parallelArrays:["x","y","z"],trackerGroups:["group","dataLabelsGroup"],specialGroup:"group",bubblePadding:!0,zoneAxis:"z",directTouch:!0,getRadii:function(a,b,c,g){var d,e,f,p=this.zData,l=[],u=this.options,k="width"!==u.sizeBy,m=u.zThreshold,n=b-a;e=0;for(d=p.length;e<d;e++)f=p[e],u.sizeByAbsoluteValue&&null!==f&&(f=Math.abs(f-m),b=Math.max(b-m,Math.abs(a-m)),a=0), | ||
null===f?f=null:f<a?f=c/2-1:(f=0<n?(f-a)/n:.5,k&&0<=f&&(f=Math.sqrt(f)),f=Math.ceil(c+f*(g-c))/2),l.push(f);this.radii=l},animate:function(a){var b=this.options.animation;a||(k(this.points,function(a){var c=a.graphic,d;c&&c.width&&(d={x:c.x,y:c.y,width:c.width,height:c.height},c.attr({x:a.plotX,y:a.plotY,width:1,height:1}),c.animate(d,b))}),this.animate=null)},translate:function(){var a,c=this.data,l,p,h=this.radii;g.scatter.prototype.translate.call(this);for(a=c.length;a--;)l=c[a],p=h?h[a]:0,f(p)&& | ||
p>=this.minPxSize/2?(l.marker=b.extend(l.marker,{radius:p,width:2*p,height:2*p}),l.dlBox={x:l.plotX-p,y:l.plotY-p,width:2*p,height:2*p}):l.shapeArgs=l.plotY=l.dlBox=void 0},alignDataLabel:g.column.prototype.alignDataLabel,buildKDTree:m,applyZones:m},{haloPath:function(a){return c.prototype.haloPath.call(this,0===a?0:(this.marker?this.marker.radius||0:0)+a)},ttBelow:!1});r.prototype.beforePadding=function(){var b=this,c=this.len,g=this.chart,l=0,h=c,m=this.isXAxis,t=m?"xData":"yData",r=this.min,w= | ||
{},C=Math.min(g.plotWidth,g.plotHeight),z=Number.MAX_VALUE,A=-Number.MAX_VALUE,y=this.max-r,B=c/y,D=[];k(this.series,function(c){var d=c.options;!c.bubblePadding||!c.visible&&g.options.chart.ignoreHiddenSeries||(b.allowZoomOutside=!0,D.push(c),m&&(k(["minSize","maxSize"],function(c){var b=d[c],e=/%$/.test(b),b=a(b);w[c]=e?C*b/100:b}),c.minPxSize=w.minSize,c.maxPxSize=Math.max(w.maxSize,w.minSize),c=c.zData,c.length&&(z=n(d.zMin,Math.min(z,Math.max(v(c),!1===d.displayNegative?d.zThreshold:-Number.MAX_VALUE))), | ||
A=n(d.zMax,Math.max(A,q(c))))))});k(D,function(a){var c=a[t],d=c.length,e;m&&a.getRadii(z,A,a.minPxSize,a.maxPxSize);if(0<y)for(;d--;)f(c[d])&&b.dataMin<=c[d]&&c[d]<=b.dataMax&&(e=a.radii[d],l=Math.min((c[d]-r)*B-e,l),h=Math.max((c[d]-r)*B+e,h))});D.length&&0<y&&!this.isLog&&(h-=c,B*=(c+l-h)/c,k([["min","userMin",l],["max","userMax",h]],function(a){void 0===n(b.options[a[0]],b[a[1]])&&(b[a[0]]+=a[2]/B)}))}})(w);(function(b){var q=b.each,v=b.pick,r=b.seriesTypes,k=b.wrap,f=b.Series.prototype,m=b.Pointer.prototype; | ||
if(!b.polarExtended){b.polarExtended=!0;f.searchPointByAngle=function(a){var c=this.chart,b=this.xAxis.pane.center;return this.searchKDTree({clientX:180+-180/Math.PI*Math.atan2(a.chartX-b[0]-c.plotLeft,a.chartY-b[1]-c.plotTop)})};f.getConnectors=function(a,c,b,g){var d,e,f,l,h,m,k,n;e=g?1:0;d=0<=c&&c<=a.length-1?c:0>c?a.length-1+c:0;c=0>d-1?a.length-(1+e):d-1;e=d+1>a.length-1?e:d+1;f=a[c];e=a[e];l=f.plotX;f=f.plotY;h=e.plotX;m=e.plotY;e=a[d].plotX;d=a[d].plotY;l=(1.5*e+l)/2.5;f=(1.5*d+f)/2.5;h=(1.5* | ||
e+h)/2.5;k=(1.5*d+m)/2.5;m=Math.sqrt(Math.pow(l-e,2)+Math.pow(f-d,2));n=Math.sqrt(Math.pow(h-e,2)+Math.pow(k-d,2));l=Math.atan2(f-d,l-e);k=Math.PI/2+(l+Math.atan2(k-d,h-e))/2;Math.abs(l-k)>Math.PI/2&&(k-=Math.PI);l=e+Math.cos(k)*m;f=d+Math.sin(k)*m;h=e+Math.cos(Math.PI+k)*n;k=d+Math.sin(Math.PI+k)*n;e={rightContX:h,rightContY:k,leftContX:l,leftContY:f,plotX:e,plotY:d};b&&(e.prevPointCont=this.getConnectors(a,c,!1,g));return e};k(f,"buildKDTree",function(a){this.chart.polar&&(this.kdByAngle?this.searchPoint= | ||
this.searchPointByAngle:this.options.findNearestPointBy="xy");a.apply(this)});f.toXY=function(a){var c,b=this.chart,g=a.plotX;c=a.plotY;a.rectPlotX=g;a.rectPlotY=c;c=this.xAxis.postTranslate(a.plotX,this.yAxis.len-c);a.plotX=a.polarPlotX=c.x-b.plotLeft;a.plotY=a.polarPlotY=c.y-b.plotTop;this.kdByAngle?(b=(g/Math.PI*180+this.xAxis.pane.options.startAngle)%360,0>b&&(b+=360),a.clientX=b):a.clientX=a.plotX};r.spline&&(k(r.spline.prototype,"getPointSpline",function(a,b,f,g){this.chart.polar?g?(a=this.getConnectors(b, | ||
g,!0,this.connectEnds),a=["C",a.prevPointCont.rightContX,a.prevPointCont.rightContY,a.leftContX,a.leftContY,a.plotX,a.plotY]):a=["M",f.plotX,f.plotY]:a=a.call(this,b,f,g);return a}),r.areasplinerange&&(r.areasplinerange.prototype.getPointSpline=r.spline.prototype.getPointSpline));b.addEvent(f,"afterTranslate",function(){var a=this.chart,c,f;if(a.polar){this.kdByAngle=a.tooltip&&a.tooltip.shared;if(!this.preventPostTranslate)for(c=this.points,f=c.length;f--;)this.toXY(c[f]);this.hasClipCircleSetter|| | ||
(this.hasClipCircleSetter=!!b.addEvent(this,"afterRender",function(){var c;a.polar&&(c=this.yAxis.center,this.group.clip(a.renderer.clipCircle(c[0],c[1],c[2]/2)),this.setClip=b.noop)}))}});k(f,"getGraphPath",function(a,b){var c=this,f,d,e;if(this.chart.polar){b=b||this.points;for(f=0;f<b.length;f++)if(!b[f].isNull){d=f;break}!1!==this.options.connectEnds&&void 0!==d&&(this.connectEnds=!0,b.splice(b.length,0,b[d]),e=!0);q(b,function(a){void 0===a.polarPlotY&&c.toXY(a)})}f=a.apply(this,[].slice.call(arguments, | ||
1));e&&b.pop();return f});var n=function(a,b){var c=this.chart,f=this.options.animation,d=this.group,e=this.markerGroup,k=this.xAxis.center,m=c.plotLeft,h=c.plotTop;c.polar?c.renderer.isSVG&&(!0===f&&(f={}),b?(a={translateX:k[0]+m,translateY:k[1]+h,scaleX:.001,scaleY:.001},d.attr(a),e&&e.attr(a)):(a={translateX:m,translateY:h,scaleX:1,scaleY:1},d.animate(a,f),e&&e.animate(a,f),this.animate=null)):a.call(this,b)};k(f,"animate",n);r.column&&(r=r.column.prototype,r.polarArc=function(a,b,f,g){var c=this.xAxis.center, | ||
e=this.yAxis.len;return this.chart.renderer.symbols.arc(c[0],c[1],e-b,null,{start:f,end:g,innerR:e-v(a,e)})},k(r,"animate",n),k(r,"translate",function(a){var b=this.xAxis,f=b.startAngleRad,g,d,e;this.preventPostTranslate=!0;a.call(this);if(b.isRadial)for(g=this.points,e=g.length;e--;)d=g[e],a=d.barX+f,d.shapeType="path",d.shapeArgs={d:this.polarArc(d.yBottom,d.plotY,a,a+d.pointWidth)},this.toXY(d),d.tooltipPos=[d.plotX,d.plotY],d.ttBelow=d.plotY>b.center[1]}),k(r,"alignDataLabel",function(a,b,l,g, | ||
d,e){this.chart.polar?(a=b.rectPlotX/Math.PI*180,null===g.align&&(g.align=20<a&&160>a?"left":200<a&&340>a?"right":"center"),null===g.verticalAlign&&(g.verticalAlign=45>a||315<a?"bottom":135<a&&225>a?"top":"middle"),f.alignDataLabel.call(this,b,l,g,d,e)):a.call(this,b,l,g,d,e)}));k(m,"getCoordinates",function(a,b){var c=this.chart,f={xAxis:[],yAxis:[]};c.polar?q(c.axes,function(a){var d=a.isXAxis,g=a.center,l=b.chartX-g[0]-c.plotLeft,g=b.chartY-g[1]-c.plotTop;f[d?"xAxis":"yAxis"].push({axis:a,value:a.translate(d? | ||
Math.PI-Math.atan2(l,g):Math.sqrt(Math.pow(l,2)+Math.pow(g,2)),!0)})}):f=a.call(this,b);return f});b.SVGRenderer.prototype.clipCircle=function(a,c,f){var g=b.uniqueKey(),d=this.createElement("clipPath").attr({id:g}).add(this.defs);a=this.circle(a,c,f).add(d);a.id=g;a.clipPath=d;return a};b.addEvent(b.Chart.prototype,"beforeGetAxes",function(){this.pane||(this.pane=[]);q(b.splat(this.options.pane),function(a){new b.Pane(a,this)},this)});b.addEvent(b.Chart.prototype,"afterDrawChartBox",function(){q(this.pane, | ||
function(a){a.render()})});k(b.Chart.prototype,"get",function(a,c){return b.find(this.pane,function(a){return a.options.id===c})||a.call(this,c)})}})(w)}); |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Indicator series type for Highstock |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * Indicator series type for Highstock |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Indicator series type for Highstock |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * Indicator series type for Highstock |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Indicator series type for Highstock |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -19,3 +19,2 @@ * Indicator series type for Highstock | ||
(function(H) { | ||
/* eslint max-len: 0 */ | ||
@@ -48,4 +47,4 @@ | ||
/** | ||
* Bollinger bands (BB). This series requires `linkedTo` | ||
* option to be set and should be loaded after `stock/indicators/indicators.js` file. | ||
* Bollinger bands (BB). This series requires the `linkedTo` option to be | ||
* set and should be loaded after the `stock/indicators/indicators.js` file. | ||
* | ||
@@ -96,4 +95,4 @@ * @extends {plotOptions.sma} | ||
/** | ||
* Color of the line. | ||
* If not set, it's inherited from [plotOptions.bb.color](#plotOptions.bb.color). | ||
* Color of the line. If not set, it's inherited from | ||
* [plotOptions.bb.color](#plotOptions.bb.color). | ||
* | ||
@@ -121,27 +120,3 @@ * @type {String} | ||
tooltip: { | ||
/** | ||
* The HTML of the point's line in the tooltip. Variables are enclosed | ||
* by curly brackets. Available variables are point.x, point.y, series. | ||
* name and series.color and other properties on the same form. Furthermore, | ||
* point.y can be extended by the `tooltip.valuePrefix` and | ||
* `tooltip.valueSuffix` variables. This can also be overridden for | ||
* each series, which makes it a good hook for displaying units. | ||
* | ||
* In styled mode, the dot is colored by a class name rather | ||
* than the point color. | ||
* | ||
* @type {String} | ||
* @sample {highcharts} highcharts/tooltip/pointformat/ A different point format with value suffix | ||
* @sample {highmaps} maps/tooltip/format/ Format demo | ||
* @default | ||
* <span style="color:{point.color}">\u25CF</span> <b> {series.name}</b><br/> | ||
* Top: {point.top}<br/> | ||
* Middle: {point.middle}<br/> | ||
* Bottom: {point.bottom}<br/> | ||
*/ | ||
pointFormat: '<span style="color:{point.color}">\u25CF</span>' + | ||
'<b> {series.name}</b><br/>' + | ||
'Top: {point.top}<br/>' + | ||
'Middle: {point.middle}<br/>' + | ||
'Bottom: {point.bottom}<br/>' | ||
pointFormat: '<span style="color:{point.color}">\u25CF</span><b> {series.name}</b><br/>Top: {point.top}<br/>Middle: {point.middle}<br/>Bottom: {point.bottom}<br/>' | ||
}, | ||
@@ -185,7 +160,13 @@ marker: { | ||
each(indicator.points, function(point) { | ||
each([point.top, point.middle, point.bottom], function(value, i) { | ||
if (value !== null) { | ||
point[translatedBB[i]] = indicator.yAxis.toPixels(value, true); | ||
each( | ||
[point.top, point.middle, point.bottom], | ||
function(value, i) { | ||
if (value !== null) { | ||
point[translatedBB[i]] = indicator.yAxis.toPixels( | ||
value, | ||
true | ||
); | ||
} | ||
} | ||
}); | ||
); | ||
}); | ||
@@ -228,3 +209,6 @@ }, | ||
indicator.points = deviations[i]; | ||
indicator.options = merge(middleLineOptions[lineName].styles, gappedExtend); | ||
indicator.options = merge( | ||
middleLineOptions[lineName].styles, | ||
gappedExtend | ||
); | ||
indicator.graph = indicator['graph' + lineName]; | ||
@@ -231,0 +215,0 @@ SMA.prototype.drawGraph.call(indicator); |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Indicator series type for Highstock |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * Indicator series type for Highstock |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ (c) 2010-2017 Highsoft AS |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -26,3 +26,2 @@ * (c) 2010-2017 Highsoft AS | ||
*/ | ||
/* eslint max-len: 0 */ | ||
@@ -48,3 +47,4 @@ | ||
/** | ||
* The id of another series to use its data as volume data for the indiator calculation. | ||
* The id of another series to use its data as volume data for the | ||
* indiator calculation. | ||
*/ | ||
@@ -56,4 +56,6 @@ volumeSeriesID: 'volume' | ||
/** | ||
* Checks if the series and volumeSeries are accessible, number of points.x is longer than period, is series has OHLC data | ||
* @returns {Boolean} true if series is valid and can be computed, otherwise false | ||
* Checks if the series and volumeSeries are accessible, number of | ||
* points.x is longer than period, is series has OHLC data | ||
* @returns {Boolean} | ||
* true if series is valid and can be computed, otherwise false | ||
**/ | ||
@@ -64,10 +66,26 @@ isValid: function() { | ||
series = this.linkedParent, | ||
volumeSeries = this.volumeSeries || (this.volumeSeries = chart.get(options.params.volumeSeriesID)), | ||
isSeriesOHLC = series && series.yData && series.yData[0].length === 4; | ||
volumeSeries = ( | ||
this.volumeSeries || | ||
( | ||
this.volumeSeries = | ||
chart.get(options.params.volumeSeriesID) | ||
) | ||
), | ||
isSeriesOHLC = ( | ||
series && | ||
series.yData && | ||
series.yData[0].length === 4 | ||
); | ||
function isLengthValid(serie) { | ||
return serie.xData && serie.xData.length >= options.params.period; | ||
return serie.xData && | ||
serie.xData.length >= options.params.period; | ||
} | ||
return !!(series && volumeSeries && isLengthValid(series) && isLengthValid(volumeSeries) && isSeriesOHLC); | ||
return !!( | ||
series && | ||
volumeSeries && | ||
isLengthValid(series) && | ||
isLengthValid(volumeSeries) && isSeriesOHLC | ||
); | ||
}, | ||
@@ -77,5 +95,8 @@ | ||
* @typedef {Object} Values | ||
* @property {Number[][]} values combined xData and yData values into a tuple | ||
* @property {Number[]} xData values represent x timestamp values | ||
* @property {Number[]} yData values represent y values | ||
* @property {Number[][]} values | ||
* Combined xData and yData values into a tuple | ||
* @property {Number[]} xData | ||
* Values represent x timestamp values | ||
* @property {Number[]} yData | ||
* Values represent y values | ||
**/ | ||
@@ -85,3 +106,5 @@ | ||
* Returns indicator's data | ||
* @returns {False | Values} Returns false if the indicator is not valid, otherwise returns Values object | ||
* @returns {False | Values} | ||
* Returns false if the indicator is not valid, otherwise | ||
* returns Values object | ||
**/ | ||
@@ -122,3 +145,4 @@ getValues: function(series, params) { | ||
/** | ||
* Calculates money flow volume, changes i, nullIndex vars from upper scope! | ||
* Calculates money flow volume, changes i, nullIndex vars from upper | ||
* scope! | ||
* @private | ||
@@ -153,3 +177,5 @@ * @param {Number[]} ohlc OHLC point | ||
return isValid ? getMoneyFlowMultiplier(high, low, close) * volume : ((nullIndex = i), null); | ||
return isValid ? | ||
getMoneyFlowMultiplier(high, low, close) * volume : | ||
((nullIndex = i), null); | ||
} | ||
@@ -160,3 +186,6 @@ | ||
for (i = 0; i < period; i++) { | ||
moneyFlowVolume[i] = getMoneyFlowVolume(seriesYData[i], volumeSeriesYData[i]); | ||
moneyFlowVolume[i] = getMoneyFlowVolume( | ||
seriesYData[i], | ||
volumeSeriesYData[i] | ||
); | ||
sumVolume += volumeSeriesYData[i]; | ||
@@ -167,7 +196,14 @@ sumMoneyFlowVolume += moneyFlowVolume[i]; | ||
moneyFlowXData.push(xData[i - 1]); | ||
moneyFlowYData.push(i - nullIndex >= period && sumVolume !== 0 ? sumMoneyFlowVolume / sumVolume : null); | ||
moneyFlowYData.push( | ||
i - nullIndex >= period && sumVolume !== 0 ? | ||
sumMoneyFlowVolume / sumVolume : | ||
null | ||
); | ||
values.push([moneyFlowXData[0], moneyFlowYData[0]]); | ||
for (; i < len; i++) { | ||
moneyFlowVolume[i] = getMoneyFlowVolume(seriesYData[i], volumeSeriesYData[i]); | ||
moneyFlowVolume[i] = getMoneyFlowVolume( | ||
seriesYData[i], | ||
volumeSeriesYData[i] | ||
); | ||
@@ -180,3 +216,8 @@ sumVolume -= volumeSeriesYData[i - period]; | ||
point = [xData[i], i - nullIndex >= period ? sumMoneyFlowVolume / sumVolume : null]; | ||
point = [ | ||
xData[i], | ||
i - nullIndex >= period ? | ||
sumMoneyFlowVolume / sumVolume : | ||
null | ||
]; | ||
@@ -183,0 +224,0 @@ moneyFlowXData.push(point[0]); |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -10,3 +10,3 @@ Indicator series type for Highstock | ||
*/ | ||
(function(a){"object"===typeof module&&module.exports?module.exports=a:a(Highcharts)})(function(a){(function(a){var q=a.isArray;a=a.seriesType;a("ema","sma",{params:{index:0,period:14}},{getValues:function(a,g){var b=g.period,h=a.xData,c=a.yData,r=c?c.length:0;a=2/(b+1);var d=0,f=0,n=0,k=[],l=[],m=[],e=-1,p=[];if(h.length<b)return!1;for(q(c[0])&&(e=g.index?g.index:0);f<b;)p.push([h[f],0>e?c[f]:c[f][e]]),n+=0>e?c[f]:c[f][e],f++;g=n/b;for(b=f;b<r;b++)f=0>e?c[b-1]:c[b-1][e],d=[h[b-1],0===d?g:f*a+d*(1- | ||
a)],k.push(d),l.push(d[0]),m.push(d[1]),d=d[1],p.push([h[b],0>e?c[b]:c[b][e]]);c=0>e?c[b-1]:c[b-1][e];d=[h[b-1],0===d?void 0:c*a+d*(1-a)];k.push(d);l.push(d[0]);m.push(d[1]);return{values:k,xData:l,yData:m}}})})(a)}); | ||
(function(a){"object"===typeof module&&module.exports?module.exports=a:a(Highcharts)})(function(a){(function(a){function r(b,a,c,f,k,h,e,l){b=0>e?c[f-1]:c[f-1][e];return[a[f-1],void 0===h?l:b*k+h*(1-k)]}var t=a.isArray;a=a.seriesType;a("ema","sma",{params:{index:0,period:14}},{getValues:function(b,a){var c=a.period,f=b.xData,k=(b=b.yData)?b.length:0,h=2/(c+1),e=0,l=0,n=[],p=[],q=[],g=-1,m=[],d;if(f.length<c)return!1;for(t(b[0])&&(g=a.index?a.index:0);e<c;)m.push([f[e],0>g?b[e]:b[e][g]]),l+=0>g?b[e]: | ||
b[e][g],e++;a=l/c;for(c=e;c<k;c++)d=r(m,f,b,c,h,d,g,a),n.push(d),p.push(d[0]),q.push(d[1]),d=d[1],m.push([f[c],0>g?b[c]:b[c][g]]);d=r(m,f,b,c,h,d,g);n.push(d);p.push(d[0]);q.push(d[1]);return{values:n,xData:p,yData:q}}})})(a)}); |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -19,3 +19,2 @@ * Indicator series type for Highstock | ||
(function(H) { | ||
/* eslint max-len: 0 */ | ||
@@ -33,3 +32,12 @@ var isArray = H.isArray, | ||
function populateAverage(points, xVal, yVal, i, EMApercent, calEMA, index, SMA) { | ||
function populateAverage( | ||
points, | ||
xVal, | ||
yVal, | ||
i, | ||
EMApercent, | ||
calEMA, | ||
index, | ||
SMA | ||
) { | ||
var x = xVal[i - 1], | ||
@@ -39,3 +47,5 @@ yValue = index < 0 ? yVal[i - 1] : yVal[i - 1][index], | ||
y = calEMA === 0 ? SMA : ((yValue * EMApercent) + (calEMA * (1 - EMApercent))); | ||
y = calEMA === undefined ? | ||
SMA : | ||
((yValue * EMApercent) + (calEMA * (1 - EMApercent))); | ||
@@ -52,3 +62,4 @@ return [x, y]; | ||
/** | ||
* Exponential moving average indicator (EMA). This series requires `linkedTo` option to be set. | ||
* Exponential moving average indicator (EMA). This series requires the | ||
* `linkedTo` option to be set. | ||
* | ||
@@ -74,3 +85,2 @@ * @extends {plotOptions.sma} | ||
EMApercent = (2 / (period + 1)), | ||
calEMA = 0, | ||
range = 0, | ||
@@ -84,4 +94,5 @@ sum = 0, | ||
SMA = 0, | ||
i, | ||
EMAPoint; | ||
calEMA, | ||
EMAPoint, | ||
i; | ||
@@ -110,3 +121,12 @@ // Check period, if bigger than points length, skip | ||
for (i = range; i < yValLen; i++) { | ||
EMAPoint = populateAverage(points, xVal, yVal, i, EMApercent, calEMA, index, SMA); | ||
EMAPoint = populateAverage( | ||
points, | ||
xVal, | ||
yVal, | ||
i, | ||
EMApercent, | ||
calEMA, | ||
index, | ||
SMA | ||
); | ||
EMA.push(EMAPoint); | ||
@@ -120,3 +140,11 @@ xData.push(EMAPoint[0]); | ||
EMAPoint = populateAverage(points, xVal, yVal, i, EMApercent, calEMA, index); | ||
EMAPoint = populateAverage( | ||
points, | ||
xVal, | ||
yVal, | ||
i, | ||
EMApercent, | ||
calEMA, | ||
index | ||
); | ||
EMA.push(EMAPoint); | ||
@@ -123,0 +151,0 @@ xData.push(EMAPoint[0]); |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Indicator series type for Highstock |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -19,3 +19,2 @@ * Indicator series type for Highstock | ||
(function(H) { | ||
/* eslint max-len: 0 */ | ||
@@ -66,3 +65,6 @@ var UNDEFINED, | ||
distance = xData[i] - xData[i - 1]; | ||
if (closestDataRange === UNDEFINED || distance < closestDataRange) { | ||
if ( | ||
closestDataRange === UNDEFINED || | ||
distance < closestDataRange | ||
) { | ||
closestDataRange = distance; | ||
@@ -85,3 +87,4 @@ } | ||
/** | ||
* Ichimoku Kinko Hyo (IKH). This series requires `linkedTo` option to be set. | ||
* Ichimoku Kinko Hyo (IKH). This series requires `linkedTo` option to be | ||
* set. | ||
* | ||
@@ -95,4 +98,4 @@ * @extends {plotOptions.sma} | ||
* allAreas,colorAxis,compare,compareBase,joinBy,keys,stacking, | ||
* showInNavigator,navigatorOptions,pointInterval,pointIntervalUnit, | ||
* pointPlacement,pointRange,pointStart | ||
* showInNavigator,navigatorOptions,pointInterval, | ||
* pointIntervalUnit,pointPlacement,pointRange,pointStart | ||
* @optionparent plotOptions.ikh | ||
@@ -289,3 +292,9 @@ */ | ||
}, { | ||
pointArrayMap: ['tenkanSen', 'kijunSen', 'chikouSpan', 'senkouSpanA', 'senkouSpanB'], | ||
pointArrayMap: [ | ||
'tenkanSen', | ||
'kijunSen', | ||
'chikouSpan', | ||
'senkouSpanA', | ||
'senkouSpanB' | ||
], | ||
pointValKey: 'tenkanSen', | ||
@@ -354,3 +363,4 @@ nameComponents: ['periodSenkouSpanB', 'period', 'periodTenkan'], | ||
// add extra parameters for support tooltip in moved lines | ||
// add extra parameters for support tooltip in moved | ||
// lines | ||
point.plotY = point['plot' + value]; | ||
@@ -409,9 +419,20 @@ point.tooltipPos = [point.plotX, point['plot' + value]]; | ||
// Modify options and generate lines: | ||
each(['tenkanLine', 'kijunLine', 'chikouLine', 'senkouSpanA', 'senkouSpanB', 'senkouSpan'], function(lineName, i) { | ||
each([ | ||
'tenkanLine', | ||
'kijunLine', | ||
'chikouLine', | ||
'senkouSpanA', | ||
'senkouSpanB', | ||
'senkouSpan' | ||
], function(lineName, i) { | ||
// First line is rendered by default option | ||
indicator.points = allIchimokuPoints[i]; | ||
indicator.options = merge(mainLineOptions[lineName].styles, gappedExtend); | ||
indicator.options = merge( | ||
mainLineOptions[lineName].styles, | ||
gappedExtend | ||
); | ||
indicator.graph = indicator['graph' + lineName]; | ||
// For span, we need an access to the next points, used in getGraphPath() | ||
// For span, we need an access to the next points, used in | ||
// getGraphPath() | ||
indicator.nextPoints = allIchimokuPoints[i - 1]; | ||
@@ -421,3 +442,6 @@ if (i === 5) { | ||
indicator.points = allIchimokuPoints[i - 1]; | ||
indicator.options = merge(mainLineOptions[lineName].styles, gappedExtend); | ||
indicator.options = merge( | ||
mainLineOptions[lineName].styles, | ||
gappedExtend | ||
); | ||
indicator.graph = indicator['graph' + lineName]; | ||
@@ -518,3 +542,7 @@ indicator.nextPoints = allIchimokuPoints[i - 2]; | ||
// ikh requires close value | ||
if (xVal.length <= period || !isArray(yVal[0]) || yVal[0].length !== 4) { | ||
if ( | ||
xVal.length <= period || | ||
!isArray(yVal[0]) || | ||
yVal[0].length !== 4 | ||
) { | ||
return false; | ||
@@ -521,0 +549,0 @@ } |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Indicator series type for Highstock |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -19,3 +19,2 @@ * Indicator series type for Highstock | ||
(function(H) { | ||
/* eslint max-len: 0 */ | ||
@@ -38,3 +37,4 @@ var pick = H.pick, | ||
/** | ||
* Simple moving average indicator (SMA). This series requires `linkedTo` option to be set. | ||
* Simple moving average indicator (SMA). This series requires `linkedTo` | ||
* option to be set. | ||
* | ||
@@ -47,4 +47,4 @@ * @extends {plotOptions.line} | ||
* allAreas,colorAxis,compare,compareBase,joinBy,keys,stacking, | ||
* showInNavigator,navigatorOptions,pointInterval,pointIntervalUnit, | ||
* pointPlacement,pointRange,pointStart,joinBy | ||
* showInNavigator,navigatorOptions,pointInterval, | ||
* pointIntervalUnit,pointPlacement,pointRange,pointStart,joinBy | ||
* @optionparent plotOptions.sma | ||
@@ -74,3 +74,4 @@ */ | ||
/** | ||
* The main series ID that indicator will be based on. Required for this indicator. | ||
* The main series ID that indicator will be based on. Required for this | ||
* indicator. | ||
* | ||
@@ -84,4 +85,5 @@ * @type {String} | ||
/** | ||
* The point index which indicator calculations will base. | ||
* For example using OHLC data, index=2 means the indicator will be calculated using Low values. | ||
* The point index which indicator calculations will base. For | ||
* example using OHLC data, index=2 means the indicator will be | ||
* calculated using Low values. | ||
* | ||
@@ -138,3 +140,4 @@ * @type {Number} | ||
// Removal of processedXData property is required because on first translate processedXData array is empty | ||
// Removal of processedXData property is required because on | ||
// first translate processedXData array is empty | ||
if (indicator.bindTo.series === false) { | ||
@@ -141,0 +144,0 @@ delete indicator.processedXData; |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -10,8 +10,8 @@ Indicator series type for Highstock | ||
*/ | ||
(function(m){"object"===typeof module&&module.exports?module.exports=m:m(Highcharts)})(function(m){(function(b){var m=b.isArray;b=b.seriesType;b("ema","sma",{params:{index:0,period:14}},{getValues:function(b,p){var d=p.period,n=b.xData,e=b.yData,a=e?e.length:0;b=2/(d+1);var c=0,l=0,r=0,k=[],f=[],h=[],g=-1,t=[];if(n.length<d)return!1;for(m(e[0])&&(g=p.index?p.index:0);l<d;)t.push([n[l],0>g?e[l]:e[l][g]]),r+=0>g?e[l]:e[l][g],l++;p=r/d;for(d=l;d<a;d++)l=0>g?e[d-1]:e[d-1][g],c=[n[d-1],0===c?p:l*b+c*(1- | ||
b)],k.push(c),f.push(c[0]),h.push(c[1]),c=c[1],t.push([n[d],0>g?e[d]:e[d][g]]);e=0>g?e[d-1]:e[d-1][g];c=[n[d-1],0===c?void 0:e*b+c*(1-b)];k.push(c);f.push(c[0]);h.push(c[1]);return{values:k,xData:f,yData:h}}})})(m);(function(b){var m=b.seriesType,q=b.each,p=b.merge,d=b.defined,n=b.seriesTypes.sma,e=b.seriesTypes.ema;m("macd","sma",{params:{shortPeriod:12,longPeriod:26,signalPeriod:9,period:26},signalLine:{styles:{lineWidth:1,lineColor:void 0}},macdLine:{styles:{lineWidth:1,lineColor:void 0}},threshold:0, | ||
groupPadding:.1,pointPadding:.1,states:{hover:{halo:{size:0}}},tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e \x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eValue: {point.MACD}\x3cbr/\x3eSignal: {point.signal}\x3cbr/\x3eHistogram: {point.y}\x3cbr/\x3e'},dataGrouping:"averages",minPointLength:0},{nameComponents:["longPeriod","shortPeriod","signalPeriod"],pointArrayMap:["y","signal","MACD"],parallelArrays:["x","y","signal","MACD"],pointValKey:"y",markerAttribs:b.noop, | ||
getColumnMetrics:b.seriesTypes.column.prototype.getColumnMetrics,crispCol:b.seriesTypes.column.prototype.crispCol,init:function(){n.prototype.init.apply(this,arguments);this.options=p({signalLine:{styles:{lineColor:this.color}},macdLine:{styles:{color:this.color}}},this.options)},toYData:function(a){return[a.y,a.signal,a.MACD]},translate:function(){var a=this,c=["plotSignal","plotMACD"];b.seriesTypes.column.prototype.translate.apply(a);q(a.points,function(b){q([b.signal,b.MACD],function(d,e){null!== | ||
d&&(b[c[e]]=a.yAxis.toPixels(d,!0))})})},destroy:function(){this.graph=null;this.graphmacd=this.graphmacd.destroy();this.graphsignal=this.graphsignal.destroy();n.prototype.destroy.apply(this,arguments)},drawPoints:b.seriesTypes.column.prototype.drawPoints,drawGraph:function(){for(var a=this,c=a.points,b=c.length,e=a.options,k={options:{gapSize:e.gapSize}},f=[[],[]],h;b--;)h=c[b],d(h.plotMACD)&&f[0].push({plotX:h.plotX,plotY:h.plotMACD,isNull:!d(h.plotMACD)}),d(h.plotSignal)&&f[1].push({plotX:h.plotX, | ||
plotY:h.plotSignal,isNull:!d(h.plotMACD)});q(["macd","signal"],function(c,b){a.points=f[b];a.options=p(e[c+"Line"].styles,k);a.graph=a["graph"+c];n.prototype.drawGraph.call(a);a["graph"+c]=a.graph});a.points=c;a.options=e},getValues:function(a,c){var b=0,d,k,f=[],h=[],g=[];d=e.prototype.getValues(a,{period:c.shortPeriod});k=e.prototype.getValues(a,{period:c.longPeriod});d=d.values;k=k.values;for(a=1;a<=d.length;a++)k[a-1]&&k[a-1][1]&&f.push([d[a+c.shortPeriod+1][0],0,null,d[a+c.shortPeriod+1][1]- | ||
k[a-1][1]]);for(a=0;a<f.length;a++)h.push(f[a][0]),g.push([0,null,f[a][3]]);c=e.prototype.getValues({xData:h,yData:g},{period:c.signalPeriod,index:2});c=c.values;for(a=0;a<f.length;a++)f[a][0]>=c[0][0]&&(f[a][2]=c[b][1],g[a]=[0,c[b][1],f[a][3]],null===f[a][3]?(f[a][1]=0,g[a][0]=0):(f[a][1]=f[a][3]-c[b][1],g[a][0]=f[a][3]-c[b][1]),b++);return{values:f,xData:h,yData:g}}})})(m)}); | ||
(function(n){"object"===typeof module&&module.exports?module.exports=n:n(Highcharts)})(function(n){(function(b){function n(f,b,c,k,a,p,e,d){f=0>e?c[k-1]:c[k-1][e];return[b[k-1],void 0===p?d:f*a+p*(1-a)]}var r=b.isArray;b=b.seriesType;b("ema","sma",{params:{index:0,period:14}},{getValues:function(f,b){var c=b.period,k=f.xData,a=(f=f.yData)?f.length:0,p=2/(c+1),e=0,d=0,t=[],q=[],g=[],h=-1,m=[],l;if(k.length<c)return!1;for(r(f[0])&&(h=b.index?b.index:0);e<c;)m.push([k[e],0>h?f[e]:f[e][h]]),d+=0>h?f[e]: | ||
f[e][h],e++;b=d/c;for(c=e;c<a;c++)l=n(m,k,f,c,p,l,h,b),t.push(l),q.push(l[0]),g.push(l[1]),l=l[1],m.push([k[c],0>h?f[c]:f[c][h]]);l=n(m,k,f,c,p,l,h);t.push(l);q.push(l[0]);g.push(l[1]);return{values:t,xData:q,yData:g}}})})(n);(function(b){var n=b.seriesType,r=b.each,f=b.merge,m=b.defined,c=b.seriesTypes.sma,k=b.seriesTypes.ema;n("macd","sma",{params:{shortPeriod:12,longPeriod:26,signalPeriod:9,period:26},signalLine:{styles:{lineWidth:1,lineColor:void 0}},macdLine:{styles:{lineWidth:1,lineColor:void 0}}, | ||
threshold:0,groupPadding:.1,pointPadding:.1,states:{hover:{halo:{size:0}}},tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e \x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eValue: {point.MACD}\x3cbr/\x3eSignal: {point.signal}\x3cbr/\x3eHistogram: {point.y}\x3cbr/\x3e'},dataGrouping:"averages",minPointLength:0},{nameComponents:["longPeriod","shortPeriod","signalPeriod"],pointArrayMap:["y","signal","MACD"],parallelArrays:["x","y","signal","MACD"],pointValKey:"y",markerAttribs:b.noop, | ||
getColumnMetrics:b.seriesTypes.column.prototype.getColumnMetrics,crispCol:b.seriesTypes.column.prototype.crispCol,init:function(){c.prototype.init.apply(this,arguments);this.options=f({signalLine:{styles:{lineColor:this.color}},macdLine:{styles:{color:this.color}}},this.options)},toYData:function(a){return[a.y,a.signal,a.MACD]},translate:function(){var a=this,p=["plotSignal","plotMACD"];b.seriesTypes.column.prototype.translate.apply(a);r(a.points,function(b){r([b.signal,b.MACD],function(d,e){null!== | ||
d&&(b[p[e]]=a.yAxis.toPixels(d,!0))})})},destroy:function(){this.graph=null;this.graphmacd=this.graphmacd.destroy();this.graphsignal=this.graphsignal.destroy();c.prototype.destroy.apply(this,arguments)},drawPoints:b.seriesTypes.column.prototype.drawPoints,drawGraph:function(){for(var a=this,b=a.points,e=b.length,d=a.options,k={options:{gapSize:d.gapSize}},q=[[],[]],g;e--;)g=b[e],m(g.plotMACD)&&q[0].push({plotX:g.plotX,plotY:g.plotMACD,isNull:!m(g.plotMACD)}),m(g.plotSignal)&&q[1].push({plotX:g.plotX, | ||
plotY:g.plotSignal,isNull:!m(g.plotMACD)});r(["macd","signal"],function(b,e){a.points=q[e];a.options=f(d[b+"Line"].styles,k);a.graph=a["graph"+b];c.prototype.drawGraph.call(a);a["graph"+b]=a.graph});a.points=b;a.options=d},getValues:function(a,b){var e=0,d=[],f=[],c=[],g,h;g=k.prototype.getValues(a,{period:b.shortPeriod});h=k.prototype.getValues(a,{period:b.longPeriod});g=g.values;h=h.values;for(a=1;a<=g.length;a++)m(h[a-1])&&m(h[a-1][1])&&d.push([g[a+b.shortPeriod+1][0],0,null,g[a+b.shortPeriod+ | ||
1][1]-h[a-1][1]]);for(a=0;a<d.length;a++)f.push(d[a][0]),c.push([0,null,d[a][3]]);b=k.prototype.getValues({xData:f,yData:c},{period:b.signalPeriod,index:2});b=b.values;for(a=0;a<d.length;a++)d[a][0]>=b[0][0]&&(d[a][2]=b[e][1],c[a]=[0,b[e][1],d[a][3]],null===d[a][3]?(d[a][1]=0,c[a][0]=0):(d[a][1]=d[a][3]-b[e][1],c[a][0]=d[a][3]-b[e][1]),e++);return{values:d,xData:f,yData:c}}})})(n)}); |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -19,3 +19,2 @@ * Indicator series type for Highstock | ||
(function(H) { | ||
/* eslint max-len: 0 */ | ||
@@ -33,3 +32,12 @@ var isArray = H.isArray, | ||
function populateAverage(points, xVal, yVal, i, EMApercent, calEMA, index, SMA) { | ||
function populateAverage( | ||
points, | ||
xVal, | ||
yVal, | ||
i, | ||
EMApercent, | ||
calEMA, | ||
index, | ||
SMA | ||
) { | ||
var x = xVal[i - 1], | ||
@@ -39,3 +47,5 @@ yValue = index < 0 ? yVal[i - 1] : yVal[i - 1][index], | ||
y = calEMA === 0 ? SMA : ((yValue * EMApercent) + (calEMA * (1 - EMApercent))); | ||
y = calEMA === undefined ? | ||
SMA : | ||
((yValue * EMApercent) + (calEMA * (1 - EMApercent))); | ||
@@ -52,3 +62,4 @@ return [x, y]; | ||
/** | ||
* Exponential moving average indicator (EMA). This series requires `linkedTo` option to be set. | ||
* Exponential moving average indicator (EMA). This series requires the | ||
* `linkedTo` option to be set. | ||
* | ||
@@ -74,3 +85,2 @@ * @extends {plotOptions.sma} | ||
EMApercent = (2 / (period + 1)), | ||
calEMA = 0, | ||
range = 0, | ||
@@ -84,4 +94,5 @@ sum = 0, | ||
SMA = 0, | ||
i, | ||
EMAPoint; | ||
calEMA, | ||
EMAPoint, | ||
i; | ||
@@ -110,3 +121,12 @@ // Check period, if bigger than points length, skip | ||
for (i = range; i < yValLen; i++) { | ||
EMAPoint = populateAverage(points, xVal, yVal, i, EMApercent, calEMA, index, SMA); | ||
EMAPoint = populateAverage( | ||
points, | ||
xVal, | ||
yVal, | ||
i, | ||
EMApercent, | ||
calEMA, | ||
index, | ||
SMA | ||
); | ||
EMA.push(EMAPoint); | ||
@@ -120,3 +140,11 @@ xData.push(EMAPoint[0]); | ||
EMAPoint = populateAverage(points, xVal, yVal, i, EMApercent, calEMA, index); | ||
EMAPoint = populateAverage( | ||
points, | ||
xVal, | ||
yVal, | ||
i, | ||
EMApercent, | ||
calEMA, | ||
index | ||
); | ||
EMA.push(EMAPoint); | ||
@@ -398,4 +426,2 @@ xData.push(EMAPoint[0]); | ||
var j = 0, | ||
shortEMA, | ||
longEMA, | ||
MACD = [], | ||
@@ -405,2 +431,4 @@ xMACD = [], | ||
signalLine = [], | ||
shortEMA, | ||
longEMA, | ||
i; | ||
@@ -424,3 +452,3 @@ | ||
for (i = 1; i <= shortEMA.length; i++) { | ||
if (longEMA[i - 1] && longEMA[i - 1][1]) { | ||
if (defined(longEMA[i - 1]) && defined(longEMA[i - 1][1])) { | ||
MACD.push([ | ||
@@ -427,0 +455,0 @@ shortEMA[i + params.shortPeriod + 1][0], |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Money Flow Index indicator for Highstock |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * Money Flow Index indicator for Highstock |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Indicator series type for Highstock |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * Indicator series type for Highstock |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Indicator series type for Highstock |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -19,3 +19,2 @@ * Indicator series type for Highstock | ||
(function(H) { | ||
/* eslint max-len: 0 */ | ||
@@ -47,4 +46,4 @@ | ||
/** | ||
* Pivot points indicator. This series requires `linkedTo` | ||
* option to be set and should be loaded after `stock/indicators/indicators.js` file. | ||
* Pivot points indicator. This series requires the `linkedTo` option to be | ||
* set and should be loaded after `stock/indicators/indicators.js` file. | ||
* | ||
@@ -65,4 +64,5 @@ * @extends {plotOptions.sma} | ||
/** | ||
* Algorithm used to calculate ressistance and support lines based on pivot points. | ||
* Implemented algorithms: `'standard'`, `'fibonacci'` and `'camarilla'` | ||
* Algorithm used to calculate ressistance and support lines based | ||
* on pivot points. Implemented algorithms: `'standard'`, | ||
* `'fibonacci'` and `'camarilla'` | ||
* | ||
@@ -184,4 +184,5 @@ * @type {String} | ||
// For every Ressitance/Support group we need to render labels | ||
// Add one more item, which will just store dataLabels from previous iteration | ||
// For every Ressitance/Support group we need to render labels. | ||
// Add one more item, which will just store dataLabels from | ||
// previous iteration | ||
each(pointMapping.concat([false]), function(position, k) { | ||
@@ -194,3 +195,4 @@ i = pointsLength; | ||
// Store S4 dataLabel too: | ||
point['dataLabel' + pointMapping[k - 1]] = point.dataLabel; | ||
point['dataLabel' + pointMapping[k - 1]] = | ||
point.dataLabel; | ||
} else { | ||
@@ -204,6 +206,10 @@ point.y = point[position]; | ||
if (k) { | ||
point['dataLabel' + pointMapping[k - 1]] = point.dataLabel; | ||
point['dataLabel' + pointMapping[k - 1]] = | ||
point.dataLabel; | ||
} | ||
point.dataLabel = currentLabel = currentLabel && currentLabel.element ? currentLabel : null; | ||
point.dataLabel = currentLabel = | ||
currentLabel && currentLabel.element ? | ||
currentLabel : | ||
null; | ||
} | ||
@@ -221,3 +227,3 @@ } | ||
placement = this[params.algorithm + 'Placement'], | ||
PP = [], // 0- from, 1- to, 2- R1, 3- R2, 4- pivot, 5- S1, 6- S2 etc. | ||
PP = [], // 0- from, 1- to, 2- R1, 3- R2, 4- pivot, 5- S1 etc. | ||
endTimestamp, | ||
@@ -265,3 +271,4 @@ xData = [], | ||
// So we use simple logic: | ||
// Get first point in last range, calculate visible average range and multiply by period | ||
// Get first point in last range, calculate visible average range | ||
// and multiply by period | ||
this.endPoint = slicedX[0] + | ||
@@ -351,4 +358,4 @@ ((endTimestamp - slicedX[0]) / slicedXLen) * period; | ||
/** | ||
* A pivot points indicator. If the [type](#series.pivotpoints.type) option is not | ||
* specified, it is inherited from [chart.type](#chart.type). | ||
* A pivot points indicator. If the [type](#series.pivotpoints.type) option is | ||
* not specified, it is inherited from [chart.type](#chart.type). | ||
* | ||
@@ -355,0 +362,0 @@ * For options that apply to multiple series, it is recommended to add |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Indicator series type for Highstock |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -19,3 +19,2 @@ * Indicator series type for Highstock | ||
(function(H) { | ||
/* eslint max-len: 0 */ | ||
@@ -30,4 +29,5 @@ | ||
/** | ||
* Price envelopes indicator based on [SMA](#plotOptions.sma) calculations. This series requires `linkedTo` | ||
* option to be set and should be loaded after `stock/indicators/indicators.js` file. | ||
* Price envelopes indicator based on [SMA](#plotOptions.sma) calculations. | ||
* This series requires the `linkedTo` option to be set and should be loaded | ||
* after the `stock/indicators/indicators.js` file. | ||
* | ||
@@ -46,27 +46,3 @@ * @extends {plotOptions.sma} | ||
tooltip: { | ||
/** | ||
* The HTML of the point's line in the tooltip. Variables are enclosed | ||
* by curly brackets. Available variables are point.x, point.y, series. | ||
* name and series.color and other properties on the same form. Furthermore, | ||
* point.y can be extended by the `tooltip.valuePrefix` and | ||
* `tooltip.valueSuffix` variables. This can also be overridden for | ||
* each series, which makes it a good hook for displaying units. | ||
* | ||
* In styled mode, the dot is colored by a class name rather | ||
* than the point color. | ||
* | ||
* @type {String} | ||
* @sample {highcharts} highcharts/tooltip/pointformat/ A different point format with value suffix | ||
* @sample {highmaps} maps/tooltip/format/ Format demo | ||
* @default | ||
* <span style="color:{point.color}">\u25CF</span> <b> {series.name}</b><br/> | ||
* Top: {point.top}<br/> | ||
* Middle: {point.middle}<br/> | ||
* Bottom: {point.bottom}<br/> | ||
*/ | ||
pointFormat: '<span style="color:{point.color}">\u25CF</span>' + | ||
'<b> {series.name}</b><br/>' + | ||
'Top: {point.top}<br/>' + | ||
'Middle: {point.middle}<br/>' + | ||
'Bottom: {point.bottom}<br/>' | ||
pointFormat: '<span style="color:{point.color}">\u25CF</span><b> {series.name}</b><br/>Top: {point.top}<br/>Middle: {point.middle}<br/>Bottom: {point.bottom}<br/>' | ||
}, | ||
@@ -111,4 +87,5 @@ params: { | ||
/** | ||
* Color of the line. | ||
* If not set, it's inherited from [plotOptions.priceenvelopes.color](#plotOptions.priceenvelopes.color). | ||
* Color of the line. If not set, it's inherited from | ||
* [plotOptions.priceenvelopes.color](#plotOptions. | ||
* priceenvelopes.color). | ||
* | ||
@@ -170,7 +147,11 @@ * @type {String} | ||
each(indicator.points, function(point) { | ||
each([point.top, point.middle, point.bottom], function(value, i) { | ||
if (value !== null) { | ||
point[translatedEnvelopes[i]] = indicator.yAxis.toPixels(value, true); | ||
each( | ||
[point.top, point.middle, point.bottom], | ||
function(value, i) { | ||
if (value !== null) { | ||
point[translatedEnvelopes[i]] = | ||
indicator.yAxis.toPixels(value, true); | ||
} | ||
} | ||
}); | ||
); | ||
}); | ||
@@ -213,3 +194,6 @@ }, | ||
indicator.points = deviations[i]; | ||
indicator.options = merge(middleLineOptions[lineName].styles, gappedExtend); | ||
indicator.options = merge( | ||
middleLineOptions[lineName].styles, | ||
gappedExtend | ||
); | ||
indicator.graph = indicator['graph' + lineName]; | ||
@@ -246,3 +230,7 @@ SMA.prototype.drawGraph.call(indicator); | ||
// Price envelopes requires close value | ||
if (xVal.length < period || !isArray(yVal[0]) || yVal[0].length !== 4) { | ||
if ( | ||
xVal.length < period || | ||
!isArray(yVal[0]) || | ||
yVal[0].length !== 4 | ||
) { | ||
return false; | ||
@@ -279,4 +267,4 @@ } | ||
/** | ||
* A price envelopes indicator. If the [type](#series.priceenvelopes.type) option is not | ||
* specified, it is inherited from [chart.type](#chart.type). | ||
* A price envelopes indicator. If the [type](#series.priceenvelopes.type) | ||
* option is not specified, it is inherited from [chart.type](#chart.type). | ||
* | ||
@@ -283,0 +271,0 @@ * For options that apply to multiple series, it is recommended to add |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Parabolic SAR Indicator for Highstock |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -20,3 +20,2 @@ * Parabolic SAR Indicator for Highstock | ||
/* eslint max-len: 0 */ | ||
@@ -197,7 +196,10 @@ | ||
yVal = series.yData, | ||
extremePoint = yVal[0][1], // Extreme point is the lowest low for falling and highest high for rising psar - and we are starting with falling | ||
// Extreme point is the lowest low for falling and highest high | ||
// for rising psar - and we are starting with falling | ||
extremePoint = yVal[0][1], | ||
accelerationFactor = params.initialAccelerationFactor, | ||
maxAccelerationFactor = params.maxAccelerationFactor, | ||
increment = params.increment, | ||
initialAccelerationFactor = params.initialAccelerationFactor, // Set initial acc factor (for every new trend!) | ||
// Set initial acc factor (for every new trend!) | ||
initialAccelerationFactor = params.initialAccelerationFactor, | ||
PSAR = yVal[0][2], | ||
@@ -227,3 +229,6 @@ decimals = params.decimals, | ||
accelerationFactor = params.initialAccelerationFactor; | ||
accelerationFactorMultiply = getAccelerationFactorMultiply(accelerationFactor, EPMinusPSAR); | ||
accelerationFactorMultiply = getAccelerationFactorMultiply( | ||
accelerationFactor, | ||
EPMinusPSAR | ||
); | ||
@@ -230,0 +235,0 @@ PSARArr.push([xVal[index], PSAR]); |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Indicator series type for Highstock |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * Indicator series type for Highstock |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Indicator series type for Highstock |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -19,3 +19,2 @@ * Indicator series type for Highstock | ||
(function(H) { | ||
/* eslint max-len: 0 */ | ||
@@ -32,4 +31,5 @@ | ||
/** | ||
* Relative strength index (RSI) technical indicator. This series requires `linkedTo` | ||
* option to be set and should be loaded after `stock/indicators/indicators.js` file. | ||
* Relative strength index (RSI) technical indicator. This series | ||
* requires the `linkedTo` option to be set and should be loaded after | ||
* the `stock/indicators/indicators.js` file. | ||
* | ||
@@ -124,10 +124,15 @@ * @extends {plotOptions.sma} | ||
); | ||
// If average-loss is equal zero, then by definition RSI is set to 100: | ||
// If average-loss is equal zero, then by definition RSI is set | ||
// to 100: | ||
if (avgLoss === 0) { | ||
RSIPoint = 100; | ||
// If average-gain is equal zero, then by definition RSI is set to 0: | ||
// If average-gain is equal zero, then by definition RSI is set | ||
// to 0: | ||
} else if (avgGain === 0) { | ||
RSIPoint = 0; | ||
} else { | ||
RSIPoint = toFixed(100 - (100 / (1 + (avgGain / avgLoss))), decimals); | ||
RSIPoint = toFixed( | ||
100 - (100 / (1 + (avgGain / avgLoss))), | ||
decimals | ||
); | ||
} | ||
@@ -134,0 +139,0 @@ |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Indicator series type for Highstock |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -19,3 +19,2 @@ * Indicator series type for Highstock | ||
(function(H) { | ||
/* eslint max-len: 0 */ | ||
@@ -44,4 +43,4 @@ | ||
/** | ||
* Stochastic oscillator. This series requires `linkedTo` | ||
* option to be set and should be loaded after `stock/indicators/indicators.js` file. | ||
* Stochastic oscillator. This series requires the `linkedTo` option to be | ||
* set and should be loaded after the `stock/indicators/indicators.js` file. | ||
* | ||
@@ -75,25 +74,3 @@ * @extends {plotOptions.sma} | ||
tooltip: { | ||
/** | ||
* The HTML of the point's line in the tooltip. Variables are enclosed | ||
* by curly brackets. Available variables are point.x, point.y, series. | ||
* name and series.color and other properties on the same form. Furthermore, | ||
* point.y can be extended by the `tooltip.valuePrefix` and | ||
* `tooltip.valueSuffix` variables. This can also be overridden for | ||
* each series, which makes it a good hook for displaying units. | ||
* | ||
* In styled mode, the dot is colored by a class name rather | ||
* than the point color. | ||
* | ||
* @type {String} | ||
* @sample {highcharts} highcharts/tooltip/pointformat/ A different point format with value suffix | ||
* @sample {highmaps} maps/tooltip/format/ Format demo | ||
* @default | ||
* <span style="color:{point.color}">\u25CF</span> <b> {series.name}</b><br/> | ||
* %K: {point.y}<br/> | ||
* %D: {point.smoothed}<br/> | ||
*/ | ||
pointFormat: '<span style="color:{point.color}">\u25CF</span>' + | ||
'<b> {series.name}</b><br/>' + | ||
'%K: {point.y}<br/>' + | ||
'%D: {point.smoothed}<br/>' | ||
pointFormat: '<span style="color:{point.color}">\u25CF</span><b> {series.name}</b><br/>%K: {point.y}<br/>%D: {point.smoothed}<br/>' | ||
}, | ||
@@ -123,4 +100,5 @@ /** | ||
/** | ||
* Color of the line. | ||
* If not set, it's inherited from [plotOptions.stochastic.color](#plotOptions.stochastic.color). | ||
* Color of the line. If not set, it's inherited from | ||
* [plotOptions.stochastic.color](#plotOptions.stochastic. | ||
* color). | ||
* | ||
@@ -165,3 +143,6 @@ * @type {String} | ||
if (point.smoothed !== null) { | ||
point.plotSmoothed = indicator.yAxis.toPixels(point.smoothed, true); | ||
point.plotSmoothed = indicator.yAxis.toPixels( | ||
point.smoothed, | ||
true | ||
); | ||
} | ||
@@ -196,3 +177,6 @@ }); | ||
indicator.points = smoothing; | ||
indicator.options = merge(mainLineOptions.smoothedLine.styles, gappedExtend); | ||
indicator.options = merge( | ||
mainLineOptions.smoothedLine.styles, | ||
gappedExtend | ||
); | ||
indicator.graph = indicator.graphSmoothed; | ||
@@ -228,3 +212,7 @@ SMA.prototype.drawGraph.call(indicator); | ||
// Stochastic requires close value | ||
if (xVal.length < periodK || !isArray(yVal[0]) || yVal[0].length !== 4) { | ||
if ( | ||
xVal.length < periodK || | ||
!isArray(yVal[0]) || | ||
yVal[0].length !== 4 | ||
) { | ||
return false; | ||
@@ -234,3 +222,4 @@ } | ||
// For a N-period, we start from N-1 point, to calculate Nth point | ||
// That is why we later need to comprehend slice() elements list with (+1) | ||
// That is why we later need to comprehend slice() elements list | ||
// with (+1) | ||
for (i = periodK - 1; i < yValLen; i++) { | ||
@@ -237,0 +226,0 @@ slicedY = yVal.slice(i - periodK + 1, i + 1); |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Indicator series type for Highstock |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -26,3 +26,2 @@ * Indicator series type for Highstock | ||
*/ | ||
/* eslint max-len: 0 */ | ||
@@ -95,4 +94,5 @@ // Utils | ||
/** | ||
* The id of volume series which is mandatory. | ||
* For example using OHLC data, volumeSeriesID='volume' means the indicator will be calculated using OHLC and volume values. | ||
* The id of volume series which is mandatory. For example using | ||
* OHLC data, volumeSeriesID='volume' means the indicator will be | ||
* calculated using OHLC and volume values. | ||
* | ||
@@ -246,3 +246,4 @@ * @type {String} | ||
// If base series is deleted, indicator series data is filled with an empty array | ||
// If base series is deleted, indicator series data is filled with | ||
// an empty array | ||
indicator.dataEventsToUnbind.push( | ||
@@ -254,3 +255,4 @@ addEvent(baseSeries, 'remove', function() { | ||
// If volume series is deleted, indicator series data is filled with an empty array | ||
// If volume series is deleted, indicator series data is filled with | ||
// an empty array | ||
if (volumeSeries) { | ||
@@ -273,9 +275,12 @@ indicator.dataEventsToUnbind.push( | ||
attr.translateX = series.yAxis.pos; | ||
series.group.animate(attr, H.extend(H.animObject(series.options.animation), { | ||
step: function(val, fx) { | ||
series.group.attr({ | ||
scaleX: Math.max(0.001, fx.pos) | ||
}); | ||
} | ||
})); | ||
series.group.animate( | ||
attr, | ||
H.extend(H.animObject(series.options.animation), { | ||
step: function(val, fx) { | ||
series.group.attr({ | ||
scaleX: Math.max(0.001, fx.pos) | ||
}); | ||
} | ||
}) | ||
); | ||
@@ -330,4 +335,8 @@ // Delete this function to allow it only once | ||
if (wholeVol) { | ||
posWidths.push(pointWidth / wholeVol * priceZone.positiveVolumeData); | ||
negWidths.push(pointWidth / wholeVol * priceZone.negativeVolumeData); | ||
posWidths.push( | ||
pointWidth / wholeVol * priceZone.positiveVolumeData | ||
); | ||
negWidths.push( | ||
pointWidth / wholeVol * priceZone.negativeVolumeData | ||
); | ||
} else { | ||
@@ -339,5 +348,11 @@ posWidths.push(0); | ||
point.color = pos ? volumeDivision.styles.positiveColor : volumeDivision.styles.negativeColor; | ||
point.shapeArgs.width = pos ? indicator.posWidths[i] : indicator.negWidths[i]; | ||
point.shapeArgs.x = pos ? point.shapeArgs.x : indicator.posWidths[i]; | ||
point.color = pos ? | ||
volumeDivision.styles.positiveColor : | ||
volumeDivision.styles.negativeColor; | ||
point.shapeArgs.width = pos ? | ||
indicator.posWidths[i] : | ||
indicator.negWidths[i]; | ||
point.shapeArgs.x = pos ? | ||
point.shapeArgs.x : | ||
indicator.posWidths[i]; | ||
} | ||
@@ -372,3 +387,5 @@ }, | ||
if (indicatorPoints.length) { | ||
pointPadding = options.pointPadding < 0.5 ? options.pointPadding : 0.1; | ||
pointPadding = options.pointPadding < 0.5 ? | ||
options.pointPadding : | ||
0.1; | ||
volumeDataArray = indicator.volumeDataArray; | ||
@@ -378,4 +395,6 @@ maxVolume = H.arrayMax(volumeDataArray); | ||
chartPlotTop = chart.plotTop; | ||
barHeight = abs(yAxis.toPixels(yAxisMin) - yAxis.toPixels(yAxisMin + indicator.rangeStep)); | ||
oldBarHeight = abs(yAxis.toPixels(yAxisMin) - yAxis.toPixels(yAxisMin + indicator.rangeStep)); | ||
barHeight = abs(yAxis.toPixels(yAxisMin) - | ||
yAxis.toPixels(yAxisMin + indicator.rangeStep)); | ||
oldBarHeight = abs(yAxis.toPixels(yAxisMin) - | ||
yAxis.toPixels(yAxisMin + indicator.rangeStep)); | ||
@@ -390,7 +409,21 @@ if (pointPadding) { | ||
barX = point.barX = point.plotX = 0; | ||
barY = point.plotY = yAxis.toPixels(priceZones[index].start) - chartPlotTop - (yAxis.reversed ? (barHeight - oldBarHeight) : barHeight) - yBarOffset; | ||
barWidth = correctFloat(primalBarWidth * priceZones[index].wholeVolumeData / maxVolume); | ||
barY = point.plotY = ( | ||
yAxis.toPixels(priceZones[index].start) - | ||
chartPlotTop - | ||
( | ||
yAxis.reversed ? | ||
(barHeight - oldBarHeight) : | ||
barHeight | ||
) - | ||
yBarOffset | ||
); | ||
barWidth = correctFloat( | ||
primalBarWidth * | ||
priceZones[index].wholeVolumeData / maxVolume | ||
); | ||
point.pointWidth = barWidth; | ||
point.shapeArgs = indicator.crispCol.apply(indicator, [barX, barY, barWidth, barHeight]); | ||
point.shapeArgs = indicator.crispCol.apply( | ||
indicator, [barX, barY, barWidth, barHeight] | ||
); | ||
@@ -403,3 +436,8 @@ point.volumeNeg = priceZones[index].negativeVolumeData; | ||
if (zoneLinesOptions.enabled) { | ||
indicator.drawZones(chart, yAxis, indicator.zoneStarts, zoneLinesOptions.styles); | ||
indicator.drawZones( | ||
chart, | ||
yAxis, | ||
indicator.zoneStarts, | ||
zoneLinesOptions.styles | ||
); | ||
} | ||
@@ -424,3 +462,4 @@ } | ||
return H.error( | ||
'Base series not found! In case it has been removed, add a new one.', | ||
'Base series not found! In case it has been removed, add ' + | ||
'a new one.', | ||
true | ||
@@ -452,4 +491,11 @@ ); | ||
// Price zones contains all the information about the zones (index, start, end, volumes, etc.) | ||
priceZones = indicator.priceZones = indicator.specifyZones(isOHLC, xValues, yValues, ranges, volumeSeries); | ||
// Price zones contains all the information about the zones (index, | ||
// start, end, volumes, etc.) | ||
priceZones = indicator.priceZones = indicator.specifyZones( | ||
isOHLC, | ||
xValues, | ||
yValues, | ||
ranges, | ||
volumeSeries | ||
); | ||
@@ -469,7 +515,17 @@ each(priceZones, function(zone, index) { | ||
// Specifing where each zone should start ans end | ||
specifyZones: function(isOHLC, xValues, yValues, ranges, volumeSeries) { | ||
specifyZones: function( | ||
isOHLC, | ||
xValues, | ||
yValues, | ||
ranges, | ||
volumeSeries | ||
) { | ||
var indicator = this, | ||
rangeExtremes = isOHLC ? arrayExtremesOHLC(yValues) : false, | ||
lowRange = rangeExtremes ? rangeExtremes.min : H.arrayMin(yValues), | ||
highRange = rangeExtremes ? rangeExtremes.max : H.arrayMax(yValues), | ||
lowRange = rangeExtremes ? | ||
rangeExtremes.min : | ||
H.arrayMin(yValues), | ||
highRange = rangeExtremes ? | ||
rangeExtremes.max : | ||
H.arrayMax(yValues), | ||
zoneStarts = indicator.zoneStarts = [], | ||
@@ -491,3 +547,4 @@ priceZones = [], | ||
rangeStep = indicator.rangeStep = correctFloat(highRange - lowRange) / ranges; | ||
rangeStep = indicator.rangeStep = | ||
correctFloat(highRange - lowRange) / ranges; | ||
zoneStarts.push(lowRange); | ||
@@ -512,6 +569,18 @@ | ||
return indicator.volumePerZone(isOHLC, priceZones, volumeSeries, xValues, yValues); | ||
return indicator.volumePerZone( | ||
isOHLC, | ||
priceZones, | ||
volumeSeries, | ||
xValues, | ||
yValues | ||
); | ||
}, | ||
// Calculating sum of volume values for a specific zone | ||
volumePerZone: function(isOHLC, priceZones, volumeSeries, xValues, yValues) { | ||
volumePerZone: function( | ||
isOHLC, | ||
priceZones, | ||
volumeSeries, | ||
xValues, | ||
yValues | ||
) { | ||
var indicator = this, | ||
@@ -531,3 +600,4 @@ volumeXData = volumeSeries.processedXData, | ||
if (abs(baseSeriesLength - volumeSeriesLength)) { | ||
// If the first point don't have volume, add 0 value at the beggining of the volume array | ||
// If the first point don't have volume, add 0 value at the | ||
// beggining of the volume array | ||
if (xValues[0] !== volumeXData[0]) { | ||
@@ -537,4 +607,8 @@ volumeYData.unshift(0); | ||
// If the last point don't have volume, add 0 value at the end of the volume array | ||
if (xValues[baseSeriesLength - 1] !== volumeXData[volumeSeriesLength - 1]) { | ||
// If the last point don't have volume, add 0 value at the end | ||
// of the volume array | ||
if ( | ||
xValues[baseSeriesLength - 1] !== | ||
volumeXData[volumeSeriesLength - 1] | ||
) { | ||
volumeYData.push(0); | ||
@@ -555,5 +629,8 @@ } | ||
value = isOHLC ? yValues[i][3] : yValues[i]; | ||
previousValue = i ? (isOHLC ? yValues[i - 1][3] : yValues[i - 1]) : value; | ||
previousValue = i ? | ||
(isOHLC ? yValues[i - 1][3] : yValues[i - 1]) : | ||
value; | ||
// Checks if this is the point with the lowest close value and if so, adds it calculations | ||
// Checks if this is the point with the lowest close value | ||
// and if so, adds it calculations | ||
if (value <= zone.start && zone.index === 0) { | ||
@@ -563,3 +640,4 @@ startFlag = true; | ||
// Checks if this is the point with the highest close value and if so, adds it calculations | ||
// Checks if this is the point with the highest close value | ||
// and if so, adds it calculations | ||
if (value >= zone.end && zone.index === lastZoneIndex) { | ||
@@ -569,3 +647,6 @@ endFlag = true; | ||
if ((value > zone.start || startFlag) && (value < zone.end || endFlag)) { | ||
if ( | ||
(value > zone.start || startFlag) && | ||
(value < zone.end || endFlag) | ||
) { | ||
zone.wholeVolumeData += volumeYData[i]; | ||
@@ -614,4 +695,4 @@ | ||
} else { | ||
zoneLinesSVG = indicator.zoneLinesSVG = renderer.path(zoneLinesPath) | ||
.attr({ | ||
zoneLinesSVG = indicator.zoneLinesSVG = | ||
renderer.path(zoneLinesPath).attr({ | ||
'stroke-width': zonesStyles.lineWidth, | ||
@@ -636,4 +717,4 @@ 'stroke': zonesStyles.color, | ||
/** | ||
* A `Volume By Price (VBP)` series. If the [type](#series.vbp.type) option is not | ||
* specified, it is inherited from [chart.type](#chart.type). | ||
* A `Volume By Price (VBP)` series. If the [type](#series.vbp.type) option is | ||
* not specified, it is inherited from [chart.type](#chart.type). | ||
* | ||
@@ -640,0 +721,0 @@ * For options that apply to multiple series, it is recommended to add |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Indicator series type for Highstock |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -26,3 +26,2 @@ * Indicator series type for Highstock | ||
*/ | ||
/* eslint max-len: 0 */ | ||
@@ -58,4 +57,5 @@ var isArray = H.isArray, | ||
/** | ||
* The id of volume series which is mandatory. | ||
* For example using OHLC data, volumeSeriesID='volume' means the indicator will be calculated using OHLC and volume values. | ||
* The id of volume series which is mandatory. For example using | ||
* OHLC data, volumeSeriesID='volume' means the indicator will be | ||
* calculated using OHLC and volume values. | ||
* | ||
@@ -70,3 +70,4 @@ * @type {String} | ||
/** | ||
* Returns the final values of the indicator ready to be presented on a chart | ||
* Returns the final values of the indicator ready to be presented on a | ||
* chart | ||
* @returns {Object} Object containing computed VWAP | ||
@@ -98,9 +99,18 @@ **/ | ||
return indicator.calculateVWAPValues(isOHLC, xValues, yValues, volumeSeries, period); | ||
return indicator.calculateVWAPValues( | ||
isOHLC, | ||
xValues, | ||
yValues, | ||
volumeSeries, | ||
period | ||
); | ||
}, | ||
/** | ||
* Main algorithm used to calculate Volume Weighted Average Price (VWAP) values | ||
* Main algorithm used to calculate Volume Weighted Average Price (VWAP) | ||
* values | ||
* @param {Boolean} isOHLC says if data has OHLC format | ||
* @param {Array} xValues array of timestamps | ||
* @param {Array} yValues array of yValues, can be an array of a four arrays (OHLC) or array of values (line) | ||
* @param {Array} yValues | ||
* array of yValues, can be an array of a four arrays (OHLC) or | ||
* array of values (line) | ||
* @param {Array} volumeSeries volume series | ||
@@ -110,3 +120,9 @@ * @param {Number} period number of points to be calculated | ||
**/ | ||
calculateVWAPValues: function(isOHLC, xValues, yValues, volumeSeries, period) { | ||
calculateVWAPValues: function( | ||
isOHLC, | ||
xValues, | ||
yValues, | ||
volumeSeries, | ||
period | ||
) { | ||
var volumeValues = volumeSeries.yData, | ||
@@ -134,8 +150,15 @@ volumeLength = volumeSeries.xData.length, | ||
for (i = 0, j = 0; i < commonLength; i++) { | ||
// Depending on whether series is OHLC or line type, price is average of the high, low and close or a simple value | ||
typicalPrice = isOHLC ? ((yValues[i][1] + yValues[i][2] + yValues[i][3]) / 3) : yValues[i]; | ||
// Depending on whether series is OHLC or line type, price is | ||
// average of the high, low and close or a simple value | ||
typicalPrice = isOHLC ? | ||
((yValues[i][1] + yValues[i][2] + yValues[i][3]) / 3) : | ||
yValues[i]; | ||
typicalPrice *= volumeValues[i]; | ||
cPrice = j ? (cumulativePrice[i - 1] + typicalPrice) : typicalPrice; | ||
cVolume = j ? (cumulativeVolume[i - 1] + volumeValues[i]) : volumeValues[i]; | ||
cPrice = j ? | ||
(cumulativePrice[i - 1] + typicalPrice) : | ||
typicalPrice; | ||
cVolume = j ? | ||
(cumulativeVolume[i - 1] + volumeValues[i]) : | ||
volumeValues[i]; | ||
@@ -165,4 +188,5 @@ cumulativePrice.push(cPrice); | ||
/** | ||
* A `Volume Weighted Average Price (VWAP)` series. If the [type](#series.vwap.type) option is not | ||
* specified, it is inherited from [chart.type](#chart.type). | ||
* A `Volume Weighted Average Price (VWAP)` series. If the | ||
* [type](#series.vwap.type) option is not specified, it is inherited from | ||
* [chart.type](#chart.type). | ||
* | ||
@@ -169,0 +193,0 @@ * For options that apply to multiple series, it is recommended to add |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Indicator series type for Highstock |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * Indicator series type for Highstock |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Indicator series type for Highstock |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * Indicator series type for Highstock |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Accessibility module | ||
@@ -10,48 +10,61 @@ | ||
*/ | ||
(function(m){"object"===typeof module&&module.exports?module.exports=m:m(Highcharts)})(function(m){(function(e){function m(c){return c.replace(/&/g,"\x26amp;").replace(/</g,"\x26lt;").replace(/>/g,"\x26gt;").replace(/"/g,"\x26quot;").replace(/'/g,"\x26#x27;").replace(/\//g,"\x26#x2F;")}function t(c){return"string"===typeof c?c.replace(/<\/?[^>]+(>|$)/g,""):c}function u(c){for(var b=c.childNodes.length;b--;)c.appendChild(c.childNodes[b])}var l=e.win.document,k=e.each,v=e.erase,g=e.addEvent,n=e.merge, | ||
w={position:"absolute",left:"-9999px",top:"auto",width:"1px",height:"1px",overflow:"hidden"},r={"default":["series","data point","data points"],line:["line","data point","data points"],spline:["line","data point","data points"],area:["line","data point","data points"],areaspline:["line","data point","data points"],pie:["pie","slice","slices"],column:["column series","column","columns"],bar:["bar series","bar","bars"],scatter:["scatter series","data point","data points"],boxplot:["boxplot series", | ||
"box","boxes"],arearange:["arearange series","data point","data points"],areasplinerange:["areasplinerange series","data point","data points"],bubble:["bubble series","bubble","bubbles"],columnrange:["columnrange series","column","columns"],errorbar:["errorbar series","errorbar","errorbars"],funnel:["funnel","data point","data points"],pyramid:["pyramid","data point","data points"],waterfall:["waterfall series","column","columns"],map:["map","area","areas"],mapline:["line","data point","data points"], | ||
mappoint:["point series","data point","data points"],mapbubble:["bubble series","bubble","bubbles"]},y={boxplot:" Box plot charts are typically used to display groups of statistical data. Each data point in the chart can have up to 5 values: minimum, lower quartile, median, upper quartile and maximum. ",arearange:" Arearange charts are line charts displaying a range between a lower and higher value for each point. ",areasplinerange:" These charts are line charts displaying a range between a lower and higher value for each point. ", | ||
bubble:" Bubble charts are scatter charts where each data point also has a size value. ",columnrange:" Columnrange charts are column charts displaying a range between a lower and higher value for each point. ",errorbar:" Errorbar series are used to display the variability of the data. ",funnel:" Funnel charts are used to display reduction of data in stages. ",pyramid:" Pyramid charts consist of a single pyramid with item heights corresponding to each point value. ",waterfall:" A waterfall chart is a column chart where each column contributes towards a total end value. "}; | ||
e.Series.prototype.commonKeys="name id category x value y".split(" ");e.Series.prototype.specialKeys="z open high q3 median q1 low close".split(" ");e.seriesTypes.pie&&(e.seriesTypes.pie.prototype.specialKeys=[]);e.setOptions({accessibility:{enabled:!0,pointDescriptionThreshold:!1}});e.wrap(e.Series.prototype,"render",function(c){c.apply(this,Array.prototype.slice.call(arguments,1));this.chart.options.accessibility.enabled&&this.setA11yDescription()});e.Series.prototype.setA11yDescription=function(){var c= | ||
this.chart.options.accessibility,b=this.points&&this.points.length&&this.points[0].graphic&&this.points[0].graphic.element,a=b&&b.parentNode||this.graph&&this.graph.element||this.group&&this.group.element;a&&(a.lastChild===b&&u(a),this.points&&(this.points.length<c.pointDescriptionThreshold||!1===c.pointDescriptionThreshold)&&k(this.points,function(a){a.graphic&&(a.graphic.element.setAttribute("role","img"),a.graphic.element.setAttribute("tabindex","-1"),a.graphic.element.setAttribute("aria-label", | ||
t(a.series.options.pointDescriptionFormatter&&a.series.options.pointDescriptionFormatter(a)||c.pointDescriptionFormatter&&c.pointDescriptionFormatter(a)||a.buildPointInfoString())))}),1<this.chart.series.length||c.describeSingleSeries)&&(a.setAttribute("role",this.options.exposeElementToA11y?"img":"region"),a.setAttribute("tabindex","-1"),a.setAttribute("aria-label",t(c.seriesDescriptionFormatter&&c.seriesDescriptionFormatter(this)||this.buildSeriesInfoString())))};e.Series.prototype.buildSeriesInfoString= | ||
function(){var c=r[this.type]||r["default"],b=this.description||this.options.description;return(this.name?this.name+", ":"")+(1===this.chart.types.length?c[0]:"series")+" "+(this.index+1)+" of "+this.chart.series.length+(1===this.chart.types.length?" with ":". "+c[0]+" with ")+(this.points.length+" "+(1===this.points.length?c[1]:c[2]))+(b?". "+b:"")+(1<this.chart.yAxis.length&&this.yAxis?". Y axis, "+this.yAxis.getDescription():"")+(1<this.chart.xAxis.length&&this.xAxis?". X axis, "+this.xAxis.getDescription(): | ||
"")};e.Point.prototype.buildPointInfoString=function(){var c=this,b=c.series,a=b.chart.options.accessibility,d="",f=b.xAxis&&b.xAxis.isDatetimeAxis,a=f&&b.chart.time.dateFormat.call(a.pointDateFormatter&&a.pointDateFormatter(c)||a.pointDateFormat||e.Tooltip.prototype.getXDateFormat.call({getDateFormat:e.Tooltip.prototype.getDateFormat,chart:b.chart},c,b.chart.options.tooltip,b.xAxis),c.x);e.find(b.specialKeys,function(a){return void 0!==c[a]})?(f&&(d=a),k(b.commonKeys.concat(b.specialKeys),function(a){void 0=== | ||
c[a]||f&&"x"===a||(d+=(d?". ":"")+a+", "+c[a])})):d=(this.name||a||this.category||this.id||"x, "+this.x)+", "+(void 0!==this.value?this.value:this.y);return this.index+1+". "+d+"."+(this.description?" "+this.description:"")};e.Axis.prototype.getDescription=function(){return this.userOptions&&this.userOptions.description||this.axisTitle&&this.axisTitle.textStr||this.options.id||this.categories&&"categories"||"values"};e.wrap(e.Series.prototype,"init",function(c){c.apply(this,Array.prototype.slice.call(arguments, | ||
1));var b=this.chart;b.options.accessibility.enabled&&(b.types=b.types||[],0>b.types.indexOf(this.type)&&b.types.push(this.type),g(this,"remove",function(){var a=this,d=!1;k(b.series,function(f){f!==a&&0>b.types.indexOf(a.type)&&(d=!0)});d||v(b.types,a.type)}))});e.Chart.prototype.getTypeDescription=function(){var c=this.types&&this.types[0],b=this.series[0]&&this.series[0].mapTitle;if(c){if("map"===c)return b?"Map of "+b:"Map of unspecified region.";if(1<this.types.length)return"Combination chart."; | ||
if(-1<["spline","area","areaspline"].indexOf(c))return"Line chart."}else return"Empty chart.";return c+" chart."+(y[c]||"")};e.Chart.prototype.getAxesDescription=function(){var c=this.xAxis.length,b=this.yAxis.length,a={},d;if(c)if(a.xAxis="The chart has "+c+(1<c?" X axes":" X axis")+" displaying ",2>c)a.xAxis+=this.xAxis[0].getDescription()+".";else{for(d=0;d<c-1;++d)a.xAxis+=(d?", ":"")+this.xAxis[d].getDescription();a.xAxis+=" and "+this.xAxis[d].getDescription()+"."}if(b)if(a.yAxis="The chart has "+ | ||
b+(1<b?" Y axes":" Y axis")+" displaying ",2>b)a.yAxis+=this.yAxis[0].getDescription()+".";else{for(d=0;d<b-1;++d)a.yAxis+=(d?", ":"")+this.yAxis[d].getDescription();a.yAxis+=" and "+this.yAxis[d].getDescription()+"."}return a};e.Chart.prototype.addAccessibleContextMenuAttribs=function(){var c=this.exportDivElements;c&&(k(c,function(b){"DIV"!==b.tagName||b.children&&b.children.length||(b.setAttribute("role","menuitem"),b.setAttribute("tabindex",-1))}),c[0].parentNode.setAttribute("role","menu"),c[0].parentNode.setAttribute("aria-label", | ||
"Chart export"))};e.Chart.prototype.addScreenReaderRegion=function(c,b){var a=this,d=a.series,f=a.options,e=f.accessibility,p=a.screenReaderRegion=l.createElement("div"),h=l.createElement("h4"),x=l.createElement("a"),k=l.createElement("h4"),q=a.types||[],q=(1===q.length&&"pie"===q[0]||"map"===q[0])&&{}||a.getAxesDescription(),g=d[0]&&r[d[0].type]||r["default"];p.setAttribute("id",c);p.setAttribute("role","region");p.setAttribute("aria-label","Chart screen reader information.");p.innerHTML=e.screenReaderSectionFormatter&& | ||
e.screenReaderSectionFormatter(a)||"\x3cdiv\x3eUse regions/landmarks to skip ahead to chart"+(1<d.length?" and navigate between data series":"")+".\x3c/div\x3e\x3ch3\x3e"+(f.title.text?m(f.title.text):"Chart")+(f.subtitle&&f.subtitle.text?". "+m(f.subtitle.text):"")+"\x3c/h3\x3e\x3ch4\x3eLong description.\x3c/h4\x3e\x3cdiv\x3e"+(f.chart.description||"No description available.")+"\x3c/div\x3e\x3ch4\x3eStructure.\x3c/h4\x3e\x3cdiv\x3eChart type: "+(f.chart.typeDescription||a.getTypeDescription())+"\x3c/div\x3e"+ | ||
(1===d.length?"\x3cdiv\x3e"+g[0]+" with "+d[0].points.length+" "+(1===d[0].points.length?g[1]:g[2])+".\x3c/div\x3e":"")+(q.xAxis?"\x3cdiv\x3e"+q.xAxis+"\x3c/div\x3e":"")+(q.yAxis?"\x3cdiv\x3e"+q.yAxis+"\x3c/div\x3e":"");a.getCSV&&(x.innerHTML="View as data table.",x.href="#"+b,x.setAttribute("tabindex","-1"),x.onclick=e.onTableAnchorClick||function(){a.viewData();l.getElementById(b).focus()},h.appendChild(x),p.appendChild(h));k.innerHTML="Chart graphic.";a.renderTo.insertBefore(k,a.renderTo.firstChild); | ||
a.renderTo.insertBefore(p,a.renderTo.firstChild);n(!0,k.style,w);n(!0,p.style,w)};e.Chart.prototype.callbacks.push(function(c){var b=c.options;if(b.accessibility.enabled){var a=l.createElementNS("http://www.w3.org/2000/svg","title"),d=l.createElementNS("http://www.w3.org/2000/svg","g"),f=c.container.getElementsByTagName("desc")[0],z=c.container.getElementsByTagName("text"),p="highcharts-title-"+c.index,h="highcharts-data-table-"+c.index,g="highcharts-information-region-"+c.index,b=b.title.text||"Chart"; | ||
a.textContent=m(b);a.id=p;f.parentNode.insertBefore(a,f);c.renderTo.setAttribute("role","region");c.renderTo.setAttribute("aria-label",t("Interactive chart. "+b+". Use up and down arrows to navigate with most screen readers."));if(c.exportSVGElements&&c.exportSVGElements[0]&&c.exportSVGElements[0].element){var n=c.exportSVGElements[0].element.onclick,a=c.exportSVGElements[0].element.parentNode;c.exportSVGElements[0].element.onclick=function(){n.apply(this,Array.prototype.slice.call(arguments));c.addAccessibleContextMenuAttribs(); | ||
c.highlightExportItem(0)};c.exportSVGElements[0].element.setAttribute("role","button");c.exportSVGElements[0].element.setAttribute("aria-label","View export menu");d.appendChild(c.exportSVGElements[0].element);d.setAttribute("role","region");d.setAttribute("aria-label","Chart export menu");a.appendChild(d)}c.rangeSelector&&k(["minInput","maxInput"],function(a,b){c.rangeSelector[a]&&(c.rangeSelector[a].setAttribute("tabindex","-1"),c.rangeSelector[a].setAttribute("role","textbox"),c.rangeSelector[a].setAttribute("aria-label", | ||
"Select "+(b?"end":"start")+" date."))});k(z,function(a){a.setAttribute("aria-hidden","true")});c.addScreenReaderRegion(g,h);e.wrap(c,"getTable",function(a){return a.apply(this,Array.prototype.slice.call(arguments,1)).replace("\x3ctable\x3e",'\x3ctable id\x3d"'+h+'" summary\x3d"Table representation of chart"\x3e')})}})})(m);(function(e){function m(b){return"string"===typeof b?b.replace(/<\/?[^>]+(>|$)/g,""):b}function t(b,a){this.chart=b;this.id=a.id;this.keyCodeMap=a.keyCodeMap;this.validate=a.validate; | ||
this.init=a.init;this.terminate=a.terminate}function u(b){var a;b&&b.onclick&&v.createEvent&&(a=v.createEvent("Events"),a.initEvent("click",!0,!1),b.onclick(a))}function l(b){var a=b.series.chart.options.accessibility;return b.isNull&&a.keyboardNavigation.skipNullPoints||b.series.options.skipKeyboardNavigation||!b.series.visible||!1===b.visible||a.pointDescriptionThreshold&&a.pointDescriptionThreshold<=b.series.points.length}var k=e.win,v=k.document,g=e.each,n=e.addEvent,w=e.fireEvent,r=e.merge,y= | ||
e.pick,c;e.extend(e.SVGElement.prototype,{addFocusBorder:function(b,a){this.focusBorder&&this.removeFocusBorder();var d=this.getBBox();b=y(b,3);this.focusBorder=this.renderer.rect(d.x-b,d.y-b,d.width+2*b,d.height+2*b,a&&a.borderRadius).addClass("highcharts-focus-border").attr({zIndex:99}).add(this.parentGroup)},removeFocusBorder:function(){this.focusBorder&&(this.focusBorder.destroy(),delete this.focusBorder)}});e.Series.prototype.keyboardMoveVertical=!0;g(["column","pie"],function(b){e.seriesTypes[b]&& | ||
(e.seriesTypes[b].prototype.keyboardMoveVertical=!1)});e.setOptions({accessibility:{keyboardNavigation:{enabled:!0,focusBorder:{enabled:!0,hideBrowserFocusOutline:!0,style:{color:"#335cad",lineWidth:2,borderRadius:3},margin:2},skipNullPoints:!0}}});t.prototype={run:function(b){var a=this,d=b.which||b.keyCode,f=!1,c=!1;g(this.keyCodeMap,function(e){-1<e[0].indexOf(d)&&(f=!0,c=!1===e[1].call(a,d,b)?!1:!0)});f||9!==d||(c=this.move(b.shiftKey?-1:1));return c},move:function(b){var a=this.chart;this.terminate&& | ||
this.terminate(b);a.keyboardNavigationModuleIndex+=b;var d=a.keyboardNavigationModules[a.keyboardNavigationModuleIndex];a.focusElement&&a.focusElement.removeFocusBorder();if(d){if(d.validate&&!d.validate())return this.move(b);if(d.init)return d.init(b),!0}a.keyboardNavigationModuleIndex=0;0<b?(this.chart.exiting=!0,this.chart.tabExitAnchor.focus()):this.chart.renderTo.focus();return!1}};e.Axis.prototype.panStep=function(b,a){var d=a||3;a=this.getExtremes();var f=(a.max-a.min)/d*b,d=a.max+f,f=a.min+ | ||
f,c=d-f;0>b&&f<a.dataMin?(f=a.dataMin,d=f+c):0<b&&d>a.dataMax&&(d=a.dataMax,f=d-c);this.setExtremes(f,d)};e.Chart.prototype.setFocusToElement=function(b,a){var d=this.options.accessibility.keyboardNavigation.focusBorder;a=a||b;a.element&&a.element.focus&&(a.element.focus(),d.hideBrowserFocusOutline&&a.css({outline:"none"}));d.enabled&&b!==this.focusElement&&(this.focusElement&&this.focusElement.removeFocusBorder(),b.addFocusBorder(d.margin,{stroke:d.style.color,strokeWidth:d.style.lineWidth,borderRadius:d.style.borderRadius}), | ||
this.focusElement=b)};e.Point.prototype.highlight=function(){var b=this.series.chart;if(this.isNull)b.tooltip&&b.tooltip.hide(0);else this.onMouseOver();this.graphic&&b.setFocusToElement(this.graphic);b.highlightedPoint=this;return this};e.Chart.prototype.highlightAdjacentPoint=function(b){var a=this.series,d=this.highlightedPoint,f=d&&d.index||0,c=d&&d.series.points,e=this.series&&this.series[this.series.length-1],e=e&&e.points&&e.points[e.points.length-1];if(!a[0]||!a[0].points)return!1;if(d){if(c[f]!== | ||
d)for(e=0;e<c.length;++e)if(c[e]===d){f=e;break}a=a[d.series.index+(b?1:-1)];f=c[f+(b?1:-1)]||a&&a.points[b?0:a.points.length-1];if(!f)return!1}else f=b?a[0].points[0]:e;return l(f)?(this.highlightedPoint=f,this.highlightAdjacentPoint(b)):f.highlight()};e.Series.prototype.highlightFirstValidPoint=function(){var b=this.chart.highlightedPoint,a=(b&&b.series)===this?b.index:0;if(b=this.points){for(var d=a,f=b.length;d<f;++d)if(!l(b[d]))return b[d].highlight();for(;0<=a;--a)if(!l(b[a]))return b[a].highlight()}return!1}; | ||
e.Chart.prototype.highlightAdjacentSeries=function(b){var a,d,f=this.highlightedPoint,c=(a=this.series&&this.series[this.series.length-1])&&a.points&&a.points[a.points.length-1];if(!this.highlightedPoint)return a=b?this.series&&this.series[0]:a,(d=b?a&&a.points&&a.points[0]:c)?d.highlight():!1;a=this.series[f.series.index+(b?-1:1)];if(!a)return!1;var c=Infinity,e,h=a.points.length;if(void 0===f.plotX||void 0===f.plotY)d=void 0;else{for(;h--;)e=a.points[h],void 0!==e.plotX&&void 0!==e.plotY&&(e=(f.plotX- | ||
e.plotX)*(f.plotX-e.plotX)*4+(f.plotY-e.plotY)*(f.plotY-e.plotY)*1,e<c&&(c=e,d=h));d=void 0!==d&&a.points[d]}if(!d)return!1;if(!a.visible)return d.highlight(),b=this.highlightAdjacentSeries(b),b?b:(f.highlight(),!1);d.highlight();return d.series.highlightFirstValidPoint()};e.Chart.prototype.highlightAdjacentPointVertical=function(b){var a=this.highlightedPoint,d=Infinity,c;if(void 0===a.plotX||void 0===a.plotY)return!1;g(this.series,function(f){g(f.points,function(e){if(void 0!==e.plotY&&void 0!== | ||
e.plotX&&e!==a){var h=e.plotY-a.plotY,g=Math.abs(e.plotX-a.plotX),g=Math.abs(h)*Math.abs(h)+g*g*4;f.yAxis.reversed&&(h*=-1);!(0>h&&b||0<h&&!b||5>g||l(e))&&g<d&&(d=g,c=e)}})});return c?c.highlight():!1};e.Chart.prototype.showExportMenu=function(){this.exportSVGElements&&this.exportSVGElements[0]&&(this.exportSVGElements[0].element.onclick(),this.highlightExportItem(0))};e.Chart.prototype.hideExportMenu=function(){var b=this.exportDivElements;if(b){g(b,function(a){w(a,"mouseleave")});if(b[this.highlightedExportItem]&& | ||
b[this.highlightedExportItem].onmouseout)b[this.highlightedExportItem].onmouseout();this.highlightedExportItem=0;c&&this.renderTo.focus()}};e.Chart.prototype.highlightExportItem=function(b){var a=this.exportDivElements&&this.exportDivElements[b],d=this.exportDivElements&&this.exportDivElements[this.highlightedExportItem];if(a&&"DIV"===a.tagName&&(!a.children||!a.children.length)){a.focus&&c&&a.focus();if(d&&d.onmouseout)d.onmouseout();if(a.onmouseover)a.onmouseover();this.highlightedExportItem=b; | ||
return!0}};e.Chart.prototype.highlightLastExportItem=function(){var b;if(this.exportDivElements)for(b=this.exportDivElements.length;b--&&!this.highlightExportItem(b););};e.Chart.prototype.highlightRangeSelectorButton=function(b){var a=this.rangeSelector.buttons;a[this.highlightedRangeSelectorItemIx]&&a[this.highlightedRangeSelectorItemIx].setState(this.oldRangeSelectorItemState||0);this.highlightedRangeSelectorItemIx=b;return a[b]?(this.setFocusToElement(a[b].box,a[b]),this.oldRangeSelectorItemState= | ||
a[b].state,a[b].setState(2),!0):!1};e.Chart.prototype.highlightLegendItem=function(b){var a=this.legend.allItems,d=this.highlightedLegendItemIx;return a[b]?(a[d]&&w(a[d].legendGroup.element,"mouseout"),void 0!==a[b].pageIx&&a[b].pageIx+1!==this.legend.currentPage&&this.legend.scroll(1+a[b].pageIx-this.legend.currentPage),this.highlightedLegendItemIx=b,this.setFocusToElement(a[b].legendItem,a[b].legendGroup),w(a[b].legendGroup.element,"mouseover"),!0):!1};e.Chart.prototype.addKeyboardNavigationModules= | ||
function(){function b(b,c,e){return new t(a,r({keyCodeMap:c},{id:b},e))}var a=this;a.keyboardNavigationModules=[b("entry",[]),b("points",[[[37,39],function(b){b=39===b;return a.highlightAdjacentPoint(b)?!0:this.init(b?1:-1)}],[[38,40],function(b){b=38!==b;var d=a.options.accessibility.keyboardNavigation;if(d.mode&&"serialize"===d.mode)return a.highlightAdjacentPoint(b)?!0:this.init(b?1:-1);a[a.highlightedPoint&&a.highlightedPoint.series.keyboardMoveVertical?"highlightAdjacentPointVertical":"highlightAdjacentSeries"](b); | ||
return!0}],[[13,32],function(){a.highlightedPoint&&a.highlightedPoint.firePointEvent("click")}]],{init:function(b){var d=a.series.length,c=0<b?0:d;if(0<b)for(delete a.highlightedPoint;c<d;){if(b=a.series[c].highlightFirstValidPoint())return b;++c}else for(;c--;)if(a.highlightedPoint=a.series[c].points[a.series[c].points.length-1],b=a.series[c].highlightFirstValidPoint())return b},terminate:function(){a.tooltip&&a.tooltip.hide(0);delete a.highlightedPoint}}),b("exporting",[[[37,38],function(){for(var b= | ||
a.highlightedExportItem||0,c=!0;b--;)if(a.highlightExportItem(b)){c=!1;break}if(c)return a.highlightLastExportItem(),!0}],[[39,40],function(){for(var b=!0,c=(a.highlightedExportItem||0)+1;c<a.exportDivElements.length;++c)if(a.highlightExportItem(c)){b=!1;break}if(b)return a.highlightExportItem(0),!0}],[[13,32],function(){u(a.exportDivElements[a.highlightedExportItem])}]],{validate:function(){return a.exportChart&&!(a.options.exporting&&!1===a.options.exporting.enabled)},init:function(b){a.highlightedPoint= | ||
null;a.showExportMenu();0>b&&a.highlightLastExportItem()},terminate:function(){a.hideExportMenu()}}),b("mapZoom",[[[38,40,37,39],function(b){a[38===b||40===b?"yAxis":"xAxis"][0].panStep(39>b?-1:1)}],[[9],function(b,c){a.mapNavButtons[a.focusedMapNavButtonIx].setState(0);if(c.shiftKey&&!a.focusedMapNavButtonIx||!c.shiftKey&&a.focusedMapNavButtonIx)return a.mapZoom(),this.move(c.shiftKey?-1:1);a.focusedMapNavButtonIx+=c.shiftKey?-1:1;b=a.mapNavButtons[a.focusedMapNavButtonIx];a.setFocusToElement(b.box, | ||
b);b.setState(2)}],[[13,32],function(){u(a.mapNavButtons[a.focusedMapNavButtonIx].element)}]],{validate:function(){return a.mapZoom&&a.mapNavButtons&&2===a.mapNavButtons.length},init:function(b){var d=a.mapNavButtons[0],c=a.mapNavButtons[1],d=0<b?d:c;g(a.mapNavButtons,function(a,b){a.element.setAttribute("tabindex",-1);a.element.setAttribute("role","button");a.element.setAttribute("aria-label","Zoom "+(b?"out ":"")+"chart")});a.setFocusToElement(d.box,d);d.setState(2);a.focusedMapNavButtonIx=0<b? | ||
0:1}}),b("rangeSelector",[[[37,39,38,40],function(b){b=37===b||38===b?-1:1;if(!a.highlightRangeSelectorButton(a.highlightedRangeSelectorItemIx+b))return this.move(b)}],[[13,32],function(){3!==a.oldRangeSelectorItemState&&u(a.rangeSelector.buttons[a.highlightedRangeSelectorItemIx].element)}]],{validate:function(){return a.rangeSelector&&a.rangeSelector.buttons&&a.rangeSelector.buttons.length},init:function(b){g(a.rangeSelector.buttons,function(a){a.element.setAttribute("tabindex","-1");a.element.setAttribute("role", | ||
"button");a.element.setAttribute("aria-label","Select range "+(a.text&&a.text.textStr))});a.highlightRangeSelectorButton(0<b?0:a.rangeSelector.buttons.length-1)}}),b("rangeSelectorInput",[[[9,38,40],function(b,c){b=9===b&&c.shiftKey||38===b?-1:1;c=a.highlightedInputRangeIx+=b;if(1<c||0>c)return this.move(b);a.rangeSelector[c?"maxInput":"minInput"].focus()}]],{validate:function(){return a.rangeSelector&&a.rangeSelector.inputGroup&&"hidden"!==a.rangeSelector.inputGroup.element.getAttribute("visibility")&& | ||
!1!==a.options.rangeSelector.inputEnabled&&a.rangeSelector.minInput&&a.rangeSelector.maxInput},init:function(b){a.highlightedInputRangeIx=0<b?0:1;a.rangeSelector[a.highlightedInputRangeIx?"maxInput":"minInput"].focus()}}),b("legend",[[[37,39,38,40],function(b){b=37===b||38===b?-1:1;a.highlightLegendItem(a.highlightedLegendItemIx+b)||this.init(b)}],[[13,32],function(){u(a.legend.allItems[a.highlightedLegendItemIx].legendItem.element.parentNode)}]],{validate:function(){return a.legend&&a.legend.allItems&& | ||
a.legend.display&&!(a.colorAxis&&a.colorAxis.length)&&!1!==(a.options.legend&&a.options.legend.keyboardNavigation&&a.options.legend.keyboardNavigation.enabled)},init:function(b){g(a.legend.allItems,function(a){a.legendGroup.element.setAttribute("tabindex","-1");a.legendGroup.element.setAttribute("role","button");a.legendGroup.element.setAttribute("aria-label",m("Toggle visibility of series "+a.name))});a.highlightLegendItem(0<b?0:a.legend.allItems.length-1)}})]};e.Chart.prototype.addExitAnchor=function(){var b= | ||
this;b.tabExitAnchor=v.createElement("div");b.tabExitAnchor.setAttribute("tabindex","0");r(!0,b.tabExitAnchor.style,{position:"absolute",left:"-9999px",top:"auto",width:"1px",height:"1px",overflow:"hidden"});b.renderTo.appendChild(b.tabExitAnchor);return n(b.tabExitAnchor,"focus",function(a){a=a||k.event;b.exiting?b.exiting=!1:(b.renderTo.focus(),a.preventDefault(),b.keyboardNavigationModuleIndex=b.keyboardNavigationModules.length-1,a=b.keyboardNavigationModules[b.keyboardNavigationModuleIndex],a.validate&& | ||
!a.validate()?a.move(-1):a.init(-1))})};e.Chart.prototype.resetKeyboardNavigation=function(){var b=this.keyboardNavigationModules&&this.keyboardNavigationModules[this.keyboardNavigationModuleIndex||0];b&&b.terminate&&b.terminate();this.focusElement&&this.focusElement.removeFocusBorder();this.keyboardNavigationModuleIndex=0;this.keyboardReset=!0};e.wrap(e.Series.prototype,"destroy",function(b){var a=this.chart;a.highlightedPoint&&a.highlightedPoint.series===this&&(delete a.highlightedPoint,a.focusElement&& | ||
a.focusElement.removeFocusBorder());b.apply(this,Array.prototype.slice.call(arguments,1))});e.Chart.prototype.callbacks.push(function(b){var a=b.options.accessibility;a.enabled&&a.keyboardNavigation.enabled&&(c=!!b.renderTo.getElementsByTagName("g")[0].focus,b.addKeyboardNavigationModules(),b.keyboardNavigationModuleIndex=0,b.container.hasAttribute&&!b.container.hasAttribute("tabIndex")&&b.container.setAttribute("tabindex","0"),b.tabExitAnchor||(b.unbindExitAnchorFocus=b.addExitAnchor()),b.unbindKeydownHandler= | ||
n(b.renderTo,"keydown",function(a){a=a||k.event;var c=b.keyboardNavigationModules[b.keyboardNavigationModuleIndex];b.keyboardReset=!1;c&&c.run(a)&&a.preventDefault()}),b.unbindBlurHandler=n(v,"mouseup",function(){b.keyboardReset||b.pointer&&b.pointer.chartPosition||b.resetKeyboardNavigation()}),n(b,"destroy",function(){b.resetKeyboardNavigation();b.unbindExitAnchorFocus&&b.tabExitAnchor&&b.unbindExitAnchorFocus();b.unbindKeydownHandler&&b.renderTo&&b.unbindKeydownHandler();b.unbindBlurHandler&&b.unbindBlurHandler()}))})})(m)}); | ||
(function(v){"object"===typeof module&&module.exports?module.exports=v:v(Highcharts)})(function(v){(function(c){function u(c,f){var k=c.indexOf("#each("),h=c.indexOf("#plural("),g=c.indexOf("["),n=c.indexOf("]");if(-1<k){var g=c.slice(k).indexOf(")")+k,l=c.substring(0,k),h=c.substring(g+1),g=c.substring(k+6,g).split(","),k=Number(g[1]);c="";if(f=f[g[0]])for(k=isNaN(k)?f.length:k,k=0>k?f.length+k:Math.min(k,f.length),g=0;g<k;++g)c+=l+f[g]+h;return c.length?c:""}if(-1<h){l=c.slice(h).indexOf(")")+h; | ||
c=c.substring(h+8,l).split(",");switch(Number(f[c[0]])){case 0:c=r(c[4],c[1]);break;case 1:c=r(c[2],c[1]);break;case 2:c=r(c[3],c[1]);break;default:c=c[1]}c?(f=c,f=f.trim&&f.trim()||f.replace(/^\s+|\s+$/g,"")):f="";return f}return-1<g?(h=c.substring(0,g),c=Number(c.substring(g+1,n)),f=f[h],!isNaN(c)&&f&&(0>c?(l=f[f.length+c],void 0===l&&(l=f[0])):(l=f[c],void 0===l&&(l=f[f.length-1]))),void 0!==l?l:""):"{"+c+"}"}var t=c.each,r=c.pick;c.i18nFormat=function(n,f,k){var h=function(d,c){d=d.slice(c||0); | ||
var a=d.indexOf("{"),b=d.indexOf("}");if(-1<a&&b>a)return{statement:d.substring(a+1,b),begin:c+a+1,end:c+b}},g=[],q,l;l=0;do q=h(n,l),l=n.substring(l,q&&q.begin-1),l.length&&g.push({value:l,type:"constant"}),q&&g.push({value:q.statement,type:"statement"}),l=q&&q.end+1;while(q);t(g,function(d){"statement"===d.type&&(d.value=u(d.value,f))});return c.format(c.reduce(g,function(d,c){return d+c.value},""),f,k)};c.Chart.prototype.langFormat=function(n,f,k){n=n.split(".");for(var h=this.options.lang,g=0;g< | ||
n.length;++g)h=h&&h[n[g]];return"string"===typeof h&&c.i18nFormat(h,f,k)};c.setOptions({lang:{accessibility:{screenReaderRegionLabel:"Chart screen reader information.",navigationHint:"Use regions/landmarks to skip ahead to chart {#plural(numSeries, and navigate between data series,)}",defaultChartTitle:"Chart",longDescriptionHeading:"Long description.",noDescription:"No description available.",structureHeading:"Structure.",viewAsDataTable:"View as data table.",chartHeading:"Chart graphic.",chartContainerLabel:"Interactive chart. {title}. Use up and down arrows to navigate with most screen readers.", | ||
rangeSelectorMinInput:"Select start date.",rangeSelectorMaxInput:"Select end date.",tableSummary:"Table representation of chart.",mapZoomIn:"Zoom chart",mapZoomOut:"Zoom out chart",rangeSelectorButton:"Select range {buttonText}",legendItem:"Toggle visibility of series {itemName}",seriesTypeDescriptions:{boxplot:"Box plot charts are typically used to display groups of statistical data. Each data point in the chart can have up to 5 values: minimum, lower quartile, median, upper quartile, and maximum.", | ||
arearange:"Arearange charts are line charts displaying a range between a lower and higher value for each point.",areasplinerange:"These charts are line charts displaying a range between a lower and higher value for each point.",bubble:"Bubble charts are scatter charts where each data point also has a size value.",columnrange:"Columnrange charts are column charts displaying a range between a lower and higher value for each point.",errorbar:"Errorbar series are used to display the variability of the data.", | ||
funnel:"Funnel charts are used to display reduction of data in stages.",pyramid:"Pyramid charts consist of a single pyramid with item heights corresponding to each point value.",waterfall:"A waterfall chart is a column chart where each column contributes towards a total end value."},chartTypes:{emptyChart:"Empty chart",mapTypeDescription:"Map of {mapTitle} with {numSeries} data series.",unknownMap:"Map of unspecified region with {numSeries} data series.",combinationChart:"Combination chart with {numSeries} data series.", | ||
defaultSingle:"Chart with {numPoints} data {#plural(numPoints, points, point)}.",defaultMultiple:"Chart with {numSeries} data series.",splineSingle:"Line chart with {numPoints} data {#plural(numPoints, points, point)}.",splineMultiple:"Line chart with {numSeries} lines.",lineSingle:"Line chart with {numPoints} data {#plural(numPoints, points, point)}.",lineMultiple:"Line chart with {numSeries} lines.",columnSingle:"Bar chart with {numPoints} {#plural(numPoints, bars, bar)}.",columnMultiple:"Bar chart with {numSeries} data series.", | ||
barSingle:"Bar chart with {numPoints} {#plural(numPoints, bars, bar)}.",barMultiple:"Bar chart with {numSeries} data series.",pieSingle:"Pie chart with {numPoints} {#plural(numPoints, slices, slice)}.",pieMultiple:"Pie chart with {numSeries} pies.",scatterSingle:"Scatter chart with {numPoints} {#plural(numPoints, points, point)}.",scatterMultiple:"Scatter chart with {numSeries} data series.",boxplotSingle:"Boxplot with {numPoints} {#plural(numPoints, boxes, box)}.",boxplotMultiple:"Boxplot with {numSeries} data series.", | ||
bubbleSingle:"Bubble chart with {numPoints} {#plural(numPoints, bubbles, bubble)}.",bubbleMultiple:"Bubble chart with {numSeries} data series."},axis:{xAxisDescriptionSingular:"The chart has 1 X axis displaying {names[0]}.",xAxisDescriptionPlural:"The chart has {numAxes} X axes displaying {#each(names, -1) }and {names[-1]}",yAxisDescriptionSingular:"The chart has 1 Y axis displaying {names[0]}.",yAxisDescriptionPlural:"The chart has {numAxes} Y axes displaying {#each(names, -1) }and {names[-1]}"}, | ||
exporting:{chartMenuLabel:"Chart export",menuButtonLabel:"View export menu",exportRegionLabel:"Chart export menu"},series:{summary:{default:"{name}, series {ix} of {numSeries} with {numPoints} data {#plural(numPoints, points, point)}.",defaultCombination:"{name}, series {ix} of {numSeries} with {numPoints} data {#plural(numPoints, points, point)}.",line:"{name}, line {ix} of {numSeries} with {numPoints} data {#plural(numPoints, points, point)}.",lineCombination:"{name}, series {ix} of {numSeries}. Line with {numPoints} data {#plural(numPoints, points, point)}.", | ||
spline:"{name}, line {ix} of {numSeries} with {numPoints} data {#plural(numPoints, points, point)}.",splineCombination:"{name}, series {ix} of {numSeries}. Line with {numPoints} data {#plural(numPoints, points, point)}.",column:"{name}, bar series {ix} of {numSeries} with {numPoints} {#plural(numPoints, bars, bar)}.",columnCombination:"{name}, series {ix} of {numSeries}. Bar series with {numPoints} {#plural(numPoints, bars, bar)}.",bar:"{name}, bar series {ix} of {numSeries} with {numPoints} {#plural(numPoints, bars, bar)}.", | ||
barCombination:"{name}, series {ix} of {numSeries}. Bar series with {numPoints} {#plural(numPoints, bars, bar)}.",pie:"{name}, pie {ix} of {numSeries} with {numPoints} {#plural(numPoints, slices, slice)}.",pieCombination:"{name}, series {ix} of {numSeries}. Pie with {numPoints} {#plural(numPoints, slices, slice)}.",scatter:"{name}, scatter plot {ix} of {numSeries} with {numPoints} {#plural(numPoints, points, point)}.",scatterCombination:"{name}, series {ix} of {numSeries}, scatter plot with {numPoints} {#plural(numPoints, points, point)}.", | ||
boxplot:"{name}, boxplot {ix} of {numSeries} with {numPoints} {#plural(numPoints, boxes, box)}.",boxplotCombination:"{name}, series {ix} of {numSeries}. Boxplot with {numPoints} {#plural(numPoints, boxes, box)}.",bubble:"{name}, bubble series {ix} of {numSeries} with {numPoints} {#plural(numPoints, bubbles, bubble)}.",bubbleCombination:"{name}, series {ix} of {numSeries}. Bubble series with {numPoints} {#plural(numPoints, bubbles, bubble)}.",map:"{name}, map {ix} of {numSeries} with {numPoints} {#plural(numPoints, areas, area)}.", | ||
mapCombination:"{name}, series {ix} of {numSeries}. Map with {numPoints} {#plural(numPoints, areas, area)}.",mapline:"{name}, line {ix} of {numSeries} with {numPoints} data {#plural(numPoints, points, point)}.",maplineCombination:"{name}, series {ix} of {numSeries}. Line with {numPoints} data {#plural(numPoints, points, point)}.",mapbubble:"{name}, bubble series {ix} of {numSeries} with {numPoints} {#plural(numPoints, bubbles, bubble)}.",mapbubbleCombination:"{name}, series {ix} of {numSeries}. Bubble series with {numPoints} {#plural(numPoints, bubbles, bubble)}."}, | ||
description:"{description}",xAxisDescription:"X axis, {name}",yAxisDescription:"Y axis, {name}"}}}})})(v);(function(c){function u(d){return d.replace(/&/g,"\x26amp;").replace(/</g,"\x26lt;").replace(/>/g,"\x26gt;").replace(/"/g,"\x26quot;").replace(/'/g,"\x26#x27;").replace(/\//g,"\x26#x2F;")}function t(d){return"string"===typeof d?d.replace(/<\/?[^>]+(>|$)/g,""):d}function r(d){for(var c=d.childNodes.length;c--;)d.appendChild(d.childNodes[c])}var n=c.win.document,f=c.each,k=c.map,h=c.erase,g=c.addEvent, | ||
q=c.merge,l={position:"absolute",left:"-9999px",top:"auto",width:"1px",height:"1px",overflow:"hidden"};c.Series.prototype.commonKeys="name id category x value y".split(" ");c.Series.prototype.specialKeys="z open high q3 median q1 low close".split(" ");c.seriesTypes.pie&&(c.seriesTypes.pie.prototype.specialKeys=[]);c.setOptions({accessibility:{enabled:!0,pointDescriptionThreshold:!1,screenReaderSectionFormatter:function(d){var c=d.options,a=d.types||[],b={chart:d,numSeries:d.series&&d.series.length}, | ||
a=(1===a.length&&"pie"===a[0]||"map"===a[0])&&{}||d.getAxesDescription();return"\x3cdiv\x3e"+d.langFormat("accessibility.navigationHint",b)+"\x3c/div\x3e\x3ch3\x3e"+(c.title.text?u(c.title.text):d.langFormat("accessibility.defaultChartTitle",b))+(c.subtitle&&c.subtitle.text?". "+u(c.subtitle.text):"")+"\x3c/h3\x3e\x3ch4\x3e"+d.langFormat("accessibility.longDescriptionHeading",b)+"\x3c/h4\x3e\x3cdiv\x3e"+(c.chart.description||d.langFormat("accessibility.noDescription",b))+"\x3c/div\x3e\x3ch4\x3e"+ | ||
d.langFormat("accessibility.structureHeading",b)+"\x3c/h4\x3e\x3cdiv\x3e"+(c.chart.typeDescription||d.getTypeDescription())+"\x3c/div\x3e"+(a.xAxis?"\x3cdiv\x3e"+a.xAxis+"\x3c/div\x3e":"")+(a.yAxis?"\x3cdiv\x3e"+a.yAxis+"\x3c/div\x3e":"")}}});c.wrap(c.Series.prototype,"render",function(c){c.apply(this,Array.prototype.slice.call(arguments,1));this.chart.options.accessibility.enabled&&this.setA11yDescription()});c.Series.prototype.setA11yDescription=function(){var c=this.chart.options.accessibility, | ||
e=this.points&&this.points.length&&this.points[0].graphic&&this.points[0].graphic.element,a=e&&e.parentNode||this.graph&&this.graph.element||this.group&&this.group.element;a&&(a.lastChild===e&&r(a),this.points&&(this.points.length<c.pointDescriptionThreshold||!1===c.pointDescriptionThreshold)&&f(this.points,function(b){b.graphic&&(b.graphic.element.setAttribute("role","img"),b.graphic.element.setAttribute("tabindex","-1"),b.graphic.element.setAttribute("aria-label",t(b.series.options.pointDescriptionFormatter&& | ||
b.series.options.pointDescriptionFormatter(b)||c.pointDescriptionFormatter&&c.pointDescriptionFormatter(b)||b.buildPointInfoString())))}),1<this.chart.series.length||c.describeSingleSeries)&&(a.setAttribute("role",this.options.exposeElementToA11y?"img":"region"),a.setAttribute("tabindex","-1"),a.setAttribute("aria-label",t(c.seriesDescriptionFormatter&&c.seriesDescriptionFormatter(this)||this.buildSeriesInfoString())))};c.Series.prototype.buildSeriesInfoString=function(){var c=this.chart,e=this.description|| | ||
this.options.description,e=e&&c.langFormat("accessibility.series.description",{description:e,series:this}),a=c.langFormat("accessibility.series.xAxisDescription",{name:this.xAxis&&this.xAxis.getDescription(),series:this}),b=c.langFormat("accessibility.series.yAxisDescription",{name:this.yAxis&&this.yAxis.getDescription(),series:this}),m={name:this.name||"",ix:this.index+1,numSeries:c.series.length,numPoints:this.points.length,series:this},p=1===c.types.length?"":"Combination";return(c.langFormat("accessibility.series.summary."+ | ||
this.type+p,m)||c.langFormat("accessibility.series.summary.default"+p,m))+(e?" "+e:"")+(1<c.yAxis.length&&this.yAxis?" "+b:"")+(1<c.xAxis.length&&this.xAxis?" "+a:"")};c.Point.prototype.buildPointInfoString=function(){var d=this,e=d.series,a=e.chart.options.accessibility,b="",m=e.xAxis&&e.xAxis.isDatetimeAxis,a=m&&e.chart.time.dateFormat(a.pointDateFormatter&&a.pointDateFormatter(d)||a.pointDateFormat||c.Tooltip.prototype.getXDateFormat.call({getDateFormat:c.Tooltip.prototype.getDateFormat,chart:e.chart}, | ||
d,e.chart.options.tooltip,e.xAxis),d.x);c.find(e.specialKeys,function(b){return void 0!==d[b]})?(m&&(b=a),f(e.commonKeys.concat(e.specialKeys),function(a){void 0===d[a]||m&&"x"===a||(b+=(b?". ":"")+a+", "+d[a])})):b=(this.name||a||this.category||this.id||"x, "+this.x)+", "+(void 0!==this.value?this.value:this.y);return this.index+1+". "+b+"."+(this.description?" "+this.description:"")};c.Axis.prototype.getDescription=function(){return this.userOptions&&this.userOptions.description||this.axisTitle&& | ||
this.axisTitle.textStr||this.options.id||this.categories&&"categories"||this.isDatetimeAxis&&"Time"||"values"};c.wrap(c.Series.prototype,"init",function(c){c.apply(this,Array.prototype.slice.call(arguments,1));var d=this.chart;d.options.accessibility.enabled&&(d.types=d.types||[],0>d.types.indexOf(this.type)&&d.types.push(this.type),g(this,"remove",function(){var a=this,b=!1;f(d.series,function(m){m!==a&&0>d.types.indexOf(a.type)&&(b=!0)});b||h(d.types,a.type)}))});c.Chart.prototype.getTypeDescription= | ||
function(){var c=this.types&&this.types[0],e=this.series&&this.series[0]||{},a=e.mapTitle,b=this.langFormat("accessibility.seriesTypeDescriptions."+c,{chart:this}),e={numSeries:this.series.length,numPoints:e.points&&e.points.length,chart:this,mapTitle:a},m=this.series&&1===this.series.length?"Single":"Multiple";if(c){if("map"===c)return a?this.langFormat("accessibility.chartTypes.mapTypeDescription",e):this.langFormat("accessibility.chartTypes.unknownMap",e);if(1<this.types.length)return this.langFormat("accessibility.chartTypes.combinationChart", | ||
e)}else return this.langFormat("accessibility.chartTypes.emptyChart",e);return(this.langFormat("accessibility.chartTypes."+c+m,e)||this.langFormat("accessibility.chartTypes.default"+m,e))+(b?" "+b:"")};c.Chart.prototype.getAxesDescription=function(){var c=this.xAxis.length,e=this.yAxis.length,a={};c&&(a.xAxis=this.langFormat("accessibility.axis.xAxisDescription"+(1<c?"Plural":"Singular"),{chart:this,names:k(this.xAxis,function(b){return b.getDescription()}),numAxes:c}));e&&(a.yAxis=this.langFormat("accessibility.axis.yAxisDescription"+ | ||
(1<e?"Plural":"Singular"),{chart:this,names:k(this.yAxis,function(b){return b.getDescription()}),numAxes:e}));return a};c.Chart.prototype.addAccessibleContextMenuAttribs=function(){var c=this.exportDivElements;c&&(f(c,function(c){"DIV"!==c.tagName||c.children&&c.children.length||(c.setAttribute("role","menuitem"),c.setAttribute("tabindex",-1))}),c[0].parentNode.setAttribute("role","menu"),c[0].parentNode.setAttribute("aria-label",this.langFormat("accessibility.exporting.chartMenuLabel",{chart:this})))}; | ||
c.Chart.prototype.addScreenReaderRegion=function(c,e){var a=this,b=a.screenReaderRegion=n.createElement("div"),m=n.createElement("h4"),p=n.createElement("a"),d=n.createElement("h4");b.setAttribute("id",c);b.setAttribute("role","region");b.setAttribute("aria-label",a.langFormat("accessibility.screenReaderRegionLabel",{chart:this}));b.innerHTML=a.options.accessibility.screenReaderSectionFormatter(a);a.getCSV&&(p.innerHTML=a.langFormat("accessibility.viewAsDataTable",{chart:a}),p.href="#"+e,p.setAttribute("tabindex", | ||
"-1"),p.onclick=a.options.accessibility.onTableAnchorClick||function(){a.viewData();n.getElementById(e).focus()},m.appendChild(p),b.appendChild(m));d.innerHTML=a.langFormat("accessibility.chartHeading",{chart:a});a.renderTo.insertBefore(d,a.renderTo.firstChild);a.renderTo.insertBefore(b,a.renderTo.firstChild);q(!0,d.style,l);q(!0,b.style,l)};c.Chart.prototype.callbacks.push(function(d){var e=d.options;if(e.accessibility.enabled){var a=n.createElementNS("http://www.w3.org/2000/svg","title"),b=n.createElementNS("http://www.w3.org/2000/svg", | ||
"g"),m=d.container.getElementsByTagName("desc")[0],p=d.container.getElementsByTagName("text"),x="highcharts-title-"+d.index,w="highcharts-data-table-"+d.index,g="highcharts-information-region-"+d.index,e=e.title.text||d.langFormat("accessibility.defaultChartTitle",{chart:d});a.textContent=u(e);a.id=x;m.parentNode.insertBefore(a,m);d.renderTo.setAttribute("role","region");d.renderTo.setAttribute("aria-label",d.langFormat("accessibility.chartContainerLabel",{title:t(e),chart:d}));if(d.exportSVGElements&& | ||
d.exportSVGElements[0]&&d.exportSVGElements[0].element){var h=d.exportSVGElements[0].element.onclick,a=d.exportSVGElements[0].element.parentNode;d.exportSVGElements[0].element.onclick=function(){h.apply(this,Array.prototype.slice.call(arguments));d.addAccessibleContextMenuAttribs();d.highlightExportItem(0)};d.exportSVGElements[0].element.setAttribute("role","button");d.exportSVGElements[0].element.setAttribute("aria-label",d.langFormat("accessibility.exporting.menuButtonLabel",{chart:d}));b.appendChild(d.exportSVGElements[0].element); | ||
b.setAttribute("role","region");b.setAttribute("aria-label",d.langFormat("accessibility.exporting.exportRegionLabel",{chart:d}));a.appendChild(b)}d.rangeSelector&&f(["minInput","maxInput"],function(b,a){d.rangeSelector[b]&&(d.rangeSelector[b].setAttribute("tabindex","-1"),d.rangeSelector[b].setAttribute("role","textbox"),d.rangeSelector[b].setAttribute("aria-label",d.langFormat("accessibility.rangeSelector"+(a?"MaxInput":"MinInput"),{chart:d})))});f(p,function(b){b.setAttribute("aria-hidden","true")}); | ||
d.addScreenReaderRegion(g,w);c.wrap(d,"getTable",function(b){return b.apply(this,Array.prototype.slice.call(arguments,1)).replace("\x3ctable\x3e",'\x3ctable id\x3d"'+w+'" summary\x3d"'+d.langFormat("accessibility.tableSummary",{chart:d})+'"\x3e')})}})})(v);(function(c){function u(a){return"string"===typeof a?a.replace(/<\/?[^>]+(>|$)/g,""):a}function t(a,b){this.chart=a;this.id=b.id;this.keyCodeMap=b.keyCodeMap;this.validate=b.validate;this.init=b.init;this.terminate=b.terminate}function r(a){var b; | ||
a&&a.onclick&&k.createEvent&&(b=k.createEvent("Events"),b.initEvent("click",!0,!1),a.onclick(b))}function n(a){var b=a.series.chart.options.accessibility;return a.isNull&&b.keyboardNavigation.skipNullPoints||a.series.options.skipKeyboardNavigation||!a.series.visible||!1===a.visible||b.pointDescriptionThreshold&&b.pointDescriptionThreshold<=a.series.points.length}var f=c.win,k=f.document,h=c.each,g=c.addEvent,q=c.fireEvent,l=c.merge,d=c.pick,e;c.extend(c.SVGElement.prototype,{addFocusBorder:function(a, | ||
b){this.focusBorder&&this.removeFocusBorder();var c=this.getBBox();a=d(a,3);this.focusBorder=this.renderer.rect(c.x-a,c.y-a,c.width+2*a,c.height+2*a,b&&b.borderRadius).addClass("highcharts-focus-border").attr({zIndex:99}).add(this.parentGroup)},removeFocusBorder:function(){this.focusBorder&&(this.focusBorder.destroy(),delete this.focusBorder)}});c.Series.prototype.keyboardMoveVertical=!0;h(["column","pie"],function(a){c.seriesTypes[a]&&(c.seriesTypes[a].prototype.keyboardMoveVertical=!1)});c.setOptions({accessibility:{keyboardNavigation:{enabled:!0, | ||
focusBorder:{enabled:!0,hideBrowserFocusOutline:!0,style:{color:"#335cad",lineWidth:2,borderRadius:3},margin:2},skipNullPoints:!0}}});t.prototype={run:function(a){var b=this,c=a.which||a.keyCode,d=!1,e=!1;h(this.keyCodeMap,function(m){-1<m[0].indexOf(c)&&(d=!0,e=!1===m[1].call(b,c,a)?!1:!0)});d||9!==c||(e=this.move(a.shiftKey?-1:1));return e},move:function(a){var b=this.chart;this.terminate&&this.terminate(a);b.keyboardNavigationModuleIndex+=a;var c=b.keyboardNavigationModules[b.keyboardNavigationModuleIndex]; | ||
b.focusElement&&b.focusElement.removeFocusBorder();if(c){if(c.validate&&!c.validate())return this.move(a);if(c.init)return c.init(a),!0}b.keyboardNavigationModuleIndex=0;0<a?(this.chart.exiting=!0,this.chart.tabExitAnchor.focus()):this.chart.renderTo.focus();return!1}};c.Axis.prototype.panStep=function(a,b){var c=b||3;b=this.getExtremes();var d=(b.max-b.min)/c*a,c=b.max+d,d=b.min+d,e=c-d;0>a&&d<b.dataMin?(d=b.dataMin,c=d+e):0<a&&c>b.dataMax&&(c=b.dataMax,d=c-e);this.setExtremes(d,c)};c.Chart.prototype.setFocusToElement= | ||
function(a,b){var c=this.options.accessibility.keyboardNavigation.focusBorder;b=b||a;b.element&&b.element.focus&&(b.element.focus(),c.hideBrowserFocusOutline&&b.css({outline:"none"}));c.enabled&&a!==this.focusElement&&(this.focusElement&&this.focusElement.removeFocusBorder(),a.addFocusBorder(c.margin,{stroke:c.style.color,strokeWidth:c.style.lineWidth,borderRadius:c.style.borderRadius}),this.focusElement=a)};c.Point.prototype.highlight=function(){var a=this.series.chart;if(this.isNull)a.tooltip&& | ||
a.tooltip.hide(0);else this.onMouseOver();this.graphic&&a.setFocusToElement(this.graphic);a.highlightedPoint=this;return this};c.Chart.prototype.highlightAdjacentPoint=function(a){var b=this.series,c=this.highlightedPoint,d=c&&c.index||0,e=c&&c.series.points,f=this.series&&this.series[this.series.length-1],f=f&&f.points&&f.points[f.points.length-1];if(!b[0]||!b[0].points)return!1;if(c){if(e[d]!==c)for(f=0;f<e.length;++f)if(e[f]===c){d=f;break}b=b[c.series.index+(a?1:-1)];d=e[d+(a?1:-1)]||b&&b.points[a? | ||
0:b.points.length-1];if(!d)return!1}else d=a?b[0].points[0]:f;return n(d)?(this.highlightedPoint=d,this.highlightAdjacentPoint(a)):d.highlight()};c.Series.prototype.highlightFirstValidPoint=function(){var a=this.chart.highlightedPoint,b=(a&&a.series)===this?a.index:0;if(a=this.points){for(var c=b,d=a.length;c<d;++c)if(!n(a[c]))return a[c].highlight();for(;0<=b;--b)if(!n(a[b]))return a[b].highlight()}return!1};c.Chart.prototype.highlightAdjacentSeries=function(a){var b,c,d=this.highlightedPoint,e= | ||
(b=this.series&&this.series[this.series.length-1])&&b.points&&b.points[b.points.length-1];if(!this.highlightedPoint)return b=a?this.series&&this.series[0]:b,(c=a?b&&b.points&&b.points[0]:e)?c.highlight():!1;b=this.series[d.series.index+(a?-1:1)];if(!b)return!1;var e=Infinity,f,g=b.points.length;if(void 0===d.plotX||void 0===d.plotY)c=void 0;else{for(;g--;)f=b.points[g],void 0!==f.plotX&&void 0!==f.plotY&&(f=(d.plotX-f.plotX)*(d.plotX-f.plotX)*4+(d.plotY-f.plotY)*(d.plotY-f.plotY)*1,f<e&&(e=f,c=g)); | ||
c=void 0!==c&&b.points[c]}if(!c)return!1;if(!b.visible)return c.highlight(),a=this.highlightAdjacentSeries(a),a?a:(d.highlight(),!1);c.highlight();return c.series.highlightFirstValidPoint()};c.Chart.prototype.highlightAdjacentPointVertical=function(a){var b=this.highlightedPoint,c=Infinity,d;if(void 0===b.plotX||void 0===b.plotY)return!1;h(this.series,function(m){h(m.points,function(e){if(void 0!==e.plotY&&void 0!==e.plotX&&e!==b){var f=e.plotY-b.plotY,p=Math.abs(e.plotX-b.plotX),p=Math.abs(f)*Math.abs(f)+ | ||
p*p*4;m.yAxis.reversed&&(f*=-1);!(0>f&&a||0<f&&!a||5>p||n(e))&&p<c&&(c=p,d=e)}})});return d?d.highlight():!1};c.Chart.prototype.showExportMenu=function(){this.exportSVGElements&&this.exportSVGElements[0]&&(this.exportSVGElements[0].element.onclick(),this.highlightExportItem(0))};c.Chart.prototype.hideExportMenu=function(){var a=this.exportDivElements;if(a){h(a,function(b){q(b,"mouseleave")});if(a[this.highlightedExportItem]&&a[this.highlightedExportItem].onmouseout)a[this.highlightedExportItem].onmouseout(); | ||
this.highlightedExportItem=0;e&&this.renderTo.focus()}};c.Chart.prototype.highlightExportItem=function(a){var b=this.exportDivElements&&this.exportDivElements[a],c=this.exportDivElements&&this.exportDivElements[this.highlightedExportItem];if(b&&"DIV"===b.tagName&&(!b.children||!b.children.length)){b.focus&&e&&b.focus();if(c&&c.onmouseout)c.onmouseout();if(b.onmouseover)b.onmouseover();this.highlightedExportItem=a;return!0}};c.Chart.prototype.highlightLastExportItem=function(){var a;if(this.exportDivElements)for(a= | ||
this.exportDivElements.length;a--&&!this.highlightExportItem(a););};c.Chart.prototype.highlightRangeSelectorButton=function(a){var b=this.rangeSelector.buttons;b[this.highlightedRangeSelectorItemIx]&&b[this.highlightedRangeSelectorItemIx].setState(this.oldRangeSelectorItemState||0);this.highlightedRangeSelectorItemIx=a;return b[a]?(this.setFocusToElement(b[a].box,b[a]),this.oldRangeSelectorItemState=b[a].state,b[a].setState(2),!0):!1};c.Chart.prototype.highlightLegendItem=function(a){var b=this.legend.allItems, | ||
c=this.highlightedLegendItemIx;return b[a]?(b[c]&&q(b[c].legendGroup.element,"mouseout"),void 0!==b[a].pageIx&&b[a].pageIx+1!==this.legend.currentPage&&this.legend.scroll(1+b[a].pageIx-this.legend.currentPage),this.highlightedLegendItemIx=a,this.setFocusToElement(b[a].legendItem,b[a].legendGroup),q(b[a].legendGroup.element,"mouseover"),!0):!1};c.Chart.prototype.addKeyboardNavigationModules=function(){function a(a,c,d){return new t(b,l({keyCodeMap:c},{id:a},d))}var b=this;b.keyboardNavigationModules= | ||
[a("entry",[]),a("points",[[[37,39],function(a){a=39===a;return b.highlightAdjacentPoint(a)?!0:this.init(a?1:-1)}],[[38,40],function(a){a=38!==a;var c=b.options.accessibility.keyboardNavigation;if(c.mode&&"serialize"===c.mode)return b.highlightAdjacentPoint(a)?!0:this.init(a?1:-1);b[b.highlightedPoint&&b.highlightedPoint.series.keyboardMoveVertical?"highlightAdjacentPointVertical":"highlightAdjacentSeries"](a);return!0}],[[13,32],function(){b.highlightedPoint&&b.highlightedPoint.firePointEvent("click")}]], | ||
{init:function(a){var c=b.series.length,d=0<a?0:c;if(0<a)for(delete b.highlightedPoint;d<c;){if(a=b.series[d].highlightFirstValidPoint())return a;++d}else for(;d--;)if(b.highlightedPoint=b.series[d].points[b.series[d].points.length-1],a=b.series[d].highlightFirstValidPoint())return a},terminate:function(){b.tooltip&&b.tooltip.hide(0);delete b.highlightedPoint}}),a("exporting",[[[37,38],function(){for(var a=b.highlightedExportItem||0,c=!0;a--;)if(b.highlightExportItem(a)){c=!1;break}if(c)return b.highlightLastExportItem(), | ||
!0}],[[39,40],function(){for(var a=!0,c=(b.highlightedExportItem||0)+1;c<b.exportDivElements.length;++c)if(b.highlightExportItem(c)){a=!1;break}if(a)return b.highlightExportItem(0),!0}],[[13,32],function(){r(b.exportDivElements[b.highlightedExportItem])}]],{validate:function(){return b.exportChart&&!(b.options.exporting&&!1===b.options.exporting.enabled)},init:function(a){b.highlightedPoint=null;b.showExportMenu();0>a&&b.highlightLastExportItem()},terminate:function(){b.hideExportMenu()}}),a("mapZoom", | ||
[[[38,40,37,39],function(a){b[38===a||40===a?"yAxis":"xAxis"][0].panStep(39>a?-1:1)}],[[9],function(a,c){b.mapNavButtons[b.focusedMapNavButtonIx].setState(0);if(c.shiftKey&&!b.focusedMapNavButtonIx||!c.shiftKey&&b.focusedMapNavButtonIx)return b.mapZoom(),this.move(c.shiftKey?-1:1);b.focusedMapNavButtonIx+=c.shiftKey?-1:1;a=b.mapNavButtons[b.focusedMapNavButtonIx];b.setFocusToElement(a.box,a);a.setState(2)}],[[13,32],function(){r(b.mapNavButtons[b.focusedMapNavButtonIx].element)}]],{validate:function(){return b.mapZoom&& | ||
b.mapNavButtons&&2===b.mapNavButtons.length},init:function(a){var c=b.mapNavButtons[0],d=b.mapNavButtons[1],c=0<a?c:d;h(b.mapNavButtons,function(a,c){a.element.setAttribute("tabindex",-1);a.element.setAttribute("role","button");a.element.setAttribute("aria-label",b.langFormat("accessibility.mapZoom"+(c?"Out":"In"),{chart:b}))});b.setFocusToElement(c.box,c);c.setState(2);b.focusedMapNavButtonIx=0<a?0:1}}),a("rangeSelector",[[[37,39,38,40],function(a){a=37===a||38===a?-1:1;if(!b.highlightRangeSelectorButton(b.highlightedRangeSelectorItemIx+ | ||
a))return this.move(a)}],[[13,32],function(){3!==b.oldRangeSelectorItemState&&r(b.rangeSelector.buttons[b.highlightedRangeSelectorItemIx].element)}]],{validate:function(){return b.rangeSelector&&b.rangeSelector.buttons&&b.rangeSelector.buttons.length},init:function(a){h(b.rangeSelector.buttons,function(a){a.element.setAttribute("tabindex","-1");a.element.setAttribute("role","button");a.element.setAttribute("aria-label",b.langFormat("accessibility.rangeSelectorButton",{chart:b,buttonText:a.text&&a.text.textStr}))}); | ||
b.highlightRangeSelectorButton(0<a?0:b.rangeSelector.buttons.length-1)}}),a("rangeSelectorInput",[[[9,38,40],function(a,c){a=9===a&&c.shiftKey||38===a?-1:1;c=b.highlightedInputRangeIx+=a;if(1<c||0>c)return this.move(a);b.rangeSelector[c?"maxInput":"minInput"].focus()}]],{validate:function(){return b.rangeSelector&&b.rangeSelector.inputGroup&&"hidden"!==b.rangeSelector.inputGroup.element.getAttribute("visibility")&&!1!==b.options.rangeSelector.inputEnabled&&b.rangeSelector.minInput&&b.rangeSelector.maxInput}, | ||
init:function(a){b.highlightedInputRangeIx=0<a?0:1;b.rangeSelector[b.highlightedInputRangeIx?"maxInput":"minInput"].focus()}}),a("legend",[[[37,39,38,40],function(a){a=37===a||38===a?-1:1;b.highlightLegendItem(b.highlightedLegendItemIx+a)||this.init(a)}],[[13,32],function(){r(b.legend.allItems[b.highlightedLegendItemIx].legendItem.element.parentNode)}]],{validate:function(){return b.legend&&b.legend.allItems&&b.legend.display&&!(b.colorAxis&&b.colorAxis.length)&&!1!==(b.options.legend&&b.options.legend.keyboardNavigation&& | ||
b.options.legend.keyboardNavigation.enabled)},init:function(a){h(b.legend.allItems,function(a){a.legendGroup.element.setAttribute("tabindex","-1");a.legendGroup.element.setAttribute("role","button");a.legendGroup.element.setAttribute("aria-label",b.langFormat("accessibility.legendItem",{chart:b,itemName:u(a.name)}))});b.highlightLegendItem(0<a?0:b.legend.allItems.length-1)}})]};c.Chart.prototype.addExitAnchor=function(){var a=this;a.tabExitAnchor=k.createElement("div");a.tabExitAnchor.setAttribute("tabindex", | ||
"0");l(!0,a.tabExitAnchor.style,{position:"absolute",left:"-9999px",top:"auto",width:"1px",height:"1px",overflow:"hidden"});a.renderTo.appendChild(a.tabExitAnchor);return g(a.tabExitAnchor,"focus",function(b){b=b||f.event;a.exiting?a.exiting=!1:(a.renderTo.focus(),b.preventDefault(),a.keyboardNavigationModuleIndex=a.keyboardNavigationModules.length-1,b=a.keyboardNavigationModules[a.keyboardNavigationModuleIndex],b.validate&&!b.validate()?b.move(-1):b.init(-1))})};c.Chart.prototype.resetKeyboardNavigation= | ||
function(){var a=this.keyboardNavigationModules&&this.keyboardNavigationModules[this.keyboardNavigationModuleIndex||0];a&&a.terminate&&a.terminate();this.focusElement&&this.focusElement.removeFocusBorder();this.keyboardNavigationModuleIndex=0;this.keyboardReset=!0};c.wrap(c.Series.prototype,"destroy",function(a){var b=this.chart;b.highlightedPoint&&b.highlightedPoint.series===this&&(delete b.highlightedPoint,b.focusElement&&b.focusElement.removeFocusBorder());a.apply(this,Array.prototype.slice.call(arguments, | ||
1))});c.Chart.prototype.callbacks.push(function(a){var b=a.options.accessibility;b.enabled&&b.keyboardNavigation.enabled&&(e=!!a.renderTo.getElementsByTagName("g")[0].focus,a.addKeyboardNavigationModules(),a.keyboardNavigationModuleIndex=0,a.container.hasAttribute&&!a.container.hasAttribute("tabIndex")&&a.container.setAttribute("tabindex","0"),a.tabExitAnchor||(a.unbindExitAnchorFocus=a.addExitAnchor()),a.unbindKeydownHandler=g(a.renderTo,"keydown",function(b){b=b||f.event;var c=a.keyboardNavigationModules[a.keyboardNavigationModuleIndex]; | ||
a.keyboardReset=!1;c&&c.run(b)&&b.preventDefault()}),a.unbindBlurHandler=g(k,"mouseup",function(){a.keyboardReset||a.pointer&&a.pointer.chartPosition||a.resetKeyboardNavigation()}),g(a,"destroy",function(){a.resetKeyboardNavigation();a.unbindExitAnchorFocus&&a.tabExitAnchor&&a.unbindExitAnchorFocus();a.unbindKeydownHandler&&a.renderTo&&a.unbindKeydownHandler();a.unbindBlurHandler&&a.unbindBlurHandler()}))})})(v)}); |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Annotations module | ||
@@ -9,19 +9,19 @@ | ||
*/ | ||
(function(l){"object"===typeof module&&module.exports?module.exports=l:l(Highcharts)})(function(l){(function(f){var m=f.merge,l=f.addEvent,u=f.extend,n=f.each,C=f.isString,y=f.isNumber,t=f.defined,D=f.isObject,v=f.erase,E=f.find,F=f.format,w=f.pick,G=f.uniqueKey,H=f.destroyObjectProperties,I=f.grep,z=f.Tooltip.prototype,J=f.Series.prototype,x=f.Chart.prototype,K={arrow:{tagName:"marker",render:!1,id:"arrow",refY:5,refX:5,markerWidth:10,markerHeight:10,children:[{tagName:"path",d:"M 0 0 L 10 5 L 0 10 Z"}]}}, | ||
p={markerSetter:function(a){return function(b){this.attr(a,"url(#"+b+")")}}};u(p,{markerEndSetter:p.markerSetter("marker-end"),markerStartSetter:p.markerSetter("marker-start")});f.SVGRenderer.prototype.addMarker=function(a,b){b=this.definition(m({markerWidth:20,markerHeight:20,refX:0,refY:0,orient:"auto"},b,{id:a}));b.id=a;return b};var A=f.MockPoint=function(a,b){this.mock=!0;this.series={visible:!0,chart:a,getPlotBox:J.getPlotBox};this.init(a,b)},L=f.mockPoint=function(a,b){return new A(a,b)};A.prototype= | ||
{init:function(a,b){var c=b.xAxis,c=t(c)?a.xAxis[c]||a.get(c):null,e=b.yAxis;a=t(e)?a.yAxis[e]||a.get(e):null;c?(this.x=b.x,this.series.xAxis=c):this.plotX=b.x;a?(this.y=b.y,this.series.yAxis=a):this.plotY=b.y},translate:function(){var a=this.series,b=a.xAxis,a=a.yAxis,c;c=!0;b&&(this.plotX=c=b.toPixels(this.x,!0),c=0<=c&&c<=b.len);a&&(this.plotY=b=a.toPixels(this.y,!0),c=c&&0<=b&&b<=a.len);this.isInside=c},alignToBox:function(a){a&&this.translate();a=this.plotX;var b=this.plotY,c;this.series.chart.inverted&& | ||
(c=a,a=b,b=c);return[a,b,0,0]},getLabelConfig:function(){return{x:this.x,y:this.y,point:this}}};f.defaultOptions.annotations=[];var B=f.Annotation=function(a,b){this.chart=a;this.labels=[];this.shapes=[];this.options=m(this.defaultOptions,b);this.init(a,b)};B.prototype={shapesWithoutBackground:["connector"],attrsMap:{zIndex:"zIndex",width:"width",height:"height",borderRadius:"r",r:"r",padding:"padding"},defaultOptions:{visible:!0,labelOptions:{align:"center",allowOverlap:!1,backgroundColor:"rgba(0, 0, 0, 0.75)", | ||
borderColor:"black",borderRadius:3,borderWidth:1,className:"",crop:!1,formatter:function(){return t(this.y)?this.y:"Annotation label"},overflow:"justify",padding:5,shadow:!1,shape:"callout",style:{fontSize:"11px",fontWeight:"normal",color:"contrast"},useHTML:!1,verticalAlign:"bottom",x:0,y:-16},shapeOptions:{stroke:"rgba(0, 0, 0, 0.75)",strokeWidth:1,fill:"rgba(0, 0, 0, 0.75)",r:0},zIndex:6},init:function(){var a=this;n(this.options.labels||[],this.initLabel,this);n(this.options.shapes||[],this.initShape, | ||
this);this.labelCollector=function(){return I(a.labels,function(a){return!a.options.allowOverlap})};this.chart.labelCollectors.push(this.labelCollector)},redraw:function(){this.group||this.render();this.redrawItems(this.shapes);this.redrawItems(this.labels)},redrawItems:function(a){for(var b=a.length;b--;)this.redrawItem(a[b])},render:function(){var a=this.chart.renderer,b=this.group=a.g("annotation").attr({zIndex:this.options.zIndex,visibility:this.options.visible?"visible":"hidden"}).add();this.shapesGroup= | ||
a.g("annotation-shapes").add(b);this.labelsGroup=a.g("annotation-labels").attr({translateX:0,translateY:0}).add(b);this.shapesGroup.clip(this.chart.plotBoxClip)},setVisible:function(a){var b=this.options;a=w(a,!b.visible);this.group.attr({visibility:a?"visible":"hidden"});b.visible=a},destroy:function(){var a=this.chart;v(this.chart.labelCollectors,this.labelCollector);n(this.labels,function(a){a.destroy()});n(this.shapes,function(a){a.destroy()});H(this,a)},initShape:function(a){var b=this.chart.renderer; | ||
a=m(this.options.shapeOptions,a);var c=this.attrsFromOptions(a),e=b[a.type]?a.type:"rect",b=b[e](0,-9E9,0,0);b.points=[];b.type=e;b.options=a;b.itemType="shape";"path"===e&&u(b,{markerStartSetter:p.markerStartSetter,markerEndSetter:p.markerEndSetter,markerStart:p.markerStart,markerEnd:p.markerEnd});b.attr(c);a.className&&b.addClass(a.className);this.shapes.push(b)},initLabel:function(a){a=m(this.options.labelOptions,a);var b=this.attrsFromOptions(a),c=this.chart.renderer.label("",0,-9E9,a.shape,null, | ||
null,a.useHTML,null,"annotation-label");c.points=[];c.options=a;c.itemType="label";c.labelrank=a.labelrank;c.annotation=this;c.attr(b);a.className&&c.addClass(a.className);this.labels.push(c)},redrawItem:function(a){var b=this.linkPoints(a),c=a.options,e,d=this.chart.time;b.length?(a.parentGroup||this.renderItem(a),"label"===a.itemType&&(e=c.format||c.text,a.attr({text:e?F(e,b[0].getLabelConfig(),d):c.formatter.call(b[0])})),"path"===a.type?this.redrawPath(a):this.alignItem(a,!a.placed)):this.destroyItem(a)}, | ||
destroyItem:function(a){v(this[a.itemType+"s"],a);a.destroy()},pointItem:function(a,b){b&&null!==b.series||(D(a)?b=L(this.chart,a):C(a)&&(b=this.chart.get(a)||null));return b},linkPoints:function(a){var b=a.options.points||a.options.point&&f.splat(a.options.point),c=a.points,e=b&&b.length,d,r;for(d=0;d<e;d++){r=this.pointItem(b[d],c[d]);if(!r)return a.points=[];c[d]=r}return c},alignItem:function(a,b){var c=this.itemAnchor(a,a.points[0]),e=this.itemPosition(a,c);e?(a.alignAttr=e,a.placed=!0,e.anchorX= | ||
c.absolutePosition.x,e.anchorY=c.absolutePosition.y,a[b?"attr":"animate"](e)):(a.placed=!1,a.attr({x:0,y:-9E9}))},redrawPath:function(a,b){var c=a.points,e=a["stroke-width"]||1,d=["M"],f=0,h=0,g=c&&c.length,k,q;if(g){do q=c[f],k=this.itemAnchor(a,q).absolutePosition,d[++h]=k.x,d[++h]=k.y,k=h%5,0===k&&(d[k+1]===d[k+4]&&(d[k+1]=d[k+4]=Math.round(d[k+1])-e%2/2),d[k+2]===d[k+5]&&(d[k+2]=d[k+5]=Math.round(d[k+2])+e%2/2)),f<g-1&&(d[++h]="L"),q=q.series.visible;while(++f<g&&q)}if(q)a[b?"attr":"animate"]({d:d}); | ||
else a.attr({d:"M 0 -9000000000"});a.placed=q},renderItem:function(a){a.add("label"===a.itemType?this.labelsGroup:this.shapesGroup);this.setItemMarkers(a)},setItemMarkers:function(a){var b=a.options,c=this.chart,e=c.options.defs,d=b.fill,f=t(d)&&"none"!==d?d:b.stroke;n(["markerStart","markerEnd"],function(d){var g=b[d],k,h,r;if(g){for(r in e)if(k=e[r],g===k.id&&"marker"===k.tagName){h=k;break}h&&(g=a[d]=c.renderer.addMarker((b.id||G())+"-"+h.id,m(h,{color:f})),a.attr(d,g.attr("id")))}})},itemAnchor:function(a, | ||
b){a=b.series.getPlotBox();b=b.mock?b.alignToBox(!0):z.getAnchor.call({chart:this.chart},b);b={x:b[0],y:b[1],height:b[2]||0,width:b[3]||0};return{relativePosition:b,absolutePosition:m(b,{x:b.x+a.translateX,y:b.y+a.translateY})}},itemPosition:function(a,b){var c=this.chart,e=a.points[0],d=a.options,f=b.absolutePosition,h=b.relativePosition,g;if(b=e.series.visible&&!1!==e.isInside&&(e.mock||e.graphic))t(d.distance)||d.positioner?g=(d.positioner||z.getPosition).call({chart:c,distance:w(d.distance,16)}, | ||
a.width,a.height,{plotX:h.x,plotY:h.y,negative:e.negative,ttBelow:e.ttBelow,h:h.height||h.width}):(e={x:f.x,y:f.y,width:0,height:0},g=this.alignedPosition(u(d,{width:a.width,height:a.height}),e),"justify"===a.options.overflow&&(g=this.alignedPosition(this.justifiedOptions(a,d,g),e))),d.crop&&(d=g.x-c.plotLeft,e=g.y-c.plotTop,b=c.isInsidePlot(d,e)&&c.isInsidePlot(d+a.width,e+a.height));return b?g:null},alignedPosition:function(a,b){var c=a.align,e=a.verticalAlign,d=(b.x||0)+(a.x||0),f=(b.y||0)+(a.y|| | ||
0),h,g;"right"===c?h=1:"center"===c&&(h=2);h&&(d+=(b.width-(a.width||0))/h);"bottom"===e?g=1:"middle"===e&&(g=2);g&&(f+=(b.height-(a.height||0))/g);return{x:Math.round(d),y:Math.round(f)}},justifiedOptions:function(a,b,c){var e=this.chart,d=b.align,f=b.verticalAlign,h=a.box?0:a.padding||0,g=a.getBBox();a={align:d,verticalAlign:f,x:b.x,y:b.y,width:a.width,height:a.height};b=c.x-e.plotLeft;var k=c.y-e.plotTop;c=b+h;0>c&&("right"===d?a.align="left":a.x=-c);c=b+g.width-h;c>e.plotWidth&&("left"===d?a.align= | ||
"right":a.x=e.plotWidth-c);c=k+h;0>c&&("bottom"===f?a.verticalAlign="top":a.y=-c);c=k+g.height-h;c>e.plotHeight&&("top"===f?a.verticalAlign="bottom":a.y=e.plotHeight-c);return a},attrsFromOptions:function(a){var b=this.attrsMap,c={},e,d;for(e in a)(d=b[e])&&(c[d]=a[e]);return c}};f.extend(x,{addAnnotation:function(a,b){a=new B(this,a);this.annotations.push(a);w(b,!0)&&a.redraw();return a},removeAnnotation:function(a){var b=this.annotations,c=E(b,function(b){return b.options.id===a});c&&(v(b,c),c.destroy())}, | ||
drawAnnotations:function(){var a=this.plotBoxClip,b=this.plotBox;a?a.attr(b):this.plotBoxClip=this.renderer.clipRect(b);n(this.annotations,function(a){a.redraw()})}});x.callbacks.push(function(a){a.annotations=[];n(a.options.annotations,function(b){a.addAnnotation(b,!1)});a.drawAnnotations();l(a,"redraw",a.drawAnnotations);l(a,"destroy",function(){var b=a.plotBoxClip;b&&b.destroy&&b.destroy()})});f.wrap(x,"getContainer",function(a){this.options.defs=m(K,this.options.defs||{});a.call(this)});f.SVGRenderer.prototype.symbols.connector= | ||
function(a,b,c,e,d){var f=d&&d.anchorX;d=d&&d.anchorY;var h,g,k=c/2;y(f)&&y(d)&&(h=["M",f,d],g=b-d,0>g&&(g=-e-g),g<c&&(k=f<a+c/2?g:c-g),d>b+e?h.push("L",a+k,b+e):d<b?h.push("L",a+k,b):f<a?h.push("L",a,b+e/2):f>a+c&&h.push("L",a+c,b+e/2));return h||[]}})(l)}); | ||
(function(l){"object"===typeof module&&module.exports?module.exports=l:l(Highcharts)})(function(l){(function(f){var m=f.merge,l=f.addEvent,u=f.extend,n=f.each,C=f.isString,z=f.isNumber,p=f.defined,D=f.isObject,v=f.erase,E=f.find,F=f.format,w=f.pick,G=f.uniqueKey,H=f.destroyObjectProperties,I=f.grep,A=f.Tooltip.prototype,J=f.Series.prototype,x=f.Chart.prototype,K={arrow:{tagName:"marker",render:!1,id:"arrow",refY:5,refX:5,markerWidth:10,markerHeight:10,children:[{tagName:"path",d:"M 0 0 L 10 5 L 0 10 Z"}]}}, | ||
q={markerSetter:function(a){return function(b){this.attr(a,"url(#"+b+")")}}};u(q,{markerEndSetter:q.markerSetter("marker-end"),markerStartSetter:q.markerSetter("marker-start")});f.SVGRenderer.prototype.addMarker=function(a,b){b=this.definition(m({markerWidth:20,markerHeight:20,refX:0,refY:0,orient:"auto"},b,{id:a}));b.id=a;return b};var y=f.MockPoint=function(a,b){this.mock=!0;this.series={visible:!0,chart:a,getPlotBox:J.getPlotBox};this.init(a,b)},L=f.mockPoint=function(a,b){return new y(a,b)};y.prototype= | ||
{init:function(a,b){var c=b.xAxis,c=p(c)?a.xAxis[c]||a.get(c):null,e=b.yAxis;a=p(e)?a.yAxis[e]||a.get(e):null;c?(this.x=b.x,this.series.xAxis=c):this.plotX=b.x;a?(this.y=b.y,this.series.yAxis=a):this.plotY=b.y},translate:function(){var a=this.series,b=a.xAxis,a=a.yAxis;b&&(this.plotX=b.toPixels(this.x,!0));a&&(this.plotY=a.toPixels(this.y,!0));this.isInside=this.isInsidePane()},alignToBox:function(a){a&&this.translate();a=this.plotX;var b=this.plotY,c;this.series.chart.inverted&&(c=a,a=b,b=c);return[a, | ||
b,0,0]},getLabelConfig:function(){return{x:this.x,y:this.y,point:this}},isInsidePane:function(){var a=this.plotX,b=this.plotY,c=this.series.xAxis,e=this.series.yAxis,d=!0;c&&(d=p(a)&&0<=a&&a<=c.len);e&&(d=d&&p(b)&&0<=b&&b<=e.len);return d}};f.defaultOptions.annotations=[];var B=f.Annotation=function(a,b){this.chart=a;this.labels=[];this.shapes=[];this.options=m(this.defaultOptions,b);this.init(a,b)};B.prototype={shapesWithoutBackground:["connector"],attrsMap:{zIndex:"zIndex",width:"width",height:"height", | ||
borderRadius:"r",r:"r",padding:"padding"},defaultOptions:{visible:!0,labelOptions:{align:"center",allowOverlap:!1,backgroundColor:"rgba(0, 0, 0, 0.75)",borderColor:"black",borderRadius:3,borderWidth:1,className:"",crop:!1,formatter:function(){return p(this.y)?this.y:"Annotation label"},overflow:"justify",padding:5,shadow:!1,shape:"callout",style:{fontSize:"11px",fontWeight:"normal",color:"contrast"},useHTML:!1,verticalAlign:"bottom",x:0,y:-16},shapeOptions:{stroke:"rgba(0, 0, 0, 0.75)",strokeWidth:1, | ||
fill:"rgba(0, 0, 0, 0.75)",r:0},zIndex:6},init:function(){var a=this;n(this.options.labels||[],this.initLabel,this);n(this.options.shapes||[],this.initShape,this);this.labelCollector=function(){return I(a.labels,function(a){return!a.options.allowOverlap})};this.chart.labelCollectors.push(this.labelCollector)},redraw:function(){this.group||this.render();this.redrawItems(this.shapes);this.redrawItems(this.labels)},redrawItems:function(a){for(var b=a.length;b--;)this.redrawItem(a[b])},render:function(){var a= | ||
this.chart.renderer,b=this.group=a.g("annotation").attr({zIndex:this.options.zIndex,visibility:this.options.visible?"visible":"hidden"}).add();this.shapesGroup=a.g("annotation-shapes").add(b);this.labelsGroup=a.g("annotation-labels").attr({translateX:0,translateY:0}).add(b);this.shapesGroup.clip(this.chart.plotBoxClip)},setVisible:function(a){var b=this.options;a=w(a,!b.visible);this.group.attr({visibility:a?"visible":"hidden"});b.visible=a},destroy:function(){var a=this.chart;v(this.chart.labelCollectors, | ||
this.labelCollector);n(this.labels,function(a){a.destroy()});n(this.shapes,function(a){a.destroy()});H(this,a)},initShape:function(a){var b=this.chart.renderer;a=m(this.options.shapeOptions,a);var c=this.attrsFromOptions(a),e=b[a.type]?a.type:"rect",b=b[e](0,-9E9,0,0);b.points=[];b.type=e;b.options=a;b.itemType="shape";"path"===e&&u(b,{markerStartSetter:q.markerStartSetter,markerEndSetter:q.markerEndSetter,markerStart:q.markerStart,markerEnd:q.markerEnd});b.attr(c);a.className&&b.addClass(a.className); | ||
this.shapes.push(b)},initLabel:function(a){a=m(this.options.labelOptions,a);var b=this.attrsFromOptions(a),c=this.chart.renderer.label("",0,-9E9,a.shape,null,null,a.useHTML,null,"annotation-label");c.points=[];c.options=a;c.itemType="label";c.labelrank=a.labelrank;c.annotation=this;c.attr(b);a.className&&c.addClass(a.className);this.labels.push(c)},redrawItem:function(a){var b=this.linkPoints(a),c=a.options,e,d=this.chart.time;b.length?(a.parentGroup||this.renderItem(a),"label"===a.itemType&&(e=c.format|| | ||
c.text,a.attr({text:e?F(e,b[0].getLabelConfig(),d):c.formatter.call(b[0])})),"path"===a.type?this.redrawPath(a):this.alignItem(a,!a.placed)):this.destroyItem(a)},destroyItem:function(a){v(this[a.itemType+"s"],a);a.destroy()},pointItem:function(a,b){b&&null!==b.series||(D(a)?b=L(this.chart,a):C(a)&&(b=this.chart.get(a)||null));return b},linkPoints:function(a){var b=a.options.points||a.options.point&&f.splat(a.options.point),c=a.points,e=b&&b.length,d,t;for(d=0;d<e;d++){t=this.pointItem(b[d],c[d]); | ||
if(!t)return a.points=[];c[d]=t}return c},alignItem:function(a,b){var c=this.itemAnchor(a,a.points[0]),e=this.itemPosition(a,c);e?(a.alignAttr=e,a.placed=!0,e.anchorX=c.absolutePosition.x,e.anchorY=c.absolutePosition.y,a[b?"attr":"animate"](e)):(a.placed=!1,a.attr({x:0,y:-9E9}))},redrawPath:function(a,b){var c=a.points,e=a["stroke-width"]||1,d=["M"],f=0,h=0,g=c&&c.length,k,r;if(g){do r=c[f],k=this.itemAnchor(a,r).absolutePosition,d[++h]=k.x,d[++h]=k.y,k=h%5,0===k&&(d[k+1]===d[k+4]&&(d[k+1]=d[k+4]= | ||
Math.round(d[k+1])-e%2/2),d[k+2]===d[k+5]&&(d[k+2]=d[k+5]=Math.round(d[k+2])+e%2/2)),f<g-1&&(d[++h]="L"),r=r.series.visible;while(++f<g&&r)}if(r)a[b?"attr":"animate"]({d:d});else a.attr({d:"M 0 -9000000000"});a.placed=r},renderItem:function(a){a.add("label"===a.itemType?this.labelsGroup:this.shapesGroup);this.setItemMarkers(a)},setItemMarkers:function(a){var b=a.options,c=this.chart,e=c.options.defs,d=b.fill,f=p(d)&&"none"!==d?d:b.stroke;n(["markerStart","markerEnd"],function(d){var g=b[d],k,h,t; | ||
if(g){for(t in e)if(k=e[t],g===k.id&&"marker"===k.tagName){h=k;break}h&&(g=a[d]=c.renderer.addMarker((b.id||G())+"-"+h.id,m(h,{color:f})),a.attr(d,g.attr("id")))}})},itemAnchor:function(a,b){a=b.series.getPlotBox();b=b.mock?b.alignToBox(!0):A.getAnchor.call({chart:this.chart},b);b={x:b[0],y:b[1],height:b[2]||0,width:b[3]||0};return{relativePosition:b,absolutePosition:m(b,{x:b.x+a.translateX,y:b.y+a.translateY})}},itemPosition:function(a,b){var c=this.chart,e=a.points[0],d=a.options,f=b.absolutePosition, | ||
h=b.relativePosition,g;if(b=e.series.visible&&y.prototype.isInsidePane.call(e))p(d.distance)||d.positioner?g=(d.positioner||A.getPosition).call({chart:c,distance:w(d.distance,16)},a.width,a.height,{plotX:h.x,plotY:h.y,negative:e.negative,ttBelow:e.ttBelow,h:h.height||h.width}):(e={x:f.x,y:f.y,width:0,height:0},g=this.alignedPosition(u(d,{width:a.width,height:a.height}),e),"justify"===a.options.overflow&&(g=this.alignedPosition(this.justifiedOptions(a,d,g),e))),d.crop&&(d=g.x-c.plotLeft,e=g.y-c.plotTop, | ||
b=c.isInsidePlot(d,e)&&c.isInsidePlot(d+a.width,e+a.height));return b?g:null},alignedPosition:function(a,b){var c=a.align,e=a.verticalAlign,d=(b.x||0)+(a.x||0),f=(b.y||0)+(a.y||0),h,g;"right"===c?h=1:"center"===c&&(h=2);h&&(d+=(b.width-(a.width||0))/h);"bottom"===e?g=1:"middle"===e&&(g=2);g&&(f+=(b.height-(a.height||0))/g);return{x:Math.round(d),y:Math.round(f)}},justifiedOptions:function(a,b,c){var e=this.chart,d=b.align,f=b.verticalAlign,h=a.box?0:a.padding||0,g=a.getBBox();a={align:d,verticalAlign:f, | ||
x:b.x,y:b.y,width:a.width,height:a.height};b=c.x-e.plotLeft;var k=c.y-e.plotTop;c=b+h;0>c&&("right"===d?a.align="left":a.x=-c);c=b+g.width-h;c>e.plotWidth&&("left"===d?a.align="right":a.x=e.plotWidth-c);c=k+h;0>c&&("bottom"===f?a.verticalAlign="top":a.y=-c);c=k+g.height-h;c>e.plotHeight&&("top"===f?a.verticalAlign="bottom":a.y=e.plotHeight-c);return a},attrsFromOptions:function(a){var b=this.attrsMap,c={},e,d;for(e in a)(d=b[e])&&(c[d]=a[e]);return c}};f.extend(x,{addAnnotation:function(a,b){a=new B(this, | ||
a);this.annotations.push(a);w(b,!0)&&a.redraw();return a},removeAnnotation:function(a){var b=this.annotations,c=E(b,function(b){return b.options.id===a});c&&(v(b,c),c.destroy())},drawAnnotations:function(){var a=this.plotBoxClip,b=this.plotBox;a?a.attr(b):this.plotBoxClip=this.renderer.clipRect(b);n(this.annotations,function(a){a.redraw()})}});x.callbacks.push(function(a){a.annotations=[];n(a.options.annotations,function(b){a.addAnnotation(b,!1)});a.drawAnnotations();l(a,"redraw",a.drawAnnotations); | ||
l(a,"destroy",function(){var b=a.plotBoxClip;b&&b.destroy&&b.destroy()})});f.wrap(x,"getContainer",function(a){this.options.defs=m(K,this.options.defs||{});a.call(this)});f.SVGRenderer.prototype.symbols.connector=function(a,b,c,e,d){var f=d&&d.anchorX;d=d&&d.anchorY;var h,g,k=c/2;z(f)&&z(d)&&(h=["M",f,d],g=b-d,0>g&&(g=-e-g),g<c&&(k=f<a+c/2?g:c-g),d>b+e?h.push("L",a+k,b+e):d<b?h.push("L",a+k,b):f<a?h.push("L",a,b+e/2):f>a+c&&h.push("L",a+c,b+e/2));return h||[]}})(l)}); |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* Annotations module | ||
@@ -23,3 +23,2 @@ * | ||
*/ | ||
/* eslint max-len: 0 */ | ||
@@ -250,20 +249,13 @@ var merge = H.merge, | ||
xAxis = series.xAxis, | ||
yAxis = series.yAxis, | ||
plotX = this.plotX, | ||
plotY = this.plotY, | ||
isInside = true; | ||
yAxis = series.yAxis; | ||
if (xAxis) { | ||
this.plotX = plotX = xAxis.toPixels(this.x, true); | ||
isInside = plotX >= 0 && plotX <= xAxis.len; | ||
this.plotX = xAxis.toPixels(this.x, true); | ||
} | ||
if (yAxis) { | ||
this.plotY = plotY = yAxis.toPixels(this.y, true); | ||
isInside = isInside && plotY >= 0 && plotY <= yAxis.len; | ||
this.plotY = yAxis.toPixels(this.y, true); | ||
} | ||
this.isInside = isInside; | ||
this.isInside = this.isInsidePane(); | ||
}, | ||
@@ -309,5 +301,8 @@ | ||
* @return {Object} labelConfig - label config object | ||
* @return {Number|undefined} labelConfig.x - x value translated to x axis scale | ||
* @return {Number|undefined} labelConfig.y - y value translated to y axis scale | ||
* @return {MockPoint} labelConfig.point - the instance of the point | ||
* @return {Number|undefined} labelConfig.x | ||
* X value translated to x axis scale | ||
* @return {Number|undefined} labelConfig.y | ||
* Y value translated to y axis scale | ||
* @return {MockPoint} labelConfig.point | ||
* The instance of the point | ||
*/ | ||
@@ -320,2 +315,23 @@ getLabelConfig: function() { | ||
}; | ||
}, | ||
isInsidePane: function() { | ||
var plotX = this.plotX, | ||
plotY = this.plotY, | ||
xAxis = this.series.xAxis, | ||
yAxis = this.series.yAxis, | ||
isInside = true; | ||
if (xAxis) { | ||
isInside = defined(plotX) && plotX >= 0 && plotX <= xAxis.len; | ||
} | ||
if (yAxis) { | ||
isInside = | ||
isInside && | ||
defined(plotY) && | ||
plotY >= 0 && plotY <= yAxis.len; | ||
} | ||
return isInside; | ||
} | ||
@@ -334,4 +350,4 @@ }; | ||
/** | ||
* An annotation class which serves as a container for items like labels or shapes. | ||
* Created items are positioned on the chart either by linking them to | ||
* An annotation class which serves as a container for items like labels or | ||
* shapes. Created items are positioned on the chart either by linking them to | ||
* existing points or created mock points | ||
@@ -480,3 +496,4 @@ * | ||
/** | ||
* Whether to hide the annotation's label that is outside the plot area. | ||
* Whether to hide the annotation's label that is outside the plot | ||
* area. | ||
* | ||
@@ -489,6 +506,17 @@ * @sample highcharts/annotations/label-crop-overflow/ | ||
/** | ||
* The label's pixel distance from the point. | ||
* | ||
* @type {Number} | ||
* @sample highcharts/annotations/label-position/ | ||
* Set labels position | ||
* @default undefined | ||
* @apioption annotations.labelOptions.distance | ||
**/ | ||
/** | ||
* A [format](https://www.highcharts.com/docs/chart-concepts/labels-and-string-formatting) string for the data label. | ||
* | ||
* @type {String} | ||
* @see [plotOptions.series.dataLabels.format](plotOptions.series.dataLabels.format.html) | ||
* @see [plotOptions.series.dataLabels.format](plotOptions. | ||
* series.dataLabels.format.html) | ||
* @sample highcharts/annotations/label-text/ | ||
@@ -512,5 +540,6 @@ * Set labels text | ||
/** | ||
* Callback JavaScript function to format the annotation's label. Note that | ||
* if a `format` or `text` are defined, the format or text take precedence | ||
* and the formatter is ignored. `This` refers to a point object. | ||
* Callback JavaScript function to format the annotation's label. | ||
* Note that if a `format` or `text` are defined, the format or text | ||
* take precedence and the formatter is ignored. `This` refers to a | ||
* point object. | ||
* | ||
@@ -573,3 +602,4 @@ * @type {Function} | ||
* Set labels graphic options | ||
* @see [plotOptions.series.dataLabels.style](plotOptions.series.dataLabels.style.html) | ||
* @see [plotOptions.series.dataLabels.style](plotOptions.series. | ||
* dataLabels.style.html) | ||
**/ | ||
@@ -583,4 +613,4 @@ style: { | ||
/** | ||
* Whether to [use HTML](http://www.highcharts.com/docs/chart-concepts/labels- | ||
* and-string-formatting#html) to render the annotation's label. | ||
* Whether to [use HTML](http://www.highcharts.com/docs/chart-concepts/labels-and-string-formatting#html) | ||
* to render the annotation's label. | ||
* | ||
@@ -621,17 +651,8 @@ * @type {Boolean} | ||
y: -16 | ||
/** | ||
* The label's pixel distance from the point. | ||
* | ||
* @type {Number} | ||
* @sample highcharts/annotations/label-position/ | ||
* Set labels position | ||
* @default undefined | ||
* @apioption annotations.labelOptions.distance | ||
**/ | ||
}, | ||
/** | ||
* An array of labels for the annotation. For options that apply to multiple | ||
* labels, they can be added to the [labelOptions](annotations.labelOptions.html). | ||
* An array of labels for the annotation. For options that apply to | ||
* multiple labels, they can be added to the | ||
* [labelOptions](annotations.labelOptions.html). | ||
* | ||
@@ -645,5 +666,5 @@ * @type {Array<Object>} | ||
* This option defines the point to which the label will be connected. | ||
* It can be either the point which exists in the series - it is referenced | ||
* by the point's id - or a new point with defined x, y properies | ||
* and optionally axes. | ||
* It can be either the point which exists in the series - it is | ||
* referenced by the point's id - or a new point with defined x, y | ||
* properies and optionally axes. | ||
* | ||
@@ -693,3 +714,58 @@ * @type {String|Object} | ||
/** | ||
* An array of shapes for the annotation. For options that apply to | ||
* multiple shapes, then can be added to the | ||
* [shapeOptions](annotations.shapeOptions.html). | ||
* | ||
* @type {Array<Object>} | ||
* @extends annotations.shapeOptions | ||
* @apioption annotations.shapes | ||
*/ | ||
/** | ||
* This option defines the point to which the shape will be connected. | ||
* It can be either the point which exists in the series - it is | ||
* referenced by the point's id - or a new point with defined x, y | ||
* properties and optionally axes. | ||
* | ||
* @type {String|Object} | ||
* @extends annotations.labels.point | ||
* @apioption annotations.shapes.point | ||
*/ | ||
/** | ||
* An array of points for the shape. This option is available for shapes | ||
* which can use multiple points such as path. A point can be either | ||
* a point object or a point's id. | ||
* | ||
* @type {Array} | ||
* @see [annotations.shapes.point](annotations.shapes.point.html) | ||
* @apioption annotations.shapes.points | ||
*/ | ||
/** | ||
* Id of the marker which will be drawn at the final vertex of the path. | ||
* Custom markers can be defined in defs property. | ||
* | ||
* @type {String} | ||
* @see [defs.markers](defs.markers.html) | ||
* @sample highcharts/annotations/custom-markers/ | ||
* Define a custom marker for annotations | ||
* @apioption annotations.shapes.markerEnd | ||
**/ | ||
/** | ||
* Id of the marker which will be drawn at the first vertex of the path. | ||
* Custom markers can be defined in defs property. | ||
* | ||
* @type {String} | ||
* @see [defs.markers](defs.markers.html) | ||
* @sample {highcharts} highcharts/annotations/custom-markers/ | ||
* Define a custom marker for annotations | ||
* @apioption annotations.shapes.markerStart | ||
**/ | ||
/** | ||
* Options for annotation's shapes. Each shape inherits options | ||
@@ -700,6 +776,24 @@ * from the shapeOptions object. An option from the shapeOptions can be | ||
* @type {Object} | ||
**/ | ||
*/ | ||
shapeOptions: { | ||
/** | ||
* The width of the shape. | ||
* | ||
* @type {Number} | ||
* @sample highcharts/annotations/shape/ | ||
* Basic shape annotation | ||
* @apioption annotations.shapeOptions.width | ||
**/ | ||
/** | ||
* The height of the shape. | ||
* | ||
* @type {Number} | ||
* @sample highcharts/annotations/shape/ | ||
* Basic shape annotation | ||
* @apioption annotations.shapeOptions.height | ||
**/ | ||
/** | ||
* The color of the shape's stroke. | ||
@@ -747,20 +841,2 @@ * | ||
r: 0 | ||
/** | ||
* The width of the shape. | ||
* | ||
* @type {Number} | ||
* @sample highcharts/annotations/shape/ | ||
* Basic shape annotation | ||
* @apioption annotations.shapeOptions.width | ||
**/ | ||
/** | ||
* The height of the shape. | ||
* | ||
* @type {Number} | ||
* @sample highcharts/annotations/shape/ | ||
* Basic shape annotation | ||
* @apioption annotations.shapeOptions.height | ||
**/ | ||
}, | ||
@@ -775,54 +851,2 @@ | ||
zIndex: 6 | ||
/** | ||
* An array of shapes for the annotation. For options that apply to multiple | ||
* shapes, then can be added to the [shapeOptions](annotations.shapeOptions.html). | ||
* | ||
* @type {Array<Object>} | ||
* @extends annotations.shapeOptions | ||
* @apioption annotations.shapes | ||
*/ | ||
/** | ||
* This option defines the point to which the shape will be connected. | ||
* It can be either the point which exists in the series - it is referenced | ||
* by the point's id - or a new point with defined x, y properties | ||
* and optionally axes. | ||
* | ||
* @type {String|Object} | ||
* @extends annotations.labels.point | ||
* @apioption annotations.shapes.point | ||
*/ | ||
/** | ||
* An array of points for the shape. This option is available for shapes | ||
* which can use multiple points such as path. A point can be either | ||
* a point object or a point's id. | ||
* | ||
* @type {Array} | ||
* @see [annotations.shapes.point](annotations.shapes.point.html) | ||
* @apioption annotations.shapes.points | ||
*/ | ||
/** | ||
* Id of the marker which will be drawn at the final vertex of the path. | ||
* Custom markers can be defined in defs property. | ||
* | ||
* @type {String} | ||
* @see [defs.markers](defs.markers.html) | ||
* @sample highcharts/annotations/custom-markers/ | ||
* Define a custom marker for annotations | ||
* @apioption annotations.shapes.markerEnd | ||
**/ | ||
/** | ||
* Id of the marker which will be drawn at the first vertex of the path. | ||
* Custom markers can be defined in defs property. | ||
* | ||
* @type {String} | ||
* @see [defs.markers](defs.markers.html) | ||
* @sample {highcharts} highcharts/annotations/custom-markers/ | ||
* Define a custom marker for annotations | ||
* @apioption annotations.shapes.markerStart | ||
**/ | ||
}, | ||
@@ -855,4 +879,4 @@ | ||
/** | ||
* Main method for drawing an annotation, it is called everytime on chart redraw | ||
* and once on chart's load | ||
* Main method for drawing an annotation, it is called everytime on chart | ||
* redraw and once on chart's load | ||
* | ||
@@ -1132,3 +1156,4 @@ * @function #redraw | ||
/** | ||
* Linking item with the point or points and returning an array of linked points | ||
* Linking item with the point or points and returning an array of linked | ||
* points. | ||
* | ||
@@ -1146,3 +1171,6 @@ * @function #linkPoints | ||
linkPoints: function(item) { | ||
var pointsOptions = item.options.points || (item.options.point && H.splat(item.options.point)), | ||
var pointsOptions = ( | ||
item.options.points || | ||
(item.options.point && H.splat(item.options.point)) | ||
), | ||
points = item.points, | ||
@@ -1173,3 +1201,4 @@ len = pointsOptions && pointsOptions.length, | ||
* @param {Object} item | ||
* @param {Boolean} isNew - if the label is re-positioned (is not new) it is animated | ||
* @param {Boolean} isNew | ||
* If the label is re-positioned (is not new) it is animated | ||
* @return {undefined} | ||
@@ -1220,12 +1249,17 @@ */ | ||
// crisping line, it might be replaced with Renderer.prototype.crispLine | ||
// but it requires creating many temporary arrays | ||
// Crisping line, it might be replaced with | ||
// Renderer.prototype.crispLine but it requires creating many | ||
// temporary arrays | ||
crispSegmentIndex = dIndex % 5; | ||
if (crispSegmentIndex === 0) { | ||
if (d[crispSegmentIndex + 1] === d[crispSegmentIndex + 4]) { | ||
d[crispSegmentIndex + 1] = d[crispSegmentIndex + 4] = Math.round(d[crispSegmentIndex + 1]) - (strokeWidth % 2 / 2); | ||
d[crispSegmentIndex + 1] = d[crispSegmentIndex + 4] = | ||
Math.round(d[crispSegmentIndex + 1]) - | ||
(strokeWidth % 2 / 2); | ||
} | ||
if (d[crispSegmentIndex + 2] === d[crispSegmentIndex + 5]) { | ||
d[crispSegmentIndex + 2] = d[crispSegmentIndex + 5] = Math.round(d[crispSegmentIndex + 2]) + (strokeWidth % 2 / 2); | ||
d[crispSegmentIndex + 2] = d[crispSegmentIndex + 5] = | ||
Math.round(d[crispSegmentIndex + 2]) + | ||
(strokeWidth % 2 / 2); | ||
} | ||
@@ -1259,3 +1293,7 @@ } | ||
renderItem: function(item) { | ||
item.add(item.itemType === 'label' ? this.labelsGroup : this.shapesGroup); | ||
item.add( | ||
item.itemType === 'label' ? | ||
this.labelsGroup : | ||
this.shapesGroup | ||
); | ||
@@ -1270,3 +1308,5 @@ this.setItemMarkers(item); | ||
fill = itemOptions.fill, | ||
color = defined(fill) && fill !== 'none' ? fill : itemOptions.stroke, | ||
color = defined(fill) && fill !== 'none' ? | ||
fill : | ||
itemOptions.stroke, | ||
@@ -1292,3 +1332,4 @@ | ||
marker = item[markerType] = chart.renderer.addMarker( | ||
(itemOptions.id || uniqueKey()) + '-' + predefinedMarker.id, | ||
(itemOptions.id || uniqueKey()) + '-' + | ||
predefinedMarker.id, | ||
merge(predefinedMarker, { | ||
@@ -1326,4 +1367,6 @@ color: color | ||
* @return {Object} anchor | ||
* @return {AnchorPosition} anchor.relativePosition - relative to the plot area position | ||
* @return {AnchorPosition} anchor.absolutePosition - absolute position | ||
* @return {AnchorPosition} anchor.relativePosition | ||
* Relative to the plot area position | ||
* @return {AnchorPosition} anchor.absolutePosition | ||
* Absolute position | ||
*/ | ||
@@ -1380,4 +1423,3 @@ itemAnchor: function(item, point) { | ||
point.series.visible && | ||
point.isInside !== false && | ||
(point.mock || point.graphic); | ||
MockPoint.prototype.isInsidePane.call(point); | ||
@@ -1387,3 +1429,6 @@ if (showItem) { | ||
if (defined(itemOptions.distance) || itemOptions.positioner) { | ||
itemPosition = (itemOptions.positioner || tooltipPrototype.getPosition).call({ | ||
itemPosition = ( | ||
itemOptions.positioner || | ||
tooltipPrototype.getPosition | ||
).call({ | ||
chart: chart, | ||
@@ -1398,3 +1443,4 @@ distance: pick(itemOptions.distance, 16) | ||
ttBelow: point.ttBelow, | ||
h: anchorRelativePosition.height || anchorRelativePosition.width | ||
h: anchorRelativePosition.height || | ||
anchorRelativePosition.width | ||
} | ||
@@ -1490,5 +1536,6 @@ ); | ||
/** | ||
* Returns new alignment options for a label if the label is outside the plot area. | ||
* It is almost a one-to-one copy from Series.prototype.justifyDataLabel | ||
* except it does not mutate the label and it works with absolute instead of relative position | ||
* Returns new alignment options for a label if the label is outside the | ||
* plot area. It is almost a one-to-one copy from | ||
* Series.prototype.justifyDataLabel except it does not mutate the label and | ||
* it works with absolute instead of relative position. | ||
* | ||
@@ -1495,0 +1542,0 @@ * @function #justifiedOptions |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Boost module | ||
@@ -4,0 +4,0 @@ |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* Boost module | ||
@@ -29,3 +29,2 @@ * | ||
*/ | ||
/* eslint max-len: 0 */ | ||
@@ -61,3 +60,7 @@ var win = H.win, | ||
if (plotY !== undefined && !isNaN(plotY) && point.y !== null) { | ||
if ( | ||
plotY !== undefined && | ||
!isNaN(plotY) && | ||
point.y !== null | ||
) { | ||
shapeArgs = point.shapeArgs; | ||
@@ -70,3 +73,8 @@ | ||
ctx.fillStyle = pointAttr.fill; | ||
ctx.fillRect(shapeArgs.x, shapeArgs.y, shapeArgs.width, shapeArgs.height); | ||
ctx.fillRect( | ||
shapeArgs.x, | ||
shapeArgs.y, | ||
shapeArgs.width, | ||
shapeArgs.height | ||
); | ||
} | ||
@@ -78,6 +86,9 @@ }); | ||
} else { | ||
this.chart.showLoading('Your browser doesn\'t support HTML5 canvas, <br>please use a modern browser'); | ||
this.chart.showLoading( | ||
'Your browser doesn\'t support HTML5 canvas, <br>' + | ||
'please use a modern browser'); | ||
// Uncomment this to provide low-level (slow) support in oldIE. It will cause script errors on | ||
// charts with more than a few thousand points. | ||
// Uncomment this to provide low-level (slow) support in oldIE. | ||
// It will cause script errors on charts with more than a few | ||
// thousand points. | ||
// arguments[0].call(this); | ||
@@ -92,4 +103,4 @@ } | ||
/** | ||
* Create a hidden canvas to draw the graph on. The contents is later copied over | ||
* to an SVG image element. | ||
* Create a hidden canvas to draw the graph on. The contents is later | ||
* copied over to an SVG image element. | ||
*/ | ||
@@ -246,3 +257,4 @@ getContext: function() { | ||
doFill = this.fill, | ||
isRange = series.pointArrayMap && series.pointArrayMap.join(',') === 'low,high', | ||
isRange = series.pointArrayMap && | ||
series.pointArrayMap.join(',') === 'low,high', | ||
isStacked = !!options.stacking, | ||
@@ -262,3 +274,5 @@ cropStart = series.cropStart || 0, | ||
fillColor = series.fillOpacity ? | ||
new Color(series.color).setOpacity(pick(options.fillOpacity, 0.75)).get() : | ||
new Color(series.color).setOpacity( | ||
pick(options.fillOpacity, 0.75) | ||
).get() : | ||
series.color, | ||
@@ -286,3 +300,7 @@ | ||
if (chart.scroller && series.options.className === 'highcharts-navigator-series') { | ||
if ( | ||
chart.scroller && | ||
series.options.className === | ||
'highcharts-navigator-series' | ||
) { | ||
plotY += chart.scroller.top; | ||
@@ -302,3 +320,9 @@ if (yBottom) { | ||
if (cvsDrawPoint) { | ||
cvsDrawPoint(ctx, clientX, plotY, yBottom, lastPoint); | ||
cvsDrawPoint( | ||
ctx, | ||
clientX, | ||
plotY, | ||
yBottom, | ||
lastPoint | ||
); | ||
} else if (cvsLineTo) { | ||
@@ -311,4 +335,5 @@ cvsLineTo(ctx, clientX, plotY); | ||
// We need to stroke the line for every 1000 pixels. It will crash the browser | ||
// memory use if we stroke too infrequently. | ||
// We need to stroke the line for every 1000 pixels. It will | ||
// crash the browser memory use if we stroke too | ||
// infrequently. | ||
c = c + 1; | ||
@@ -332,4 +357,5 @@ if (c === strokeBatch) { | ||
// The k-d tree requires series points. Reduce the amount of points, since the time to build the | ||
// tree increases exponentially. | ||
// The k-d tree requires series points. Reduce the amount of | ||
// points, since the time to build the tree increases | ||
// exponentially. | ||
if (enableMouseTracking && !pointTaken[kdIndex]) { | ||
@@ -402,3 +428,4 @@ pointTaken[kdIndex] = true; | ||
labelStyle: { | ||
backgroundColor: H.color('#ffffff').setOpacity(0.75).get(), | ||
backgroundColor: H.color('#ffffff') | ||
.setOpacity(0.75).get(), | ||
padding: '1em', | ||
@@ -513,4 +540,5 @@ borderRadius: '0.5em' | ||
} | ||
if (clientX !== lastClientX) { // Add points and reset | ||
if (minI !== undefined) { // then maxI is also a number | ||
// Add points and reset | ||
if (clientX !== lastClientX) { | ||
if (minI !== undefined) { // maxI also a number | ||
plotY = yAxis.toPixels(maxVal, true); | ||
@@ -520,4 +548,12 @@ yBottom = yAxis.toPixels(minVal, true); | ||
clientX, | ||
hasThreshold ? Math.min(plotY, translatedThreshold) : plotY, | ||
hasThreshold ? Math.max(yBottom, translatedThreshold) : yBottom, | ||
hasThreshold ? | ||
Math.min( | ||
plotY, | ||
translatedThreshold | ||
) : plotY, | ||
hasThreshold ? | ||
Math.max( | ||
yBottom, | ||
translatedThreshold | ||
) : yBottom, | ||
i | ||
@@ -567,5 +603,6 @@ ); | ||
// Do not use chart.hideLoading, as it runs JS animation and will be blocked by buildKDTree. | ||
// CSS animation looks good, but then it must be deleted in timeout. If we add the module to core, | ||
// change hideLoading so we can skip this block. | ||
// Do not use chart.hideLoading, as it runs JS animation and | ||
// will be blocked by buildKDTree. CSS animation looks good, but | ||
// then it must be deleted in timeout. If we add the module to | ||
// core, change hideLoading so we can skip this block. | ||
if (loadingShown) { | ||
@@ -585,6 +622,9 @@ extend(loadingDiv.style, { | ||
delete series.buildKDTree; // Go back to prototype, ready to build | ||
// Go back to prototype, ready to build | ||
delete series.buildKDTree; | ||
series.buildKDTree(); | ||
// Don't do async on export, the exportChart, getSVGForExport and getSVG methods are not chained for it. | ||
// Don't do async on export, the exportChart, getSVGForExport and | ||
// getSVG methods are not chained for it. | ||
}, chart.renderer.forExport ? Number.MAX_VALUE : undefined); | ||
@@ -594,10 +634,8 @@ } | ||
/* | ||
wrap(Series.prototype, 'setData', function (proceed) { | ||
if (!this.hasExtremes || !this.hasExtremes(true) || this.type === 'heatmap') { | ||
proceed.apply(this, Array.prototype.slice.call(arguments, 1)); | ||
} | ||
}); | ||
*/ | ||
seriesTypes.scatter.prototype.cvsMarkerCircle = function(ctx, clientX, plotY, r) { | ||
seriesTypes.scatter.prototype.cvsMarkerCircle = function( | ||
ctx, | ||
clientX, | ||
plotY, | ||
r | ||
) { | ||
ctx.moveTo(clientX, plotY); | ||
@@ -608,3 +646,8 @@ ctx.arc(clientX, plotY, r, 0, 2 * Math.PI, false); | ||
// Rect is twice as fast as arc, should be used for small markers | ||
seriesTypes.scatter.prototype.cvsMarkerSquare = function(ctx, clientX, plotY, r) { | ||
seriesTypes.scatter.prototype.cvsMarkerSquare = function( | ||
ctx, | ||
clientX, | ||
plotY, | ||
r | ||
) { | ||
ctx.rect(clientX - r, plotY - r, r * 2, r * 2); | ||
@@ -615,5 +658,16 @@ }; | ||
if (seriesTypes.bubble) { | ||
seriesTypes.bubble.prototype.cvsMarkerCircle = function(ctx, clientX, plotY, r, i) { | ||
seriesTypes.bubble.prototype.cvsMarkerCircle = function( | ||
ctx, | ||
clientX, | ||
plotY, | ||
r, | ||
i | ||
) { | ||
ctx.moveTo(clientX, plotY); | ||
ctx.arc(clientX, plotY, this.radii && this.radii[i], 0, 2 * Math.PI, false); | ||
ctx.arc( | ||
clientX, | ||
plotY, | ||
this.radii && this.radii[i], 0, 2 * Math.PI, | ||
false | ||
); | ||
}; | ||
@@ -620,0 +674,0 @@ seriesTypes.bubble.prototype.cvsStrokeBatch = 1; |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Boost module | ||
@@ -10,34 +10,34 @@ | ||
*/ | ||
(function(A){"object"===typeof module&&module.exports?module.exports=A:A(Highcharts)})(function(A){(function(h){function A(){var a=Array.prototype.slice.call(arguments),d=-Number.MAX_VALUE;p(a,function(a){if("undefined"!==typeof a&&null!==a&&"undefined"!==typeof a.length&&0<a.length)return d=a.length,!0});return d}function N(a){var d=0,c=0,f=H(a.options.boost&&a.options.boost.allowForce,!0),b;if("undefined"!==typeof a.boostForceChartBoost)return a.boostForceChartBoost;if(1<a.series.length)for(var k= | ||
(function(A){"object"===typeof module&&module.exports?module.exports=A:A(Highcharts)})(function(A){(function(h){function A(){var a=Array.prototype.slice.call(arguments),d=-Number.MAX_VALUE;p(a,function(a){if("undefined"!==typeof a&&null!==a&&"undefined"!==typeof a.length&&0<a.length)return d=a.length,!0});return d}function N(a){var d=0,c=0,f=G(a.options.boost&&a.options.boost.allowForce,!0),b;if("undefined"!==typeof a.boostForceChartBoost)return a.boostForceChartBoost;if(1<a.series.length)for(var k= | ||
0;k<a.series.length;k++)b=a.series[k],J[b.type]&&++c,A(b.processedXData,b.options.data,b.points)>=(b.options.boostThreshold||Number.MAX_VALUE)&&++d;a.boostForceChartBoost=f&&c===a.series.length&&0<d||5<d;return a.boostForceChartBoost}function ka(a){function d(b,e){e=a.createShader("vertex"===e?a.VERTEX_SHADER:a.FRAGMENT_SHADER);a.shaderSource(e,b);a.compileShader(e);return a.getShaderParameter(e,a.COMPILE_STATUS)?e:!1}function c(){function b(b){return a.getUniformLocation(k,b)}var c=d("#version 100\nprecision highp float;\nattribute vec4 aVertexPosition;\nattribute vec4 aColor;\nvarying highp vec2 position;\nvarying highp vec4 vColor;\nuniform mat4 uPMatrix;\nuniform float pSize;\nuniform float translatedThreshold;\nuniform bool hasThreshold;\nuniform bool skipTranslation;\nuniform float plotHeight;\nuniform float xAxisTrans;\nuniform float xAxisMin;\nuniform float xAxisMinPad;\nuniform float xAxisPointRange;\nuniform float xAxisLen;\nuniform bool xAxisPostTranslate;\nuniform float xAxisOrdinalSlope;\nuniform float xAxisOrdinalOffset;\nuniform float xAxisPos;\nuniform bool xAxisCVSCoord;\nuniform float yAxisTrans;\nuniform float yAxisMin;\nuniform float yAxisMinPad;\nuniform float yAxisPointRange;\nuniform float yAxisLen;\nuniform bool yAxisPostTranslate;\nuniform float yAxisOrdinalSlope;\nuniform float yAxisOrdinalOffset;\nuniform float yAxisPos;\nuniform bool yAxisCVSCoord;\nuniform bool isBubble;\nuniform bool bubbleSizeByArea;\nuniform float bubbleZMin;\nuniform float bubbleZMax;\nuniform float bubbleZThreshold;\nuniform float bubbleMinSize;\nuniform float bubbleMaxSize;\nuniform bool bubbleSizeAbs;\nuniform bool isInverted;\nfloat bubbleRadius(){\nfloat value \x3d aVertexPosition.w;\nfloat zMax \x3d bubbleZMax;\nfloat zMin \x3d bubbleZMin;\nfloat radius \x3d 0.0;\nfloat pos \x3d 0.0;\nfloat zRange \x3d zMax - zMin;\nif (bubbleSizeAbs){\nvalue \x3d value - bubbleZThreshold;\nzMax \x3d max(zMax - bubbleZThreshold, zMin - bubbleZThreshold);\nzMin \x3d 0.0;\n}\nif (value \x3c zMin){\nradius \x3d bubbleZMin / 2.0 - 1.0;\n} else {\npos \x3d zRange \x3e 0.0 ? (value - zMin) / zRange : 0.5;\nif (bubbleSizeByArea \x26\x26 pos \x3e 0.0){\npos \x3d sqrt(pos);\n}\nradius \x3d ceil(bubbleMinSize + pos * (bubbleMaxSize - bubbleMinSize)) / 2.0;\n}\nreturn radius * 2.0;\n}\nfloat translate(float val,\nfloat pointPlacement,\nfloat localA,\nfloat localMin,\nfloat minPixelPadding,\nfloat pointRange,\nfloat len,\nbool cvsCoord\n){\nfloat sign \x3d 1.0;\nfloat cvsOffset \x3d 0.0;\nif (cvsCoord) {\nsign *\x3d -1.0;\ncvsOffset \x3d len;\n}\nreturn sign * (val - localMin) * localA + cvsOffset + \n(sign * minPixelPadding);\n}\nfloat xToPixels(float value){\nif (skipTranslation){\nreturn value;// + xAxisPos;\n}\nreturn translate(value, 0.0, xAxisTrans, xAxisMin, xAxisMinPad, xAxisPointRange, xAxisLen, xAxisCVSCoord);// + xAxisPos;\n}\nfloat yToPixels(float value, float checkTreshold){\nfloat v;\nif (skipTranslation){\nv \x3d value;// + yAxisPos;\n} else {\nv \x3d translate(value, 0.0, yAxisTrans, yAxisMin, yAxisMinPad, yAxisPointRange, yAxisLen, yAxisCVSCoord);// + yAxisPos;\nif (v \x3e plotHeight) {\nv \x3d plotHeight;\n}\n}\nif (checkTreshold \x3e 0.0 \x26\x26 hasThreshold) {\nv \x3d min(v, translatedThreshold);\n}\nreturn v;\n}\nvoid main(void) {\nif (isBubble){\ngl_PointSize \x3d bubbleRadius();\n} else {\ngl_PointSize \x3d pSize;\n}\nvColor \x3d aColor;\nif (isInverted) {\ngl_Position \x3d uPMatrix * vec4(xToPixels(aVertexPosition.y) + yAxisPos, yToPixels(aVertexPosition.x, aVertexPosition.z) + xAxisPos, 0.0, 1.0);\n} else {\ngl_Position \x3d uPMatrix * vec4(xToPixels(aVertexPosition.x) + xAxisPos, yToPixels(aVertexPosition.y, aVertexPosition.z) + yAxisPos, 0.0, 1.0);\n}\n}", | ||
"vertex"),f=d("precision highp float;\nuniform vec4 fillColor;\nvarying highp vec2 position;\nvarying highp vec4 vColor;\nuniform sampler2D uSampler;\nuniform bool isCircle;\nuniform bool hasColor;\nvoid main(void) {\nvec4 col \x3d fillColor;\nvec4 tcol;\nif (hasColor) {\ncol \x3d vColor;\n}\nif (isCircle) {\ntcol \x3d texture2D(uSampler, gl_PointCoord.st);\ncol *\x3d tcol;\nif (tcol.r \x3c 0.0) {\ndiscard;\n} else {\ngl_FragColor \x3d col;\n}\n} else {\ngl_FragColor \x3d col;\n}\n}","fragment"); | ||
if(!c||!f)return k=!1;k=a.createProgram();a.attachShader(k,c);a.attachShader(k,f);a.linkProgram(k);a.useProgram(k);a.bindAttribLocation(k,0,"aVertexPosition");h=b("uPMatrix");m=b("pSize");Q=b("fillColor");q=b("isBubble");g=b("bubbleSizeAbs");C=b("bubbleSizeByArea");v=b("uSampler");e=b("skipTranslation");x=b("isCircle");p=b("isInverted");E=b("plotHeight");return!0}function f(e,c){e=b[e]=b[e]||a.getUniformLocation(k,e);a.uniform1f(e,c)}var b={},k,h,m,Q,q,g,C,e,x,p,E,v;a&&c();return{psUniform:function(){return m}, | ||
pUniform:function(){return h},fillColorUniform:function(){return Q},setPlotHeight:function(b){a.uniform1f(E,b)},setBubbleUniforms:function(b,e,c){var d=b.options,k=Number.MAX_VALUE,h=-Number.MAX_VALUE;"bubble"===b.type&&(k=H(d.zMin,Math.min(k,Math.max(e,!1===d.displayNegative?d.zThreshold:-Number.MAX_VALUE))),h=H(d.zMax,Math.max(h,c)),a.uniform1i(q,1),a.uniform1i(x,1),a.uniform1i(C,"width"!==b.options.sizeBy),a.uniform1i(g,b.options.sizeByAbsoluteValue),f("bubbleZMin",k),f("bubbleZMax",h),f("bubbleZThreshold", | ||
b.options.zThreshold),f("bubbleMinSize",b.minPxSize),f("bubbleMaxSize",b.maxPxSize))},bind:function(){a.useProgram(k)},program:function(){return k},create:c,setUniform:f,setPMatrix:function(b){a.uniformMatrix4fv(h,!1,b)},setColor:function(b){a.uniform4f(Q,b[0]/255,b[1]/255,b[2]/255,b[3])},setPointSize:function(b){a.uniform1f(m,b)},setSkipTranslation:function(b){a.uniform1i(e,!0===b?1:0)},setTexture:function(){a.uniform1i(v,0)},setDrawAsCircle:function(b){a.uniform1i(x,b?1:0)},reset:function(){a.uniform1i(q, | ||
0);a.uniform1i(x,0)},setInverted:function(b){a.uniform1i(p,b)},destroy:function(){a&&k&&(a.deleteProgram(k),k=!1)}}}function ba(a,d,c){function f(){b&&(a.deleteBuffer(b),k=b=!1);p=0;h=c||2;q=[]}var b=!1,k=!1,h=c||2,m=!1,p=0,q;return{destroy:f,bind:function(){if(!b)return!1;a.vertexAttribPointer(k,h,a.FLOAT,!1,0,0)},data:q,build:function(c,C,e){var g;q=c||[];if(!(q&&0!==q.length||m))return f(),!1;h=e||h;b&&a.deleteBuffer(b);m||(g=new Float32Array(q));b=a.createBuffer();a.bindBuffer(a.ARRAY_BUFFER, | ||
b);a.bufferData(a.ARRAY_BUFFER,m||g,a.STATIC_DRAW);k=a.getAttribLocation(d.program(),C);a.enableVertexAttribArray(k);return!0},render:function(c,d,e){var f=m?m.length:q.length;if(!b||!f)return!1;if(!c||c>f||0>c)c=0;if(!d||d>f)d=f;a.drawArrays(a[(e||"points").toUpperCase()],c/h,(d-c)/h);return!0},allocate:function(a){p=-1;m=new Float32Array(4*a)},push:function(a,b,e,c){m&&(m[++p]=a,m[++p]=b,m[++p]=e,m[++p]=c)}}}function la(a){function d(a){var b,e;return a.isSeriesBoosting?(b=!!a.options.stacking, | ||
e=a.xData||a.options.xData||a.processedXData,b=(b?a.data:e||a.options.data).length,"treemap"===a.type?b*=12:"heatmap"===a.type?b*=6:J[a.type]&&(b*=2),b):0}function c(){e.clear(e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT)}function f(a,b){function e(a){a&&(b.colorData.push(a[0]),b.colorData.push(a[1]),b.colorData.push(a[2]),b.colorData.push(a[3]))}function c(a,b,c,d,f){e(f);n.usePreallocated?C.push(a,b,c?1:0,d||1):(E.push(a),E.push(b),E.push(c?1:0),E.push(d||1))}function d(){b.segments.length&&(b.segments[b.segments.length- | ||
1].to=E.length)}function f(){b.segments.length&&b.segments[b.segments.length-1].from===E.length||(d(),b.segments.push({from:E.length}))}function F(a,b,d,f,F){e(F);c(a+d,b);e(F);c(a,b);e(F);c(a,b+f);e(F);c(a,b+f);e(F);c(a+d,b+f);e(F);c(a+d,b)}function O(a){n.useGPUTranslations||(b.skipTranslation=!0,a.x=H.toPixels(a.x,!0),a.y=aa.toPixels(a.y,!0));c(a.x,a.y,0,2)}var g=a.pointArrayMap&&"low,high"===a.pointArrayMap.join(","),k=a.chart,m=a.options,v=!!m.stacking,l=m.data,q=a.xAxis.getExtremes(),x=q.min, | ||
q=q.max,w=a.yAxis.getExtremes(),z=w.min,w=w.max,u=a.xData||m.xData||a.processedXData,A=a.yData||m.yData||a.processedYData,B=a.zData||m.zData||a.processedZData,aa=a.yAxis,H=a.xAxis,V=a.chart.plotHeight,M=!u||0===u.length,U=m.connectNulls,r=a.points||!1,I=!1,Q=!1,y,R,S,l=v?a.data:u||l,u={x:-Number.MAX_VALUE,y:0},G={x:Number.MIN_VALUE,y:0},K=0,t,L,D=-1,X=!1,Y=!1,Z,P="undefined"===typeof k.index,W=!1,N=!1,ba=J[a.type],T=!1,ca=!0;if(!(m.boostData&&0<m.boostData.length)){a.closestPointRangePx=Number.MAX_VALUE; | ||
if(!c||!f)return k=!1;k=a.createProgram();a.attachShader(k,c);a.attachShader(k,f);a.linkProgram(k);a.useProgram(k);a.bindAttribLocation(k,0,"aVertexPosition");h=b("uPMatrix");m=b("pSize");Q=b("fillColor");n=b("isBubble");g=b("bubbleSizeAbs");C=b("bubbleSizeByArea");v=b("uSampler");e=b("skipTranslation");x=b("isCircle");p=b("isInverted");E=b("plotHeight");return!0}function f(e,c){e=b[e]=b[e]||a.getUniformLocation(k,e);a.uniform1f(e,c)}var b={},k,h,m,Q,n,g,C,e,x,p,E,v;a&&c();return{psUniform:function(){return m}, | ||
pUniform:function(){return h},fillColorUniform:function(){return Q},setPlotHeight:function(b){a.uniform1f(E,b)},setBubbleUniforms:function(b,e,c){var d=b.options,k=Number.MAX_VALUE,h=-Number.MAX_VALUE;"bubble"===b.type&&(k=G(d.zMin,Math.min(k,Math.max(e,!1===d.displayNegative?d.zThreshold:-Number.MAX_VALUE))),h=G(d.zMax,Math.max(h,c)),a.uniform1i(n,1),a.uniform1i(x,1),a.uniform1i(C,"width"!==b.options.sizeBy),a.uniform1i(g,b.options.sizeByAbsoluteValue),f("bubbleZMin",k),f("bubbleZMax",h),f("bubbleZThreshold", | ||
b.options.zThreshold),f("bubbleMinSize",b.minPxSize),f("bubbleMaxSize",b.maxPxSize))},bind:function(){a.useProgram(k)},program:function(){return k},create:c,setUniform:f,setPMatrix:function(b){a.uniformMatrix4fv(h,!1,b)},setColor:function(b){a.uniform4f(Q,b[0]/255,b[1]/255,b[2]/255,b[3])},setPointSize:function(b){a.uniform1f(m,b)},setSkipTranslation:function(b){a.uniform1i(e,!0===b?1:0)},setTexture:function(){a.uniform1i(v,0)},setDrawAsCircle:function(b){a.uniform1i(x,b?1:0)},reset:function(){a.uniform1i(n, | ||
0);a.uniform1i(x,0)},setInverted:function(b){a.uniform1i(p,b)},destroy:function(){a&&k&&(a.deleteProgram(k),k=!1)}}}function ba(a,d,c){function f(){b&&(a.deleteBuffer(b),k=b=!1);p=0;h=c||2;n=[]}var b=!1,k=!1,h=c||2,m=!1,p=0,n;return{destroy:f,bind:function(){if(!b)return!1;a.vertexAttribPointer(k,h,a.FLOAT,!1,0,0)},data:n,build:function(c,C,e){var g;n=c||[];if(!(n&&0!==n.length||m))return f(),!1;h=e||h;b&&a.deleteBuffer(b);m||(g=new Float32Array(n));b=a.createBuffer();a.bindBuffer(a.ARRAY_BUFFER, | ||
b);a.bufferData(a.ARRAY_BUFFER,m||g,a.STATIC_DRAW);k=a.getAttribLocation(d.program(),C);a.enableVertexAttribArray(k);return!0},render:function(c,d,e){var f=m?m.length:n.length;if(!b||!f)return!1;if(!c||c>f||0>c)c=0;if(!d||d>f)d=f;a.drawArrays(a[(e||"points").toUpperCase()],c/h,(d-c)/h);return!0},allocate:function(a){p=-1;m=new Float32Array(4*a)},push:function(a,b,e,c){m&&(m[++p]=a,m[++p]=b,m[++p]=e,m[++p]=c)}}}function la(a){function d(a){var b,e;return a.isSeriesBoosting?(b=!!a.options.stacking, | ||
e=a.xData||a.options.xData||a.processedXData,b=(b?a.data:e||a.options.data).length,"treemap"===a.type?b*=12:"heatmap"===a.type?b*=6:J[a.type]&&(b*=2),b):0}function c(){e.clear(e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT)}function f(a,b){function e(a){a&&(b.colorData.push(a[0]),b.colorData.push(a[1]),b.colorData.push(a[2]),b.colorData.push(a[3]))}function c(a,b,c,d,f){e(f);q.usePreallocated?C.push(a,b,c?1:0,d||1):(E.push(a),E.push(b),E.push(c?1:0),E.push(d||1))}function d(){b.segments.length&&(b.segments[b.segments.length- | ||
1].to=E.length)}function f(){b.segments.length&&b.segments[b.segments.length-1].from===E.length||(d(),b.segments.push({from:E.length}))}function F(a,b,d,f,F){e(F);c(a+d,b);e(F);c(a,b);e(F);c(a,b+f);e(F);c(a,b+f);e(F);c(a+d,b+f);e(F);c(a+d,b)}function O(a){q.useGPUTranslations||(b.skipTranslation=!0,a.x=G.toPixels(a.x,!0),a.y=aa.toPixels(a.y,!0));c(a.x,a.y,0,2)}var g=a.pointArrayMap&&"low,high"===a.pointArrayMap.join(","),k=a.chart,m=a.options,v=!!m.stacking,l=m.data,n=a.xAxis.getExtremes(),x=n.min, | ||
n=n.max,w=a.yAxis.getExtremes(),y=w.min,w=w.max,u=a.xData||m.xData||a.processedXData,A=a.yData||m.yData||a.processedYData,B=a.zData||m.zData||a.processedZData,aa=a.yAxis,G=a.xAxis,V=a.chart.plotHeight,M=!u||0===u.length,U=m.connectNulls,r=a.points||!1,I=!1,Q=!1,z,R,S,l=v?a.data:u||l,u={x:-Number.MAX_VALUE,y:0},H={x:Number.MIN_VALUE,y:0},K=0,t,L,D=-1,X=!1,Y=!1,Z,P="undefined"===typeof k.index,W=!1,N=!1,ba=J[a.type],T=!1,ca=!0;if(!(m.boostData&&0<m.boostData.length)){a.closestPointRangePx=Number.MAX_VALUE; | ||
f();if(r&&0<r.length)b.skipTranslation=!0,b.drawMode="triangles",r[0].node&&r[0].node.levelDynamic&&r.sort(function(a,b){if(a.node){if(a.node.levelDynamic>b.node.levelDynamic)return 1;if(a.node.levelDynamic<b.node.levelDynamic)return-1}return 0}),p(r,function(b){var c=b.plotY,e;"undefined"===typeof c||isNaN(c)||null===b.y||(c=b.shapeArgs,e=b.series.colorAttribs(b),b=e["stroke-width"]||0,R=h.color(e.fill).rgba,R[0]/=255,R[1]/=255,R[2]/=255,"treemap"===a.type&&(b=b||1,S=h.color(e.stroke).rgba,S[0]/= | ||
255,S[1]/=255,S[2]/=255,F(c.x,c.y,c.width,c.height,S),b/=2),"heatmap"===a.type&&k.inverted&&(c.x=H.len-c.x,c.y=aa.len-c.y,c.width=-c.width,c.height=-c.height),F(c.x+b,c.y+b,c.width-2*b,c.height-2*b,R))});else{for(;D<l.length-1;){y=l[++D];if(P)break;M?(r=y[0],t=y[1],l[D+1]&&(Y=l[D+1][0]),l[D-1]&&(X=l[D-1][0]),3<=y.length&&(L=y[2],y[2]>b.zMax&&(b.zMax=y[2]),y[2]<b.zMin&&(b.zMin=y[2]))):(r=y,t=A[D],l[D+1]&&(Y=l[D+1]),l[D-1]&&(X=l[D-1]),B&&B.length&&(L=B[D],B[D]>b.zMax&&(b.zMax=B[D]),B[D]<b.zMin&&(b.zMin= | ||
B[D])));if(U||null!==r&&null!==t){if(Y&&Y>=x&&Y<=q&&(W=!0),X&&X>=x&&X<=q&&(N=!0),g?(M&&(t=y.slice(1,3)),Z=t[0],t=t[1]):v&&(r=y.x,t=y.stackY,Z=t-y.y),null!==z&&"undefined"!==typeof z&&null!==w&&"undefined"!==typeof w&&(ca=t>=z&&t<=w),r>q&&G.x<q&&(G.x=r,G.y=t),r<x&&u.x<x&&(u.x=r,u.y=t),null!==t||!U)if(null!==t&&ca){if(r>=x&&r<=q&&(T=!0),T||W||N){n.useGPUTranslations||(b.skipTranslation=!0,r=H.toPixels(r,!0),t=aa.toPixels(t,!0),t>V&&(t=V));if(ba){y=Z;if(!1===Z||"undefined"===typeof Z)y=0>t?t:0;n.useGPUTranslations|| | ||
(y=aa.toPixels(y,!0));c(r,y,0,0,!1)}b.hasMarkers&&(y=n.useGPUTranslations?H.toPixels(r,!0):r,!1!==I&&(a.closestPointRangePx=Math.min(a.closestPointRangePx,Math.abs(y-I))));!n.useGPUTranslations&&!n.usePreallocated&&I&&1>r-I&&Q&&1>Math.abs(t-Q)?n.debug.showSkipSummary&&++K:(m.step&&c(r,Q,0,2,!1),c(r,t,0,"bubble"===a.type?L||1:2,!1),I=r,Q=t)}}else f()}else f()}n.debug.showSkipSummary&&console.log("skipped points:",K);!I&&!1!==U&&u>-Number.MAX_VALUE&&G<Number.MAX_VALUE&&(O(u),O(G))}d()}}function b(){w= | ||
[];U.data=E=[];V=[];C&&C.destroy()}function k(a){g&&(g.setUniform("xAxisTrans",a.transA),g.setUniform("xAxisMin",a.min),g.setUniform("xAxisMinPad",a.minPixelPadding),g.setUniform("xAxisPointRange",a.pointRange),g.setUniform("xAxisLen",a.len),g.setUniform("xAxisPos",a.pos),g.setUniform("xAxisCVSCoord",!a.horiz))}function v(a){g&&(g.setUniform("yAxisTrans",a.transA),g.setUniform("yAxisMin",a.min),g.setUniform("yAxisMinPad",a.minPixelPadding),g.setUniform("yAxisPointRange",a.pointRange),g.setUniform("yAxisLen", | ||
a.len),g.setUniform("yAxisPos",a.pos),g.setUniform("yAxisCVSCoord",!a.horiz))}function m(a,b){g.setUniform("hasThreshold",a);g.setUniform("translatedThreshold",b)}function z(c){if(c)x=c.chartWidth||800,l=c.chartHeight||400;else return!1;if(!e||!x||!l)return!1;n.debug.timeRendering&&console.time("gl rendering");e.canvas.width=x;e.canvas.height=l;g.bind();e.viewport(0,0,x,l);g.setPMatrix([2/x,0,0,0,0,-(2/l),0,0,0,0,-2,0,-1,1,-1,1]);g.setPlotHeight(c.plotHeight);1<n.lineWidth&&!h.isMS&&e.lineWidth(n.lineWidth); | ||
C.build(U.data,"aVertexPosition",4);C.bind();A&&(e.bindTexture(e.TEXTURE_2D,B),g.setTexture(B));g.setInverted(c.inverted);p(w,function(a,b){var c=a.series.options,d,f=c.threshold;d=K(f);var F=a.series.yAxis.getThreshold(f),f=H(c.marker?c.marker.enabled:null,a.series.xAxis.isRadial?!0:null,a.series.closestPointRangePx>2*((c.marker?c.marker.radius:10)||10)),l=a.series.pointAttribs&&a.series.pointAttribs().fill||a.series.color;a.series.fillOpacity&&c.fillOpacity&&(l=(new T(l)).setOpacity(H(c.fillOpacity, | ||
1)).get());c.colorByPoint&&(l=a.series.chart.options.colors[b]);l=h.color(l).rgba;n.useAlpha||(l[3]=1);"lines"===a.drawMode&&n.useAlpha&&1>l[3]&&(l[3]/=10);"add"===c.boostBlending?(e.blendFunc(e.SRC_ALPHA,e.ONE),e.blendEquation(e.FUNC_ADD)):"mult"===c.boostBlending?e.blendFunc(e.DST_COLOR,e.ZERO):"darken"===c.boostBlending?(e.blendFunc(e.ONE,e.ONE),e.blendEquation(e.FUNC_MIN)):e.blendFuncSeparate(e.SRC_ALPHA,e.ONE_MINUS_SRC_ALPHA,e.ONE,e.ONE_MINUS_SRC_ALPHA);g.reset();0<a.colorData.length&&(g.setUniform("hasColor", | ||
1),b=ba(e,g),b.build(a.colorData,"aColor",4),b.bind());g.setColor(l);k(a.series.xAxis);v(a.series.yAxis);m(d,F);"points"===a.drawMode&&(c.marker&&c.marker.radius?g.setPointSize(2*c.marker.radius):g.setPointSize(1));g.setSkipTranslation(a.skipTranslation);"bubble"===a.series.type&&g.setBubbleUniforms(a.series,a.zMin,a.zMax);g.setDrawAsCircle(G[a.series.type]&&A||!1);for(d=0;d<a.segments.length;d++)C.render(a.segments[d].from,a.segments[d].to,a.drawMode);if(a.hasMarkers&&f)for(c.marker&&c.marker.radius? | ||
g.setPointSize(2*c.marker.radius):g.setPointSize(10),g.setDrawAsCircle(!0),d=0;d<a.segments.length;d++)C.render(a.segments[d].from,a.segments[d].to,"POINTS")});n.debug.timeRendering&&console.timeEnd("gl rendering");a&&a();b()}function q(a){c();if(a.renderer.forExport)return z(a);I?z(a):setTimeout(function(){q(a)},1)}var g=!1,C=!1,e=!1,x=0,l=0,E=!1,V=!1,A=!1,U={},I=!1,w=[],M=L.createElement("canvas"),u=M.getContext("2d"),B,J={column:!0,columnrange:!0,bar:!0,area:!0,arearange:!0},G={scatter:!0,bubble:!0}, | ||
n={pointSize:1,lineWidth:1,fillColor:"#AA00AA",useAlpha:!0,usePreallocated:!1,useGPUTranslations:!1,debug:{timeRendering:!1,timeSeriesProcessing:!1,timeSetup:!1,timeBufferCopy:!1,timeKDTree:!1,showSkipSummary:!1}};return U={allocateBufferForSingleSeries:function(a){var b=0;n.usePreallocated&&(a.isSeriesBoosting&&(b=d(a)),C.allocate(b))},pushSeries:function(a){0<w.length&&w[w.length-1].hasMarkers&&(w[w.length-1].markerTo=V.length);n.debug.timeSeriesProcessing&&console.time("building "+a.type+" series"); | ||
w.push({segments:[],markerFrom:V.length,colorData:[],series:a,zMin:Number.MAX_VALUE,zMax:-Number.MAX_VALUE,hasMarkers:a.options.marker?!1!==a.options.marker.enabled:!1,showMarksers:!0,drawMode:{area:"lines",arearange:"lines",areaspline:"line_strip",column:"lines",columnrange:"lines",bar:"lines",line:"line_strip",scatter:"points",heatmap:"triangles",treemap:"triangles",bubble:"points"}[a.type]||"line_strip"});f(a,w[w.length-1]);n.debug.timeSeriesProcessing&&console.timeEnd("building "+a.type+" series")}, | ||
setSize:function(a,b){if(x!==a||b!==b)x=a,l=b,g.bind(),g.setPMatrix([2/x,0,0,0,0,-(2/l),0,0,0,0,-2,0,-1,1,-1,1])},inited:function(){return I},setThreshold:m,init:function(a,c){var d=0,f=["webgl","experimental-webgl","moz-webgl","webkit-3d"];I=!1;if(!a)return!1;for(n.debug.timeSetup&&console.time("gl setup");d<f.length&&!(e=a.getContext(f[d],{}));d++);if(e)c||b();else return!1;e.enable(e.BLEND);e.blendFunc(e.SRC_ALPHA,e.ONE_MINUS_SRC_ALPHA);e.disable(e.DEPTH_TEST);e.depthFunc(e.LESS);g=ka(e);C=ba(e, | ||
g);A=!1;B=e.createTexture();M.width=512;M.height=512;u.mozImageSmoothingEnabled=!1;u.webkitImageSmoothingEnabled=!1;u.msImageSmoothingEnabled=!1;u.imageSmoothingEnabled=!1;u.strokeStyle="rgba(255, 255, 255, 0)";u.fillStyle="#FFF";u.beginPath();u.arc(256,256,256,0,2*Math.PI);u.stroke();u.fill();try{e.bindTexture(e.TEXTURE_2D,B),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,M),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE), | ||
e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.bindTexture(e.TEXTURE_2D,null),A=!0}catch(sa){}I=!0;n.debug.timeSetup&&console.timeEnd("gl setup");return!0},render:q,settings:n,valid:function(){return!1!==e},clear:c,flush:b,setXAxis:k,setYAxis:v,data:E,gl:function(){return e},allocateBuffer:function(a){var b=0;n.usePreallocated&&(p(a.series,function(a){a.isSeriesBoosting&&(b+=d(a))}),C.allocate(b))},destroy:function(){b();C.destroy(); | ||
g.destroy();e&&(B&&e.deleteTexture(B),e.canvas.width=1,e.canvas.height=1)},setOptions:function(a){ma(!0,n,a)}}}function da(a,d){var c=a.chartWidth,f=a.chartHeight,b=a,k=a.seriesGroup||d.group,l=L.implementation.hasFeature("www.http://w3.org/TR/SVG11/feature#Extensibility","1.1"),b=a.isChartSeriesBoosting()?a:d,l=!1;b.renderTarget||(b.canvas=na,a.renderer.forExport||!l?(b.renderTarget=a.renderer.image("",0,0,c,f).addClass("highcharts-boost-canvas").add(k),b.boostClear=function(){b.renderTarget.attr({href:""})}, | ||
255,S[1]/=255,S[2]/=255,F(c.x,c.y,c.width,c.height,S),b/=2),"heatmap"===a.type&&k.inverted&&(c.x=G.len-c.x,c.y=aa.len-c.y,c.width=-c.width,c.height=-c.height),F(c.x+b,c.y+b,c.width-2*b,c.height-2*b,R))});else{for(;D<l.length-1;){z=l[++D];if(P)break;M?(r=z[0],t=z[1],l[D+1]&&(Y=l[D+1][0]),l[D-1]&&(X=l[D-1][0]),3<=z.length&&(L=z[2],z[2]>b.zMax&&(b.zMax=z[2]),z[2]<b.zMin&&(b.zMin=z[2]))):(r=z,t=A[D],l[D+1]&&(Y=l[D+1]),l[D-1]&&(X=l[D-1]),B&&B.length&&(L=B[D],B[D]>b.zMax&&(b.zMax=B[D]),B[D]<b.zMin&&(b.zMin= | ||
B[D])));if(U||null!==r&&null!==t){if(Y&&Y>=x&&Y<=n&&(W=!0),X&&X>=x&&X<=n&&(N=!0),g?(M&&(t=z.slice(1,3)),Z=t[0],t=t[1]):v&&(r=z.x,t=z.stackY,Z=t-z.y),null!==y&&"undefined"!==typeof y&&null!==w&&"undefined"!==typeof w&&(ca=t>=y&&t<=w),r>n&&H.x<n&&(H.x=r,H.y=t),r<x&&u.x<x&&(u.x=r,u.y=t),null!==t||!U)if(null!==t&&ca){if(r>=x&&r<=n&&(T=!0),T||W||N){q.useGPUTranslations||(b.skipTranslation=!0,r=G.toPixels(r,!0),t=aa.toPixels(t,!0),t>V&&(t=V));if(ba){z=Z;if(!1===Z||"undefined"===typeof Z)z=0>t?t:0;q.useGPUTranslations|| | ||
(z=aa.toPixels(z,!0));c(r,z,0,0,!1)}b.hasMarkers&&!1!==I&&(a.closestPointRangePx=Math.min(a.closestPointRangePx,Math.abs(r-I)));!q.useGPUTranslations&&!q.usePreallocated&&I&&1>r-I&&Q&&1>Math.abs(t-Q)?q.debug.showSkipSummary&&++K:(m.step&&c(r,Q,0,2,!1),c(r,t,0,"bubble"===a.type?L||1:2,!1),I=r,Q=t)}}else f()}else f()}q.debug.showSkipSummary&&console.log("skipped points:",K);!I&&!1!==U&&u>-Number.MAX_VALUE&&H<Number.MAX_VALUE&&(O(u),O(H))}d()}}function b(){w=[];U.data=E=[];V=[];C&&C.destroy()}function k(a){g&& | ||
(g.setUniform("xAxisTrans",a.transA),g.setUniform("xAxisMin",a.min),g.setUniform("xAxisMinPad",a.minPixelPadding),g.setUniform("xAxisPointRange",a.pointRange),g.setUniform("xAxisLen",a.len),g.setUniform("xAxisPos",a.pos),g.setUniform("xAxisCVSCoord",!a.horiz))}function v(a){g&&(g.setUniform("yAxisTrans",a.transA),g.setUniform("yAxisMin",a.min),g.setUniform("yAxisMinPad",a.minPixelPadding),g.setUniform("yAxisPointRange",a.pointRange),g.setUniform("yAxisLen",a.len),g.setUniform("yAxisPos",a.pos),g.setUniform("yAxisCVSCoord", | ||
!a.horiz))}function m(a,b){g.setUniform("hasThreshold",a);g.setUniform("translatedThreshold",b)}function y(c){if(c)x=c.chartWidth||800,l=c.chartHeight||400;else return!1;if(!e||!x||!l)return!1;q.debug.timeRendering&&console.time("gl rendering");e.canvas.width=x;e.canvas.height=l;g.bind();e.viewport(0,0,x,l);g.setPMatrix([2/x,0,0,0,0,-(2/l),0,0,0,0,-2,0,-1,1,-1,1]);g.setPlotHeight(c.plotHeight);1<q.lineWidth&&!h.isMS&&e.lineWidth(q.lineWidth);C.build(U.data,"aVertexPosition",4);C.bind();A&&(e.bindTexture(e.TEXTURE_2D, | ||
B),g.setTexture(B));g.setInverted(c.inverted);p(w,function(a,b){var c=a.series.options,d;d="undefined"!==typeof c.lineWidth?c.lineWidth:1;var f=c.threshold,F=K(f),l=a.series.yAxis.getThreshold(f),f=G(c.marker?c.marker.enabled:null,a.series.xAxis.isRadial?!0:null,a.series.closestPointRangePx>2*((c.marker?c.marker.radius:10)||10)),n=a.series.pointAttribs&&a.series.pointAttribs().fill||a.series.color;a.series.fillOpacity&&c.fillOpacity&&(n=(new T(n)).setOpacity(G(c.fillOpacity,1)).get());c.colorByPoint&& | ||
(n=a.series.chart.options.colors[b]);n=h.color(n).rgba;q.useAlpha||(n[3]=1);"lines"===a.drawMode&&q.useAlpha&&1>n[3]&&(n[3]/=10);"add"===c.boostBlending?(e.blendFunc(e.SRC_ALPHA,e.ONE),e.blendEquation(e.FUNC_ADD)):"mult"===c.boostBlending?e.blendFunc(e.DST_COLOR,e.ZERO):"darken"===c.boostBlending?(e.blendFunc(e.ONE,e.ONE),e.blendEquation(e.FUNC_MIN)):e.blendFuncSeparate(e.SRC_ALPHA,e.ONE_MINUS_SRC_ALPHA,e.ONE,e.ONE_MINUS_SRC_ALPHA);g.reset();0<a.colorData.length&&(g.setUniform("hasColor",1),b=ba(e, | ||
g),b.build(a.colorData,"aColor",4),b.bind());g.setColor(n);k(a.series.xAxis);v(a.series.yAxis);m(F,l);"points"===a.drawMode&&(c.marker&&c.marker.radius?g.setPointSize(2*c.marker.radius):g.setPointSize(1));g.setSkipTranslation(a.skipTranslation);"bubble"===a.series.type&&g.setBubbleUniforms(a.series,a.zMin,a.zMax);g.setDrawAsCircle(H[a.series.type]&&A||!1);if(0<d||"line_strip"!==a.drawMode)for(d=0;d<a.segments.length;d++)C.render(a.segments[d].from,a.segments[d].to,a.drawMode);if(a.hasMarkers&&f)for(c.marker&& | ||
c.marker.radius?g.setPointSize(2*c.marker.radius):g.setPointSize(10),g.setDrawAsCircle(!0),d=0;d<a.segments.length;d++)C.render(a.segments[d].from,a.segments[d].to,"POINTS")});q.debug.timeRendering&&console.timeEnd("gl rendering");a&&a();b()}function n(a){c();if(a.renderer.forExport)return y(a);I?y(a):setTimeout(function(){n(a)},1)}var g=!1,C=!1,e=!1,x=0,l=0,E=!1,V=!1,A=!1,U={},I=!1,w=[],M=L.createElement("canvas"),u=M.getContext("2d"),B,J={column:!0,columnrange:!0,bar:!0,area:!0,arearange:!0},H= | ||
{scatter:!0,bubble:!0},q={pointSize:1,lineWidth:1,fillColor:"#AA00AA",useAlpha:!0,usePreallocated:!1,useGPUTranslations:!1,debug:{timeRendering:!1,timeSeriesProcessing:!1,timeSetup:!1,timeBufferCopy:!1,timeKDTree:!1,showSkipSummary:!1}};return U={allocateBufferForSingleSeries:function(a){var b=0;q.usePreallocated&&(a.isSeriesBoosting&&(b=d(a)),C.allocate(b))},pushSeries:function(a){0<w.length&&w[w.length-1].hasMarkers&&(w[w.length-1].markerTo=V.length);q.debug.timeSeriesProcessing&&console.time("building "+ | ||
a.type+" series");w.push({segments:[],markerFrom:V.length,colorData:[],series:a,zMin:Number.MAX_VALUE,zMax:-Number.MAX_VALUE,hasMarkers:a.options.marker?!1!==a.options.marker.enabled:!1,showMarksers:!0,drawMode:{area:"lines",arearange:"lines",areaspline:"line_strip",column:"lines",columnrange:"lines",bar:"lines",line:"line_strip",scatter:"points",heatmap:"triangles",treemap:"triangles",bubble:"points"}[a.type]||"line_strip"});f(a,w[w.length-1]);q.debug.timeSeriesProcessing&&console.timeEnd("building "+ | ||
a.type+" series")},setSize:function(a,b){if(x!==a||b!==b)x=a,l=b,g.bind(),g.setPMatrix([2/x,0,0,0,0,-(2/l),0,0,0,0,-2,0,-1,1,-1,1])},inited:function(){return I},setThreshold:m,init:function(a,c){var d=0,f=["webgl","experimental-webgl","moz-webgl","webkit-3d"];I=!1;if(!a)return!1;for(q.debug.timeSetup&&console.time("gl setup");d<f.length&&!(e=a.getContext(f[d],{}));d++);if(e)c||b();else return!1;e.enable(e.BLEND);e.blendFunc(e.SRC_ALPHA,e.ONE_MINUS_SRC_ALPHA);e.disable(e.DEPTH_TEST);e.depthFunc(e.LESS); | ||
g=ka(e);C=ba(e,g);A=!1;B=e.createTexture();M.width=512;M.height=512;u.mozImageSmoothingEnabled=!1;u.webkitImageSmoothingEnabled=!1;u.msImageSmoothingEnabled=!1;u.imageSmoothingEnabled=!1;u.strokeStyle="rgba(255, 255, 255, 0)";u.fillStyle="#FFF";u.beginPath();u.arc(256,256,256,0,2*Math.PI);u.stroke();u.fill();try{e.bindTexture(e.TEXTURE_2D,B),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,M),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T, | ||
e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.bindTexture(e.TEXTURE_2D,null),A=!0}catch(sa){}I=!0;q.debug.timeSetup&&console.timeEnd("gl setup");return!0},render:n,settings:q,valid:function(){return!1!==e},clear:c,flush:b,setXAxis:k,setYAxis:v,data:E,gl:function(){return e},allocateBuffer:function(a){var b=0;q.usePreallocated&&(p(a.series,function(a){a.isSeriesBoosting&&(b+=d(a))}),C.allocate(b))},destroy:function(){b(); | ||
C.destroy();g.destroy();e&&(B&&e.deleteTexture(B),e.canvas.width=1,e.canvas.height=1)},setOptions:function(a){ma(!0,q,a)}}}function da(a,d){var c=a.chartWidth,f=a.chartHeight,b=a,k=a.seriesGroup||d.group,l=L.implementation.hasFeature("www.http://w3.org/TR/SVG11/feature#Extensibility","1.1"),b=a.isChartSeriesBoosting()?a:d,l=!1;b.renderTarget||(b.canvas=na,a.renderer.forExport||!l?(b.renderTarget=a.renderer.image("",0,0,c,f).addClass("highcharts-boost-canvas").add(k),b.boostClear=function(){b.renderTarget.attr({href:""})}, | ||
b.boostCopy=function(){b.boostResizeTarget();b.renderTarget.attr({href:b.canvas.toDataURL("image/png")})}):(b.renderTargetFo=a.renderer.createElement("foreignObject").add(k),b.renderTarget=L.createElement("canvas"),b.renderTargetCtx=b.renderTarget.getContext("2d"),b.renderTargetFo.element.appendChild(b.renderTarget),b.boostClear=function(){b.renderTarget.width=b.canvas.width;b.renderTarget.height=b.canvas.height},b.boostCopy=function(){b.renderTarget.width=b.canvas.width;b.renderTarget.height=b.canvas.height; | ||
b.renderTargetCtx.drawImage(b.canvas,0,0)}),b.boostResizeTarget=function(){c=a.chartWidth;f=a.chartHeight;(b.renderTargetFo||b.renderTarget).attr({x:0,y:0,width:c,height:f}).css({pointerEvents:"none",mixedBlendMode:"normal",opacity:1});b instanceof h.Chart&&b.markerGroup.translate(a.plotLeft,a.plotTop)},b.boostClipRect=a.renderer.clipRect(),(b.renderTargetFo||b.renderTarget).clip(b.boostClipRect),b instanceof h.Chart&&(b.markerGroup=b.renderer.g().add(k),b.markerGroup.translate(d.xAxis.pos,d.yAxis.pos))); | ||
b.canvas.width=c;b.canvas.height=f;b.boostClipRect.attr(a.getBoostClipRect(b));b.boostResizeTarget();b.boostClear();b.ogl||(b.ogl=la(function(){b.ogl.settings.debug.timeBufferCopy&&console.time("buffer copy");b.boostCopy();b.ogl.settings.debug.timeBufferCopy&&console.timeEnd("buffer copy")}),b.ogl.init(b.canvas),b.ogl.setOptions(a.options.boost||{}),b instanceof h.Chart&&b.ogl.allocateBuffer(a));b.ogl.setSize(c,f);return b.ogl}function ea(a,d,c){a&&d.renderTarget&&d.canvas&&!(c||d.chart).isChartSeriesBoosting()&& | ||
a.render(c||d.chart)}function fa(a,d){a&&d.renderTarget&&d.canvas&&!d.chart.isChartSeriesBoosting()&&a.allocateBufferForSingleSeries(d)}function oa(a){var d=!0;this.chart.options&&this.chart.options.boost&&(d="undefined"===typeof this.chart.options.boost.enabled?!0:this.chart.options.boost.enabled);if(!d||!this.isSeriesBoosting)return a.call(this);this.chart.isBoosting=!0;if(a=da(this.chart,this))fa(a,this),a.pushSeries(this);ea(a,this)}var G=h.win,L=G.document,pa=function(){},ga=h.Chart,T=h.Color, | ||
v=h.Series,z=h.seriesTypes,p=h.each,ha=h.extend,ia=h.addEvent,qa=h.fireEvent,ra=h.grep,K=h.isNumber,ma=h.merge,H=h.pick,l=h.wrap,P=h.getOptions().plotOptions,na=L.createElement("canvas"),W,ja="area arearange column columnrange bar line scatter heatmap bubble treemap".split(" "),J={};p(ja,function(a){J[a]=1});T.prototype.names={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff", | ||
a.render(c||d.chart)}function fa(a,d){a&&d.renderTarget&&d.canvas&&!d.chart.isChartSeriesBoosting()&&a.allocateBufferForSingleSeries(d)}function oa(a){var d=!0;this.chart.options&&this.chart.options.boost&&(d="undefined"===typeof this.chart.options.boost.enabled?!0:this.chart.options.boost.enabled);if(!d||!this.isSeriesBoosting)return a.call(this);this.chart.isBoosting=!0;if(a=da(this.chart,this))fa(a,this),a.pushSeries(this);ea(a,this)}var H=h.win,L=H.document,pa=function(){},ga=h.Chart,T=h.Color, | ||
v=h.Series,y=h.seriesTypes,p=h.each,ha=h.extend,ia=h.addEvent,qa=h.fireEvent,ra=h.grep,K=h.isNumber,ma=h.merge,G=h.pick,l=h.wrap,P=h.getOptions().plotOptions,na=L.createElement("canvas"),W,ja="area arearange column columnrange bar line scatter heatmap bubble treemap".split(" "),J={};p(ja,function(a){J[a]=1});T.prototype.names={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff", | ||
blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b", | ||
@@ -48,15 +48,15 @@ darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",feldspar:"#d19275",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa", | ||
peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee", | ||
violetred:"#d02090",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};ga.prototype.isChartSeriesBoosting=function(){return H(this.options.boost&&this.options.boost.seriesThreshold,50)<=this.series.length||N(this)};ga.prototype.getBoostClipRect=function(a){var d={x:this.plotLeft,y:this.plotTop,width:this.plotWidth,height:this.plotHeight};a===this&&p(this.yAxis,function(a){d.y=Math.min(a.pos,d.y);d.height=Math.max(a.pos-this.plotTop+a.len,d.height)},this); | ||
return d};h.eachAsync=function(a,d,c,f,b,k){b=b||0;f=f||3E4;for(var l=b+f,m=!0;m&&b<l&&b<a.length;)m=d(a[b],b),++b;m&&(b<a.length?k?h.eachAsync(a,d,c,f,b,k):G.requestAnimationFrame?G.requestAnimationFrame(function(){h.eachAsync(a,d,c,f,b)}):setTimeout(function(){h.eachAsync(a,d,c,f,b)}):c&&c())};v.prototype.getPoint=function(a){var d=a,c=this.xData||this.options.xData||this.processedXData||!1;!a||a instanceof this.pointClass||(d=(new this.pointClass).init(this,this.options.data[a.i],c?c[a.i]:void 0), | ||
violetred:"#d02090",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};ga.prototype.isChartSeriesBoosting=function(){return G(this.options.boost&&this.options.boost.seriesThreshold,50)<=this.series.length||N(this)};ga.prototype.getBoostClipRect=function(a){var d={x:this.plotLeft,y:this.plotTop,width:this.plotWidth,height:this.plotHeight};a===this&&p(this.yAxis,function(a){d.y=Math.min(a.pos,d.y);d.height=Math.max(a.pos-this.plotTop+a.len,d.height)},this); | ||
return d};h.eachAsync=function(a,d,c,f,b,k){b=b||0;f=f||3E4;for(var l=b+f,m=!0;m&&b<l&&b<a.length;)m=d(a[b],b),++b;m&&(b<a.length?k?h.eachAsync(a,d,c,f,b,k):H.requestAnimationFrame?H.requestAnimationFrame(function(){h.eachAsync(a,d,c,f,b)}):setTimeout(function(){h.eachAsync(a,d,c,f,b)}):c&&c())};v.prototype.getPoint=function(a){var d=a,c=this.xData||this.options.xData||this.processedXData||!1;!a||a instanceof this.pointClass||(d=(new this.pointClass).init(this,this.options.data[a.i],c?c[a.i]:void 0), | ||
d.category=d.x,d.dist=a.dist,d.distX=a.distX,d.plotX=a.plotX,d.plotY=a.plotY,d.index=a.i);return d};l(v.prototype,"searchPoint",function(a){return this.getPoint(a.apply(this,[].slice.call(arguments,1)))});l(v.prototype,"destroy",function(a){var d=this,c=d.chart;c.markerGroup===d.markerGroup&&(d.markerGroup=null);c.hoverPoints&&(c.hoverPoints=ra(c.hoverPoints,function(a){return a.series===d}));c.hoverPoint&&c.hoverPoint.series===d&&(c.hoverPoint=null);a.call(this)});l(v.prototype,"getExtremes",function(a){if(!this.isSeriesBoosting|| | ||
!this.hasExtremes||!this.hasExtremes())return a.apply(this,Array.prototype.slice.call(arguments,1))});p(ja,function(a){P[a]&&(P[a].boostThreshold=5E3,P[a].boostData=[],z[a].prototype.fillOpacity=!0)});p(["translate","generatePoints","drawTracker","drawPoints","render"],function(a){function d(c){var d=this.options.stacking&&("translate"===a||"generatePoints"===a),b=H(this.chart&&this.chart.options&&this.chart.options.boost&&this.chart.options.boost.enabled,!0);if(!this.isSeriesBoosting||d||!b||"heatmap"=== | ||
this.type||"treemap"===this.type||!J[this.type])c.call(this);else if(this[a+"Canvas"])this[a+"Canvas"]()}l(v.prototype,a,d);"translate"===a&&p("column bar arearange columnrange heatmap treemap".split(" "),function(c){z[c]&&l(z[c].prototype,a,d)})});l(v.prototype,"processData",function(a){function d(a){return c.chart.isChartSeriesBoosting()||(a?a.length:0)>=(c.options.boostThreshold||Number.MAX_VALUE)}var c=this,f=this.options.data;J[this.type]?(d(f)&&"heatmap"!==this.type&&"treemap"!==this.type&& | ||
!this.hasExtremes||!this.hasExtremes())return a.apply(this,Array.prototype.slice.call(arguments,1))});p(ja,function(a){P[a]&&(P[a].boostThreshold=5E3,P[a].boostData=[],y[a].prototype.fillOpacity=!0)});p(["translate","generatePoints","drawTracker","drawPoints","render"],function(a){function d(c){var d=this.options.stacking&&("translate"===a||"generatePoints"===a),b=G(this.chart&&this.chart.options&&this.chart.options.boost&&this.chart.options.boost.enabled,!0);if(!this.isSeriesBoosting||d||!b||"heatmap"=== | ||
this.type||"treemap"===this.type||!J[this.type])c.call(this);else if(this[a+"Canvas"])this[a+"Canvas"]()}l(v.prototype,a,d);"translate"===a&&p("column bar arearange columnrange heatmap treemap".split(" "),function(c){y[c]&&l(y[c].prototype,a,d)})});l(v.prototype,"processData",function(a){function d(a){return c.chart.isChartSeriesBoosting()||(a?a.length:0)>=(c.options.boostThreshold||Number.MAX_VALUE)}var c=this,f=this.options.data;J[this.type]?(d(f)&&"heatmap"!==this.type&&"treemap"!==this.type&& | ||
!this.options.stacking&&this.hasExtremes&&this.hasExtremes(!0)||(a.apply(this,Array.prototype.slice.call(arguments,1)),f=this.processedXData),(this.isSeriesBoosting=d(f))?this.enterBoost():this.exitBoost&&this.exitBoost()):a.apply(this,Array.prototype.slice.call(arguments,1))});l(v.prototype,"setVisible",function(a,d,c){a.call(this,d,c);!1===this.visible&&this.canvas&&this.renderTarget&&(this.ogl&&this.ogl.clear(),this.boostClear())});v.prototype.enterBoost=function(){this.alteredByBoost=[];p(["allowDG", | ||
"directTouch","stickyTracking"],function(a){this.alteredByBoost.push({prop:a,val:this[a],own:this.hasOwnProperty(a)})},this);this.directTouch=this.allowDG=!1;this.stickyTracking=!0;this.animate=null;this.labelBySeries&&(this.labelBySeries=this.labelBySeries.destroy())};v.prototype.exitBoost=function(){p(this.alteredByBoost||[],function(a){a.own?this[a.prop]=a.val:delete this[a.prop]},this);this.boostClear&&this.boostClear()};v.prototype.hasExtremes=function(a){var d=this.options,c=this.xAxis&&this.xAxis.options, | ||
f=this.yAxis&&this.yAxis.options;return d.data.length>(d.boostThreshold||Number.MAX_VALUE)&&K(f.min)&&K(f.max)&&(!a||K(c.min)&&K(c.max))};v.prototype.destroyGraphics=function(){var a=this,d=this.points,c,f;if(d)for(f=0;f<d.length;f+=1)(c=d[f])&&c.destroyElements&&c.destroyElements();p(["graph","area","tracker"],function(b){a[b]&&(a[b]=a[b].destroy())})};h.hasWebGLSupport=function(){var a=0,d,c=["webgl","experimental-webgl","moz-webgl","webkit-3d"],f=!1;if("undefined"!==typeof G.WebGLRenderingContext)for(d= | ||
L.createElement("canvas");a<c.length;a++)try{if(f=d.getContext(c[a]),"undefined"!==typeof f&&null!==f)return!0}catch(b){}return!1};h.hasWebGLSupport()?(h.extend(v.prototype,{renderCanvas:function(){function a(a,b){var c,d,f=!1,g="undefined"===typeof k.index,h=!0;if(!g&&(K?(c=a[0],d=a[1]):(c=a,d=q[b]),M?(K&&(d=a.slice(1,3)),f=d[0],d=d[1]):u&&(c=a.x,d=a.stackY,f=d-a.y),L||(h=d>=x&&d<=z),null!==d&&c>=v&&c<=e&&h))if(a=Math.ceil(l.toPixels(c,!0)),H){if(void 0===O||a===A){M||(f=d);if(void 0===J||d>F)F= | ||
d,J=b;if(void 0===O||f<n)n=f,O=b}a!==A&&(void 0!==O&&(d=m.toPixels(F,!0),w=m.toPixels(n,!0),P(a,d,J),w!==d&&P(a,w,O)),O=J=void 0,A=a)}else d=Math.ceil(m.toPixels(d,!0)),P(a,d,b);return!g}function d(){qa(c,"renderedCanvas");delete c.buildKDTree;c.buildKDTree();N.debug.timeKDTree&&console.timeEnd("kd tree building")}var c=this,f=c.options||{},b=!1,k=c.chart,l=this.xAxis,m=this.yAxis,p=f.xData||c.processedXData,q=f.yData||c.processedYData,g=f.data,b=l.getExtremes(),v=b.min,e=b.max,b=m.getExtremes(), | ||
x=b.min,z=b.max,E={},A,H=!!c.sampling,G,I=!1!==f.enableMouseTracking,w=m.getThreshold(f.threshold),M=c.pointArrayMap&&"low,high"===c.pointArrayMap.join(","),u=!!f.stacking,B=c.cropStart||0,L=c.requireSorting,K=!p,n,F,O,J,N,T=this.xData||this.options.xData||this.processedXData||!1,P=function(a,b,c){W=a+","+b;I&&!E[W]&&(E[W]=!0,k.inverted&&(a=l.len-a,b=m.len-b),G.push({x:T?T[B+c]:!1,clientX:a,plotX:a,plotY:b,i:B+c}))},b=da(k,c);k.isBoosting=!0;N=b.settings;if(this.visible){if(this.points||this.graph)this.animate= | ||
null,this.destroyGraphics();k.isChartSeriesBoosting()?(this.markerGroup=k.markerGroup,this.renderTarget&&(this.renderTarget=this.renderTarget.destroy())):this.markerGroup=c.plotGroup("markerGroup","markers",!0,1,k.seriesGroup);G=this.points=[];c.buildKDTree=pa;b&&(fa(b,this),b.pushSeries(c),ea(b,this,k));k.renderer.forExport||(N.debug.timeKDTree&&console.time("kd tree building"),h.eachAsync(u?c.data:p||g,a,d))}}}),p(["heatmap","treemap"],function(a){z[a]&&l(z[a].prototype,"drawPoints",oa)}),z.bubble&& | ||
(delete z.bubble.prototype.buildKDTree,l(z.bubble.prototype,"markerAttribs",function(a){return this.isSeriesBoosting?!1:a.apply(this,[].slice.call(arguments,1))})),z.scatter.prototype.fill=!0,ha(z.area.prototype,{fill:!0,fillOpacity:!0,sampling:!0}),ha(z.column.prototype,{fill:!0,sampling:!0}),h.Chart.prototype.callbacks.push(function(a){ia(a,"predraw",function(){a.boostForceChartBoost=void 0;a.boostForceChartBoost=N(a);a.isBoosting=!1;!a.isChartSeriesBoosting()&&a.didBoost&&(a.didBoost=!1);a.boostClear&& | ||
f=this.yAxis&&this.yAxis.options;return d.data.length>(d.boostThreshold||Number.MAX_VALUE)&&K(f.min)&&K(f.max)&&(!a||K(c.min)&&K(c.max))};v.prototype.destroyGraphics=function(){var a=this,d=this.points,c,f;if(d)for(f=0;f<d.length;f+=1)(c=d[f])&&c.destroyElements&&c.destroyElements();p(["graph","area","tracker"],function(b){a[b]&&(a[b]=a[b].destroy())})};h.hasWebGLSupport=function(){var a=0,d,c=["webgl","experimental-webgl","moz-webgl","webkit-3d"],f=!1;if("undefined"!==typeof H.WebGLRenderingContext)for(d= | ||
L.createElement("canvas");a<c.length;a++)try{if(f=d.getContext(c[a]),"undefined"!==typeof f&&null!==f)return!0}catch(b){}return!1};h.hasWebGLSupport()?(h.extend(v.prototype,{renderCanvas:function(){function a(a,b){var c,d,f=!1,g="undefined"===typeof k.index,h=!0;if(!g&&(K?(c=a[0],d=a[1]):(c=a,d=n[b]),M?(K&&(d=a.slice(1,3)),f=d[0],d=d[1]):u&&(c=a.x,d=a.stackY,f=d-a.y),L||(h=d>=x&&d<=y),null!==d&&c>=v&&c<=e&&h))if(a=Math.ceil(l.toPixels(c,!0)),H){if(void 0===O||a===A){M||(f=d);if(void 0===J||d>F)F= | ||
d,J=b;if(void 0===O||f<q)q=f,O=b}a!==A&&(void 0!==O&&(d=m.toPixels(F,!0),w=m.toPixels(q,!0),P(a,d,J),w!==d&&P(a,w,O)),O=J=void 0,A=a)}else d=Math.ceil(m.toPixels(d,!0)),P(a,d,b);return!g}function d(){qa(c,"renderedCanvas");delete c.buildKDTree;c.buildKDTree();N.debug.timeKDTree&&console.timeEnd("kd tree building")}var c=this,f=c.options||{},b=!1,k=c.chart,l=this.xAxis,m=this.yAxis,p=f.xData||c.processedXData,n=f.yData||c.processedYData,g=f.data,b=l.getExtremes(),v=b.min,e=b.max,b=m.getExtremes(), | ||
x=b.min,y=b.max,E={},A,H=!!c.sampling,G,I=!1!==f.enableMouseTracking,w=m.getThreshold(f.threshold),M=c.pointArrayMap&&"low,high"===c.pointArrayMap.join(","),u=!!f.stacking,B=c.cropStart||0,L=c.requireSorting,K=!p,q,F,O,J,N,T=this.xData||this.options.xData||this.processedXData||!1,P=function(a,b,c){W=a+","+b;I&&!E[W]&&(E[W]=!0,k.inverted&&(a=l.len-a,b=m.len-b),G.push({x:T?T[B+c]:!1,clientX:a,plotX:a,plotY:b,i:B+c}))},b=da(k,c);k.isBoosting=!0;N=b.settings;if(this.visible){if(this.points||this.graph)this.animate= | ||
null,this.destroyGraphics();k.isChartSeriesBoosting()?(this.markerGroup=k.markerGroup,this.renderTarget&&(this.renderTarget=this.renderTarget.destroy())):this.markerGroup=c.plotGroup("markerGroup","markers",!0,1,k.seriesGroup);G=this.points=[];c.buildKDTree=pa;b&&(fa(b,this),b.pushSeries(c),ea(b,this,k));k.renderer.forExport||(N.debug.timeKDTree&&console.time("kd tree building"),h.eachAsync(u?c.data:p||g,a,d))}}}),p(["heatmap","treemap"],function(a){y[a]&&l(y[a].prototype,"drawPoints",oa)}),y.bubble&& | ||
(delete y.bubble.prototype.buildKDTree,l(y.bubble.prototype,"markerAttribs",function(a){return this.isSeriesBoosting?!1:a.apply(this,[].slice.call(arguments,1))})),y.scatter.prototype.fill=!0,ha(y.area.prototype,{fill:!0,fillOpacity:!0,sampling:!0}),ha(y.column.prototype,{fill:!0,sampling:!0}),h.Chart.prototype.callbacks.push(function(a){ia(a,"predraw",function(){a.boostForceChartBoost=void 0;a.boostForceChartBoost=N(a);a.isBoosting=!1;!a.isChartSeriesBoosting()&&a.didBoost&&(a.didBoost=!1);a.boostClear&& | ||
a.boostClear();a.canvas&&a.ogl&&a.isChartSeriesBoosting()&&(a.didBoost=!0,a.ogl.allocateBuffer(a));a.markerGroup&&a.xAxis&&0<a.xAxis.length&&a.yAxis&&0<a.yAxis.length&&a.markerGroup.translate(a.xAxis[0].pos,a.yAxis[0].pos)});ia(a,"render",function(){a.ogl&&a.isChartSeriesBoosting()&&a.ogl.render(a)})})):"undefined"!==typeof h.initCanvasBoost?h.initCanvasBoost():h.error(26)})(A)}); |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ (c) 2009-2017 Torstein Honsi |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -22,3 +22,2 @@ * (c) 2009-2017 Torstein Honsi | ||
*/ | ||
/* eslint max-len: 0 */ | ||
@@ -44,3 +43,7 @@ var pick = H.pick, | ||
length = brk.to - brk.from, | ||
test = (val >= from ? (val - from) % repeat : repeat - ((from - val) % repeat)); | ||
test = ( | ||
val >= from ? | ||
(val - from) % repeat : | ||
repeat - ((from - val) % repeat) | ||
); | ||
@@ -70,3 +73,6 @@ if (!brk.inclusive) { | ||
if (!keep) { | ||
keep = pick(breaks[i].showPoints, this.isXAxis ? false : true); | ||
keep = pick( | ||
breaks[i].showPoints, | ||
this.isXAxis ? false : true | ||
); | ||
} | ||
@@ -156,4 +162,11 @@ } | ||
axis.setExtremes = function(newMin, newMax, redraw, animation, eventArguments) { | ||
// If trying to set extremes inside a break, extend it to before and after the break ( #3857 ) | ||
axis.setExtremes = function( | ||
newMin, | ||
newMax, | ||
redraw, | ||
animation, | ||
eventArguments | ||
) { | ||
// If trying to set extremes inside a break, extend it to before and | ||
// after the break ( #3857 ) | ||
while (this.isInAnyBreak(newMin)) { | ||
@@ -165,3 +178,10 @@ newMin -= this.closestPointRange; | ||
} | ||
Axis.prototype.setExtremes.call(this, newMin, newMax, redraw, animation, eventArguments); | ||
Axis.prototype.setExtremes.call( | ||
this, | ||
newMin, | ||
newMax, | ||
redraw, | ||
animation, | ||
eventArguments | ||
); | ||
}; | ||
@@ -293,7 +313,14 @@ | ||
nullGap = point.y === null && connectNulls === false; // respect nulls inside the break (#4275) | ||
if (!nullGap && (xAxis.isInAnyBreak(point.x, true) || yAxis.isInAnyBreak(point.y, true))) { | ||
// Respect nulls inside the break (#4275) | ||
nullGap = point.y === null && connectNulls === false; | ||
if (!nullGap && | ||
( | ||
xAxis.isInAnyBreak(point.x, true) || | ||
yAxis.isInAnyBreak(point.y, true) | ||
) | ||
) { | ||
points.splice(i, 1); | ||
if (this.data[i]) { | ||
this.data[i].destroyElements(); // removes the graphics for this point if they exist | ||
// Removes the graphics for this point if they exist | ||
this.data[i].destroyElements(); | ||
} | ||
@@ -326,3 +353,5 @@ } | ||
breaks = axis.breakArray || []; | ||
threshold = axis.isXAxis ? axis.min : pick(series.options.threshold, axis.min); | ||
threshold = axis.isXAxis ? | ||
axis.min : | ||
pick(series.options.threshold, axis.min); | ||
each(points, function(point) { | ||
@@ -333,5 +362,12 @@ y = pick(point['stack' + key.toUpperCase()], point[key]); | ||
if ((threshold < brk.from && y > brk.to) || (threshold > brk.from && y < brk.from)) { | ||
if ( | ||
(threshold < brk.from && y > brk.to) || | ||
(threshold > brk.from && y < brk.from) | ||
) { | ||
eventName = 'pointBreak'; | ||
} else if ((threshold < brk.from && y > brk.from && y < brk.to) || (threshold > brk.from && y > brk.to && y < brk.from)) { // point falls inside the break | ||
} else if ( | ||
(threshold < brk.from && y > brk.from && y < brk.to) || | ||
(threshold > brk.from && y > brk.to && y < brk.from) | ||
) { | ||
eventName = 'pointInBreak'; | ||
@@ -372,4 +408,4 @@ } | ||
* larger time span. This can make the grouped points to have a greater | ||
* distance than the absolute value of `gapSize` property, which will result | ||
* in disappearing graph completely. To prevent this situation the mentioned | ||
* distance than the absolute value of `gapSize` property, which will result | ||
* in disappearing graph completely. To prevent this situation the mentioned | ||
* distance between grouped points is used instead of previously defined | ||
@@ -382,7 +418,8 @@ * `gapSize`. | ||
* | ||
* @type {Number} | ||
* @see [gapUnit](plotOptions.series.gapUnit) and [xAxis.breaks](#xAxis.breaks) | ||
* @sample {highstock} stock/plotoptions/series-gapsize/ | ||
* Setting the gap size to 2 introduces gaps for weekends in daily | ||
* datasets. | ||
* @type {Number} | ||
* @see [gapUnit](plotOptions.series.gapUnit) and | ||
* [xAxis.breaks](#xAxis.breaks) | ||
* @sample {highstock} stock/plotoptions/series-gapsize/ | ||
* Setting the gap size to 2 introduces gaps for weekends in daily | ||
* datasets. | ||
* @default 0 | ||
@@ -441,9 +478,10 @@ * @product highstock | ||
if (this.options.stacking) { | ||
stack = yAxis.stacks[this.stackKey][xRange] = new H.StackItem( | ||
yAxis, | ||
yAxis.options.stackLabels, | ||
false, | ||
xRange, | ||
this.stack | ||
); | ||
stack = yAxis.stacks[this.stackKey][xRange] = | ||
new H.StackItem( | ||
yAxis, | ||
yAxis.options.stackLabels, | ||
false, | ||
xRange, | ||
this.stack | ||
); | ||
stack.total = 0; | ||
@@ -450,0 +488,0 @@ } |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Bullet graph series type for Highcharts |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -304,3 +304,3 @@ * Bullet graph series type for Highcharts | ||
* | ||
* @extends series.bullet.targetOptions | ||
* @extends plotOptions.bullet.targetOptions | ||
* @product highcharts | ||
@@ -307,0 +307,0 @@ * @apioption series.bullet.data.targetOptions |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Data module | ||
@@ -4,0 +4,0 @@ |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Drag-panes module | ||
@@ -4,0 +4,0 @@ |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* Drag-panes module | ||
@@ -4,0 +4,0 @@ * |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Highcharts Drilldown module | ||
@@ -9,19 +9,19 @@ | ||
*/ | ||
(function(n){"object"===typeof module&&module.exports?module.exports=n:n(Highcharts)})(function(n){(function(f){var n=f.animObject,z=f.noop,A=f.color,B=f.defaultOptions,k=f.each,p=f.extend,H=f.format,C=f.objectEach,t=f.pick,q=f.wrap,m=f.Chart,v=f.seriesTypes,D=v.pie,u=v.column,E=f.Tick,w=f.fireEvent,F=f.inArray,G=1;p(B.lang,{drillUpText:"\u25c1 Back to {series.name}"});B.drilldown={animation:{duration:500},drillUpButton:{position:{align:"right",x:-10,y:10}}};f.SVGRenderer.prototype.Element.prototype.fadeIn= | ||
function(a){this.attr({opacity:.1,visibility:"inherit"}).animate({opacity:t(this.newOpacity,1)},a||{duration:250})};m.prototype.addSeriesAsDrilldown=function(a,b){this.addSingleSeriesAsDrilldown(a,b);this.applyDrilldown()};m.prototype.addSingleSeriesAsDrilldown=function(a,b){var d=a.series,c=d.xAxis,e=d.yAxis,g,h=[],x=[],l,r,m;m={colorIndex:t(a.colorIndex,d.colorIndex)};this.drilldownLevels||(this.drilldownLevels=[]);l=d.options._levelNumber||0;(r=this.drilldownLevels[this.drilldownLevels.length- | ||
1])&&r.levelNumber!==l&&(r=void 0);b=p(p({_ddSeriesId:G++},m),b);g=F(a,d.points);k(d.chart.series,function(a){a.xAxis!==c||a.isDrilling||(a.options._ddSeriesId=a.options._ddSeriesId||G++,a.options._colorIndex=a.userOptions._colorIndex,a.options._levelNumber=a.options._levelNumber||l,r?(h=r.levelSeries,x=r.levelSeriesOptions):(h.push(a),x.push(a.options)))});a=p({levelNumber:l,seriesOptions:d.options,levelSeriesOptions:x,levelSeries:h,shapeArgs:a.shapeArgs,bBox:a.graphic?a.graphic.getBBox():{},color:a.isNull? | ||
(new f.Color(A)).setOpacity(0).get():A,lowerSeriesOptions:b,pointOptions:d.options.data[g],pointIndex:g,oldExtremes:{xMin:c&&c.userMin,xMax:c&&c.userMax,yMin:e&&e.userMin,yMax:e&&e.userMax},resetZoomButton:this.resetZoomButton},m);this.drilldownLevels.push(a);c&&c.names&&(c.names.length=0);b=a.lowerSeries=this.addSeries(b,!1);b.options._levelNumber=l+1;c&&(c.oldPos=c.pos,c.userMin=c.userMax=null,e.userMin=e.userMax=null);d.type===b.type&&(b.animate=b.animateDrilldown||z,b.options.animation=!0)};m.prototype.applyDrilldown= | ||
function(){var a=this.drilldownLevels,b;a&&0<a.length&&(b=a[a.length-1].levelNumber,k(this.drilldownLevels,function(a){a.levelNumber===b&&k(a.levelSeries,function(a){a.options&&a.options._levelNumber===b&&a.remove(!1)})}));this.resetZoomButton&&(this.resetZoomButton.hide(),delete this.resetZoomButton);this.pointer.reset();this.redraw();this.showDrillUpButton()};m.prototype.getDrilldownBackText=function(){var a=this.drilldownLevels;if(a&&0<a.length)return a=a[a.length-1],a.series=a.seriesOptions,H(this.options.lang.drillUpText, | ||
a)};m.prototype.showDrillUpButton=function(){var a=this,b=this.getDrilldownBackText(),d=a.options.drilldown.drillUpButton,c,e;this.drillUpButton?this.drillUpButton.attr({text:b}).align():(e=(c=d.theme)&&c.states,this.drillUpButton=this.renderer.button(b,null,null,function(){a.drillUp()},c,e&&e.hover,e&&e.select).addClass("highcharts-drillup-button").attr({align:d.position.align,zIndex:7}).add().align(d.position,!1,d.relativeTo||"plotBox"))};m.prototype.drillUp=function(){if(this.drilldownLevels&& | ||
0!==this.drilldownLevels.length){for(var a=this,b=a.drilldownLevels,d=b[b.length-1].levelNumber,c=b.length,e=a.series,g,h,f,l,m=function(b){var c;k(e,function(a){a.options._ddSeriesId===b._ddSeriesId&&(c=a)});c=c||a.addSeries(b,!1);c.type===f.type&&c.animateDrillupTo&&(c.animate=c.animateDrillupTo);b===h.seriesOptions&&(l=c)};c--;)if(h=b[c],h.levelNumber===d){b.pop();f=h.lowerSeries;if(!f.chart)for(g=e.length;g--;)if(e[g].options.id===h.lowerSeriesOptions.id&&e[g].options._levelNumber===d+1){f=e[g]; | ||
break}f.xData=[];k(h.levelSeriesOptions,m);w(a,"drillup",{seriesOptions:h.seriesOptions});l.type===f.type&&(l.drilldownLevel=h,l.options.animation=a.options.drilldown.animation,f.animateDrillupFrom&&f.chart&&f.animateDrillupFrom(h));l.options._levelNumber=d;f.remove(!1);l.xAxis&&(g=h.oldExtremes,l.xAxis.setExtremes(g.xMin,g.xMax,!1),l.yAxis.setExtremes(g.yMin,g.yMax,!1));h.resetZoomButton&&(a.resetZoomButton=h.resetZoomButton,a.resetZoomButton.show())}w(a,"drillupall");this.redraw();0===this.drilldownLevels.length? | ||
this.drillUpButton=this.drillUpButton.destroy():this.drillUpButton.attr({text:this.getDrilldownBackText()}).align();this.ddDupes.length=[]}};m.prototype.callbacks.push(function(){var a=this;a.drilldown={update:function(b,d){f.merge(!0,a.options.drilldown,b);t(d,!0)&&a.redraw()}}});q(m.prototype,"showResetZoom",function(a){this.drillUpButton||a.apply(this,Array.prototype.slice.call(arguments,1))});u.prototype.animateDrillupTo=function(a){if(!a){var b=this,d=b.drilldownLevel;k(this.points,function(a){var b= | ||
a.dataLabel;a.graphic&&a.graphic.hide();b&&(b.hidden="hidden"===b.attr("visibility"),b.hidden||(b.hide(),a.connector&&a.connector.hide()))});f.syncTimeout(function(){b.points&&k(b.points,function(a,b){b=b===(d&&d.pointIndex)?"show":"fadeIn";var c="show"===b?!0:void 0,e=a.dataLabel;if(a.graphic)a.graphic[b](c);e&&!e.hidden&&(e.fadeIn(),a.connector&&a.connector.fadeIn())})},Math.max(this.chart.options.drilldown.animation.duration-50,0));this.animate=z}};u.prototype.animateDrilldown=function(a){var b= | ||
this,d=this.chart.drilldownLevels,c,e=n(this.chart.options.drilldown.animation),g=this.xAxis;a||(k(d,function(a){b.options._ddSeriesId===a.lowerSeriesOptions._ddSeriesId&&(c=a.shapeArgs)}),c.x+=t(g.oldPos,g.pos)-g.pos,k(this.points,function(a){a.graphic&&a.graphic.attr(c).animate(p(a.shapeArgs,{fill:a.color||b.color}),e);a.dataLabel&&a.dataLabel.fadeIn(e)}),this.animate=null)};u.prototype.animateDrillupFrom=function(a){var b=n(this.chart.options.drilldown.animation),d=this.group,c=d!==this.chart.columnGroup, | ||
e=this;k(e.trackerGroups,function(a){if(e[a])e[a].on("mouseover")});c&&delete this.group;k(this.points,function(e){var g=e.graphic,k=a.shapeArgs,l=function(){g.destroy();d&&c&&(d=d.destroy())};g&&(delete e.graphic,b.duration?g.animate(k,f.merge(b,{complete:l})):(g.attr(k),l()))})};D&&p(D.prototype,{animateDrillupTo:u.prototype.animateDrillupTo,animateDrillupFrom:u.prototype.animateDrillupFrom,animateDrilldown:function(a){var b=this.chart.options.drilldown.animation,d=this.chart.drilldownLevels[this.chart.drilldownLevels.length- | ||
1].shapeArgs,c=d.start,e=(d.end-c)/this.points.length;a||(k(this.points,function(a,h){var g=a.shapeArgs;if(a.graphic)a.graphic.attr(f.merge(d,{start:c+h*e,end:c+(h+1)*e}))[b?"animate":"attr"](g,b)}),this.animate=null)}});f.Point.prototype.doDrilldown=function(a,b,d){var c=this.series.chart,e=c.options.drilldown,f=(e.series||[]).length,h;c.ddDupes||(c.ddDupes=[]);for(;f--&&!h;)e.series[f].id===this.drilldown&&-1===F(this.drilldown,c.ddDupes)&&(h=e.series[f],c.ddDupes.push(this.drilldown));w(c,"drilldown", | ||
{point:this,seriesOptions:h,category:b,originalEvent:d,points:void 0!==b&&this.series.xAxis.getDDPoints(b).slice(0)},function(b){var c=b.point.series&&b.point.series.chart,d=b.seriesOptions;c&&d&&(a?c.addSingleSeriesAsDrilldown(b.point,d):c.addSeriesAsDrilldown(b.point,d))})};f.Axis.prototype.drilldownCategory=function(a,b){C(this.getDDPoints(a),function(d){d&&d.series&&d.series.visible&&d.doDrilldown&&d.doDrilldown(!0,a,b)});this.chart.applyDrilldown()};f.Axis.prototype.getDDPoints=function(a){var b= | ||
[];k(this.series,function(d){var c,e=d.xData,f=d.points;for(c=0;c<e.length;c++)if(e[c]===a&&d.options.data[c]&&d.options.data[c].drilldown){b.push(f?f[c]:!0);break}});return b};E.prototype.drillable=function(){var a=this.pos,b=this.label,d=this.axis,c="xAxis"===d.coll&&d.getDDPoints,e=c&&d.getDDPoints(a);c&&(b&&e.length?(b.drillable=!0,b.addClass("highcharts-drilldown-axis-label").on("click",function(b){d.drilldownCategory(a,b)})):b&&b.drillable&&(b.on("click",null),b.removeClass("highcharts-drilldown-axis-label")))}; | ||
q(E.prototype,"addLabel",function(a){a.call(this);this.drillable()});q(f.Point.prototype,"init",function(a,b,d,c){var e=a.call(this,b,d,c);c=(a=b.xAxis)&&a.ticks[c];e.drilldown&&f.addEvent(e,"click",function(a){b.xAxis&&!1===b.chart.options.drilldown.allowPointDrilldown?b.xAxis.drilldownCategory(e.x,a):e.doDrilldown(void 0,void 0,a)});c&&c.drillable();return e});q(f.Series.prototype,"drawDataLabels",function(a){a.call(this);k(this.points,function(a){var b=a.options.dataLabels,c=t(a.dlOptions,b&&b.style, | ||
{});a.drilldown&&a.dataLabel&&(b&&b.color&&(c.color=b.color),a.dataLabel.addClass("highcharts-drilldown-data-label"))},this)});var y=function(a,b,d){a[d?"addClass":"removeClass"]("highcharts-drilldown-point")},I=function(a){a.call(this);k(this.points,function(a){a.drilldown&&a.graphic&&y(a.graphic,"pointer",!0)})},J=function(a,b){var d=a.apply(this,Array.prototype.slice.call(arguments,1));this.drilldown&&this.series.halo&&"hover"===b?y(this.series.halo,"pointer",!0):this.series.halo&&y(this.series.halo, | ||
"auto",!1);return d};C(v,function(a){q(a.prototype,"drawTracker",I);q(a.prototype.pointClass.prototype,"setState",J)})})(n)}); | ||
(function(p){"object"===typeof module&&module.exports?module.exports=p:p(Highcharts)})(function(p){(function(e){var p=e.animObject,y=e.noop,z=e.color,A=e.defaultOptions,k=e.each,q=e.extend,E=e.format,F=e.objectEach,t=e.pick,m=e.Chart,n=e.seriesTypes,B=n.pie,n=n.column,u=e.Tick,v=e.fireEvent,C=e.inArray,D=1;q(A.lang,{drillUpText:"\u25c1 Back to {series.name}"});A.drilldown={animation:{duration:500},drillUpButton:{position:{align:"right",x:-10,y:10}}};e.SVGRenderer.prototype.Element.prototype.fadeIn= | ||
function(a){this.attr({opacity:.1,visibility:"inherit"}).animate({opacity:t(this.newOpacity,1)},a||{duration:250})};m.prototype.addSeriesAsDrilldown=function(a,b){this.addSingleSeriesAsDrilldown(a,b);this.applyDrilldown()};m.prototype.addSingleSeriesAsDrilldown=function(a,b){var d=a.series,c=d.xAxis,g=d.yAxis,f,h=[],w=[],l,r,m;m={colorIndex:t(a.colorIndex,d.colorIndex)};this.drilldownLevels||(this.drilldownLevels=[]);l=d.options._levelNumber||0;(r=this.drilldownLevels[this.drilldownLevels.length- | ||
1])&&r.levelNumber!==l&&(r=void 0);b=q(q({_ddSeriesId:D++},m),b);f=C(a,d.points);k(d.chart.series,function(a){a.xAxis!==c||a.isDrilling||(a.options._ddSeriesId=a.options._ddSeriesId||D++,a.options._colorIndex=a.userOptions._colorIndex,a.options._levelNumber=a.options._levelNumber||l,r?(h=r.levelSeries,w=r.levelSeriesOptions):(h.push(a),w.push(a.options)))});a=q({levelNumber:l,seriesOptions:d.options,levelSeriesOptions:w,levelSeries:h,shapeArgs:a.shapeArgs,bBox:a.graphic?a.graphic.getBBox():{},color:a.isNull? | ||
(new e.Color(z)).setOpacity(0).get():z,lowerSeriesOptions:b,pointOptions:d.options.data[f],pointIndex:f,oldExtremes:{xMin:c&&c.userMin,xMax:c&&c.userMax,yMin:g&&g.userMin,yMax:g&&g.userMax},resetZoomButton:this.resetZoomButton},m);this.drilldownLevels.push(a);c&&c.names&&(c.names.length=0);b=a.lowerSeries=this.addSeries(b,!1);b.options._levelNumber=l+1;c&&(c.oldPos=c.pos,c.userMin=c.userMax=null,g.userMin=g.userMax=null);d.type===b.type&&(b.animate=b.animateDrilldown||y,b.options.animation=!0)};m.prototype.applyDrilldown= | ||
function(){var a=this.drilldownLevels,b;a&&0<a.length&&(b=a[a.length-1].levelNumber,k(this.drilldownLevels,function(a){a.levelNumber===b&&k(a.levelSeries,function(a){a.options&&a.options._levelNumber===b&&a.remove(!1)})}));this.resetZoomButton&&(this.resetZoomButton.hide(),delete this.resetZoomButton);this.pointer.reset();this.redraw();this.showDrillUpButton()};m.prototype.getDrilldownBackText=function(){var a=this.drilldownLevels;if(a&&0<a.length)return a=a[a.length-1],a.series=a.seriesOptions,E(this.options.lang.drillUpText, | ||
a)};m.prototype.showDrillUpButton=function(){var a=this,b=this.getDrilldownBackText(),d=a.options.drilldown.drillUpButton,c,g;this.drillUpButton?this.drillUpButton.attr({text:b}).align():(g=(c=d.theme)&&c.states,this.drillUpButton=this.renderer.button(b,null,null,function(){a.drillUp()},c,g&&g.hover,g&&g.select).addClass("highcharts-drillup-button").attr({align:d.position.align,zIndex:7}).add().align(d.position,!1,d.relativeTo||"plotBox"))};m.prototype.drillUp=function(){if(this.drilldownLevels&& | ||
0!==this.drilldownLevels.length){for(var a=this,b=a.drilldownLevels,d=b[b.length-1].levelNumber,c=b.length,g=a.series,f,h,e,l,m=function(b){var c;k(g,function(a){a.options._ddSeriesId===b._ddSeriesId&&(c=a)});c=c||a.addSeries(b,!1);c.type===e.type&&c.animateDrillupTo&&(c.animate=c.animateDrillupTo);b===h.seriesOptions&&(l=c)};c--;)if(h=b[c],h.levelNumber===d){b.pop();e=h.lowerSeries;if(!e.chart)for(f=g.length;f--;)if(g[f].options.id===h.lowerSeriesOptions.id&&g[f].options._levelNumber===d+1){e=g[f]; | ||
break}e.xData=[];k(h.levelSeriesOptions,m);v(a,"drillup",{seriesOptions:h.seriesOptions});l.type===e.type&&(l.drilldownLevel=h,l.options.animation=a.options.drilldown.animation,e.animateDrillupFrom&&e.chart&&e.animateDrillupFrom(h));l.options._levelNumber=d;e.remove(!1);l.xAxis&&(f=h.oldExtremes,l.xAxis.setExtremes(f.xMin,f.xMax,!1),l.yAxis.setExtremes(f.yMin,f.yMax,!1));h.resetZoomButton&&(a.resetZoomButton=h.resetZoomButton,a.resetZoomButton.show())}v(a,"drillupall");this.redraw();0===this.drilldownLevels.length? | ||
this.drillUpButton=this.drillUpButton.destroy():this.drillUpButton.attr({text:this.getDrilldownBackText()}).align();this.ddDupes.length=[]}};m.prototype.callbacks.push(function(){var a=this;a.drilldown={update:function(b,d){e.merge(!0,a.options.drilldown,b);t(d,!0)&&a.redraw()}}});e.addEvent(m.prototype,"beforeShowResetZoom",function(){if(this.drillUpButton)return!1});n.prototype.animateDrillupTo=function(a){if(!a){var b=this,d=b.drilldownLevel;k(this.points,function(a){var b=a.dataLabel;a.graphic&& | ||
a.graphic.hide();b&&(b.hidden="hidden"===b.attr("visibility"),b.hidden||(b.hide(),a.connector&&a.connector.hide()))});e.syncTimeout(function(){b.points&&k(b.points,function(a,b){b=b===(d&&d.pointIndex)?"show":"fadeIn";var c="show"===b?!0:void 0,e=a.dataLabel;if(a.graphic)a.graphic[b](c);e&&!e.hidden&&(e.fadeIn(),a.connector&&a.connector.fadeIn())})},Math.max(this.chart.options.drilldown.animation.duration-50,0));this.animate=y}};n.prototype.animateDrilldown=function(a){var b=this,d=this.chart.drilldownLevels, | ||
c,e=p(this.chart.options.drilldown.animation),f=this.xAxis;a||(k(d,function(a){b.options._ddSeriesId===a.lowerSeriesOptions._ddSeriesId&&(c=a.shapeArgs)}),c.x+=t(f.oldPos,f.pos)-f.pos,k(this.points,function(a){a.graphic&&a.graphic.attr(c).animate(q(a.shapeArgs,{fill:a.color||b.color}),e);a.dataLabel&&a.dataLabel.fadeIn(e)}),this.animate=null)};n.prototype.animateDrillupFrom=function(a){var b=p(this.chart.options.drilldown.animation),d=this.group,c=d!==this.chart.columnGroup,g=this;k(g.trackerGroups, | ||
function(a){if(g[a])g[a].on("mouseover")});c&&delete this.group;k(this.points,function(g){var f=g.graphic,k=a.shapeArgs,l=function(){f.destroy();d&&c&&(d=d.destroy())};f&&(delete g.graphic,b.duration?f.animate(k,e.merge(b,{complete:l})):(f.attr(k),l()))})};B&&q(B.prototype,{animateDrillupTo:n.prototype.animateDrillupTo,animateDrillupFrom:n.prototype.animateDrillupFrom,animateDrilldown:function(a){var b=this.chart.options.drilldown.animation,d=this.chart.drilldownLevels[this.chart.drilldownLevels.length- | ||
1].shapeArgs,c=d.start,g=(d.end-c)/this.points.length;a||(k(this.points,function(a,h){var f=a.shapeArgs;if(a.graphic)a.graphic.attr(e.merge(d,{start:c+h*g,end:c+(h+1)*g}))[b?"animate":"attr"](f,b)}),this.animate=null)}});e.Point.prototype.doDrilldown=function(a,b,d){var c=this.series.chart,e=c.options.drilldown,f=(e.series||[]).length,h;c.ddDupes||(c.ddDupes=[]);for(;f--&&!h;)e.series[f].id===this.drilldown&&-1===C(this.drilldown,c.ddDupes)&&(h=e.series[f],c.ddDupes.push(this.drilldown));v(c,"drilldown", | ||
{point:this,seriesOptions:h,category:b,originalEvent:d,points:void 0!==b&&this.series.xAxis.getDDPoints(b).slice(0)},function(b){var c=b.point.series&&b.point.series.chart,d=b.seriesOptions;c&&d&&(a?c.addSingleSeriesAsDrilldown(b.point,d):c.addSeriesAsDrilldown(b.point,d))})};e.Axis.prototype.drilldownCategory=function(a,b){F(this.getDDPoints(a),function(d){d&&d.series&&d.series.visible&&d.doDrilldown&&d.doDrilldown(!0,a,b)});this.chart.applyDrilldown()};e.Axis.prototype.getDDPoints=function(a){var b= | ||
[];k(this.series,function(d){var c,e=d.xData,f=d.points;for(c=0;c<e.length;c++)if(e[c]===a&&d.options.data[c]&&d.options.data[c].drilldown){b.push(f?f[c]:!0);break}});return b};u.prototype.drillable=function(){var a=this.pos,b=this.label,d=this.axis,c="xAxis"===d.coll&&d.getDDPoints,e=c&&d.getDDPoints(a);c&&(b&&e.length?(b.drillable=!0,b.addClass("highcharts-drilldown-axis-label").on("click",function(b){d.drilldownCategory(a,b)})):b&&b.drillable&&(b.on("click",null),b.removeClass("highcharts-drilldown-axis-label")))}; | ||
e.addEvent(u.prototype,"afterRender",u.prototype.drillable);e.addEvent(e.Point.prototype,"afterInit",function(){var a=this,b=a.series,d=b.xAxis,d=d&&d.ticks[a.x];a.drilldown&&e.addEvent(a,"click",function(c){b.xAxis&&!1===b.chart.options.drilldown.allowPointDrilldown?b.xAxis.drilldownCategory(a.x,c):a.doDrilldown(void 0,void 0,c)});d&&d.drillable();return a});e.addEvent(e.Series.prototype,"afterDrawDataLabels",function(){k(this.points,function(a){var b=a.options.dataLabels,d=t(a.dlOptions,b&&b.style, | ||
{});a.drilldown&&a.dataLabel&&(b&&b.color&&(d.color=b.color),a.dataLabel.addClass("highcharts-drilldown-data-label"))},this)});var x=function(a,b,d){a[d?"addClass":"removeClass"]("highcharts-drilldown-point")};e.addEvent(e.Series.prototype,"afterDrawTracker",function(){k(this.points,function(a){a.drilldown&&a.graphic&&x(a.graphic,"pointer",!0)})});e.addEvent(e.Point.prototype,"afterSetState",function(){this.drilldown&&this.series.halo&&"hover"===this.state?x(this.series.halo,"pointer",!0):this.series.halo&& | ||
x(this.series.halo,"auto",!1)})})(p)}); |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* Highcharts Drilldown module | ||
@@ -25,3 +25,2 @@ * | ||
*/ | ||
/* eslint max-len: 0 */ | ||
@@ -38,3 +37,2 @@ | ||
pick = H.pick, | ||
wrap = H.wrap, | ||
Chart = H.Chart, | ||
@@ -71,3 +69,4 @@ seriesTypes = H.seriesTypes, | ||
* found in the modules directory of the download package, or online at | ||
* (code.highcharts.com/modules/drilldown.js)[code.highcharts.com/modules/drilldown.js]. | ||
* (code.highcharts.com/modules/drilldown.js)[code.highcharts.com/modules/ | ||
* drilldown.js]. | ||
* | ||
@@ -148,4 +147,4 @@ * @type {Object} | ||
* Options for the drill up button that appears when drilling down | ||
* on a series. The text for the button is defined in [lang.drillUpText](#lang. | ||
* drillUpText). | ||
* on a series. The text for the button is defined in | ||
* [lang.drillUpText](#lang.drillUpText). | ||
* | ||
@@ -172,11 +171,11 @@ * @type {Object} | ||
/** | ||
* A collection of attributes for the button. The object takes SVG attributes | ||
* like `fill`, `stroke`, `stroke-width` or `r`, the border radius. | ||
* The theme also supports `style`, a collection of CSS properties for | ||
* the text. Equivalent attributes for the hover state are given in | ||
* `theme.states.hover`. | ||
* A collection of attributes for the button. The object takes SVG | ||
* attributes like `fill`, `stroke`, `stroke-width` or `r`, the border | ||
* radius. The theme also supports `style`, a collection of CSS | ||
* properties for the text. Equivalent attributes for the hover state | ||
* are given in `theme.states.hover`. | ||
* | ||
* @type {Object} | ||
* @see In styled mode, drill-up button styles can be applied with the | ||
* `.highcharts-drillup-button` class. | ||
* @see In styled mode, drill-up button styles can be applied with | ||
* the `.highcharts-drillup-button` class. | ||
* @sample {highcharts} highcharts/drilldown/drillupbutton/ | ||
@@ -387,5 +386,7 @@ * Button theming | ||
if (series.xAxis === xAxis && !series.isDrilling) { | ||
series.options._ddSeriesId = series.options._ddSeriesId || ddSeriesId++; | ||
series.options._ddSeriesId = | ||
series.options._ddSeriesId || ddSeriesId++; | ||
series.options._colorIndex = series.userOptions._colorIndex; | ||
series.options._levelNumber = series.options._levelNumber || levelNumber; // #3182 | ||
series.options._levelNumber = | ||
series.options._levelNumber || levelNumber; // #3182 | ||
@@ -409,3 +410,4 @@ if (last) { | ||
shapeArgs: point.shapeArgs, | ||
bBox: point.graphic ? point.graphic.getBBox() : {}, // no graphic in line series with markers disabled | ||
// no graphic in line series with markers disabled | ||
bBox: point.graphic ? point.graphic.getBBox() : {}, | ||
color: point.isNull ? new H.Color(color).setOpacity(0).get() : color, | ||
@@ -456,3 +458,8 @@ lowerSeriesOptions: ddOptions, | ||
each(level.levelSeries, function(series) { | ||
if (series.options && series.options._levelNumber === levelToRemove) { // Not removed, not added as part of a multi-series drilldown | ||
// Not removed, not added as part of a multi-series | ||
// drilldown | ||
if ( | ||
series.options && | ||
series.options._levelNumber === levelToRemove | ||
) { | ||
series.remove(false); | ||
@@ -517,3 +524,7 @@ } | ||
.add() | ||
.align(buttonOptions.position, false, buttonOptions.relativeTo || 'plotBox'); | ||
.align( | ||
buttonOptions.position, | ||
false, | ||
buttonOptions.relativeTo || 'plotBox' | ||
); | ||
} else { | ||
@@ -558,3 +569,6 @@ this.drillUpButton.attr({ | ||
addedSeries = addedSeries || chart.addSeries(seriesOptions, false); | ||
if (addedSeries.type === oldSeries.type && addedSeries.animateDrillupTo) { | ||
if ( | ||
addedSeries.type === oldSeries.type && | ||
addedSeries.animateDrillupTo | ||
) { | ||
addedSeries.animate = addedSeries.animateDrillupTo; | ||
@@ -578,4 +592,8 @@ } | ||
while (seriesI--) { | ||
if (chartSeries[seriesI].options.id === level.lowerSeriesOptions.id && | ||
chartSeries[seriesI].options._levelNumber === levelNumber + 1) { // #3867 | ||
if ( | ||
chartSeries[seriesI].options.id === | ||
level.lowerSeriesOptions.id && | ||
chartSeries[seriesI].options._levelNumber === | ||
levelNumber + 1 | ||
) { // #3867 | ||
oldSeries = chartSeries[seriesI]; | ||
@@ -609,4 +627,12 @@ break; | ||
oldExtremes = level.oldExtremes; | ||
newSeries.xAxis.setExtremes(oldExtremes.xMin, oldExtremes.xMax, false); | ||
newSeries.yAxis.setExtremes(oldExtremes.yMin, oldExtremes.yMax, false); | ||
newSeries.xAxis.setExtremes( | ||
oldExtremes.xMin, | ||
oldExtremes.xMax, | ||
false | ||
); | ||
newSeries.yAxis.setExtremes( | ||
oldExtremes.yMin, | ||
oldExtremes.yMax, | ||
false | ||
); | ||
} | ||
@@ -654,5 +680,5 @@ | ||
// Don't show the reset button if we already are displaying the drillUp button. | ||
wrap(Chart.prototype, 'showResetZoom', function(proceed) { | ||
if (!this.drillUpButton) { | ||
proceed.apply(this, Array.prototype.slice.call(arguments, 1)); | ||
H.addEvent(Chart.prototype, 'beforeShowResetZoom', function() { | ||
if (this.drillUpButton) { | ||
return false; | ||
} | ||
@@ -734,3 +760,6 @@ }); | ||
each(drilldownLevels, function(level) { | ||
if (series.options._ddSeriesId === level.lowerSeriesOptions._ddSeriesId) { | ||
if ( | ||
series.options._ddSeriesId === | ||
level.lowerSeriesOptions._ddSeriesId | ||
) { | ||
animateFrom = level.shapeArgs; | ||
@@ -752,5 +781,7 @@ | ||
.animate( | ||
extend(point.shapeArgs, { | ||
fill: point.color || series.color | ||
}), | ||
extend( | ||
point.shapeArgs, { | ||
fill: point.color || series.color | ||
} | ||
), | ||
animationOptions | ||
@@ -769,4 +800,4 @@ ); | ||
/** | ||
* When drilling up, pull out the individual point graphics from the lower series | ||
* and animate them into the origin point in the upper series. | ||
* When drilling up, pull out the individual point graphics from the lower | ||
* series and animate them into the origin point in the upper series. | ||
*/ | ||
@@ -829,3 +860,5 @@ ColumnSeries.prototype.animateDrillupFrom = function(level) { | ||
animateDrilldown: function(init) { | ||
var level = this.chart.drilldownLevels[this.chart.drilldownLevels.length - 1], | ||
var level = this.chart.drilldownLevels[ | ||
this.chart.drilldownLevels.length - 1 | ||
], | ||
animationOptions = this.chart.options.drilldown.animation, | ||
@@ -860,3 +893,7 @@ animateFrom = level.shapeArgs, | ||
H.Point.prototype.doDrilldown = function(_holdRedraw, category, originalEvent) { | ||
H.Point.prototype.doDrilldown = function( | ||
_holdRedraw, | ||
category, | ||
originalEvent | ||
) { | ||
var series = this.series, | ||
@@ -873,3 +910,6 @@ chart = series.chart, | ||
while (i-- && !seriesOptions) { | ||
if (drilldown.series[i].id === this.drilldown && inArray(this.drilldown, chart.ddDupes) === -1) { | ||
if ( | ||
drilldown.series[i].id === this.drilldown && | ||
inArray(this.drilldown, chart.ddDupes) === -1 | ||
) { | ||
seriesOptions = drilldown.series[i]; | ||
@@ -880,4 +920,4 @@ chart.ddDupes.push(this.drilldown); | ||
// Fire the event. If seriesOptions is undefined, the implementer can check for | ||
// seriesOptions, and call addSeriesAsDrilldown async if necessary. | ||
// Fire the event. If seriesOptions is undefined, the implementer can check | ||
// for seriesOptions, and call addSeriesAsDrilldown async if necessary. | ||
fireEvent(chart, 'drilldown', { | ||
@@ -888,3 +928,6 @@ point: this, | ||
originalEvent: originalEvent, | ||
points: category !== undefined && this.series.xAxis.getDDPoints(category).slice(0) | ||
points: ( | ||
category !== undefined && | ||
this.series.xAxis.getDDPoints(category).slice(0) | ||
) | ||
}, function(e) { | ||
@@ -906,7 +949,13 @@ var chart = e.point.series && e.point.series.chart, | ||
/** | ||
* Drill down to a given category. This is the same as clicking on an axis label. | ||
* Drill down to a given category. This is the same as clicking on an axis | ||
* label. | ||
*/ | ||
H.Axis.prototype.drilldownCategory = function(x, e) { | ||
objectEach(this.getDDPoints(x), function(point) { | ||
if (point && point.series && point.series.visible && point.doDrilldown) { // #3197 | ||
if ( | ||
point && | ||
point.series && | ||
point.series.visible && | ||
point.doDrilldown | ||
) { // #3197 | ||
point.doDrilldown(true, x, e); | ||
@@ -929,3 +978,7 @@ } | ||
for (i = 0; i < xData.length; i++) { | ||
if (xData[i] === x && series.options.data[i] && series.options.data[i].drilldown) { | ||
if ( | ||
xData[i] === x && | ||
series.options.data[i] && | ||
series.options.data[i].drilldown | ||
) { | ||
ret.push(points ? points[i] : true); | ||
@@ -976,16 +1029,14 @@ break; | ||
*/ | ||
wrap(Tick.prototype, 'addLabel', function(proceed) { | ||
proceed.call(this); | ||
this.drillable(); | ||
}); | ||
H.addEvent(Tick.prototype, 'afterRender', Tick.prototype.drillable); | ||
/** | ||
* On initialization of each point, identify its label and make it clickable. Also, provide a | ||
* list of points associated to that label. | ||
* On initialization of each point, identify its label and make it clickable. | ||
* Also, provide a list of points associated to that label. | ||
*/ | ||
wrap(H.Point.prototype, 'init', function(proceed, series, options, x) { | ||
var point = proceed.call(this, series, options, x), | ||
H.addEvent(H.Point.prototype, 'afterInit', function() { | ||
var point = this, | ||
series = point.series, | ||
xAxis = series.xAxis, | ||
tick = xAxis && xAxis.ticks[x]; | ||
tick = xAxis && xAxis.ticks[point.x]; | ||
@@ -996,3 +1047,6 @@ if (point.drilldown) { | ||
H.addEvent(point, 'click', function(e) { | ||
if (series.xAxis && series.chart.options.drilldown.allowPointDrilldown === false) { | ||
if ( | ||
series.xAxis && | ||
series.chart.options.drilldown.allowPointDrilldown === false | ||
) { | ||
series.xAxis.drilldownCategory(point.x, e); // #5822, x changed | ||
@@ -1014,8 +1068,6 @@ } else { | ||
wrap(H.Series.prototype, 'drawDataLabels', function(proceed) { | ||
H.addEvent(H.Series.prototype, 'afterDrawDataLabels', function() { | ||
var css = this.chart.options.drilldown.activeDataLabelStyle, | ||
renderer = this.chart.renderer; | ||
proceed.call(this); | ||
each(this.points, function(point) { | ||
@@ -1043,3 +1095,5 @@ var dataLabelsOptions = point.options.dataLabels, | ||
var applyCursorCSS = function(element, cursor, addClass) { | ||
element[addClass ? 'addClass' : 'removeClass']('highcharts-drilldown-point'); | ||
element[addClass ? 'addClass' : 'removeClass']( | ||
'highcharts-drilldown-point' | ||
); | ||
@@ -1050,4 +1104,3 @@ | ||
// Mark the trackers with a pointer | ||
var drawTrackerWrapper = function(proceed) { | ||
proceed.call(this); | ||
H.addEvent(H.Series.prototype, 'afterDrawTracker', function() { | ||
each(this.points, function(point) { | ||
@@ -1058,8 +1111,7 @@ if (point.drilldown && point.graphic) { | ||
}); | ||
}; | ||
}); | ||
var setPointStateWrapper = function(proceed, state) { | ||
var ret = proceed.apply(this, Array.prototype.slice.call(arguments, 1)); | ||
if (this.drilldown && this.series.halo && state === 'hover') { | ||
H.addEvent(H.Point.prototype, 'afterSetState', function() { | ||
if (this.drilldown && this.series.halo && this.state === 'hover') { | ||
applyCursorCSS(this.series.halo, 'pointer', true); | ||
@@ -1069,9 +1121,2 @@ } else if (this.series.halo) { | ||
} | ||
return ret; | ||
}; | ||
objectEach(seriesTypes, function(seriesType) { | ||
wrap(seriesType.prototype, 'drawTracker', drawTrackerWrapper); | ||
wrap(seriesType.prototype.pointClass.prototype, 'setState', setPointStateWrapper); | ||
}); | ||
@@ -1078,0 +1123,0 @@ |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Exporting module | ||
@@ -4,0 +4,0 @@ |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* Exporting module | ||
@@ -4,0 +4,0 @@ * |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Exporting module | ||
@@ -4,0 +4,0 @@ |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Highcharts funnel module | ||
@@ -4,0 +4,0 @@ |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* Highcharts funnel module | ||
@@ -118,3 +118,5 @@ * | ||
/** @ignore */ | ||
/** | ||
* @ignore | ||
*/ | ||
size: true, // to avoid adapting to data label size in Pie.drawDataLabels | ||
@@ -121,0 +123,0 @@ |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Gantt series | ||
@@ -4,0 +4,0 @@ |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* Gantt series | ||
@@ -893,3 +893,3 @@ * | ||
} | ||
*/ | ||
//*/ | ||
@@ -896,0 +896,0 @@ // Point class properties |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
GridAxis | ||
@@ -4,0 +4,0 @@ |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* GridAxis | ||
@@ -4,0 +4,0 @@ * |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ (c) 2009-2017 Torstein Honsi |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -131,7 +131,10 @@ * (c) 2009-2017 Torstein Honsi | ||
/** | ||
* The start of the value range that the data class represents, relating | ||
* to the point value. | ||
* The start of the value range that the data class represents, | ||
* relating to the point value. | ||
* | ||
* The range of each `dataClass` is closed in both ends, but can be | ||
* overridden by the next `dataClass`. | ||
* | ||
* @type {Number} | ||
* @product highcharts highmaps | ||
* @type {Number} | ||
* @product highcharts highmaps | ||
* @apioption colorAxis.dataClasses.from | ||
@@ -141,12 +144,14 @@ */ | ||
/** | ||
* The name of the data class as it appears in the legend. If no name | ||
* is given, it is automatically created based on the `from` and `to` | ||
* values. For full programmatic control, [legend.labelFormatter](#legend. | ||
* labelFormatter) can be used. In the formatter, `this.from` and | ||
* `this.to` can be accessed. | ||
* The name of the data class as it appears in the legend. | ||
* If no name is given, it is automatically created based on the | ||
* `from` and `to` values. For full programmatic control, | ||
* [legend.labelFormatter](#legend.labelFormatter) can be used. | ||
* In the formatter, `this.from` and `this.to` can be accessed. | ||
* | ||
* @type {String} | ||
* @sample {highmaps} maps/coloraxis/dataclasses-name/ Named data classes | ||
* @sample {highmaps} maps/coloraxis/dataclasses-labelformatter/ Formatted data classes | ||
* @product highcharts highmaps | ||
* @type {String} | ||
* @sample {highmaps} maps/coloraxis/dataclasses-name/ | ||
* Named data classes | ||
* @sample {highmaps} maps/coloraxis/dataclasses-labelformatter/ | ||
* Formatted data classes | ||
* @product highcharts highmaps | ||
* @apioption colorAxis.dataClasses.name | ||
@@ -156,11 +161,16 @@ */ | ||
/** | ||
* The end of the value range that the data class represents, relating | ||
* to the point value. | ||
* The end of the value range that the data class represents, | ||
* relating to the point value. | ||
* | ||
* The range of each `dataClass` is closed in both ends, but can be | ||
* overridden by the next `dataClass`. | ||
* | ||
* @type {Number} | ||
* @product highcharts highmaps | ||
* @type {Number} | ||
* @product highcharts highmaps | ||
* @apioption colorAxis.dataClasses.to | ||
*/ | ||
/** @ignore */ | ||
/** | ||
* @ignore | ||
*/ | ||
lineWidth: 0, | ||
@@ -296,3 +306,5 @@ | ||
/** @ignore */ | ||
/** | ||
* @ignore | ||
*/ | ||
width: 0.01 | ||
@@ -404,2 +416,11 @@ | ||
/** | ||
* Fires when the legend item belonging to the colorAxis is clicked. | ||
* One parameter, `event`, is passed to the function. | ||
* | ||
* @type {Function} | ||
* @product highcharts highmaps | ||
* @apioption colorAxis.events.legendItemClick | ||
*/ | ||
/** | ||
* Whether to display the colorAxis in the legend. | ||
@@ -1111,3 +1132,3 @@ * | ||
* @extends {plotOptions.scatter} | ||
* @excluding marker,pointRange | ||
* @excluding marker,pointRange,pointPlacement | ||
* @product highcharts highmaps | ||
@@ -1191,3 +1212,5 @@ * @optionparent plotOptions.heatmap | ||
/** @ignore */ | ||
/** | ||
* @ignore | ||
*/ | ||
marker: null, | ||
@@ -1205,3 +1228,5 @@ | ||
hover: { | ||
/** @ignore */ | ||
/** | ||
* @ignore | ||
*/ | ||
halo: false, // #3406, halo is disabled on heatmaps by default | ||
@@ -1342,3 +1367,3 @@ | ||
* @extends series,plotOptions.heatmap | ||
* @excluding dataParser,dataURL,stack | ||
* @excluding dataParser,dataURL,marker,pointRange,stack | ||
* @product highcharts highmaps | ||
@@ -1345,0 +1370,0 @@ * @apioption series.heatmap |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -9,8 +9,8 @@ (c) 2010-2017 Highsoft AS | ||
*/ | ||
(function(d){"object"===typeof module&&module.exports?module.exports=d:d(Highcharts)})(function(d){var t=function(a){var d=a.each,k=a.Series,l=a.addEvent,n=a.fireEvent,e=a.wrap,h={init:function(){k.prototype.init.apply(this,arguments);this.initialised=!1;this.baseSeries=null;this.eventRemovers=[];this.addEvents()},setDerivedData:a.noop,setBaseSeries:function(){var m=this.chart,a=this.options.baseSeries;this.baseSeries=a&&(m.series[a]||m.get(a))||null},addEvents:function(){var a=this,g;g=l(this.chart, | ||
"seriesLinked",function(){a.setBaseSeries();a.baseSeries&&!a.initialised&&(a.setDerivedData(),a.addBaseSeriesEvents(),a.initialised=!0)});this.eventRemovers.push(g)},addBaseSeriesEvents:function(){var a=this,g,d;g=l(a.baseSeries,"updatedData",function(){a.setDerivedData()});d=l(a.baseSeries,"destroy",function(){a.baseSeries=null;a.initialised=!1});a.eventRemovers.push(g,d)},destroy:function(){d(this.eventRemovers,function(a){a()});k.prototype.destroy.apply(this,arguments)}};e(a.Chart.prototype,"linkSeries", | ||
function(a){a.call(this);n(this,"seriesLinked")});return h}(d);(function(a,d){function k(a){return function(b){return Math.floor(b/a)*a}}var l=a.each,n=a.objectEach,e=a.seriesType,h=a.correctFloat,m=a.isNumber,g=a.arrayMax,p=a.arrayMin;a=a.merge;var f={"square-root":function(a){return Math.round(Math.sqrt(a.options.data.length))},sturges:function(a){return Math.ceil(Math.log(a.options.data.length)*Math.LOG2E)},rice:function(a){return Math.ceil(2*Math.pow(a.options.data.length,1/3))}};e("histogram", | ||
"column",{binsNumber:"square-root",binWidth:void 0,pointPadding:0,groupPadding:0,grouping:!1,pointPlacement:"between",tooltip:{headerFormat:"",pointFormat:'\x3cspan style\x3d"font-size:10px"\x3e{point.x} - {point.x2}\x3c/span\x3e\x3cbr/\x3e\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e {series.name} \x3cb\x3e{point.y}\x3c/b\x3e\x3cbr/\x3e'}},a(d,{setDerivedData:function(){var a=this.derivedData(this.baseSeries.yData,this.binsNumber(),this.options.binWidth);this.setData(a,!1)},derivedData:function(a, | ||
c,f){var b=g(a),d=p(a),r={},e=[],q;f=this.binWidth=m(f)?f:(b-d)/c;q=k(f);for(c=q(d);c<=b;c+=f)r[h(q(c))]=0;l(a,function(a){a=h(q(a));r[a]++});n(r,function(a,b){e.push({x:Number(b),y:a,x2:h(Number(b)+f)})});e.sort(function(a,b){return a.x-b.x});return e},binsNumber:function(){var a=this.options.binsNumber,c=f[a]||"function"===typeof a&&a;return Math.ceil(c&&c(this.baseSeries)||(m(a)?a:f["square-root"](this.baseSeries)))}}))})(d,t);(function(a,d){function k(a){var b=a.length;a=p(a,function(a,b){return a+ | ||
b},0);return 0<b&&a/b}function l(a,b){var c=a.length;b=m(b)?b:k(a);a=p(a,function(a,c){c-=b;return a+c*c},0);return 1<c&&Math.sqrt(a/(c-1))}function n(a,b,c){a-=b;return Math.exp(-(a*a)/(2*c*c))/(c*Math.sqrt(2*Math.PI))}var e=a.seriesType,h=a.correctFloat,m=a.isNumber,g=a.merge,p=a.reduce;e("bellcurve","areaspline",{intervals:3,pointsInInterval:3,marker:{enabled:!1}},g(d,{setMean:function(){this.mean=h(k(this.baseSeries.yData))},setStandardDeviation:function(){this.standardDeviation=h(l(this.baseSeries.yData, | ||
this.mean))},setDerivedData:function(){1<this.baseSeries.yData.length&&(this.setMean(),this.setStandardDeviation(),this.setData(this.derivedData(this.mean,this.standardDeviation),!1))},derivedData:function(a,b){var c=this.options.intervals,d=this.options.pointsInInterval,e=a-c*b,c=c*d*2+1,d=b/d,g=[],f;for(f=0;f<c;f++)g.push([e,n(e,a,b)]),e+=d;return g}}))})(d,t)}); | ||
(function(d){"object"===typeof module&&module.exports?module.exports=d:d(Highcharts)})(function(d){var u=function(a){var d=a.each,h=a.Series,k=a.addEvent,l=a.fireEvent,m=a.wrap,f={init:function(){h.prototype.init.apply(this,arguments);this.initialised=!1;this.baseSeries=null;this.eventRemovers=[];this.addEvents()},setDerivedData:a.noop,setBaseSeries:function(){var g=this.chart,a=this.options.baseSeries;this.baseSeries=a&&(g.series[a]||g.get(a))||null},addEvents:function(){var a=this,e;e=k(this.chart, | ||
"seriesLinked",function(){a.setBaseSeries();a.baseSeries&&!a.initialised&&(a.setDerivedData(),a.addBaseSeriesEvents(),a.initialised=!0)});this.eventRemovers.push(e)},addBaseSeriesEvents:function(){var a=this,e,d;e=k(a.baseSeries,"updatedData",function(){a.setDerivedData()});d=k(a.baseSeries,"destroy",function(){a.baseSeries=null;a.initialised=!1});a.eventRemovers.push(e,d)},destroy:function(){d(this.eventRemovers,function(a){a()});h.prototype.destroy.apply(this,arguments)}};m(a.Chart.prototype,"linkSeries", | ||
function(a){a.call(this);l(this,"seriesLinked")});return f}(d);(function(a,d){function h(a){return function(b){return Math.floor(b/a)*a}}function k(a){return a}var l=a.each,m=a.objectEach,f=a.seriesType,g=a.correctFloat,e=a.isNumber,p=a.arrayMax,q=a.arrayMin;a=a.merge;var c={"square-root":function(a){return Math.round(Math.sqrt(a.options.data.length))},sturges:function(a){return Math.ceil(Math.log(a.options.data.length)*Math.LOG2E)},rice:function(a){return Math.ceil(2*Math.pow(a.options.data.length, | ||
1/3))}};f("histogram","column",{binsNumber:"square-root",binWidth:void 0,pointPadding:0,groupPadding:0,grouping:!1,pointPlacement:"between",tooltip:{headerFormat:"",pointFormat:'\x3cspan style\x3d"font-size:10px"\x3e{point.x} - {point.x2}\x3c/span\x3e\x3cbr/\x3e\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e {series.name} \x3cb\x3e{point.y}\x3c/b\x3e\x3cbr/\x3e'}},a(d,{setDerivedData:function(){var a=this.derivedData(this.baseSeries.yData,this.binsNumber(),this.options.binWidth);this.setData(a, | ||
!1)},derivedData:function(a,n,c){var b=p(a),d=q(a),t={},f=[],r;r=(c=this.binWidth=e(c)?c:(b-d)/n)?h(c):k;for(n=r(d);n<=b;n+=c||1)t[g(r(n))]=0;l(a,function(a){a=g(r(a));t[a]++});m(t,function(a,b){f.push({x:Number(b),y:a,x2:g(Number(b)+c)})});f.sort(function(a,b){return a.x-b.x});return f},binsNumber:function(){var a=this.options.binsNumber,q=c[a]||"function"===typeof a&&a;return Math.ceil(q&&q(this.baseSeries)||(e(a)?a:c["square-root"](this.baseSeries)))}}))})(d,u);(function(a,d){function h(a){var c= | ||
a.length;a=p(a,function(a,c){return a+c},0);return 0<c&&a/c}function k(a,c){var b=a.length;c=g(c)?c:h(a);a=p(a,function(a,b){b-=c;return a+b*b},0);return 1<b&&Math.sqrt(a/(b-1))}function l(a,c,b){a-=c;return Math.exp(-(a*a)/(2*b*b))/(b*Math.sqrt(2*Math.PI))}var m=a.seriesType,f=a.correctFloat,g=a.isNumber,e=a.merge,p=a.reduce;m("bellcurve","areaspline",{intervals:3,pointsInInterval:3,marker:{enabled:!1}},e(d,{setMean:function(){this.mean=f(h(this.baseSeries.yData))},setStandardDeviation:function(){this.standardDeviation= | ||
f(k(this.baseSeries.yData,this.mean))},setDerivedData:function(){1<this.baseSeries.yData.length&&(this.setMean(),this.setStandardDeviation(),this.setData(this.derivedData(this.mean,this.standardDeviation),!1))},derivedData:function(a,c){var b=this.options.intervals,d=this.options.pointsInInterval,e=a-b*c,b=b*d*2+1,d=c/d,f=[],g;for(g=0;g<b;g++)f.push([e,l(e,a,c)]),e+=d;return f}}))})(d,u)}); |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -212,2 +212,13 @@ * (c) 2010-2017 Highsoft AS | ||
/** | ||
* Identity function - takes a param and returns that param | ||
* It is used to grouping data with the same values | ||
* | ||
* @param {number} y - value | ||
* @returns {number} | ||
**/ | ||
function identity(y) { | ||
return y; | ||
} | ||
/** | ||
* Histogram class | ||
@@ -288,5 +299,7 @@ * | ||
fitToBin = fitToBinLeftClosed(binWidth); | ||
fitToBin = binWidth ? fitToBinLeftClosed(binWidth) : identity; | ||
for (x = fitToBin(min); x <= max; x += binWidth) { | ||
// If binWidth is 0 then max and min are equaled, | ||
// increment the x with some positive value to quit the loop | ||
for (x = fitToBin(min); x <= max; x += (binWidth || 1)) { | ||
frequencies[correctFloat(fitToBin(x))] = 0; | ||
@@ -464,39 +477,2 @@ } | ||
/** | ||
* A `bellcurve` series. If the [type](#series.bellcurve.type) option is not | ||
* specified, it is inherited from [chart.type](#chart.type). | ||
* | ||
* For options that apply to multiple series, it is recommended to add | ||
* them to the [plotOptions.series](#plotOptions.series) options structure. | ||
* To apply to all series of this specific type, apply it to | ||
* [plotOptions.bellcurve](#plotOptions.bellcurve). | ||
* | ||
* @type {Object} | ||
* @since 6.0.0 | ||
* @extends series,plotOptions.bellcurve | ||
* @excluding dataParser,dataURL,data | ||
* @product highcharts | ||
* @apioption series.bellcurve | ||
**/ | ||
/** | ||
* An integer identifying the index to use for the base series, or a string | ||
* representing the id of the series. | ||
* | ||
* @type {Number|String} | ||
* @default undefined | ||
* @apioption series.bellcurve.baseSeries | ||
**/ | ||
/** | ||
* An array of data points for the series. For the `bellcurve` series type, | ||
* points are calculated dynamically. | ||
* | ||
* @type {Array<Object|Array>} | ||
* @since 6.0.0 | ||
* @extends series.areaspline.data | ||
* @product highcharts | ||
* @apioption series.bellcurve.data | ||
**/ | ||
}, merge(derivedSeriesMixin, { | ||
@@ -541,3 +517,41 @@ setMean: function() { | ||
/** | ||
* A `bellcurve` series. If the [type](#series.bellcurve.type) option is not | ||
* specified, it is inherited from [chart.type](#chart.type). | ||
* | ||
* For options that apply to multiple series, it is recommended to add | ||
* them to the [plotOptions.series](#plotOptions.series) options structure. | ||
* To apply to all series of this specific type, apply it to | ||
* [plotOptions.bellcurve](#plotOptions.bellcurve). | ||
* | ||
* @type {Object} | ||
* @since 6.0.0 | ||
* @extends series,plotOptions.bellcurve | ||
* @excluding dataParser,dataURL,data | ||
* @product highcharts | ||
* @apioption series.bellcurve | ||
*/ | ||
/** | ||
* An integer identifying the index to use for the base series, or a string | ||
* representing the id of the series. | ||
* | ||
* @type {Number|String} | ||
* @default undefined | ||
* @apioption series.bellcurve.baseSeries | ||
*/ | ||
/** | ||
* An array of data points for the series. For the `bellcurve` series type, | ||
* points are calculated dynamically. | ||
* | ||
* @type {Array<Object|Array>} | ||
* @since 6.0.0 | ||
* @extends series.areaspline.data | ||
* @product highcharts | ||
* @apioption series.bellcurve.data | ||
*/ | ||
}(Highcharts, derivedSeriesMixin)); | ||
})); |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Item series type for Highcharts |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * Item series type for Highcharts |
/* | ||
Highmaps JS v6.0.6 (2018-02-05) | ||
Highmaps JS v6.0.7 (2018-02-16) | ||
Highmaps as a plugin for Highcharts or Highstock. | ||
@@ -4,0 +4,0 @@ |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Plugin for displaying a message when there is no data visible in chart. | ||
@@ -4,0 +4,0 @@ |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* Plugin for displaying a message when there is no data visible in chart. | ||
@@ -43,3 +43,5 @@ * | ||
* @since 3.0.8 | ||
* @product highcharts | ||
* @product highcharts highstock | ||
* @sample highcharts/no-data-to-display/no-data-line | ||
* No-data text | ||
* @apioption lang.noData | ||
@@ -56,2 +58,7 @@ */ | ||
* @type {Object} | ||
* | ||
* @sample highcharts/no-data-to-display/no-data-line | ||
* Line chart with no-data module | ||
* @sample highcharts/no-data-to-display/no-data-pie | ||
* Pie chart with no-data module | ||
* @optionparent noData | ||
@@ -58,0 +65,0 @@ */ |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Client side exporting module | ||
@@ -19,3 +19,3 @@ | ||
function(a,e){var d=this,b=c.merge(d.options.exporting,a),f=function(){if(!1===b.fallbackToExportServer)if(b.error)b.error(b);else throw"Fallback to export server disabled";else d.exportChart(b)};A&&(c.SVGRenderer.prototype.inlineWhitelist=[/^blockSize/,/^border/,/^caretColor/,/^color/,/^columnRule/,/^columnRuleColor/,/^cssFloat/,/^cursor/,/^fill$/,/^fillOpacity/,/^font/,/^inlineSize/,/^length/,/^lineHeight/,/^opacity/,/^outline/,/^parentRule/,/^rx$/,/^ry$/,/^stroke/,/^textAlign/,/^textAnchor/,/^textDecoration/, | ||
/^transform/,/^vectorEffect/,/^visibility/,/^x$/,/^y$/]);A&&("application/pdf"===b.type||d.container.getElementsByTagName("image").length&&"image/svg+xml"!==b.type)||"application/pdf"===b.type&&d.container.getElementsByTagName("image").length?f():d.getSVGForLocalExport(b,e,f,function(a){-1<a.indexOf("\x3cforeignObject")&&"image/svg+xml"!==b.type?f():c.downloadSVGLocal(a,b,f)})};C(!0,c.getOptions().exporting,{libURL:"https://code.highcharts.com/6.0.6/lib/",menuItemDefinitions:{downloadPNG:{textKey:"downloadPNG", | ||
/^transform/,/^vectorEffect/,/^visibility/,/^x$/,/^y$/]);A&&("application/pdf"===b.type||d.container.getElementsByTagName("image").length&&"image/svg+xml"!==b.type)||"application/pdf"===b.type&&d.container.getElementsByTagName("image").length?f():d.getSVGForLocalExport(b,e,f,function(a){-1<a.indexOf("\x3cforeignObject")&&"image/svg+xml"!==b.type?f():c.downloadSVGLocal(a,b,f)})};C(!0,c.getOptions().exporting,{libURL:"https://code.highcharts.com/6.0.7/lib/",menuItemDefinitions:{downloadPNG:{textKey:"downloadPNG", | ||
onclick:function(){this.exportChartLocal()}},downloadJPEG:{textKey:"downloadJPEG",onclick:function(){this.exportChartLocal({type:"image/jpeg"})}},downloadSVG:{textKey:"downloadSVG",onclick:function(){this.exportChartLocal({type:"image/svg+xml"})}},downloadPDF:{textKey:"downloadPDF",onclick:function(){this.exportChartLocal({type:"application/pdf"})}}}})})(n)}); |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* Client side exporting module | ||
@@ -682,3 +682,3 @@ * | ||
merge(true, Highcharts.getOptions().exporting, { | ||
libURL: 'https://code.highcharts.com/6.0.6/lib/', | ||
libURL: 'https://code.highcharts.com/6.0.7/lib/', | ||
@@ -685,0 +685,0 @@ // When offline-exporting is loaded, redefine the menu item definitions |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Old IE (v6, v7, v8) module for Highcharts v6+. | ||
@@ -10,3 +10,3 @@ | ||
*/ | ||
(function(l){"object"===typeof module&&module.exports?module.exports=l:l(Highcharts)})(function(l){(function(d){var w,g;g=d.Chart;var A=d.createElement,l=d.css,E=d.defined,n=d.deg2rad,F=d.discardElement,h=d.doc,I=d.each,G=d.erase,B=d.extend;w=d.extendClass;var M=d.isArray,K=d.isNumber,C=d.isObject,N=d.merge,L=d.noop,x=d.pick,t=d.pInt,D=d.svg,y=d.SVGElement,u=d.SVGRenderer,v=d.win,O=d.wrap;d.getOptions().global.VMLRadialGradientURL="http://code.highcharts.com/6.0.6/gfx/vml-radial-gradient.png";h&& | ||
(function(l){"object"===typeof module&&module.exports?module.exports=l:l(Highcharts)})(function(l){(function(d){var w,g;g=d.Chart;var A=d.createElement,l=d.css,E=d.defined,n=d.deg2rad,F=d.discardElement,h=d.doc,I=d.each,G=d.erase,B=d.extend;w=d.extendClass;var M=d.isArray,K=d.isNumber,C=d.isObject,N=d.merge,L=d.noop,x=d.pick,t=d.pInt,D=d.svg,y=d.SVGElement,u=d.SVGRenderer,v=d.win,O=d.wrap;d.getOptions().global.VMLRadialGradientURL="http://code.highcharts.com/6.0.7/gfx/vml-radial-gradient.png";h&& | ||
!h.defaultView&&(d.getStyle=function(a,b){var c={width:"clientWidth",height:"clientHeight"}[b];if(a.style[b])return d.pInt(a.style[b]);"opacity"===b&&(b="filter");if(c)return a.style.zoom=1,Math.max(a[c]-2*d.getStyle(a,"padding"),0);a=a.currentStyle[b.replace(/\-(\w)/g,function(a,b){return b.toUpperCase()})];"filter"===b&&(a=a.replace(/alpha\(opacity=([0-9]+)\)/,function(a,b){return b/100}));return""===a?1:d.pInt(a)});Array.prototype.forEach||(d.forEachPolyfill=function(a,b){for(var c=0,e=this.length;c< | ||
@@ -23,15 +23,15 @@ e;c++)if(!1===a.call(b,this[c],c,this))return c});Array.prototype.indexOf||(d.indexOfPolyfill=function(a){var b,c=0;if(a)for(b=a.length;c<b;c++)if(a[c]===this)return c;return-1});Array.prototype.filter||(d.filterPolyfill=function(a){for(var b=[],c=0,e=this.length;c<e;c++)a(this[c],c)&&b.push(this[c]);return b});Object.prototype.keys||(d.keysPolyfill=function(a){var b=[],c=Object.prototype.hasOwnProperty,e;for(e in a)c.call(a,e)&&b.push(e);return b});Array.prototype.reduce||(d.reducePolyfill=function(a, | ||
(m=this.cutOffPath(r.value,J+.5)),k=['\x3cshape isShadow\x3d"true" strokeweight\x3d"',J,'" filled\x3d"false" path\x3d"',m,'" coordsize\x3d"10 10" style\x3d"',f.style.cssText,'" /\x3e'],q=A(h.prepVML(k),null,{left:t(g.left)+x(a.offsetX,1),top:t(g.top)+x(a.offsetY,1)}),c&&(q.cutOff=J+1),k=['\x3cstroke color\x3d"',a.color||"#000000",'" opacity\x3d"',n*d,'"/\x3e'],A(h.prepVML(k),null,null,q),b?b.element.appendChild(q):f.parentNode.insertBefore(q,f),e.push(q);this.shadows=e}return this},updateShadows:L, | ||
setAttr:function(a,b){this.docMode8?this.element[a]=b:this.element.setAttribute(a,b)},classSetter:function(a){(this.added?this.element:this).className=a},dashstyleSetter:function(a,b,c){(c.getElementsByTagName("stroke")[0]||A(this.renderer.prepVML(["\x3cstroke/\x3e"]),null,null,c))[b]=a||"solid";this[b]=a},dSetter:function(a,b,c){var e=this.shadows;a=a||[];this.d=a.join&&a.join(" ");c.path=a=this.pathToVML(a);if(e)for(c=e.length;c--;)e[c].path=e[c].cutOff?this.cutOffPath(a,e[c].cutOff):a;this.setAttr(b, | ||
a)},fillSetter:function(a,b,c){var e=c.nodeName;"SPAN"===e?c.style.color=a:"IMG"!==e&&(c.filled="none"!==a,this.setAttr("fillcolor",this.renderer.color(a,c,b,this)))},"fill-opacitySetter":function(a,b,c){A(this.renderer.prepVML(["\x3c",b.split("-")[0],' opacity\x3d"',a,'"/\x3e']),null,null,c)},opacitySetter:L,rotationSetter:function(a,b,c){c=c.style;this[b]=c[b]=a;c.left=-Math.round(Math.sin(a*n)+1)+"px";c.top=Math.round(Math.cos(a*n))+"px"},strokeSetter:function(a,b,c){this.setAttr("strokecolor", | ||
this.renderer.color(a,c,b,this))},"stroke-widthSetter":function(a,b,c){c.stroked=!!a;this[b]=a;K(a)&&(a+="px");this.setAttr("strokeweight",a)},titleSetter:function(a,b){this.setAttr(b,a)},visibilitySetter:function(a,b,c){"inherit"===a&&(a="visible");this.shadows&&I(this.shadows,function(c){c.style[b]=a});"DIV"===c.nodeName&&(a="hidden"===a?"-999em":0,this.docMode8||(c.style[b]=a?"visible":"hidden"),b="top");c.style[b]=a},xSetter:function(a,b,c){this[b]=a;"x"===b?b="left":"y"===b&&(b="top");this.updateClipping? | ||
(this[b]=a,this.updateClipping()):c.style[b]=a},zIndexSetter:function(a,b,c){c.style[b]=a}},g["stroke-opacitySetter"]=g["fill-opacitySetter"],d.VMLElement=g=w(y,g),g.prototype.ySetter=g.prototype.widthSetter=g.prototype.heightSetter=g.prototype.xSetter,g={Element:g,isIE8:-1<v.navigator.userAgent.indexOf("MSIE 8.0"),init:function(a,b,c){var e,d;this.alignedObjects=[];e=this.createElement("div").css({position:"relative"});d=e.element;a.appendChild(e.element);this.isVML=!0;this.box=d;this.boxWrapper= | ||
e;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount=0;this.setSize(b,c,!1);if(!h.namespaces.hcv){h.namespaces.add("hcv","urn:schemas-microsoft-com:vml");try{h.createStyleSheet().cssText="hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke{ behavior:url(#default#VML); display: inline-block; } "}catch(f){h.styleSheets[0].cssText+="hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke{ behavior:url(#default#VML); display: inline-block; } "}}},isHidden:function(){return!this.box.offsetWidth}, | ||
clipRect:function(a,b,c,e){var d=this.createElement(),f=C(a);return B(d,{members:[],count:0,left:(f?a.x:a)+1,top:(f?a.y:b)+1,width:(f?a.width:c)-1,height:(f?a.height:e)-1,getCSS:function(a){var b=a.element,c=b.nodeName,e=a.inverted,d=this.top-("shape"===c?b.offsetTop:0),f=this.left,b=f+this.width,p=d+this.height,d={clip:"rect("+Math.round(e?f:d)+"px,"+Math.round(e?p:b)+"px,"+Math.round(e?b:p)+"px,"+Math.round(e?d:f)+"px)"};!e&&a.docMode8&&"DIV"===c&&B(d,{width:b+"px",height:p+"px"});return d},updateClipping:function(){I(d.members, | ||
function(a){a.element&&a.css(d.getCSS(a))})}})},color:function(a,b,c,e){var p=this,f,h=/^rgba/,q,g,k="none";a&&a.linearGradient?g="gradient":a&&a.radialGradient&&(g="pattern");if(g){var r,l,m=a.linearGradient||a.radialGradient,n,t,u,v,w,x="";a=a.stops;var y,B=[],C=function(){q=['\x3cfill colors\x3d"'+B.join(",")+'" opacity\x3d"',u,'" o:opacity2\x3d"',t,'" type\x3d"',g,'" ',x,'focus\x3d"100%" method\x3d"any" /\x3e'];A(p.prepVML(q),null,null,b)};n=a[0];y=a[a.length-1];0<n[0]&&a.unshift([0,n[1]]);1> | ||
y[0]&&a.push([1,y[1]]);I(a,function(a,b){h.test(a[1])?(f=d.color(a[1]),r=f.get("rgb"),l=f.get("a")):(r=a[1],l=1);B.push(100*a[0]+"% "+r);b?(u=l,v=r):(t=l,w=r)});if("fill"===c)if("gradient"===g)c=m.x1||m[0]||0,a=m.y1||m[1]||0,n=m.x2||m[2]||0,m=m.y2||m[3]||0,x='angle\x3d"'+(90-180*Math.atan((m-a)/(n-c))/Math.PI)+'"',C();else{var k=m.r,D=2*k,E=2*k,F=m.cx,G=m.cy,H=b.radialReference,z,k=function(){H&&(z=e.getBBox(),F+=(H[0]-z.x)/z.width-.5,G+=(H[1]-z.y)/z.height-.5,D*=H[2]/z.width,E*=H[2]/z.height);x= | ||
'src\x3d"'+d.getOptions().global.VMLRadialGradientURL+'" size\x3d"'+D+","+E+'" origin\x3d"0.5,0.5" position\x3d"'+F+","+G+'" color2\x3d"'+w+'" ';C()};e.added?k():e.onAdd=k;k=v}else k=r}else h.test(a)&&"IMG"!==b.tagName?(f=d.color(a),e[c+"-opacitySetter"](f.get("a"),c,b),k=f.get("rgb")):(k=b.getElementsByTagName(c),k.length&&(k[0].opacity=1,k[0].type="solid"),k=a);return k},prepVML:function(a){var b=this.isIE8;a=a.join("");b?(a=a.replace("/\x3e",' xmlns\x3d"urn:schemas-microsoft-com:vml" /\x3e'),a= | ||
-1===a.indexOf('style\x3d"')?a.replace("/\x3e",' style\x3d"display:inline-block;behavior:url(#default#VML);" /\x3e'):a.replace('style\x3d"','style\x3d"display:inline-block;behavior:url(#default#VML);')):a=a.replace("\x3c","\x3chcv:");return a},text:u.prototype.html,path:function(a){var b={coordsize:"10 10"};M(a)?b.d=a:C(a)&&B(b,a);return this.createElement("shape").attr(b)},circle:function(a,b,c){var e=this.symbol("circle");C(a)&&(c=a.r,b=a.y,a=a.x);e.isCircle=!0;e.r=c;return e.attr({x:a,y:b})},g:function(a){var b; | ||
a&&(b={className:"highcharts-"+a,"class":"highcharts-"+a});return this.createElement("div").attr(b)},image:function(a,b,c,e,d){var f=this.createElement("img").attr({src:a});1<arguments.length&&f.attr({x:b,y:c,width:e,height:d});return f},createElement:function(a){return"rect"===a?this.symbol(a):u.prototype.createElement.call(this,a)},invertChild:function(a,b){var c=this;b=b.style;var e="IMG"===a.tagName&&a.style;l(a,{flip:"x",left:t(b.width)-(e?t(e.top):1),top:t(b.height)-(e?t(e.left):1),rotation:-90}); | ||
I(a.childNodes,function(b){c.invertChild(b,a)})},symbols:{arc:function(a,b,c,e,d){var f=d.start,h=d.end,g=d.r||c||e;c=d.innerR;e=Math.cos(f);var p=Math.sin(f),k=Math.cos(h),l=Math.sin(h);if(0===h-f)return["x"];f=["wa",a-g,b-g,a+g,b+g,a+g*e,b+g*p,a+g*k,b+g*l];d.open&&!c&&f.push("e","M",a,b);f.push("at",a-c,b-c,a+c,b+c,a+c*k,b+c*l,a+c*e,b+c*p,"x","e");f.isArc=!0;return f},circle:function(a,b,c,e,d){d&&E(d.r)&&(c=e=2*d.r);d&&d.isCircle&&(a-=c/2,b-=e/2);return["wa",a,b,a+c,b+e,a+c,b+e/2,a+c,b+e/2,"e"]}, | ||
rect:function(a,b,c,d,g){return u.prototype.symbols[E(g)&&g.r?"callout":"square"].call(0,a,b,c,d,g)}}},d.VMLRenderer=w=function(){this.init.apply(this,arguments)},w.prototype=N(u.prototype,g),d.Renderer=w);u.prototype.getSpanWidth=function(a,b){var c=a.getBBox(!0).width;!D&&this.forExport&&(c=this.measureSpanWidth(b.firstChild.data,a.styles));return c};u.prototype.measureSpanWidth=function(a,b){var c=h.createElement("span");a=h.createTextNode(a);c.appendChild(a);l(c,b);this.box.appendChild(c);b=c.offsetWidth; | ||
F(c);return b}})(l)}); | ||
setAttr:function(a,b){this.docMode8?this.element[a]=b:this.element.setAttribute(a,b)},getAttr:function(a){return this.docMode8?this.element[a]:this.element.getAttribute(a)},classSetter:function(a){(this.added?this.element:this).className=a},dashstyleSetter:function(a,b,c){(c.getElementsByTagName("stroke")[0]||A(this.renderer.prepVML(["\x3cstroke/\x3e"]),null,null,c))[b]=a||"solid";this[b]=a},dSetter:function(a,b,c){var e=this.shadows;a=a||[];this.d=a.join&&a.join(" ");c.path=a=this.pathToVML(a);if(e)for(c= | ||
e.length;c--;)e[c].path=e[c].cutOff?this.cutOffPath(a,e[c].cutOff):a;this.setAttr(b,a)},fillSetter:function(a,b,c){var e=c.nodeName;"SPAN"===e?c.style.color=a:"IMG"!==e&&(c.filled="none"!==a,this.setAttr("fillcolor",this.renderer.color(a,c,b,this)))},"fill-opacitySetter":function(a,b,c){A(this.renderer.prepVML(["\x3c",b.split("-")[0],' opacity\x3d"',a,'"/\x3e']),null,null,c)},opacitySetter:L,rotationSetter:function(a,b,c){c=c.style;this[b]=c[b]=a;c.left=-Math.round(Math.sin(a*n)+1)+"px";c.top=Math.round(Math.cos(a* | ||
n))+"px"},strokeSetter:function(a,b,c){this.setAttr("strokecolor",this.renderer.color(a,c,b,this))},"stroke-widthSetter":function(a,b,c){c.stroked=!!a;this[b]=a;K(a)&&(a+="px");this.setAttr("strokeweight",a)},titleSetter:function(a,b){this.setAttr(b,a)},visibilitySetter:function(a,b,c){"inherit"===a&&(a="visible");this.shadows&&I(this.shadows,function(c){c.style[b]=a});"DIV"===c.nodeName&&(a="hidden"===a?"-999em":0,this.docMode8||(c.style[b]=a?"visible":"hidden"),b="top");c.style[b]=a},xSetter:function(a, | ||
b,c){this[b]=a;"x"===b?b="left":"y"===b&&(b="top");this.updateClipping?(this[b]=a,this.updateClipping()):c.style[b]=a},zIndexSetter:function(a,b,c){c.style[b]=a},fillGetter:function(){return this.getAttr("fillcolor")||""},strokeGetter:function(){return this.getAttr("strokecolor")||""}},g["stroke-opacitySetter"]=g["fill-opacitySetter"],d.VMLElement=g=w(y,g),g.prototype.ySetter=g.prototype.widthSetter=g.prototype.heightSetter=g.prototype.xSetter,g={Element:g,isIE8:-1<v.navigator.userAgent.indexOf("MSIE 8.0"), | ||
init:function(a,b,c){var e,d;this.alignedObjects=[];e=this.createElement("div").css({position:"relative"});d=e.element;a.appendChild(e.element);this.isVML=!0;this.box=d;this.boxWrapper=e;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount=0;this.setSize(b,c,!1);if(!h.namespaces.hcv){h.namespaces.add("hcv","urn:schemas-microsoft-com:vml");try{h.createStyleSheet().cssText="hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke{ behavior:url(#default#VML); display: inline-block; } "}catch(f){h.styleSheets[0].cssText+= | ||
"hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke{ behavior:url(#default#VML); display: inline-block; } "}}},isHidden:function(){return!this.box.offsetWidth},clipRect:function(a,b,c,e){var d=this.createElement(),f=C(a);return B(d,{members:[],count:0,left:(f?a.x:a)+1,top:(f?a.y:b)+1,width:(f?a.width:c)-1,height:(f?a.height:e)-1,getCSS:function(a){var b=a.element,c=b.nodeName,e=a.inverted,d=this.top-("shape"===c?b.offsetTop:0),f=this.left,b=f+this.width,p=d+this.height,d={clip:"rect("+Math.round(e? | ||
f:d)+"px,"+Math.round(e?p:b)+"px,"+Math.round(e?b:p)+"px,"+Math.round(e?d:f)+"px)"};!e&&a.docMode8&&"DIV"===c&&B(d,{width:b+"px",height:p+"px"});return d},updateClipping:function(){I(d.members,function(a){a.element&&a.css(d.getCSS(a))})}})},color:function(a,b,c,e){var p=this,f,h=/^rgba/,q,g,k="none";a&&a.linearGradient?g="gradient":a&&a.radialGradient&&(g="pattern");if(g){var r,l,m=a.linearGradient||a.radialGradient,n,t,u,v,w,x="";a=a.stops;var y,B=[],C=function(){q=['\x3cfill colors\x3d"'+B.join(",")+ | ||
'" opacity\x3d"',u,'" o:opacity2\x3d"',t,'" type\x3d"',g,'" ',x,'focus\x3d"100%" method\x3d"any" /\x3e'];A(p.prepVML(q),null,null,b)};n=a[0];y=a[a.length-1];0<n[0]&&a.unshift([0,n[1]]);1>y[0]&&a.push([1,y[1]]);I(a,function(a,b){h.test(a[1])?(f=d.color(a[1]),r=f.get("rgb"),l=f.get("a")):(r=a[1],l=1);B.push(100*a[0]+"% "+r);b?(u=l,v=r):(t=l,w=r)});if("fill"===c)if("gradient"===g)c=m.x1||m[0]||0,a=m.y1||m[1]||0,n=m.x2||m[2]||0,m=m.y2||m[3]||0,x='angle\x3d"'+(90-180*Math.atan((m-a)/(n-c))/Math.PI)+'"', | ||
C();else{var k=m.r,D=2*k,E=2*k,F=m.cx,G=m.cy,H=b.radialReference,z,k=function(){H&&(z=e.getBBox(),F+=(H[0]-z.x)/z.width-.5,G+=(H[1]-z.y)/z.height-.5,D*=H[2]/z.width,E*=H[2]/z.height);x='src\x3d"'+d.getOptions().global.VMLRadialGradientURL+'" size\x3d"'+D+","+E+'" origin\x3d"0.5,0.5" position\x3d"'+F+","+G+'" color2\x3d"'+w+'" ';C()};e.added?k():e.onAdd=k;k=v}else k=r}else h.test(a)&&"IMG"!==b.tagName?(f=d.color(a),e[c+"-opacitySetter"](f.get("a"),c,b),k=f.get("rgb")):(k=b.getElementsByTagName(c), | ||
k.length&&(k[0].opacity=1,k[0].type="solid"),k=a);return k},prepVML:function(a){var b=this.isIE8;a=a.join("");b?(a=a.replace("/\x3e",' xmlns\x3d"urn:schemas-microsoft-com:vml" /\x3e'),a=-1===a.indexOf('style\x3d"')?a.replace("/\x3e",' style\x3d"display:inline-block;behavior:url(#default#VML);" /\x3e'):a.replace('style\x3d"','style\x3d"display:inline-block;behavior:url(#default#VML);')):a=a.replace("\x3c","\x3chcv:");return a},text:u.prototype.html,path:function(a){var b={coordsize:"10 10"};M(a)?b.d= | ||
a:C(a)&&B(b,a);return this.createElement("shape").attr(b)},circle:function(a,b,c){var e=this.symbol("circle");C(a)&&(c=a.r,b=a.y,a=a.x);e.isCircle=!0;e.r=c;return e.attr({x:a,y:b})},g:function(a){var b;a&&(b={className:"highcharts-"+a,"class":"highcharts-"+a});return this.createElement("div").attr(b)},image:function(a,b,c,e,d){var f=this.createElement("img").attr({src:a});1<arguments.length&&f.attr({x:b,y:c,width:e,height:d});return f},createElement:function(a){return"rect"===a?this.symbol(a):u.prototype.createElement.call(this, | ||
a)},invertChild:function(a,b){var c=this;b=b.style;var e="IMG"===a.tagName&&a.style;l(a,{flip:"x",left:t(b.width)-(e?t(e.top):1),top:t(b.height)-(e?t(e.left):1),rotation:-90});I(a.childNodes,function(b){c.invertChild(b,a)})},symbols:{arc:function(a,b,c,e,d){var f=d.start,h=d.end,g=d.r||c||e;c=d.innerR;e=Math.cos(f);var p=Math.sin(f),k=Math.cos(h),l=Math.sin(h);if(0===h-f)return["x"];f=["wa",a-g,b-g,a+g,b+g,a+g*e,b+g*p,a+g*k,b+g*l];d.open&&!c&&f.push("e","M",a,b);f.push("at",a-c,b-c,a+c,b+c,a+c*k, | ||
b+c*l,a+c*e,b+c*p,"x","e");f.isArc=!0;return f},circle:function(a,b,c,e,d){d&&E(d.r)&&(c=e=2*d.r);d&&d.isCircle&&(a-=c/2,b-=e/2);return["wa",a,b,a+c,b+e,a+c,b+e/2,a+c,b+e/2,"e"]},rect:function(a,b,c,d,g){return u.prototype.symbols[E(g)&&g.r?"callout":"square"].call(0,a,b,c,d,g)}}},d.VMLRenderer=w=function(){this.init.apply(this,arguments)},w.prototype=N(u.prototype,g),d.Renderer=w);u.prototype.getSpanWidth=function(a,b){var c=a.getBBox(!0).width;!D&&this.forExport&&(c=this.measureSpanWidth(b.firstChild.data, | ||
a.styles));return c};u.prototype.measureSpanWidth=function(a,b){var c=h.createElement("span");a=h.createTextNode(a);c.appendChild(a);l(c,b);this.box.appendChild(c);b=c.offsetWidth;F(c);return b}})(l)}); |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* Old IE (v6, v7, v8) module for Highcharts v6+. | ||
@@ -72,3 +72,3 @@ * | ||
H.getOptions().global.VMLRadialGradientURL = | ||
'http://code.highcharts.com/6.0.6/gfx/vml-radial-gradient.png'; | ||
'http://code.highcharts.com/6.0.7/gfx/vml-radial-gradient.png'; | ||
@@ -683,2 +683,8 @@ | ||
}, | ||
getAttr: function(key) { | ||
if (this.docMode8) { // IE8 setAttribute bug | ||
return this.element[key]; | ||
} | ||
return this.element.getAttribute(key); | ||
}, | ||
classSetter: function(value) { | ||
@@ -806,2 +812,8 @@ // IE8 Standards mode has problems retrieving the className unless set like this. | ||
element.style[key] = value; | ||
}, | ||
fillGetter: function() { | ||
return this.getAttr('fillcolor') || ''; | ||
}, | ||
strokeGetter: function() { | ||
return this.getAttr('strokecolor') || ''; | ||
} | ||
@@ -808,0 +820,0 @@ }; |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ (c) 2009-2017 Torstein Honsi |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * (c) 2009-2017 Torstein Honsi |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Support for parallel coordinates in Highcharts |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * Support for parallel coordinates in Highcharts |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Pareto series type for Highcharts |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * Pareto series type for Highcharts |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Sankey diagram module | ||
@@ -4,0 +4,0 @@ |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* Sankey diagram module | ||
@@ -4,0 +4,0 @@ * |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ (c) 2009-2017 Torstein Honsi |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * (c) 2009-2017 Torstein Honsi |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Solid angular gauge module | ||
@@ -4,0 +4,0 @@ |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* Solid angular gauge module | ||
@@ -172,3 +172,3 @@ * | ||
* @extends plotOptions.gauge | ||
* @excluding dial,pivot | ||
* @excluding dial,pivot,wrap | ||
* @product highcharts | ||
@@ -191,2 +191,15 @@ * @optionparent plotOptions.solidgauge | ||
/** | ||
* Allow the gauge to overshoot the end of the perimeter axis by this | ||
* many degrees. Say if the gauge axis goes from 0 to 60, a value of | ||
* 100, or 1000, will show 5 degrees beyond the end of the axis when this | ||
* option is set to 5. | ||
* | ||
* @type {Number} | ||
* @default 0 | ||
* @since 3.0.10 | ||
* @product highcharts | ||
* @apioption plotOptions.solidgauge.overshoot | ||
*/ | ||
/** | ||
* Wether to draw rounded edges on the gauge. | ||
@@ -359,6 +372,10 @@ * | ||
* | ||
* @type {Object} | ||
* @extends series,plotOptions.solidgauge | ||
* @excluding dataParser,dataURL,stack | ||
* @product highcharts | ||
* @type {Object} | ||
* @extends series,plotOptions.solidgauge | ||
* @excluding animationLimit,boostThreshold,connectEnds,connectNulls, | ||
* cropThreshold,dashStyle,dataParser,dataURL,dial, | ||
* findNearestPointBy,getExtremesFromAll,marker,negativeColor, | ||
* pointPlacement,pivot,shadow,softThreshold,stack,stacking,states, | ||
* step,threshold,turboThreshold,wrap,zoneAxis,zones | ||
* @product highcharts | ||
* @apioption series.solidgauge | ||
@@ -365,0 +382,0 @@ */ |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
StaticScale | ||
@@ -4,0 +4,0 @@ |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* StaticScale | ||
@@ -4,0 +4,0 @@ * |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Streamgraph module | ||
@@ -4,0 +4,0 @@ |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* Streamgraph module | ||
@@ -4,0 +4,0 @@ * |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -26,3 +26,3 @@ (c) 2016 Highsoft AS | ||
[],d,e=a.direction,r=a.x,p=a.y,f=a.width,h=a.height,u,y,C,G;g(c,function(c){d=c.val/a.val*a.height*a.width;u=r;y=p;0===e?(G=h,C=d/G,f-=C,r+=C):(C=f,G=d/C,h-=G,p+=G);k.push({x:u,y:y,width:C,height:G});b&&(e=1-e)});return k},strip:function(b,a){return this.algorithmLowAspectRatio(!1,b,a)},squarified:function(b,a){return this.algorithmLowAspectRatio(!0,b,a)},sliceAndDice:function(b,a){return this.algorithmFill(!0,b,a)},stripes:function(b,a){return this.algorithmFill(!1,b,a)},translate:function(){var b= | ||
this,a=b.options,c=b.rootNode=f(b.rootNode,b.options.rootId,""),d,l;F.prototype.translate.call(b);l=b.tree=b.getTree();d=b.nodeMap[c];b.mapOptionsToLevel=B({from:0<d.level?d.level:1,levels:a.levels,to:l.height,defaults:{levelIsConstant:b.options.levelIsConstant,colorByPoint:a.colorByPoint}});""===c||d&&d.children.length||(b.drillToNode("",!1),c=b.rootNode,d=b.nodeMap[c]);J(b.nodeMap[b.rootNode],function(a){var e=!1,c=a.parent;a.visible=!0;if(c||""===c)e=b.nodeMap[c];return e});J(b.nodeMap[b.rootNode].children, | ||
this,a=b.options,c=b.rootNode=f(b.rootNode,b.options.rootId,""),d,l;F.prototype.translate.call(b);l=b.tree=b.getTree();d=b.nodeMap[c];b.mapOptionsToLevel=B({from:d.level+1,levels:a.levels,to:l.height,defaults:{levelIsConstant:b.options.levelIsConstant,colorByPoint:a.colorByPoint}});""===c||d&&d.children.length||(b.drillToNode("",!1),c=b.rootNode,d=b.nodeMap[c]);J(b.nodeMap[b.rootNode],function(a){var e=!1,c=a.parent;a.visible=!0;if(c||""===c)e=b.nodeMap[c];return e});J(b.nodeMap[b.rootNode].children, | ||
function(a){var b=!1;g(a,function(a){a.visible=!0;a.children.length&&(b=(b||[]).concat(a.children))});return b});b.setTreeValues(l);b.axisRatio=b.xAxis.len/b.yAxis.len;b.nodeMap[""].pointValues=c={x:0,y:0,width:100,height:100};b.nodeMap[""].values=c=t(c,{width:c.width*b.axisRatio,direction:"vertical"===a.layoutStartingDirection?0:1,val:l.val});b.calculateChildrenAreas(l,c);b.colorAxis?b.translateColors():a.colorByPoint||b.setColorRecursive(b.tree);a.allowDrillToNode&&(a=d.pointValues,b.xAxis.setExtremes(a.x, | ||
@@ -29,0 +29,0 @@ a.x+a.width,!1),b.yAxis.setExtremes(a.y,a.y+a.height,!1),b.xAxis.setScale(),b.yAxis.setScale());b.setPointValues()},drawDataLabels:function(){var a=this,d=a.mapOptionsToLevel,c=q(a.points,function(a){return a.node.visible}),f,l;g(c,function(b){l=d[b.node.level];f={style:{}};b.node.isLeaf||(f.enabled=!1);l&&l.dataLabels&&(f=t(f,l.dataLabels),a._hasPointLabels=!0);b.shapeArgs&&(f.style.width=b.shapeArgs.width,b.dataLabel&&b.dataLabel.css({width:b.shapeArgs.width+"px"}));b.dlOptions=t(f,b.options.dataLabels)}); |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Tilemap module | ||
@@ -4,0 +4,0 @@ |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* Tilemap module | ||
@@ -149,3 +149,3 @@ * | ||
* @extends {plotOptions.scatter} | ||
* @excluding marker,pointRange | ||
* @excluding marker,pointRange,pointPlacement | ||
* @product highcharts highmaps | ||
@@ -229,3 +229,5 @@ * @optionparent plotOptions.heatmap | ||
/** @ignore */ | ||
/** | ||
* @ignore | ||
*/ | ||
marker: null, | ||
@@ -243,3 +245,5 @@ | ||
hover: { | ||
/** @ignore */ | ||
/** | ||
* @ignore | ||
*/ | ||
halo: false, // #3406, halo is disabled on heatmaps by default | ||
@@ -380,3 +384,3 @@ | ||
* @extends series,plotOptions.heatmap | ||
* @excluding dataParser,dataURL,stack | ||
* @excluding dataParser,dataURL,marker,pointRange,stack | ||
* @product highcharts highmaps | ||
@@ -994,11 +998,2 @@ * @apioption series.heatmap | ||
/** | ||
* The shape of the tiles in the tilemap. Possible values are `hexagon`, | ||
* `circle`, `diamond`, and `square`. | ||
* | ||
* @sample maps/demo/circlemap-africa Circular tile shapes | ||
* @sample maps/demo/diamondmap Diamond tile shapes | ||
*/ | ||
tileShape: 'hexagon' | ||
/** | ||
* The column size - how many X axis units each column in the tilemap | ||
@@ -1027,2 +1022,11 @@ * should span. Works as in [Heatmaps](#plotOptions.heatmap.colsize). | ||
/** | ||
* The shape of the tiles in the tilemap. Possible values are `hexagon`, | ||
* `circle`, `diamond`, and `square`. | ||
* | ||
* @sample maps/demo/circlemap-africa Circular tile shapes | ||
* @sample maps/demo/diamondmap Diamond tile shapes | ||
*/ | ||
tileShape: 'hexagon' | ||
// Prototype functions | ||
@@ -1118,6 +1122,7 @@ }, { | ||
* | ||
* @type {Object} | ||
* @extends series,plotOptions.tilemap | ||
* @excluding joinBy, shadow, allAreas, mapData | ||
* @product highcharts highmaps | ||
* @type {Object} | ||
* @extends series,plotOptions.tilemap | ||
* @excluding allAreas,dataParser,dataURL,joinBy,mapData,marker,pointRange, | ||
* shadow,stack | ||
* @product highcharts highmaps | ||
* @apioption series.tilemap | ||
@@ -1124,0 +1129,0 @@ */ |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -24,11 +24,11 @@ (c) 2014 Highsoft AS | ||
l.lP.nR>l.lP.lR&&e.algorithmCalcPoints(a,!1,l,b,g);h===m&&e.algorithmCalcPoints(a,!0,l,b,g);h+=1});return b},algorithmFill:function(a,c,d){var b=[],e,k=c.direction,g=c.x,h=c.y,l=c.width,m=c.height,q,r,n,p;f(d,function(d){e=d.val/c.val*c.height*c.width;q=g;r=h;0===k?(p=m,n=e/p,l-=n,g+=n):(n=l,p=e/n,m-=p,h+=p);b.push({x:q,y:r,width:n,height:p});a&&(k=1-k)});return b},strip:function(a,c){return this.algorithmLowAspectRatio(!1,a,c)},squarified:function(a,c){return this.algorithmLowAspectRatio(!0,a,c)}, | ||
sliceAndDice:function(a,c){return this.algorithmFill(!0,a,c)},stripes:function(a,c){return this.algorithmFill(!1,a,c)},translate:function(){var a=this,c=a.options,d=a.rootNode=g(a.rootNode,a.options.rootId,""),b,e;n.prototype.translate.call(a);e=a.tree=a.getTree();b=a.nodeMap[d];a.mapOptionsToLevel=E({from:0<b.level?b.level:1,levels:c.levels,to:e.height,defaults:{levelIsConstant:a.options.levelIsConstant,colorByPoint:c.colorByPoint}});""===d||b&&b.children.length||(a.drillToNode("",!1),d=a.rootNode, | ||
b=a.nodeMap[d]);D(a.nodeMap[a.rootNode],function(c){var b=!1,d=c.parent;c.visible=!0;if(d||""===d)b=a.nodeMap[d];return b});D(a.nodeMap[a.rootNode].children,function(a){var c=!1;f(a,function(a){a.visible=!0;a.children.length&&(c=(c||[]).concat(a.children))});return c});a.setTreeValues(e);a.axisRatio=a.xAxis.len/a.yAxis.len;a.nodeMap[""].pointValues=d={x:0,y:0,width:100,height:100};a.nodeMap[""].values=d=q(d,{width:d.width*a.axisRatio,direction:"vertical"===c.layoutStartingDirection?0:1,val:e.val}); | ||
a.calculateChildrenAreas(e,d);a.colorAxis?a.translateColors():c.colorByPoint||a.setColorRecursive(a.tree);c.allowDrillToNode&&(c=b.pointValues,a.xAxis.setExtremes(c.x,c.x+c.width,!1),a.yAxis.setExtremes(c.y,c.y+c.height,!1),a.xAxis.setScale(),a.yAxis.setScale());a.setPointValues()},drawDataLabels:function(){var a=this,c=a.mapOptionsToLevel,d=r(a.points,function(a){return a.node.visible}),b,e;f(d,function(d){e=c[d.node.level];b={style:{}};d.node.isLeaf||(b.enabled=!1);e&&e.dataLabels&&(b=q(b,e.dataLabels), | ||
a._hasPointLabels=!0);d.shapeArgs&&(b.style.width=d.shapeArgs.width,d.dataLabel&&d.dataLabel.css({width:d.shapeArgs.width+"px"}));d.dlOptions=q(b,d.options.dataLabels)});n.prototype.drawDataLabels.call(this)},alignDataLabel:function(a){l.column.prototype.alignDataLabel.apply(this,arguments);a.dataLabel&&a.dataLabel.attr({zIndex:(a.node.zIndex||0)+1})},drawPoints:function(){var a=this,c=r(a.points,function(a){return a.node.visible});f(c,function(c){var b="level-group-"+c.node.levelDynamic;a[b]||(a[b]= | ||
a.chart.renderer.g(b).attr({zIndex:1E3-c.node.levelDynamic}).add(a.group));c.group=a[b]});l.column.prototype.drawPoints.call(this);this.colorAttribs&&f(this.points,function(a){a.graphic&&a.graphic.css(this.colorAttribs(a))},this);a.options.allowDrillToNode&&f(c,function(c){c.graphic&&(c.drillId=a.options.interactByLeaf?a.drillToByLeaf(c):a.drillToByGroup(c))})},onClickDrillToNode:function(a){var c=(a=a.point)&&a.drillId;z(c)&&(a.setState(""),this.drillToNode(c))},drillToByGroup:function(a){var c= | ||
!1;1!==a.node.level-this.nodeMap[this.rootNode].level||a.node.isLeaf||(c=a.id);return c},drillToByLeaf:function(a){var c=!1;if(a.node.parent!==this.rootNode&&a.node.isLeaf)for(a=a.node;!c;)a=this.nodeMap[a.parent],a.parent===this.rootNode&&(c=a.id);return c},drillUp:function(){var a=this.nodeMap[this.rootNode];a&&z(a.parent)&&this.drillToNode(a.parent)},drillToNode:function(a,c){var b=this.nodeMap[a];this.idPreviousRoot=this.rootNode;this.rootNode=a;""===a?this.drillUpButton=this.drillUpButton.destroy(): | ||
this.showDrillUpButton(b&&b.name||a);this.isDirty=!0;g(c,!0)&&this.chart.redraw()},showDrillUpButton:function(a){var c=this;a=a||"\x3c Back";var b=c.options.drillUpButton,f,e;b.text&&(a=b.text);this.drillUpButton?(this.drillUpButton.placed=!1,this.drillUpButton.attr({text:a}).align()):(e=(f=b.theme)&&f.states,this.drillUpButton=this.chart.renderer.button(a,null,null,function(){c.drillUp()},f,e&&e.hover,e&&e.select).addClass("highcharts-drillup-button").attr({align:b.position.align,zIndex:7}).add().align(b.position, | ||
!1,b.relativeTo||"plotBox"))},buildKDTree:y,drawLegendSymbol:b.LegendSymbolMixin.drawRectangle,getExtremes:function(){n.prototype.getExtremes.call(this,this.colorValueData);this.valueMin=this.dataMin;this.valueMax=this.dataMax;n.prototype.getExtremes.call(this)},getExtremesFromAll:!0,bindAxes:function(){var a={endOnTick:!1,gridLineWidth:0,lineWidth:0,min:0,dataMin:0,minPadding:0,max:100,dataMax:100,maxPadding:0,startOnTick:!1,title:null,tickPositions:[]};n.prototype.bindAxes.call(this);b.extend(this.yAxis.options, | ||
a);b.extend(this.xAxis.options,a)},utils:{recursive:D,reduce:I}},{getClassName:function(){var a=b.Point.prototype.getClassName.call(this),c=this.series,d=c.options;this.node.level<=c.nodeMap[c.rootNode].level?a+=" highcharts-above-level":this.node.isLeaf||g(d.interactByLeaf,!d.allowDrillToNode)?this.node.isLeaf||(a+=" highcharts-internal-node"):a+=" highcharts-internal-node-interactive";return a},isValid:function(){return this.id||m(this.value)},setState:function(a){b.Point.prototype.setState.call(this, | ||
a);this.graphic&&this.graphic.attr({zIndex:"hover"===a?1:0})},setVisible:l.pie.prototype.pointClass.prototype.setVisible})})(p,F)}); | ||
sliceAndDice:function(a,c){return this.algorithmFill(!0,a,c)},stripes:function(a,c){return this.algorithmFill(!1,a,c)},translate:function(){var a=this,c=a.options,d=a.rootNode=g(a.rootNode,a.options.rootId,""),b,e;n.prototype.translate.call(a);e=a.tree=a.getTree();b=a.nodeMap[d];a.mapOptionsToLevel=E({from:b.level+1,levels:c.levels,to:e.height,defaults:{levelIsConstant:a.options.levelIsConstant,colorByPoint:c.colorByPoint}});""===d||b&&b.children.length||(a.drillToNode("",!1),d=a.rootNode,b=a.nodeMap[d]); | ||
D(a.nodeMap[a.rootNode],function(c){var d=!1,b=c.parent;c.visible=!0;if(b||""===b)d=a.nodeMap[b];return d});D(a.nodeMap[a.rootNode].children,function(a){var c=!1;f(a,function(a){a.visible=!0;a.children.length&&(c=(c||[]).concat(a.children))});return c});a.setTreeValues(e);a.axisRatio=a.xAxis.len/a.yAxis.len;a.nodeMap[""].pointValues=d={x:0,y:0,width:100,height:100};a.nodeMap[""].values=d=q(d,{width:d.width*a.axisRatio,direction:"vertical"===c.layoutStartingDirection?0:1,val:e.val});a.calculateChildrenAreas(e, | ||
d);a.colorAxis?a.translateColors():c.colorByPoint||a.setColorRecursive(a.tree);c.allowDrillToNode&&(c=b.pointValues,a.xAxis.setExtremes(c.x,c.x+c.width,!1),a.yAxis.setExtremes(c.y,c.y+c.height,!1),a.xAxis.setScale(),a.yAxis.setScale());a.setPointValues()},drawDataLabels:function(){var a=this,c=a.mapOptionsToLevel,b=r(a.points,function(a){return a.node.visible}),g,e;f(b,function(b){e=c[b.node.level];g={style:{}};b.node.isLeaf||(g.enabled=!1);e&&e.dataLabels&&(g=q(g,e.dataLabels),a._hasPointLabels= | ||
!0);b.shapeArgs&&(g.style.width=b.shapeArgs.width,b.dataLabel&&b.dataLabel.css({width:b.shapeArgs.width+"px"}));b.dlOptions=q(g,b.options.dataLabels)});n.prototype.drawDataLabels.call(this)},alignDataLabel:function(a){l.column.prototype.alignDataLabel.apply(this,arguments);a.dataLabel&&a.dataLabel.attr({zIndex:(a.node.zIndex||0)+1})},drawPoints:function(){var a=this,b=r(a.points,function(a){return a.node.visible});f(b,function(b){var c="level-group-"+b.node.levelDynamic;a[c]||(a[c]=a.chart.renderer.g(c).attr({zIndex:1E3- | ||
b.node.levelDynamic}).add(a.group));b.group=a[c]});l.column.prototype.drawPoints.call(this);this.colorAttribs&&f(this.points,function(a){a.graphic&&a.graphic.css(this.colorAttribs(a))},this);a.options.allowDrillToNode&&f(b,function(b){b.graphic&&(b.drillId=a.options.interactByLeaf?a.drillToByLeaf(b):a.drillToByGroup(b))})},onClickDrillToNode:function(a){var b=(a=a.point)&&a.drillId;z(b)&&(a.setState(""),this.drillToNode(b))},drillToByGroup:function(a){var b=!1;1!==a.node.level-this.nodeMap[this.rootNode].level|| | ||
a.node.isLeaf||(b=a.id);return b},drillToByLeaf:function(a){var b=!1;if(a.node.parent!==this.rootNode&&a.node.isLeaf)for(a=a.node;!b;)a=this.nodeMap[a.parent],a.parent===this.rootNode&&(b=a.id);return b},drillUp:function(){var a=this.nodeMap[this.rootNode];a&&z(a.parent)&&this.drillToNode(a.parent)},drillToNode:function(a,b){var c=this.nodeMap[a];this.idPreviousRoot=this.rootNode;this.rootNode=a;""===a?this.drillUpButton=this.drillUpButton.destroy():this.showDrillUpButton(c&&c.name||a);this.isDirty= | ||
!0;g(b,!0)&&this.chart.redraw()},showDrillUpButton:function(a){var b=this;a=a||"\x3c Back";var d=b.options.drillUpButton,f,e;d.text&&(a=d.text);this.drillUpButton?(this.drillUpButton.placed=!1,this.drillUpButton.attr({text:a}).align()):(e=(f=d.theme)&&f.states,this.drillUpButton=this.chart.renderer.button(a,null,null,function(){b.drillUp()},f,e&&e.hover,e&&e.select).addClass("highcharts-drillup-button").attr({align:d.position.align,zIndex:7}).add().align(d.position,!1,d.relativeTo||"plotBox"))},buildKDTree:y, | ||
drawLegendSymbol:b.LegendSymbolMixin.drawRectangle,getExtremes:function(){n.prototype.getExtremes.call(this,this.colorValueData);this.valueMin=this.dataMin;this.valueMax=this.dataMax;n.prototype.getExtremes.call(this)},getExtremesFromAll:!0,bindAxes:function(){var a={endOnTick:!1,gridLineWidth:0,lineWidth:0,min:0,dataMin:0,minPadding:0,max:100,dataMax:100,maxPadding:0,startOnTick:!1,title:null,tickPositions:[]};n.prototype.bindAxes.call(this);b.extend(this.yAxis.options,a);b.extend(this.xAxis.options, | ||
a)},utils:{recursive:D,reduce:I}},{getClassName:function(){var a=b.Point.prototype.getClassName.call(this),c=this.series,d=c.options;this.node.level<=c.nodeMap[c.rootNode].level?a+=" highcharts-above-level":this.node.isLeaf||g(d.interactByLeaf,!d.allowDrillToNode)?this.node.isLeaf||(a+=" highcharts-internal-node"):a+=" highcharts-internal-node-interactive";return a},isValid:function(){return this.id||m(this.value)},setState:function(a){b.Point.prototype.setState.call(this,a);this.graphic&&this.graphic.attr({zIndex:"hover"=== | ||
a?1:0})},setVisible:l.pie.prototype.pointClass.prototype.setVisible})})(p,F)}); |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -492,3 +492,2 @@ * (c) 2014 Highsoft AS | ||
/** | ||
@@ -626,2 +625,7 @@ * Set options on specific levels. Takes precedence over series options, | ||
// Prototype members | ||
@@ -1096,3 +1100,3 @@ }, { | ||
series.mapOptionsToLevel = getLevelOptions({ | ||
from: rootNode.level > 0 ? rootNode.level : 1, | ||
from: rootNode.level + 1, | ||
levels: options.levels, | ||
@@ -1099,0 +1103,0 @@ to: tree.height, |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Variable Pie module for Highcharts |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * Variable Pie module for Highcharts |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Highcharts variwide module | ||
@@ -4,0 +4,0 @@ |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* Highcharts variwide module | ||
@@ -4,0 +4,0 @@ * |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Vector plot series module | ||
@@ -4,0 +4,0 @@ |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* Vector plot series module | ||
@@ -51,3 +51,5 @@ * | ||
/** @ignore */ | ||
/** | ||
* @ignore | ||
*/ | ||
marker: null, | ||
@@ -54,0 +56,0 @@ /** |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Wind barb series module | ||
@@ -4,0 +4,0 @@ |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* Wind barb series module | ||
@@ -4,0 +4,0 @@ * |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ (c) 2016 Highsoft AS |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * (c) 2016 Highsoft AS |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
X-range series | ||
@@ -4,0 +4,0 @@ |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* X-range series | ||
@@ -366,3 +366,3 @@ * | ||
} | ||
*/ | ||
//*/ | ||
@@ -369,0 +369,0 @@ // Point class properties |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ (c) 2009-2017 Highsoft AS |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * (c) 2009-2017 Highsoft AS |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ (c) 2009-2017 Torstein Honsi |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * (c) 2009-2017 Torstein Honsi |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ (c) 2009-2017 Torstein Honsi |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * (c) 2009-2017 Torstein Honsi |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ (c) 2009-2017 Torstein Honsi |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * (c) 2009-2017 Torstein Honsi |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ (c) 2009-2017 Torstein Honsi |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * (c) 2009-2017 Torstein Honsi |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ (c) 2009-2017 Torstein Honsi |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * (c) 2009-2017 Torstein Honsi |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ (c) 2009-2017 Torstein Honsi |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * (c) 2009-2017 Torstein Honsi |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ (c) 2009-2017 Torstein Honsi |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * (c) 2009-2017 Torstein Honsi |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ (c) 2009-2017 Torstein Honsi |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * (c) 2009-2017 Torstein Honsi |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ (c) 2009-2017 Highsoft AS |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * (c) 2009-2017 Highsoft AS |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Accessibility module | ||
@@ -10,48 +10,61 @@ | ||
*/ | ||
(function(m){"object"===typeof module&&module.exports?module.exports=m:m(Highcharts)})(function(m){(function(e){function m(c){return c.replace(/&/g,"\x26amp;").replace(/</g,"\x26lt;").replace(/>/g,"\x26gt;").replace(/"/g,"\x26quot;").replace(/'/g,"\x26#x27;").replace(/\//g,"\x26#x2F;")}function t(c){return"string"===typeof c?c.replace(/<\/?[^>]+(>|$)/g,""):c}function u(c){for(var b=c.childNodes.length;b--;)c.appendChild(c.childNodes[b])}var l=e.win.document,k=e.each,v=e.erase,g=e.addEvent,n=e.merge, | ||
w={position:"absolute",left:"-9999px",top:"auto",width:"1px",height:"1px",overflow:"hidden"},r={"default":["series","data point","data points"],line:["line","data point","data points"],spline:["line","data point","data points"],area:["line","data point","data points"],areaspline:["line","data point","data points"],pie:["pie","slice","slices"],column:["column series","column","columns"],bar:["bar series","bar","bars"],scatter:["scatter series","data point","data points"],boxplot:["boxplot series", | ||
"box","boxes"],arearange:["arearange series","data point","data points"],areasplinerange:["areasplinerange series","data point","data points"],bubble:["bubble series","bubble","bubbles"],columnrange:["columnrange series","column","columns"],errorbar:["errorbar series","errorbar","errorbars"],funnel:["funnel","data point","data points"],pyramid:["pyramid","data point","data points"],waterfall:["waterfall series","column","columns"],map:["map","area","areas"],mapline:["line","data point","data points"], | ||
mappoint:["point series","data point","data points"],mapbubble:["bubble series","bubble","bubbles"]},y={boxplot:" Box plot charts are typically used to display groups of statistical data. Each data point in the chart can have up to 5 values: minimum, lower quartile, median, upper quartile and maximum. ",arearange:" Arearange charts are line charts displaying a range between a lower and higher value for each point. ",areasplinerange:" These charts are line charts displaying a range between a lower and higher value for each point. ", | ||
bubble:" Bubble charts are scatter charts where each data point also has a size value. ",columnrange:" Columnrange charts are column charts displaying a range between a lower and higher value for each point. ",errorbar:" Errorbar series are used to display the variability of the data. ",funnel:" Funnel charts are used to display reduction of data in stages. ",pyramid:" Pyramid charts consist of a single pyramid with item heights corresponding to each point value. ",waterfall:" A waterfall chart is a column chart where each column contributes towards a total end value. "}; | ||
e.Series.prototype.commonKeys="name id category x value y".split(" ");e.Series.prototype.specialKeys="z open high q3 median q1 low close".split(" ");e.seriesTypes.pie&&(e.seriesTypes.pie.prototype.specialKeys=[]);e.setOptions({accessibility:{enabled:!0,pointDescriptionThreshold:!1}});e.wrap(e.Series.prototype,"render",function(c){c.apply(this,Array.prototype.slice.call(arguments,1));this.chart.options.accessibility.enabled&&this.setA11yDescription()});e.Series.prototype.setA11yDescription=function(){var c= | ||
this.chart.options.accessibility,b=this.points&&this.points.length&&this.points[0].graphic&&this.points[0].graphic.element,a=b&&b.parentNode||this.graph&&this.graph.element||this.group&&this.group.element;a&&(a.lastChild===b&&u(a),this.points&&(this.points.length<c.pointDescriptionThreshold||!1===c.pointDescriptionThreshold)&&k(this.points,function(a){a.graphic&&(a.graphic.element.setAttribute("role","img"),a.graphic.element.setAttribute("tabindex","-1"),a.graphic.element.setAttribute("aria-label", | ||
t(a.series.options.pointDescriptionFormatter&&a.series.options.pointDescriptionFormatter(a)||c.pointDescriptionFormatter&&c.pointDescriptionFormatter(a)||a.buildPointInfoString())))}),1<this.chart.series.length||c.describeSingleSeries)&&(a.setAttribute("role",this.options.exposeElementToA11y?"img":"region"),a.setAttribute("tabindex","-1"),a.setAttribute("aria-label",t(c.seriesDescriptionFormatter&&c.seriesDescriptionFormatter(this)||this.buildSeriesInfoString())))};e.Series.prototype.buildSeriesInfoString= | ||
function(){var c=r[this.type]||r["default"],b=this.description||this.options.description;return(this.name?this.name+", ":"")+(1===this.chart.types.length?c[0]:"series")+" "+(this.index+1)+" of "+this.chart.series.length+(1===this.chart.types.length?" with ":". "+c[0]+" with ")+(this.points.length+" "+(1===this.points.length?c[1]:c[2]))+(b?". "+b:"")+(1<this.chart.yAxis.length&&this.yAxis?". Y axis, "+this.yAxis.getDescription():"")+(1<this.chart.xAxis.length&&this.xAxis?". X axis, "+this.xAxis.getDescription(): | ||
"")};e.Point.prototype.buildPointInfoString=function(){var c=this,b=c.series,a=b.chart.options.accessibility,d="",f=b.xAxis&&b.xAxis.isDatetimeAxis,a=f&&b.chart.time.dateFormat.call(a.pointDateFormatter&&a.pointDateFormatter(c)||a.pointDateFormat||e.Tooltip.prototype.getXDateFormat.call({getDateFormat:e.Tooltip.prototype.getDateFormat,chart:b.chart},c,b.chart.options.tooltip,b.xAxis),c.x);e.find(b.specialKeys,function(a){return void 0!==c[a]})?(f&&(d=a),k(b.commonKeys.concat(b.specialKeys),function(a){void 0=== | ||
c[a]||f&&"x"===a||(d+=(d?". ":"")+a+", "+c[a])})):d=(this.name||a||this.category||this.id||"x, "+this.x)+", "+(void 0!==this.value?this.value:this.y);return this.index+1+". "+d+"."+(this.description?" "+this.description:"")};e.Axis.prototype.getDescription=function(){return this.userOptions&&this.userOptions.description||this.axisTitle&&this.axisTitle.textStr||this.options.id||this.categories&&"categories"||"values"};e.wrap(e.Series.prototype,"init",function(c){c.apply(this,Array.prototype.slice.call(arguments, | ||
1));var b=this.chart;b.options.accessibility.enabled&&(b.types=b.types||[],0>b.types.indexOf(this.type)&&b.types.push(this.type),g(this,"remove",function(){var a=this,d=!1;k(b.series,function(f){f!==a&&0>b.types.indexOf(a.type)&&(d=!0)});d||v(b.types,a.type)}))});e.Chart.prototype.getTypeDescription=function(){var c=this.types&&this.types[0],b=this.series[0]&&this.series[0].mapTitle;if(c){if("map"===c)return b?"Map of "+b:"Map of unspecified region.";if(1<this.types.length)return"Combination chart."; | ||
if(-1<["spline","area","areaspline"].indexOf(c))return"Line chart."}else return"Empty chart.";return c+" chart."+(y[c]||"")};e.Chart.prototype.getAxesDescription=function(){var c=this.xAxis.length,b=this.yAxis.length,a={},d;if(c)if(a.xAxis="The chart has "+c+(1<c?" X axes":" X axis")+" displaying ",2>c)a.xAxis+=this.xAxis[0].getDescription()+".";else{for(d=0;d<c-1;++d)a.xAxis+=(d?", ":"")+this.xAxis[d].getDescription();a.xAxis+=" and "+this.xAxis[d].getDescription()+"."}if(b)if(a.yAxis="The chart has "+ | ||
b+(1<b?" Y axes":" Y axis")+" displaying ",2>b)a.yAxis+=this.yAxis[0].getDescription()+".";else{for(d=0;d<b-1;++d)a.yAxis+=(d?", ":"")+this.yAxis[d].getDescription();a.yAxis+=" and "+this.yAxis[d].getDescription()+"."}return a};e.Chart.prototype.addAccessibleContextMenuAttribs=function(){var c=this.exportDivElements;c&&(k(c,function(b){"DIV"!==b.tagName||b.children&&b.children.length||(b.setAttribute("role","menuitem"),b.setAttribute("tabindex",-1))}),c[0].parentNode.setAttribute("role","menu"),c[0].parentNode.setAttribute("aria-label", | ||
"Chart export"))};e.Chart.prototype.addScreenReaderRegion=function(c,b){var a=this,d=a.series,f=a.options,e=f.accessibility,p=a.screenReaderRegion=l.createElement("div"),h=l.createElement("h4"),x=l.createElement("a"),k=l.createElement("h4"),q=a.types||[],q=(1===q.length&&"pie"===q[0]||"map"===q[0])&&{}||a.getAxesDescription(),g=d[0]&&r[d[0].type]||r["default"];p.setAttribute("id",c);p.setAttribute("role","region");p.setAttribute("aria-label","Chart screen reader information.");p.innerHTML=e.screenReaderSectionFormatter&& | ||
e.screenReaderSectionFormatter(a)||"\x3cdiv\x3eUse regions/landmarks to skip ahead to chart"+(1<d.length?" and navigate between data series":"")+".\x3c/div\x3e\x3ch3\x3e"+(f.title.text?m(f.title.text):"Chart")+(f.subtitle&&f.subtitle.text?". "+m(f.subtitle.text):"")+"\x3c/h3\x3e\x3ch4\x3eLong description.\x3c/h4\x3e\x3cdiv\x3e"+(f.chart.description||"No description available.")+"\x3c/div\x3e\x3ch4\x3eStructure.\x3c/h4\x3e\x3cdiv\x3eChart type: "+(f.chart.typeDescription||a.getTypeDescription())+"\x3c/div\x3e"+ | ||
(1===d.length?"\x3cdiv\x3e"+g[0]+" with "+d[0].points.length+" "+(1===d[0].points.length?g[1]:g[2])+".\x3c/div\x3e":"")+(q.xAxis?"\x3cdiv\x3e"+q.xAxis+"\x3c/div\x3e":"")+(q.yAxis?"\x3cdiv\x3e"+q.yAxis+"\x3c/div\x3e":"");a.getCSV&&(x.innerHTML="View as data table.",x.href="#"+b,x.setAttribute("tabindex","-1"),x.onclick=e.onTableAnchorClick||function(){a.viewData();l.getElementById(b).focus()},h.appendChild(x),p.appendChild(h));k.innerHTML="Chart graphic.";a.renderTo.insertBefore(k,a.renderTo.firstChild); | ||
a.renderTo.insertBefore(p,a.renderTo.firstChild);n(!0,k.style,w);n(!0,p.style,w)};e.Chart.prototype.callbacks.push(function(c){var b=c.options;if(b.accessibility.enabled){var a=l.createElementNS("http://www.w3.org/2000/svg","title"),d=l.createElementNS("http://www.w3.org/2000/svg","g"),f=c.container.getElementsByTagName("desc")[0],z=c.container.getElementsByTagName("text"),p="highcharts-title-"+c.index,h="highcharts-data-table-"+c.index,g="highcharts-information-region-"+c.index,b=b.title.text||"Chart"; | ||
a.textContent=m(b);a.id=p;f.parentNode.insertBefore(a,f);c.renderTo.setAttribute("role","region");c.renderTo.setAttribute("aria-label",t("Interactive chart. "+b+". Use up and down arrows to navigate with most screen readers."));if(c.exportSVGElements&&c.exportSVGElements[0]&&c.exportSVGElements[0].element){var n=c.exportSVGElements[0].element.onclick,a=c.exportSVGElements[0].element.parentNode;c.exportSVGElements[0].element.onclick=function(){n.apply(this,Array.prototype.slice.call(arguments));c.addAccessibleContextMenuAttribs(); | ||
c.highlightExportItem(0)};c.exportSVGElements[0].element.setAttribute("role","button");c.exportSVGElements[0].element.setAttribute("aria-label","View export menu");d.appendChild(c.exportSVGElements[0].element);d.setAttribute("role","region");d.setAttribute("aria-label","Chart export menu");a.appendChild(d)}c.rangeSelector&&k(["minInput","maxInput"],function(a,b){c.rangeSelector[a]&&(c.rangeSelector[a].setAttribute("tabindex","-1"),c.rangeSelector[a].setAttribute("role","textbox"),c.rangeSelector[a].setAttribute("aria-label", | ||
"Select "+(b?"end":"start")+" date."))});k(z,function(a){a.setAttribute("aria-hidden","true")});c.addScreenReaderRegion(g,h);e.wrap(c,"getTable",function(a){return a.apply(this,Array.prototype.slice.call(arguments,1)).replace("\x3ctable\x3e",'\x3ctable id\x3d"'+h+'" summary\x3d"Table representation of chart"\x3e')})}})})(m);(function(e){function m(b){return"string"===typeof b?b.replace(/<\/?[^>]+(>|$)/g,""):b}function t(b,a){this.chart=b;this.id=a.id;this.keyCodeMap=a.keyCodeMap;this.validate=a.validate; | ||
this.init=a.init;this.terminate=a.terminate}function u(b){var a;b&&b.onclick&&v.createEvent&&(a=v.createEvent("Events"),a.initEvent("click",!0,!1),b.onclick(a))}function l(b){var a=b.series.chart.options.accessibility;return b.isNull&&a.keyboardNavigation.skipNullPoints||b.series.options.skipKeyboardNavigation||!b.series.visible||!1===b.visible||a.pointDescriptionThreshold&&a.pointDescriptionThreshold<=b.series.points.length}var k=e.win,v=k.document,g=e.each,n=e.addEvent,w=e.fireEvent,r=e.merge,y= | ||
e.pick,c;e.extend(e.SVGElement.prototype,{addFocusBorder:function(b,a){this.focusBorder&&this.removeFocusBorder();var d=this.getBBox();b=y(b,3);this.focusBorder=this.renderer.rect(d.x-b,d.y-b,d.width+2*b,d.height+2*b,a&&a.borderRadius).addClass("highcharts-focus-border").attr({stroke:a&&a.stroke,"stroke-width":a&&a.strokeWidth}).attr({zIndex:99}).add(this.parentGroup)},removeFocusBorder:function(){this.focusBorder&&(this.focusBorder.destroy(),delete this.focusBorder)}});e.Series.prototype.keyboardMoveVertical= | ||
!0;g(["column","pie"],function(b){e.seriesTypes[b]&&(e.seriesTypes[b].prototype.keyboardMoveVertical=!1)});e.setOptions({accessibility:{keyboardNavigation:{enabled:!0,focusBorder:{enabled:!0,hideBrowserFocusOutline:!0,style:{color:"#335cad",lineWidth:2,borderRadius:3},margin:2},skipNullPoints:!0}}});t.prototype={run:function(b){var a=this,d=b.which||b.keyCode,f=!1,c=!1;g(this.keyCodeMap,function(e){-1<e[0].indexOf(d)&&(f=!0,c=!1===e[1].call(a,d,b)?!1:!0)});f||9!==d||(c=this.move(b.shiftKey?-1:1)); | ||
return c},move:function(b){var a=this.chart;this.terminate&&this.terminate(b);a.keyboardNavigationModuleIndex+=b;var d=a.keyboardNavigationModules[a.keyboardNavigationModuleIndex];a.focusElement&&a.focusElement.removeFocusBorder();if(d){if(d.validate&&!d.validate())return this.move(b);if(d.init)return d.init(b),!0}a.keyboardNavigationModuleIndex=0;0<b?(this.chart.exiting=!0,this.chart.tabExitAnchor.focus()):this.chart.renderTo.focus();return!1}};e.Axis.prototype.panStep=function(b,a){var d=a||3;a= | ||
this.getExtremes();var f=(a.max-a.min)/d*b,d=a.max+f,f=a.min+f,c=d-f;0>b&&f<a.dataMin?(f=a.dataMin,d=f+c):0<b&&d>a.dataMax&&(d=a.dataMax,f=d-c);this.setExtremes(f,d)};e.Chart.prototype.setFocusToElement=function(b,a){var d=this.options.accessibility.keyboardNavigation.focusBorder;a=a||b;a.element&&a.element.focus&&(a.element.focus(),d.hideBrowserFocusOutline&&a.css({outline:"none"}));d.enabled&&b!==this.focusElement&&(this.focusElement&&this.focusElement.removeFocusBorder(),b.addFocusBorder(d.margin, | ||
{stroke:d.style.color,strokeWidth:d.style.lineWidth,borderRadius:d.style.borderRadius}),this.focusElement=b)};e.Point.prototype.highlight=function(){var b=this.series.chart;if(this.isNull)b.tooltip&&b.tooltip.hide(0);else this.onMouseOver();this.graphic&&b.setFocusToElement(this.graphic);b.highlightedPoint=this;return this};e.Chart.prototype.highlightAdjacentPoint=function(b){var a=this.series,d=this.highlightedPoint,f=d&&d.index||0,c=d&&d.series.points,e=this.series&&this.series[this.series.length- | ||
1],e=e&&e.points&&e.points[e.points.length-1];if(!a[0]||!a[0].points)return!1;if(d){if(c[f]!==d)for(e=0;e<c.length;++e)if(c[e]===d){f=e;break}a=a[d.series.index+(b?1:-1)];f=c[f+(b?1:-1)]||a&&a.points[b?0:a.points.length-1];if(!f)return!1}else f=b?a[0].points[0]:e;return l(f)?(this.highlightedPoint=f,this.highlightAdjacentPoint(b)):f.highlight()};e.Series.prototype.highlightFirstValidPoint=function(){var b=this.chart.highlightedPoint,a=(b&&b.series)===this?b.index:0;if(b=this.points){for(var d=a,f= | ||
b.length;d<f;++d)if(!l(b[d]))return b[d].highlight();for(;0<=a;--a)if(!l(b[a]))return b[a].highlight()}return!1};e.Chart.prototype.highlightAdjacentSeries=function(b){var a,d,f=this.highlightedPoint,c=(a=this.series&&this.series[this.series.length-1])&&a.points&&a.points[a.points.length-1];if(!this.highlightedPoint)return a=b?this.series&&this.series[0]:a,(d=b?a&&a.points&&a.points[0]:c)?d.highlight():!1;a=this.series[f.series.index+(b?-1:1)];if(!a)return!1;var c=Infinity,e,h=a.points.length;if(void 0=== | ||
f.plotX||void 0===f.plotY)d=void 0;else{for(;h--;)e=a.points[h],void 0!==e.plotX&&void 0!==e.plotY&&(e=(f.plotX-e.plotX)*(f.plotX-e.plotX)*4+(f.plotY-e.plotY)*(f.plotY-e.plotY)*1,e<c&&(c=e,d=h));d=void 0!==d&&a.points[d]}if(!d)return!1;if(!a.visible)return d.highlight(),b=this.highlightAdjacentSeries(b),b?b:(f.highlight(),!1);d.highlight();return d.series.highlightFirstValidPoint()};e.Chart.prototype.highlightAdjacentPointVertical=function(b){var a=this.highlightedPoint,d=Infinity,c;if(void 0===a.plotX|| | ||
void 0===a.plotY)return!1;g(this.series,function(f){g(f.points,function(e){if(void 0!==e.plotY&&void 0!==e.plotX&&e!==a){var h=e.plotY-a.plotY,g=Math.abs(e.plotX-a.plotX),g=Math.abs(h)*Math.abs(h)+g*g*4;f.yAxis.reversed&&(h*=-1);!(0>h&&b||0<h&&!b||5>g||l(e))&&g<d&&(d=g,c=e)}})});return c?c.highlight():!1};e.Chart.prototype.showExportMenu=function(){this.exportSVGElements&&this.exportSVGElements[0]&&(this.exportSVGElements[0].element.onclick(),this.highlightExportItem(0))};e.Chart.prototype.hideExportMenu= | ||
function(){var b=this.exportDivElements;if(b){g(b,function(a){w(a,"mouseleave")});if(b[this.highlightedExportItem]&&b[this.highlightedExportItem].onmouseout)b[this.highlightedExportItem].onmouseout();this.highlightedExportItem=0;c&&this.renderTo.focus()}};e.Chart.prototype.highlightExportItem=function(b){var a=this.exportDivElements&&this.exportDivElements[b],d=this.exportDivElements&&this.exportDivElements[this.highlightedExportItem];if(a&&"DIV"===a.tagName&&(!a.children||!a.children.length)){a.focus&& | ||
c&&a.focus();if(d&&d.onmouseout)d.onmouseout();if(a.onmouseover)a.onmouseover();this.highlightedExportItem=b;return!0}};e.Chart.prototype.highlightLastExportItem=function(){var b;if(this.exportDivElements)for(b=this.exportDivElements.length;b--&&!this.highlightExportItem(b););};e.Chart.prototype.highlightRangeSelectorButton=function(b){var a=this.rangeSelector.buttons;a[this.highlightedRangeSelectorItemIx]&&a[this.highlightedRangeSelectorItemIx].setState(this.oldRangeSelectorItemState||0);this.highlightedRangeSelectorItemIx= | ||
b;return a[b]?(this.setFocusToElement(a[b].box,a[b]),this.oldRangeSelectorItemState=a[b].state,a[b].setState(2),!0):!1};e.Chart.prototype.highlightLegendItem=function(b){var a=this.legend.allItems,d=this.highlightedLegendItemIx;return a[b]?(a[d]&&w(a[d].legendGroup.element,"mouseout"),void 0!==a[b].pageIx&&a[b].pageIx+1!==this.legend.currentPage&&this.legend.scroll(1+a[b].pageIx-this.legend.currentPage),this.highlightedLegendItemIx=b,this.setFocusToElement(a[b].legendItem,a[b].legendGroup),w(a[b].legendGroup.element, | ||
"mouseover"),!0):!1};e.Chart.prototype.addKeyboardNavigationModules=function(){function b(b,c,e){return new t(a,r({keyCodeMap:c},{id:b},e))}var a=this;a.keyboardNavigationModules=[b("entry",[]),b("points",[[[37,39],function(b){b=39===b;return a.highlightAdjacentPoint(b)?!0:this.init(b?1:-1)}],[[38,40],function(b){b=38!==b;var d=a.options.accessibility.keyboardNavigation;if(d.mode&&"serialize"===d.mode)return a.highlightAdjacentPoint(b)?!0:this.init(b?1:-1);a[a.highlightedPoint&&a.highlightedPoint.series.keyboardMoveVertical? | ||
"highlightAdjacentPointVertical":"highlightAdjacentSeries"](b);return!0}],[[13,32],function(){a.highlightedPoint&&a.highlightedPoint.firePointEvent("click")}]],{init:function(b){var d=a.series.length,c=0<b?0:d;if(0<b)for(delete a.highlightedPoint;c<d;){if(b=a.series[c].highlightFirstValidPoint())return b;++c}else for(;c--;)if(a.highlightedPoint=a.series[c].points[a.series[c].points.length-1],b=a.series[c].highlightFirstValidPoint())return b},terminate:function(){a.tooltip&&a.tooltip.hide(0);delete a.highlightedPoint}}), | ||
b("exporting",[[[37,38],function(){for(var b=a.highlightedExportItem||0,c=!0;b--;)if(a.highlightExportItem(b)){c=!1;break}if(c)return a.highlightLastExportItem(),!0}],[[39,40],function(){for(var b=!0,c=(a.highlightedExportItem||0)+1;c<a.exportDivElements.length;++c)if(a.highlightExportItem(c)){b=!1;break}if(b)return a.highlightExportItem(0),!0}],[[13,32],function(){u(a.exportDivElements[a.highlightedExportItem])}]],{validate:function(){return a.exportChart&&!(a.options.exporting&&!1===a.options.exporting.enabled)}, | ||
init:function(b){a.highlightedPoint=null;a.showExportMenu();0>b&&a.highlightLastExportItem()},terminate:function(){a.hideExportMenu()}}),b("mapZoom",[[[38,40,37,39],function(b){a[38===b||40===b?"yAxis":"xAxis"][0].panStep(39>b?-1:1)}],[[9],function(b,c){a.mapNavButtons[a.focusedMapNavButtonIx].setState(0);if(c.shiftKey&&!a.focusedMapNavButtonIx||!c.shiftKey&&a.focusedMapNavButtonIx)return a.mapZoom(),this.move(c.shiftKey?-1:1);a.focusedMapNavButtonIx+=c.shiftKey?-1:1;b=a.mapNavButtons[a.focusedMapNavButtonIx]; | ||
a.setFocusToElement(b.box,b);b.setState(2)}],[[13,32],function(){u(a.mapNavButtons[a.focusedMapNavButtonIx].element)}]],{validate:function(){return a.mapZoom&&a.mapNavButtons&&2===a.mapNavButtons.length},init:function(b){var d=a.mapNavButtons[0],c=a.mapNavButtons[1],d=0<b?d:c;g(a.mapNavButtons,function(a,b){a.element.setAttribute("tabindex",-1);a.element.setAttribute("role","button");a.element.setAttribute("aria-label","Zoom "+(b?"out ":"")+"chart")});a.setFocusToElement(d.box,d);d.setState(2);a.focusedMapNavButtonIx= | ||
0<b?0:1}}),b("rangeSelector",[[[37,39,38,40],function(b){b=37===b||38===b?-1:1;if(!a.highlightRangeSelectorButton(a.highlightedRangeSelectorItemIx+b))return this.move(b)}],[[13,32],function(){3!==a.oldRangeSelectorItemState&&u(a.rangeSelector.buttons[a.highlightedRangeSelectorItemIx].element)}]],{validate:function(){return a.rangeSelector&&a.rangeSelector.buttons&&a.rangeSelector.buttons.length},init:function(b){g(a.rangeSelector.buttons,function(a){a.element.setAttribute("tabindex","-1");a.element.setAttribute("role", | ||
"button");a.element.setAttribute("aria-label","Select range "+(a.text&&a.text.textStr))});a.highlightRangeSelectorButton(0<b?0:a.rangeSelector.buttons.length-1)}}),b("rangeSelectorInput",[[[9,38,40],function(b,c){b=9===b&&c.shiftKey||38===b?-1:1;c=a.highlightedInputRangeIx+=b;if(1<c||0>c)return this.move(b);a.rangeSelector[c?"maxInput":"minInput"].focus()}]],{validate:function(){return a.rangeSelector&&a.rangeSelector.inputGroup&&"hidden"!==a.rangeSelector.inputGroup.element.getAttribute("visibility")&& | ||
!1!==a.options.rangeSelector.inputEnabled&&a.rangeSelector.minInput&&a.rangeSelector.maxInput},init:function(b){a.highlightedInputRangeIx=0<b?0:1;a.rangeSelector[a.highlightedInputRangeIx?"maxInput":"minInput"].focus()}}),b("legend",[[[37,39,38,40],function(b){b=37===b||38===b?-1:1;a.highlightLegendItem(a.highlightedLegendItemIx+b)||this.init(b)}],[[13,32],function(){u(a.legend.allItems[a.highlightedLegendItemIx].legendItem.element.parentNode)}]],{validate:function(){return a.legend&&a.legend.allItems&& | ||
a.legend.display&&!(a.colorAxis&&a.colorAxis.length)&&!1!==(a.options.legend&&a.options.legend.keyboardNavigation&&a.options.legend.keyboardNavigation.enabled)},init:function(b){g(a.legend.allItems,function(a){a.legendGroup.element.setAttribute("tabindex","-1");a.legendGroup.element.setAttribute("role","button");a.legendGroup.element.setAttribute("aria-label",m("Toggle visibility of series "+a.name))});a.highlightLegendItem(0<b?0:a.legend.allItems.length-1)}})]};e.Chart.prototype.addExitAnchor=function(){var b= | ||
this;b.tabExitAnchor=v.createElement("div");b.tabExitAnchor.setAttribute("tabindex","0");r(!0,b.tabExitAnchor.style,{position:"absolute",left:"-9999px",top:"auto",width:"1px",height:"1px",overflow:"hidden"});b.renderTo.appendChild(b.tabExitAnchor);return n(b.tabExitAnchor,"focus",function(a){a=a||k.event;b.exiting?b.exiting=!1:(b.renderTo.focus(),a.preventDefault(),b.keyboardNavigationModuleIndex=b.keyboardNavigationModules.length-1,a=b.keyboardNavigationModules[b.keyboardNavigationModuleIndex],a.validate&& | ||
!a.validate()?a.move(-1):a.init(-1))})};e.Chart.prototype.resetKeyboardNavigation=function(){var b=this.keyboardNavigationModules&&this.keyboardNavigationModules[this.keyboardNavigationModuleIndex||0];b&&b.terminate&&b.terminate();this.focusElement&&this.focusElement.removeFocusBorder();this.keyboardNavigationModuleIndex=0;this.keyboardReset=!0};e.wrap(e.Series.prototype,"destroy",function(b){var a=this.chart;a.highlightedPoint&&a.highlightedPoint.series===this&&(delete a.highlightedPoint,a.focusElement&& | ||
a.focusElement.removeFocusBorder());b.apply(this,Array.prototype.slice.call(arguments,1))});e.Chart.prototype.callbacks.push(function(b){var a=b.options.accessibility;a.enabled&&a.keyboardNavigation.enabled&&(c=!!b.renderTo.getElementsByTagName("g")[0].focus,b.addKeyboardNavigationModules(),b.keyboardNavigationModuleIndex=0,b.container.hasAttribute&&!b.container.hasAttribute("tabIndex")&&b.container.setAttribute("tabindex","0"),b.tabExitAnchor||(b.unbindExitAnchorFocus=b.addExitAnchor()),b.unbindKeydownHandler= | ||
n(b.renderTo,"keydown",function(a){a=a||k.event;var c=b.keyboardNavigationModules[b.keyboardNavigationModuleIndex];b.keyboardReset=!1;c&&c.run(a)&&a.preventDefault()}),b.unbindBlurHandler=n(v,"mouseup",function(){b.keyboardReset||b.pointer&&b.pointer.chartPosition||b.resetKeyboardNavigation()}),n(b,"destroy",function(){b.resetKeyboardNavigation();b.unbindExitAnchorFocus&&b.tabExitAnchor&&b.unbindExitAnchorFocus();b.unbindKeydownHandler&&b.renderTo&&b.unbindKeydownHandler();b.unbindBlurHandler&&b.unbindBlurHandler()}))})})(m)}); | ||
(function(v){"object"===typeof module&&module.exports?module.exports=v:v(Highcharts)})(function(v){(function(c){function u(c,f){var k=c.indexOf("#each("),h=c.indexOf("#plural("),g=c.indexOf("["),n=c.indexOf("]");if(-1<k){var g=c.slice(k).indexOf(")")+k,l=c.substring(0,k),h=c.substring(g+1),g=c.substring(k+6,g).split(","),k=Number(g[1]);c="";if(f=f[g[0]])for(k=isNaN(k)?f.length:k,k=0>k?f.length+k:Math.min(k,f.length),g=0;g<k;++g)c+=l+f[g]+h;return c.length?c:""}if(-1<h){l=c.slice(h).indexOf(")")+h; | ||
c=c.substring(h+8,l).split(",");switch(Number(f[c[0]])){case 0:c=r(c[4],c[1]);break;case 1:c=r(c[2],c[1]);break;case 2:c=r(c[3],c[1]);break;default:c=c[1]}c?(f=c,f=f.trim&&f.trim()||f.replace(/^\s+|\s+$/g,"")):f="";return f}return-1<g?(h=c.substring(0,g),c=Number(c.substring(g+1,n)),f=f[h],!isNaN(c)&&f&&(0>c?(l=f[f.length+c],void 0===l&&(l=f[0])):(l=f[c],void 0===l&&(l=f[f.length-1]))),void 0!==l?l:""):"{"+c+"}"}var t=c.each,r=c.pick;c.i18nFormat=function(n,f,k){var h=function(d,c){d=d.slice(c||0); | ||
var a=d.indexOf("{"),b=d.indexOf("}");if(-1<a&&b>a)return{statement:d.substring(a+1,b),begin:c+a+1,end:c+b}},g=[],q,l;l=0;do q=h(n,l),l=n.substring(l,q&&q.begin-1),l.length&&g.push({value:l,type:"constant"}),q&&g.push({value:q.statement,type:"statement"}),l=q&&q.end+1;while(q);t(g,function(d){"statement"===d.type&&(d.value=u(d.value,f))});return c.format(c.reduce(g,function(d,c){return d+c.value},""),f,k)};c.Chart.prototype.langFormat=function(n,f,k){n=n.split(".");for(var h=this.options.lang,g=0;g< | ||
n.length;++g)h=h&&h[n[g]];return"string"===typeof h&&c.i18nFormat(h,f,k)};c.setOptions({lang:{accessibility:{screenReaderRegionLabel:"Chart screen reader information.",navigationHint:"Use regions/landmarks to skip ahead to chart {#plural(numSeries, and navigate between data series,)}",defaultChartTitle:"Chart",longDescriptionHeading:"Long description.",noDescription:"No description available.",structureHeading:"Structure.",viewAsDataTable:"View as data table.",chartHeading:"Chart graphic.",chartContainerLabel:"Interactive chart. {title}. Use up and down arrows to navigate with most screen readers.", | ||
rangeSelectorMinInput:"Select start date.",rangeSelectorMaxInput:"Select end date.",tableSummary:"Table representation of chart.",mapZoomIn:"Zoom chart",mapZoomOut:"Zoom out chart",rangeSelectorButton:"Select range {buttonText}",legendItem:"Toggle visibility of series {itemName}",seriesTypeDescriptions:{boxplot:"Box plot charts are typically used to display groups of statistical data. Each data point in the chart can have up to 5 values: minimum, lower quartile, median, upper quartile, and maximum.", | ||
arearange:"Arearange charts are line charts displaying a range between a lower and higher value for each point.",areasplinerange:"These charts are line charts displaying a range between a lower and higher value for each point.",bubble:"Bubble charts are scatter charts where each data point also has a size value.",columnrange:"Columnrange charts are column charts displaying a range between a lower and higher value for each point.",errorbar:"Errorbar series are used to display the variability of the data.", | ||
funnel:"Funnel charts are used to display reduction of data in stages.",pyramid:"Pyramid charts consist of a single pyramid with item heights corresponding to each point value.",waterfall:"A waterfall chart is a column chart where each column contributes towards a total end value."},chartTypes:{emptyChart:"Empty chart",mapTypeDescription:"Map of {mapTitle} with {numSeries} data series.",unknownMap:"Map of unspecified region with {numSeries} data series.",combinationChart:"Combination chart with {numSeries} data series.", | ||
defaultSingle:"Chart with {numPoints} data {#plural(numPoints, points, point)}.",defaultMultiple:"Chart with {numSeries} data series.",splineSingle:"Line chart with {numPoints} data {#plural(numPoints, points, point)}.",splineMultiple:"Line chart with {numSeries} lines.",lineSingle:"Line chart with {numPoints} data {#plural(numPoints, points, point)}.",lineMultiple:"Line chart with {numSeries} lines.",columnSingle:"Bar chart with {numPoints} {#plural(numPoints, bars, bar)}.",columnMultiple:"Bar chart with {numSeries} data series.", | ||
barSingle:"Bar chart with {numPoints} {#plural(numPoints, bars, bar)}.",barMultiple:"Bar chart with {numSeries} data series.",pieSingle:"Pie chart with {numPoints} {#plural(numPoints, slices, slice)}.",pieMultiple:"Pie chart with {numSeries} pies.",scatterSingle:"Scatter chart with {numPoints} {#plural(numPoints, points, point)}.",scatterMultiple:"Scatter chart with {numSeries} data series.",boxplotSingle:"Boxplot with {numPoints} {#plural(numPoints, boxes, box)}.",boxplotMultiple:"Boxplot with {numSeries} data series.", | ||
bubbleSingle:"Bubble chart with {numPoints} {#plural(numPoints, bubbles, bubble)}.",bubbleMultiple:"Bubble chart with {numSeries} data series."},axis:{xAxisDescriptionSingular:"The chart has 1 X axis displaying {names[0]}.",xAxisDescriptionPlural:"The chart has {numAxes} X axes displaying {#each(names, -1) }and {names[-1]}",yAxisDescriptionSingular:"The chart has 1 Y axis displaying {names[0]}.",yAxisDescriptionPlural:"The chart has {numAxes} Y axes displaying {#each(names, -1) }and {names[-1]}"}, | ||
exporting:{chartMenuLabel:"Chart export",menuButtonLabel:"View export menu",exportRegionLabel:"Chart export menu"},series:{summary:{default:"{name}, series {ix} of {numSeries} with {numPoints} data {#plural(numPoints, points, point)}.",defaultCombination:"{name}, series {ix} of {numSeries} with {numPoints} data {#plural(numPoints, points, point)}.",line:"{name}, line {ix} of {numSeries} with {numPoints} data {#plural(numPoints, points, point)}.",lineCombination:"{name}, series {ix} of {numSeries}. Line with {numPoints} data {#plural(numPoints, points, point)}.", | ||
spline:"{name}, line {ix} of {numSeries} with {numPoints} data {#plural(numPoints, points, point)}.",splineCombination:"{name}, series {ix} of {numSeries}. Line with {numPoints} data {#plural(numPoints, points, point)}.",column:"{name}, bar series {ix} of {numSeries} with {numPoints} {#plural(numPoints, bars, bar)}.",columnCombination:"{name}, series {ix} of {numSeries}. Bar series with {numPoints} {#plural(numPoints, bars, bar)}.",bar:"{name}, bar series {ix} of {numSeries} with {numPoints} {#plural(numPoints, bars, bar)}.", | ||
barCombination:"{name}, series {ix} of {numSeries}. Bar series with {numPoints} {#plural(numPoints, bars, bar)}.",pie:"{name}, pie {ix} of {numSeries} with {numPoints} {#plural(numPoints, slices, slice)}.",pieCombination:"{name}, series {ix} of {numSeries}. Pie with {numPoints} {#plural(numPoints, slices, slice)}.",scatter:"{name}, scatter plot {ix} of {numSeries} with {numPoints} {#plural(numPoints, points, point)}.",scatterCombination:"{name}, series {ix} of {numSeries}, scatter plot with {numPoints} {#plural(numPoints, points, point)}.", | ||
boxplot:"{name}, boxplot {ix} of {numSeries} with {numPoints} {#plural(numPoints, boxes, box)}.",boxplotCombination:"{name}, series {ix} of {numSeries}. Boxplot with {numPoints} {#plural(numPoints, boxes, box)}.",bubble:"{name}, bubble series {ix} of {numSeries} with {numPoints} {#plural(numPoints, bubbles, bubble)}.",bubbleCombination:"{name}, series {ix} of {numSeries}. Bubble series with {numPoints} {#plural(numPoints, bubbles, bubble)}.",map:"{name}, map {ix} of {numSeries} with {numPoints} {#plural(numPoints, areas, area)}.", | ||
mapCombination:"{name}, series {ix} of {numSeries}. Map with {numPoints} {#plural(numPoints, areas, area)}.",mapline:"{name}, line {ix} of {numSeries} with {numPoints} data {#plural(numPoints, points, point)}.",maplineCombination:"{name}, series {ix} of {numSeries}. Line with {numPoints} data {#plural(numPoints, points, point)}.",mapbubble:"{name}, bubble series {ix} of {numSeries} with {numPoints} {#plural(numPoints, bubbles, bubble)}.",mapbubbleCombination:"{name}, series {ix} of {numSeries}. Bubble series with {numPoints} {#plural(numPoints, bubbles, bubble)}."}, | ||
description:"{description}",xAxisDescription:"X axis, {name}",yAxisDescription:"Y axis, {name}"}}}})})(v);(function(c){function u(d){return d.replace(/&/g,"\x26amp;").replace(/</g,"\x26lt;").replace(/>/g,"\x26gt;").replace(/"/g,"\x26quot;").replace(/'/g,"\x26#x27;").replace(/\//g,"\x26#x2F;")}function t(d){return"string"===typeof d?d.replace(/<\/?[^>]+(>|$)/g,""):d}function r(d){for(var c=d.childNodes.length;c--;)d.appendChild(d.childNodes[c])}var n=c.win.document,f=c.each,k=c.map,h=c.erase,g=c.addEvent, | ||
q=c.merge,l={position:"absolute",left:"-9999px",top:"auto",width:"1px",height:"1px",overflow:"hidden"};c.Series.prototype.commonKeys="name id category x value y".split(" ");c.Series.prototype.specialKeys="z open high q3 median q1 low close".split(" ");c.seriesTypes.pie&&(c.seriesTypes.pie.prototype.specialKeys=[]);c.setOptions({accessibility:{enabled:!0,pointDescriptionThreshold:!1,screenReaderSectionFormatter:function(d){var c=d.options,a=d.types||[],b={chart:d,numSeries:d.series&&d.series.length}, | ||
a=(1===a.length&&"pie"===a[0]||"map"===a[0])&&{}||d.getAxesDescription();return"\x3cdiv\x3e"+d.langFormat("accessibility.navigationHint",b)+"\x3c/div\x3e\x3ch3\x3e"+(c.title.text?u(c.title.text):d.langFormat("accessibility.defaultChartTitle",b))+(c.subtitle&&c.subtitle.text?". "+u(c.subtitle.text):"")+"\x3c/h3\x3e\x3ch4\x3e"+d.langFormat("accessibility.longDescriptionHeading",b)+"\x3c/h4\x3e\x3cdiv\x3e"+(c.chart.description||d.langFormat("accessibility.noDescription",b))+"\x3c/div\x3e\x3ch4\x3e"+ | ||
d.langFormat("accessibility.structureHeading",b)+"\x3c/h4\x3e\x3cdiv\x3e"+(c.chart.typeDescription||d.getTypeDescription())+"\x3c/div\x3e"+(a.xAxis?"\x3cdiv\x3e"+a.xAxis+"\x3c/div\x3e":"")+(a.yAxis?"\x3cdiv\x3e"+a.yAxis+"\x3c/div\x3e":"")}}});c.wrap(c.Series.prototype,"render",function(c){c.apply(this,Array.prototype.slice.call(arguments,1));this.chart.options.accessibility.enabled&&this.setA11yDescription()});c.Series.prototype.setA11yDescription=function(){var c=this.chart.options.accessibility, | ||
e=this.points&&this.points.length&&this.points[0].graphic&&this.points[0].graphic.element,a=e&&e.parentNode||this.graph&&this.graph.element||this.group&&this.group.element;a&&(a.lastChild===e&&r(a),this.points&&(this.points.length<c.pointDescriptionThreshold||!1===c.pointDescriptionThreshold)&&f(this.points,function(b){b.graphic&&(b.graphic.element.setAttribute("role","img"),b.graphic.element.setAttribute("tabindex","-1"),b.graphic.element.setAttribute("aria-label",t(b.series.options.pointDescriptionFormatter&& | ||
b.series.options.pointDescriptionFormatter(b)||c.pointDescriptionFormatter&&c.pointDescriptionFormatter(b)||b.buildPointInfoString())))}),1<this.chart.series.length||c.describeSingleSeries)&&(a.setAttribute("role",this.options.exposeElementToA11y?"img":"region"),a.setAttribute("tabindex","-1"),a.setAttribute("aria-label",t(c.seriesDescriptionFormatter&&c.seriesDescriptionFormatter(this)||this.buildSeriesInfoString())))};c.Series.prototype.buildSeriesInfoString=function(){var c=this.chart,e=this.description|| | ||
this.options.description,e=e&&c.langFormat("accessibility.series.description",{description:e,series:this}),a=c.langFormat("accessibility.series.xAxisDescription",{name:this.xAxis&&this.xAxis.getDescription(),series:this}),b=c.langFormat("accessibility.series.yAxisDescription",{name:this.yAxis&&this.yAxis.getDescription(),series:this}),m={name:this.name||"",ix:this.index+1,numSeries:c.series.length,numPoints:this.points.length,series:this},p=1===c.types.length?"":"Combination";return(c.langFormat("accessibility.series.summary."+ | ||
this.type+p,m)||c.langFormat("accessibility.series.summary.default"+p,m))+(e?" "+e:"")+(1<c.yAxis.length&&this.yAxis?" "+b:"")+(1<c.xAxis.length&&this.xAxis?" "+a:"")};c.Point.prototype.buildPointInfoString=function(){var d=this,e=d.series,a=e.chart.options.accessibility,b="",m=e.xAxis&&e.xAxis.isDatetimeAxis,a=m&&e.chart.time.dateFormat(a.pointDateFormatter&&a.pointDateFormatter(d)||a.pointDateFormat||c.Tooltip.prototype.getXDateFormat.call({getDateFormat:c.Tooltip.prototype.getDateFormat,chart:e.chart}, | ||
d,e.chart.options.tooltip,e.xAxis),d.x);c.find(e.specialKeys,function(b){return void 0!==d[b]})?(m&&(b=a),f(e.commonKeys.concat(e.specialKeys),function(a){void 0===d[a]||m&&"x"===a||(b+=(b?". ":"")+a+", "+d[a])})):b=(this.name||a||this.category||this.id||"x, "+this.x)+", "+(void 0!==this.value?this.value:this.y);return this.index+1+". "+b+"."+(this.description?" "+this.description:"")};c.Axis.prototype.getDescription=function(){return this.userOptions&&this.userOptions.description||this.axisTitle&& | ||
this.axisTitle.textStr||this.options.id||this.categories&&"categories"||this.isDatetimeAxis&&"Time"||"values"};c.wrap(c.Series.prototype,"init",function(c){c.apply(this,Array.prototype.slice.call(arguments,1));var d=this.chart;d.options.accessibility.enabled&&(d.types=d.types||[],0>d.types.indexOf(this.type)&&d.types.push(this.type),g(this,"remove",function(){var a=this,b=!1;f(d.series,function(m){m!==a&&0>d.types.indexOf(a.type)&&(b=!0)});b||h(d.types,a.type)}))});c.Chart.prototype.getTypeDescription= | ||
function(){var c=this.types&&this.types[0],e=this.series&&this.series[0]||{},a=e.mapTitle,b=this.langFormat("accessibility.seriesTypeDescriptions."+c,{chart:this}),e={numSeries:this.series.length,numPoints:e.points&&e.points.length,chart:this,mapTitle:a},m=this.series&&1===this.series.length?"Single":"Multiple";if(c){if("map"===c)return a?this.langFormat("accessibility.chartTypes.mapTypeDescription",e):this.langFormat("accessibility.chartTypes.unknownMap",e);if(1<this.types.length)return this.langFormat("accessibility.chartTypes.combinationChart", | ||
e)}else return this.langFormat("accessibility.chartTypes.emptyChart",e);return(this.langFormat("accessibility.chartTypes."+c+m,e)||this.langFormat("accessibility.chartTypes.default"+m,e))+(b?" "+b:"")};c.Chart.prototype.getAxesDescription=function(){var c=this.xAxis.length,e=this.yAxis.length,a={};c&&(a.xAxis=this.langFormat("accessibility.axis.xAxisDescription"+(1<c?"Plural":"Singular"),{chart:this,names:k(this.xAxis,function(b){return b.getDescription()}),numAxes:c}));e&&(a.yAxis=this.langFormat("accessibility.axis.yAxisDescription"+ | ||
(1<e?"Plural":"Singular"),{chart:this,names:k(this.yAxis,function(b){return b.getDescription()}),numAxes:e}));return a};c.Chart.prototype.addAccessibleContextMenuAttribs=function(){var c=this.exportDivElements;c&&(f(c,function(c){"DIV"!==c.tagName||c.children&&c.children.length||(c.setAttribute("role","menuitem"),c.setAttribute("tabindex",-1))}),c[0].parentNode.setAttribute("role","menu"),c[0].parentNode.setAttribute("aria-label",this.langFormat("accessibility.exporting.chartMenuLabel",{chart:this})))}; | ||
c.Chart.prototype.addScreenReaderRegion=function(c,e){var a=this,b=a.screenReaderRegion=n.createElement("div"),m=n.createElement("h4"),p=n.createElement("a"),d=n.createElement("h4");b.setAttribute("id",c);b.setAttribute("role","region");b.setAttribute("aria-label",a.langFormat("accessibility.screenReaderRegionLabel",{chart:this}));b.innerHTML=a.options.accessibility.screenReaderSectionFormatter(a);a.getCSV&&(p.innerHTML=a.langFormat("accessibility.viewAsDataTable",{chart:a}),p.href="#"+e,p.setAttribute("tabindex", | ||
"-1"),p.onclick=a.options.accessibility.onTableAnchorClick||function(){a.viewData();n.getElementById(e).focus()},m.appendChild(p),b.appendChild(m));d.innerHTML=a.langFormat("accessibility.chartHeading",{chart:a});a.renderTo.insertBefore(d,a.renderTo.firstChild);a.renderTo.insertBefore(b,a.renderTo.firstChild);q(!0,d.style,l);q(!0,b.style,l)};c.Chart.prototype.callbacks.push(function(d){var e=d.options;if(e.accessibility.enabled){var a=n.createElementNS("http://www.w3.org/2000/svg","title"),b=n.createElementNS("http://www.w3.org/2000/svg", | ||
"g"),m=d.container.getElementsByTagName("desc")[0],p=d.container.getElementsByTagName("text"),x="highcharts-title-"+d.index,w="highcharts-data-table-"+d.index,g="highcharts-information-region-"+d.index,e=e.title.text||d.langFormat("accessibility.defaultChartTitle",{chart:d});a.textContent=u(e);a.id=x;m.parentNode.insertBefore(a,m);d.renderTo.setAttribute("role","region");d.renderTo.setAttribute("aria-label",d.langFormat("accessibility.chartContainerLabel",{title:t(e),chart:d}));if(d.exportSVGElements&& | ||
d.exportSVGElements[0]&&d.exportSVGElements[0].element){var h=d.exportSVGElements[0].element.onclick,a=d.exportSVGElements[0].element.parentNode;d.exportSVGElements[0].element.onclick=function(){h.apply(this,Array.prototype.slice.call(arguments));d.addAccessibleContextMenuAttribs();d.highlightExportItem(0)};d.exportSVGElements[0].element.setAttribute("role","button");d.exportSVGElements[0].element.setAttribute("aria-label",d.langFormat("accessibility.exporting.menuButtonLabel",{chart:d}));b.appendChild(d.exportSVGElements[0].element); | ||
b.setAttribute("role","region");b.setAttribute("aria-label",d.langFormat("accessibility.exporting.exportRegionLabel",{chart:d}));a.appendChild(b)}d.rangeSelector&&f(["minInput","maxInput"],function(b,a){d.rangeSelector[b]&&(d.rangeSelector[b].setAttribute("tabindex","-1"),d.rangeSelector[b].setAttribute("role","textbox"),d.rangeSelector[b].setAttribute("aria-label",d.langFormat("accessibility.rangeSelector"+(a?"MaxInput":"MinInput"),{chart:d})))});f(p,function(b){b.setAttribute("aria-hidden","true")}); | ||
d.addScreenReaderRegion(g,w);c.wrap(d,"getTable",function(b){return b.apply(this,Array.prototype.slice.call(arguments,1)).replace("\x3ctable\x3e",'\x3ctable id\x3d"'+w+'" summary\x3d"'+d.langFormat("accessibility.tableSummary",{chart:d})+'"\x3e')})}})})(v);(function(c){function u(a){return"string"===typeof a?a.replace(/<\/?[^>]+(>|$)/g,""):a}function t(a,b){this.chart=a;this.id=b.id;this.keyCodeMap=b.keyCodeMap;this.validate=b.validate;this.init=b.init;this.terminate=b.terminate}function r(a){var b; | ||
a&&a.onclick&&k.createEvent&&(b=k.createEvent("Events"),b.initEvent("click",!0,!1),a.onclick(b))}function n(a){var b=a.series.chart.options.accessibility;return a.isNull&&b.keyboardNavigation.skipNullPoints||a.series.options.skipKeyboardNavigation||!a.series.visible||!1===a.visible||b.pointDescriptionThreshold&&b.pointDescriptionThreshold<=a.series.points.length}var f=c.win,k=f.document,h=c.each,g=c.addEvent,q=c.fireEvent,l=c.merge,d=c.pick,e;c.extend(c.SVGElement.prototype,{addFocusBorder:function(a, | ||
b){this.focusBorder&&this.removeFocusBorder();var c=this.getBBox();a=d(a,3);this.focusBorder=this.renderer.rect(c.x-a,c.y-a,c.width+2*a,c.height+2*a,b&&b.borderRadius).addClass("highcharts-focus-border").attr({stroke:b&&b.stroke,"stroke-width":b&&b.strokeWidth}).attr({zIndex:99}).add(this.parentGroup)},removeFocusBorder:function(){this.focusBorder&&(this.focusBorder.destroy(),delete this.focusBorder)}});c.Series.prototype.keyboardMoveVertical=!0;h(["column","pie"],function(a){c.seriesTypes[a]&&(c.seriesTypes[a].prototype.keyboardMoveVertical= | ||
!1)});c.setOptions({accessibility:{keyboardNavigation:{enabled:!0,focusBorder:{enabled:!0,hideBrowserFocusOutline:!0,style:{color:"#335cad",lineWidth:2,borderRadius:3},margin:2},skipNullPoints:!0}}});t.prototype={run:function(a){var b=this,c=a.which||a.keyCode,d=!1,e=!1;h(this.keyCodeMap,function(m){-1<m[0].indexOf(c)&&(d=!0,e=!1===m[1].call(b,c,a)?!1:!0)});d||9!==c||(e=this.move(a.shiftKey?-1:1));return e},move:function(a){var b=this.chart;this.terminate&&this.terminate(a);b.keyboardNavigationModuleIndex+= | ||
a;var c=b.keyboardNavigationModules[b.keyboardNavigationModuleIndex];b.focusElement&&b.focusElement.removeFocusBorder();if(c){if(c.validate&&!c.validate())return this.move(a);if(c.init)return c.init(a),!0}b.keyboardNavigationModuleIndex=0;0<a?(this.chart.exiting=!0,this.chart.tabExitAnchor.focus()):this.chart.renderTo.focus();return!1}};c.Axis.prototype.panStep=function(a,b){var c=b||3;b=this.getExtremes();var d=(b.max-b.min)/c*a,c=b.max+d,d=b.min+d,e=c-d;0>a&&d<b.dataMin?(d=b.dataMin,c=d+e):0<a&& | ||
c>b.dataMax&&(c=b.dataMax,d=c-e);this.setExtremes(d,c)};c.Chart.prototype.setFocusToElement=function(a,b){var c=this.options.accessibility.keyboardNavigation.focusBorder;b=b||a;b.element&&b.element.focus&&(b.element.focus(),c.hideBrowserFocusOutline&&b.css({outline:"none"}));c.enabled&&a!==this.focusElement&&(this.focusElement&&this.focusElement.removeFocusBorder(),a.addFocusBorder(c.margin,{stroke:c.style.color,strokeWidth:c.style.lineWidth,borderRadius:c.style.borderRadius}),this.focusElement=a)}; | ||
c.Point.prototype.highlight=function(){var a=this.series.chart;if(this.isNull)a.tooltip&&a.tooltip.hide(0);else this.onMouseOver();this.graphic&&a.setFocusToElement(this.graphic);a.highlightedPoint=this;return this};c.Chart.prototype.highlightAdjacentPoint=function(a){var b=this.series,c=this.highlightedPoint,d=c&&c.index||0,e=c&&c.series.points,f=this.series&&this.series[this.series.length-1],f=f&&f.points&&f.points[f.points.length-1];if(!b[0]||!b[0].points)return!1;if(c){if(e[d]!==c)for(f=0;f<e.length;++f)if(e[f]=== | ||
c){d=f;break}b=b[c.series.index+(a?1:-1)];d=e[d+(a?1:-1)]||b&&b.points[a?0:b.points.length-1];if(!d)return!1}else d=a?b[0].points[0]:f;return n(d)?(this.highlightedPoint=d,this.highlightAdjacentPoint(a)):d.highlight()};c.Series.prototype.highlightFirstValidPoint=function(){var a=this.chart.highlightedPoint,b=(a&&a.series)===this?a.index:0;if(a=this.points){for(var c=b,d=a.length;c<d;++c)if(!n(a[c]))return a[c].highlight();for(;0<=b;--b)if(!n(a[b]))return a[b].highlight()}return!1};c.Chart.prototype.highlightAdjacentSeries= | ||
function(a){var b,c,d=this.highlightedPoint,e=(b=this.series&&this.series[this.series.length-1])&&b.points&&b.points[b.points.length-1];if(!this.highlightedPoint)return b=a?this.series&&this.series[0]:b,(c=a?b&&b.points&&b.points[0]:e)?c.highlight():!1;b=this.series[d.series.index+(a?-1:1)];if(!b)return!1;var e=Infinity,f,g=b.points.length;if(void 0===d.plotX||void 0===d.plotY)c=void 0;else{for(;g--;)f=b.points[g],void 0!==f.plotX&&void 0!==f.plotY&&(f=(d.plotX-f.plotX)*(d.plotX-f.plotX)*4+(d.plotY- | ||
f.plotY)*(d.plotY-f.plotY)*1,f<e&&(e=f,c=g));c=void 0!==c&&b.points[c]}if(!c)return!1;if(!b.visible)return c.highlight(),a=this.highlightAdjacentSeries(a),a?a:(d.highlight(),!1);c.highlight();return c.series.highlightFirstValidPoint()};c.Chart.prototype.highlightAdjacentPointVertical=function(a){var b=this.highlightedPoint,c=Infinity,d;if(void 0===b.plotX||void 0===b.plotY)return!1;h(this.series,function(m){h(m.points,function(e){if(void 0!==e.plotY&&void 0!==e.plotX&&e!==b){var f=e.plotY-b.plotY, | ||
p=Math.abs(e.plotX-b.plotX),p=Math.abs(f)*Math.abs(f)+p*p*4;m.yAxis.reversed&&(f*=-1);!(0>f&&a||0<f&&!a||5>p||n(e))&&p<c&&(c=p,d=e)}})});return d?d.highlight():!1};c.Chart.prototype.showExportMenu=function(){this.exportSVGElements&&this.exportSVGElements[0]&&(this.exportSVGElements[0].element.onclick(),this.highlightExportItem(0))};c.Chart.prototype.hideExportMenu=function(){var a=this.exportDivElements;if(a){h(a,function(b){q(b,"mouseleave")});if(a[this.highlightedExportItem]&&a[this.highlightedExportItem].onmouseout)a[this.highlightedExportItem].onmouseout(); | ||
this.highlightedExportItem=0;e&&this.renderTo.focus()}};c.Chart.prototype.highlightExportItem=function(a){var b=this.exportDivElements&&this.exportDivElements[a],c=this.exportDivElements&&this.exportDivElements[this.highlightedExportItem];if(b&&"DIV"===b.tagName&&(!b.children||!b.children.length)){b.focus&&e&&b.focus();if(c&&c.onmouseout)c.onmouseout();if(b.onmouseover)b.onmouseover();this.highlightedExportItem=a;return!0}};c.Chart.prototype.highlightLastExportItem=function(){var a;if(this.exportDivElements)for(a= | ||
this.exportDivElements.length;a--&&!this.highlightExportItem(a););};c.Chart.prototype.highlightRangeSelectorButton=function(a){var b=this.rangeSelector.buttons;b[this.highlightedRangeSelectorItemIx]&&b[this.highlightedRangeSelectorItemIx].setState(this.oldRangeSelectorItemState||0);this.highlightedRangeSelectorItemIx=a;return b[a]?(this.setFocusToElement(b[a].box,b[a]),this.oldRangeSelectorItemState=b[a].state,b[a].setState(2),!0):!1};c.Chart.prototype.highlightLegendItem=function(a){var b=this.legend.allItems, | ||
c=this.highlightedLegendItemIx;return b[a]?(b[c]&&q(b[c].legendGroup.element,"mouseout"),void 0!==b[a].pageIx&&b[a].pageIx+1!==this.legend.currentPage&&this.legend.scroll(1+b[a].pageIx-this.legend.currentPage),this.highlightedLegendItemIx=a,this.setFocusToElement(b[a].legendItem,b[a].legendGroup),q(b[a].legendGroup.element,"mouseover"),!0):!1};c.Chart.prototype.addKeyboardNavigationModules=function(){function a(a,c,d){return new t(b,l({keyCodeMap:c},{id:a},d))}var b=this;b.keyboardNavigationModules= | ||
[a("entry",[]),a("points",[[[37,39],function(a){a=39===a;return b.highlightAdjacentPoint(a)?!0:this.init(a?1:-1)}],[[38,40],function(a){a=38!==a;var c=b.options.accessibility.keyboardNavigation;if(c.mode&&"serialize"===c.mode)return b.highlightAdjacentPoint(a)?!0:this.init(a?1:-1);b[b.highlightedPoint&&b.highlightedPoint.series.keyboardMoveVertical?"highlightAdjacentPointVertical":"highlightAdjacentSeries"](a);return!0}],[[13,32],function(){b.highlightedPoint&&b.highlightedPoint.firePointEvent("click")}]], | ||
{init:function(a){var c=b.series.length,d=0<a?0:c;if(0<a)for(delete b.highlightedPoint;d<c;){if(a=b.series[d].highlightFirstValidPoint())return a;++d}else for(;d--;)if(b.highlightedPoint=b.series[d].points[b.series[d].points.length-1],a=b.series[d].highlightFirstValidPoint())return a},terminate:function(){b.tooltip&&b.tooltip.hide(0);delete b.highlightedPoint}}),a("exporting",[[[37,38],function(){for(var a=b.highlightedExportItem||0,c=!0;a--;)if(b.highlightExportItem(a)){c=!1;break}if(c)return b.highlightLastExportItem(), | ||
!0}],[[39,40],function(){for(var a=!0,c=(b.highlightedExportItem||0)+1;c<b.exportDivElements.length;++c)if(b.highlightExportItem(c)){a=!1;break}if(a)return b.highlightExportItem(0),!0}],[[13,32],function(){r(b.exportDivElements[b.highlightedExportItem])}]],{validate:function(){return b.exportChart&&!(b.options.exporting&&!1===b.options.exporting.enabled)},init:function(a){b.highlightedPoint=null;b.showExportMenu();0>a&&b.highlightLastExportItem()},terminate:function(){b.hideExportMenu()}}),a("mapZoom", | ||
[[[38,40,37,39],function(a){b[38===a||40===a?"yAxis":"xAxis"][0].panStep(39>a?-1:1)}],[[9],function(a,c){b.mapNavButtons[b.focusedMapNavButtonIx].setState(0);if(c.shiftKey&&!b.focusedMapNavButtonIx||!c.shiftKey&&b.focusedMapNavButtonIx)return b.mapZoom(),this.move(c.shiftKey?-1:1);b.focusedMapNavButtonIx+=c.shiftKey?-1:1;a=b.mapNavButtons[b.focusedMapNavButtonIx];b.setFocusToElement(a.box,a);a.setState(2)}],[[13,32],function(){r(b.mapNavButtons[b.focusedMapNavButtonIx].element)}]],{validate:function(){return b.mapZoom&& | ||
b.mapNavButtons&&2===b.mapNavButtons.length},init:function(a){var c=b.mapNavButtons[0],d=b.mapNavButtons[1],c=0<a?c:d;h(b.mapNavButtons,function(a,c){a.element.setAttribute("tabindex",-1);a.element.setAttribute("role","button");a.element.setAttribute("aria-label",b.langFormat("accessibility.mapZoom"+(c?"Out":"In"),{chart:b}))});b.setFocusToElement(c.box,c);c.setState(2);b.focusedMapNavButtonIx=0<a?0:1}}),a("rangeSelector",[[[37,39,38,40],function(a){a=37===a||38===a?-1:1;if(!b.highlightRangeSelectorButton(b.highlightedRangeSelectorItemIx+ | ||
a))return this.move(a)}],[[13,32],function(){3!==b.oldRangeSelectorItemState&&r(b.rangeSelector.buttons[b.highlightedRangeSelectorItemIx].element)}]],{validate:function(){return b.rangeSelector&&b.rangeSelector.buttons&&b.rangeSelector.buttons.length},init:function(a){h(b.rangeSelector.buttons,function(a){a.element.setAttribute("tabindex","-1");a.element.setAttribute("role","button");a.element.setAttribute("aria-label",b.langFormat("accessibility.rangeSelectorButton",{chart:b,buttonText:a.text&&a.text.textStr}))}); | ||
b.highlightRangeSelectorButton(0<a?0:b.rangeSelector.buttons.length-1)}}),a("rangeSelectorInput",[[[9,38,40],function(a,c){a=9===a&&c.shiftKey||38===a?-1:1;c=b.highlightedInputRangeIx+=a;if(1<c||0>c)return this.move(a);b.rangeSelector[c?"maxInput":"minInput"].focus()}]],{validate:function(){return b.rangeSelector&&b.rangeSelector.inputGroup&&"hidden"!==b.rangeSelector.inputGroup.element.getAttribute("visibility")&&!1!==b.options.rangeSelector.inputEnabled&&b.rangeSelector.minInput&&b.rangeSelector.maxInput}, | ||
init:function(a){b.highlightedInputRangeIx=0<a?0:1;b.rangeSelector[b.highlightedInputRangeIx?"maxInput":"minInput"].focus()}}),a("legend",[[[37,39,38,40],function(a){a=37===a||38===a?-1:1;b.highlightLegendItem(b.highlightedLegendItemIx+a)||this.init(a)}],[[13,32],function(){r(b.legend.allItems[b.highlightedLegendItemIx].legendItem.element.parentNode)}]],{validate:function(){return b.legend&&b.legend.allItems&&b.legend.display&&!(b.colorAxis&&b.colorAxis.length)&&!1!==(b.options.legend&&b.options.legend.keyboardNavigation&& | ||
b.options.legend.keyboardNavigation.enabled)},init:function(a){h(b.legend.allItems,function(a){a.legendGroup.element.setAttribute("tabindex","-1");a.legendGroup.element.setAttribute("role","button");a.legendGroup.element.setAttribute("aria-label",b.langFormat("accessibility.legendItem",{chart:b,itemName:u(a.name)}))});b.highlightLegendItem(0<a?0:b.legend.allItems.length-1)}})]};c.Chart.prototype.addExitAnchor=function(){var a=this;a.tabExitAnchor=k.createElement("div");a.tabExitAnchor.setAttribute("tabindex", | ||
"0");l(!0,a.tabExitAnchor.style,{position:"absolute",left:"-9999px",top:"auto",width:"1px",height:"1px",overflow:"hidden"});a.renderTo.appendChild(a.tabExitAnchor);return g(a.tabExitAnchor,"focus",function(b){b=b||f.event;a.exiting?a.exiting=!1:(a.renderTo.focus(),b.preventDefault(),a.keyboardNavigationModuleIndex=a.keyboardNavigationModules.length-1,b=a.keyboardNavigationModules[a.keyboardNavigationModuleIndex],b.validate&&!b.validate()?b.move(-1):b.init(-1))})};c.Chart.prototype.resetKeyboardNavigation= | ||
function(){var a=this.keyboardNavigationModules&&this.keyboardNavigationModules[this.keyboardNavigationModuleIndex||0];a&&a.terminate&&a.terminate();this.focusElement&&this.focusElement.removeFocusBorder();this.keyboardNavigationModuleIndex=0;this.keyboardReset=!0};c.wrap(c.Series.prototype,"destroy",function(a){var b=this.chart;b.highlightedPoint&&b.highlightedPoint.series===this&&(delete b.highlightedPoint,b.focusElement&&b.focusElement.removeFocusBorder());a.apply(this,Array.prototype.slice.call(arguments, | ||
1))});c.Chart.prototype.callbacks.push(function(a){var b=a.options.accessibility;b.enabled&&b.keyboardNavigation.enabled&&(e=!!a.renderTo.getElementsByTagName("g")[0].focus,a.addKeyboardNavigationModules(),a.keyboardNavigationModuleIndex=0,a.container.hasAttribute&&!a.container.hasAttribute("tabIndex")&&a.container.setAttribute("tabindex","0"),a.tabExitAnchor||(a.unbindExitAnchorFocus=a.addExitAnchor()),a.unbindKeydownHandler=g(a.renderTo,"keydown",function(b){b=b||f.event;var c=a.keyboardNavigationModules[a.keyboardNavigationModuleIndex]; | ||
a.keyboardReset=!1;c&&c.run(b)&&b.preventDefault()}),a.unbindBlurHandler=g(k,"mouseup",function(){a.keyboardReset||a.pointer&&a.pointer.chartPosition||a.resetKeyboardNavigation()}),g(a,"destroy",function(){a.resetKeyboardNavigation();a.unbindExitAnchorFocus&&a.tabExitAnchor&&a.unbindExitAnchorFocus();a.unbindKeydownHandler&&a.renderTo&&a.unbindKeydownHandler();a.unbindBlurHandler&&a.unbindBlurHandler()}))})})(v)}); |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Annotations module | ||
@@ -9,21 +9,21 @@ | ||
*/ | ||
(function(n){"object"===typeof module&&module.exports?module.exports=n:n(Highcharts)})(function(n){(function(f){var l=f.merge,n=f.addEvent,u=f.extend,m=f.each,D=f.isString,y=f.isNumber,t=f.defined,E=f.isObject,F=f.inArray,v=f.erase,G=f.find,H=f.format,w=f.pick,z=f.objectEach,I=f.uniqueKey,J=f.doc,K=f.splat,L=f.destroyObjectProperties,M=f.grep,A=f.Tooltip.prototype,N=f.Series.prototype,x=f.Chart.prototype,O={arrow:{tagName:"marker",render:!1,id:"arrow",refY:5,refX:5,markerWidth:10,markerHeight:10, | ||
children:[{tagName:"path",d:"M 0 0 L 10 5 L 0 10 Z",strokeWidth:0}]}},p={markerSetter:function(a){return function(b){this.attr(a,"url(#"+b+")")}}};u(p,{markerEndSetter:p.markerSetter("marker-end"),markerStartSetter:p.markerSetter("marker-start")});f.SVGRenderer.prototype.definition=function(a){function b(a,d){var e;m(K(a),function(a){var g=c.createElement(a.tagName),f={};z(a,function(a,b){"tagName"!==b&&"children"!==b&&"textContent"!==b&&(f[b]=a)});g.attr(f);g.add(d||c.defs);a.textContent&&g.element.appendChild(J.createTextNode(a.textContent)); | ||
b(a.children||[],g);e=g});return e}var c=this;return b(a)};f.SVGRenderer.prototype.addMarker=function(a,b){var c={id:a},e={stroke:b.color||"none",fill:b.color||"rgba(0, 0, 0, 0.75)"};c.children=f.map(b.children,function(a){return l(e,a)});b=this.definition(l({markerWidth:20,markerHeight:20,refX:0,refY:0,orient:"auto"},b,c));b.id=a;return b};var B=f.MockPoint=function(a,b){this.mock=!0;this.series={visible:!0,chart:a,getPlotBox:N.getPlotBox};this.init(a,b)},P=f.mockPoint=function(a,b){return new B(a, | ||
b)};B.prototype={init:function(a,b){var c=b.xAxis,c=t(c)?a.xAxis[c]||a.get(c):null,e=b.yAxis;a=t(e)?a.yAxis[e]||a.get(e):null;c?(this.x=b.x,this.series.xAxis=c):this.plotX=b.x;a?(this.y=b.y,this.series.yAxis=a):this.plotY=b.y},translate:function(){var a=this.series,b=a.xAxis,a=a.yAxis,c;c=!0;b&&(this.plotX=c=b.toPixels(this.x,!0),c=0<=c&&c<=b.len);a&&(this.plotY=b=a.toPixels(this.y,!0),c=c&&0<=b&&b<=a.len);this.isInside=c},alignToBox:function(a){a&&this.translate();a=this.plotX;var b=this.plotY,c; | ||
this.series.chart.inverted&&(c=a,a=b,b=c);return[a,b,0,0]},getLabelConfig:function(){return{x:this.x,y:this.y,point:this}}};f.defaultOptions.annotations=[];var C=f.Annotation=function(a,b){this.chart=a;this.labels=[];this.shapes=[];this.options=l(this.defaultOptions,b);this.init(a,b)};C.prototype={shapesWithoutBackground:["connector"],attrsMap:{backgroundColor:"fill",borderColor:"stroke",borderWidth:"stroke-width",dashStyle:"dashstyle",strokeWidth:"stroke-width",stroke:"stroke",fill:"fill",zIndex:"zIndex", | ||
width:"width",height:"height",borderRadius:"r",r:"r",padding:"padding"},defaultOptions:{visible:!0,labelOptions:{align:"center",allowOverlap:!1,backgroundColor:"rgba(0, 0, 0, 0.75)",borderColor:"black",borderRadius:3,borderWidth:1,className:"",crop:!1,formatter:function(){return t(this.y)?this.y:"Annotation label"},overflow:"justify",padding:5,shadow:!1,shape:"callout",style:{fontSize:"11px",fontWeight:"normal",color:"contrast"},useHTML:!1,verticalAlign:"bottom",x:0,y:-16},shapeOptions:{stroke:"rgba(0, 0, 0, 0.75)", | ||
strokeWidth:1,fill:"rgba(0, 0, 0, 0.75)",r:0},zIndex:6},init:function(){var a=this;m(this.options.labels||[],this.initLabel,this);m(this.options.shapes||[],this.initShape,this);this.labelCollector=function(){return M(a.labels,function(a){return!a.options.allowOverlap})};this.chart.labelCollectors.push(this.labelCollector)},redraw:function(){this.group||this.render();this.redrawItems(this.shapes);this.redrawItems(this.labels)},redrawItems:function(a){for(var b=a.length;b--;)this.redrawItem(a[b])}, | ||
render:function(){var a=this.chart.renderer,b=this.group=a.g("annotation").attr({zIndex:this.options.zIndex,visibility:this.options.visible?"visible":"hidden"}).add();this.shapesGroup=a.g("annotation-shapes").add(b);this.labelsGroup=a.g("annotation-labels").attr({translateX:0,translateY:0}).add(b);this.shapesGroup.clip(this.chart.plotBoxClip)},setVisible:function(a){var b=this.options;a=w(a,!b.visible);this.group.attr({visibility:a?"visible":"hidden"});b.visible=a},destroy:function(){var a=this.chart; | ||
v(this.chart.labelCollectors,this.labelCollector);m(this.labels,function(a){a.destroy()});m(this.shapes,function(a){a.destroy()});L(this,a)},initShape:function(a){var b=this.chart.renderer;a=l(this.options.shapeOptions,a);var c=this.attrsFromOptions(a),e=b[a.type]?a.type:"rect",b=b[e](0,-9E9,0,0);b.points=[];b.type=e;b.options=a;b.itemType="shape";"path"===e&&u(b,{markerStartSetter:p.markerStartSetter,markerEndSetter:p.markerEndSetter,markerStart:p.markerStart,markerEnd:p.markerEnd});b.attr(c);a.className&& | ||
b.addClass(a.className);this.shapes.push(b)},initLabel:function(a){a=l(this.options.labelOptions,a);var b=this.attrsFromOptions(a),c=this.chart.renderer.label("",0,-9E9,a.shape,null,null,a.useHTML,null,"annotation-label");c.points=[];c.options=a;c.itemType="label";c.labelrank=a.labelrank;c.annotation=this;c.attr(b);b=a.style;"contrast"===b.color&&(b.color=this.chart.renderer.getContrast(-1<F(a.shape,this.shapesWithoutBackground)?"#FFFFFF":a.backgroundColor));c.css(b).shadow(a.shadow);a.className&& | ||
c.addClass(a.className);this.labels.push(c)},redrawItem:function(a){var b=this.linkPoints(a),c=a.options,e,d=this.chart.time;b.length?(a.parentGroup||this.renderItem(a),"label"===a.itemType&&(e=c.format||c.text,a.attr({text:e?H(e,b[0].getLabelConfig(),d):c.formatter.call(b[0])})),"path"===a.type?this.redrawPath(a):this.alignItem(a,!a.placed)):this.destroyItem(a)},destroyItem:function(a){v(this[a.itemType+"s"],a);a.destroy()},pointItem:function(a,b){b&&null!==b.series||(E(a)?b=P(this.chart,a):D(a)&& | ||
(b=this.chart.get(a)||null));return b},linkPoints:function(a){var b=a.options.points||a.options.point&&f.splat(a.options.point),c=a.points,e=b&&b.length,d,r;for(d=0;d<e;d++){r=this.pointItem(b[d],c[d]);if(!r)return a.points=[];c[d]=r}return c},alignItem:function(a,b){var c=this.itemAnchor(a,a.points[0]),e=this.itemPosition(a,c);e?(a.alignAttr=e,a.placed=!0,e.anchorX=c.absolutePosition.x,e.anchorY=c.absolutePosition.y,a[b?"attr":"animate"](e)):(a.placed=!1,a.attr({x:0,y:-9E9}))},redrawPath:function(a, | ||
b){var c=a.points,e=a["stroke-width"]||1,d=["M"],f=0,h=0,g=c&&c.length,k,q;if(g){do q=c[f],k=this.itemAnchor(a,q).absolutePosition,d[++h]=k.x,d[++h]=k.y,k=h%5,0===k&&(d[k+1]===d[k+4]&&(d[k+1]=d[k+4]=Math.round(d[k+1])-e%2/2),d[k+2]===d[k+5]&&(d[k+2]=d[k+5]=Math.round(d[k+2])+e%2/2)),f<g-1&&(d[++h]="L"),q=q.series.visible;while(++f<g&&q)}if(q)a[b?"attr":"animate"]({d:d});else a.attr({d:"M 0 -9000000000"});a.placed=q},renderItem:function(a){a.add("label"===a.itemType?this.labelsGroup:this.shapesGroup); | ||
this.setItemMarkers(a)},setItemMarkers:function(a){var b=a.options,c=this.chart,e=c.options.defs,d=b.fill,f=t(d)&&"none"!==d?d:b.stroke;m(["markerStart","markerEnd"],function(d){var g=b[d],k,h,r;if(g){for(r in e)if(k=e[r],g===k.id&&"marker"===k.tagName){h=k;break}h&&(g=a[d]=c.renderer.addMarker((b.id||I())+"-"+h.id,l(h,{color:f})),a.attr(d,g.attr("id")))}})},itemAnchor:function(a,b){a=b.series.getPlotBox();b=b.mock?b.alignToBox(!0):A.getAnchor.call({chart:this.chart},b);b={x:b[0],y:b[1],height:b[2]|| | ||
0,width:b[3]||0};return{relativePosition:b,absolutePosition:l(b,{x:b.x+a.translateX,y:b.y+a.translateY})}},itemPosition:function(a,b){var c=this.chart,e=a.points[0],d=a.options,f=b.absolutePosition,h=b.relativePosition,g;if(b=e.series.visible&&!1!==e.isInside&&(e.mock||e.graphic))t(d.distance)||d.positioner?g=(d.positioner||A.getPosition).call({chart:c,distance:w(d.distance,16)},a.width,a.height,{plotX:h.x,plotY:h.y,negative:e.negative,ttBelow:e.ttBelow,h:h.height||h.width}):(e={x:f.x,y:f.y,width:0, | ||
height:0},g=this.alignedPosition(u(d,{width:a.width,height:a.height}),e),"justify"===a.options.overflow&&(g=this.alignedPosition(this.justifiedOptions(a,d,g),e))),d.crop&&(d=g.x-c.plotLeft,e=g.y-c.plotTop,b=c.isInsidePlot(d,e)&&c.isInsidePlot(d+a.width,e+a.height));return b?g:null},alignedPosition:function(a,b){var c=a.align,e=a.verticalAlign,d=(b.x||0)+(a.x||0),f=(b.y||0)+(a.y||0),h,g;"right"===c?h=1:"center"===c&&(h=2);h&&(d+=(b.width-(a.width||0))/h);"bottom"===e?g=1:"middle"===e&&(g=2);g&&(f+= | ||
(b.height-(a.height||0))/g);return{x:Math.round(d),y:Math.round(f)}},justifiedOptions:function(a,b,c){var e=this.chart,d=b.align,f=b.verticalAlign,h=a.box?0:a.padding||0,g=a.getBBox();a={align:d,verticalAlign:f,x:b.x,y:b.y,width:a.width,height:a.height};b=c.x-e.plotLeft;var k=c.y-e.plotTop;c=b+h;0>c&&("right"===d?a.align="left":a.x=-c);c=b+g.width-h;c>e.plotWidth&&("left"===d?a.align="right":a.x=e.plotWidth-c);c=k+h;0>c&&("bottom"===f?a.verticalAlign="top":a.y=-c);c=k+g.height-h;c>e.plotHeight&&("top"=== | ||
f?a.verticalAlign="bottom":a.y=e.plotHeight-c);return a},attrsFromOptions:function(a){var b=this.attrsMap,c={},e,d;for(e in a)(d=b[e])&&(c[d]=a[e]);return c}};f.extend(x,{addAnnotation:function(a,b){a=new C(this,a);this.annotations.push(a);w(b,!0)&&a.redraw();return a},removeAnnotation:function(a){var b=this.annotations,c=G(b,function(b){return b.options.id===a});c&&(v(b,c),c.destroy())},drawAnnotations:function(){var a=this.plotBoxClip,b=this.plotBox;a?a.attr(b):this.plotBoxClip=this.renderer.clipRect(b); | ||
m(this.annotations,function(a){a.redraw()})}});x.callbacks.push(function(a){a.annotations=[];m(a.options.annotations,function(b){a.addAnnotation(b,!1)});a.drawAnnotations();n(a,"redraw",a.drawAnnotations);n(a,"destroy",function(){var b=a.plotBoxClip;b&&b.destroy&&b.destroy()})});f.wrap(x,"getContainer",function(a){this.options.defs=l(O,this.options.defs||{});a.call(this);z(this.options.defs,function(a){"marker"===a.tagName&&!1!==a.render&&this.renderer.addMarker(a.id,a)},this)});f.SVGRenderer.prototype.symbols.connector= | ||
function(a,b,c,e,d){var f=d&&d.anchorX;d=d&&d.anchorY;var h,g,k=c/2;y(f)&&y(d)&&(h=["M",f,d],g=b-d,0>g&&(g=-e-g),g<c&&(k=f<a+c/2?g:c-g),d>b+e?h.push("L",a+k,b+e):d<b?h.push("L",a+k,b):f<a?h.push("L",a,b+e/2):f>a+c&&h.push("L",a+c,b+e/2));return h||[]}})(n)}); | ||
(function(n){"object"===typeof module&&module.exports?module.exports=n:n(Highcharts)})(function(n){(function(f){var l=f.merge,n=f.addEvent,u=f.extend,m=f.each,D=f.isString,z=f.isNumber,p=f.defined,E=f.isObject,F=f.inArray,v=f.erase,G=f.find,H=f.format,w=f.pick,A=f.objectEach,I=f.uniqueKey,J=f.doc,K=f.splat,L=f.destroyObjectProperties,M=f.grep,B=f.Tooltip.prototype,N=f.Series.prototype,x=f.Chart.prototype,O={arrow:{tagName:"marker",render:!1,id:"arrow",refY:5,refX:5,markerWidth:10,markerHeight:10, | ||
children:[{tagName:"path",d:"M 0 0 L 10 5 L 0 10 Z",strokeWidth:0}]}},q={markerSetter:function(a){return function(b){this.attr(a,"url(#"+b+")")}}};u(q,{markerEndSetter:q.markerSetter("marker-end"),markerStartSetter:q.markerSetter("marker-start")});f.SVGRenderer.prototype.definition=function(a){function b(a,d){var e;m(K(a),function(a){var g=c.createElement(a.tagName),f={};A(a,function(a,b){"tagName"!==b&&"children"!==b&&"textContent"!==b&&(f[b]=a)});g.attr(f);g.add(d||c.defs);a.textContent&&g.element.appendChild(J.createTextNode(a.textContent)); | ||
b(a.children||[],g);e=g});return e}var c=this;return b(a)};f.SVGRenderer.prototype.addMarker=function(a,b){var c={id:a},e={stroke:b.color||"none",fill:b.color||"rgba(0, 0, 0, 0.75)"};c.children=f.map(b.children,function(a){return l(e,a)});b=this.definition(l({markerWidth:20,markerHeight:20,refX:0,refY:0,orient:"auto"},b,c));b.id=a;return b};var y=f.MockPoint=function(a,b){this.mock=!0;this.series={visible:!0,chart:a,getPlotBox:N.getPlotBox};this.init(a,b)},P=f.mockPoint=function(a,b){return new y(a, | ||
b)};y.prototype={init:function(a,b){var c=b.xAxis,c=p(c)?a.xAxis[c]||a.get(c):null,e=b.yAxis;a=p(e)?a.yAxis[e]||a.get(e):null;c?(this.x=b.x,this.series.xAxis=c):this.plotX=b.x;a?(this.y=b.y,this.series.yAxis=a):this.plotY=b.y},translate:function(){var a=this.series,b=a.xAxis,a=a.yAxis;b&&(this.plotX=b.toPixels(this.x,!0));a&&(this.plotY=a.toPixels(this.y,!0));this.isInside=this.isInsidePane()},alignToBox:function(a){a&&this.translate();a=this.plotX;var b=this.plotY,c;this.series.chart.inverted&&(c= | ||
a,a=b,b=c);return[a,b,0,0]},getLabelConfig:function(){return{x:this.x,y:this.y,point:this}},isInsidePane:function(){var a=this.plotX,b=this.plotY,c=this.series.xAxis,e=this.series.yAxis,d=!0;c&&(d=p(a)&&0<=a&&a<=c.len);e&&(d=d&&p(b)&&0<=b&&b<=e.len);return d}};f.defaultOptions.annotations=[];var C=f.Annotation=function(a,b){this.chart=a;this.labels=[];this.shapes=[];this.options=l(this.defaultOptions,b);this.init(a,b)};C.prototype={shapesWithoutBackground:["connector"],attrsMap:{backgroundColor:"fill", | ||
borderColor:"stroke",borderWidth:"stroke-width",dashStyle:"dashstyle",strokeWidth:"stroke-width",stroke:"stroke",fill:"fill",zIndex:"zIndex",width:"width",height:"height",borderRadius:"r",r:"r",padding:"padding"},defaultOptions:{visible:!0,labelOptions:{align:"center",allowOverlap:!1,backgroundColor:"rgba(0, 0, 0, 0.75)",borderColor:"black",borderRadius:3,borderWidth:1,className:"",crop:!1,formatter:function(){return p(this.y)?this.y:"Annotation label"},overflow:"justify",padding:5,shadow:!1,shape:"callout", | ||
style:{fontSize:"11px",fontWeight:"normal",color:"contrast"},useHTML:!1,verticalAlign:"bottom",x:0,y:-16},shapeOptions:{stroke:"rgba(0, 0, 0, 0.75)",strokeWidth:1,fill:"rgba(0, 0, 0, 0.75)",r:0},zIndex:6},init:function(){var a=this;m(this.options.labels||[],this.initLabel,this);m(this.options.shapes||[],this.initShape,this);this.labelCollector=function(){return M(a.labels,function(a){return!a.options.allowOverlap})};this.chart.labelCollectors.push(this.labelCollector)},redraw:function(){this.group|| | ||
this.render();this.redrawItems(this.shapes);this.redrawItems(this.labels)},redrawItems:function(a){for(var b=a.length;b--;)this.redrawItem(a[b])},render:function(){var a=this.chart.renderer,b=this.group=a.g("annotation").attr({zIndex:this.options.zIndex,visibility:this.options.visible?"visible":"hidden"}).add();this.shapesGroup=a.g("annotation-shapes").add(b);this.labelsGroup=a.g("annotation-labels").attr({translateX:0,translateY:0}).add(b);this.shapesGroup.clip(this.chart.plotBoxClip)},setVisible:function(a){var b= | ||
this.options;a=w(a,!b.visible);this.group.attr({visibility:a?"visible":"hidden"});b.visible=a},destroy:function(){var a=this.chart;v(this.chart.labelCollectors,this.labelCollector);m(this.labels,function(a){a.destroy()});m(this.shapes,function(a){a.destroy()});L(this,a)},initShape:function(a){var b=this.chart.renderer;a=l(this.options.shapeOptions,a);var c=this.attrsFromOptions(a),e=b[a.type]?a.type:"rect",b=b[e](0,-9E9,0,0);b.points=[];b.type=e;b.options=a;b.itemType="shape";"path"===e&&u(b,{markerStartSetter:q.markerStartSetter, | ||
markerEndSetter:q.markerEndSetter,markerStart:q.markerStart,markerEnd:q.markerEnd});b.attr(c);a.className&&b.addClass(a.className);this.shapes.push(b)},initLabel:function(a){a=l(this.options.labelOptions,a);var b=this.attrsFromOptions(a),c=this.chart.renderer.label("",0,-9E9,a.shape,null,null,a.useHTML,null,"annotation-label");c.points=[];c.options=a;c.itemType="label";c.labelrank=a.labelrank;c.annotation=this;c.attr(b);b=a.style;"contrast"===b.color&&(b.color=this.chart.renderer.getContrast(-1<F(a.shape, | ||
this.shapesWithoutBackground)?"#FFFFFF":a.backgroundColor));c.css(b).shadow(a.shadow);a.className&&c.addClass(a.className);this.labels.push(c)},redrawItem:function(a){var b=this.linkPoints(a),c=a.options,e,d=this.chart.time;b.length?(a.parentGroup||this.renderItem(a),"label"===a.itemType&&(e=c.format||c.text,a.attr({text:e?H(e,b[0].getLabelConfig(),d):c.formatter.call(b[0])})),"path"===a.type?this.redrawPath(a):this.alignItem(a,!a.placed)):this.destroyItem(a)},destroyItem:function(a){v(this[a.itemType+ | ||
"s"],a);a.destroy()},pointItem:function(a,b){b&&null!==b.series||(E(a)?b=P(this.chart,a):D(a)&&(b=this.chart.get(a)||null));return b},linkPoints:function(a){var b=a.options.points||a.options.point&&f.splat(a.options.point),c=a.points,e=b&&b.length,d,t;for(d=0;d<e;d++){t=this.pointItem(b[d],c[d]);if(!t)return a.points=[];c[d]=t}return c},alignItem:function(a,b){var c=this.itemAnchor(a,a.points[0]),e=this.itemPosition(a,c);e?(a.alignAttr=e,a.placed=!0,e.anchorX=c.absolutePosition.x,e.anchorY=c.absolutePosition.y, | ||
a[b?"attr":"animate"](e)):(a.placed=!1,a.attr({x:0,y:-9E9}))},redrawPath:function(a,b){var c=a.points,e=a["stroke-width"]||1,d=["M"],f=0,h=0,g=c&&c.length,k,r;if(g){do r=c[f],k=this.itemAnchor(a,r).absolutePosition,d[++h]=k.x,d[++h]=k.y,k=h%5,0===k&&(d[k+1]===d[k+4]&&(d[k+1]=d[k+4]=Math.round(d[k+1])-e%2/2),d[k+2]===d[k+5]&&(d[k+2]=d[k+5]=Math.round(d[k+2])+e%2/2)),f<g-1&&(d[++h]="L"),r=r.series.visible;while(++f<g&&r)}if(r)a[b?"attr":"animate"]({d:d});else a.attr({d:"M 0 -9000000000"});a.placed= | ||
r},renderItem:function(a){a.add("label"===a.itemType?this.labelsGroup:this.shapesGroup);this.setItemMarkers(a)},setItemMarkers:function(a){var b=a.options,c=this.chart,e=c.options.defs,d=b.fill,f=p(d)&&"none"!==d?d:b.stroke;m(["markerStart","markerEnd"],function(d){var g=b[d],k,h,t;if(g){for(t in e)if(k=e[t],g===k.id&&"marker"===k.tagName){h=k;break}h&&(g=a[d]=c.renderer.addMarker((b.id||I())+"-"+h.id,l(h,{color:f})),a.attr(d,g.attr("id")))}})},itemAnchor:function(a,b){a=b.series.getPlotBox();b=b.mock? | ||
b.alignToBox(!0):B.getAnchor.call({chart:this.chart},b);b={x:b[0],y:b[1],height:b[2]||0,width:b[3]||0};return{relativePosition:b,absolutePosition:l(b,{x:b.x+a.translateX,y:b.y+a.translateY})}},itemPosition:function(a,b){var c=this.chart,e=a.points[0],d=a.options,f=b.absolutePosition,h=b.relativePosition,g;if(b=e.series.visible&&y.prototype.isInsidePane.call(e))p(d.distance)||d.positioner?g=(d.positioner||B.getPosition).call({chart:c,distance:w(d.distance,16)},a.width,a.height,{plotX:h.x,plotY:h.y, | ||
negative:e.negative,ttBelow:e.ttBelow,h:h.height||h.width}):(e={x:f.x,y:f.y,width:0,height:0},g=this.alignedPosition(u(d,{width:a.width,height:a.height}),e),"justify"===a.options.overflow&&(g=this.alignedPosition(this.justifiedOptions(a,d,g),e))),d.crop&&(d=g.x-c.plotLeft,e=g.y-c.plotTop,b=c.isInsidePlot(d,e)&&c.isInsidePlot(d+a.width,e+a.height));return b?g:null},alignedPosition:function(a,b){var c=a.align,e=a.verticalAlign,d=(b.x||0)+(a.x||0),f=(b.y||0)+(a.y||0),h,g;"right"===c?h=1:"center"===c&& | ||
(h=2);h&&(d+=(b.width-(a.width||0))/h);"bottom"===e?g=1:"middle"===e&&(g=2);g&&(f+=(b.height-(a.height||0))/g);return{x:Math.round(d),y:Math.round(f)}},justifiedOptions:function(a,b,c){var e=this.chart,d=b.align,f=b.verticalAlign,h=a.box?0:a.padding||0,g=a.getBBox();a={align:d,verticalAlign:f,x:b.x,y:b.y,width:a.width,height:a.height};b=c.x-e.plotLeft;var k=c.y-e.plotTop;c=b+h;0>c&&("right"===d?a.align="left":a.x=-c);c=b+g.width-h;c>e.plotWidth&&("left"===d?a.align="right":a.x=e.plotWidth-c);c=k+ | ||
h;0>c&&("bottom"===f?a.verticalAlign="top":a.y=-c);c=k+g.height-h;c>e.plotHeight&&("top"===f?a.verticalAlign="bottom":a.y=e.plotHeight-c);return a},attrsFromOptions:function(a){var b=this.attrsMap,c={},e,d;for(e in a)(d=b[e])&&(c[d]=a[e]);return c}};f.extend(x,{addAnnotation:function(a,b){a=new C(this,a);this.annotations.push(a);w(b,!0)&&a.redraw();return a},removeAnnotation:function(a){var b=this.annotations,c=G(b,function(b){return b.options.id===a});c&&(v(b,c),c.destroy())},drawAnnotations:function(){var a= | ||
this.plotBoxClip,b=this.plotBox;a?a.attr(b):this.plotBoxClip=this.renderer.clipRect(b);m(this.annotations,function(a){a.redraw()})}});x.callbacks.push(function(a){a.annotations=[];m(a.options.annotations,function(b){a.addAnnotation(b,!1)});a.drawAnnotations();n(a,"redraw",a.drawAnnotations);n(a,"destroy",function(){var b=a.plotBoxClip;b&&b.destroy&&b.destroy()})});f.wrap(x,"getContainer",function(a){this.options.defs=l(O,this.options.defs||{});a.call(this);A(this.options.defs,function(a){"marker"=== | ||
a.tagName&&!1!==a.render&&this.renderer.addMarker(a.id,a)},this)});f.SVGRenderer.prototype.symbols.connector=function(a,b,c,e,d){var f=d&&d.anchorX;d=d&&d.anchorY;var h,g,k=c/2;z(f)&&z(d)&&(h=["M",f,d],g=b-d,0>g&&(g=-e-g),g<c&&(k=f<a+c/2?g:c-g),d>b+e?h.push("L",a+k,b+e):d<b?h.push("L",a+k,b):f<a?h.push("L",a,b+e/2):f>a+c&&h.push("L",a+c,b+e/2));return h||[]}})(n)}); |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* Annotations module | ||
@@ -23,3 +23,2 @@ * | ||
*/ | ||
/* eslint max-len: 0 */ | ||
@@ -305,20 +304,13 @@ var merge = H.merge, | ||
xAxis = series.xAxis, | ||
yAxis = series.yAxis, | ||
plotX = this.plotX, | ||
plotY = this.plotY, | ||
isInside = true; | ||
yAxis = series.yAxis; | ||
if (xAxis) { | ||
this.plotX = plotX = xAxis.toPixels(this.x, true); | ||
isInside = plotX >= 0 && plotX <= xAxis.len; | ||
this.plotX = xAxis.toPixels(this.x, true); | ||
} | ||
if (yAxis) { | ||
this.plotY = plotY = yAxis.toPixels(this.y, true); | ||
isInside = isInside && plotY >= 0 && plotY <= yAxis.len; | ||
this.plotY = yAxis.toPixels(this.y, true); | ||
} | ||
this.isInside = isInside; | ||
this.isInside = this.isInsidePane(); | ||
}, | ||
@@ -364,5 +356,8 @@ | ||
* @return {Object} labelConfig - label config object | ||
* @return {Number|undefined} labelConfig.x - x value translated to x axis scale | ||
* @return {Number|undefined} labelConfig.y - y value translated to y axis scale | ||
* @return {MockPoint} labelConfig.point - the instance of the point | ||
* @return {Number|undefined} labelConfig.x | ||
* X value translated to x axis scale | ||
* @return {Number|undefined} labelConfig.y | ||
* Y value translated to y axis scale | ||
* @return {MockPoint} labelConfig.point | ||
* The instance of the point | ||
*/ | ||
@@ -375,2 +370,23 @@ getLabelConfig: function() { | ||
}; | ||
}, | ||
isInsidePane: function() { | ||
var plotX = this.plotX, | ||
plotY = this.plotY, | ||
xAxis = this.series.xAxis, | ||
yAxis = this.series.yAxis, | ||
isInside = true; | ||
if (xAxis) { | ||
isInside = defined(plotX) && plotX >= 0 && plotX <= xAxis.len; | ||
} | ||
if (yAxis) { | ||
isInside = | ||
isInside && | ||
defined(plotY) && | ||
plotY >= 0 && plotY <= yAxis.len; | ||
} | ||
return isInside; | ||
} | ||
@@ -389,4 +405,4 @@ }; | ||
/** | ||
* An annotation class which serves as a container for items like labels or shapes. | ||
* Created items are positioned on the chart either by linking them to | ||
* An annotation class which serves as a container for items like labels or | ||
* shapes. Created items are positioned on the chart either by linking them to | ||
* existing points or created mock points | ||
@@ -544,3 +560,4 @@ * | ||
/** | ||
* Whether to hide the annotation's label that is outside the plot area. | ||
* Whether to hide the annotation's label that is outside the plot | ||
* area. | ||
* | ||
@@ -553,6 +570,17 @@ * @sample highcharts/annotations/label-crop-overflow/ | ||
/** | ||
* The label's pixel distance from the point. | ||
* | ||
* @type {Number} | ||
* @sample highcharts/annotations/label-position/ | ||
* Set labels position | ||
* @default undefined | ||
* @apioption annotations.labelOptions.distance | ||
**/ | ||
/** | ||
* A [format](https://www.highcharts.com/docs/chart-concepts/labels-and-string-formatting) string for the data label. | ||
* | ||
* @type {String} | ||
* @see [plotOptions.series.dataLabels.format](plotOptions.series.dataLabels.format.html) | ||
* @see [plotOptions.series.dataLabels.format](plotOptions. | ||
* series.dataLabels.format.html) | ||
* @sample highcharts/annotations/label-text/ | ||
@@ -576,5 +604,6 @@ * Set labels text | ||
/** | ||
* Callback JavaScript function to format the annotation's label. Note that | ||
* if a `format` or `text` are defined, the format or text take precedence | ||
* and the formatter is ignored. `This` refers to a point object. | ||
* Callback JavaScript function to format the annotation's label. | ||
* Note that if a `format` or `text` are defined, the format or text | ||
* take precedence and the formatter is ignored. `This` refers to a | ||
* point object. | ||
* | ||
@@ -637,3 +666,4 @@ * @type {Function} | ||
* Set labels graphic options | ||
* @see [plotOptions.series.dataLabels.style](plotOptions.series.dataLabels.style.html) | ||
* @see [plotOptions.series.dataLabels.style](plotOptions.series. | ||
* dataLabels.style.html) | ||
**/ | ||
@@ -647,4 +677,4 @@ style: { | ||
/** | ||
* Whether to [use HTML](http://www.highcharts.com/docs/chart-concepts/labels- | ||
* and-string-formatting#html) to render the annotation's label. | ||
* Whether to [use HTML](http://www.highcharts.com/docs/chart-concepts/labels-and-string-formatting#html) | ||
* to render the annotation's label. | ||
* | ||
@@ -685,17 +715,8 @@ * @type {Boolean} | ||
y: -16 | ||
/** | ||
* The label's pixel distance from the point. | ||
* | ||
* @type {Number} | ||
* @sample highcharts/annotations/label-position/ | ||
* Set labels position | ||
* @default undefined | ||
* @apioption annotations.labelOptions.distance | ||
**/ | ||
}, | ||
/** | ||
* An array of labels for the annotation. For options that apply to multiple | ||
* labels, they can be added to the [labelOptions](annotations.labelOptions.html). | ||
* An array of labels for the annotation. For options that apply to | ||
* multiple labels, they can be added to the | ||
* [labelOptions](annotations.labelOptions.html). | ||
* | ||
@@ -709,5 +730,5 @@ * @type {Array<Object>} | ||
* This option defines the point to which the label will be connected. | ||
* It can be either the point which exists in the series - it is referenced | ||
* by the point's id - or a new point with defined x, y properies | ||
* and optionally axes. | ||
* It can be either the point which exists in the series - it is | ||
* referenced by the point's id - or a new point with defined x, y | ||
* properies and optionally axes. | ||
* | ||
@@ -757,3 +778,58 @@ * @type {String|Object} | ||
/** | ||
* An array of shapes for the annotation. For options that apply to | ||
* multiple shapes, then can be added to the | ||
* [shapeOptions](annotations.shapeOptions.html). | ||
* | ||
* @type {Array<Object>} | ||
* @extends annotations.shapeOptions | ||
* @apioption annotations.shapes | ||
*/ | ||
/** | ||
* This option defines the point to which the shape will be connected. | ||
* It can be either the point which exists in the series - it is | ||
* referenced by the point's id - or a new point with defined x, y | ||
* properties and optionally axes. | ||
* | ||
* @type {String|Object} | ||
* @extends annotations.labels.point | ||
* @apioption annotations.shapes.point | ||
*/ | ||
/** | ||
* An array of points for the shape. This option is available for shapes | ||
* which can use multiple points such as path. A point can be either | ||
* a point object or a point's id. | ||
* | ||
* @type {Array} | ||
* @see [annotations.shapes.point](annotations.shapes.point.html) | ||
* @apioption annotations.shapes.points | ||
*/ | ||
/** | ||
* Id of the marker which will be drawn at the final vertex of the path. | ||
* Custom markers can be defined in defs property. | ||
* | ||
* @type {String} | ||
* @see [defs.markers](defs.markers.html) | ||
* @sample highcharts/annotations/custom-markers/ | ||
* Define a custom marker for annotations | ||
* @apioption annotations.shapes.markerEnd | ||
**/ | ||
/** | ||
* Id of the marker which will be drawn at the first vertex of the path. | ||
* Custom markers can be defined in defs property. | ||
* | ||
* @type {String} | ||
* @see [defs.markers](defs.markers.html) | ||
* @sample {highcharts} highcharts/annotations/custom-markers/ | ||
* Define a custom marker for annotations | ||
* @apioption annotations.shapes.markerStart | ||
**/ | ||
/** | ||
* Options for annotation's shapes. Each shape inherits options | ||
@@ -764,6 +840,24 @@ * from the shapeOptions object. An option from the shapeOptions can be | ||
* @type {Object} | ||
**/ | ||
*/ | ||
shapeOptions: { | ||
/** | ||
* The width of the shape. | ||
* | ||
* @type {Number} | ||
* @sample highcharts/annotations/shape/ | ||
* Basic shape annotation | ||
* @apioption annotations.shapeOptions.width | ||
**/ | ||
/** | ||
* The height of the shape. | ||
* | ||
* @type {Number} | ||
* @sample highcharts/annotations/shape/ | ||
* Basic shape annotation | ||
* @apioption annotations.shapeOptions.height | ||
**/ | ||
/** | ||
* The color of the shape's stroke. | ||
@@ -811,20 +905,2 @@ * | ||
r: 0 | ||
/** | ||
* The width of the shape. | ||
* | ||
* @type {Number} | ||
* @sample highcharts/annotations/shape/ | ||
* Basic shape annotation | ||
* @apioption annotations.shapeOptions.width | ||
**/ | ||
/** | ||
* The height of the shape. | ||
* | ||
* @type {Number} | ||
* @sample highcharts/annotations/shape/ | ||
* Basic shape annotation | ||
* @apioption annotations.shapeOptions.height | ||
**/ | ||
}, | ||
@@ -839,54 +915,2 @@ | ||
zIndex: 6 | ||
/** | ||
* An array of shapes for the annotation. For options that apply to multiple | ||
* shapes, then can be added to the [shapeOptions](annotations.shapeOptions.html). | ||
* | ||
* @type {Array<Object>} | ||
* @extends annotations.shapeOptions | ||
* @apioption annotations.shapes | ||
*/ | ||
/** | ||
* This option defines the point to which the shape will be connected. | ||
* It can be either the point which exists in the series - it is referenced | ||
* by the point's id - or a new point with defined x, y properties | ||
* and optionally axes. | ||
* | ||
* @type {String|Object} | ||
* @extends annotations.labels.point | ||
* @apioption annotations.shapes.point | ||
*/ | ||
/** | ||
* An array of points for the shape. This option is available for shapes | ||
* which can use multiple points such as path. A point can be either | ||
* a point object or a point's id. | ||
* | ||
* @type {Array} | ||
* @see [annotations.shapes.point](annotations.shapes.point.html) | ||
* @apioption annotations.shapes.points | ||
*/ | ||
/** | ||
* Id of the marker which will be drawn at the final vertex of the path. | ||
* Custom markers can be defined in defs property. | ||
* | ||
* @type {String} | ||
* @see [defs.markers](defs.markers.html) | ||
* @sample highcharts/annotations/custom-markers/ | ||
* Define a custom marker for annotations | ||
* @apioption annotations.shapes.markerEnd | ||
**/ | ||
/** | ||
* Id of the marker which will be drawn at the first vertex of the path. | ||
* Custom markers can be defined in defs property. | ||
* | ||
* @type {String} | ||
* @see [defs.markers](defs.markers.html) | ||
* @sample {highcharts} highcharts/annotations/custom-markers/ | ||
* Define a custom marker for annotations | ||
* @apioption annotations.shapes.markerStart | ||
**/ | ||
}, | ||
@@ -919,4 +943,4 @@ | ||
/** | ||
* Main method for drawing an annotation, it is called everytime on chart redraw | ||
* and once on chart's load | ||
* Main method for drawing an annotation, it is called everytime on chart | ||
* redraw and once on chart's load | ||
* | ||
@@ -1206,3 +1230,4 @@ * @function #redraw | ||
/** | ||
* Linking item with the point or points and returning an array of linked points | ||
* Linking item with the point or points and returning an array of linked | ||
* points. | ||
* | ||
@@ -1220,3 +1245,6 @@ * @function #linkPoints | ||
linkPoints: function(item) { | ||
var pointsOptions = item.options.points || (item.options.point && H.splat(item.options.point)), | ||
var pointsOptions = ( | ||
item.options.points || | ||
(item.options.point && H.splat(item.options.point)) | ||
), | ||
points = item.points, | ||
@@ -1247,3 +1275,4 @@ len = pointsOptions && pointsOptions.length, | ||
* @param {Object} item | ||
* @param {Boolean} isNew - if the label is re-positioned (is not new) it is animated | ||
* @param {Boolean} isNew | ||
* If the label is re-positioned (is not new) it is animated | ||
* @return {undefined} | ||
@@ -1294,12 +1323,17 @@ */ | ||
// crisping line, it might be replaced with Renderer.prototype.crispLine | ||
// but it requires creating many temporary arrays | ||
// Crisping line, it might be replaced with | ||
// Renderer.prototype.crispLine but it requires creating many | ||
// temporary arrays | ||
crispSegmentIndex = dIndex % 5; | ||
if (crispSegmentIndex === 0) { | ||
if (d[crispSegmentIndex + 1] === d[crispSegmentIndex + 4]) { | ||
d[crispSegmentIndex + 1] = d[crispSegmentIndex + 4] = Math.round(d[crispSegmentIndex + 1]) - (strokeWidth % 2 / 2); | ||
d[crispSegmentIndex + 1] = d[crispSegmentIndex + 4] = | ||
Math.round(d[crispSegmentIndex + 1]) - | ||
(strokeWidth % 2 / 2); | ||
} | ||
if (d[crispSegmentIndex + 2] === d[crispSegmentIndex + 5]) { | ||
d[crispSegmentIndex + 2] = d[crispSegmentIndex + 5] = Math.round(d[crispSegmentIndex + 2]) + (strokeWidth % 2 / 2); | ||
d[crispSegmentIndex + 2] = d[crispSegmentIndex + 5] = | ||
Math.round(d[crispSegmentIndex + 2]) + | ||
(strokeWidth % 2 / 2); | ||
} | ||
@@ -1333,3 +1367,7 @@ } | ||
renderItem: function(item) { | ||
item.add(item.itemType === 'label' ? this.labelsGroup : this.shapesGroup); | ||
item.add( | ||
item.itemType === 'label' ? | ||
this.labelsGroup : | ||
this.shapesGroup | ||
); | ||
@@ -1344,3 +1382,5 @@ this.setItemMarkers(item); | ||
fill = itemOptions.fill, | ||
color = defined(fill) && fill !== 'none' ? fill : itemOptions.stroke, | ||
color = defined(fill) && fill !== 'none' ? | ||
fill : | ||
itemOptions.stroke, | ||
@@ -1366,3 +1406,4 @@ | ||
marker = item[markerType] = chart.renderer.addMarker( | ||
(itemOptions.id || uniqueKey()) + '-' + predefinedMarker.id, | ||
(itemOptions.id || uniqueKey()) + '-' + | ||
predefinedMarker.id, | ||
merge(predefinedMarker, { | ||
@@ -1400,4 +1441,6 @@ color: color | ||
* @return {Object} anchor | ||
* @return {AnchorPosition} anchor.relativePosition - relative to the plot area position | ||
* @return {AnchorPosition} anchor.absolutePosition - absolute position | ||
* @return {AnchorPosition} anchor.relativePosition | ||
* Relative to the plot area position | ||
* @return {AnchorPosition} anchor.absolutePosition | ||
* Absolute position | ||
*/ | ||
@@ -1454,4 +1497,3 @@ itemAnchor: function(item, point) { | ||
point.series.visible && | ||
point.isInside !== false && | ||
(point.mock || point.graphic); | ||
MockPoint.prototype.isInsidePane.call(point); | ||
@@ -1461,3 +1503,6 @@ if (showItem) { | ||
if (defined(itemOptions.distance) || itemOptions.positioner) { | ||
itemPosition = (itemOptions.positioner || tooltipPrototype.getPosition).call({ | ||
itemPosition = ( | ||
itemOptions.positioner || | ||
tooltipPrototype.getPosition | ||
).call({ | ||
chart: chart, | ||
@@ -1472,3 +1517,4 @@ distance: pick(itemOptions.distance, 16) | ||
ttBelow: point.ttBelow, | ||
h: anchorRelativePosition.height || anchorRelativePosition.width | ||
h: anchorRelativePosition.height || | ||
anchorRelativePosition.width | ||
} | ||
@@ -1564,5 +1610,6 @@ ); | ||
/** | ||
* Returns new alignment options for a label if the label is outside the plot area. | ||
* It is almost a one-to-one copy from Series.prototype.justifyDataLabel | ||
* except it does not mutate the label and it works with absolute instead of relative position | ||
* Returns new alignment options for a label if the label is outside the | ||
* plot area. It is almost a one-to-one copy from | ||
* Series.prototype.justifyDataLabel except it does not mutate the label and | ||
* it works with absolute instead of relative position. | ||
* | ||
@@ -1569,0 +1616,0 @@ * @function #justifiedOptions |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Boost module | ||
@@ -4,0 +4,0 @@ |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* Boost module | ||
@@ -29,3 +29,2 @@ * | ||
*/ | ||
/* eslint max-len: 0 */ | ||
@@ -61,3 +60,7 @@ var win = H.win, | ||
if (plotY !== undefined && !isNaN(plotY) && point.y !== null) { | ||
if ( | ||
plotY !== undefined && | ||
!isNaN(plotY) && | ||
point.y !== null | ||
) { | ||
shapeArgs = point.shapeArgs; | ||
@@ -70,3 +73,8 @@ | ||
ctx.fillStyle = pointAttr.fill; | ||
ctx.fillRect(shapeArgs.x, shapeArgs.y, shapeArgs.width, shapeArgs.height); | ||
ctx.fillRect( | ||
shapeArgs.x, | ||
shapeArgs.y, | ||
shapeArgs.width, | ||
shapeArgs.height | ||
); | ||
} | ||
@@ -78,6 +86,9 @@ }); | ||
} else { | ||
this.chart.showLoading('Your browser doesn\'t support HTML5 canvas, <br>please use a modern browser'); | ||
this.chart.showLoading( | ||
'Your browser doesn\'t support HTML5 canvas, <br>' + | ||
'please use a modern browser'); | ||
// Uncomment this to provide low-level (slow) support in oldIE. It will cause script errors on | ||
// charts with more than a few thousand points. | ||
// Uncomment this to provide low-level (slow) support in oldIE. | ||
// It will cause script errors on charts with more than a few | ||
// thousand points. | ||
// arguments[0].call(this); | ||
@@ -92,4 +103,4 @@ } | ||
/** | ||
* Create a hidden canvas to draw the graph on. The contents is later copied over | ||
* to an SVG image element. | ||
* Create a hidden canvas to draw the graph on. The contents is later | ||
* copied over to an SVG image element. | ||
*/ | ||
@@ -246,3 +257,4 @@ getContext: function() { | ||
doFill = this.fill, | ||
isRange = series.pointArrayMap && series.pointArrayMap.join(',') === 'low,high', | ||
isRange = series.pointArrayMap && | ||
series.pointArrayMap.join(',') === 'low,high', | ||
isStacked = !!options.stacking, | ||
@@ -262,3 +274,5 @@ cropStart = series.cropStart || 0, | ||
fillColor = series.fillOpacity ? | ||
new Color(series.color).setOpacity(pick(options.fillOpacity, 0.75)).get() : | ||
new Color(series.color).setOpacity( | ||
pick(options.fillOpacity, 0.75) | ||
).get() : | ||
series.color, | ||
@@ -286,3 +300,7 @@ | ||
if (chart.scroller && series.options.className === 'highcharts-navigator-series') { | ||
if ( | ||
chart.scroller && | ||
series.options.className === | ||
'highcharts-navigator-series' | ||
) { | ||
plotY += chart.scroller.top; | ||
@@ -302,3 +320,9 @@ if (yBottom) { | ||
if (cvsDrawPoint) { | ||
cvsDrawPoint(ctx, clientX, plotY, yBottom, lastPoint); | ||
cvsDrawPoint( | ||
ctx, | ||
clientX, | ||
plotY, | ||
yBottom, | ||
lastPoint | ||
); | ||
} else if (cvsLineTo) { | ||
@@ -311,4 +335,5 @@ cvsLineTo(ctx, clientX, plotY); | ||
// We need to stroke the line for every 1000 pixels. It will crash the browser | ||
// memory use if we stroke too infrequently. | ||
// We need to stroke the line for every 1000 pixels. It will | ||
// crash the browser memory use if we stroke too | ||
// infrequently. | ||
c = c + 1; | ||
@@ -332,4 +357,5 @@ if (c === strokeBatch) { | ||
// The k-d tree requires series points. Reduce the amount of points, since the time to build the | ||
// tree increases exponentially. | ||
// The k-d tree requires series points. Reduce the amount of | ||
// points, since the time to build the tree increases | ||
// exponentially. | ||
if (enableMouseTracking && !pointTaken[kdIndex]) { | ||
@@ -402,3 +428,4 @@ pointTaken[kdIndex] = true; | ||
labelStyle: { | ||
backgroundColor: H.color('#ffffff').setOpacity(0.75).get(), | ||
backgroundColor: H.color('#ffffff') | ||
.setOpacity(0.75).get(), | ||
padding: '1em', | ||
@@ -513,4 +540,5 @@ borderRadius: '0.5em' | ||
} | ||
if (clientX !== lastClientX) { // Add points and reset | ||
if (minI !== undefined) { // then maxI is also a number | ||
// Add points and reset | ||
if (clientX !== lastClientX) { | ||
if (minI !== undefined) { // maxI also a number | ||
plotY = yAxis.toPixels(maxVal, true); | ||
@@ -520,4 +548,12 @@ yBottom = yAxis.toPixels(minVal, true); | ||
clientX, | ||
hasThreshold ? Math.min(plotY, translatedThreshold) : plotY, | ||
hasThreshold ? Math.max(yBottom, translatedThreshold) : yBottom, | ||
hasThreshold ? | ||
Math.min( | ||
plotY, | ||
translatedThreshold | ||
) : plotY, | ||
hasThreshold ? | ||
Math.max( | ||
yBottom, | ||
translatedThreshold | ||
) : yBottom, | ||
i | ||
@@ -567,5 +603,6 @@ ); | ||
// Do not use chart.hideLoading, as it runs JS animation and will be blocked by buildKDTree. | ||
// CSS animation looks good, but then it must be deleted in timeout. If we add the module to core, | ||
// change hideLoading so we can skip this block. | ||
// Do not use chart.hideLoading, as it runs JS animation and | ||
// will be blocked by buildKDTree. CSS animation looks good, but | ||
// then it must be deleted in timeout. If we add the module to | ||
// core, change hideLoading so we can skip this block. | ||
if (loadingShown) { | ||
@@ -585,6 +622,9 @@ extend(loadingDiv.style, { | ||
delete series.buildKDTree; // Go back to prototype, ready to build | ||
// Go back to prototype, ready to build | ||
delete series.buildKDTree; | ||
series.buildKDTree(); | ||
// Don't do async on export, the exportChart, getSVGForExport and getSVG methods are not chained for it. | ||
// Don't do async on export, the exportChart, getSVGForExport and | ||
// getSVG methods are not chained for it. | ||
}, chart.renderer.forExport ? Number.MAX_VALUE : undefined); | ||
@@ -594,10 +634,8 @@ } | ||
/* | ||
wrap(Series.prototype, 'setData', function (proceed) { | ||
if (!this.hasExtremes || !this.hasExtremes(true) || this.type === 'heatmap') { | ||
proceed.apply(this, Array.prototype.slice.call(arguments, 1)); | ||
} | ||
}); | ||
*/ | ||
seriesTypes.scatter.prototype.cvsMarkerCircle = function(ctx, clientX, plotY, r) { | ||
seriesTypes.scatter.prototype.cvsMarkerCircle = function( | ||
ctx, | ||
clientX, | ||
plotY, | ||
r | ||
) { | ||
ctx.moveTo(clientX, plotY); | ||
@@ -608,3 +646,8 @@ ctx.arc(clientX, plotY, r, 0, 2 * Math.PI, false); | ||
// Rect is twice as fast as arc, should be used for small markers | ||
seriesTypes.scatter.prototype.cvsMarkerSquare = function(ctx, clientX, plotY, r) { | ||
seriesTypes.scatter.prototype.cvsMarkerSquare = function( | ||
ctx, | ||
clientX, | ||
plotY, | ||
r | ||
) { | ||
ctx.rect(clientX - r, plotY - r, r * 2, r * 2); | ||
@@ -615,5 +658,16 @@ }; | ||
if (seriesTypes.bubble) { | ||
seriesTypes.bubble.prototype.cvsMarkerCircle = function(ctx, clientX, plotY, r, i) { | ||
seriesTypes.bubble.prototype.cvsMarkerCircle = function( | ||
ctx, | ||
clientX, | ||
plotY, | ||
r, | ||
i | ||
) { | ||
ctx.moveTo(clientX, plotY); | ||
ctx.arc(clientX, plotY, this.radii && this.radii[i], 0, 2 * Math.PI, false); | ||
ctx.arc( | ||
clientX, | ||
plotY, | ||
this.radii && this.radii[i], 0, 2 * Math.PI, | ||
false | ||
); | ||
}; | ||
@@ -620,0 +674,0 @@ seriesTypes.bubble.prototype.cvsStrokeBatch = 1; |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Boost module | ||
@@ -10,34 +10,34 @@ | ||
*/ | ||
(function(A){"object"===typeof module&&module.exports?module.exports=A:A(Highcharts)})(function(A){(function(h){function A(){var a=Array.prototype.slice.call(arguments),d=-Number.MAX_VALUE;p(a,function(a){if("undefined"!==typeof a&&null!==a&&"undefined"!==typeof a.length&&0<a.length)return d=a.length,!0});return d}function N(a){var d=0,c=0,f=H(a.options.boost&&a.options.boost.allowForce,!0),b;if("undefined"!==typeof a.boostForceChartBoost)return a.boostForceChartBoost;if(1<a.series.length)for(var k= | ||
(function(A){"object"===typeof module&&module.exports?module.exports=A:A(Highcharts)})(function(A){(function(h){function A(){var a=Array.prototype.slice.call(arguments),d=-Number.MAX_VALUE;p(a,function(a){if("undefined"!==typeof a&&null!==a&&"undefined"!==typeof a.length&&0<a.length)return d=a.length,!0});return d}function N(a){var d=0,c=0,f=G(a.options.boost&&a.options.boost.allowForce,!0),b;if("undefined"!==typeof a.boostForceChartBoost)return a.boostForceChartBoost;if(1<a.series.length)for(var k= | ||
0;k<a.series.length;k++)b=a.series[k],J[b.type]&&++c,A(b.processedXData,b.options.data,b.points)>=(b.options.boostThreshold||Number.MAX_VALUE)&&++d;a.boostForceChartBoost=f&&c===a.series.length&&0<d||5<d;return a.boostForceChartBoost}function ka(a){function d(b,e){e=a.createShader("vertex"===e?a.VERTEX_SHADER:a.FRAGMENT_SHADER);a.shaderSource(e,b);a.compileShader(e);return a.getShaderParameter(e,a.COMPILE_STATUS)?e:!1}function c(){function b(b){return a.getUniformLocation(k,b)}var c=d("#version 100\nprecision highp float;\nattribute vec4 aVertexPosition;\nattribute vec4 aColor;\nvarying highp vec2 position;\nvarying highp vec4 vColor;\nuniform mat4 uPMatrix;\nuniform float pSize;\nuniform float translatedThreshold;\nuniform bool hasThreshold;\nuniform bool skipTranslation;\nuniform float plotHeight;\nuniform float xAxisTrans;\nuniform float xAxisMin;\nuniform float xAxisMinPad;\nuniform float xAxisPointRange;\nuniform float xAxisLen;\nuniform bool xAxisPostTranslate;\nuniform float xAxisOrdinalSlope;\nuniform float xAxisOrdinalOffset;\nuniform float xAxisPos;\nuniform bool xAxisCVSCoord;\nuniform float yAxisTrans;\nuniform float yAxisMin;\nuniform float yAxisMinPad;\nuniform float yAxisPointRange;\nuniform float yAxisLen;\nuniform bool yAxisPostTranslate;\nuniform float yAxisOrdinalSlope;\nuniform float yAxisOrdinalOffset;\nuniform float yAxisPos;\nuniform bool yAxisCVSCoord;\nuniform bool isBubble;\nuniform bool bubbleSizeByArea;\nuniform float bubbleZMin;\nuniform float bubbleZMax;\nuniform float bubbleZThreshold;\nuniform float bubbleMinSize;\nuniform float bubbleMaxSize;\nuniform bool bubbleSizeAbs;\nuniform bool isInverted;\nfloat bubbleRadius(){\nfloat value \x3d aVertexPosition.w;\nfloat zMax \x3d bubbleZMax;\nfloat zMin \x3d bubbleZMin;\nfloat radius \x3d 0.0;\nfloat pos \x3d 0.0;\nfloat zRange \x3d zMax - zMin;\nif (bubbleSizeAbs){\nvalue \x3d value - bubbleZThreshold;\nzMax \x3d max(zMax - bubbleZThreshold, zMin - bubbleZThreshold);\nzMin \x3d 0.0;\n}\nif (value \x3c zMin){\nradius \x3d bubbleZMin / 2.0 - 1.0;\n} else {\npos \x3d zRange \x3e 0.0 ? (value - zMin) / zRange : 0.5;\nif (bubbleSizeByArea \x26\x26 pos \x3e 0.0){\npos \x3d sqrt(pos);\n}\nradius \x3d ceil(bubbleMinSize + pos * (bubbleMaxSize - bubbleMinSize)) / 2.0;\n}\nreturn radius * 2.0;\n}\nfloat translate(float val,\nfloat pointPlacement,\nfloat localA,\nfloat localMin,\nfloat minPixelPadding,\nfloat pointRange,\nfloat len,\nbool cvsCoord\n){\nfloat sign \x3d 1.0;\nfloat cvsOffset \x3d 0.0;\nif (cvsCoord) {\nsign *\x3d -1.0;\ncvsOffset \x3d len;\n}\nreturn sign * (val - localMin) * localA + cvsOffset + \n(sign * minPixelPadding);\n}\nfloat xToPixels(float value){\nif (skipTranslation){\nreturn value;// + xAxisPos;\n}\nreturn translate(value, 0.0, xAxisTrans, xAxisMin, xAxisMinPad, xAxisPointRange, xAxisLen, xAxisCVSCoord);// + xAxisPos;\n}\nfloat yToPixels(float value, float checkTreshold){\nfloat v;\nif (skipTranslation){\nv \x3d value;// + yAxisPos;\n} else {\nv \x3d translate(value, 0.0, yAxisTrans, yAxisMin, yAxisMinPad, yAxisPointRange, yAxisLen, yAxisCVSCoord);// + yAxisPos;\nif (v \x3e plotHeight) {\nv \x3d plotHeight;\n}\n}\nif (checkTreshold \x3e 0.0 \x26\x26 hasThreshold) {\nv \x3d min(v, translatedThreshold);\n}\nreturn v;\n}\nvoid main(void) {\nif (isBubble){\ngl_PointSize \x3d bubbleRadius();\n} else {\ngl_PointSize \x3d pSize;\n}\nvColor \x3d aColor;\nif (isInverted) {\ngl_Position \x3d uPMatrix * vec4(xToPixels(aVertexPosition.y) + yAxisPos, yToPixels(aVertexPosition.x, aVertexPosition.z) + xAxisPos, 0.0, 1.0);\n} else {\ngl_Position \x3d uPMatrix * vec4(xToPixels(aVertexPosition.x) + xAxisPos, yToPixels(aVertexPosition.y, aVertexPosition.z) + yAxisPos, 0.0, 1.0);\n}\n}", | ||
"vertex"),f=d("precision highp float;\nuniform vec4 fillColor;\nvarying highp vec2 position;\nvarying highp vec4 vColor;\nuniform sampler2D uSampler;\nuniform bool isCircle;\nuniform bool hasColor;\nvoid main(void) {\nvec4 col \x3d fillColor;\nvec4 tcol;\nif (hasColor) {\ncol \x3d vColor;\n}\nif (isCircle) {\ntcol \x3d texture2D(uSampler, gl_PointCoord.st);\ncol *\x3d tcol;\nif (tcol.r \x3c 0.0) {\ndiscard;\n} else {\ngl_FragColor \x3d col;\n}\n} else {\ngl_FragColor \x3d col;\n}\n}","fragment"); | ||
if(!c||!f)return k=!1;k=a.createProgram();a.attachShader(k,c);a.attachShader(k,f);a.linkProgram(k);a.useProgram(k);a.bindAttribLocation(k,0,"aVertexPosition");h=b("uPMatrix");m=b("pSize");Q=b("fillColor");q=b("isBubble");g=b("bubbleSizeAbs");C=b("bubbleSizeByArea");v=b("uSampler");e=b("skipTranslation");x=b("isCircle");p=b("isInverted");E=b("plotHeight");return!0}function f(e,c){e=b[e]=b[e]||a.getUniformLocation(k,e);a.uniform1f(e,c)}var b={},k,h,m,Q,q,g,C,e,x,p,E,v;a&&c();return{psUniform:function(){return m}, | ||
pUniform:function(){return h},fillColorUniform:function(){return Q},setPlotHeight:function(b){a.uniform1f(E,b)},setBubbleUniforms:function(b,e,c){var d=b.options,k=Number.MAX_VALUE,h=-Number.MAX_VALUE;"bubble"===b.type&&(k=H(d.zMin,Math.min(k,Math.max(e,!1===d.displayNegative?d.zThreshold:-Number.MAX_VALUE))),h=H(d.zMax,Math.max(h,c)),a.uniform1i(q,1),a.uniform1i(x,1),a.uniform1i(C,"width"!==b.options.sizeBy),a.uniform1i(g,b.options.sizeByAbsoluteValue),f("bubbleZMin",k),f("bubbleZMax",h),f("bubbleZThreshold", | ||
b.options.zThreshold),f("bubbleMinSize",b.minPxSize),f("bubbleMaxSize",b.maxPxSize))},bind:function(){a.useProgram(k)},program:function(){return k},create:c,setUniform:f,setPMatrix:function(b){a.uniformMatrix4fv(h,!1,b)},setColor:function(b){a.uniform4f(Q,b[0]/255,b[1]/255,b[2]/255,b[3])},setPointSize:function(b){a.uniform1f(m,b)},setSkipTranslation:function(b){a.uniform1i(e,!0===b?1:0)},setTexture:function(){a.uniform1i(v,0)},setDrawAsCircle:function(b){a.uniform1i(x,b?1:0)},reset:function(){a.uniform1i(q, | ||
0);a.uniform1i(x,0)},setInverted:function(b){a.uniform1i(p,b)},destroy:function(){a&&k&&(a.deleteProgram(k),k=!1)}}}function ba(a,d,c){function f(){b&&(a.deleteBuffer(b),k=b=!1);p=0;h=c||2;q=[]}var b=!1,k=!1,h=c||2,m=!1,p=0,q;return{destroy:f,bind:function(){if(!b)return!1;a.vertexAttribPointer(k,h,a.FLOAT,!1,0,0)},data:q,build:function(c,C,e){var g;q=c||[];if(!(q&&0!==q.length||m))return f(),!1;h=e||h;b&&a.deleteBuffer(b);m||(g=new Float32Array(q));b=a.createBuffer();a.bindBuffer(a.ARRAY_BUFFER, | ||
b);a.bufferData(a.ARRAY_BUFFER,m||g,a.STATIC_DRAW);k=a.getAttribLocation(d.program(),C);a.enableVertexAttribArray(k);return!0},render:function(c,d,e){var f=m?m.length:q.length;if(!b||!f)return!1;if(!c||c>f||0>c)c=0;if(!d||d>f)d=f;a.drawArrays(a[(e||"points").toUpperCase()],c/h,(d-c)/h);return!0},allocate:function(a){p=-1;m=new Float32Array(4*a)},push:function(a,b,e,c){m&&(m[++p]=a,m[++p]=b,m[++p]=e,m[++p]=c)}}}function la(a){function d(a){var b,e;return a.isSeriesBoosting?(b=!!a.options.stacking, | ||
e=a.xData||a.options.xData||a.processedXData,b=(b?a.data:e||a.options.data).length,"treemap"===a.type?b*=12:"heatmap"===a.type?b*=6:J[a.type]&&(b*=2),b):0}function c(){e.clear(e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT)}function f(a,b){function e(a){a&&(b.colorData.push(a[0]),b.colorData.push(a[1]),b.colorData.push(a[2]),b.colorData.push(a[3]))}function c(a,b,c,d,f){e(f);n.usePreallocated?C.push(a,b,c?1:0,d||1):(E.push(a),E.push(b),E.push(c?1:0),E.push(d||1))}function d(){b.segments.length&&(b.segments[b.segments.length- | ||
1].to=E.length)}function f(){b.segments.length&&b.segments[b.segments.length-1].from===E.length||(d(),b.segments.push({from:E.length}))}function F(a,b,d,f,F){e(F);c(a+d,b);e(F);c(a,b);e(F);c(a,b+f);e(F);c(a,b+f);e(F);c(a+d,b+f);e(F);c(a+d,b)}function O(a){n.useGPUTranslations||(b.skipTranslation=!0,a.x=H.toPixels(a.x,!0),a.y=aa.toPixels(a.y,!0));c(a.x,a.y,0,2)}var g=a.pointArrayMap&&"low,high"===a.pointArrayMap.join(","),k=a.chart,m=a.options,v=!!m.stacking,l=m.data,q=a.xAxis.getExtremes(),x=q.min, | ||
q=q.max,w=a.yAxis.getExtremes(),z=w.min,w=w.max,u=a.xData||m.xData||a.processedXData,A=a.yData||m.yData||a.processedYData,B=a.zData||m.zData||a.processedZData,aa=a.yAxis,H=a.xAxis,V=a.chart.plotHeight,M=!u||0===u.length,U=m.connectNulls,r=a.points||!1,I=!1,Q=!1,y,R,S,l=v?a.data:u||l,u={x:-Number.MAX_VALUE,y:0},G={x:Number.MIN_VALUE,y:0},K=0,t,L,D=-1,X=!1,Y=!1,Z,P="undefined"===typeof k.index,W=!1,N=!1,ba=J[a.type],T=!1,ca=!0;if(!(m.boostData&&0<m.boostData.length)){a.closestPointRangePx=Number.MAX_VALUE; | ||
if(!c||!f)return k=!1;k=a.createProgram();a.attachShader(k,c);a.attachShader(k,f);a.linkProgram(k);a.useProgram(k);a.bindAttribLocation(k,0,"aVertexPosition");h=b("uPMatrix");m=b("pSize");Q=b("fillColor");n=b("isBubble");g=b("bubbleSizeAbs");C=b("bubbleSizeByArea");v=b("uSampler");e=b("skipTranslation");x=b("isCircle");p=b("isInverted");E=b("plotHeight");return!0}function f(e,c){e=b[e]=b[e]||a.getUniformLocation(k,e);a.uniform1f(e,c)}var b={},k,h,m,Q,n,g,C,e,x,p,E,v;a&&c();return{psUniform:function(){return m}, | ||
pUniform:function(){return h},fillColorUniform:function(){return Q},setPlotHeight:function(b){a.uniform1f(E,b)},setBubbleUniforms:function(b,e,c){var d=b.options,k=Number.MAX_VALUE,h=-Number.MAX_VALUE;"bubble"===b.type&&(k=G(d.zMin,Math.min(k,Math.max(e,!1===d.displayNegative?d.zThreshold:-Number.MAX_VALUE))),h=G(d.zMax,Math.max(h,c)),a.uniform1i(n,1),a.uniform1i(x,1),a.uniform1i(C,"width"!==b.options.sizeBy),a.uniform1i(g,b.options.sizeByAbsoluteValue),f("bubbleZMin",k),f("bubbleZMax",h),f("bubbleZThreshold", | ||
b.options.zThreshold),f("bubbleMinSize",b.minPxSize),f("bubbleMaxSize",b.maxPxSize))},bind:function(){a.useProgram(k)},program:function(){return k},create:c,setUniform:f,setPMatrix:function(b){a.uniformMatrix4fv(h,!1,b)},setColor:function(b){a.uniform4f(Q,b[0]/255,b[1]/255,b[2]/255,b[3])},setPointSize:function(b){a.uniform1f(m,b)},setSkipTranslation:function(b){a.uniform1i(e,!0===b?1:0)},setTexture:function(){a.uniform1i(v,0)},setDrawAsCircle:function(b){a.uniform1i(x,b?1:0)},reset:function(){a.uniform1i(n, | ||
0);a.uniform1i(x,0)},setInverted:function(b){a.uniform1i(p,b)},destroy:function(){a&&k&&(a.deleteProgram(k),k=!1)}}}function ba(a,d,c){function f(){b&&(a.deleteBuffer(b),k=b=!1);p=0;h=c||2;n=[]}var b=!1,k=!1,h=c||2,m=!1,p=0,n;return{destroy:f,bind:function(){if(!b)return!1;a.vertexAttribPointer(k,h,a.FLOAT,!1,0,0)},data:n,build:function(c,C,e){var g;n=c||[];if(!(n&&0!==n.length||m))return f(),!1;h=e||h;b&&a.deleteBuffer(b);m||(g=new Float32Array(n));b=a.createBuffer();a.bindBuffer(a.ARRAY_BUFFER, | ||
b);a.bufferData(a.ARRAY_BUFFER,m||g,a.STATIC_DRAW);k=a.getAttribLocation(d.program(),C);a.enableVertexAttribArray(k);return!0},render:function(c,d,e){var f=m?m.length:n.length;if(!b||!f)return!1;if(!c||c>f||0>c)c=0;if(!d||d>f)d=f;a.drawArrays(a[(e||"points").toUpperCase()],c/h,(d-c)/h);return!0},allocate:function(a){p=-1;m=new Float32Array(4*a)},push:function(a,b,e,c){m&&(m[++p]=a,m[++p]=b,m[++p]=e,m[++p]=c)}}}function la(a){function d(a){var b,e;return a.isSeriesBoosting?(b=!!a.options.stacking, | ||
e=a.xData||a.options.xData||a.processedXData,b=(b?a.data:e||a.options.data).length,"treemap"===a.type?b*=12:"heatmap"===a.type?b*=6:J[a.type]&&(b*=2),b):0}function c(){e.clear(e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT)}function f(a,b){function e(a){a&&(b.colorData.push(a[0]),b.colorData.push(a[1]),b.colorData.push(a[2]),b.colorData.push(a[3]))}function c(a,b,c,d,f){e(f);q.usePreallocated?C.push(a,b,c?1:0,d||1):(E.push(a),E.push(b),E.push(c?1:0),E.push(d||1))}function d(){b.segments.length&&(b.segments[b.segments.length- | ||
1].to=E.length)}function f(){b.segments.length&&b.segments[b.segments.length-1].from===E.length||(d(),b.segments.push({from:E.length}))}function F(a,b,d,f,F){e(F);c(a+d,b);e(F);c(a,b);e(F);c(a,b+f);e(F);c(a,b+f);e(F);c(a+d,b+f);e(F);c(a+d,b)}function O(a){q.useGPUTranslations||(b.skipTranslation=!0,a.x=G.toPixels(a.x,!0),a.y=aa.toPixels(a.y,!0));c(a.x,a.y,0,2)}var g=a.pointArrayMap&&"low,high"===a.pointArrayMap.join(","),k=a.chart,m=a.options,v=!!m.stacking,l=m.data,n=a.xAxis.getExtremes(),x=n.min, | ||
n=n.max,w=a.yAxis.getExtremes(),y=w.min,w=w.max,u=a.xData||m.xData||a.processedXData,A=a.yData||m.yData||a.processedYData,B=a.zData||m.zData||a.processedZData,aa=a.yAxis,G=a.xAxis,V=a.chart.plotHeight,M=!u||0===u.length,U=m.connectNulls,r=a.points||!1,I=!1,Q=!1,z,R,S,l=v?a.data:u||l,u={x:-Number.MAX_VALUE,y:0},H={x:Number.MIN_VALUE,y:0},K=0,t,L,D=-1,X=!1,Y=!1,Z,P="undefined"===typeof k.index,W=!1,N=!1,ba=J[a.type],T=!1,ca=!0;if(!(m.boostData&&0<m.boostData.length)){a.closestPointRangePx=Number.MAX_VALUE; | ||
f();if(r&&0<r.length)b.skipTranslation=!0,b.drawMode="triangles",r[0].node&&r[0].node.levelDynamic&&r.sort(function(a,b){if(a.node){if(a.node.levelDynamic>b.node.levelDynamic)return 1;if(a.node.levelDynamic<b.node.levelDynamic)return-1}return 0}),p(r,function(b){var c=b.plotY,e;"undefined"===typeof c||isNaN(c)||null===b.y||(c=b.shapeArgs,e=b.series.pointAttribs(b),b=e["stroke-width"]||0,R=h.color(e.fill).rgba,R[0]/=255,R[1]/=255,R[2]/=255,"treemap"===a.type&&(b=b||1,S=h.color(e.stroke).rgba,S[0]/= | ||
255,S[1]/=255,S[2]/=255,F(c.x,c.y,c.width,c.height,S),b/=2),"heatmap"===a.type&&k.inverted&&(c.x=H.len-c.x,c.y=aa.len-c.y,c.width=-c.width,c.height=-c.height),F(c.x+b,c.y+b,c.width-2*b,c.height-2*b,R))});else{for(;D<l.length-1;){y=l[++D];if(P)break;M?(r=y[0],t=y[1],l[D+1]&&(Y=l[D+1][0]),l[D-1]&&(X=l[D-1][0]),3<=y.length&&(L=y[2],y[2]>b.zMax&&(b.zMax=y[2]),y[2]<b.zMin&&(b.zMin=y[2]))):(r=y,t=A[D],l[D+1]&&(Y=l[D+1]),l[D-1]&&(X=l[D-1]),B&&B.length&&(L=B[D],B[D]>b.zMax&&(b.zMax=B[D]),B[D]<b.zMin&&(b.zMin= | ||
B[D])));if(U||null!==r&&null!==t){if(Y&&Y>=x&&Y<=q&&(W=!0),X&&X>=x&&X<=q&&(N=!0),g?(M&&(t=y.slice(1,3)),Z=t[0],t=t[1]):v&&(r=y.x,t=y.stackY,Z=t-y.y),null!==z&&"undefined"!==typeof z&&null!==w&&"undefined"!==typeof w&&(ca=t>=z&&t<=w),r>q&&G.x<q&&(G.x=r,G.y=t),r<x&&u.x<x&&(u.x=r,u.y=t),null!==t||!U)if(null!==t&&ca){if(r>=x&&r<=q&&(T=!0),T||W||N){n.useGPUTranslations||(b.skipTranslation=!0,r=H.toPixels(r,!0),t=aa.toPixels(t,!0),t>V&&(t=V));if(ba){y=Z;if(!1===Z||"undefined"===typeof Z)y=0>t?t:0;n.useGPUTranslations|| | ||
(y=aa.toPixels(y,!0));c(r,y,0,0,!1)}b.hasMarkers&&(y=n.useGPUTranslations?H.toPixels(r,!0):r,!1!==I&&(a.closestPointRangePx=Math.min(a.closestPointRangePx,Math.abs(y-I))));!n.useGPUTranslations&&!n.usePreallocated&&I&&1>r-I&&Q&&1>Math.abs(t-Q)?n.debug.showSkipSummary&&++K:(m.step&&c(r,Q,0,2,!1),c(r,t,0,"bubble"===a.type?L||1:2,!1),I=r,Q=t)}}else f()}else f()}n.debug.showSkipSummary&&console.log("skipped points:",K);!I&&!1!==U&&u>-Number.MAX_VALUE&&G<Number.MAX_VALUE&&(O(u),O(G))}d()}}function b(){w= | ||
[];U.data=E=[];V=[];C&&C.destroy()}function k(a){g&&(g.setUniform("xAxisTrans",a.transA),g.setUniform("xAxisMin",a.min),g.setUniform("xAxisMinPad",a.minPixelPadding),g.setUniform("xAxisPointRange",a.pointRange),g.setUniform("xAxisLen",a.len),g.setUniform("xAxisPos",a.pos),g.setUniform("xAxisCVSCoord",!a.horiz))}function v(a){g&&(g.setUniform("yAxisTrans",a.transA),g.setUniform("yAxisMin",a.min),g.setUniform("yAxisMinPad",a.minPixelPadding),g.setUniform("yAxisPointRange",a.pointRange),g.setUniform("yAxisLen", | ||
a.len),g.setUniform("yAxisPos",a.pos),g.setUniform("yAxisCVSCoord",!a.horiz))}function m(a,b){g.setUniform("hasThreshold",a);g.setUniform("translatedThreshold",b)}function z(c){if(c)x=c.chartWidth||800,l=c.chartHeight||400;else return!1;if(!e||!x||!l)return!1;n.debug.timeRendering&&console.time("gl rendering");e.canvas.width=x;e.canvas.height=l;g.bind();e.viewport(0,0,x,l);g.setPMatrix([2/x,0,0,0,0,-(2/l),0,0,0,0,-2,0,-1,1,-1,1]);g.setPlotHeight(c.plotHeight);1<n.lineWidth&&!h.isMS&&e.lineWidth(n.lineWidth); | ||
C.build(U.data,"aVertexPosition",4);C.bind();A&&(e.bindTexture(e.TEXTURE_2D,B),g.setTexture(B));g.setInverted(c.inverted);p(w,function(a,b){var c=a.series.options,d,f=c.threshold;d=K(f);var F=a.series.yAxis.getThreshold(f),f=H(c.marker?c.marker.enabled:null,a.series.xAxis.isRadial?!0:null,a.series.closestPointRangePx>2*((c.marker?c.marker.radius:10)||10)),l=a.series.pointAttribs&&a.series.pointAttribs().fill||a.series.color;a.series.fillOpacity&&c.fillOpacity&&(l=(new T(l)).setOpacity(H(c.fillOpacity, | ||
1)).get());c.colorByPoint&&(l=a.series.chart.options.colors[b]);l=h.color(l).rgba;n.useAlpha||(l[3]=1);"lines"===a.drawMode&&n.useAlpha&&1>l[3]&&(l[3]/=10);"add"===c.boostBlending?(e.blendFunc(e.SRC_ALPHA,e.ONE),e.blendEquation(e.FUNC_ADD)):"mult"===c.boostBlending?e.blendFunc(e.DST_COLOR,e.ZERO):"darken"===c.boostBlending?(e.blendFunc(e.ONE,e.ONE),e.blendEquation(e.FUNC_MIN)):e.blendFuncSeparate(e.SRC_ALPHA,e.ONE_MINUS_SRC_ALPHA,e.ONE,e.ONE_MINUS_SRC_ALPHA);g.reset();0<a.colorData.length&&(g.setUniform("hasColor", | ||
1),b=ba(e,g),b.build(a.colorData,"aColor",4),b.bind());g.setColor(l);k(a.series.xAxis);v(a.series.yAxis);m(d,F);"points"===a.drawMode&&(c.marker&&c.marker.radius?g.setPointSize(2*c.marker.radius):g.setPointSize(1));g.setSkipTranslation(a.skipTranslation);"bubble"===a.series.type&&g.setBubbleUniforms(a.series,a.zMin,a.zMax);g.setDrawAsCircle(G[a.series.type]&&A||!1);for(d=0;d<a.segments.length;d++)C.render(a.segments[d].from,a.segments[d].to,a.drawMode);if(a.hasMarkers&&f)for(c.marker&&c.marker.radius? | ||
g.setPointSize(2*c.marker.radius):g.setPointSize(10),g.setDrawAsCircle(!0),d=0;d<a.segments.length;d++)C.render(a.segments[d].from,a.segments[d].to,"POINTS")});n.debug.timeRendering&&console.timeEnd("gl rendering");a&&a();b()}function q(a){c();if(a.renderer.forExport)return z(a);I?z(a):setTimeout(function(){q(a)},1)}var g=!1,C=!1,e=!1,x=0,l=0,E=!1,V=!1,A=!1,U={},I=!1,w=[],M=L.createElement("canvas"),u=M.getContext("2d"),B,J={column:!0,columnrange:!0,bar:!0,area:!0,arearange:!0},G={scatter:!0,bubble:!0}, | ||
n={pointSize:1,lineWidth:1,fillColor:"#AA00AA",useAlpha:!0,usePreallocated:!1,useGPUTranslations:!1,debug:{timeRendering:!1,timeSeriesProcessing:!1,timeSetup:!1,timeBufferCopy:!1,timeKDTree:!1,showSkipSummary:!1}};return U={allocateBufferForSingleSeries:function(a){var b=0;n.usePreallocated&&(a.isSeriesBoosting&&(b=d(a)),C.allocate(b))},pushSeries:function(a){0<w.length&&w[w.length-1].hasMarkers&&(w[w.length-1].markerTo=V.length);n.debug.timeSeriesProcessing&&console.time("building "+a.type+" series"); | ||
w.push({segments:[],markerFrom:V.length,colorData:[],series:a,zMin:Number.MAX_VALUE,zMax:-Number.MAX_VALUE,hasMarkers:a.options.marker?!1!==a.options.marker.enabled:!1,showMarksers:!0,drawMode:{area:"lines",arearange:"lines",areaspline:"line_strip",column:"lines",columnrange:"lines",bar:"lines",line:"line_strip",scatter:"points",heatmap:"triangles",treemap:"triangles",bubble:"points"}[a.type]||"line_strip"});f(a,w[w.length-1]);n.debug.timeSeriesProcessing&&console.timeEnd("building "+a.type+" series")}, | ||
setSize:function(a,b){if(x!==a||b!==b)x=a,l=b,g.bind(),g.setPMatrix([2/x,0,0,0,0,-(2/l),0,0,0,0,-2,0,-1,1,-1,1])},inited:function(){return I},setThreshold:m,init:function(a,c){var d=0,f=["webgl","experimental-webgl","moz-webgl","webkit-3d"];I=!1;if(!a)return!1;for(n.debug.timeSetup&&console.time("gl setup");d<f.length&&!(e=a.getContext(f[d],{}));d++);if(e)c||b();else return!1;e.enable(e.BLEND);e.blendFunc(e.SRC_ALPHA,e.ONE_MINUS_SRC_ALPHA);e.disable(e.DEPTH_TEST);e.depthFunc(e.LESS);g=ka(e);C=ba(e, | ||
g);A=!1;B=e.createTexture();M.width=512;M.height=512;u.mozImageSmoothingEnabled=!1;u.webkitImageSmoothingEnabled=!1;u.msImageSmoothingEnabled=!1;u.imageSmoothingEnabled=!1;u.strokeStyle="rgba(255, 255, 255, 0)";u.fillStyle="#FFF";u.beginPath();u.arc(256,256,256,0,2*Math.PI);u.stroke();u.fill();try{e.bindTexture(e.TEXTURE_2D,B),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,M),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE), | ||
e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.bindTexture(e.TEXTURE_2D,null),A=!0}catch(sa){}I=!0;n.debug.timeSetup&&console.timeEnd("gl setup");return!0},render:q,settings:n,valid:function(){return!1!==e},clear:c,flush:b,setXAxis:k,setYAxis:v,data:E,gl:function(){return e},allocateBuffer:function(a){var b=0;n.usePreallocated&&(p(a.series,function(a){a.isSeriesBoosting&&(b+=d(a))}),C.allocate(b))},destroy:function(){b();C.destroy(); | ||
g.destroy();e&&(B&&e.deleteTexture(B),e.canvas.width=1,e.canvas.height=1)},setOptions:function(a){ma(!0,n,a)}}}function da(a,d){var c=a.chartWidth,f=a.chartHeight,b=a,k=a.seriesGroup||d.group,l=L.implementation.hasFeature("www.http://w3.org/TR/SVG11/feature#Extensibility","1.1"),b=a.isChartSeriesBoosting()?a:d,l=!1;b.renderTarget||(b.canvas=na,a.renderer.forExport||!l?(b.renderTarget=a.renderer.image("",0,0,c,f).addClass("highcharts-boost-canvas").add(k),b.boostClear=function(){b.renderTarget.attr({href:""})}, | ||
255,S[1]/=255,S[2]/=255,F(c.x,c.y,c.width,c.height,S),b/=2),"heatmap"===a.type&&k.inverted&&(c.x=G.len-c.x,c.y=aa.len-c.y,c.width=-c.width,c.height=-c.height),F(c.x+b,c.y+b,c.width-2*b,c.height-2*b,R))});else{for(;D<l.length-1;){z=l[++D];if(P)break;M?(r=z[0],t=z[1],l[D+1]&&(Y=l[D+1][0]),l[D-1]&&(X=l[D-1][0]),3<=z.length&&(L=z[2],z[2]>b.zMax&&(b.zMax=z[2]),z[2]<b.zMin&&(b.zMin=z[2]))):(r=z,t=A[D],l[D+1]&&(Y=l[D+1]),l[D-1]&&(X=l[D-1]),B&&B.length&&(L=B[D],B[D]>b.zMax&&(b.zMax=B[D]),B[D]<b.zMin&&(b.zMin= | ||
B[D])));if(U||null!==r&&null!==t){if(Y&&Y>=x&&Y<=n&&(W=!0),X&&X>=x&&X<=n&&(N=!0),g?(M&&(t=z.slice(1,3)),Z=t[0],t=t[1]):v&&(r=z.x,t=z.stackY,Z=t-z.y),null!==y&&"undefined"!==typeof y&&null!==w&&"undefined"!==typeof w&&(ca=t>=y&&t<=w),r>n&&H.x<n&&(H.x=r,H.y=t),r<x&&u.x<x&&(u.x=r,u.y=t),null!==t||!U)if(null!==t&&ca){if(r>=x&&r<=n&&(T=!0),T||W||N){q.useGPUTranslations||(b.skipTranslation=!0,r=G.toPixels(r,!0),t=aa.toPixels(t,!0),t>V&&(t=V));if(ba){z=Z;if(!1===Z||"undefined"===typeof Z)z=0>t?t:0;q.useGPUTranslations|| | ||
(z=aa.toPixels(z,!0));c(r,z,0,0,!1)}b.hasMarkers&&!1!==I&&(a.closestPointRangePx=Math.min(a.closestPointRangePx,Math.abs(r-I)));!q.useGPUTranslations&&!q.usePreallocated&&I&&1>r-I&&Q&&1>Math.abs(t-Q)?q.debug.showSkipSummary&&++K:(m.step&&c(r,Q,0,2,!1),c(r,t,0,"bubble"===a.type?L||1:2,!1),I=r,Q=t)}}else f()}else f()}q.debug.showSkipSummary&&console.log("skipped points:",K);!I&&!1!==U&&u>-Number.MAX_VALUE&&H<Number.MAX_VALUE&&(O(u),O(H))}d()}}function b(){w=[];U.data=E=[];V=[];C&&C.destroy()}function k(a){g&& | ||
(g.setUniform("xAxisTrans",a.transA),g.setUniform("xAxisMin",a.min),g.setUniform("xAxisMinPad",a.minPixelPadding),g.setUniform("xAxisPointRange",a.pointRange),g.setUniform("xAxisLen",a.len),g.setUniform("xAxisPos",a.pos),g.setUniform("xAxisCVSCoord",!a.horiz))}function v(a){g&&(g.setUniform("yAxisTrans",a.transA),g.setUniform("yAxisMin",a.min),g.setUniform("yAxisMinPad",a.minPixelPadding),g.setUniform("yAxisPointRange",a.pointRange),g.setUniform("yAxisLen",a.len),g.setUniform("yAxisPos",a.pos),g.setUniform("yAxisCVSCoord", | ||
!a.horiz))}function m(a,b){g.setUniform("hasThreshold",a);g.setUniform("translatedThreshold",b)}function y(c){if(c)x=c.chartWidth||800,l=c.chartHeight||400;else return!1;if(!e||!x||!l)return!1;q.debug.timeRendering&&console.time("gl rendering");e.canvas.width=x;e.canvas.height=l;g.bind();e.viewport(0,0,x,l);g.setPMatrix([2/x,0,0,0,0,-(2/l),0,0,0,0,-2,0,-1,1,-1,1]);g.setPlotHeight(c.plotHeight);1<q.lineWidth&&!h.isMS&&e.lineWidth(q.lineWidth);C.build(U.data,"aVertexPosition",4);C.bind();A&&(e.bindTexture(e.TEXTURE_2D, | ||
B),g.setTexture(B));g.setInverted(c.inverted);p(w,function(a,b){var c=a.series.options,d;d="undefined"!==typeof c.lineWidth?c.lineWidth:1;var f=c.threshold,F=K(f),l=a.series.yAxis.getThreshold(f),f=G(c.marker?c.marker.enabled:null,a.series.xAxis.isRadial?!0:null,a.series.closestPointRangePx>2*((c.marker?c.marker.radius:10)||10)),n=a.series.pointAttribs&&a.series.pointAttribs().fill||a.series.color;a.series.fillOpacity&&c.fillOpacity&&(n=(new T(n)).setOpacity(G(c.fillOpacity,1)).get());c.colorByPoint&& | ||
(n=a.series.chart.options.colors[b]);n=h.color(n).rgba;q.useAlpha||(n[3]=1);"lines"===a.drawMode&&q.useAlpha&&1>n[3]&&(n[3]/=10);"add"===c.boostBlending?(e.blendFunc(e.SRC_ALPHA,e.ONE),e.blendEquation(e.FUNC_ADD)):"mult"===c.boostBlending?e.blendFunc(e.DST_COLOR,e.ZERO):"darken"===c.boostBlending?(e.blendFunc(e.ONE,e.ONE),e.blendEquation(e.FUNC_MIN)):e.blendFuncSeparate(e.SRC_ALPHA,e.ONE_MINUS_SRC_ALPHA,e.ONE,e.ONE_MINUS_SRC_ALPHA);g.reset();0<a.colorData.length&&(g.setUniform("hasColor",1),b=ba(e, | ||
g),b.build(a.colorData,"aColor",4),b.bind());g.setColor(n);k(a.series.xAxis);v(a.series.yAxis);m(F,l);"points"===a.drawMode&&(c.marker&&c.marker.radius?g.setPointSize(2*c.marker.radius):g.setPointSize(1));g.setSkipTranslation(a.skipTranslation);"bubble"===a.series.type&&g.setBubbleUniforms(a.series,a.zMin,a.zMax);g.setDrawAsCircle(H[a.series.type]&&A||!1);if(0<d||"line_strip"!==a.drawMode)for(d=0;d<a.segments.length;d++)C.render(a.segments[d].from,a.segments[d].to,a.drawMode);if(a.hasMarkers&&f)for(c.marker&& | ||
c.marker.radius?g.setPointSize(2*c.marker.radius):g.setPointSize(10),g.setDrawAsCircle(!0),d=0;d<a.segments.length;d++)C.render(a.segments[d].from,a.segments[d].to,"POINTS")});q.debug.timeRendering&&console.timeEnd("gl rendering");a&&a();b()}function n(a){c();if(a.renderer.forExport)return y(a);I?y(a):setTimeout(function(){n(a)},1)}var g=!1,C=!1,e=!1,x=0,l=0,E=!1,V=!1,A=!1,U={},I=!1,w=[],M=L.createElement("canvas"),u=M.getContext("2d"),B,J={column:!0,columnrange:!0,bar:!0,area:!0,arearange:!0},H= | ||
{scatter:!0,bubble:!0},q={pointSize:1,lineWidth:1,fillColor:"#AA00AA",useAlpha:!0,usePreallocated:!1,useGPUTranslations:!1,debug:{timeRendering:!1,timeSeriesProcessing:!1,timeSetup:!1,timeBufferCopy:!1,timeKDTree:!1,showSkipSummary:!1}};return U={allocateBufferForSingleSeries:function(a){var b=0;q.usePreallocated&&(a.isSeriesBoosting&&(b=d(a)),C.allocate(b))},pushSeries:function(a){0<w.length&&w[w.length-1].hasMarkers&&(w[w.length-1].markerTo=V.length);q.debug.timeSeriesProcessing&&console.time("building "+ | ||
a.type+" series");w.push({segments:[],markerFrom:V.length,colorData:[],series:a,zMin:Number.MAX_VALUE,zMax:-Number.MAX_VALUE,hasMarkers:a.options.marker?!1!==a.options.marker.enabled:!1,showMarksers:!0,drawMode:{area:"lines",arearange:"lines",areaspline:"line_strip",column:"lines",columnrange:"lines",bar:"lines",line:"line_strip",scatter:"points",heatmap:"triangles",treemap:"triangles",bubble:"points"}[a.type]||"line_strip"});f(a,w[w.length-1]);q.debug.timeSeriesProcessing&&console.timeEnd("building "+ | ||
a.type+" series")},setSize:function(a,b){if(x!==a||b!==b)x=a,l=b,g.bind(),g.setPMatrix([2/x,0,0,0,0,-(2/l),0,0,0,0,-2,0,-1,1,-1,1])},inited:function(){return I},setThreshold:m,init:function(a,c){var d=0,f=["webgl","experimental-webgl","moz-webgl","webkit-3d"];I=!1;if(!a)return!1;for(q.debug.timeSetup&&console.time("gl setup");d<f.length&&!(e=a.getContext(f[d],{}));d++);if(e)c||b();else return!1;e.enable(e.BLEND);e.blendFunc(e.SRC_ALPHA,e.ONE_MINUS_SRC_ALPHA);e.disable(e.DEPTH_TEST);e.depthFunc(e.LESS); | ||
g=ka(e);C=ba(e,g);A=!1;B=e.createTexture();M.width=512;M.height=512;u.mozImageSmoothingEnabled=!1;u.webkitImageSmoothingEnabled=!1;u.msImageSmoothingEnabled=!1;u.imageSmoothingEnabled=!1;u.strokeStyle="rgba(255, 255, 255, 0)";u.fillStyle="#FFF";u.beginPath();u.arc(256,256,256,0,2*Math.PI);u.stroke();u.fill();try{e.bindTexture(e.TEXTURE_2D,B),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,M),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T, | ||
e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.bindTexture(e.TEXTURE_2D,null),A=!0}catch(sa){}I=!0;q.debug.timeSetup&&console.timeEnd("gl setup");return!0},render:n,settings:q,valid:function(){return!1!==e},clear:c,flush:b,setXAxis:k,setYAxis:v,data:E,gl:function(){return e},allocateBuffer:function(a){var b=0;q.usePreallocated&&(p(a.series,function(a){a.isSeriesBoosting&&(b+=d(a))}),C.allocate(b))},destroy:function(){b(); | ||
C.destroy();g.destroy();e&&(B&&e.deleteTexture(B),e.canvas.width=1,e.canvas.height=1)},setOptions:function(a){ma(!0,q,a)}}}function da(a,d){var c=a.chartWidth,f=a.chartHeight,b=a,k=a.seriesGroup||d.group,l=L.implementation.hasFeature("www.http://w3.org/TR/SVG11/feature#Extensibility","1.1"),b=a.isChartSeriesBoosting()?a:d,l=!1;b.renderTarget||(b.canvas=na,a.renderer.forExport||!l?(b.renderTarget=a.renderer.image("",0,0,c,f).addClass("highcharts-boost-canvas").add(k),b.boostClear=function(){b.renderTarget.attr({href:""})}, | ||
b.boostCopy=function(){b.boostResizeTarget();b.renderTarget.attr({href:b.canvas.toDataURL("image/png")})}):(b.renderTargetFo=a.renderer.createElement("foreignObject").add(k),b.renderTarget=L.createElement("canvas"),b.renderTargetCtx=b.renderTarget.getContext("2d"),b.renderTargetFo.element.appendChild(b.renderTarget),b.boostClear=function(){b.renderTarget.width=b.canvas.width;b.renderTarget.height=b.canvas.height},b.boostCopy=function(){b.renderTarget.width=b.canvas.width;b.renderTarget.height=b.canvas.height; | ||
b.renderTargetCtx.drawImage(b.canvas,0,0)}),b.boostResizeTarget=function(){c=a.chartWidth;f=a.chartHeight;(b.renderTargetFo||b.renderTarget).attr({x:0,y:0,width:c,height:f}).css({pointerEvents:"none",mixedBlendMode:"normal",opacity:1});b instanceof h.Chart&&b.markerGroup.translate(a.plotLeft,a.plotTop)},b.boostClipRect=a.renderer.clipRect(),(b.renderTargetFo||b.renderTarget).clip(b.boostClipRect),b instanceof h.Chart&&(b.markerGroup=b.renderer.g().add(k),b.markerGroup.translate(d.xAxis.pos,d.yAxis.pos))); | ||
b.canvas.width=c;b.canvas.height=f;b.boostClipRect.attr(a.getBoostClipRect(b));b.boostResizeTarget();b.boostClear();b.ogl||(b.ogl=la(function(){b.ogl.settings.debug.timeBufferCopy&&console.time("buffer copy");b.boostCopy();b.ogl.settings.debug.timeBufferCopy&&console.timeEnd("buffer copy")}),b.ogl.init(b.canvas),b.ogl.setOptions(a.options.boost||{}),b instanceof h.Chart&&b.ogl.allocateBuffer(a));b.ogl.setSize(c,f);return b.ogl}function ea(a,d,c){a&&d.renderTarget&&d.canvas&&!(c||d.chart).isChartSeriesBoosting()&& | ||
a.render(c||d.chart)}function fa(a,d){a&&d.renderTarget&&d.canvas&&!d.chart.isChartSeriesBoosting()&&a.allocateBufferForSingleSeries(d)}function oa(a){var d=!0;this.chart.options&&this.chart.options.boost&&(d="undefined"===typeof this.chart.options.boost.enabled?!0:this.chart.options.boost.enabled);if(!d||!this.isSeriesBoosting)return a.call(this);this.chart.isBoosting=!0;if(a=da(this.chart,this))fa(a,this),a.pushSeries(this);ea(a,this)}var G=h.win,L=G.document,pa=function(){},ga=h.Chart,T=h.Color, | ||
v=h.Series,z=h.seriesTypes,p=h.each,ha=h.extend,ia=h.addEvent,qa=h.fireEvent,ra=h.grep,K=h.isNumber,ma=h.merge,H=h.pick,l=h.wrap,P=h.getOptions().plotOptions,na=L.createElement("canvas"),W,ja="area arearange column columnrange bar line scatter heatmap bubble treemap".split(" "),J={};p(ja,function(a){J[a]=1});T.prototype.names={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff", | ||
a.render(c||d.chart)}function fa(a,d){a&&d.renderTarget&&d.canvas&&!d.chart.isChartSeriesBoosting()&&a.allocateBufferForSingleSeries(d)}function oa(a){var d=!0;this.chart.options&&this.chart.options.boost&&(d="undefined"===typeof this.chart.options.boost.enabled?!0:this.chart.options.boost.enabled);if(!d||!this.isSeriesBoosting)return a.call(this);this.chart.isBoosting=!0;if(a=da(this.chart,this))fa(a,this),a.pushSeries(this);ea(a,this)}var H=h.win,L=H.document,pa=function(){},ga=h.Chart,T=h.Color, | ||
v=h.Series,y=h.seriesTypes,p=h.each,ha=h.extend,ia=h.addEvent,qa=h.fireEvent,ra=h.grep,K=h.isNumber,ma=h.merge,G=h.pick,l=h.wrap,P=h.getOptions().plotOptions,na=L.createElement("canvas"),W,ja="area arearange column columnrange bar line scatter heatmap bubble treemap".split(" "),J={};p(ja,function(a){J[a]=1});T.prototype.names={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff", | ||
blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b", | ||
@@ -48,15 +48,15 @@ darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",feldspar:"#d19275",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa", | ||
peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee", | ||
violetred:"#d02090",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};ga.prototype.isChartSeriesBoosting=function(){return H(this.options.boost&&this.options.boost.seriesThreshold,50)<=this.series.length||N(this)};ga.prototype.getBoostClipRect=function(a){var d={x:this.plotLeft,y:this.plotTop,width:this.plotWidth,height:this.plotHeight};a===this&&p(this.yAxis,function(a){d.y=Math.min(a.pos,d.y);d.height=Math.max(a.pos-this.plotTop+a.len,d.height)},this); | ||
return d};h.eachAsync=function(a,d,c,f,b,k){b=b||0;f=f||3E4;for(var l=b+f,m=!0;m&&b<l&&b<a.length;)m=d(a[b],b),++b;m&&(b<a.length?k?h.eachAsync(a,d,c,f,b,k):G.requestAnimationFrame?G.requestAnimationFrame(function(){h.eachAsync(a,d,c,f,b)}):setTimeout(function(){h.eachAsync(a,d,c,f,b)}):c&&c())};v.prototype.getPoint=function(a){var d=a,c=this.xData||this.options.xData||this.processedXData||!1;!a||a instanceof this.pointClass||(d=(new this.pointClass).init(this,this.options.data[a.i],c?c[a.i]:void 0), | ||
violetred:"#d02090",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};ga.prototype.isChartSeriesBoosting=function(){return G(this.options.boost&&this.options.boost.seriesThreshold,50)<=this.series.length||N(this)};ga.prototype.getBoostClipRect=function(a){var d={x:this.plotLeft,y:this.plotTop,width:this.plotWidth,height:this.plotHeight};a===this&&p(this.yAxis,function(a){d.y=Math.min(a.pos,d.y);d.height=Math.max(a.pos-this.plotTop+a.len,d.height)},this); | ||
return d};h.eachAsync=function(a,d,c,f,b,k){b=b||0;f=f||3E4;for(var l=b+f,m=!0;m&&b<l&&b<a.length;)m=d(a[b],b),++b;m&&(b<a.length?k?h.eachAsync(a,d,c,f,b,k):H.requestAnimationFrame?H.requestAnimationFrame(function(){h.eachAsync(a,d,c,f,b)}):setTimeout(function(){h.eachAsync(a,d,c,f,b)}):c&&c())};v.prototype.getPoint=function(a){var d=a,c=this.xData||this.options.xData||this.processedXData||!1;!a||a instanceof this.pointClass||(d=(new this.pointClass).init(this,this.options.data[a.i],c?c[a.i]:void 0), | ||
d.category=d.x,d.dist=a.dist,d.distX=a.distX,d.plotX=a.plotX,d.plotY=a.plotY,d.index=a.i);return d};l(v.prototype,"searchPoint",function(a){return this.getPoint(a.apply(this,[].slice.call(arguments,1)))});l(v.prototype,"destroy",function(a){var d=this,c=d.chart;c.markerGroup===d.markerGroup&&(d.markerGroup=null);c.hoverPoints&&(c.hoverPoints=ra(c.hoverPoints,function(a){return a.series===d}));c.hoverPoint&&c.hoverPoint.series===d&&(c.hoverPoint=null);a.call(this)});l(v.prototype,"getExtremes",function(a){if(!this.isSeriesBoosting|| | ||
!this.hasExtremes||!this.hasExtremes())return a.apply(this,Array.prototype.slice.call(arguments,1))});p(ja,function(a){P[a]&&(P[a].boostThreshold=5E3,P[a].boostData=[],z[a].prototype.fillOpacity=!0)});p(["translate","generatePoints","drawTracker","drawPoints","render"],function(a){function d(c){var d=this.options.stacking&&("translate"===a||"generatePoints"===a),b=H(this.chart&&this.chart.options&&this.chart.options.boost&&this.chart.options.boost.enabled,!0);if(!this.isSeriesBoosting||d||!b||"heatmap"=== | ||
this.type||"treemap"===this.type||!J[this.type])c.call(this);else if(this[a+"Canvas"])this[a+"Canvas"]()}l(v.prototype,a,d);"translate"===a&&p("column bar arearange columnrange heatmap treemap".split(" "),function(c){z[c]&&l(z[c].prototype,a,d)})});l(v.prototype,"processData",function(a){function d(a){return c.chart.isChartSeriesBoosting()||(a?a.length:0)>=(c.options.boostThreshold||Number.MAX_VALUE)}var c=this,f=this.options.data;J[this.type]?(d(f)&&"heatmap"!==this.type&&"treemap"!==this.type&& | ||
!this.hasExtremes||!this.hasExtremes())return a.apply(this,Array.prototype.slice.call(arguments,1))});p(ja,function(a){P[a]&&(P[a].boostThreshold=5E3,P[a].boostData=[],y[a].prototype.fillOpacity=!0)});p(["translate","generatePoints","drawTracker","drawPoints","render"],function(a){function d(c){var d=this.options.stacking&&("translate"===a||"generatePoints"===a),b=G(this.chart&&this.chart.options&&this.chart.options.boost&&this.chart.options.boost.enabled,!0);if(!this.isSeriesBoosting||d||!b||"heatmap"=== | ||
this.type||"treemap"===this.type||!J[this.type])c.call(this);else if(this[a+"Canvas"])this[a+"Canvas"]()}l(v.prototype,a,d);"translate"===a&&p("column bar arearange columnrange heatmap treemap".split(" "),function(c){y[c]&&l(y[c].prototype,a,d)})});l(v.prototype,"processData",function(a){function d(a){return c.chart.isChartSeriesBoosting()||(a?a.length:0)>=(c.options.boostThreshold||Number.MAX_VALUE)}var c=this,f=this.options.data;J[this.type]?(d(f)&&"heatmap"!==this.type&&"treemap"!==this.type&& | ||
!this.options.stacking&&this.hasExtremes&&this.hasExtremes(!0)||(a.apply(this,Array.prototype.slice.call(arguments,1)),f=this.processedXData),(this.isSeriesBoosting=d(f))?this.enterBoost():this.exitBoost&&this.exitBoost()):a.apply(this,Array.prototype.slice.call(arguments,1))});l(v.prototype,"setVisible",function(a,d,c){a.call(this,d,c);!1===this.visible&&this.canvas&&this.renderTarget&&(this.ogl&&this.ogl.clear(),this.boostClear())});v.prototype.enterBoost=function(){this.alteredByBoost=[];p(["allowDG", | ||
"directTouch","stickyTracking"],function(a){this.alteredByBoost.push({prop:a,val:this[a],own:this.hasOwnProperty(a)})},this);this.directTouch=this.allowDG=!1;this.stickyTracking=!0;this.animate=null;this.labelBySeries&&(this.labelBySeries=this.labelBySeries.destroy())};v.prototype.exitBoost=function(){p(this.alteredByBoost||[],function(a){a.own?this[a.prop]=a.val:delete this[a.prop]},this);this.boostClear&&this.boostClear()};v.prototype.hasExtremes=function(a){var d=this.options,c=this.xAxis&&this.xAxis.options, | ||
f=this.yAxis&&this.yAxis.options;return d.data.length>(d.boostThreshold||Number.MAX_VALUE)&&K(f.min)&&K(f.max)&&(!a||K(c.min)&&K(c.max))};v.prototype.destroyGraphics=function(){var a=this,d=this.points,c,f;if(d)for(f=0;f<d.length;f+=1)(c=d[f])&&c.destroyElements&&c.destroyElements();p(["graph","area","tracker"],function(b){a[b]&&(a[b]=a[b].destroy())})};h.hasWebGLSupport=function(){var a=0,d,c=["webgl","experimental-webgl","moz-webgl","webkit-3d"],f=!1;if("undefined"!==typeof G.WebGLRenderingContext)for(d= | ||
L.createElement("canvas");a<c.length;a++)try{if(f=d.getContext(c[a]),"undefined"!==typeof f&&null!==f)return!0}catch(b){}return!1};h.hasWebGLSupport()?(h.extend(v.prototype,{renderCanvas:function(){function a(a,b){var c,d,f=!1,g="undefined"===typeof k.index,h=!0;if(!g&&(K?(c=a[0],d=a[1]):(c=a,d=q[b]),M?(K&&(d=a.slice(1,3)),f=d[0],d=d[1]):u&&(c=a.x,d=a.stackY,f=d-a.y),L||(h=d>=x&&d<=z),null!==d&&c>=v&&c<=e&&h))if(a=Math.ceil(l.toPixels(c,!0)),H){if(void 0===O||a===A){M||(f=d);if(void 0===J||d>F)F= | ||
d,J=b;if(void 0===O||f<n)n=f,O=b}a!==A&&(void 0!==O&&(d=m.toPixels(F,!0),w=m.toPixels(n,!0),P(a,d,J),w!==d&&P(a,w,O)),O=J=void 0,A=a)}else d=Math.ceil(m.toPixels(d,!0)),P(a,d,b);return!g}function d(){qa(c,"renderedCanvas");delete c.buildKDTree;c.buildKDTree();N.debug.timeKDTree&&console.timeEnd("kd tree building")}var c=this,f=c.options||{},b=!1,k=c.chart,l=this.xAxis,m=this.yAxis,p=f.xData||c.processedXData,q=f.yData||c.processedYData,g=f.data,b=l.getExtremes(),v=b.min,e=b.max,b=m.getExtremes(), | ||
x=b.min,z=b.max,E={},A,H=!!c.sampling,G,I=!1!==f.enableMouseTracking,w=m.getThreshold(f.threshold),M=c.pointArrayMap&&"low,high"===c.pointArrayMap.join(","),u=!!f.stacking,B=c.cropStart||0,L=c.requireSorting,K=!p,n,F,O,J,N,T=this.xData||this.options.xData||this.processedXData||!1,P=function(a,b,c){W=a+","+b;I&&!E[W]&&(E[W]=!0,k.inverted&&(a=l.len-a,b=m.len-b),G.push({x:T?T[B+c]:!1,clientX:a,plotX:a,plotY:b,i:B+c}))},b=da(k,c);k.isBoosting=!0;N=b.settings;if(this.visible){if(this.points||this.graph)this.animate= | ||
null,this.destroyGraphics();k.isChartSeriesBoosting()?(this.markerGroup=k.markerGroup,this.renderTarget&&(this.renderTarget=this.renderTarget.destroy())):this.markerGroup=c.plotGroup("markerGroup","markers",!0,1,k.seriesGroup);G=this.points=[];c.buildKDTree=pa;b&&(fa(b,this),b.pushSeries(c),ea(b,this,k));k.renderer.forExport||(N.debug.timeKDTree&&console.time("kd tree building"),h.eachAsync(u?c.data:p||g,a,d))}}}),p(["heatmap","treemap"],function(a){z[a]&&l(z[a].prototype,"drawPoints",oa)}),z.bubble&& | ||
(delete z.bubble.prototype.buildKDTree,l(z.bubble.prototype,"markerAttribs",function(a){return this.isSeriesBoosting?!1:a.apply(this,[].slice.call(arguments,1))})),z.scatter.prototype.fill=!0,ha(z.area.prototype,{fill:!0,fillOpacity:!0,sampling:!0}),ha(z.column.prototype,{fill:!0,sampling:!0}),h.Chart.prototype.callbacks.push(function(a){ia(a,"predraw",function(){a.boostForceChartBoost=void 0;a.boostForceChartBoost=N(a);a.isBoosting=!1;!a.isChartSeriesBoosting()&&a.didBoost&&(a.didBoost=!1);a.boostClear&& | ||
f=this.yAxis&&this.yAxis.options;return d.data.length>(d.boostThreshold||Number.MAX_VALUE)&&K(f.min)&&K(f.max)&&(!a||K(c.min)&&K(c.max))};v.prototype.destroyGraphics=function(){var a=this,d=this.points,c,f;if(d)for(f=0;f<d.length;f+=1)(c=d[f])&&c.destroyElements&&c.destroyElements();p(["graph","area","tracker"],function(b){a[b]&&(a[b]=a[b].destroy())})};h.hasWebGLSupport=function(){var a=0,d,c=["webgl","experimental-webgl","moz-webgl","webkit-3d"],f=!1;if("undefined"!==typeof H.WebGLRenderingContext)for(d= | ||
L.createElement("canvas");a<c.length;a++)try{if(f=d.getContext(c[a]),"undefined"!==typeof f&&null!==f)return!0}catch(b){}return!1};h.hasWebGLSupport()?(h.extend(v.prototype,{renderCanvas:function(){function a(a,b){var c,d,f=!1,g="undefined"===typeof k.index,h=!0;if(!g&&(K?(c=a[0],d=a[1]):(c=a,d=n[b]),M?(K&&(d=a.slice(1,3)),f=d[0],d=d[1]):u&&(c=a.x,d=a.stackY,f=d-a.y),L||(h=d>=x&&d<=y),null!==d&&c>=v&&c<=e&&h))if(a=Math.ceil(l.toPixels(c,!0)),H){if(void 0===O||a===A){M||(f=d);if(void 0===J||d>F)F= | ||
d,J=b;if(void 0===O||f<q)q=f,O=b}a!==A&&(void 0!==O&&(d=m.toPixels(F,!0),w=m.toPixels(q,!0),P(a,d,J),w!==d&&P(a,w,O)),O=J=void 0,A=a)}else d=Math.ceil(m.toPixels(d,!0)),P(a,d,b);return!g}function d(){qa(c,"renderedCanvas");delete c.buildKDTree;c.buildKDTree();N.debug.timeKDTree&&console.timeEnd("kd tree building")}var c=this,f=c.options||{},b=!1,k=c.chart,l=this.xAxis,m=this.yAxis,p=f.xData||c.processedXData,n=f.yData||c.processedYData,g=f.data,b=l.getExtremes(),v=b.min,e=b.max,b=m.getExtremes(), | ||
x=b.min,y=b.max,E={},A,H=!!c.sampling,G,I=!1!==f.enableMouseTracking,w=m.getThreshold(f.threshold),M=c.pointArrayMap&&"low,high"===c.pointArrayMap.join(","),u=!!f.stacking,B=c.cropStart||0,L=c.requireSorting,K=!p,q,F,O,J,N,T=this.xData||this.options.xData||this.processedXData||!1,P=function(a,b,c){W=a+","+b;I&&!E[W]&&(E[W]=!0,k.inverted&&(a=l.len-a,b=m.len-b),G.push({x:T?T[B+c]:!1,clientX:a,plotX:a,plotY:b,i:B+c}))},b=da(k,c);k.isBoosting=!0;N=b.settings;if(this.visible){if(this.points||this.graph)this.animate= | ||
null,this.destroyGraphics();k.isChartSeriesBoosting()?(this.markerGroup=k.markerGroup,this.renderTarget&&(this.renderTarget=this.renderTarget.destroy())):this.markerGroup=c.plotGroup("markerGroup","markers",!0,1,k.seriesGroup);G=this.points=[];c.buildKDTree=pa;b&&(fa(b,this),b.pushSeries(c),ea(b,this,k));k.renderer.forExport||(N.debug.timeKDTree&&console.time("kd tree building"),h.eachAsync(u?c.data:p||g,a,d))}}}),p(["heatmap","treemap"],function(a){y[a]&&l(y[a].prototype,"drawPoints",oa)}),y.bubble&& | ||
(delete y.bubble.prototype.buildKDTree,l(y.bubble.prototype,"markerAttribs",function(a){return this.isSeriesBoosting?!1:a.apply(this,[].slice.call(arguments,1))})),y.scatter.prototype.fill=!0,ha(y.area.prototype,{fill:!0,fillOpacity:!0,sampling:!0}),ha(y.column.prototype,{fill:!0,sampling:!0}),h.Chart.prototype.callbacks.push(function(a){ia(a,"predraw",function(){a.boostForceChartBoost=void 0;a.boostForceChartBoost=N(a);a.isBoosting=!1;!a.isChartSeriesBoosting()&&a.didBoost&&(a.didBoost=!1);a.boostClear&& | ||
a.boostClear();a.canvas&&a.ogl&&a.isChartSeriesBoosting()&&(a.didBoost=!0,a.ogl.allocateBuffer(a));a.markerGroup&&a.xAxis&&0<a.xAxis.length&&a.yAxis&&0<a.yAxis.length&&a.markerGroup.translate(a.xAxis[0].pos,a.yAxis[0].pos)});ia(a,"render",function(){a.ogl&&a.isChartSeriesBoosting()&&a.ogl.render(a)})})):"undefined"!==typeof h.initCanvasBoost?h.initCanvasBoost():h.error(26)})(A)}); |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ (c) 2009-2017 Torstein Honsi |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -22,3 +22,2 @@ * (c) 2009-2017 Torstein Honsi | ||
*/ | ||
/* eslint max-len: 0 */ | ||
@@ -44,3 +43,7 @@ var pick = H.pick, | ||
length = brk.to - brk.from, | ||
test = (val >= from ? (val - from) % repeat : repeat - ((from - val) % repeat)); | ||
test = ( | ||
val >= from ? | ||
(val - from) % repeat : | ||
repeat - ((from - val) % repeat) | ||
); | ||
@@ -70,3 +73,6 @@ if (!brk.inclusive) { | ||
if (!keep) { | ||
keep = pick(breaks[i].showPoints, this.isXAxis ? false : true); | ||
keep = pick( | ||
breaks[i].showPoints, | ||
this.isXAxis ? false : true | ||
); | ||
} | ||
@@ -156,4 +162,11 @@ } | ||
axis.setExtremes = function(newMin, newMax, redraw, animation, eventArguments) { | ||
// If trying to set extremes inside a break, extend it to before and after the break ( #3857 ) | ||
axis.setExtremes = function( | ||
newMin, | ||
newMax, | ||
redraw, | ||
animation, | ||
eventArguments | ||
) { | ||
// If trying to set extremes inside a break, extend it to before and | ||
// after the break ( #3857 ) | ||
while (this.isInAnyBreak(newMin)) { | ||
@@ -165,3 +178,10 @@ newMin -= this.closestPointRange; | ||
} | ||
Axis.prototype.setExtremes.call(this, newMin, newMax, redraw, animation, eventArguments); | ||
Axis.prototype.setExtremes.call( | ||
this, | ||
newMin, | ||
newMax, | ||
redraw, | ||
animation, | ||
eventArguments | ||
); | ||
}; | ||
@@ -293,7 +313,14 @@ | ||
nullGap = point.y === null && connectNulls === false; // respect nulls inside the break (#4275) | ||
if (!nullGap && (xAxis.isInAnyBreak(point.x, true) || yAxis.isInAnyBreak(point.y, true))) { | ||
// Respect nulls inside the break (#4275) | ||
nullGap = point.y === null && connectNulls === false; | ||
if (!nullGap && | ||
( | ||
xAxis.isInAnyBreak(point.x, true) || | ||
yAxis.isInAnyBreak(point.y, true) | ||
) | ||
) { | ||
points.splice(i, 1); | ||
if (this.data[i]) { | ||
this.data[i].destroyElements(); // removes the graphics for this point if they exist | ||
// Removes the graphics for this point if they exist | ||
this.data[i].destroyElements(); | ||
} | ||
@@ -326,3 +353,5 @@ } | ||
breaks = axis.breakArray || []; | ||
threshold = axis.isXAxis ? axis.min : pick(series.options.threshold, axis.min); | ||
threshold = axis.isXAxis ? | ||
axis.min : | ||
pick(series.options.threshold, axis.min); | ||
each(points, function(point) { | ||
@@ -333,5 +362,12 @@ y = pick(point['stack' + key.toUpperCase()], point[key]); | ||
if ((threshold < brk.from && y > brk.to) || (threshold > brk.from && y < brk.from)) { | ||
if ( | ||
(threshold < brk.from && y > brk.to) || | ||
(threshold > brk.from && y < brk.from) | ||
) { | ||
eventName = 'pointBreak'; | ||
} else if ((threshold < brk.from && y > brk.from && y < brk.to) || (threshold > brk.from && y > brk.to && y < brk.from)) { // point falls inside the break | ||
} else if ( | ||
(threshold < brk.from && y > brk.from && y < brk.to) || | ||
(threshold > brk.from && y > brk.to && y < brk.from) | ||
) { | ||
eventName = 'pointInBreak'; | ||
@@ -372,4 +408,4 @@ } | ||
* larger time span. This can make the grouped points to have a greater | ||
* distance than the absolute value of `gapSize` property, which will result | ||
* in disappearing graph completely. To prevent this situation the mentioned | ||
* distance than the absolute value of `gapSize` property, which will result | ||
* in disappearing graph completely. To prevent this situation the mentioned | ||
* distance between grouped points is used instead of previously defined | ||
@@ -382,7 +418,8 @@ * `gapSize`. | ||
* | ||
* @type {Number} | ||
* @see [gapUnit](plotOptions.series.gapUnit) and [xAxis.breaks](#xAxis.breaks) | ||
* @sample {highstock} stock/plotoptions/series-gapsize/ | ||
* Setting the gap size to 2 introduces gaps for weekends in daily | ||
* datasets. | ||
* @type {Number} | ||
* @see [gapUnit](plotOptions.series.gapUnit) and | ||
* [xAxis.breaks](#xAxis.breaks) | ||
* @sample {highstock} stock/plotoptions/series-gapsize/ | ||
* Setting the gap size to 2 introduces gaps for weekends in daily | ||
* datasets. | ||
* @default 0 | ||
@@ -441,9 +478,10 @@ * @product highstock | ||
if (this.options.stacking) { | ||
stack = yAxis.stacks[this.stackKey][xRange] = new H.StackItem( | ||
yAxis, | ||
yAxis.options.stackLabels, | ||
false, | ||
xRange, | ||
this.stack | ||
); | ||
stack = yAxis.stacks[this.stackKey][xRange] = | ||
new H.StackItem( | ||
yAxis, | ||
yAxis.options.stackLabels, | ||
false, | ||
xRange, | ||
this.stack | ||
); | ||
stack.total = 0; | ||
@@ -450,0 +488,0 @@ } |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Bullet graph series type for Highcharts |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -84,11 +84,2 @@ * Bullet graph series type for Highcharts | ||
/** | ||
* The border width of the rectangle representing the target. | ||
* | ||
* In styled mode, use class `highcharts-bullet-target` instead. | ||
* | ||
* @since 6.0.0 | ||
* @product highcharts | ||
*/ | ||
borderWidth: 0 | ||
@@ -123,2 +114,13 @@ /** | ||
/** | ||
* The border width of the rectangle representing the target. | ||
* | ||
* In styled mode, use class `highcharts-bullet-target` instead. | ||
* | ||
* @since 6.0.0 | ||
* @product highcharts | ||
*/ | ||
borderWidth: 0 | ||
}, | ||
@@ -362,3 +364,3 @@ | ||
* | ||
* @extends series.bullet.targetOptions | ||
* @extends plotOptions.bullet.targetOptions | ||
* @product highcharts | ||
@@ -365,0 +367,0 @@ * @apioption series.bullet.data.targetOptions |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Data module | ||
@@ -4,0 +4,0 @@ |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Drag-panes module | ||
@@ -4,0 +4,0 @@ |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* Drag-panes module | ||
@@ -4,0 +4,0 @@ * |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Highcharts Drilldown module | ||
@@ -9,20 +9,20 @@ | ||
*/ | ||
(function(p){"object"===typeof module&&module.exports?module.exports=p:p(Highcharts)})(function(p){(function(f){var p=f.animObject,z=f.noop,A=f.color,B=f.defaultOptions,l=f.each,q=f.extend,H=f.format,C=f.objectEach,v=f.pick,r=f.wrap,m=f.Chart,w=f.seriesTypes,D=w.pie,u=w.column,E=f.Tick,x=f.fireEvent,F=f.inArray,G=1;q(B.lang,{drillUpText:"\u25c1 Back to {series.name}"});B.drilldown={activeAxisLabelStyle:{cursor:"pointer",color:"#003399",fontWeight:"bold",textDecoration:"underline"},activeDataLabelStyle:{cursor:"pointer", | ||
color:"#003399",fontWeight:"bold",textDecoration:"underline"},animation:{duration:500},drillUpButton:{position:{align:"right",x:-10,y:10}}};f.SVGRenderer.prototype.Element.prototype.fadeIn=function(a){this.attr({opacity:.1,visibility:"inherit"}).animate({opacity:v(this.newOpacity,1)},a||{duration:250})};m.prototype.addSeriesAsDrilldown=function(a,b){this.addSingleSeriesAsDrilldown(a,b);this.applyDrilldown()};m.prototype.addSingleSeriesAsDrilldown=function(a,b){var d=a.series,c=d.xAxis,e=d.yAxis,g, | ||
k=[],n=[],h,t,m;m={color:a.color||d.color};this.drilldownLevels||(this.drilldownLevels=[]);h=d.options._levelNumber||0;(t=this.drilldownLevels[this.drilldownLevels.length-1])&&t.levelNumber!==h&&(t=void 0);b=q(q({_ddSeriesId:G++},m),b);g=F(a,d.points);l(d.chart.series,function(a){a.xAxis!==c||a.isDrilling||(a.options._ddSeriesId=a.options._ddSeriesId||G++,a.options._colorIndex=a.userOptions._colorIndex,a.options._levelNumber=a.options._levelNumber||h,t?(k=t.levelSeries,n=t.levelSeriesOptions):(k.push(a), | ||
n.push(a.options)))});a=q({levelNumber:h,seriesOptions:d.options,levelSeriesOptions:n,levelSeries:k,shapeArgs:a.shapeArgs,bBox:a.graphic?a.graphic.getBBox():{},color:a.isNull?(new f.Color(A)).setOpacity(0).get():A,lowerSeriesOptions:b,pointOptions:d.options.data[g],pointIndex:g,oldExtremes:{xMin:c&&c.userMin,xMax:c&&c.userMax,yMin:e&&e.userMin,yMax:e&&e.userMax},resetZoomButton:this.resetZoomButton},m);this.drilldownLevels.push(a);c&&c.names&&(c.names.length=0);b=a.lowerSeries=this.addSeries(b,!1); | ||
b.options._levelNumber=h+1;c&&(c.oldPos=c.pos,c.userMin=c.userMax=null,e.userMin=e.userMax=null);d.type===b.type&&(b.animate=b.animateDrilldown||z,b.options.animation=!0)};m.prototype.applyDrilldown=function(){var a=this.drilldownLevels,b;a&&0<a.length&&(b=a[a.length-1].levelNumber,l(this.drilldownLevels,function(a){a.levelNumber===b&&l(a.levelSeries,function(a){a.options&&a.options._levelNumber===b&&a.remove(!1)})}));this.resetZoomButton&&(this.resetZoomButton.hide(),delete this.resetZoomButton); | ||
this.pointer.reset();this.redraw();this.showDrillUpButton()};m.prototype.getDrilldownBackText=function(){var a=this.drilldownLevels;if(a&&0<a.length)return a=a[a.length-1],a.series=a.seriesOptions,H(this.options.lang.drillUpText,a)};m.prototype.showDrillUpButton=function(){var a=this,b=this.getDrilldownBackText(),d=a.options.drilldown.drillUpButton,c,e;this.drillUpButton?this.drillUpButton.attr({text:b}).align():(e=(c=d.theme)&&c.states,this.drillUpButton=this.renderer.button(b,null,null,function(){a.drillUp()}, | ||
c,e&&e.hover,e&&e.select).addClass("highcharts-drillup-button").attr({align:d.position.align,zIndex:7}).add().align(d.position,!1,d.relativeTo||"plotBox"))};m.prototype.drillUp=function(){if(this.drilldownLevels&&0!==this.drilldownLevels.length){for(var a=this,b=a.drilldownLevels,d=b[b.length-1].levelNumber,c=b.length,e=a.series,g,k,f,h,m=function(b){var c;l(e,function(a){a.options._ddSeriesId===b._ddSeriesId&&(c=a)});c=c||a.addSeries(b,!1);c.type===f.type&&c.animateDrillupTo&&(c.animate=c.animateDrillupTo); | ||
b===k.seriesOptions&&(h=c)};c--;)if(k=b[c],k.levelNumber===d){b.pop();f=k.lowerSeries;if(!f.chart)for(g=e.length;g--;)if(e[g].options.id===k.lowerSeriesOptions.id&&e[g].options._levelNumber===d+1){f=e[g];break}f.xData=[];l(k.levelSeriesOptions,m);x(a,"drillup",{seriesOptions:k.seriesOptions});h.type===f.type&&(h.drilldownLevel=k,h.options.animation=a.options.drilldown.animation,f.animateDrillupFrom&&f.chart&&f.animateDrillupFrom(k));h.options._levelNumber=d;f.remove(!1);h.xAxis&&(g=k.oldExtremes, | ||
h.xAxis.setExtremes(g.xMin,g.xMax,!1),h.yAxis.setExtremes(g.yMin,g.yMax,!1));k.resetZoomButton&&(a.resetZoomButton=k.resetZoomButton,a.resetZoomButton.show())}x(a,"drillupall");this.redraw();0===this.drilldownLevels.length?this.drillUpButton=this.drillUpButton.destroy():this.drillUpButton.attr({text:this.getDrilldownBackText()}).align();this.ddDupes.length=[]}};m.prototype.callbacks.push(function(){var a=this;a.drilldown={update:function(b,d){f.merge(!0,a.options.drilldown,b);v(d,!0)&&a.redraw()}}}); | ||
r(m.prototype,"showResetZoom",function(a){this.drillUpButton||a.apply(this,Array.prototype.slice.call(arguments,1))});u.prototype.animateDrillupTo=function(a){if(!a){var b=this,d=b.drilldownLevel;l(this.points,function(a){var b=a.dataLabel;a.graphic&&a.graphic.hide();b&&(b.hidden="hidden"===b.attr("visibility"),b.hidden||(b.hide(),a.connector&&a.connector.hide()))});f.syncTimeout(function(){b.points&&l(b.points,function(a,b){b=b===(d&&d.pointIndex)?"show":"fadeIn";var c="show"===b?!0:void 0,e=a.dataLabel; | ||
if(a.graphic)a.graphic[b](c);e&&!e.hidden&&(e.fadeIn(),a.connector&&a.connector.fadeIn())})},Math.max(this.chart.options.drilldown.animation.duration-50,0));this.animate=z}};u.prototype.animateDrilldown=function(a){var b=this,d=this.chart.drilldownLevels,c,e=p(this.chart.options.drilldown.animation),g=this.xAxis;a||(l(d,function(a){b.options._ddSeriesId===a.lowerSeriesOptions._ddSeriesId&&(c=a.shapeArgs,c.fill=a.color)}),c.x+=v(g.oldPos,g.pos)-g.pos,l(this.points,function(a){a.shapeArgs.fill=a.color; | ||
a.graphic&&a.graphic.attr(c).animate(q(a.shapeArgs,{fill:a.color||b.color}),e);a.dataLabel&&a.dataLabel.fadeIn(e)}),this.animate=null)};u.prototype.animateDrillupFrom=function(a){var b=p(this.chart.options.drilldown.animation),d=this.group,c=d!==this.chart.columnGroup,e=this;l(e.trackerGroups,function(a){if(e[a])e[a].on("mouseover")});c&&delete this.group;l(this.points,function(e){var g=e.graphic,n=a.shapeArgs,h=function(){g.destroy();d&&c&&(d=d.destroy())};g&&(delete e.graphic,n.fill=a.color,b.duration? | ||
g.animate(n,f.merge(b,{complete:h})):(g.attr(n),h()))})};D&&q(D.prototype,{animateDrillupTo:u.prototype.animateDrillupTo,animateDrillupFrom:u.prototype.animateDrillupFrom,animateDrilldown:function(a){var b=this.chart.drilldownLevels[this.chart.drilldownLevels.length-1],d=this.chart.options.drilldown.animation,c=b.shapeArgs,e=c.start,g=(c.end-e)/this.points.length;a||(l(this.points,function(a,n){var h=a.shapeArgs;c.fill=b.color;h.fill=a.color;if(a.graphic)a.graphic.attr(f.merge(c,{start:e+n*g,end:e+ | ||
(n+1)*g}))[d?"animate":"attr"](h,d)}),this.animate=null)}});f.Point.prototype.doDrilldown=function(a,b,d){var c=this.series.chart,e=c.options.drilldown,g=(e.series||[]).length,f;c.ddDupes||(c.ddDupes=[]);for(;g--&&!f;)e.series[g].id===this.drilldown&&-1===F(this.drilldown,c.ddDupes)&&(f=e.series[g],c.ddDupes.push(this.drilldown));x(c,"drilldown",{point:this,seriesOptions:f,category:b,originalEvent:d,points:void 0!==b&&this.series.xAxis.getDDPoints(b).slice(0)},function(b){var c=b.point.series&&b.point.series.chart, | ||
d=b.seriesOptions;c&&d&&(a?c.addSingleSeriesAsDrilldown(b.point,d):c.addSeriesAsDrilldown(b.point,d))})};f.Axis.prototype.drilldownCategory=function(a,b){C(this.getDDPoints(a),function(d){d&&d.series&&d.series.visible&&d.doDrilldown&&d.doDrilldown(!0,a,b)});this.chart.applyDrilldown()};f.Axis.prototype.getDDPoints=function(a){var b=[];l(this.series,function(d){var c,e=d.xData,f=d.points;for(c=0;c<e.length;c++)if(e[c]===a&&d.options.data[c]&&d.options.data[c].drilldown){b.push(f?f[c]:!0);break}}); | ||
return b};E.prototype.drillable=function(){var a=this.pos,b=this.label,d=this.axis,c="xAxis"===d.coll&&d.getDDPoints,e=c&&d.getDDPoints(a);c&&(b&&e.length?(b.drillable=!0,b.basicStyles||(b.basicStyles=f.merge(b.styles)),b.addClass("highcharts-drilldown-axis-label").css(d.chart.options.drilldown.activeAxisLabelStyle).on("click",function(b){d.drilldownCategory(a,b)})):b&&b.drillable&&(b.styles={},b.css(b.basicStyles),b.on("click",null),b.removeClass("highcharts-drilldown-axis-label")))};r(E.prototype, | ||
"addLabel",function(a){a.call(this);this.drillable()});r(f.Point.prototype,"init",function(a,b,d,c){var e=a.call(this,b,d,c);c=(a=b.xAxis)&&a.ticks[c];e.drilldown&&f.addEvent(e,"click",function(a){b.xAxis&&!1===b.chart.options.drilldown.allowPointDrilldown?b.xAxis.drilldownCategory(e.x,a):e.doDrilldown(void 0,void 0,a)});c&&c.drillable();return e});r(f.Series.prototype,"drawDataLabels",function(a){var b=this.chart.options.drilldown.activeDataLabelStyle,d=this.chart.renderer;a.call(this);l(this.points, | ||
function(a){var c=a.options.dataLabels,f=v(a.dlOptions,c&&c.style,{});a.drilldown&&a.dataLabel&&("contrast"===b.color&&(f.color=d.getContrast(a.color||this.color)),c&&c.color&&(f.color=c.color),a.dataLabel.addClass("highcharts-drilldown-data-label"),a.dataLabel.css(b).css(f))},this)});var y=function(a,b,d){a[d?"addClass":"removeClass"]("highcharts-drilldown-point");a.css({cursor:b})},I=function(a){a.call(this);l(this.points,function(a){a.drilldown&&a.graphic&&y(a.graphic,"pointer",!0)})},J=function(a, | ||
b){var d=a.apply(this,Array.prototype.slice.call(arguments,1));this.drilldown&&this.series.halo&&"hover"===b?y(this.series.halo,"pointer",!0):this.series.halo&&y(this.series.halo,"auto",!1);return d};C(w,function(a){r(a.prototype,"drawTracker",I);r(a.prototype.pointClass.prototype,"setState",J)})})(p)}); | ||
(function(p){"object"===typeof module&&module.exports?module.exports=p:p(Highcharts)})(function(p){(function(e){var p=e.animObject,y=e.noop,z=e.color,A=e.defaultOptions,k=e.each,q=e.extend,E=e.format,F=e.objectEach,t=e.pick,m=e.Chart,n=e.seriesTypes,B=n.pie,n=n.column,u=e.Tick,v=e.fireEvent,C=e.inArray,D=1;q(A.lang,{drillUpText:"\u25c1 Back to {series.name}"});A.drilldown={activeAxisLabelStyle:{cursor:"pointer",color:"#003399",fontWeight:"bold",textDecoration:"underline"},activeDataLabelStyle:{cursor:"pointer", | ||
color:"#003399",fontWeight:"bold",textDecoration:"underline"},animation:{duration:500},drillUpButton:{position:{align:"right",x:-10,y:10}}};e.SVGRenderer.prototype.Element.prototype.fadeIn=function(a){this.attr({opacity:.1,visibility:"inherit"}).animate({opacity:t(this.newOpacity,1)},a||{duration:250})};m.prototype.addSeriesAsDrilldown=function(a,b){this.addSingleSeriesAsDrilldown(a,b);this.applyDrilldown()};m.prototype.addSingleSeriesAsDrilldown=function(a,b){var c=a.series,d=c.xAxis,h=c.yAxis,f, | ||
g=[],w=[],l,r,m;m={color:a.color||c.color};this.drilldownLevels||(this.drilldownLevels=[]);l=c.options._levelNumber||0;(r=this.drilldownLevels[this.drilldownLevels.length-1])&&r.levelNumber!==l&&(r=void 0);b=q(q({_ddSeriesId:D++},m),b);f=C(a,c.points);k(c.chart.series,function(a){a.xAxis!==d||a.isDrilling||(a.options._ddSeriesId=a.options._ddSeriesId||D++,a.options._colorIndex=a.userOptions._colorIndex,a.options._levelNumber=a.options._levelNumber||l,r?(g=r.levelSeries,w=r.levelSeriesOptions):(g.push(a), | ||
w.push(a.options)))});a=q({levelNumber:l,seriesOptions:c.options,levelSeriesOptions:w,levelSeries:g,shapeArgs:a.shapeArgs,bBox:a.graphic?a.graphic.getBBox():{},color:a.isNull?(new e.Color(z)).setOpacity(0).get():z,lowerSeriesOptions:b,pointOptions:c.options.data[f],pointIndex:f,oldExtremes:{xMin:d&&d.userMin,xMax:d&&d.userMax,yMin:h&&h.userMin,yMax:h&&h.userMax},resetZoomButton:this.resetZoomButton},m);this.drilldownLevels.push(a);d&&d.names&&(d.names.length=0);b=a.lowerSeries=this.addSeries(b,!1); | ||
b.options._levelNumber=l+1;d&&(d.oldPos=d.pos,d.userMin=d.userMax=null,h.userMin=h.userMax=null);c.type===b.type&&(b.animate=b.animateDrilldown||y,b.options.animation=!0)};m.prototype.applyDrilldown=function(){var a=this.drilldownLevels,b;a&&0<a.length&&(b=a[a.length-1].levelNumber,k(this.drilldownLevels,function(a){a.levelNumber===b&&k(a.levelSeries,function(a){a.options&&a.options._levelNumber===b&&a.remove(!1)})}));this.resetZoomButton&&(this.resetZoomButton.hide(),delete this.resetZoomButton); | ||
this.pointer.reset();this.redraw();this.showDrillUpButton()};m.prototype.getDrilldownBackText=function(){var a=this.drilldownLevels;if(a&&0<a.length)return a=a[a.length-1],a.series=a.seriesOptions,E(this.options.lang.drillUpText,a)};m.prototype.showDrillUpButton=function(){var a=this,b=this.getDrilldownBackText(),c=a.options.drilldown.drillUpButton,d,h;this.drillUpButton?this.drillUpButton.attr({text:b}).align():(h=(d=c.theme)&&d.states,this.drillUpButton=this.renderer.button(b,null,null,function(){a.drillUp()}, | ||
d,h&&h.hover,h&&h.select).addClass("highcharts-drillup-button").attr({align:c.position.align,zIndex:7}).add().align(c.position,!1,c.relativeTo||"plotBox"))};m.prototype.drillUp=function(){if(this.drilldownLevels&&0!==this.drilldownLevels.length){for(var a=this,b=a.drilldownLevels,c=b[b.length-1].levelNumber,d=b.length,h=a.series,f,g,e,l,m=function(d){var b;k(h,function(a){a.options._ddSeriesId===d._ddSeriesId&&(b=a)});b=b||a.addSeries(d,!1);b.type===e.type&&b.animateDrillupTo&&(b.animate=b.animateDrillupTo); | ||
d===g.seriesOptions&&(l=b)};d--;)if(g=b[d],g.levelNumber===c){b.pop();e=g.lowerSeries;if(!e.chart)for(f=h.length;f--;)if(h[f].options.id===g.lowerSeriesOptions.id&&h[f].options._levelNumber===c+1){e=h[f];break}e.xData=[];k(g.levelSeriesOptions,m);v(a,"drillup",{seriesOptions:g.seriesOptions});l.type===e.type&&(l.drilldownLevel=g,l.options.animation=a.options.drilldown.animation,e.animateDrillupFrom&&e.chart&&e.animateDrillupFrom(g));l.options._levelNumber=c;e.remove(!1);l.xAxis&&(f=g.oldExtremes, | ||
l.xAxis.setExtremes(f.xMin,f.xMax,!1),l.yAxis.setExtremes(f.yMin,f.yMax,!1));g.resetZoomButton&&(a.resetZoomButton=g.resetZoomButton,a.resetZoomButton.show())}v(a,"drillupall");this.redraw();0===this.drilldownLevels.length?this.drillUpButton=this.drillUpButton.destroy():this.drillUpButton.attr({text:this.getDrilldownBackText()}).align();this.ddDupes.length=[]}};m.prototype.callbacks.push(function(){var a=this;a.drilldown={update:function(b,c){e.merge(!0,a.options.drilldown,b);t(c,!0)&&a.redraw()}}}); | ||
e.addEvent(m.prototype,"beforeShowResetZoom",function(){if(this.drillUpButton)return!1});n.prototype.animateDrillupTo=function(a){if(!a){var b=this,c=b.drilldownLevel;k(this.points,function(a){var b=a.dataLabel;a.graphic&&a.graphic.hide();b&&(b.hidden="hidden"===b.attr("visibility"),b.hidden||(b.hide(),a.connector&&a.connector.hide()))});e.syncTimeout(function(){b.points&&k(b.points,function(a,b){b=b===(c&&c.pointIndex)?"show":"fadeIn";var d="show"===b?!0:void 0,g=a.dataLabel;if(a.graphic)a.graphic[b](d); | ||
g&&!g.hidden&&(g.fadeIn(),a.connector&&a.connector.fadeIn())})},Math.max(this.chart.options.drilldown.animation.duration-50,0));this.animate=y}};n.prototype.animateDrilldown=function(a){var b=this,c=this.chart.drilldownLevels,d,e=p(this.chart.options.drilldown.animation),f=this.xAxis;a||(k(c,function(a){b.options._ddSeriesId===a.lowerSeriesOptions._ddSeriesId&&(d=a.shapeArgs,d.fill=a.color)}),d.x+=t(f.oldPos,f.pos)-f.pos,k(this.points,function(a){a.shapeArgs.fill=a.color;a.graphic&&a.graphic.attr(d).animate(q(a.shapeArgs, | ||
{fill:a.color||b.color}),e);a.dataLabel&&a.dataLabel.fadeIn(e)}),this.animate=null)};n.prototype.animateDrillupFrom=function(a){var b=p(this.chart.options.drilldown.animation),c=this.group,d=c!==this.chart.columnGroup,h=this;k(h.trackerGroups,function(a){if(h[a])h[a].on("mouseover")});d&&delete this.group;k(this.points,function(h){var g=h.graphic,f=a.shapeArgs,l=function(){g.destroy();c&&d&&(c=c.destroy())};g&&(delete h.graphic,f.fill=a.color,b.duration?g.animate(f,e.merge(b,{complete:l})):(g.attr(f), | ||
l()))})};B&&q(B.prototype,{animateDrillupTo:n.prototype.animateDrillupTo,animateDrillupFrom:n.prototype.animateDrillupFrom,animateDrilldown:function(a){var b=this.chart.drilldownLevels[this.chart.drilldownLevels.length-1],c=this.chart.options.drilldown.animation,d=b.shapeArgs,h=d.start,f=(d.end-h)/this.points.length;a||(k(this.points,function(a,k){var g=a.shapeArgs;d.fill=b.color;g.fill=a.color;if(a.graphic)a.graphic.attr(e.merge(d,{start:h+k*f,end:h+(k+1)*f}))[c?"animate":"attr"](g,c)}),this.animate= | ||
null)}});e.Point.prototype.doDrilldown=function(a,b,c){var d=this.series.chart,e=d.options.drilldown,f=(e.series||[]).length,g;d.ddDupes||(d.ddDupes=[]);for(;f--&&!g;)e.series[f].id===this.drilldown&&-1===C(this.drilldown,d.ddDupes)&&(g=e.series[f],d.ddDupes.push(this.drilldown));v(d,"drilldown",{point:this,seriesOptions:g,category:b,originalEvent:c,points:void 0!==b&&this.series.xAxis.getDDPoints(b).slice(0)},function(b){var c=b.point.series&&b.point.series.chart,d=b.seriesOptions;c&&d&&(a?c.addSingleSeriesAsDrilldown(b.point, | ||
d):c.addSeriesAsDrilldown(b.point,d))})};e.Axis.prototype.drilldownCategory=function(a,b){F(this.getDDPoints(a),function(c){c&&c.series&&c.series.visible&&c.doDrilldown&&c.doDrilldown(!0,a,b)});this.chart.applyDrilldown()};e.Axis.prototype.getDDPoints=function(a){var b=[];k(this.series,function(c){var d,e=c.xData,f=c.points;for(d=0;d<e.length;d++)if(e[d]===a&&c.options.data[d]&&c.options.data[d].drilldown){b.push(f?f[d]:!0);break}});return b};u.prototype.drillable=function(){var a=this.pos,b=this.label, | ||
c=this.axis,d="xAxis"===c.coll&&c.getDDPoints,h=d&&c.getDDPoints(a);d&&(b&&h.length?(b.drillable=!0,b.basicStyles||(b.basicStyles=e.merge(b.styles)),b.addClass("highcharts-drilldown-axis-label").css(c.chart.options.drilldown.activeAxisLabelStyle).on("click",function(b){c.drilldownCategory(a,b)})):b&&b.drillable&&(b.styles={},b.css(b.basicStyles),b.on("click",null),b.removeClass("highcharts-drilldown-axis-label")))};e.addEvent(u.prototype,"afterRender",u.prototype.drillable);e.addEvent(e.Point.prototype, | ||
"afterInit",function(){var a=this,b=a.series,c=b.xAxis,c=c&&c.ticks[a.x];a.drilldown&&e.addEvent(a,"click",function(c){b.xAxis&&!1===b.chart.options.drilldown.allowPointDrilldown?b.xAxis.drilldownCategory(a.x,c):a.doDrilldown(void 0,void 0,c)});c&&c.drillable();return a});e.addEvent(e.Series.prototype,"afterDrawDataLabels",function(){var a=this.chart.options.drilldown.activeDataLabelStyle,b=this.chart.renderer;k(this.points,function(c){var d=c.options.dataLabels,e=t(c.dlOptions,d&&d.style,{});c.drilldown&& | ||
c.dataLabel&&("contrast"===a.color&&(e.color=b.getContrast(c.color||this.color)),d&&d.color&&(e.color=d.color),c.dataLabel.addClass("highcharts-drilldown-data-label"),c.dataLabel.css(a).css(e))},this)});var x=function(a,b,c){a[c?"addClass":"removeClass"]("highcharts-drilldown-point");a.css({cursor:b})};e.addEvent(e.Series.prototype,"afterDrawTracker",function(){k(this.points,function(a){a.drilldown&&a.graphic&&x(a.graphic,"pointer",!0)})});e.addEvent(e.Point.prototype,"afterSetState",function(){this.drilldown&& | ||
this.series.halo&&"hover"===this.state?x(this.series.halo,"pointer",!0):this.series.halo&&x(this.series.halo,"auto",!1)})})(p)}); |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* Highcharts Drilldown module | ||
@@ -25,3 +25,2 @@ * | ||
*/ | ||
/* eslint max-len: 0 */ | ||
@@ -38,3 +37,2 @@ | ||
pick = H.pick, | ||
wrap = H.wrap, | ||
Chart = H.Chart, | ||
@@ -71,3 +69,4 @@ seriesTypes = H.seriesTypes, | ||
* found in the modules directory of the download package, or online at | ||
* (code.highcharts.com/modules/drilldown.js)[code.highcharts.com/modules/drilldown.js]. | ||
* (code.highcharts.com/modules/drilldown.js)[code.highcharts.com/modules/ | ||
* drilldown.js]. | ||
* | ||
@@ -113,4 +112,5 @@ * @type {Object} | ||
* @type {CSSObject} | ||
* @see In styled mode, active label styles can be set with the `.highcharts-drilldown-axis-label` class. | ||
* @sample {highcharts} highcharts/drilldown/labels/ Label styles | ||
* @see In styled mode, active label styles can be set with the | ||
* `.highcharts-drilldown-axis-label` class. | ||
* @sample {highcharts} highcharts/drilldown/labels/ Label styles | ||
* @default { "cursor": "pointer", "color": "#003399", "fontWeight": "bold", "textDecoration": "underline" } | ||
@@ -189,4 +189,4 @@ * @since 3.0.8 | ||
* Options for the drill up button that appears when drilling down | ||
* on a series. The text for the button is defined in [lang.drillUpText](#lang. | ||
* drillUpText). | ||
* on a series. The text for the button is defined in | ||
* [lang.drillUpText](#lang.drillUpText). | ||
* | ||
@@ -213,11 +213,11 @@ * @type {Object} | ||
/** | ||
* A collection of attributes for the button. The object takes SVG attributes | ||
* like `fill`, `stroke`, `stroke-width` or `r`, the border radius. | ||
* The theme also supports `style`, a collection of CSS properties for | ||
* the text. Equivalent attributes for the hover state are given in | ||
* `theme.states.hover`. | ||
* A collection of attributes for the button. The object takes SVG | ||
* attributes like `fill`, `stroke`, `stroke-width` or `r`, the border | ||
* radius. The theme also supports `style`, a collection of CSS | ||
* properties for the text. Equivalent attributes for the hover state | ||
* are given in `theme.states.hover`. | ||
* | ||
* @type {Object} | ||
* @see In styled mode, drill-up button styles can be applied with the | ||
* `.highcharts-drillup-button` class. | ||
* @see In styled mode, drill-up button styles can be applied with | ||
* the `.highcharts-drillup-button` class. | ||
* @sample {highcharts} highcharts/drilldown/drillupbutton/ | ||
@@ -428,5 +428,7 @@ * Button theming | ||
if (series.xAxis === xAxis && !series.isDrilling) { | ||
series.options._ddSeriesId = series.options._ddSeriesId || ddSeriesId++; | ||
series.options._ddSeriesId = | ||
series.options._ddSeriesId || ddSeriesId++; | ||
series.options._colorIndex = series.userOptions._colorIndex; | ||
series.options._levelNumber = series.options._levelNumber || levelNumber; // #3182 | ||
series.options._levelNumber = | ||
series.options._levelNumber || levelNumber; // #3182 | ||
@@ -450,3 +452,4 @@ if (last) { | ||
shapeArgs: point.shapeArgs, | ||
bBox: point.graphic ? point.graphic.getBBox() : {}, // no graphic in line series with markers disabled | ||
// no graphic in line series with markers disabled | ||
bBox: point.graphic ? point.graphic.getBBox() : {}, | ||
color: point.isNull ? new H.Color(color).setOpacity(0).get() : color, | ||
@@ -497,3 +500,8 @@ lowerSeriesOptions: ddOptions, | ||
each(level.levelSeries, function(series) { | ||
if (series.options && series.options._levelNumber === levelToRemove) { // Not removed, not added as part of a multi-series drilldown | ||
// Not removed, not added as part of a multi-series | ||
// drilldown | ||
if ( | ||
series.options && | ||
series.options._levelNumber === levelToRemove | ||
) { | ||
series.remove(false); | ||
@@ -558,3 +566,7 @@ } | ||
.add() | ||
.align(buttonOptions.position, false, buttonOptions.relativeTo || 'plotBox'); | ||
.align( | ||
buttonOptions.position, | ||
false, | ||
buttonOptions.relativeTo || 'plotBox' | ||
); | ||
} else { | ||
@@ -599,3 +611,6 @@ this.drillUpButton.attr({ | ||
addedSeries = addedSeries || chart.addSeries(seriesOptions, false); | ||
if (addedSeries.type === oldSeries.type && addedSeries.animateDrillupTo) { | ||
if ( | ||
addedSeries.type === oldSeries.type && | ||
addedSeries.animateDrillupTo | ||
) { | ||
addedSeries.animate = addedSeries.animateDrillupTo; | ||
@@ -619,4 +634,8 @@ } | ||
while (seriesI--) { | ||
if (chartSeries[seriesI].options.id === level.lowerSeriesOptions.id && | ||
chartSeries[seriesI].options._levelNumber === levelNumber + 1) { // #3867 | ||
if ( | ||
chartSeries[seriesI].options.id === | ||
level.lowerSeriesOptions.id && | ||
chartSeries[seriesI].options._levelNumber === | ||
levelNumber + 1 | ||
) { // #3867 | ||
oldSeries = chartSeries[seriesI]; | ||
@@ -650,4 +669,12 @@ break; | ||
oldExtremes = level.oldExtremes; | ||
newSeries.xAxis.setExtremes(oldExtremes.xMin, oldExtremes.xMax, false); | ||
newSeries.yAxis.setExtremes(oldExtremes.yMin, oldExtremes.yMax, false); | ||
newSeries.xAxis.setExtremes( | ||
oldExtremes.xMin, | ||
oldExtremes.xMax, | ||
false | ||
); | ||
newSeries.yAxis.setExtremes( | ||
oldExtremes.yMin, | ||
oldExtremes.yMax, | ||
false | ||
); | ||
} | ||
@@ -695,5 +722,5 @@ | ||
// Don't show the reset button if we already are displaying the drillUp button. | ||
wrap(Chart.prototype, 'showResetZoom', function(proceed) { | ||
if (!this.drillUpButton) { | ||
proceed.apply(this, Array.prototype.slice.call(arguments, 1)); | ||
H.addEvent(Chart.prototype, 'beforeShowResetZoom', function() { | ||
if (this.drillUpButton) { | ||
return false; | ||
} | ||
@@ -775,3 +802,6 @@ }); | ||
each(drilldownLevels, function(level) { | ||
if (series.options._ddSeriesId === level.lowerSeriesOptions._ddSeriesId) { | ||
if ( | ||
series.options._ddSeriesId === | ||
level.lowerSeriesOptions._ddSeriesId | ||
) { | ||
animateFrom = level.shapeArgs; | ||
@@ -799,5 +829,7 @@ | ||
.animate( | ||
extend(point.shapeArgs, { | ||
fill: point.color || series.color | ||
}), | ||
extend( | ||
point.shapeArgs, { | ||
fill: point.color || series.color | ||
} | ||
), | ||
animationOptions | ||
@@ -816,4 +848,4 @@ ); | ||
/** | ||
* When drilling up, pull out the individual point graphics from the lower series | ||
* and animate them into the origin point in the upper series. | ||
* When drilling up, pull out the individual point graphics from the lower | ||
* series and animate them into the origin point in the upper series. | ||
*/ | ||
@@ -878,3 +910,5 @@ ColumnSeries.prototype.animateDrillupFrom = function(level) { | ||
animateDrilldown: function(init) { | ||
var level = this.chart.drilldownLevels[this.chart.drilldownLevels.length - 1], | ||
var level = this.chart.drilldownLevels[ | ||
this.chart.drilldownLevels.length - 1 | ||
], | ||
animationOptions = this.chart.options.drilldown.animation, | ||
@@ -912,3 +946,7 @@ animateFrom = level.shapeArgs, | ||
H.Point.prototype.doDrilldown = function(_holdRedraw, category, originalEvent) { | ||
H.Point.prototype.doDrilldown = function( | ||
_holdRedraw, | ||
category, | ||
originalEvent | ||
) { | ||
var series = this.series, | ||
@@ -925,3 +963,6 @@ chart = series.chart, | ||
while (i-- && !seriesOptions) { | ||
if (drilldown.series[i].id === this.drilldown && inArray(this.drilldown, chart.ddDupes) === -1) { | ||
if ( | ||
drilldown.series[i].id === this.drilldown && | ||
inArray(this.drilldown, chart.ddDupes) === -1 | ||
) { | ||
seriesOptions = drilldown.series[i]; | ||
@@ -932,4 +973,4 @@ chart.ddDupes.push(this.drilldown); | ||
// Fire the event. If seriesOptions is undefined, the implementer can check for | ||
// seriesOptions, and call addSeriesAsDrilldown async if necessary. | ||
// Fire the event. If seriesOptions is undefined, the implementer can check | ||
// for seriesOptions, and call addSeriesAsDrilldown async if necessary. | ||
fireEvent(chart, 'drilldown', { | ||
@@ -940,3 +981,6 @@ point: this, | ||
originalEvent: originalEvent, | ||
points: category !== undefined && this.series.xAxis.getDDPoints(category).slice(0) | ||
points: ( | ||
category !== undefined && | ||
this.series.xAxis.getDDPoints(category).slice(0) | ||
) | ||
}, function(e) { | ||
@@ -958,7 +1002,13 @@ var chart = e.point.series && e.point.series.chart, | ||
/** | ||
* Drill down to a given category. This is the same as clicking on an axis label. | ||
* Drill down to a given category. This is the same as clicking on an axis | ||
* label. | ||
*/ | ||
H.Axis.prototype.drilldownCategory = function(x, e) { | ||
objectEach(this.getDDPoints(x), function(point) { | ||
if (point && point.series && point.series.visible && point.doDrilldown) { // #3197 | ||
if ( | ||
point && | ||
point.series && | ||
point.series.visible && | ||
point.doDrilldown | ||
) { // #3197 | ||
point.doDrilldown(true, x, e); | ||
@@ -981,3 +1031,7 @@ } | ||
for (i = 0; i < xData.length; i++) { | ||
if (xData[i] === x && series.options.data[i] && series.options.data[i].drilldown) { | ||
if ( | ||
xData[i] === x && | ||
series.options.data[i] && | ||
series.options.data[i].drilldown | ||
) { | ||
ret.push(points ? points[i] : true); | ||
@@ -1037,16 +1091,14 @@ break; | ||
*/ | ||
wrap(Tick.prototype, 'addLabel', function(proceed) { | ||
proceed.call(this); | ||
this.drillable(); | ||
}); | ||
H.addEvent(Tick.prototype, 'afterRender', Tick.prototype.drillable); | ||
/** | ||
* On initialization of each point, identify its label and make it clickable. Also, provide a | ||
* list of points associated to that label. | ||
* On initialization of each point, identify its label and make it clickable. | ||
* Also, provide a list of points associated to that label. | ||
*/ | ||
wrap(H.Point.prototype, 'init', function(proceed, series, options, x) { | ||
var point = proceed.call(this, series, options, x), | ||
H.addEvent(H.Point.prototype, 'afterInit', function() { | ||
var point = this, | ||
series = point.series, | ||
xAxis = series.xAxis, | ||
tick = xAxis && xAxis.ticks[x]; | ||
tick = xAxis && xAxis.ticks[point.x]; | ||
@@ -1057,3 +1109,6 @@ if (point.drilldown) { | ||
H.addEvent(point, 'click', function(e) { | ||
if (series.xAxis && series.chart.options.drilldown.allowPointDrilldown === false) { | ||
if ( | ||
series.xAxis && | ||
series.chart.options.drilldown.allowPointDrilldown === false | ||
) { | ||
series.xAxis.drilldownCategory(point.x, e); // #5822, x changed | ||
@@ -1075,8 +1130,6 @@ } else { | ||
wrap(H.Series.prototype, 'drawDataLabels', function(proceed) { | ||
H.addEvent(H.Series.prototype, 'afterDrawDataLabels', function() { | ||
var css = this.chart.options.drilldown.activeDataLabelStyle, | ||
renderer = this.chart.renderer; | ||
proceed.call(this); | ||
each(this.points, function(point) { | ||
@@ -1092,3 +1145,5 @@ var dataLabelsOptions = point.options.dataLabels, | ||
if (css.color === 'contrast') { | ||
pointCSS.color = renderer.getContrast(point.color || this.color); | ||
pointCSS.color = renderer.getContrast( | ||
point.color || this.color | ||
); | ||
} | ||
@@ -1113,3 +1168,5 @@ | ||
var applyCursorCSS = function(element, cursor, addClass) { | ||
element[addClass ? 'addClass' : 'removeClass']('highcharts-drilldown-point'); | ||
element[addClass ? 'addClass' : 'removeClass']( | ||
'highcharts-drilldown-point' | ||
); | ||
@@ -1124,4 +1181,3 @@ | ||
// Mark the trackers with a pointer | ||
var drawTrackerWrapper = function(proceed) { | ||
proceed.call(this); | ||
H.addEvent(H.Series.prototype, 'afterDrawTracker', function() { | ||
each(this.points, function(point) { | ||
@@ -1132,8 +1188,7 @@ if (point.drilldown && point.graphic) { | ||
}); | ||
}; | ||
}); | ||
var setPointStateWrapper = function(proceed, state) { | ||
var ret = proceed.apply(this, Array.prototype.slice.call(arguments, 1)); | ||
if (this.drilldown && this.series.halo && state === 'hover') { | ||
H.addEvent(H.Point.prototype, 'afterSetState', function() { | ||
if (this.drilldown && this.series.halo && this.state === 'hover') { | ||
applyCursorCSS(this.series.halo, 'pointer', true); | ||
@@ -1143,9 +1198,2 @@ } else if (this.series.halo) { | ||
} | ||
return ret; | ||
}; | ||
objectEach(seriesTypes, function(seriesType) { | ||
wrap(seriesType.prototype, 'drawTracker', drawTrackerWrapper); | ||
wrap(seriesType.prototype.pointClass.prototype, 'setState', setPointStateWrapper); | ||
}); | ||
@@ -1152,0 +1200,0 @@ |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Exporting module | ||
@@ -4,0 +4,0 @@ |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* Exporting module | ||
@@ -4,0 +4,0 @@ * |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Exporting module | ||
@@ -4,0 +4,0 @@ |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Highcharts funnel module | ||
@@ -4,0 +4,0 @@ |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* Highcharts funnel module | ||
@@ -118,3 +118,5 @@ * | ||
/** @ignore */ | ||
/** | ||
* @ignore | ||
*/ | ||
size: true, // to avoid adapting to data label size in Pie.drawDataLabels | ||
@@ -121,0 +123,0 @@ |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Gantt series | ||
@@ -4,0 +4,0 @@ |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* Gantt series | ||
@@ -921,3 +921,3 @@ * | ||
} | ||
*/ | ||
//*/ | ||
@@ -924,0 +924,0 @@ // Point class properties |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
GridAxis | ||
@@ -4,0 +4,0 @@ |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* GridAxis | ||
@@ -4,0 +4,0 @@ * |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ (c) 2009-2017 Torstein Honsi |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -131,7 +131,10 @@ * (c) 2009-2017 Torstein Honsi | ||
/** | ||
* The start of the value range that the data class represents, relating | ||
* to the point value. | ||
* The start of the value range that the data class represents, | ||
* relating to the point value. | ||
* | ||
* The range of each `dataClass` is closed in both ends, but can be | ||
* overridden by the next `dataClass`. | ||
* | ||
* @type {Number} | ||
* @product highcharts highmaps | ||
* @type {Number} | ||
* @product highcharts highmaps | ||
* @apioption colorAxis.dataClasses.from | ||
@@ -141,12 +144,14 @@ */ | ||
/** | ||
* The name of the data class as it appears in the legend. If no name | ||
* is given, it is automatically created based on the `from` and `to` | ||
* values. For full programmatic control, [legend.labelFormatter](#legend. | ||
* labelFormatter) can be used. In the formatter, `this.from` and | ||
* `this.to` can be accessed. | ||
* The name of the data class as it appears in the legend. | ||
* If no name is given, it is automatically created based on the | ||
* `from` and `to` values. For full programmatic control, | ||
* [legend.labelFormatter](#legend.labelFormatter) can be used. | ||
* In the formatter, `this.from` and `this.to` can be accessed. | ||
* | ||
* @type {String} | ||
* @sample {highmaps} maps/coloraxis/dataclasses-name/ Named data classes | ||
* @sample {highmaps} maps/coloraxis/dataclasses-labelformatter/ Formatted data classes | ||
* @product highcharts highmaps | ||
* @type {String} | ||
* @sample {highmaps} maps/coloraxis/dataclasses-name/ | ||
* Named data classes | ||
* @sample {highmaps} maps/coloraxis/dataclasses-labelformatter/ | ||
* Formatted data classes | ||
* @product highcharts highmaps | ||
* @apioption colorAxis.dataClasses.name | ||
@@ -156,11 +161,16 @@ */ | ||
/** | ||
* The end of the value range that the data class represents, relating | ||
* to the point value. | ||
* The end of the value range that the data class represents, | ||
* relating to the point value. | ||
* | ||
* The range of each `dataClass` is closed in both ends, but can be | ||
* overridden by the next `dataClass`. | ||
* | ||
* @type {Number} | ||
* @product highcharts highmaps | ||
* @type {Number} | ||
* @product highcharts highmaps | ||
* @apioption colorAxis.dataClasses.to | ||
*/ | ||
/** @ignore */ | ||
/** | ||
* @ignore | ||
*/ | ||
lineWidth: 0, | ||
@@ -296,3 +306,5 @@ | ||
/** @ignore */ | ||
/** | ||
* @ignore | ||
*/ | ||
width: 0.01, | ||
@@ -414,2 +426,11 @@ | ||
/** | ||
* Fires when the legend item belonging to the colorAxis is clicked. | ||
* One parameter, `event`, is passed to the function. | ||
* | ||
* @type {Function} | ||
* @product highcharts highmaps | ||
* @apioption colorAxis.events.legendItemClick | ||
*/ | ||
/** | ||
* Whether to display the colorAxis in the legend. | ||
@@ -1137,3 +1158,3 @@ * | ||
* @extends {plotOptions.scatter} | ||
* @excluding marker,pointRange | ||
* @excluding marker,pointRange,pointPlacement | ||
* @product highcharts highmaps | ||
@@ -1226,3 +1247,5 @@ * @optionparent plotOptions.heatmap | ||
/** @ignore */ | ||
/** | ||
* @ignore | ||
*/ | ||
marker: null, | ||
@@ -1240,3 +1263,5 @@ | ||
hover: { | ||
/** @ignore */ | ||
/** | ||
* @ignore | ||
*/ | ||
halo: false, // #3406, halo is disabled on heatmaps by default | ||
@@ -1375,3 +1400,3 @@ | ||
* @extends series,plotOptions.heatmap | ||
* @excluding dataParser,dataURL,stack | ||
* @excluding dataParser,dataURL,marker,pointRange,stack | ||
* @product highcharts highmaps | ||
@@ -1378,0 +1403,0 @@ * @apioption series.heatmap |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -9,8 +9,8 @@ (c) 2010-2017 Highsoft AS | ||
*/ | ||
(function(d){"object"===typeof module&&module.exports?module.exports=d:d(Highcharts)})(function(d){var t=function(a){var d=a.each,k=a.Series,l=a.addEvent,n=a.fireEvent,e=a.wrap,h={init:function(){k.prototype.init.apply(this,arguments);this.initialised=!1;this.baseSeries=null;this.eventRemovers=[];this.addEvents()},setDerivedData:a.noop,setBaseSeries:function(){var m=this.chart,a=this.options.baseSeries;this.baseSeries=a&&(m.series[a]||m.get(a))||null},addEvents:function(){var a=this,g;g=l(this.chart, | ||
"seriesLinked",function(){a.setBaseSeries();a.baseSeries&&!a.initialised&&(a.setDerivedData(),a.addBaseSeriesEvents(),a.initialised=!0)});this.eventRemovers.push(g)},addBaseSeriesEvents:function(){var a=this,g,d;g=l(a.baseSeries,"updatedData",function(){a.setDerivedData()});d=l(a.baseSeries,"destroy",function(){a.baseSeries=null;a.initialised=!1});a.eventRemovers.push(g,d)},destroy:function(){d(this.eventRemovers,function(a){a()});k.prototype.destroy.apply(this,arguments)}};e(a.Chart.prototype,"linkSeries", | ||
function(a){a.call(this);n(this,"seriesLinked")});return h}(d);(function(a,d){function k(a){return function(b){return Math.floor(b/a)*a}}var l=a.each,n=a.objectEach,e=a.seriesType,h=a.correctFloat,m=a.isNumber,g=a.arrayMax,p=a.arrayMin;a=a.merge;var f={"square-root":function(a){return Math.round(Math.sqrt(a.options.data.length))},sturges:function(a){return Math.ceil(Math.log(a.options.data.length)*Math.LOG2E)},rice:function(a){return Math.ceil(2*Math.pow(a.options.data.length,1/3))}};e("histogram", | ||
"column",{binsNumber:"square-root",binWidth:void 0,pointPadding:0,groupPadding:0,grouping:!1,pointPlacement:"between",tooltip:{headerFormat:"",pointFormat:'\x3cspan style\x3d"font-size:10px"\x3e{point.x} - {point.x2}\x3c/span\x3e\x3cbr/\x3e\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e {series.name} \x3cb\x3e{point.y}\x3c/b\x3e\x3cbr/\x3e'}},a(d,{setDerivedData:function(){var a=this.derivedData(this.baseSeries.yData,this.binsNumber(),this.options.binWidth);this.setData(a,!1)},derivedData:function(a, | ||
c,f){var b=g(a),d=p(a),r={},e=[],q;f=this.binWidth=m(f)?f:(b-d)/c;q=k(f);for(c=q(d);c<=b;c+=f)r[h(q(c))]=0;l(a,function(a){a=h(q(a));r[a]++});n(r,function(a,b){e.push({x:Number(b),y:a,x2:h(Number(b)+f)})});e.sort(function(a,b){return a.x-b.x});return e},binsNumber:function(){var a=this.options.binsNumber,c=f[a]||"function"===typeof a&&a;return Math.ceil(c&&c(this.baseSeries)||(m(a)?a:f["square-root"](this.baseSeries)))}}))})(d,t);(function(a,d){function k(a){var b=a.length;a=p(a,function(a,b){return a+ | ||
b},0);return 0<b&&a/b}function l(a,b){var c=a.length;b=m(b)?b:k(a);a=p(a,function(a,c){c-=b;return a+c*c},0);return 1<c&&Math.sqrt(a/(c-1))}function n(a,b,c){a-=b;return Math.exp(-(a*a)/(2*c*c))/(c*Math.sqrt(2*Math.PI))}var e=a.seriesType,h=a.correctFloat,m=a.isNumber,g=a.merge,p=a.reduce;e("bellcurve","areaspline",{intervals:3,pointsInInterval:3,marker:{enabled:!1}},g(d,{setMean:function(){this.mean=h(k(this.baseSeries.yData))},setStandardDeviation:function(){this.standardDeviation=h(l(this.baseSeries.yData, | ||
this.mean))},setDerivedData:function(){1<this.baseSeries.yData.length&&(this.setMean(),this.setStandardDeviation(),this.setData(this.derivedData(this.mean,this.standardDeviation),!1))},derivedData:function(a,b){var c=this.options.intervals,d=this.options.pointsInInterval,e=a-c*b,c=c*d*2+1,d=b/d,g=[],f;for(f=0;f<c;f++)g.push([e,n(e,a,b)]),e+=d;return g}}))})(d,t)}); | ||
(function(d){"object"===typeof module&&module.exports?module.exports=d:d(Highcharts)})(function(d){var u=function(a){var d=a.each,h=a.Series,k=a.addEvent,l=a.fireEvent,m=a.wrap,f={init:function(){h.prototype.init.apply(this,arguments);this.initialised=!1;this.baseSeries=null;this.eventRemovers=[];this.addEvents()},setDerivedData:a.noop,setBaseSeries:function(){var g=this.chart,a=this.options.baseSeries;this.baseSeries=a&&(g.series[a]||g.get(a))||null},addEvents:function(){var a=this,e;e=k(this.chart, | ||
"seriesLinked",function(){a.setBaseSeries();a.baseSeries&&!a.initialised&&(a.setDerivedData(),a.addBaseSeriesEvents(),a.initialised=!0)});this.eventRemovers.push(e)},addBaseSeriesEvents:function(){var a=this,e,d;e=k(a.baseSeries,"updatedData",function(){a.setDerivedData()});d=k(a.baseSeries,"destroy",function(){a.baseSeries=null;a.initialised=!1});a.eventRemovers.push(e,d)},destroy:function(){d(this.eventRemovers,function(a){a()});h.prototype.destroy.apply(this,arguments)}};m(a.Chart.prototype,"linkSeries", | ||
function(a){a.call(this);l(this,"seriesLinked")});return f}(d);(function(a,d){function h(a){return function(b){return Math.floor(b/a)*a}}function k(a){return a}var l=a.each,m=a.objectEach,f=a.seriesType,g=a.correctFloat,e=a.isNumber,p=a.arrayMax,q=a.arrayMin;a=a.merge;var c={"square-root":function(a){return Math.round(Math.sqrt(a.options.data.length))},sturges:function(a){return Math.ceil(Math.log(a.options.data.length)*Math.LOG2E)},rice:function(a){return Math.ceil(2*Math.pow(a.options.data.length, | ||
1/3))}};f("histogram","column",{binsNumber:"square-root",binWidth:void 0,pointPadding:0,groupPadding:0,grouping:!1,pointPlacement:"between",tooltip:{headerFormat:"",pointFormat:'\x3cspan style\x3d"font-size:10px"\x3e{point.x} - {point.x2}\x3c/span\x3e\x3cbr/\x3e\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e {series.name} \x3cb\x3e{point.y}\x3c/b\x3e\x3cbr/\x3e'}},a(d,{setDerivedData:function(){var a=this.derivedData(this.baseSeries.yData,this.binsNumber(),this.options.binWidth);this.setData(a, | ||
!1)},derivedData:function(a,n,c){var b=p(a),d=q(a),t={},f=[],r;r=(c=this.binWidth=e(c)?c:(b-d)/n)?h(c):k;for(n=r(d);n<=b;n+=c||1)t[g(r(n))]=0;l(a,function(a){a=g(r(a));t[a]++});m(t,function(a,b){f.push({x:Number(b),y:a,x2:g(Number(b)+c)})});f.sort(function(a,b){return a.x-b.x});return f},binsNumber:function(){var a=this.options.binsNumber,q=c[a]||"function"===typeof a&&a;return Math.ceil(q&&q(this.baseSeries)||(e(a)?a:c["square-root"](this.baseSeries)))}}))})(d,u);(function(a,d){function h(a){var c= | ||
a.length;a=p(a,function(a,c){return a+c},0);return 0<c&&a/c}function k(a,c){var b=a.length;c=g(c)?c:h(a);a=p(a,function(a,b){b-=c;return a+b*b},0);return 1<b&&Math.sqrt(a/(b-1))}function l(a,c,b){a-=c;return Math.exp(-(a*a)/(2*b*b))/(b*Math.sqrt(2*Math.PI))}var m=a.seriesType,f=a.correctFloat,g=a.isNumber,e=a.merge,p=a.reduce;m("bellcurve","areaspline",{intervals:3,pointsInInterval:3,marker:{enabled:!1}},e(d,{setMean:function(){this.mean=f(h(this.baseSeries.yData))},setStandardDeviation:function(){this.standardDeviation= | ||
f(k(this.baseSeries.yData,this.mean))},setDerivedData:function(){1<this.baseSeries.yData.length&&(this.setMean(),this.setStandardDeviation(),this.setData(this.derivedData(this.mean,this.standardDeviation),!1))},derivedData:function(a,c){var b=this.options.intervals,d=this.options.pointsInInterval,e=a-b*c,b=b*d*2+1,d=c/d,f=[],g;for(g=0;g<b;g++)f.push([e,l(e,a,c)]),e+=d;return f}}))})(d,u)}); |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -212,2 +212,13 @@ * (c) 2010-2017 Highsoft AS | ||
/** | ||
* Identity function - takes a param and returns that param | ||
* It is used to grouping data with the same values | ||
* | ||
* @param {number} y - value | ||
* @returns {number} | ||
**/ | ||
function identity(y) { | ||
return y; | ||
} | ||
/** | ||
* Histogram class | ||
@@ -288,5 +299,7 @@ * | ||
fitToBin = fitToBinLeftClosed(binWidth); | ||
fitToBin = binWidth ? fitToBinLeftClosed(binWidth) : identity; | ||
for (x = fitToBin(min); x <= max; x += binWidth) { | ||
// If binWidth is 0 then max and min are equaled, | ||
// increment the x with some positive value to quit the loop | ||
for (x = fitToBin(min); x <= max; x += (binWidth || 1)) { | ||
frequencies[correctFloat(fitToBin(x))] = 0; | ||
@@ -464,39 +477,2 @@ } | ||
/** | ||
* A `bellcurve` series. If the [type](#series.bellcurve.type) option is not | ||
* specified, it is inherited from [chart.type](#chart.type). | ||
* | ||
* For options that apply to multiple series, it is recommended to add | ||
* them to the [plotOptions.series](#plotOptions.series) options structure. | ||
* To apply to all series of this specific type, apply it to | ||
* [plotOptions.bellcurve](#plotOptions.bellcurve). | ||
* | ||
* @type {Object} | ||
* @since 6.0.0 | ||
* @extends series,plotOptions.bellcurve | ||
* @excluding dataParser,dataURL,data | ||
* @product highcharts | ||
* @apioption series.bellcurve | ||
**/ | ||
/** | ||
* An integer identifying the index to use for the base series, or a string | ||
* representing the id of the series. | ||
* | ||
* @type {Number|String} | ||
* @default undefined | ||
* @apioption series.bellcurve.baseSeries | ||
**/ | ||
/** | ||
* An array of data points for the series. For the `bellcurve` series type, | ||
* points are calculated dynamically. | ||
* | ||
* @type {Array<Object|Array>} | ||
* @since 6.0.0 | ||
* @extends series.areaspline.data | ||
* @product highcharts | ||
* @apioption series.bellcurve.data | ||
**/ | ||
}, merge(derivedSeriesMixin, { | ||
@@ -541,3 +517,41 @@ setMean: function() { | ||
/** | ||
* A `bellcurve` series. If the [type](#series.bellcurve.type) option is not | ||
* specified, it is inherited from [chart.type](#chart.type). | ||
* | ||
* For options that apply to multiple series, it is recommended to add | ||
* them to the [plotOptions.series](#plotOptions.series) options structure. | ||
* To apply to all series of this specific type, apply it to | ||
* [plotOptions.bellcurve](#plotOptions.bellcurve). | ||
* | ||
* @type {Object} | ||
* @since 6.0.0 | ||
* @extends series,plotOptions.bellcurve | ||
* @excluding dataParser,dataURL,data | ||
* @product highcharts | ||
* @apioption series.bellcurve | ||
*/ | ||
/** | ||
* An integer identifying the index to use for the base series, or a string | ||
* representing the id of the series. | ||
* | ||
* @type {Number|String} | ||
* @default undefined | ||
* @apioption series.bellcurve.baseSeries | ||
*/ | ||
/** | ||
* An array of data points for the series. For the `bellcurve` series type, | ||
* points are calculated dynamically. | ||
* | ||
* @type {Array<Object|Array>} | ||
* @since 6.0.0 | ||
* @extends series.areaspline.data | ||
* @product highcharts | ||
* @apioption series.bellcurve.data | ||
*/ | ||
}(Highcharts, derivedSeriesMixin)); | ||
})); |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Item series type for Highcharts |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * Item series type for Highcharts |
/* | ||
Highmaps JS v6.0.6 (2018-02-05) | ||
Highmaps JS v6.0.7 (2018-02-16) | ||
Highmaps as a plugin for Highcharts or Highstock. | ||
@@ -4,0 +4,0 @@ |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Plugin for displaying a message when there is no data visible in chart. | ||
@@ -4,0 +4,0 @@ |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* Plugin for displaying a message when there is no data visible in chart. | ||
@@ -43,3 +43,5 @@ * | ||
* @since 3.0.8 | ||
* @product highcharts | ||
* @product highcharts highstock | ||
* @sample highcharts/no-data-to-display/no-data-line | ||
* No-data text | ||
* @apioption lang.noData | ||
@@ -56,2 +58,7 @@ */ | ||
* @type {Object} | ||
* | ||
* @sample highcharts/no-data-to-display/no-data-line | ||
* Line chart with no-data module | ||
* @sample highcharts/no-data-to-display/no-data-pie | ||
* Pie chart with no-data module | ||
* @optionparent noData | ||
@@ -133,2 +140,5 @@ */ | ||
* CSS styles for the no-data label. | ||
* | ||
* @sample highcharts/no-data-to-display/no-data-line | ||
* Styled no-data text | ||
* @optionparent noData.style | ||
@@ -135,0 +145,0 @@ */ |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Client side exporting module | ||
@@ -19,2 +19,2 @@ | ||
function(a,e){var d=this,b=c.merge(d.options.exporting,a),f=function(){if(!1===b.fallbackToExportServer)if(b.error)b.error(b);else throw"Fallback to export server disabled";else d.exportChart(b)};B&&("application/pdf"===b.type||d.container.getElementsByTagName("image").length&&"image/svg+xml"!==b.type)||"application/pdf"===b.type&&d.container.getElementsByTagName("image").length?f():d.getSVGForLocalExport(b,e,f,function(a){-1<a.indexOf("\x3cforeignObject")&&"image/svg+xml"!==b.type?f():c.downloadSVGLocal(a, | ||
b,f)})};C(!0,c.getOptions().exporting,{libURL:"https://code.highcharts.com/6.0.6/lib/",menuItemDefinitions:{downloadPNG:{textKey:"downloadPNG",onclick:function(){this.exportChartLocal()}},downloadJPEG:{textKey:"downloadJPEG",onclick:function(){this.exportChartLocal({type:"image/jpeg"})}},downloadSVG:{textKey:"downloadSVG",onclick:function(){this.exportChartLocal({type:"image/svg+xml"})}},downloadPDF:{textKey:"downloadPDF",onclick:function(){this.exportChartLocal({type:"application/pdf"})}}}})})(n)}); | ||
b,f)})};C(!0,c.getOptions().exporting,{libURL:"https://code.highcharts.com/6.0.7/lib/",menuItemDefinitions:{downloadPNG:{textKey:"downloadPNG",onclick:function(){this.exportChartLocal()}},downloadJPEG:{textKey:"downloadJPEG",onclick:function(){this.exportChartLocal({type:"image/jpeg"})}},downloadSVG:{textKey:"downloadSVG",onclick:function(){this.exportChartLocal({type:"image/svg+xml"})}},downloadPDF:{textKey:"downloadPDF",onclick:function(){this.exportChartLocal({type:"application/pdf"})}}}})})(n)}); |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* Client side exporting module | ||
@@ -649,3 +649,3 @@ * | ||
merge(true, Highcharts.getOptions().exporting, { | ||
libURL: 'https://code.highcharts.com/6.0.6/lib/', | ||
libURL: 'https://code.highcharts.com/6.0.7/lib/', | ||
@@ -652,0 +652,0 @@ // When offline-exporting is loaded, redefine the menu item definitions |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Old IE (v6, v7, v8) module for Highcharts v6+. | ||
@@ -10,3 +10,3 @@ | ||
*/ | ||
(function(l){"object"===typeof module&&module.exports?module.exports=l:l(Highcharts)})(function(l){(function(d){var w,g;g=d.Chart;var A=d.createElement,l=d.css,E=d.defined,n=d.deg2rad,F=d.discardElement,h=d.doc,I=d.each,G=d.erase,B=d.extend;w=d.extendClass;var M=d.isArray,K=d.isNumber,C=d.isObject,N=d.merge,L=d.noop,x=d.pick,t=d.pInt,D=d.svg,y=d.SVGElement,u=d.SVGRenderer,v=d.win,O=d.wrap;d.getOptions().global.VMLRadialGradientURL="http://code.highcharts.com/6.0.6/gfx/vml-radial-gradient.png";h&& | ||
(function(l){"object"===typeof module&&module.exports?module.exports=l:l(Highcharts)})(function(l){(function(d){var w,g;g=d.Chart;var A=d.createElement,l=d.css,E=d.defined,n=d.deg2rad,F=d.discardElement,h=d.doc,I=d.each,G=d.erase,B=d.extend;w=d.extendClass;var M=d.isArray,K=d.isNumber,C=d.isObject,N=d.merge,L=d.noop,x=d.pick,t=d.pInt,D=d.svg,y=d.SVGElement,u=d.SVGRenderer,v=d.win,O=d.wrap;d.getOptions().global.VMLRadialGradientURL="http://code.highcharts.com/6.0.7/gfx/vml-radial-gradient.png";h&& | ||
!h.defaultView&&(d.getStyle=function(a,b){var c={width:"clientWidth",height:"clientHeight"}[b];if(a.style[b])return d.pInt(a.style[b]);"opacity"===b&&(b="filter");if(c)return a.style.zoom=1,Math.max(a[c]-2*d.getStyle(a,"padding"),0);a=a.currentStyle[b.replace(/\-(\w)/g,function(a,b){return b.toUpperCase()})];"filter"===b&&(a=a.replace(/alpha\(opacity=([0-9]+)\)/,function(a,b){return b/100}));return""===a?1:d.pInt(a)});Array.prototype.forEach||(d.forEachPolyfill=function(a,b){for(var c=0,e=this.length;c< | ||
@@ -23,15 +23,15 @@ e;c++)if(!1===a.call(b,this[c],c,this))return c});Array.prototype.indexOf||(d.indexOfPolyfill=function(a){var b,c=0;if(a)for(b=a.length;c<b;c++)if(a[c]===this)return c;return-1});Array.prototype.filter||(d.filterPolyfill=function(a){for(var b=[],c=0,e=this.length;c<e;c++)a(this[c],c)&&b.push(this[c]);return b});Object.prototype.keys||(d.keysPolyfill=function(a){var b=[],c=Object.prototype.hasOwnProperty,e;for(e in a)c.call(a,e)&&b.push(e);return b});Array.prototype.reduce||(d.reducePolyfill=function(a, | ||
(m=this.cutOffPath(r.value,J+.5)),k=['\x3cshape isShadow\x3d"true" strokeweight\x3d"',J,'" filled\x3d"false" path\x3d"',m,'" coordsize\x3d"10 10" style\x3d"',f.style.cssText,'" /\x3e'],q=A(h.prepVML(k),null,{left:t(g.left)+x(a.offsetX,1),top:t(g.top)+x(a.offsetY,1)}),c&&(q.cutOff=J+1),k=['\x3cstroke color\x3d"',a.color||"#000000",'" opacity\x3d"',n*d,'"/\x3e'],A(h.prepVML(k),null,null,q),b?b.element.appendChild(q):f.parentNode.insertBefore(q,f),e.push(q);this.shadows=e}return this},updateShadows:L, | ||
setAttr:function(a,b){this.docMode8?this.element[a]=b:this.element.setAttribute(a,b)},classSetter:function(a){(this.added?this.element:this).className=a},dashstyleSetter:function(a,b,c){(c.getElementsByTagName("stroke")[0]||A(this.renderer.prepVML(["\x3cstroke/\x3e"]),null,null,c))[b]=a||"solid";this[b]=a},dSetter:function(a,b,c){var e=this.shadows;a=a||[];this.d=a.join&&a.join(" ");c.path=a=this.pathToVML(a);if(e)for(c=e.length;c--;)e[c].path=e[c].cutOff?this.cutOffPath(a,e[c].cutOff):a;this.setAttr(b, | ||
a)},fillSetter:function(a,b,c){var e=c.nodeName;"SPAN"===e?c.style.color=a:"IMG"!==e&&(c.filled="none"!==a,this.setAttr("fillcolor",this.renderer.color(a,c,b,this)))},"fill-opacitySetter":function(a,b,c){A(this.renderer.prepVML(["\x3c",b.split("-")[0],' opacity\x3d"',a,'"/\x3e']),null,null,c)},opacitySetter:L,rotationSetter:function(a,b,c){c=c.style;this[b]=c[b]=a;c.left=-Math.round(Math.sin(a*n)+1)+"px";c.top=Math.round(Math.cos(a*n))+"px"},strokeSetter:function(a,b,c){this.setAttr("strokecolor", | ||
this.renderer.color(a,c,b,this))},"stroke-widthSetter":function(a,b,c){c.stroked=!!a;this[b]=a;K(a)&&(a+="px");this.setAttr("strokeweight",a)},titleSetter:function(a,b){this.setAttr(b,a)},visibilitySetter:function(a,b,c){"inherit"===a&&(a="visible");this.shadows&&I(this.shadows,function(c){c.style[b]=a});"DIV"===c.nodeName&&(a="hidden"===a?"-999em":0,this.docMode8||(c.style[b]=a?"visible":"hidden"),b="top");c.style[b]=a},xSetter:function(a,b,c){this[b]=a;"x"===b?b="left":"y"===b&&(b="top");this.updateClipping? | ||
(this[b]=a,this.updateClipping()):c.style[b]=a},zIndexSetter:function(a,b,c){c.style[b]=a}},g["stroke-opacitySetter"]=g["fill-opacitySetter"],d.VMLElement=g=w(y,g),g.prototype.ySetter=g.prototype.widthSetter=g.prototype.heightSetter=g.prototype.xSetter,g={Element:g,isIE8:-1<v.navigator.userAgent.indexOf("MSIE 8.0"),init:function(a,b,c){var e,d;this.alignedObjects=[];e=this.createElement("div").css({position:"relative"});d=e.element;a.appendChild(e.element);this.isVML=!0;this.box=d;this.boxWrapper= | ||
e;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount=0;this.setSize(b,c,!1);if(!h.namespaces.hcv){h.namespaces.add("hcv","urn:schemas-microsoft-com:vml");try{h.createStyleSheet().cssText="hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke{ behavior:url(#default#VML); display: inline-block; } "}catch(f){h.styleSheets[0].cssText+="hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke{ behavior:url(#default#VML); display: inline-block; } "}}},isHidden:function(){return!this.box.offsetWidth}, | ||
clipRect:function(a,b,c,e){var d=this.createElement(),f=C(a);return B(d,{members:[],count:0,left:(f?a.x:a)+1,top:(f?a.y:b)+1,width:(f?a.width:c)-1,height:(f?a.height:e)-1,getCSS:function(a){var b=a.element,c=b.nodeName,e=a.inverted,d=this.top-("shape"===c?b.offsetTop:0),f=this.left,b=f+this.width,p=d+this.height,d={clip:"rect("+Math.round(e?f:d)+"px,"+Math.round(e?p:b)+"px,"+Math.round(e?b:p)+"px,"+Math.round(e?d:f)+"px)"};!e&&a.docMode8&&"DIV"===c&&B(d,{width:b+"px",height:p+"px"});return d},updateClipping:function(){I(d.members, | ||
function(a){a.element&&a.css(d.getCSS(a))})}})},color:function(a,b,c,e){var p=this,f,h=/^rgba/,q,g,k="none";a&&a.linearGradient?g="gradient":a&&a.radialGradient&&(g="pattern");if(g){var r,l,m=a.linearGradient||a.radialGradient,n,t,u,v,w,x="";a=a.stops;var y,B=[],C=function(){q=['\x3cfill colors\x3d"'+B.join(",")+'" opacity\x3d"',u,'" o:opacity2\x3d"',t,'" type\x3d"',g,'" ',x,'focus\x3d"100%" method\x3d"any" /\x3e'];A(p.prepVML(q),null,null,b)};n=a[0];y=a[a.length-1];0<n[0]&&a.unshift([0,n[1]]);1> | ||
y[0]&&a.push([1,y[1]]);I(a,function(a,b){h.test(a[1])?(f=d.color(a[1]),r=f.get("rgb"),l=f.get("a")):(r=a[1],l=1);B.push(100*a[0]+"% "+r);b?(u=l,v=r):(t=l,w=r)});if("fill"===c)if("gradient"===g)c=m.x1||m[0]||0,a=m.y1||m[1]||0,n=m.x2||m[2]||0,m=m.y2||m[3]||0,x='angle\x3d"'+(90-180*Math.atan((m-a)/(n-c))/Math.PI)+'"',C();else{var k=m.r,D=2*k,E=2*k,F=m.cx,G=m.cy,H=b.radialReference,z,k=function(){H&&(z=e.getBBox(),F+=(H[0]-z.x)/z.width-.5,G+=(H[1]-z.y)/z.height-.5,D*=H[2]/z.width,E*=H[2]/z.height);x= | ||
'src\x3d"'+d.getOptions().global.VMLRadialGradientURL+'" size\x3d"'+D+","+E+'" origin\x3d"0.5,0.5" position\x3d"'+F+","+G+'" color2\x3d"'+w+'" ';C()};e.added?k():e.onAdd=k;k=v}else k=r}else h.test(a)&&"IMG"!==b.tagName?(f=d.color(a),e[c+"-opacitySetter"](f.get("a"),c,b),k=f.get("rgb")):(k=b.getElementsByTagName(c),k.length&&(k[0].opacity=1,k[0].type="solid"),k=a);return k},prepVML:function(a){var b=this.isIE8;a=a.join("");b?(a=a.replace("/\x3e",' xmlns\x3d"urn:schemas-microsoft-com:vml" /\x3e'),a= | ||
-1===a.indexOf('style\x3d"')?a.replace("/\x3e",' style\x3d"display:inline-block;behavior:url(#default#VML);" /\x3e'):a.replace('style\x3d"','style\x3d"display:inline-block;behavior:url(#default#VML);')):a=a.replace("\x3c","\x3chcv:");return a},text:u.prototype.html,path:function(a){var b={coordsize:"10 10"};M(a)?b.d=a:C(a)&&B(b,a);return this.createElement("shape").attr(b)},circle:function(a,b,c){var e=this.symbol("circle");C(a)&&(c=a.r,b=a.y,a=a.x);e.isCircle=!0;e.r=c;return e.attr({x:a,y:b})},g:function(a){var b; | ||
a&&(b={className:"highcharts-"+a,"class":"highcharts-"+a});return this.createElement("div").attr(b)},image:function(a,b,c,e,d){var f=this.createElement("img").attr({src:a});1<arguments.length&&f.attr({x:b,y:c,width:e,height:d});return f},createElement:function(a){return"rect"===a?this.symbol(a):u.prototype.createElement.call(this,a)},invertChild:function(a,b){var c=this;b=b.style;var e="IMG"===a.tagName&&a.style;l(a,{flip:"x",left:t(b.width)-(e?t(e.top):1),top:t(b.height)-(e?t(e.left):1),rotation:-90}); | ||
I(a.childNodes,function(b){c.invertChild(b,a)})},symbols:{arc:function(a,b,c,e,d){var f=d.start,h=d.end,g=d.r||c||e;c=d.innerR;e=Math.cos(f);var p=Math.sin(f),k=Math.cos(h),l=Math.sin(h);if(0===h-f)return["x"];f=["wa",a-g,b-g,a+g,b+g,a+g*e,b+g*p,a+g*k,b+g*l];d.open&&!c&&f.push("e","M",a,b);f.push("at",a-c,b-c,a+c,b+c,a+c*k,b+c*l,a+c*e,b+c*p,"x","e");f.isArc=!0;return f},circle:function(a,b,c,e,d){d&&E(d.r)&&(c=e=2*d.r);d&&d.isCircle&&(a-=c/2,b-=e/2);return["wa",a,b,a+c,b+e,a+c,b+e/2,a+c,b+e/2,"e"]}, | ||
rect:function(a,b,c,d,g){return u.prototype.symbols[E(g)&&g.r?"callout":"square"].call(0,a,b,c,d,g)}}},d.VMLRenderer=w=function(){this.init.apply(this,arguments)},w.prototype=N(u.prototype,g),d.Renderer=w);u.prototype.getSpanWidth=function(a,b){var c=a.getBBox(!0).width;!D&&this.forExport&&(c=this.measureSpanWidth(b.firstChild.data,a.styles));return c};u.prototype.measureSpanWidth=function(a,b){var c=h.createElement("span");a=h.createTextNode(a);c.appendChild(a);l(c,b);this.box.appendChild(c);b=c.offsetWidth; | ||
F(c);return b}})(l)}); | ||
setAttr:function(a,b){this.docMode8?this.element[a]=b:this.element.setAttribute(a,b)},getAttr:function(a){return this.docMode8?this.element[a]:this.element.getAttribute(a)},classSetter:function(a){(this.added?this.element:this).className=a},dashstyleSetter:function(a,b,c){(c.getElementsByTagName("stroke")[0]||A(this.renderer.prepVML(["\x3cstroke/\x3e"]),null,null,c))[b]=a||"solid";this[b]=a},dSetter:function(a,b,c){var e=this.shadows;a=a||[];this.d=a.join&&a.join(" ");c.path=a=this.pathToVML(a);if(e)for(c= | ||
e.length;c--;)e[c].path=e[c].cutOff?this.cutOffPath(a,e[c].cutOff):a;this.setAttr(b,a)},fillSetter:function(a,b,c){var e=c.nodeName;"SPAN"===e?c.style.color=a:"IMG"!==e&&(c.filled="none"!==a,this.setAttr("fillcolor",this.renderer.color(a,c,b,this)))},"fill-opacitySetter":function(a,b,c){A(this.renderer.prepVML(["\x3c",b.split("-")[0],' opacity\x3d"',a,'"/\x3e']),null,null,c)},opacitySetter:L,rotationSetter:function(a,b,c){c=c.style;this[b]=c[b]=a;c.left=-Math.round(Math.sin(a*n)+1)+"px";c.top=Math.round(Math.cos(a* | ||
n))+"px"},strokeSetter:function(a,b,c){this.setAttr("strokecolor",this.renderer.color(a,c,b,this))},"stroke-widthSetter":function(a,b,c){c.stroked=!!a;this[b]=a;K(a)&&(a+="px");this.setAttr("strokeweight",a)},titleSetter:function(a,b){this.setAttr(b,a)},visibilitySetter:function(a,b,c){"inherit"===a&&(a="visible");this.shadows&&I(this.shadows,function(c){c.style[b]=a});"DIV"===c.nodeName&&(a="hidden"===a?"-999em":0,this.docMode8||(c.style[b]=a?"visible":"hidden"),b="top");c.style[b]=a},xSetter:function(a, | ||
b,c){this[b]=a;"x"===b?b="left":"y"===b&&(b="top");this.updateClipping?(this[b]=a,this.updateClipping()):c.style[b]=a},zIndexSetter:function(a,b,c){c.style[b]=a},fillGetter:function(){return this.getAttr("fillcolor")||""},strokeGetter:function(){return this.getAttr("strokecolor")||""}},g["stroke-opacitySetter"]=g["fill-opacitySetter"],d.VMLElement=g=w(y,g),g.prototype.ySetter=g.prototype.widthSetter=g.prototype.heightSetter=g.prototype.xSetter,g={Element:g,isIE8:-1<v.navigator.userAgent.indexOf("MSIE 8.0"), | ||
init:function(a,b,c){var e,d;this.alignedObjects=[];e=this.createElement("div").css({position:"relative"});d=e.element;a.appendChild(e.element);this.isVML=!0;this.box=d;this.boxWrapper=e;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount=0;this.setSize(b,c,!1);if(!h.namespaces.hcv){h.namespaces.add("hcv","urn:schemas-microsoft-com:vml");try{h.createStyleSheet().cssText="hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke{ behavior:url(#default#VML); display: inline-block; } "}catch(f){h.styleSheets[0].cssText+= | ||
"hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke{ behavior:url(#default#VML); display: inline-block; } "}}},isHidden:function(){return!this.box.offsetWidth},clipRect:function(a,b,c,e){var d=this.createElement(),f=C(a);return B(d,{members:[],count:0,left:(f?a.x:a)+1,top:(f?a.y:b)+1,width:(f?a.width:c)-1,height:(f?a.height:e)-1,getCSS:function(a){var b=a.element,c=b.nodeName,e=a.inverted,d=this.top-("shape"===c?b.offsetTop:0),f=this.left,b=f+this.width,p=d+this.height,d={clip:"rect("+Math.round(e? | ||
f:d)+"px,"+Math.round(e?p:b)+"px,"+Math.round(e?b:p)+"px,"+Math.round(e?d:f)+"px)"};!e&&a.docMode8&&"DIV"===c&&B(d,{width:b+"px",height:p+"px"});return d},updateClipping:function(){I(d.members,function(a){a.element&&a.css(d.getCSS(a))})}})},color:function(a,b,c,e){var p=this,f,h=/^rgba/,q,g,k="none";a&&a.linearGradient?g="gradient":a&&a.radialGradient&&(g="pattern");if(g){var r,l,m=a.linearGradient||a.radialGradient,n,t,u,v,w,x="";a=a.stops;var y,B=[],C=function(){q=['\x3cfill colors\x3d"'+B.join(",")+ | ||
'" opacity\x3d"',u,'" o:opacity2\x3d"',t,'" type\x3d"',g,'" ',x,'focus\x3d"100%" method\x3d"any" /\x3e'];A(p.prepVML(q),null,null,b)};n=a[0];y=a[a.length-1];0<n[0]&&a.unshift([0,n[1]]);1>y[0]&&a.push([1,y[1]]);I(a,function(a,b){h.test(a[1])?(f=d.color(a[1]),r=f.get("rgb"),l=f.get("a")):(r=a[1],l=1);B.push(100*a[0]+"% "+r);b?(u=l,v=r):(t=l,w=r)});if("fill"===c)if("gradient"===g)c=m.x1||m[0]||0,a=m.y1||m[1]||0,n=m.x2||m[2]||0,m=m.y2||m[3]||0,x='angle\x3d"'+(90-180*Math.atan((m-a)/(n-c))/Math.PI)+'"', | ||
C();else{var k=m.r,D=2*k,E=2*k,F=m.cx,G=m.cy,H=b.radialReference,z,k=function(){H&&(z=e.getBBox(),F+=(H[0]-z.x)/z.width-.5,G+=(H[1]-z.y)/z.height-.5,D*=H[2]/z.width,E*=H[2]/z.height);x='src\x3d"'+d.getOptions().global.VMLRadialGradientURL+'" size\x3d"'+D+","+E+'" origin\x3d"0.5,0.5" position\x3d"'+F+","+G+'" color2\x3d"'+w+'" ';C()};e.added?k():e.onAdd=k;k=v}else k=r}else h.test(a)&&"IMG"!==b.tagName?(f=d.color(a),e[c+"-opacitySetter"](f.get("a"),c,b),k=f.get("rgb")):(k=b.getElementsByTagName(c), | ||
k.length&&(k[0].opacity=1,k[0].type="solid"),k=a);return k},prepVML:function(a){var b=this.isIE8;a=a.join("");b?(a=a.replace("/\x3e",' xmlns\x3d"urn:schemas-microsoft-com:vml" /\x3e'),a=-1===a.indexOf('style\x3d"')?a.replace("/\x3e",' style\x3d"display:inline-block;behavior:url(#default#VML);" /\x3e'):a.replace('style\x3d"','style\x3d"display:inline-block;behavior:url(#default#VML);')):a=a.replace("\x3c","\x3chcv:");return a},text:u.prototype.html,path:function(a){var b={coordsize:"10 10"};M(a)?b.d= | ||
a:C(a)&&B(b,a);return this.createElement("shape").attr(b)},circle:function(a,b,c){var e=this.symbol("circle");C(a)&&(c=a.r,b=a.y,a=a.x);e.isCircle=!0;e.r=c;return e.attr({x:a,y:b})},g:function(a){var b;a&&(b={className:"highcharts-"+a,"class":"highcharts-"+a});return this.createElement("div").attr(b)},image:function(a,b,c,e,d){var f=this.createElement("img").attr({src:a});1<arguments.length&&f.attr({x:b,y:c,width:e,height:d});return f},createElement:function(a){return"rect"===a?this.symbol(a):u.prototype.createElement.call(this, | ||
a)},invertChild:function(a,b){var c=this;b=b.style;var e="IMG"===a.tagName&&a.style;l(a,{flip:"x",left:t(b.width)-(e?t(e.top):1),top:t(b.height)-(e?t(e.left):1),rotation:-90});I(a.childNodes,function(b){c.invertChild(b,a)})},symbols:{arc:function(a,b,c,e,d){var f=d.start,h=d.end,g=d.r||c||e;c=d.innerR;e=Math.cos(f);var p=Math.sin(f),k=Math.cos(h),l=Math.sin(h);if(0===h-f)return["x"];f=["wa",a-g,b-g,a+g,b+g,a+g*e,b+g*p,a+g*k,b+g*l];d.open&&!c&&f.push("e","M",a,b);f.push("at",a-c,b-c,a+c,b+c,a+c*k, | ||
b+c*l,a+c*e,b+c*p,"x","e");f.isArc=!0;return f},circle:function(a,b,c,e,d){d&&E(d.r)&&(c=e=2*d.r);d&&d.isCircle&&(a-=c/2,b-=e/2);return["wa",a,b,a+c,b+e,a+c,b+e/2,a+c,b+e/2,"e"]},rect:function(a,b,c,d,g){return u.prototype.symbols[E(g)&&g.r?"callout":"square"].call(0,a,b,c,d,g)}}},d.VMLRenderer=w=function(){this.init.apply(this,arguments)},w.prototype=N(u.prototype,g),d.Renderer=w);u.prototype.getSpanWidth=function(a,b){var c=a.getBBox(!0).width;!D&&this.forExport&&(c=this.measureSpanWidth(b.firstChild.data, | ||
a.styles));return c};u.prototype.measureSpanWidth=function(a,b){var c=h.createElement("span");a=h.createTextNode(a);c.appendChild(a);l(c,b);this.box.appendChild(c);b=c.offsetWidth;F(c);return b}})(l)}); |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* Old IE (v6, v7, v8) module for Highcharts v6+. | ||
@@ -72,3 +72,3 @@ * | ||
H.getOptions().global.VMLRadialGradientURL = | ||
'http://code.highcharts.com/6.0.6/gfx/vml-radial-gradient.png'; | ||
'http://code.highcharts.com/6.0.7/gfx/vml-radial-gradient.png'; | ||
@@ -683,2 +683,8 @@ | ||
}, | ||
getAttr: function(key) { | ||
if (this.docMode8) { // IE8 setAttribute bug | ||
return this.element[key]; | ||
} | ||
return this.element.getAttribute(key); | ||
}, | ||
classSetter: function(value) { | ||
@@ -806,2 +812,8 @@ // IE8 Standards mode has problems retrieving the className unless set like this. | ||
element.style[key] = value; | ||
}, | ||
fillGetter: function() { | ||
return this.getAttr('fillcolor') || ''; | ||
}, | ||
strokeGetter: function() { | ||
return this.getAttr('strokecolor') || ''; | ||
} | ||
@@ -808,0 +820,0 @@ }; |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ (c) 2009-2017 Torstein Honsi |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * (c) 2009-2017 Torstein Honsi |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Support for parallel coordinates in Highcharts |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * Support for parallel coordinates in Highcharts |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Pareto series type for Highcharts |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * Pareto series type for Highcharts |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Sankey diagram module | ||
@@ -4,0 +4,0 @@ |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* Sankey diagram module | ||
@@ -4,0 +4,0 @@ * |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ (c) 2009-2017 Torstein Honsi |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * (c) 2009-2017 Torstein Honsi |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Solid angular gauge module | ||
@@ -4,0 +4,0 @@ |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* Solid angular gauge module | ||
@@ -172,3 +172,3 @@ * | ||
* @extends plotOptions.gauge | ||
* @excluding dial,pivot | ||
* @excluding dial,pivot,wrap | ||
* @product highcharts | ||
@@ -191,2 +191,15 @@ * @optionparent plotOptions.solidgauge | ||
/** | ||
* Allow the gauge to overshoot the end of the perimeter axis by this | ||
* many degrees. Say if the gauge axis goes from 0 to 60, a value of | ||
* 100, or 1000, will show 5 degrees beyond the end of the axis when this | ||
* option is set to 5. | ||
* | ||
* @type {Number} | ||
* @default 0 | ||
* @since 3.0.10 | ||
* @product highcharts | ||
* @apioption plotOptions.solidgauge.overshoot | ||
*/ | ||
/** | ||
* Wether to draw rounded edges on the gauge. | ||
@@ -370,6 +383,10 @@ * | ||
* | ||
* @type {Object} | ||
* @extends series,plotOptions.solidgauge | ||
* @excluding dataParser,dataURL,stack | ||
* @product highcharts | ||
* @type {Object} | ||
* @extends series,plotOptions.solidgauge | ||
* @excluding animationLimit,boostThreshold,connectEnds,connectNulls, | ||
* cropThreshold,dashStyle,dataParser,dataURL,dial, | ||
* findNearestPointBy,getExtremesFromAll,marker,negativeColor, | ||
* pointPlacement,pivot,shadow,softThreshold,stack,stacking,states, | ||
* step,threshold,turboThreshold,wrap,zoneAxis,zones | ||
* @product highcharts | ||
* @apioption series.solidgauge | ||
@@ -376,0 +393,0 @@ */ |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
StaticScale | ||
@@ -4,0 +4,0 @@ |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* StaticScale | ||
@@ -4,0 +4,0 @@ * |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Streamgraph module | ||
@@ -4,0 +4,0 @@ |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* Streamgraph module | ||
@@ -4,0 +4,0 @@ * |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -27,3 +27,3 @@ (c) 2016 Highsoft AS | ||
e=a.x,r=a.y,v=a.width,x=a.height,l,H,g,k;h(c,function(c){f=c.val/a.val*a.height*a.width;l=e;H=r;0===n?(k=x,g=f/k,v-=g,e+=g):(g=v,k=f/g,x-=k,r+=k);d.push({x:l,y:H,width:g,height:k});b&&(n=1-n)});return d},strip:function(b,a){return this.algorithmLowAspectRatio(!1,b,a)},squarified:function(b,a){return this.algorithmLowAspectRatio(!0,b,a)},sliceAndDice:function(b,a){return this.algorithmFill(!0,b,a)},stripes:function(b,a){return this.algorithmFill(!1,b,a)},translate:function(){var b=this,a=b.options, | ||
c=b.rootNode=y(b.rootNode,b.options.rootId,""),d,f;u.prototype.translate.call(b);f=b.tree=b.getTree();d=b.nodeMap[c];b.mapOptionsToLevel=B({from:0<d.level?d.level:1,levels:a.levels,to:f.height,defaults:{levelIsConstant:b.options.levelIsConstant,colorByPoint:a.colorByPoint}});""===c||d&&d.children.length||(b.drillToNode("",!1),c=b.rootNode,d=b.nodeMap[c]);G(b.nodeMap[b.rootNode],function(a){var d=!1,c=a.parent;a.visible=!0;if(c||""===c)d=b.nodeMap[c];return d});G(b.nodeMap[b.rootNode].children,function(b){var a= | ||
c=b.rootNode=y(b.rootNode,b.options.rootId,""),d,f;u.prototype.translate.call(b);f=b.tree=b.getTree();d=b.nodeMap[c];b.mapOptionsToLevel=B({from:d.level+1,levels:a.levels,to:f.height,defaults:{levelIsConstant:b.options.levelIsConstant,colorByPoint:a.colorByPoint}});""===c||d&&d.children.length||(b.drillToNode("",!1),c=b.rootNode,d=b.nodeMap[c]);G(b.nodeMap[b.rootNode],function(a){var d=!1,c=a.parent;a.visible=!0;if(c||""===c)d=b.nodeMap[c];return d});G(b.nodeMap[b.rootNode].children,function(b){var a= | ||
!1;h(b,function(b){b.visible=!0;b.children.length&&(a=(a||[]).concat(b.children))});return a});b.setTreeValues(f);b.axisRatio=b.xAxis.len/b.yAxis.len;b.nodeMap[""].pointValues=c={x:0,y:0,width:100,height:100};b.nodeMap[""].values=c=m(c,{width:c.width*b.axisRatio,direction:"vertical"===a.layoutStartingDirection?0:1,val:f.val});b.calculateChildrenAreas(f,c);b.colorAxis?b.translateColors():a.colorByPoint||b.setColorRecursive(b.tree);a.allowDrillToNode&&(a=d.pointValues,b.xAxis.setExtremes(a.x,a.x+a.width, | ||
@@ -30,0 +30,0 @@ !1),b.yAxis.setExtremes(a.y,a.y+a.height,!1),b.xAxis.setScale(),b.yAxis.setScale());b.setPointValues()},drawDataLabels:function(){var b=this,a=b.mapOptionsToLevel,c=t(b.points,function(b){return b.node.visible}),d,f;h(c,function(c){f=a[c.node.level];d={style:{}};c.node.isLeaf||(d.enabled=!1);f&&f.dataLabels&&(d=m(d,f.dataLabels),b._hasPointLabels=!0);c.shapeArgs&&(d.style.width=c.shapeArgs.width,c.dataLabel&&c.dataLabel.css({width:c.shapeArgs.width+"px"}));c.dlOptions=m(d,c.options.dataLabels)}); |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Tilemap module | ||
@@ -4,0 +4,0 @@ |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* Tilemap module | ||
@@ -151,3 +151,3 @@ * | ||
* @extends {plotOptions.scatter} | ||
* @excluding marker,pointRange | ||
* @excluding marker,pointRange,pointPlacement | ||
* @product highcharts highmaps | ||
@@ -240,3 +240,5 @@ * @optionparent plotOptions.heatmap | ||
/** @ignore */ | ||
/** | ||
* @ignore | ||
*/ | ||
marker: null, | ||
@@ -254,3 +256,5 @@ | ||
hover: { | ||
/** @ignore */ | ||
/** | ||
* @ignore | ||
*/ | ||
halo: false, // #3406, halo is disabled on heatmaps by default | ||
@@ -389,3 +393,3 @@ | ||
* @extends series,plotOptions.heatmap | ||
* @excluding dataParser,dataURL,stack | ||
* @excluding dataParser,dataURL,marker,pointRange,stack | ||
* @product highcharts highmaps | ||
@@ -1003,11 +1007,2 @@ * @apioption series.heatmap | ||
/** | ||
* The shape of the tiles in the tilemap. Possible values are `hexagon`, | ||
* `circle`, `diamond`, and `square`. | ||
* | ||
* @sample maps/demo/circlemap-africa Circular tile shapes | ||
* @sample maps/demo/diamondmap Diamond tile shapes | ||
*/ | ||
tileShape: 'hexagon' | ||
/** | ||
* The column size - how many X axis units each column in the tilemap | ||
@@ -1036,2 +1031,11 @@ * should span. Works as in [Heatmaps](#plotOptions.heatmap.colsize). | ||
/** | ||
* The shape of the tiles in the tilemap. Possible values are `hexagon`, | ||
* `circle`, `diamond`, and `square`. | ||
* | ||
* @sample maps/demo/circlemap-africa Circular tile shapes | ||
* @sample maps/demo/diamondmap Diamond tile shapes | ||
*/ | ||
tileShape: 'hexagon' | ||
// Prototype functions | ||
@@ -1127,6 +1131,7 @@ }, { | ||
* | ||
* @type {Object} | ||
* @extends series,plotOptions.tilemap | ||
* @excluding joinBy, shadow, allAreas, mapData | ||
* @product highcharts highmaps | ||
* @type {Object} | ||
* @extends series,plotOptions.tilemap | ||
* @excluding allAreas,dataParser,dataURL,joinBy,mapData,marker,pointRange, | ||
* shadow,stack | ||
* @product highcharts highmaps | ||
* @apioption series.tilemap | ||
@@ -1133,0 +1138,0 @@ */ |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -9,24 +9,24 @@ (c) 2014 Highsoft AS | ||
*/ | ||
(function(w){"object"===typeof module&&module.exports?module.exports=w:w(Highcharts)})(function(w){var H=function(b){var w=b.each,C=b.extend,t=b.isArray,D=b.isObject,v=b.isNumber,G=b.merge,E=b.pick,n=b.reduce;return{getColor:function(p,q){var A=q.index,m=q.mapOptionsToLevel,n=q.parentColor,x=q.parentColorIndex,r=q.series,e=q.colors,t=q.siblings,h=r.points,y,F,B,a;if(p){h=h[p.i];p=m[p.level]||{};if(y=h&&p.colorByPoint)B=h.index%(e?e.length:r.chart.options.chart.colorCount),F=e&&e[B];e=h&&h.options.color; | ||
y=p&&p.color;if(m=n)m=(m=p&&p.colorVariation)&&"brightness"===m.key?b.color(n).brighten(A/t*m.to).get():n;y=E(e,y,F,m,r.color);a=E(h&&h.options.colorIndex,p&&p.colorIndex,B,x,q.colorIndex)}return{color:y,colorIndex:a}},getLevelOptions:function(b){var q=null,A,m,p,x;if(D(b))for(q={},p=v(b.from)?b.from:1,x=b.levels,m={},A=D(b.defaults)?b.defaults:{},t(x)&&(m=n(x,function(b,e){var m,h;D(e)&&v(e.level)&&(h=G({},e),m="boolean"===typeof h.levelIsConstant?h.levelIsConstant:A.levelIsConstant,delete h.levelIsConstant, | ||
delete h.level,e=e.level+(m?0:p-1),D(b[e])?C(b[e],h):b[e]=h);return b},{})),x=v(b.to)?b.to:1,b=0;b<=x;b++)q[b]=G({},A,D(m[b])?m[b]:{});return q},setTreeValues:function q(b,m){var n=m.before,t=m.idRoot,r=m.mapIdToNode[t],e=m.points[b.i],v=e&&e.options||{},h=0,y=[];C(b,{levelDynamic:b.level-(("boolean"===typeof m.levelIsConstant?m.levelIsConstant:1)?0:r.level),name:E(e&&e.name,""),visible:t===b.id||("boolean"===typeof m.visible?m.visible:!1)});"function"===typeof n&&(b=n(b,m));w(b.children,function(e, | ||
n){var a=C({},m);C(a,{index:n,siblings:b.children.length,visible:b.visible});e=q(e,a);y.push(e);e.visible&&(h+=e.val)});b.visible=0<h||b.visible;n=E(v.value,h);C(b,{children:y,childrenTotal:h,isLeaf:b.visible&&!h,val:n});return b}}}(w);(function(b,w){var C=b.seriesType,t=b.seriesTypes,D=b.map,v=b.merge,G=b.extend,E=b.noop,n=b.each,p=w.getColor,q=w.getLevelOptions,A=b.grep,m=b.isNumber,H=b.isObject,x=b.isString,r=b.pick,e=b.Series,J=b.stableSort,h=b.Color,y=function(a,c,d){d=d||this;b.objectEach(a, | ||
function(g,b){c.call(d,g,b,a)})},F=b.reduce,B=function(a,c,d){d=d||this;a=c.call(d,a);!1!==a&&B(a,c,d)};C("treemap","scatter",{showInLegend:!1,marker:!1,colorByPoint:!1,dataLabels:{enabled:!0,defer:!1,verticalAlign:"middle",formatter:function(){return this.point.name||this.point.id},inside:!0},tooltip:{headerFormat:"",pointFormat:"\x3cb\x3e{point.name}\x3c/b\x3e: {point.value}\x3cbr/\x3e"},ignoreHiddenPoint:!0,layoutAlgorithm:"sliceAndDice",layoutStartingDirection:"vertical",alternateStartingDirection:!1, | ||
(function(w){"object"===typeof module&&module.exports?module.exports=w:w(Highcharts)})(function(w){var H=function(b){var w=b.each,C=b.extend,t=b.isArray,D=b.isObject,v=b.isNumber,G=b.merge,E=b.pick,n=b.reduce;return{getColor:function(p,q){var A=q.index,m=q.mapOptionsToLevel,n=q.parentColor,x=q.parentColorIndex,r=q.series,e=q.colors,t=q.siblings,g=r.points,y,F,B,a;if(p){g=g[p.i];p=m[p.level]||{};if(y=g&&p.colorByPoint)B=g.index%(e?e.length:r.chart.options.chart.colorCount),F=e&&e[B];e=g&&g.options.color; | ||
y=p&&p.color;if(m=n)m=(m=p&&p.colorVariation)&&"brightness"===m.key?b.color(n).brighten(A/t*m.to).get():n;y=E(e,y,F,m,r.color);a=E(g&&g.options.colorIndex,p&&p.colorIndex,B,x,q.colorIndex)}return{color:y,colorIndex:a}},getLevelOptions:function(b){var q=null,A,m,p,x;if(D(b))for(q={},p=v(b.from)?b.from:1,x=b.levels,m={},A=D(b.defaults)?b.defaults:{},t(x)&&(m=n(x,function(b,e){var m,g;D(e)&&v(e.level)&&(g=G({},e),m="boolean"===typeof g.levelIsConstant?g.levelIsConstant:A.levelIsConstant,delete g.levelIsConstant, | ||
delete g.level,e=e.level+(m?0:p-1),D(b[e])?C(b[e],g):b[e]=g);return b},{})),x=v(b.to)?b.to:1,b=0;b<=x;b++)q[b]=G({},A,D(m[b])?m[b]:{});return q},setTreeValues:function q(b,m){var n=m.before,t=m.idRoot,r=m.mapIdToNode[t],e=m.points[b.i],v=e&&e.options||{},g=0,y=[];C(b,{levelDynamic:b.level-(("boolean"===typeof m.levelIsConstant?m.levelIsConstant:1)?0:r.level),name:E(e&&e.name,""),visible:t===b.id||("boolean"===typeof m.visible?m.visible:!1)});"function"===typeof n&&(b=n(b,m));w(b.children,function(e, | ||
n){var a=C({},m);C(a,{index:n,siblings:b.children.length,visible:b.visible});e=q(e,a);y.push(e);e.visible&&(g+=e.val)});b.visible=0<g||b.visible;n=E(v.value,g);C(b,{children:y,childrenTotal:g,isLeaf:b.visible&&!g,val:n});return b}}}(w);(function(b,w){var C=b.seriesType,t=b.seriesTypes,D=b.map,v=b.merge,G=b.extend,E=b.noop,n=b.each,p=w.getColor,q=w.getLevelOptions,A=b.grep,m=b.isNumber,H=b.isObject,x=b.isString,r=b.pick,e=b.Series,J=b.stableSort,g=b.Color,y=function(a,c,d){d=d||this;b.objectEach(a, | ||
function(h,b){c.call(d,h,b,a)})},F=b.reduce,B=function(a,c,d){d=d||this;a=c.call(d,a);!1!==a&&B(a,c,d)};C("treemap","scatter",{showInLegend:!1,marker:!1,colorByPoint:!1,dataLabels:{enabled:!0,defer:!1,verticalAlign:"middle",formatter:function(){return this.point.name||this.point.id},inside:!0},tooltip:{headerFormat:"",pointFormat:"\x3cb\x3e{point.name}\x3c/b\x3e: {point.value}\x3cbr/\x3e"},ignoreHiddenPoint:!0,layoutAlgorithm:"sliceAndDice",layoutStartingDirection:"vertical",alternateStartingDirection:!1, | ||
levelIsConstant:!0,drillUpButton:{position:{align:"right",x:-10,y:10}},borderColor:"#e6e6e6",borderWidth:1,opacity:.15,states:{hover:{borderColor:"#999999",brightness:t.heatmap?0:.1,halo:!1,opacity:.75,shadow:!1}}},{pointArrayMap:["value"],axisTypes:t.heatmap?["xAxis","yAxis","colorAxis"]:["xAxis","yAxis"],directTouch:!0,optionalAxis:"colorAxis",getSymbol:E,parallelArrays:["x","y","value","colorValue"],colorKey:"colorValue",translateColors:t.heatmap&&t.heatmap.prototype.translateColors,colorAttribs:t.heatmap&& | ||
t.heatmap.prototype.colorAttribs,trackerGroups:["group","dataLabelsGroup"],getListOfParents:function(a,c){a=F(a||[],function(a,c,b){c=r(c.parent,"");void 0===a[c]&&(a[c]=[]);a[c].push(b);return a},{});y(a,function(a,g,f){""!==g&&-1===b.inArray(g,c)&&(n(a,function(a){f[""].push(a)}),delete f[g])});return a},getTree:function(){var a=D(this.data,function(a){return a.id}),a=this.getListOfParents(this.data,a);this.nodeMap=[];return this.buildNode("",-1,0,a,null)},init:function(a,c){e.prototype.init.call(this, | ||
a,c);this.options.allowDrillToNode&&b.addEvent(this,"click",this.onClickDrillToNode)},buildNode:function(a,c,d,b,f){var g=this,z=[],l=g.points[c],I=0,e;n(b[a]||[],function(c){e=g.buildNode(g.points[c].id,c,d+1,b,a);I=Math.max(e.height+1,I);z.push(e)});c={id:a,i:c,children:z,height:I,level:d,parent:f,visible:!1};g.nodeMap[c.id]=c;l&&(l.node=c);return c},setTreeValues:function(a){var c=this,d=c.options,b=c.nodeMap[c.rootNode],d="boolean"===typeof d.levelIsConstant?d.levelIsConstant:!0,f=0,k=[],z,l= | ||
t.heatmap.prototype.colorAttribs,trackerGroups:["group","dataLabelsGroup"],getListOfParents:function(a,c){a=F(a||[],function(a,c,b){c=r(c.parent,"");void 0===a[c]&&(a[c]=[]);a[c].push(b);return a},{});y(a,function(a,h,f){""!==h&&-1===b.inArray(h,c)&&(n(a,function(a){f[""].push(a)}),delete f[h])});return a},getTree:function(){var a=D(this.data,function(a){return a.id}),a=this.getListOfParents(this.data,a);this.nodeMap=[];return this.buildNode("",-1,0,a,null)},init:function(a,c){e.prototype.init.call(this, | ||
a,c);this.options.allowDrillToNode&&b.addEvent(this,"click",this.onClickDrillToNode)},buildNode:function(a,c,d,b,f){var h=this,z=[],l=h.points[c],I=0,e;n(b[a]||[],function(c){e=h.buildNode(h.points[c].id,c,d+1,b,a);I=Math.max(e.height+1,I);z.push(e)});c={id:a,i:c,children:z,height:I,level:d,parent:f,visible:!1};h.nodeMap[c.id]=c;l&&(l.node=c);return c},setTreeValues:function(a){var c=this,d=c.options,b=c.nodeMap[c.rootNode],d="boolean"===typeof d.levelIsConstant?d.levelIsConstant:!0,f=0,k=[],z,l= | ||
c.points[a.i];n(a.children,function(a){a=c.setTreeValues(a);k.push(a);a.ignore||(f+=a.val)});J(k,function(a,c){return a.sortIndex-c.sortIndex});z=r(l&&l.options.value,f);l&&(l.value=z);G(a,{children:k,childrenTotal:f,ignore:!(r(l&&l.visible,!0)&&0<z),isLeaf:a.visible&&!f,levelDynamic:a.level-(d?0:b.level),name:r(l&&l.name,""),sortIndex:r(l&&l.sortIndex,-z),val:z});return a},calculateChildrenAreas:function(a,c){var d=this,b=d.options,f=d.mapOptionsToLevel[a.level+1],k=r(d[f&&f.layoutAlgorithm]&&f.layoutAlgorithm, | ||
b.layoutAlgorithm),z=b.alternateStartingDirection,l=[];a=A(a.children,function(a){return!a.ignore});f&&f.layoutStartingDirection&&(c.direction="vertical"===f.layoutStartingDirection?0:1);l=d[k](c,a);n(a,function(a,b){b=l[b];a.values=v(b,{val:a.childrenTotal,direction:z?1-c.direction:c.direction});a.pointValues=v(b,{x:b.x/d.axisRatio,width:b.width/d.axisRatio});a.children.length&&d.calculateChildrenAreas(a,a.values)})},setPointValues:function(){var a=this,c=a.xAxis,d=a.yAxis;n(a.points,function(b){var f= | ||
b.node,k=f.pointValues,g,l,e;e=(a.pointAttribs(b)["stroke-width"]||0)%2/2;k&&f.visible?(f=Math.round(c.translate(k.x,0,0,0,1))-e,g=Math.round(c.translate(k.x+k.width,0,0,0,1))-e,l=Math.round(d.translate(k.y,0,0,0,1))-e,k=Math.round(d.translate(k.y+k.height,0,0,0,1))-e,b.shapeType="rect",b.shapeArgs={x:Math.min(f,g),y:Math.min(l,k),width:Math.abs(g-f),height:Math.abs(k-l)},b.plotX=b.shapeArgs.x+b.shapeArgs.width/2,b.plotY=b.shapeArgs.y+b.shapeArgs.height/2):(delete b.plotX,delete b.plotY)})},setColorRecursive:function(a, | ||
c,d,b,f){var k=this,g=k&&k.chart,g=g&&g.options&&g.options.colors,l;if(a){l=p(a,{colors:g,index:b,mapOptionsToLevel:k.mapOptionsToLevel,parentColor:c,parentColorIndex:d,series:k,siblings:f});if(c=k.points[a.i])c.color=l.color,c.colorIndex=l.colorIndex;n(a.children||[],function(c,b){k.setColorRecursive(c,l.color,l.colorIndex,b,a.children.length)})}},algorithmGroup:function(a,c,b,g){this.height=a;this.width=c;this.plot=g;this.startDirection=this.direction=b;this.lH=this.nH=this.lW=this.nW=this.total= | ||
b.node,k=f.pointValues,h,l,e;e=(a.pointAttribs(b)["stroke-width"]||0)%2/2;k&&f.visible?(f=Math.round(c.translate(k.x,0,0,0,1))-e,h=Math.round(c.translate(k.x+k.width,0,0,0,1))-e,l=Math.round(d.translate(k.y,0,0,0,1))-e,k=Math.round(d.translate(k.y+k.height,0,0,0,1))-e,b.shapeType="rect",b.shapeArgs={x:Math.min(f,h),y:Math.min(l,k),width:Math.abs(h-f),height:Math.abs(k-l)},b.plotX=b.shapeArgs.x+b.shapeArgs.width/2,b.plotY=b.shapeArgs.y+b.shapeArgs.height/2):(delete b.plotX,delete b.plotY)})},setColorRecursive:function(a, | ||
c,d,b,f){var k=this,h=k&&k.chart,h=h&&h.options&&h.options.colors,l;if(a){l=p(a,{colors:h,index:b,mapOptionsToLevel:k.mapOptionsToLevel,parentColor:c,parentColorIndex:d,series:k,siblings:f});if(c=k.points[a.i])c.color=l.color,c.colorIndex=l.colorIndex;n(a.children||[],function(c,b){k.setColorRecursive(c,l.color,l.colorIndex,b,a.children.length)})}},algorithmGroup:function(a,c,b,h){this.height=a;this.width=c;this.plot=h;this.startDirection=this.direction=b;this.lH=this.nH=this.lW=this.nW=this.total= | ||
0;this.elArr=[];this.lP={total:0,lH:0,nH:0,lW:0,nW:0,nR:0,lR:0,aspectRatio:function(a,c){return Math.max(a/c,c/a)}};this.addElement=function(a){this.lP.total=this.elArr[this.elArr.length-1];this.total+=a;0===this.direction?(this.lW=this.nW,this.lP.lH=this.lP.total/this.lW,this.lP.lR=this.lP.aspectRatio(this.lW,this.lP.lH),this.nW=this.total/this.height,this.lP.nH=this.lP.total/this.nW,this.lP.nR=this.lP.aspectRatio(this.nW,this.lP.nH)):(this.lH=this.nH,this.lP.lW=this.lP.total/this.lH,this.lP.lR= | ||
this.lP.aspectRatio(this.lP.lW,this.lH),this.nH=this.total/this.width,this.lP.nW=this.lP.total/this.nH,this.lP.nR=this.lP.aspectRatio(this.lP.nW,this.nH));this.elArr.push(a)};this.reset=function(){this.lW=this.nW=0;this.elArr=[];this.total=0}},algorithmCalcPoints:function(a,c,b,g){var d,k,e,l,m=b.lW,h=b.lH,u=b.plot,r,t=0,p=b.elArr.length-1;c?(m=b.nW,h=b.nH):r=b.elArr[b.elArr.length-1];n(b.elArr,function(a){if(c||t<p)0===b.direction?(d=u.x,k=u.y,e=m,l=a/e):(d=u.x,k=u.y,l=h,e=a/l),g.push({x:d,y:k,width:e, | ||
height:l}),0===b.direction?u.y+=l:u.x+=e;t+=1});b.reset();0===b.direction?b.width-=m:b.height-=h;u.y=u.parent.y+(u.parent.height-b.height);u.x=u.parent.x+(u.parent.width-b.width);a&&(b.direction=1-b.direction);c||b.addElement(r)},algorithmLowAspectRatio:function(a,b,d){var c=[],f=this,k,e={x:b.x,y:b.y,parent:b},l=0,m=d.length-1,h=new this.algorithmGroup(b.height,b.width,b.direction,e);n(d,function(d){k=d.val/b.val*b.height*b.width;h.addElement(k);h.lP.nR>h.lP.lR&&f.algorithmCalcPoints(a,!1,h,c,e); | ||
l===m&&f.algorithmCalcPoints(a,!0,h,c,e);l+=1});return c},algorithmFill:function(a,b,d){var c=[],f,k=b.direction,e=b.x,l=b.y,h=b.width,m=b.height,r,t,p,q;n(d,function(d){f=d.val/b.val*b.height*b.width;r=e;t=l;0===k?(q=m,p=f/q,h-=p,e+=p):(p=h,q=f/p,m-=q,l+=q);c.push({x:r,y:t,width:p,height:q});a&&(k=1-k)});return c},strip:function(a,b){return this.algorithmLowAspectRatio(!1,a,b)},squarified:function(a,b){return this.algorithmLowAspectRatio(!0,a,b)},sliceAndDice:function(a,b){return this.algorithmFill(!0, | ||
a,b)},stripes:function(a,b){return this.algorithmFill(!1,a,b)},translate:function(){var a=this,b=a.options,d=a.rootNode=r(a.rootNode,a.options.rootId,""),g,f;e.prototype.translate.call(a);f=a.tree=a.getTree();g=a.nodeMap[d];a.mapOptionsToLevel=q({from:0<g.level?g.level:1,levels:b.levels,to:f.height,defaults:{levelIsConstant:a.options.levelIsConstant,colorByPoint:b.colorByPoint}});""===d||g&&g.children.length||(a.drillToNode("",!1),d=a.rootNode,g=a.nodeMap[d]);B(a.nodeMap[a.rootNode],function(b){var c= | ||
!1,d=b.parent;b.visible=!0;if(d||""===d)c=a.nodeMap[d];return c});B(a.nodeMap[a.rootNode].children,function(a){var b=!1;n(a,function(a){a.visible=!0;a.children.length&&(b=(b||[]).concat(a.children))});return b});a.setTreeValues(f);a.axisRatio=a.xAxis.len/a.yAxis.len;a.nodeMap[""].pointValues=d={x:0,y:0,width:100,height:100};a.nodeMap[""].values=d=v(d,{width:d.width*a.axisRatio,direction:"vertical"===b.layoutStartingDirection?0:1,val:f.val});a.calculateChildrenAreas(f,d);a.colorAxis?a.translateColors(): | ||
b.colorByPoint||a.setColorRecursive(a.tree);b.allowDrillToNode&&(b=g.pointValues,a.xAxis.setExtremes(b.x,b.x+b.width,!1),a.yAxis.setExtremes(b.y,b.y+b.height,!1),a.xAxis.setScale(),a.yAxis.setScale());a.setPointValues()},drawDataLabels:function(){var a=this,b=a.mapOptionsToLevel,d=A(a.points,function(a){return a.node.visible}),g,f;n(d,function(c){f=b[c.node.level];g={style:{}};c.node.isLeaf||(g.enabled=!1);f&&f.dataLabels&&(g=v(g,f.dataLabels),a._hasPointLabels=!0);c.shapeArgs&&(g.style.width=c.shapeArgs.width, | ||
c.dataLabel&&c.dataLabel.css({width:c.shapeArgs.width+"px"}));c.dlOptions=v(g,c.options.dataLabels)});e.prototype.drawDataLabels.call(this)},alignDataLabel:function(a){t.column.prototype.alignDataLabel.apply(this,arguments);a.dataLabel&&a.dataLabel.attr({zIndex:(a.node.zIndex||0)+1})},pointAttribs:function(a,b){var c=H(this.mapOptionsToLevel)?this.mapOptionsToLevel:{},e=a&&c[a.node.level]||{},c=this.options,f=b&&c.states[b]||{},k=a&&a.getClassName()||"";a={stroke:a&&a.borderColor||e.borderColor|| | ||
f.borderColor||c.borderColor,"stroke-width":r(a&&a.borderWidth,e.borderWidth,f.borderWidth,c.borderWidth),dashstyle:a&&a.borderDashStyle||e.borderDashStyle||f.borderDashStyle||c.borderDashStyle,fill:a&&a.color||this.color};-1!==k.indexOf("highcharts-above-level")?(a.fill="none",a["stroke-width"]=0):-1!==k.indexOf("highcharts-internal-node-interactive")?(b=r(f.opacity,c.opacity),a.fill=h(a.fill).setOpacity(b).get(),a.cursor="pointer"):-1!==k.indexOf("highcharts-internal-node")?a.fill="none":b&&(a.fill= | ||
h(a.fill).brighten(f.brightness).get());return a},drawPoints:function(){var a=this,b=A(a.points,function(a){return a.node.visible});n(b,function(b){var c="level-group-"+b.node.levelDynamic;a[c]||(a[c]=a.chart.renderer.g(c).attr({zIndex:1E3-b.node.levelDynamic}).add(a.group));b.group=a[c]});t.column.prototype.drawPoints.call(this);a.options.allowDrillToNode&&n(b,function(b){b.graphic&&(b.drillId=a.options.interactByLeaf?a.drillToByLeaf(b):a.drillToByGroup(b))})},onClickDrillToNode:function(a){var b= | ||
this.lP.aspectRatio(this.lP.lW,this.lH),this.nH=this.total/this.width,this.lP.nW=this.lP.total/this.nH,this.lP.nR=this.lP.aspectRatio(this.lP.nW,this.nH));this.elArr.push(a)};this.reset=function(){this.lW=this.nW=0;this.elArr=[];this.total=0}},algorithmCalcPoints:function(a,c,b,h){var d,k,e,l,m=b.lW,g=b.lH,u=b.plot,r,t=0,p=b.elArr.length-1;c?(m=b.nW,g=b.nH):r=b.elArr[b.elArr.length-1];n(b.elArr,function(a){if(c||t<p)0===b.direction?(d=u.x,k=u.y,e=m,l=a/e):(d=u.x,k=u.y,l=g,e=a/l),h.push({x:d,y:k,width:e, | ||
height:l}),0===b.direction?u.y+=l:u.x+=e;t+=1});b.reset();0===b.direction?b.width-=m:b.height-=g;u.y=u.parent.y+(u.parent.height-b.height);u.x=u.parent.x+(u.parent.width-b.width);a&&(b.direction=1-b.direction);c||b.addElement(r)},algorithmLowAspectRatio:function(a,b,d){var c=[],f=this,k,e={x:b.x,y:b.y,parent:b},l=0,m=d.length-1,g=new this.algorithmGroup(b.height,b.width,b.direction,e);n(d,function(d){k=d.val/b.val*b.height*b.width;g.addElement(k);g.lP.nR>g.lP.lR&&f.algorithmCalcPoints(a,!1,g,c,e); | ||
l===m&&f.algorithmCalcPoints(a,!0,g,c,e);l+=1});return c},algorithmFill:function(a,b,d){var c=[],f,k=b.direction,e=b.x,l=b.y,g=b.width,m=b.height,r,t,p,q;n(d,function(d){f=d.val/b.val*b.height*b.width;r=e;t=l;0===k?(q=m,p=f/q,g-=p,e+=p):(p=g,q=f/p,m-=q,l+=q);c.push({x:r,y:t,width:p,height:q});a&&(k=1-k)});return c},strip:function(a,b){return this.algorithmLowAspectRatio(!1,a,b)},squarified:function(a,b){return this.algorithmLowAspectRatio(!0,a,b)},sliceAndDice:function(a,b){return this.algorithmFill(!0, | ||
a,b)},stripes:function(a,b){return this.algorithmFill(!1,a,b)},translate:function(){var a=this,b=a.options,d=a.rootNode=r(a.rootNode,a.options.rootId,""),h,f;e.prototype.translate.call(a);f=a.tree=a.getTree();h=a.nodeMap[d];a.mapOptionsToLevel=q({from:h.level+1,levels:b.levels,to:f.height,defaults:{levelIsConstant:a.options.levelIsConstant,colorByPoint:b.colorByPoint}});""===d||h&&h.children.length||(a.drillToNode("",!1),d=a.rootNode,h=a.nodeMap[d]);B(a.nodeMap[a.rootNode],function(b){var c=!1,d= | ||
b.parent;b.visible=!0;if(d||""===d)c=a.nodeMap[d];return c});B(a.nodeMap[a.rootNode].children,function(a){var b=!1;n(a,function(a){a.visible=!0;a.children.length&&(b=(b||[]).concat(a.children))});return b});a.setTreeValues(f);a.axisRatio=a.xAxis.len/a.yAxis.len;a.nodeMap[""].pointValues=d={x:0,y:0,width:100,height:100};a.nodeMap[""].values=d=v(d,{width:d.width*a.axisRatio,direction:"vertical"===b.layoutStartingDirection?0:1,val:f.val});a.calculateChildrenAreas(f,d);a.colorAxis?a.translateColors(): | ||
b.colorByPoint||a.setColorRecursive(a.tree);b.allowDrillToNode&&(b=h.pointValues,a.xAxis.setExtremes(b.x,b.x+b.width,!1),a.yAxis.setExtremes(b.y,b.y+b.height,!1),a.xAxis.setScale(),a.yAxis.setScale());a.setPointValues()},drawDataLabels:function(){var a=this,b=a.mapOptionsToLevel,d=A(a.points,function(a){return a.node.visible}),h,f;n(d,function(c){f=b[c.node.level];h={style:{}};c.node.isLeaf||(h.enabled=!1);f&&f.dataLabels&&(h=v(h,f.dataLabels),a._hasPointLabels=!0);c.shapeArgs&&(h.style.width=c.shapeArgs.width, | ||
c.dataLabel&&c.dataLabel.css({width:c.shapeArgs.width+"px"}));c.dlOptions=v(h,c.options.dataLabels)});e.prototype.drawDataLabels.call(this)},alignDataLabel:function(a){t.column.prototype.alignDataLabel.apply(this,arguments);a.dataLabel&&a.dataLabel.attr({zIndex:(a.node.zIndex||0)+1})},pointAttribs:function(a,b){var c=H(this.mapOptionsToLevel)?this.mapOptionsToLevel:{},e=a&&c[a.node.level]||{},c=this.options,f=b&&c.states[b]||{},k=a&&a.getClassName()||"";a={stroke:a&&a.borderColor||e.borderColor|| | ||
f.borderColor||c.borderColor,"stroke-width":r(a&&a.borderWidth,e.borderWidth,f.borderWidth,c.borderWidth),dashstyle:a&&a.borderDashStyle||e.borderDashStyle||f.borderDashStyle||c.borderDashStyle,fill:a&&a.color||this.color};-1!==k.indexOf("highcharts-above-level")?(a.fill="none",a["stroke-width"]=0):-1!==k.indexOf("highcharts-internal-node-interactive")?(b=r(f.opacity,c.opacity),a.fill=g(a.fill).setOpacity(b).get(),a.cursor="pointer"):-1!==k.indexOf("highcharts-internal-node")?a.fill="none":b&&(a.fill= | ||
g(a.fill).brighten(f.brightness).get());return a},drawPoints:function(){var a=this,b=A(a.points,function(a){return a.node.visible});n(b,function(b){var c="level-group-"+b.node.levelDynamic;a[c]||(a[c]=a.chart.renderer.g(c).attr({zIndex:1E3-b.node.levelDynamic}).add(a.group));b.group=a[c]});t.column.prototype.drawPoints.call(this);a.options.allowDrillToNode&&n(b,function(b){b.graphic&&(b.drillId=a.options.interactByLeaf?a.drillToByLeaf(b):a.drillToByGroup(b))})},onClickDrillToNode:function(a){var b= | ||
(a=a.point)&&a.drillId;x(b)&&(a.setState(""),this.drillToNode(b))},drillToByGroup:function(a){var b=!1;1!==a.node.level-this.nodeMap[this.rootNode].level||a.node.isLeaf||(b=a.id);return b},drillToByLeaf:function(a){var b=!1;if(a.node.parent!==this.rootNode&&a.node.isLeaf)for(a=a.node;!b;)a=this.nodeMap[a.parent],a.parent===this.rootNode&&(b=a.id);return b},drillUp:function(){var a=this.nodeMap[this.rootNode];a&&x(a.parent)&&this.drillToNode(a.parent)},drillToNode:function(a,b){var c=this.nodeMap[a]; | ||
@@ -33,0 +33,0 @@ this.idPreviousRoot=this.rootNode;this.rootNode=a;""===a?this.drillUpButton=this.drillUpButton.destroy():this.showDrillUpButton(c&&c.name||a);this.isDirty=!0;r(b,!0)&&this.chart.redraw()},showDrillUpButton:function(a){var b=this;a=a||"\x3c Back";var d=b.options.drillUpButton,e,f;d.text&&(a=d.text);this.drillUpButton?(this.drillUpButton.placed=!1,this.drillUpButton.attr({text:a}).align()):(f=(e=d.theme)&&e.states,this.drillUpButton=this.chart.renderer.button(a,null,null,function(){b.drillUp()},e,f&& |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ Variable Pie module for Highcharts |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * Variable Pie module for Highcharts |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Highcharts variwide module | ||
@@ -4,0 +4,0 @@ |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* Highcharts variwide module | ||
@@ -4,0 +4,0 @@ * |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Vector plot series module | ||
@@ -4,0 +4,0 @@ |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* Vector plot series module | ||
@@ -51,3 +51,5 @@ * | ||
/** @ignore */ | ||
/** | ||
* @ignore | ||
*/ | ||
marker: null, | ||
@@ -54,0 +56,0 @@ /** |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
Wind barb series module | ||
@@ -4,0 +4,0 @@ |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* Wind barb series module | ||
@@ -4,0 +4,0 @@ * |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ (c) 2016 Highsoft AS |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * (c) 2016 Highsoft AS |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
X-range series | ||
@@ -4,0 +4,0 @@ |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* X-range series | ||
@@ -392,3 +392,3 @@ * | ||
} | ||
*/ | ||
//*/ | ||
@@ -395,0 +395,0 @@ // Point class properties |
@@ -5,3 +5,3 @@ { | ||
"homepage": "http://www.highcharts.com", | ||
"version": "6.0.6", | ||
"version": "6.0.7", | ||
"author": "Highsoft AS <support@highcharts.com> (http://www.highcharts.com/about)", | ||
@@ -8,0 +8,0 @@ "main": "highcharts.js", |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ (c) 2009-2017 Highsoft AS |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * (c) 2009-2017 Highsoft AS |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ (c) 2009-2017 Torstein Honsi |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * (c) 2009-2017 Torstein Honsi |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ (c) 2009-2017 Torstein Honsi |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * (c) 2009-2017 Torstein Honsi |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ (c) 2009-2017 Torstein Honsi |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * (c) 2009-2017 Torstein Honsi |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ (c) 2009-2017 Torstein Honsi |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * (c) 2009-2017 Torstein Honsi |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ (c) 2009-2017 Torstein Honsi |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * (c) 2009-2017 Torstein Honsi |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ (c) 2009-2017 Torstein Honsi |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * (c) 2009-2017 Torstein Honsi |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ (c) 2009-2017 Torstein Honsi |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * (c) 2009-2017 Torstein Honsi |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ (c) 2009-2017 Torstein Honsi |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * (c) 2009-2017 Torstein Honsi |
/* | ||
Highcharts JS v6.0.6 (2018-02-05) | ||
Highcharts JS v6.0.7 (2018-02-16) | ||
@@ -4,0 +4,0 @@ (c) 2009-2017 Highsoft AS |
/** | ||
* @license Highcharts JS v6.0.6 (2018-02-05) | ||
* @license Highcharts JS v6.0.7 (2018-02-16) | ||
* | ||
@@ -4,0 +4,0 @@ * (c) 2009-2017 Highsoft AS |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
23724228
363631