!function(x){function t(){}var g,e=x.Axis,o=x.Chart,l=x.Point,a=x.Pointer,f=x.each,s=x.extend,h=x.merge,y=x.pick,b=x.numberFormat,i=x.getOptions(),M=x.seriesTypes,n=i.plotOptions,r=x.wrap,u=x.Color;function v(t,e,o){for(var a=4,i=[];a--;)i[a]=Math.round(e.rgba[a]+(t.rgba[a]-e.rgba[a])*(1-o));return"rgba("+i.join(",")+")"}i.mapNavigation={buttonOptions:{align:"right",verticalAlign:"bottom",x:0,width:18,height:18,style:{fontSize:"15px",fontWeight:"bold",textAlign:"center"}},buttons:{zoomIn:{onclick:function(){this.mapZoom(.5)},text:"+",y:-32},zoomOut:{onclick:function(){this.mapZoom(2)},text:"-",y:0}}},x.splitPath=function(t){var e;for(t=(t=(t=t.replace(/([A-Za-z])/g," $1 ")).replace(/^\s*/,"").replace(/\s*$/,"")).split(/[ ,]+/),e=0;e<t.length;e++)/[a-zA-Z]/.test(t[e])||(t[e]=parseFloat(t[e]));return t},x.maps={},r(e.prototype,"getSeriesExtremes",function(t){var o,a,i=this.isXAxis,n=[];f(this.series,function(t,e){t.useMapGeometry&&(n[e]=t.xData,t.xData=[])}),t.call(this),o=y(this.dataMin,Number.MAX_VALUE),a=y(this.dataMax,Number.MIN_VALUE),f(this.series,function(t,e){t.useMapGeometry&&(o=Math.min(o,t[i?"minX":"minY"]),a=Math.max(a,t[i?"maxX":"maxY"]),t.xData=n[e])}),this.dataMin=o,this.dataMax=a}),r(e.prototype,"setAxisTranslation",function(t){var e,o,a=this.chart,i=a.plotWidth/a.plotHeight,n=this.isXAxis,r=a.xAxis[0];t.call(this),"map"!==a.options.chart.type||n||r.transA===g||(this.transA=r.transA=Math.min(this.transA,r.transA),e=((o=i<(r.max-r.min)/(this.max-this.min)?this:r).max-o.min)*o.transA,o.minPixelPadding=(o.len-e)/2)}),r(o.prototype,"render",function(t){var e=this,o=e.options.mapNavigation;t.call(e),e.renderMapNavigation(),o.zoomOnDoubleClick&&x.addEvent(e.container,"dblclick",function(t){e.pointer.onContainerDblClick(t)}),o.zoomOnMouseWheel&&x.addEvent(e.container,void 0===document.onmousewheel?"DOMMouseScroll":"mousewheel",function(t){e.pointer.onContainerMouseWheel(t)})}),s(a.prototype,{onContainerDblClick:function(t){var e=this.chart;t=this.normalize(t),e.isInsidePlot(t.chartX-e.plotLeft,t.chartY-e.plotTop)&&e.mapZoom(.5,e.xAxis[0].toValue(t.chartX),e.yAxis[0].toValue(t.chartY))},onContainerMouseWheel:function(t){var e,o=this.chart;e=(t=this.normalize(t)).detail||-t.wheelDelta/120,o.isInsidePlot(t.chartX-o.plotLeft,t.chartY-o.plotTop)&&o.mapZoom(0<e?2:.5,o.xAxis[0].toValue(t.chartX),o.yAxis[0].toValue(t.chartY))}}),r(a.prototype,"init",function(t,e,o){t.call(this,e,o),o.mapNavigation.enableTouchZoom&&(this.pinchX=this.pinchHor=this.pinchY=this.pinchVert=!0)}),s(o.prototype,{renderMapNavigation:function(){function t(){this.handler.call(i)}var e,o,a,i=this,n=this.options.mapNavigation,r=n.buttons;if(n.enableButtons)for(e in r)r.hasOwnProperty(e)&&(a=h(n.buttonOptions,r[e]),(o=i.renderer.button(a.text,0,0,t).attr({width:a.width,height:a.height}).css(a.style).add()).handler=a.onclick,o.align(s(a,{width:o.width,height:o.height}),null,"spacingBox"))},fitToBox:function(a,i){return f([["x","width"],["y","height"]],function(t){var e=t[0],o=t[1];a[e]+a[o]>i[e]+i[o]&&(a[o]>i[o]?(a[o]=i[o],a[e]=i[e]):a[e]=i[e]+i[o]-a[o]),a[o]>i[o]&&(a[o]=i[o]),a[e]<i[e]&&(a[e]=i[e])}),a},mapZoom:function(t,e,o){if(!this.isMapZooming){var a,i=this,n=i.xAxis[0],r=n.max-n.min,l=y(e,n.min+r/2),s=r*t,h=i.yAxis[0],p=h.max-h.min,m=p*t,d=l-s/2,c=y(o,h.min+p/2)-m/2,u=y(i.options.chart.animation,!0),x=i.fitToBox({x:d,y:c,width:s,height:m},{x:n.dataMin,y:h.dataMin,width:n.dataMax-n.dataMin,height:h.dataMax-h.dataMin});n.setExtremes(x.x,x.x+x.width,!1),h.setExtremes(x.y,x.y+x.height,!1),(a=u?u.duration||500:0)&&(i.isMapZooming=!0,setTimeout(function(){i.isMapZooming=!1},a)),i.redraw()}}}),n.map=h(n.scatter,{animation:!1,nullColor:"#F8F8F8",borderColor:"silver",borderWidth:1,marker:null,stickyTracking:!1,dataLabels:{verticalAlign:"middle"},turboThreshold:0,tooltip:{followPointer:!0,pointFormat:"{point.name}: {point.y}<br/>"},states:{normal:{animation:!0}}});var p=x.extendClass(l,{applyOptions:function(t,e){var o=l.prototype.applyOptions.call(this,t,e);return o.path&&"string"==typeof o.path&&(o.path=o.options.path=x.splitPath(o.path)),o},onMouseOver:function(){clearTimeout(this.colorInterval),l.prototype.onMouseOver.call(this)},onMouseOut:function(){var o=this,a=+new Date,i=u(o.options.color),n=u(o.pointAttr.hover.fill),t=o.series.options.states.normal.animation,r=t&&(t.duration||500);r&&4===i.rgba.length&&4===n.rgba.length&&(delete o.pointAttr[""].fill,clearTimeout(o.colorInterval),o.colorInterval=setInterval(function(){var t=(new Date-a)/r,e=o.graphic;1<t&&(t=1),e&&e.attr("fill",v(n,i,t)),1<=t&&clearTimeout(o.colorInterval)},13)),l.prototype.onMouseOut.call(o)}});M.map=x.extendClass(M.scatter,{type:"map",pointAttrToOptions:{stroke:"borderColor","stroke-width":"borderWidth",fill:"color"},colorKey:"y",pointClass:p,trackerGroups:["group","markerGroup","dataLabelsGroup"],getSymbol:t,supportsDrilldown:!0,getExtremesFromAll:!0,useMapGeometry:!0,init:function(t){var e,o,a,i,n,r,l,s,h,p,m=this,d=t.options.legend.valueDecimals,c=[],u="horizontal"===t.options.legend.layout;x.Series.prototype.init.apply(this,arguments),r=m.options.colorRange,(l=m.options.valueRanges)?(f(l,function(t){o=t.from,a=t.to,e="",o===g?e="< ":a===g&&(e="> "),o!==g&&(e+=b(o,d)),o!==g&&a!==g&&(e+=" - "),a!==g&&(e+=b(a,d)),c.push(x.extend({chart:m.chart,name:e,options:{},drawLegendSymbol:M.area.prototype.drawLegendSymbol,visible:!0,setState:function(){},setVisible:function(){}},t))}),m.legendItems=c):r&&(o=r.from,a=r.to,i=r.fromLabel,n=r.toLabel,u||(p=i,i=n,n=p),s={linearGradient:{x1:(h=u?[0,0,1,0]:[0,1,0,0])[0],y1:h[1],x2:h[2],y2:h[3]},stops:[[0,o],[1,a]]},c=[{chart:m.chart,options:{},fromLabel:i,toLabel:n,color:s,drawLegendSymbol:this.drawLegendSymbolGradient,visible:!0,setState:function(){},setVisible:function(){}}],m.legendItems=c)},drawLegendSymbol:M.area.prototype.drawLegendSymbol,drawLegendSymbolGradient:function(t,e){var o,a,i,n,r,l=t.options.symbolPadding,s=y(t.options.padding,8),h=this.chart.renderer.fontMetrics(t.options.itemStyle.fontSize).h,p="horizontal"===t.options.layout,m=y(t.options.rectangleLength,200);a=p?(o=-l/2,0):(o=-m+t.baseline-l/2,s+h),e.fromText=this.chart.renderer.text(e.fromLabel,a,o).attr({zIndex:2}).add(e.legendGroup),i=e.fromText.getBBox(),e.legendSymbol=this.chart.renderer.rect(p?i.x+i.width+l:i.x-h-l,i.y,p?m:h,p?h:m,2).attr({zIndex:1}).add(e.legendGroup),n=e.legendSymbol.getBBox(),e.toText=this.chart.renderer.text(e.toLabel,n.x+n.width+l,p?o:n.y+n.height-l).attr({zIndex:2}).add(e.legendGroup),r=e.toText.getBBox(),p?(t.offsetWidth=i.width+n.width+r.width+2*l+s,t.itemY=h+s):(t.offsetWidth=Math.max(i.width,r.width)+l+n.width+s,t.itemY=n.height+s,t.itemX=l)},getBox:function(t){var s=Number.MIN_VALUE,h=Number.MAX_VALUE,p=Number.MIN_VALUE,m=Number.MAX_VALUE;f(t||this.options.data,function(t){for(var e=t.path,o=e.length,a=!1,i=Number.MIN_VALUE,n=Number.MAX_VALUE,r=Number.MIN_VALUE,l=Number.MAX_VALUE;o--;)"number"!=typeof e[o]||isNaN(e[o])||(a?(i=Math.max(i,e[o]),n=Math.min(n,e[o])):(r=Math.max(r,e[o]),l=Math.min(l,e[o])),a=!a);t._maxX=i,t._minX=n,t._maxY=r,t._minY=l,s=Math.max(s,i),h=Math.min(h,n),p=Math.max(p,r),m=Math.min(m,l)}),this.minY=m,this.maxY=p,this.minX=h,this.maxX=s},translatePath:function(t){var e,o=!1,a=this.xAxis,i=this.yAxis;for(e=(t=[].concat(t)).length;e--;)"number"==typeof t[e]&&(t[e]=o?Math.round(a.translate(t[e])):Math.round(i.len-i.translate(t[e])),o=!o);return t},setData:function(){x.Series.prototype.setData.apply(this,arguments),this.getBox()},translate:function(){var e=this,o=Number.MAX_VALUE,a=Number.MIN_VALUE;e.generatePoints(),f(e.data,function(t){t.shapeType="path",t.shapeArgs={d:e.translatePath(t.path)},"number"==typeof t.y&&(t.y>a?a=t.y:t.y<o&&(o=t.y))}),e.translateColors(o,a)},translateColors:function(r,l){var s,h,p=this.options,m=p.valueRanges,d=p.colorRange,c=this.colorKey;d&&(s=u(d.from),h=u(d.to)),f(this.data,function(t){var e,o,a,i,n=t[c];if(m){for(a=m.length;a--;)if(e=m[a],s=e.from,h=e.to,(s===g||s<=n)&&(h===g||n<=h)){o=e.color;break}}else d&&void 0!==n&&(i=1-(l-n)/(l-r),o=null===n?p.nullColor:v(s,h,i));o&&(t.color=null,t.options.color=o)})},drawGraph:t,drawDataLabels:t,drawPoints:function(){var t=this,r=t.xAxis,l=t.yAxis,s=t.colorKey;f(t.data,function(t){t.plotY=1,null===t[s]&&(t[s]=0,t.isNull=!0)}),M.column.prototype.drawPoints.apply(t),f(t.data,function(t){var e=t.dataLabels,o=r.toPixels(t._minX,!0),a=r.toPixels(t._maxX,!0),i=l.toPixels(t._minY,!0),n=l.toPixels(t._maxY,!0);t.plotX=Math.round(o+(a-o)*y(e&&e.anchorX,.5)),t.plotY=Math.round(i+(n-i)*y(e&&e.anchorY,.5)),t.isNull&&(t[s]=null)}),x.Series.prototype.drawDataLabels.call(t)},animateDrilldown:function(t){var e,o=this.chart.plotBox,a=this.chart.drilldownLevels[this.chart.drilldownLevels.length-1],i=a.bBox,n=this.chart.options.drilldown.animation;t||(e=Math.min(i.width/o.width,i.height/o.height),a.shapeArgs={scaleX:e,scaleY:e,translateX:i.x,translateY:i.y},f(this.points,function(t){t.graphic.attr(a.shapeArgs).animate({scaleX:1,scaleY:1,translateX:0,translateY:0},n)}),delete this.animate)},animateDrillupFrom:function(t){M.column.prototype.animateDrillupFrom.call(this,t)},animateDrillupTo:function(t){M.column.prototype.animateDrillupTo.call(this,t)}}),n.mapline=h(n.map,{lineWidth:1,backgroundColor:"none"}),M.mapline=x.extendClass(M.map,{type:"mapline",pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth",fill:"backgroundColor"},drawLegendSymbol:M.line.prototype.drawLegendSymbol}),n.mappoint=h(n.scatter,{dataLabels:{enabled:!0,format:"{point.name}",color:"black",style:{textShadow:"0 0 5px white"}}}),M.mappoint=x.extendClass(M.scatter,{type:"mappoint"}),x.Map=function(t,e){var o,a={endOnTick:!1,gridLineWidth:0,labels:{enabled:!1},lineWidth:0,minPadding:0,maxPadding:0,startOnTick:!1,tickWidth:0,title:null};return o=t.series,t.series=null,(t=h({chart:{type:"map",panning:"xy"},xAxis:a,yAxis:h(a,{reversed:!0})},t,{chart:{inverted:!1}})).series=o,new x.Chart(t,e)}}(Highcharts);
|