70 lines
31 KiB
JavaScript
70 lines
31 KiB
JavaScript
/*
|
|
Highmaps JS v6.1.0 (2018-04-13)
|
|
Highmaps as a plugin for Highcharts or Highstock.
|
|
|
|
(c) 2011-2017 Torstein Honsi
|
|
|
|
License: www.highcharts.com/license
|
|
*/
|
|
(function(x){"object"===typeof module&&module.exports?module.exports=x:x(Highcharts)})(function(x){(function(a){var l=a.addEvent,h=a.Axis,k=a.each,f=a.pick;l(h,"getSeriesExtremes",function(){var a=[];this.isXAxis&&(k(this.series,function(q,f){q.useMapGeometry&&(a[f]=q.xData,q.xData=[])}),this.seriesXData=a)});l(h,"afterGetSeriesExtremes",function(){var a=this.seriesXData,g,h,t;this.isXAxis&&(g=f(this.dataMin,Number.MAX_VALUE),h=f(this.dataMax,-Number.MAX_VALUE),k(this.series,function(e,b){e.useMapGeometry&&
|
|
(g=Math.min(g,f(e.minX,g)),h=Math.max(h,f(e.maxX,h)),e.xData=a[b],t=!0)}),t&&(this.dataMin=g,this.dataMax=h),delete this.seriesXData)});l(h,"afterSetAxisTranslation",function(){var a=this.chart,g;g=a.plotWidth/a.plotHeight;var a=a.xAxis[0],f;"yAxis"===this.coll&&void 0!==a.transA&&k(this.series,function(a){a.preserveAspectRatio&&(f=!0)});if(f&&(this.transA=a.transA=Math.min(this.transA,a.transA),g/=(a.max-a.min)/(this.max-this.min),g=1>g?this:a,a=(g.max-g.min)*g.transA,g.pixelPadding=g.len-a,g.minPixelPadding=
|
|
g.pixelPadding/2,a=g.fixTo)){a=a[1]-g.toValue(a[0],!0);a*=g.transA;if(Math.abs(a)>g.minPixelPadding||g.min===g.dataMin&&g.max===g.dataMax)a=0;g.minPixelPadding-=a}});l(h,"render",function(){this.fixTo=null})})(x);(function(a){var l=a.addEvent,h=a.Axis,k=a.Chart,f=a.color,q,g=a.each,u=a.extend,t=a.isNumber,e=a.Legend,b=a.LegendSymbolMixin,d=a.noop,n=a.merge,r=a.pick;a.ColorAxis||(q=a.ColorAxis=function(){this.init.apply(this,arguments)},u(q.prototype,h.prototype),u(q.prototype,{defaultColorAxisOptions:{lineWidth:0,
|
|
minPadding:0,maxPadding:0,gridLineWidth:1,tickPixelInterval:72,startOnTick:!0,endOnTick:!0,offset:0,marker:{animation:{duration:50},width:.01,color:"#999999"},labels:{overflow:"justify",rotation:0},minColor:"#e6ebf5",maxColor:"#003399",tickLength:5,showInLegend:!0},keepProps:["legendGroup","legendItemHeight","legendItemWidth","legendItem","legendSymbol"].concat(h.prototype.keepProps),init:function(a,b){var c="vertical"!==a.options.legend.layout,m;this.coll="colorAxis";m=n(this.defaultColorAxisOptions,
|
|
{side:c?2:1,reversed:!c},b,{opposite:!c,showEmpty:!1,title:null,visible:a.options.legend.enabled});h.prototype.init.call(this,a,m);b.dataClasses&&this.initDataClasses(b);this.initStops();this.horiz=c;this.zoomEnabled=!1;this.defaultLegendLength=200},initDataClasses:function(a){var b=this.chart,c,m=0,d=b.options.chart.colorCount,e=this.options,y=a.dataClasses.length;this.dataClasses=c=[];this.legendItems=[];g(a.dataClasses,function(a,p){a=n(a);c.push(a);a.color||("category"===e.dataClassColor?(p=b.options.colors,
|
|
d=p.length,a.color=p[m],a.colorIndex=m,m++,m===d&&(m=0)):a.color=f(e.minColor).tweenTo(f(e.maxColor),2>y?.5:p/(y-1)))})},setTickPositions:function(){if(!this.dataClasses)return h.prototype.setTickPositions.call(this)},initStops:function(){this.stops=this.options.stops||[[0,this.options.minColor],[1,this.options.maxColor]];g(this.stops,function(a){a.color=f(a[1])})},setOptions:function(a){h.prototype.setOptions.call(this,a);this.options.crosshair=this.options.marker},setAxisSize:function(){var a=this.legendSymbol,
|
|
b=this.chart,c=b.options.legend||{},p,d;a?(this.left=c=a.attr("x"),this.top=p=a.attr("y"),this.width=d=a.attr("width"),this.height=a=a.attr("height"),this.right=b.chartWidth-c-d,this.bottom=b.chartHeight-p-a,this.len=this.horiz?d:a,this.pos=this.horiz?c:p):this.len=(this.horiz?c.symbolWidth:c.symbolHeight)||this.defaultLegendLength},normalizedValue:function(a){this.isLog&&(a=this.val2lin(a));return 1-(this.max-a)/(this.max-this.min||1)},toColor:function(a,b){var c=this.stops,p,m,v=this.dataClasses,
|
|
d,e;if(v)for(e=v.length;e--;){if(d=v[e],p=d.from,c=d.to,(void 0===p||a>=p)&&(void 0===c||a<=c)){m=d.color;b&&(b.dataClass=e,b.colorIndex=d.colorIndex);break}}else{a=this.normalizedValue(a);for(e=c.length;e--&&!(a>c[e][0]););p=c[e]||c[e+1];c=c[e+1]||p;a=1-(c[0]-a)/(c[0]-p[0]||1);m=p.color.tweenTo(c.color,a)}return m},getOffset:function(){var a=this.legendGroup,b=this.chart.axisOffset[this.side];a&&(this.axisParent=a,h.prototype.getOffset.call(this),this.added||(this.added=!0,this.labelLeft=0,this.labelRight=
|
|
this.width),this.chart.axisOffset[this.side]=b)},setLegendColor:function(){var a,b=this.reversed;a=b?1:0;b=b?0:1;a=this.horiz?[a,0,b,0]:[0,b,0,a];this.legendColor={linearGradient:{x1:a[0],y1:a[1],x2:a[2],y2:a[3]},stops:this.stops}},drawLegendSymbol:function(a,b){var c=a.padding,p=a.options,d=this.horiz,m=r(p.symbolWidth,d?this.defaultLegendLength:12),v=r(p.symbolHeight,d?12:this.defaultLegendLength),e=r(p.labelPadding,d?16:30),p=r(p.itemDistance,10);this.setLegendColor();b.legendSymbol=this.chart.renderer.rect(0,
|
|
a.baseline-11,m,v).attr({zIndex:1}).add(b.legendGroup);this.legendItemWidth=m+c+(d?p:e);this.legendItemHeight=v+c+(d?e:0)},setState:function(a){g(this.series,function(b){b.setState(a)})},visible:!0,setVisible:d,getSeriesExtremes:function(){var a=this.series,b=a.length;this.dataMin=Infinity;for(this.dataMax=-Infinity;b--;)void 0!==a[b].valueMin&&(this.dataMin=Math.min(this.dataMin,a[b].valueMin),this.dataMax=Math.max(this.dataMax,a[b].valueMax))},drawCrosshair:function(a,b){var c=b&&b.plotX,p=b&&b.plotY,
|
|
d,e=this.pos,m=this.len;b&&(d=this.toPixels(b[b.series.colorKey]),d<e?d=e-2:d>e+m&&(d=e+m+2),b.plotX=d,b.plotY=this.len-d,h.prototype.drawCrosshair.call(this,a,b),b.plotX=c,b.plotY=p,this.cross&&!this.cross.addedToColorAxis&&this.legendGroup&&(this.cross.addClass("highcharts-coloraxis-marker").add(this.legendGroup),this.cross.addedToColorAxis=!0,this.cross.attr({fill:this.crosshair.color})))},getPlotLinePath:function(a,b,c,d,e){return t(e)?this.horiz?["M",e-4,this.top-6,"L",e+4,this.top-6,e,this.top,
|
|
"Z"]:["M",this.left,e,"L",this.left-6,e+6,this.left-6,e-6,"Z"]:h.prototype.getPlotLinePath.call(this,a,b,c,d)},update:function(a,b){var c=this.chart,d=c.legend;g(this.series,function(a){a.isDirtyData=!0});a.dataClasses&&d.allItems&&(g(d.allItems,function(a){a.isDataClass&&a.legendGroup&&a.legendGroup.destroy()}),c.isDirtyLegend=!0);c.options[this.coll]=n(this.userOptions,a);h.prototype.update.call(this,a,b);this.legendItem&&(this.setLegendColor(),d.colorizeItem(this,!0))},remove:function(){this.legendItem&&
|
|
this.chart.legend.destroyItem(this);h.prototype.remove.call(this)},getDataClassLegendSymbols:function(){var e=this,v=this.chart,c=this.legendItems,p=v.options.legend,n=p.valueDecimals,r=p.valueSuffix||"",y;c.length||g(this.dataClasses,function(p,m){var w=!0,f=p.from,q=p.to;y="";void 0===f?y="\x3c ":void 0===q&&(y="\x3e ");void 0!==f&&(y+=a.numberFormat(f,n)+r);void 0!==f&&void 0!==q&&(y+=" - ");void 0!==q&&(y+=a.numberFormat(q,n)+r);c.push(u({chart:v,name:y,options:{},drawLegendSymbol:b.drawRectangle,
|
|
visible:!0,setState:d,isDataClass:!0,setVisible:function(){w=this.visible=!w;g(e.series,function(a){g(a.points,function(a){a.dataClass===m&&a.setVisible(w)})});v.legend.colorizeItem(this,w)}},p))});return c},name:""}),g(["fill","stroke"],function(b){a.Fx.prototype[b+"Setter"]=function(){this.elem.attr(b,f(this.start).tweenTo(f(this.end),this.pos),null,!0)}}),l(k,"afterGetAxes",function(){var a=this.options.colorAxis;this.colorAxis=[];a&&new q(this,a)}),l(e,"afterGetAllItems",function(b){var d=[],
|
|
c=this.chart.colorAxis[0];c&&c.options&&(c.options.showInLegend&&(c.options.dataClasses?d=c.getDataClassLegendSymbols():d.push(c)),g(c.series,function(c){a.erase(b.allItems,c)}));for(;d.length;)b.allItems.unshift(d.pop())}),l(e,"afterColorizeItem",function(a){a.visible&&a.item.legendColor&&a.item.legendSymbol.attr({fill:a.item.legendColor})}),l(e,"afterUpdate",function(a,b,c){this.chart.colorAxis[0]&&this.chart.colorAxis[0].update({},c)}))})(x);(function(a){var l=a.defined,h=a.each,k=a.noop,f=a.seriesTypes;
|
|
a.colorPointMixin={isValid:function(){return null!==this.value&&Infinity!==this.value&&-Infinity!==this.value},setVisible:function(a){var f=this,q=a?"show":"hide";h(["graphic","dataLabel"],function(a){if(f[a])f[a][q]()})},setState:function(f){a.Point.prototype.setState.call(this,f);this.graphic&&this.graphic.attr({zIndex:"hover"===f?1:0})}};a.colorSeriesMixin={pointArrayMap:["value"],axisTypes:["xAxis","yAxis","colorAxis"],optionalAxis:"colorAxis",trackerGroups:["group","markerGroup","dataLabelsGroup"],
|
|
getSymbol:k,parallelArrays:["x","y","value"],colorKey:"value",pointAttribs:f.column.prototype.pointAttribs,translateColors:function(){var a=this,f=this.options.nullColor,k=this.colorAxis,l=this.colorKey;h(this.data,function(e){var b=e[l];if(b=e.options.color||(e.isNull?f:k&&void 0!==b?k.toColor(b,e):e.color||a.color))e.color=b})},colorAttribs:function(a){var f={};l(a.color)&&(f[this.colorProp||"fill"]=a.color);return f}}})(x);(function(a){function l(a){a&&(a.preventDefault&&a.preventDefault(),a.stopPropagation&&
|
|
a.stopPropagation(),a.cancelBubble=!0)}function h(a){this.init(a)}var k=a.addEvent,f=a.Chart,q=a.doc,g=a.each,u=a.extend,t=a.merge,e=a.pick;h.prototype.init=function(a){this.chart=a;a.mapNavButtons=[]};h.prototype.update=function(b){var d=this.chart,n=d.options.mapNavigation,f,m,v,c,p,w=function(a){this.handler.call(d,a);l(a)},q=d.mapNavButtons;b&&(n=d.options.mapNavigation=t(d.options.mapNavigation,b));for(;q.length;)q.pop().destroy();e(n.enableButtons,n.enabled)&&!d.renderer.forExport&&a.objectEach(n.buttons,
|
|
function(a,b){f=t(n.buttonOptions,a);m=f.theme;m.style=t(f.theme.style,f.style);c=(v=m.states)&&v.hover;p=v&&v.select;a=d.renderer.button(f.text,0,0,w,m,c,p,0,"zoomIn"===b?"topbutton":"bottombutton").addClass("highcharts-map-navigation").attr({width:f.width,height:f.height,title:d.options.lang[b],padding:f.padding,zIndex:5}).add();a.handler=f.onclick;a.align(u(f,{width:a.width,height:2*a.height}),null,f.alignTo);k(a.element,"dblclick",l);q.push(a)});this.updateEvents(n)};h.prototype.updateEvents=
|
|
function(a){var b=this.chart;e(a.enableDoubleClickZoom,a.enabled)||a.enableDoubleClickZoomTo?this.unbindDblClick=this.unbindDblClick||k(b.container,"dblclick",function(a){b.pointer.onContainerDblClick(a)}):this.unbindDblClick&&(this.unbindDblClick=this.unbindDblClick());e(a.enableMouseWheelZoom,a.enabled)?this.unbindMouseWheel=this.unbindMouseWheel||k(b.container,void 0===q.onmousewheel?"DOMMouseScroll":"mousewheel",function(a){b.pointer.onContainerMouseWheel(a);l(a);return!1}):this.unbindMouseWheel&&
|
|
(this.unbindMouseWheel=this.unbindMouseWheel())};u(f.prototype,{fitToBox:function(a,d){g([["x","width"],["y","height"]],function(b){var e=b[0];b=b[1];a[e]+a[b]>d[e]+d[b]&&(a[b]>d[b]?(a[b]=d[b],a[e]=d[e]):a[e]=d[e]+d[b]-a[b]);a[b]>d[b]&&(a[b]=d[b]);a[e]<d[e]&&(a[e]=d[e])});return a},mapZoom:function(a,d,f,q,m){var b=this.xAxis[0],c=b.max-b.min,p=e(d,b.min+c/2),w=c*a,c=this.yAxis[0],n=c.max-c.min,g=e(f,c.min+n/2),n=n*a,p=this.fitToBox({x:p-w*(q?(q-b.pos)/b.len:.5),y:g-n*(m?(m-c.pos)/c.len:.5),width:w,
|
|
height:n},{x:b.dataMin,y:c.dataMin,width:b.dataMax-b.dataMin,height:c.dataMax-c.dataMin}),w=p.x<=b.dataMin&&p.width>=b.dataMax-b.dataMin&&p.y<=c.dataMin&&p.height>=c.dataMax-c.dataMin;q&&(b.fixTo=[q-b.pos,d]);m&&(c.fixTo=[m-c.pos,f]);void 0===a||w?(b.setExtremes(void 0,void 0,!1),c.setExtremes(void 0,void 0,!1)):(b.setExtremes(p.x,p.x+p.width,!1),c.setExtremes(p.y,p.y+p.height,!1));this.redraw()}});k(f,"beforeRender",function(){this.mapNavigation=new h(this);this.mapNavigation.update()})})(x);(function(a){var l=
|
|
a.extend,h=a.pick,k=a.Pointer;a=a.wrap;l(k.prototype,{onContainerDblClick:function(a){var f=this.chart;a=this.normalize(a);f.options.mapNavigation.enableDoubleClickZoomTo?f.pointer.inClass(a.target,"highcharts-tracker")&&f.hoverPoint&&f.hoverPoint.zoomTo():f.isInsidePlot(a.chartX-f.plotLeft,a.chartY-f.plotTop)&&f.mapZoom(.5,f.xAxis[0].toValue(a.chartX),f.yAxis[0].toValue(a.chartY),a.chartX,a.chartY)},onContainerMouseWheel:function(a){var f=this.chart,g;a=this.normalize(a);g=a.detail||-(a.wheelDelta/
|
|
120);f.isInsidePlot(a.chartX-f.plotLeft,a.chartY-f.plotTop)&&f.mapZoom(Math.pow(f.options.mapNavigation.mouseWheelSensitivity,g),f.xAxis[0].toValue(a.chartX),f.yAxis[0].toValue(a.chartY),a.chartX,a.chartY)}});a(k.prototype,"zoomOption",function(a){var f=this.chart.options.mapNavigation;h(f.enableTouchZoom,f.enabled)&&(this.chart.options.chart.pinchType="xy");a.apply(this,[].slice.call(arguments,1))});a(k.prototype,"pinchTranslate",function(a,h,g,k,l,e,b){a.call(this,h,g,k,l,e,b);"map"===this.chart.options.chart.type&&
|
|
this.hasZoom&&(a=k.scaleX>k.scaleY,this.pinchTranslateDirection(!a,h,g,k,l,e,b,a?k.scaleX:k.scaleY))})})(x);(function(a){var l=a.colorPointMixin,h=a.each,k=a.extend,f=a.isNumber,q=a.map,g=a.merge,u=a.noop,t=a.pick,e=a.isArray,b=a.Point,d=a.Series,n=a.seriesType,r=a.seriesTypes,m=a.splat,v=void 0!==a.doc.documentElement.style.vectorEffect;n("map","scatter",{allAreas:!0,animation:!1,nullColor:"#f7f7f7",borderColor:"#cccccc",borderWidth:1,marker:null,stickyTracking:!1,joinBy:"hc-key",dataLabels:{formatter:function(){return this.point.value},
|
|
inside:!0,verticalAlign:"middle",crop:!1,overflow:!1,padding:0},turboThreshold:0,tooltip:{followPointer:!0,pointFormat:"{point.name}: {point.value}\x3cbr/\x3e"},states:{normal:{animation:!0},hover:{halo:null,brightness:.2},select:{color:"#cccccc"}}},g(a.colorSeriesMixin,{type:"map",getExtremesFromAll:!0,useMapGeometry:!0,forceDL:!0,searchPoint:u,directTouch:!0,preserveAspectRatio:!0,pointArrayMap:["value"],getBox:function(c){var b=Number.MAX_VALUE,d=-b,e=b,m=-b,v=b,n=b,g=this.xAxis,k=this.yAxis,q;
|
|
h(c||[],function(c){if(c.path){"string"===typeof c.path&&(c.path=a.splitPath(c.path));var p=c.path||[],w=p.length,g=!1,h=-b,k=b,y=-b,r=b,A=c.properties;if(!c._foundBox){for(;w--;)f(p[w])&&(g?(h=Math.max(h,p[w]),k=Math.min(k,p[w])):(y=Math.max(y,p[w]),r=Math.min(r,p[w])),g=!g);c._midX=k+(h-k)*t(c.middleX,A&&A["hc-middle-x"],.5);c._midY=r+(y-r)*t(c.middleY,A&&A["hc-middle-y"],.5);c._maxX=h;c._minX=k;c._maxY=y;c._minY=r;c.labelrank=t(c.labelrank,(h-k)*(y-r));c._foundBox=!0}d=Math.max(d,c._maxX);e=Math.min(e,
|
|
c._minX);m=Math.max(m,c._maxY);v=Math.min(v,c._minY);n=Math.min(c._maxX-c._minX,c._maxY-c._minY,n);q=!0}});q&&(this.minY=Math.min(v,t(this.minY,b)),this.maxY=Math.max(m,t(this.maxY,-b)),this.minX=Math.min(e,t(this.minX,b)),this.maxX=Math.max(d,t(this.maxX,-b)),g&&void 0===g.options.minRange&&(g.minRange=Math.min(5*n,(this.maxX-this.minX)/5,g.minRange||b)),k&&void 0===k.options.minRange&&(k.minRange=Math.min(5*n,(this.maxY-this.minY)/5,k.minRange||b)))},getExtremes:function(){d.prototype.getExtremes.call(this,
|
|
this.valueData);this.chart.hasRendered&&this.isDirtyData&&this.getBox(this.options.data);this.valueMin=this.dataMin;this.valueMax=this.dataMax;this.dataMin=this.minY;this.dataMax=this.maxY},translatePath:function(a){var c=!1,b=this.xAxis,d=this.yAxis,e=b.min,m=b.transA,b=b.minPixelPadding,v=d.min,n=d.transA,d=d.minPixelPadding,g,h=[];if(a)for(g=a.length;g--;)f(a[g])?(h[g]=c?(a[g]-e)*m+b:(a[g]-v)*n+d,c=!c):h[g]=a[g];return h},setData:function(c,b,v,n){var p=this.options,w=this.chart.options.chart,
|
|
k=w&&w.map,r=p.mapData,l=p.joinBy,t=null===l,B=p.keys||this.pointArrayMap,u=[],x={},z=this.chart.mapTransforms;!r&&k&&(r="string"===typeof k?a.maps[k]:k);t&&(l="_i");l=this.joinBy=m(l);l[1]||(l[1]=l[0]);c&&h(c,function(b,d){var m=0;if(f(b))c[d]={value:b};else if(e(b)){c[d]={};!p.keys&&b.length>B.length&&"string"===typeof b[0]&&(c[d]["hc-key"]=b[0],++m);for(var v=0;v<B.length;++v,++m)B[v]&&void 0!==b[m]&&(0<B[v].indexOf(".")?a.Point.prototype.setNestedProperty(c[d],b[m],B[v]):c[d][B[v]]=b[m])}t&&(c[d]._i=
|
|
d)});this.getBox(c);(this.chart.mapTransforms=z=w&&w.mapTransforms||r&&r["hc-transform"]||z)&&a.objectEach(z,function(a){a.rotation&&(a.cosAngle=Math.cos(a.rotation),a.sinAngle=Math.sin(a.rotation))});if(r){"FeatureCollection"===r.type&&(this.mapTitle=r.title,r=a.geojson(r,this.type,this));this.mapData=r;this.mapMap={};for(z=0;z<r.length;z++)w=r[z],k=w.properties,w._i=z,l[0]&&k&&k[l[0]]&&(w[l[0]]=k[l[0]]),x[w[l[0]]]=w;this.mapMap=x;c&&l[1]&&h(c,function(a){x[a[l[1]]]&&u.push(x[a[l[1]]])});p.allAreas?
|
|
(this.getBox(r),c=c||[],l[1]&&h(c,function(a){u.push(a[l[1]])}),u="|"+q(u,function(a){return a&&a[l[0]]}).join("|")+"|",h(r,function(a){l[0]&&-1!==u.indexOf("|"+a[l[0]]+"|")||(c.push(g(a,{value:null})),n=!1)})):this.getBox(u)}d.prototype.setData.call(this,c,b,v,n)},drawGraph:u,drawDataLabels:u,doFullTranslate:function(){return this.isDirtyData||this.chart.isResizing||this.chart.renderer.isVML||!this.baseTrans},translate:function(){var a=this,b=a.xAxis,d=a.yAxis,e=a.doFullTranslate();a.generatePoints();
|
|
h(a.data,function(c){c.plotX=b.toPixels(c._midX,!0);c.plotY=d.toPixels(c._midY,!0);e&&(c.shapeType="path",c.shapeArgs={d:a.translatePath(c.path)})});a.translateColors()},pointAttribs:function(a,b){a=r.column.prototype.pointAttribs.call(this,a,b);v?a["vector-effect"]="non-scaling-stroke":a["stroke-width"]="inherit";return a},drawPoints:function(){var a=this,b=a.xAxis,d=a.yAxis,e=a.group,m=a.chart,f=m.renderer,g,n,k,l,q=this.baseTrans,t,u,z,x,G;a.transformGroup||(a.transformGroup=f.g().attr({scaleX:1,
|
|
scaleY:1}).add(e),a.transformGroup.survive=!0);a.doFullTranslate()?(m.hasRendered&&h(a.points,function(b){b.shapeArgs&&(b.shapeArgs.fill=a.pointAttribs(b,b.state).fill)}),a.group=a.transformGroup,r.column.prototype.drawPoints.apply(a),a.group=e,h(a.points,function(a){a.graphic&&(a.name&&a.graphic.addClass("highcharts-name-"+a.name.replace(/ /g,"-").toLowerCase()),a.properties&&a.properties["hc-key"]&&a.graphic.addClass("highcharts-key-"+a.properties["hc-key"].toLowerCase()))}),this.baseTrans={originX:b.min-
|
|
b.minPixelPadding/b.transA,originY:d.min-d.minPixelPadding/d.transA+(d.reversed?0:d.len/d.transA),transAX:b.transA,transAY:d.transA},this.transformGroup.animate({translateX:0,translateY:0,scaleX:1,scaleY:1})):(g=b.transA/q.transAX,n=d.transA/q.transAY,k=b.toPixels(q.originX,!0),l=d.toPixels(q.originY,!0),.99<g&&1.01>g&&.99<n&&1.01>n&&(n=g=1,k=Math.round(k),l=Math.round(l)),t=this.transformGroup,m.renderer.globalAnimation?(u=t.attr("translateX"),z=t.attr("translateY"),x=t.attr("scaleX"),G=t.attr("scaleY"),
|
|
t.attr({animator:0}).animate({animator:1},{step:function(a,b){t.attr({translateX:u+(k-u)*b.pos,translateY:z+(l-z)*b.pos,scaleX:x+(g-x)*b.pos,scaleY:G+(n-G)*b.pos})}})):t.attr({translateX:k,translateY:l,scaleX:g,scaleY:n}));v||a.group.element.setAttribute("stroke-width",a.options[a.pointAttrToOptions&&a.pointAttrToOptions["stroke-width"]||"borderWidth"]/(g||1));this.drawMapDataLabels()},drawMapDataLabels:function(){d.prototype.drawDataLabels.call(this);this.dataLabelsGroup&&this.dataLabelsGroup.clip(this.chart.clipRect)},
|
|
render:function(){var a=this,b=d.prototype.render;a.chart.renderer.isVML&&3E3<a.data.length?setTimeout(function(){b.call(a)}):b.call(a)},animate:function(a){var b=this.options.animation,c=this.group,d=this.xAxis,e=this.yAxis,m=d.pos,f=e.pos;this.chart.renderer.isSVG&&(!0===b&&(b={duration:1E3}),a?c.attr({translateX:m+d.len/2,translateY:f+e.len/2,scaleX:.001,scaleY:.001}):(c.animate({translateX:m,translateY:f,scaleX:1,scaleY:1},b),this.animate=null))},animateDrilldown:function(a){var b=this.chart.plotBox,
|
|
c=this.chart.drilldownLevels[this.chart.drilldownLevels.length-1],d=c.bBox,e=this.chart.options.drilldown.animation;a||(a=Math.min(d.width/b.width,d.height/b.height),c.shapeArgs={scaleX:a,scaleY:a,translateX:d.x,translateY:d.y},h(this.points,function(a){a.graphic&&a.graphic.attr(c.shapeArgs).animate({scaleX:1,scaleY:1,translateX:0,translateY:0},e)}),this.animate=null)},drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,animateDrillupFrom:function(a){r.column.prototype.animateDrillupFrom.call(this,
|
|
a)},animateDrillupTo:function(a){r.column.prototype.animateDrillupTo.call(this,a)}}),k({applyOptions:function(a,d){a=b.prototype.applyOptions.call(this,a,d);d=this.series;var c=d.joinBy;d.mapData&&((c=void 0!==a[c[1]]&&d.mapMap[a[c[1]]])?(d.xyFromShape&&(a.x=c._midX,a.y=c._midY),k(a,c)):a.value=a.value||null);return a},onMouseOver:function(c){a.clearTimeout(this.colorInterval);if(null!==this.value||this.series.options.nullInteraction)b.prototype.onMouseOver.call(this,c);else this.series.onMouseOut(c)},
|
|
zoomTo:function(){var a=this.series;a.xAxis.setExtremes(this._minX,this._maxX,!1);a.yAxis.setExtremes(this._minY,this._maxY,!1);a.chart.redraw()}},l))})(x);(function(a){var l=a.seriesType,h=a.seriesTypes;l("mapline","map",{lineWidth:1,fillColor:"none"},{type:"mapline",colorProp:"stroke",pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"},pointAttribs:function(a,f){a=h.map.prototype.pointAttribs.call(this,a,f);a.fill=this.options.fillColor;return a},drawLegendSymbol:h.line.prototype.drawLegendSymbol})})(x);
|
|
(function(a){var l=a.merge,h=a.Point;a=a.seriesType;a("mappoint","scatter",{dataLabels:{enabled:!0,formatter:function(){return this.point.name},crop:!1,defer:!1,overflow:!1,style:{color:"#000000"}}},{type:"mappoint",forceDL:!0},{applyOptions:function(a,f){a=void 0!==a.lat&&void 0!==a.lon?l(a,this.series.chart.fromLatLonToPoint(a)):a;return h.prototype.applyOptions.call(this,a,f)}})})(x);(function(a){var l=a.arrayMax,h=a.arrayMin,k=a.Axis,f=a.color,q=a.each,g=a.isNumber,u=a.noop,t=a.pick,e=a.pInt,
|
|
b=a.Point,d=a.Series,n=a.seriesType,r=a.seriesTypes;n("bubble","scatter",{dataLabels:{formatter:function(){return this.point.z},inside:!0,verticalAlign:"middle"},animationLimit:250,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(a,b){var c=this.options.marker.fillOpacity;a=d.prototype.pointAttribs.call(this,a,b);1!==c&&(a.fill=f(a.fill).setOpacity(c).get("rgba"));return a},getRadii:function(a,b,c,d){var e,m,f,p=this.zData,g=[],n=this.options,v="width"!==n.sizeBy,h=n.zThreshold,k=b-a;m=0;for(e=p.length;m<e;m++)f=p[m],n.sizeByAbsoluteValue&&null!==f&&(f=Math.abs(f-h),b=k=Math.max(b-h,Math.abs(a-
|
|
h)),a=0),null===f?f=null:f<a?f=c/2-1:(f=0<k?(f-a)/k:.5,v&&0<=f&&(f=Math.sqrt(f)),f=Math.ceil(c+f*(d-c))/2),g.push(f);this.radii=g},animate:function(a){!a&&this.points.length<this.options.animationLimit&&(q(this.points,function(a){var b=a.graphic,d;b&&b.width&&(d={x:b.x,y:b.y,width:b.width,height:b.height},b.attr({x:a.plotX,y:a.plotY,width:1,height:1}),b.animate(d,this.options.animation))},this),this.animate=null)},translate:function(){var b,d=this.data,c,e,f=this.radii;r.scatter.prototype.translate.call(this);
|
|
for(b=d.length;b--;)c=d[b],e=f?f[b]:0,g(e)&&e>=this.minPxSize/2?(c.marker=a.extend(c.marker,{radius:e,width:2*e,height:2*e}),c.dlBox={x:c.plotX-e,y:c.plotY-e,width:2*e,height:2*e}):c.shapeArgs=c.plotY=c.dlBox=void 0},alignDataLabel:r.column.prototype.alignDataLabel,buildKDTree:u,applyZones:u},{haloPath:function(a){return b.prototype.haloPath.call(this,0===a?0:(this.marker?this.marker.radius||0:0)+a)},ttBelow:!1});k.prototype.beforePadding=function(){var a=this,b=this.len,c=this.chart,d=0,f=b,n=this.isXAxis,
|
|
k=n?"xData":"yData",r=this.min,u={},x=Math.min(c.plotWidth,c.plotHeight),A=Number.MAX_VALUE,D=-Number.MAX_VALUE,E=this.max-r,C=b/E,F=[];q(this.series,function(b){var d=b.options;!b.bubblePadding||!b.visible&&c.options.chart.ignoreHiddenSeries||(a.allowZoomOutside=!0,F.push(b),n&&(q(["minSize","maxSize"],function(a){var b=d[a],c=/%$/.test(b),b=e(b);u[a]=c?x*b/100:b}),b.minPxSize=u.minSize,b.maxPxSize=Math.max(u.maxSize,u.minSize),b=b.zData,b.length&&(A=t(d.zMin,Math.min(A,Math.max(h(b),!1===d.displayNegative?
|
|
d.zThreshold:-Number.MAX_VALUE))),D=t(d.zMax,Math.max(D,l(b))))))});q(F,function(b){var c=b[k],e=c.length,m;n&&b.getRadii(A,D,b.minPxSize,b.maxPxSize);if(0<E)for(;e--;)g(c[e])&&a.dataMin<=c[e]&&c[e]<=a.dataMax&&(m=b.radii[e],d=Math.min((c[e]-r)*C-m,d),f=Math.max((c[e]-r)*C+m,f))});F.length&&0<E&&!this.isLog&&(f-=b,C*=(b+d-f)/b,q([["min","userMin",d],["max","userMax",f]],function(b){void 0===t(a.options[b[0]],a[b[1]])&&(a[b[0]]+=b[2]/C)}))}})(x);(function(a){var l=a.merge,h=a.Point,k=a.seriesType,
|
|
f=a.seriesTypes;f.bubble&&k("mapbubble","bubble",{animationLimit:500,tooltip:{pointFormat:"{point.name}: {point.z}"}},{xyFromShape:!0,type:"mapbubble",pointArrayMap:["z"],getMapData:f.map.prototype.getMapData,getBox:f.map.prototype.getBox,setData:f.map.prototype.setData},{applyOptions:function(a,g){return a&&void 0!==a.lat&&void 0!==a.lon?h.prototype.applyOptions.call(this,l(a,this.series.chart.fromLatLonToPoint(a)),g):f.map.prototype.pointClass.prototype.applyOptions.call(this,a,g)},isValid:function(){return"number"===
|
|
typeof this.z},ttBelow:!1})})(x);(function(a){var l=a.colorPointMixin,h=a.each,k=a.merge,f=a.noop,q=a.pick,g=a.Series,u=a.seriesType,t=a.seriesTypes;u("heatmap","scatter",{animation:!1,borderWidth:0,nullColor:"#f7f7f7",dataLabels:{formatter:function(){return this.point.value},inside:!0,verticalAlign:"middle",crop:!1,overflow:!1,padding:0},marker:null,pointRange:null,tooltip:{pointFormat:"{point.x}, {point.y}: {point.value}\x3cbr/\x3e"},states:{hover:{halo:!1,brightness:.2}}},k(a.colorSeriesMixin,
|
|
{pointArrayMap:["y","value"],hasPointSpecificOptions:!0,getExtremesFromAll:!0,directTouch:!0,init:function(){var a;t.scatter.prototype.init.apply(this,arguments);a=this.options;a.pointRange=q(a.pointRange,a.colsize||1);this.yAxis.axisPointRange=a.rowsize||1},translate:function(){var a=this.options,b=this.xAxis,d=this.yAxis,f=a.pointPadding||0,g=function(a,b,c){return Math.min(Math.max(b,a),c)};this.generatePoints();h(this.points,function(e){var n=(a.colsize||1)/2,c=(a.rowsize||1)/2,m=g(Math.round(b.len-
|
|
b.translate(e.x-n,0,1,0,1)),-b.len,2*b.len),n=g(Math.round(b.len-b.translate(e.x+n,0,1,0,1)),-b.len,2*b.len),h=g(Math.round(d.translate(e.y-c,0,1,0,1)),-d.len,2*d.len),c=g(Math.round(d.translate(e.y+c,0,1,0,1)),-d.len,2*d.len),k=q(e.pointPadding,f);e.plotX=e.clientX=(m+n)/2;e.plotY=(h+c)/2;e.shapeType="rect";e.shapeArgs={x:Math.min(m,n)+k,y:Math.min(h,c)+k,width:Math.abs(n-m)-2*k,height:Math.abs(c-h)-2*k}});this.translateColors()},drawPoints:function(){t.column.prototype.drawPoints.call(this);h(this.points,
|
|
function(a){a.graphic.attr(this.colorAttribs(a))},this)},animate:f,getBox:f,drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,alignDataLabel:t.column.prototype.alignDataLabel,getExtremes:function(){g.prototype.getExtremes.call(this,this.valueData);this.valueMin=this.dataMin;this.valueMax=this.dataMax;g.prototype.getExtremes.call(this)}}),a.extend({haloPath:function(a){if(!a)return[];var b=this.shapeArgs;return["M",b.x-a,b.y-a,"L",b.x-a,b.y+b.height+a,b.x+b.width+a,b.y+b.height+a,b.x+b.width+a,b.y-
|
|
a,"Z"]}},l))})(x);(function(a){function l(a,b){var d,e,f,g=!1,h=a.x,c=a.y;a=0;for(d=b.length-1;a<b.length;d=a++)e=b[a][1]>c,f=b[d][1]>c,e!==f&&h<(b[d][0]-b[a][0])*(c-b[a][1])/(b[d][1]-b[a][1])+b[a][0]&&(g=!g);return g}var h=a.Chart,k=a.each,f=a.extend,q=a.format,g=a.merge,u=a.win,t=a.wrap;h.prototype.transformFromLatLon=function(e,b){if(void 0===u.proj4)return a.error(21),{x:0,y:null};e=u.proj4(b.crs,[e.lon,e.lat]);var d=b.cosAngle||b.rotation&&Math.cos(b.rotation),f=b.sinAngle||b.rotation&&Math.sin(b.rotation);
|
|
e=b.rotation?[e[0]*d+e[1]*f,-e[0]*f+e[1]*d]:e;return{x:((e[0]-(b.xoffset||0))*(b.scale||1)+(b.xpan||0))*(b.jsonres||1)+(b.jsonmarginX||0),y:(((b.yoffset||0)-e[1])*(b.scale||1)+(b.ypan||0))*(b.jsonres||1)-(b.jsonmarginY||0)}};h.prototype.transformToLatLon=function(e,b){if(void 0===u.proj4)a.error(21);else{e={x:((e.x-(b.jsonmarginX||0))/(b.jsonres||1)-(b.xpan||0))/(b.scale||1)+(b.xoffset||0),y:((-e.y-(b.jsonmarginY||0))/(b.jsonres||1)+(b.ypan||0))/(b.scale||1)+(b.yoffset||0)};var d=b.cosAngle||b.rotation&&
|
|
Math.cos(b.rotation),f=b.sinAngle||b.rotation&&Math.sin(b.rotation);b=u.proj4(b.crs,"WGS84",b.rotation?{x:e.x*d+e.y*-f,y:e.x*f+e.y*d}:e);return{lat:b.y,lon:b.x}}};h.prototype.fromPointToLatLon=function(e){var b=this.mapTransforms,d;if(b){for(d in b)if(b.hasOwnProperty(d)&&b[d].hitZone&&l({x:e.x,y:-e.y},b[d].hitZone.coordinates[0]))return this.transformToLatLon(e,b[d]);return this.transformToLatLon(e,b["default"])}a.error(22)};h.prototype.fromLatLonToPoint=function(e){var b=this.mapTransforms,d,f;
|
|
if(!b)return a.error(22),{x:0,y:null};for(d in b)if(b.hasOwnProperty(d)&&b[d].hitZone&&(f=this.transformFromLatLon(e,b[d]),l({x:f.x,y:-f.y},b[d].hitZone.coordinates[0])))return f;return this.transformFromLatLon(e,b["default"])};a.geojson=function(a,b,d){var e=[],g=[],h=function(a){var b,d=a.length;g.push("M");for(b=0;b<d;b++)1===b&&g.push("L"),g.push(a[b][0],-a[b][1])};b=b||"map";k(a.features,function(a){var d=a.geometry,n=d.type,d=d.coordinates;a=a.properties;var m;g=[];"map"===b||"mapbubble"===
|
|
b?("Polygon"===n?(k(d,h),g.push("Z")):"MultiPolygon"===n&&(k(d,function(a){k(a,h)}),g.push("Z")),g.length&&(m={path:g})):"mapline"===b?("LineString"===n?h(d):"MultiLineString"===n&&k(d,h),g.length&&(m={path:g})):"mappoint"===b&&"Point"===n&&(m={x:d[0],y:-d[1]});m&&e.push(f(m,{name:a.name||a.NAME,properties:a}))});d&&a.copyrightShort&&(d.chart.mapCredits=q(d.chart.options.credits.mapText,{geojson:a}),d.chart.mapCreditsFull=q(d.chart.options.credits.mapTextFull,{geojson:a}));return e};t(h.prototype,
|
|
"addCredits",function(a,b){b=g(!0,this.options.credits,b);this.mapCredits&&(b.href=null);a.call(this,b);this.credits&&this.mapCreditsFull&&this.credits.attr({title:this.mapCreditsFull})})})(x);(function(a){function l(a,b,e,f,g,c,h,k){return["M",a+g,b,"L",a+e-c,b,"C",a+e-c/2,b,a+e,b+c/2,a+e,b+c,"L",a+e,b+f-h,"C",a+e,b+f-h/2,a+e-h/2,b+f,a+e-h,b+f,"L",a+k,b+f,"C",a+k/2,b+f,a,b+f-k/2,a,b+f-k,"L",a,b+g,"C",a,b+g/2,a+g/2,b,a+g,b,"Z"]}var h=a.Chart,k=a.defaultOptions,f=a.each,q=a.extend,g=a.merge,u=a.pick,
|
|
t=a.Renderer,e=a.SVGRenderer,b=a.VMLRenderer;q(k.lang,{zoomIn:"Zoom in",zoomOut:"Zoom out"});k.mapNavigation={buttonOptions:{alignTo:"plotBox",align:"left",verticalAlign:"top",x:0,width:18,height:18,padding:5,style:{fontSize:"15px",fontWeight:"bold"},theme:{"stroke-width":1,"text-align":"center"}},buttons:{zoomIn:{onclick:function(){this.mapZoom(.5)},text:"+",y:0},zoomOut:{onclick:function(){this.mapZoom(2)},text:"-",y:28}},mouseWheelSensitivity:1.1};a.splitPath=function(a){var b;a=a.replace(/([A-Za-z])/g,
|
|
" $1 ");a=a.replace(/^\s*/,"").replace(/\s*$/,"");a=a.split(/[ ,]+/);for(b=0;b<a.length;b++)/[a-zA-Z]/.test(a[b])||(a[b]=parseFloat(a[b]));return a};a.maps={};e.prototype.symbols.topbutton=function(a,b,e,f,g){return l(a-1,b-1,e,f,g.r,g.r,0,0)};e.prototype.symbols.bottombutton=function(a,b,e,f,g){return l(a-1,b-1,e,f,0,0,g.r,g.r)};t===b&&f(["topbutton","bottombutton"],function(a){b.prototype.symbols[a]=e.prototype.symbols[a]});a.Map=a.mapChart=function(b,e,f){var d="string"===typeof b||b.nodeName,
|
|
k=arguments[d?1:0],c={endOnTick:!1,visible:!1,minPadding:0,maxPadding:0,startOnTick:!1},l,n=a.getOptions().credits;l=k.series;k.series=null;k=g({chart:{panning:"xy",type:"map"},credits:{mapText:u(n.mapText,' \u00a9 \x3ca href\x3d"{geojson.copyrightUrl}"\x3e{geojson.copyrightShort}\x3c/a\x3e'),mapTextFull:u(n.mapTextFull,"{geojson.copyright}")},tooltip:{followTouchMove:!1},xAxis:c,yAxis:g(c,{reversed:!0})},k,{chart:{inverted:!1,alignTicks:!1}});k.series=l;return d?new h(b,k,f):new h(k,e)}})(x)});
|