451 lines
220 KiB
JavaScript
451 lines
220 KiB
JavaScript
/*
|
|
Highmaps JS v6.2.0 (2018-10-17)
|
|
|
|
(c) 2011-2016 Torstein Honsi
|
|
|
|
License: www.highcharts.com/license
|
|
*/
|
|
(function(R,M){"object"===typeof module&&module.exports?module.exports=R.document?M(R):M:"function"===typeof define&&define.amd?define(function(){return M(R)}):R.Highcharts=M(R)})("undefined"!==typeof window?window:this,function(R){var M=function(){var a="undefined"===typeof R?window:R,B=a.document,C=a.navigator&&a.navigator.userAgent||"",D=B&&B.createElementNS&&!!B.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,n=/(edge|msie|trident)/i.test(C)&&!a.opera,d=-1!==C.indexOf("Firefox"),
|
|
k=-1!==C.indexOf("Chrome"),u=d&&4>parseInt(C.split("Firefox/")[1],10);return a.Highcharts?a.Highcharts.error(16,!0):{product:"Highmaps",version:"6.2.0",deg2rad:2*Math.PI/360,doc:B,hasBidiBug:u,hasTouch:B&&void 0!==B.documentElement.ontouchstart,isMS:n,isWebKit:-1!==C.indexOf("AppleWebKit"),isFirefox:d,isChrome:k,isSafari:!k&&-1!==C.indexOf("Safari"),isTouchDevice:/(Mobile|Android|Windows Phone)/.test(C),SVG_NS:"http://www.w3.org/2000/svg",chartCount:0,seriesTypes:{},symbolSizes:{},svg:D,win:a,marginNames:["plotTop",
|
|
"marginRight","marginBottom","plotLeft"],noop:function(){},charts:[]}}();(function(a){a.timers=[];var B=a.charts,C=a.doc,D=a.win;a.error=function(n,d){n=a.isNumber(n)?"Highcharts error #"+n+": www.highcharts.com/errors/"+n:n;if(d)throw Error(n);D.console&&console.log(n)};a.Fx=function(a,d,k){this.options=d;this.elem=a;this.prop=k};a.Fx.prototype={dSetter:function(){var a=this.paths[0],d=this.paths[1],k=[],u=this.now,v=a.length,q;if(1===u)k=this.toD;else if(v===d.length&&1>u)for(;v--;)q=parseFloat(a[v]),
|
|
k[v]=isNaN(q)?d[v]:u*parseFloat(d[v]-q)+q;else k=d;this.elem.attr("d",k,null,!0)},update:function(){var a=this.elem,d=this.prop,k=this.now,u=this.options.step;if(this[d+"Setter"])this[d+"Setter"]();else a.attr?a.element&&a.attr(d,k,null,!0):a.style[d]=k+this.unit;u&&u.call(a,k,this)},run:function(n,d,k){var u=this,v=u.options,q=function(a){return q.stopped?!1:u.step(a)},p=D.requestAnimationFrame||function(a){setTimeout(a,13)},y=function(){for(var g=0;g<a.timers.length;g++)a.timers[g]()||a.timers.splice(g--,
|
|
1);a.timers.length&&p(y)};n!==d||this.elem["forceAnimate:"+this.prop]?(this.startTime=+new Date,this.start=n,this.end=d,this.unit=k,this.now=this.start,this.pos=0,q.elem=this.elem,q.prop=this.prop,q()&&1===a.timers.push(q)&&p(y)):(delete v.curAnim[this.prop],v.complete&&0===a.keys(v.curAnim).length&&v.complete.call(this.elem))},step:function(n){var d=+new Date,k,u=this.options,v=this.elem,q=u.complete,p=u.duration,y=u.curAnim;v.attr&&!v.element?n=!1:n||d>=p+this.startTime?(this.now=this.end,this.pos=
|
|
1,this.update(),k=y[this.prop]=!0,a.objectEach(y,function(a){!0!==a&&(k=!1)}),k&&q&&q.call(v),n=!1):(this.pos=u.easing((d-this.startTime)/p),this.now=this.start+(this.end-this.start)*this.pos,this.update(),n=!0);return n},initPath:function(n,d,k){function u(a){var b,c;for(f=a.length;f--;)b="M"===a[f]||"L"===a[f],c=/[a-zA-Z]/.test(a[f+3]),b&&c&&a.splice(f+1,0,a[f+1],a[f+2],a[f+1],a[f+2])}function v(a,c){for(;a.length<b;){a[0]=c[b-a.length];var h=a.slice(0,m);[].splice.apply(a,[0,0].concat(h));e&&(h=
|
|
a.slice(a.length-m),[].splice.apply(a,[a.length,0].concat(h)),f--)}a[0]="M"}function q(a,f){for(var g=(b-a.length)/m;0<g&&g--;)c=a.slice().splice(a.length/w-m,m*w),c[0]=f[b-m-g*m],h&&(c[m-6]=c[m-2],c[m-5]=c[m-1]),[].splice.apply(a,[a.length/w,0].concat(c)),e&&g--}d=d||"";var p,y=n.startX,g=n.endX,h=-1<d.indexOf("C"),m=h?7:3,b,c,f;d=d.split(" ");k=k.slice();var e=n.isArea,w=e?2:1,G;h&&(u(d),u(k));if(y&&g){for(f=0;f<y.length;f++)if(y[f]===g[0]){p=f;break}else if(y[0]===g[g.length-y.length+f]){p=f;G=
|
|
!0;break}void 0===p&&(d=[])}d.length&&a.isNumber(p)&&(b=k.length+p*w*m,G?(v(d,k),q(k,d)):(v(k,d),q(d,k)));return[d,k]},fillSetter:function(){a.Fx.prototype.strokeSetter.apply(this,arguments)},strokeSetter:function(){this.elem.attr(this.prop,a.color(this.start).tweenTo(a.color(this.end),this.pos),null,!0)}};a.merge=function(){var n,d=arguments,k,u={},v=function(q,p){"object"!==typeof q&&(q={});a.objectEach(p,function(n,g){!a.isObject(n,!0)||a.isClass(n)||a.isDOMElement(n)?q[g]=p[g]:q[g]=v(q[g]||{},
|
|
n)});return q};!0===d[0]&&(u=d[1],d=Array.prototype.slice.call(d,2));k=d.length;for(n=0;n<k;n++)u=v(u,d[n]);return u};a.pInt=function(a,d){return parseInt(a,d||10)};a.isString=function(a){return"string"===typeof a};a.isArray=function(a){a=Object.prototype.toString.call(a);return"[object Array]"===a||"[object Array Iterator]"===a};a.isObject=function(n,d){return!!n&&"object"===typeof n&&(!d||!a.isArray(n))};a.isDOMElement=function(n){return a.isObject(n)&&"number"===typeof n.nodeType};a.isClass=function(n){var d=
|
|
n&&n.constructor;return!(!a.isObject(n,!0)||a.isDOMElement(n)||!d||!d.name||"Object"===d.name)};a.isNumber=function(a){return"number"===typeof a&&!isNaN(a)&&Infinity>a&&-Infinity<a};a.erase=function(a,d){for(var k=a.length;k--;)if(a[k]===d){a.splice(k,1);break}};a.defined=function(a){return void 0!==a&&null!==a};a.attr=function(n,d,k){var u;a.isString(d)?a.defined(k)?n.setAttribute(d,k):n&&n.getAttribute&&((u=n.getAttribute(d))||"class"!==d||(u=n.getAttribute(d+"Name"))):a.defined(d)&&a.isObject(d)&&
|
|
a.objectEach(d,function(a,q){n.setAttribute(q,a)});return u};a.splat=function(n){return a.isArray(n)?n:[n]};a.syncTimeout=function(a,d,k){if(d)return setTimeout(a,d,k);a.call(0,k)};a.clearTimeout=function(n){a.defined(n)&&clearTimeout(n)};a.extend=function(a,d){var k;a||(a={});for(k in d)a[k]=d[k];return a};a.pick=function(){var a=arguments,d,k,u=a.length;for(d=0;d<u;d++)if(k=a[d],void 0!==k&&null!==k)return k};a.css=function(n,d){a.isMS&&!a.svg&&d&&void 0!==d.opacity&&(d.filter="alpha(opacity\x3d"+
|
|
100*d.opacity+")");a.extend(n.style,d)};a.createElement=function(n,d,k,u,v){n=C.createElement(n);var q=a.css;d&&a.extend(n,d);v&&q(n,{padding:0,border:"none",margin:0});k&&q(n,k);u&&u.appendChild(n);return n};a.extendClass=function(n,d){var k=function(){};k.prototype=new n;a.extend(k.prototype,d);return k};a.pad=function(a,d,k){return Array((d||2)+1-String(a).replace("-","").length).join(k||0)+a};a.relativeLength=function(a,d,k){return/%$/.test(a)?d*parseFloat(a)/100+(k||0):parseFloat(a)};a.wrap=
|
|
function(a,d,k){var n=a[d];a[d]=function(){var a=Array.prototype.slice.call(arguments),q=arguments,p=this;p.proceed=function(){n.apply(p,arguments.length?arguments:q)};a.unshift(n);a=k.apply(this,a);p.proceed=null;return a}};a.datePropsToTimestamps=function(n){a.objectEach(n,function(d,k){a.isObject(d)&&"function"===typeof d.getTime?n[k]=d.getTime():(a.isObject(d)||a.isArray(d))&&a.datePropsToTimestamps(d)})};a.formatSingle=function(n,d,k){var u=/\.([0-9])/,v=a.defaultOptions.lang;/f$/.test(n)?(k=
|
|
(k=n.match(u))?k[1]:-1,null!==d&&(d=a.numberFormat(d,k,v.decimalPoint,-1<n.indexOf(",")?v.thousandsSep:""))):d=(k||a.time).dateFormat(n,d);return d};a.format=function(n,d,k){for(var u="{",v=!1,q,p,y,g,h=[],m;n;){u=n.indexOf(u);if(-1===u)break;q=n.slice(0,u);if(v){q=q.split(":");p=q.shift().split(".");g=p.length;m=d;for(y=0;y<g;y++)m&&(m=m[p[y]]);q.length&&(m=a.formatSingle(q.join(":"),m,k));h.push(m)}else h.push(q);n=n.slice(u+1);u=(v=!v)?"}":"{"}h.push(n);return h.join("")};a.getMagnitude=function(a){return Math.pow(10,
|
|
Math.floor(Math.log(a)/Math.LN10))};a.normalizeTickInterval=function(n,d,k,u,v){var q,p=n;k=a.pick(k,1);q=n/k;d||(d=v?[1,1.2,1.5,2,2.5,3,4,5,6,8,10]:[1,2,2.5,5,10],!1===u&&(1===k?d=a.grep(d,function(a){return 0===a%1}):.1>=k&&(d=[1/k])));for(u=0;u<d.length&&!(p=d[u],v&&p*k>=n||!v&&q<=(d[u]+(d[u+1]||d[u]))/2);u++);return p=a.correctFloat(p*k,-Math.round(Math.log(.001)/Math.LN10))};a.stableSort=function(a,d){var k=a.length,n,v;for(v=0;v<k;v++)a[v].safeI=v;a.sort(function(a,p){n=d(a,p);return 0===n?
|
|
a.safeI-p.safeI:n});for(v=0;v<k;v++)delete a[v].safeI};a.arrayMin=function(a){for(var d=a.length,k=a[0];d--;)a[d]<k&&(k=a[d]);return k};a.arrayMax=function(a){for(var d=a.length,k=a[0];d--;)a[d]>k&&(k=a[d]);return k};a.destroyObjectProperties=function(n,d){a.objectEach(n,function(a,u){a&&a!==d&&a.destroy&&a.destroy();delete n[u]})};a.discardElement=function(n){var d=a.garbageBin;d||(d=a.createElement("div"));n&&d.appendChild(n);d.innerHTML=""};a.correctFloat=function(a,d){return parseFloat(a.toPrecision(d||
|
|
14))};a.setAnimation=function(n,d){d.renderer.globalAnimation=a.pick(n,d.options.chart.animation,!0)};a.animObject=function(n){return a.isObject(n)?a.merge(n):{duration:n?500:0}};a.timeUnits={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5,month:24192E5,year:314496E5};a.numberFormat=function(n,d,k,u){n=+n||0;d=+d;var v=a.defaultOptions.lang,q=(n.toString().split(".")[1]||"").split("e")[0].length,p,y,g=n.toString().split("e");-1===d?d=Math.min(q,20):a.isNumber(d)?d&&g[1]&&0>g[1]&&
|
|
(p=d+ +g[1],0<=p?(g[0]=(+g[0]).toExponential(p).split("e")[0],d=p):(g[0]=g[0].split(".")[0]||0,n=20>d?(g[0]*Math.pow(10,g[1])).toFixed(d):0,g[1]=0)):d=2;y=(Math.abs(g[1]?g[0]:n)+Math.pow(10,-Math.max(d,q)-1)).toFixed(d);q=String(a.pInt(y));p=3<q.length?q.length%3:0;k=a.pick(k,v.decimalPoint);u=a.pick(u,v.thousandsSep);n=(0>n?"-":"")+(p?q.substr(0,p)+u:"");n+=q.substr(p).replace(/(\d{3})(?=\d)/g,"$1"+u);d&&(n+=k+y.slice(-d));g[1]&&0!==+n&&(n+="e"+g[1]);return n};Math.easeInOutSine=function(a){return-.5*
|
|
(Math.cos(Math.PI*a)-1)};a.getStyle=function(n,d,k){if("width"===d)return Math.max(0,Math.min(n.offsetWidth,n.scrollWidth)-a.getStyle(n,"padding-left")-a.getStyle(n,"padding-right"));if("height"===d)return Math.max(0,Math.min(n.offsetHeight,n.scrollHeight)-a.getStyle(n,"padding-top")-a.getStyle(n,"padding-bottom"));D.getComputedStyle||a.error(27,!0);if(n=D.getComputedStyle(n,void 0))n=n.getPropertyValue(d),a.pick(k,"opacity"!==d)&&(n=a.pInt(n));return n};a.inArray=function(n,d,k){return(a.indexOfPolyfill||
|
|
Array.prototype.indexOf).call(d,n,k)};a.grep=function(n,d){return(a.filterPolyfill||Array.prototype.filter).call(n,d)};a.find=Array.prototype.find?function(a,d){return a.find(d)}:function(a,d){var k,n=a.length;for(k=0;k<n;k++)if(d(a[k],k))return a[k]};a.some=function(n,d,k){return(a.somePolyfill||Array.prototype.some).call(n,d,k)};a.map=function(a,d){for(var k=[],n=0,v=a.length;n<v;n++)k[n]=d.call(a[n],a[n],n,a);return k};a.keys=function(n){return(a.keysPolyfill||Object.keys).call(void 0,n)};a.reduce=
|
|
function(n,d,k){return(a.reducePolyfill||Array.prototype.reduce).apply(n,2<arguments.length?[d,k]:[d])};a.offset=function(a){var d=C.documentElement;a=a.parentElement||a.parentNode?a.getBoundingClientRect():{top:0,left:0};return{top:a.top+(D.pageYOffset||d.scrollTop)-(d.clientTop||0),left:a.left+(D.pageXOffset||d.scrollLeft)-(d.clientLeft||0)}};a.stop=function(n,d){for(var k=a.timers.length;k--;)a.timers[k].elem!==n||d&&d!==a.timers[k].prop||(a.timers[k].stopped=!0)};a.each=function(n,d,k){return(a.forEachPolyfill||
|
|
Array.prototype.forEach).call(n,d,k)};a.objectEach=function(a,d,k){for(var n in a)a.hasOwnProperty(n)&&d.call(k||a[n],a[n],n,a)};a.addEvent=function(n,d,k,u){var v,q=n.addEventListener||a.addEventListenerPolyfill;v="function"===typeof n&&n.prototype?n.prototype.protoEvents=n.prototype.protoEvents||{}:n.hcEvents=n.hcEvents||{};a.Point&&n instanceof a.Point&&n.series&&n.series.chart&&(n.series.chart.runTrackerClick=!0);q&&q.call(n,d,k,!1);v[d]||(v[d]=[]);v[d].push(k);u&&a.isNumber(u.order)&&(k.order=
|
|
u.order,v[d].sort(function(a,q){return a.order-q.order}));return function(){a.removeEvent(n,d,k)}};a.removeEvent=function(n,d,k){function u(p,g){var h=n.removeEventListener||a.removeEventListenerPolyfill;h&&h.call(n,p,g,!1)}function v(p){var g,h;n.nodeName&&(d?(g={},g[d]=!0):g=p,a.objectEach(g,function(a,b){if(p[b])for(h=p[b].length;h--;)u(b,p[b][h])}))}var q,p;a.each(["protoEvents","hcEvents"],function(y){var g=n[y];g&&(d?(q=g[d]||[],k?(p=a.inArray(k,q),-1<p&&(q.splice(p,1),g[d]=q),u(d,k)):(v(g),
|
|
g[d]=[])):(v(g),n[y]={}))})};a.fireEvent=function(n,d,k,u){var v,q,p,y,g;k=k||{};C.createEvent&&(n.dispatchEvent||n.fireEvent)?(v=C.createEvent("Events"),v.initEvent(d,!0,!0),a.extend(v,k),n.dispatchEvent?n.dispatchEvent(v):n.fireEvent(d,v)):a.each(["protoEvents","hcEvents"],function(h){if(n[h])for(q=n[h][d]||[],p=q.length,k.target||a.extend(k,{preventDefault:function(){k.defaultPrevented=!0},target:n,type:d}),y=0;y<p;y++)(g=q[y])&&!1===g.call(n,k)&&k.preventDefault()});u&&!k.defaultPrevented&&u.call(n,
|
|
k)};a.animate=function(n,d,k){var u,v="",q,p,y;a.isObject(k)||(y=arguments,k={duration:y[2],easing:y[3],complete:y[4]});a.isNumber(k.duration)||(k.duration=400);k.easing="function"===typeof k.easing?k.easing:Math[k.easing]||Math.easeInOutSine;k.curAnim=a.merge(d);a.objectEach(d,function(g,h){a.stop(n,h);p=new a.Fx(n,k,h);q=null;"d"===h?(p.paths=p.initPath(n,n.d,d.d),p.toD=d.d,u=0,q=1):n.attr?u=n.attr(h):(u=parseFloat(a.getStyle(n,h))||0,"opacity"!==h&&(v="px"));q||(q=g);q&&q.match&&q.match("px")&&
|
|
(q=q.replace(/px/g,""));p.run(u,q,v)})};a.seriesType=function(n,d,k,u,v){var q=a.getOptions(),p=a.seriesTypes;q.plotOptions[n]=a.merge(q.plotOptions[d],k);p[n]=a.extendClass(p[d]||function(){},u);p[n].prototype.type=n;v&&(p[n].prototype.pointClass=a.extendClass(a.Point,v));return p[n]};a.uniqueKey=function(){var a=Math.random().toString(36).substring(2,9),d=0;return function(){return"highcharts-"+a+"-"+d++}}();D.jQuery&&(D.jQuery.fn.highcharts=function(){var n=[].slice.call(arguments);if(this[0])return n[0]?
|
|
(new (a[a.isString(n[0])?n.shift():"Chart"])(this[0],n[0],n[1]),this):B[a.attr(this[0],"data-highcharts-chart")]})})(M);(function(a){var B=a.each,C=a.isNumber,D=a.map,n=a.merge,d=a.pInt;a.Color=function(d){if(!(this instanceof a.Color))return new a.Color(d);this.init(d)};a.Color.prototype={parsers:[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(a){return[d(a[1]),d(a[2]),d(a[3]),parseFloat(a[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,
|
|
parse:function(a){return[d(a[1]),d(a[2]),d(a[3]),1]}}],names:{white:"#ffffff",black:"#000000"},init:function(d){var k,n,q,p;if((this.input=d=this.names[d&&d.toLowerCase?d.toLowerCase():""]||d)&&d.stops)this.stops=D(d.stops,function(p){return new a.Color(p[1])});else if(d&&d.charAt&&"#"===d.charAt()&&(k=d.length,d=parseInt(d.substr(1),16),7===k?n=[(d&16711680)>>16,(d&65280)>>8,d&255,1]:4===k&&(n=[(d&3840)>>4|(d&3840)>>8,(d&240)>>4|d&240,(d&15)<<4|d&15,1])),!n)for(q=this.parsers.length;q--&&!n;)p=this.parsers[q],
|
|
(k=p.regex.exec(d))&&(n=p.parse(k));this.rgba=n||[]},get:function(a){var d=this.input,k=this.rgba,q;this.stops?(q=n(d),q.stops=[].concat(q.stops),B(this.stops,function(p,d){q.stops[d]=[q.stops[d][0],p.get(a)]})):q=k&&C(k[0])?"rgb"===a||!a&&1===k[3]?"rgb("+k[0]+","+k[1]+","+k[2]+")":"a"===a?k[3]:"rgba("+k.join(",")+")":d;return q},brighten:function(a){var k,n=this.rgba;if(this.stops)B(this.stops,function(d){d.brighten(a)});else if(C(a)&&0!==a)for(k=0;3>k;k++)n[k]+=d(255*a),0>n[k]&&(n[k]=0),255<n[k]&&
|
|
(n[k]=255);return this},setOpacity:function(a){this.rgba[3]=a;return this},tweenTo:function(a,d){var k=this.rgba,q=a.rgba;q.length&&k&&k.length?(a=1!==q[3]||1!==k[3],d=(a?"rgba(":"rgb(")+Math.round(q[0]+(k[0]-q[0])*(1-d))+","+Math.round(q[1]+(k[1]-q[1])*(1-d))+","+Math.round(q[2]+(k[2]-q[2])*(1-d))+(a?","+(q[3]+(k[3]-q[3])*(1-d)):"")+")"):d=a.input||"none";return d}};a.color=function(d){return new a.Color(d)}})(M);(function(a){var B=a.defined,C=a.each,D=a.extend,n=a.merge,d=a.pick,k=a.timeUnits,u=
|
|
a.win;a.Time=function(a){this.update(a,!1)};a.Time.prototype={defaultOptions:{},update:function(a){var q=d(a&&a.useUTC,!0),p=this;this.options=a=n(!0,this.options||{},a);this.Date=a.Date||u.Date;this.timezoneOffset=(this.useUTC=q)&&a.timezoneOffset;this.getTimezoneOffset=this.timezoneOffsetFunction();(this.variableTimezone=!(q&&!a.getTimezoneOffset&&!a.timezone))||this.timezoneOffset?(this.get=function(a,g){var h=g.getTime(),m=h-p.getTimezoneOffset(g);g.setTime(m);a=g["getUTC"+a]();g.setTime(h);return a},
|
|
this.set=function(a,g,h){var m;if("Milliseconds"===a||"Seconds"===a||"Minutes"===a&&0===g.getTimezoneOffset()%60)g["set"+a](h);else m=p.getTimezoneOffset(g),m=g.getTime()-m,g.setTime(m),g["setUTC"+a](h),a=p.getTimezoneOffset(g),m=g.getTime()+a,g.setTime(m)}):q?(this.get=function(a,g){return g["getUTC"+a]()},this.set=function(a,g,h){return g["setUTC"+a](h)}):(this.get=function(a,g){return g["get"+a]()},this.set=function(a,g,h){return g["set"+a](h)})},makeTime:function(k,q,p,y,g,h){var m,b,c;this.useUTC?
|
|
(m=this.Date.UTC.apply(0,arguments),b=this.getTimezoneOffset(m),m+=b,c=this.getTimezoneOffset(m),b!==c?m+=c-b:b-36E5!==this.getTimezoneOffset(m-36E5)||a.isSafari||(m-=36E5)):m=(new this.Date(k,q,d(p,1),d(y,0),d(g,0),d(h,0))).getTime();return m},timezoneOffsetFunction:function(){var d=this,q=this.options,p=u.moment;if(!this.useUTC)return function(a){return 6E4*(new Date(a)).getTimezoneOffset()};if(q.timezone){if(p)return function(a){return 6E4*-p.tz(a,q.timezone).utcOffset()};a.error(25)}return this.useUTC&&
|
|
q.getTimezoneOffset?function(a){return 6E4*q.getTimezoneOffset(a)}:function(){return 6E4*(d.timezoneOffset||0)}},dateFormat:function(d,q,p){if(!a.defined(q)||isNaN(q))return a.defaultOptions.lang.invalidDate||"";d=a.pick(d,"%Y-%m-%d %H:%M:%S");var k=this,g=new this.Date(q),h=this.get("Hours",g),m=this.get("Day",g),b=this.get("Date",g),c=this.get("Month",g),f=this.get("FullYear",g),e=a.defaultOptions.lang,w=e.weekdays,G=e.shortWeekdays,t=a.pad,g=a.extend({a:G?G[m]:w[m].substr(0,3),A:w[m],d:t(b),e:t(b,
|
|
2," "),w:m,b:e.shortMonths[c],B:e.months[c],m:t(c+1),o:c+1,y:f.toString().substr(2,2),Y:f,H:t(h),k:h,I:t(h%12||12),l:h%12||12,M:t(k.get("Minutes",g)),p:12>h?"AM":"PM",P:12>h?"am":"pm",S:t(g.getSeconds()),L:t(Math.floor(q%1E3),3)},a.dateFormats);a.objectEach(g,function(a,b){for(;-1!==d.indexOf("%"+b);)d=d.replace("%"+b,"function"===typeof a?a.call(k,q):a)});return p?d.substr(0,1).toUpperCase()+d.substr(1):d},resolveDTLFormat:function(d){return a.isObject(d,!0)?d:(d=a.splat(d),{main:d[0],from:d[1],
|
|
to:d[2]})},getTimeTicks:function(a,q,p,n){var g=this,h=[],m,b={},c;m=new g.Date(q);var f=a.unitRange,e=a.count||1,w;n=d(n,1);if(B(q)){g.set("Milliseconds",m,f>=k.second?0:e*Math.floor(g.get("Milliseconds",m)/e));f>=k.second&&g.set("Seconds",m,f>=k.minute?0:e*Math.floor(g.get("Seconds",m)/e));f>=k.minute&&g.set("Minutes",m,f>=k.hour?0:e*Math.floor(g.get("Minutes",m)/e));f>=k.hour&&g.set("Hours",m,f>=k.day?0:e*Math.floor(g.get("Hours",m)/e));f>=k.day&&g.set("Date",m,f>=k.month?1:e*Math.floor(g.get("Date",
|
|
m)/e));f>=k.month&&(g.set("Month",m,f>=k.year?0:e*Math.floor(g.get("Month",m)/e)),c=g.get("FullYear",m));f>=k.year&&g.set("FullYear",m,c-c%e);f===k.week&&(c=g.get("Day",m),g.set("Date",m,g.get("Date",m)-c+n+(c<n?-7:0)));c=g.get("FullYear",m);n=g.get("Month",m);var G=g.get("Date",m),t=g.get("Hours",m);q=m.getTime();g.variableTimezone&&(w=p-q>4*k.month||g.getTimezoneOffset(q)!==g.getTimezoneOffset(p));q=m.getTime();for(m=1;q<p;)h.push(q),q=f===k.year?g.makeTime(c+m*e,0):f===k.month?g.makeTime(c,n+m*
|
|
e):!w||f!==k.day&&f!==k.week?w&&f===k.hour&&1<e?g.makeTime(c,n,G,t+m*e):q+f*e:g.makeTime(c,n,G+m*e*(f===k.day?1:7)),m++;h.push(q);f<=k.hour&&1E4>h.length&&C(h,function(a){0===a%18E5&&"000000000"===g.dateFormat("%H%M%S%L",a)&&(b[a]="day")})}h.info=D(a,{higherRanks:b,totalRange:f*e});return h}}})(M);(function(a){var B=a.color,C=a.merge;a.defaultOptions={colors:"#7cb5ec #434348 #90ed7d #f7a35c #8085e9 #f15c80 #e4d354 #2b908f #f45b5b #91e8e1".split(" "),symbols:["circle","diamond","square","triangle",
|
|
"triangle-down"],lang:{loading:"Loading...",months:"January February March April May June July August September October November December".split(" "),shortMonths:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),weekdays:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),decimalPoint:".",numericSymbols:"kMGTPE".split(""),resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:a.Time.prototype.defaultOptions,chart:{borderRadius:0,
|
|
defaultSeriesType:"line",ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}},width:null,height:null,borderColor:"#335cad",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"},title:{text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{text:"",align:"center",widthAdjust:-44},plotOptions:{},labels:{style:{position:"absolute",color:"#333333"}},legend:{enabled:!0,align:"center",alignColumns:!0,layout:"horizontal",labelFormatter:function(){return this.name},
|
|
borderColor:"#999999",borderRadius:0,navigation:{activeColor:"#003399",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",fontSize:"12px",fontWeight:"bold",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#cccccc"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",
|
|
backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:a.svg,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %b %e, %H:%M:%S.%L",second:"%A, %b %e, %H:%M:%S",minute:"%A, %b %e, %H:%M",hour:"%A, %b %e, %H:%M",day:"%A, %b %e, %Y",week:"Week from %A, %b %e, %Y",month:"%B %Y",year:"%Y"},footerFormat:"",padding:8,snap:a.isTouchDevice?25:10,backgroundColor:B("#f7f7f7").setOpacity(.85).get(),borderWidth:1,headerFormat:'\x3cspan style\x3d"font-size: 10px"\x3e{point.key}\x3c/span\x3e\x3cbr/\x3e',
|
|
pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e {series.name}: \x3cb\x3e{point.y}\x3c/b\x3e\x3cbr/\x3e',shadow:!0,style:{color:"#333333",cursor:"default",fontSize:"12px",pointerEvents:"none",whiteSpace:"nowrap"}},credits:{enabled:!0,href:"https://www.highcharts.com",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"9px"},text:"Highcharts.com"}};a.setOptions=function(D){a.defaultOptions=C(!0,a.defaultOptions,D);
|
|
a.time.update(C(a.defaultOptions.global,a.defaultOptions.time),!1);return a.defaultOptions};a.getOptions=function(){return a.defaultOptions};a.defaultPlotOptions=a.defaultOptions.plotOptions;a.time=new a.Time(C(a.defaultOptions.global,a.defaultOptions.time));a.dateFormat=function(C,n,d){return a.time.dateFormat(C,n,d)}})(M);(function(a){var B,C,D=a.addEvent,n=a.animate,d=a.attr,k=a.charts,u=a.color,v=a.css,q=a.createElement,p=a.defined,y=a.deg2rad,g=a.destroyObjectProperties,h=a.doc,m=a.each,b=a.extend,
|
|
c=a.erase,f=a.grep,e=a.hasTouch,w=a.inArray,G=a.isArray,t=a.isFirefox,K=a.isMS,A=a.isObject,F=a.isString,r=a.isWebKit,I=a.merge,E=a.noop,L=a.objectEach,J=a.pick,l=a.pInt,x=a.removeEvent,N=a.stop,T=a.svg,H=a.SVG_NS,P=a.symbolSizes,Q=a.win;B=a.SVGElement=function(){return this};b(B.prototype,{opacity:1,SVG_NS:H,textProps:"direction fontSize fontWeight fontFamily fontStyle color lineHeight width textAlign textDecoration textOverflow textOutline cursor".split(" "),init:function(a,b){this.element="span"===
|
|
b?q(b):h.createElementNS(this.SVG_NS,b);this.renderer=a},animate:function(z,b,l){b=a.animObject(J(b,this.renderer.globalAnimation,!0));0!==b.duration?(l&&(b.complete=l),n(this,z,b)):(this.attr(z,null,l),b.step&&b.step.call(this));return this},complexColor:function(z,b,l){var c=this.renderer,x,f,e,r,H,h,w,g,O,E,d,t=[],N;a.fireEvent(this.renderer,"complexColor",{args:arguments},function(){z.radialGradient?f="radialGradient":z.linearGradient&&(f="linearGradient");f&&(e=z[f],H=c.gradients,w=z.stops,E=
|
|
l.radialReference,G(e)&&(z[f]=e={x1:e[0],y1:e[1],x2:e[2],y2:e[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===f&&E&&!p(e.gradientUnits)&&(r=e,e=I(e,c.getRadialAttr(E,r),{gradientUnits:"userSpaceOnUse"})),L(e,function(a,z){"id"!==z&&t.push(z,a)}),L(w,function(a){t.push(a)}),t=t.join(","),H[t]?d=H[t].attr("id"):(e.id=d=a.uniqueKey(),H[t]=h=c.createElement(f).attr(e).add(c.defs),h.radAttr=r,h.stops=[],m(w,function(z){0===z[1].indexOf("rgba")?(x=a.color(z[1]),g=x.get("rgb"),O=x.get("a")):(g=z[1],
|
|
O=1);z=c.createElement("stop").attr({offset:z[0],"stop-color":g,"stop-opacity":O}).add(h);h.stops.push(z)})),N="url("+c.url+"#"+d+")",l.setAttribute(b,N),l.gradient=t,z.toString=function(){return N})})},applyTextOutline:function(z){var b=this.element,l,x,f,e,r;-1!==z.indexOf("contrast")&&(z=z.replace(/contrast/g,this.renderer.getContrast(b.style.fill)));z=z.split(" ");x=z[z.length-1];if((f=z[0])&&"none"!==f&&a.svg){this.fakeTS=!0;z=[].slice.call(b.getElementsByTagName("tspan"));this.ySetter=this.xSetter;
|
|
f=f.replace(/(^[\d\.]+)(.*?)$/g,function(a,z,b){return 2*z+b});for(r=z.length;r--;)l=z[r],"highcharts-text-outline"===l.getAttribute("class")&&c(z,b.removeChild(l));e=b.firstChild;m(z,function(a,z){0===z&&(a.setAttribute("x",b.getAttribute("x")),z=b.getAttribute("y"),a.setAttribute("y",z||0),null===z&&b.setAttribute("y",0));a=a.cloneNode(1);d(a,{"class":"highcharts-text-outline",fill:x,stroke:x,"stroke-width":f,"stroke-linejoin":"round"});b.insertBefore(a,e)})}},attr:function(a,b,l,c){var z,x=this.element,
|
|
f,e=this,r,H;"string"===typeof a&&void 0!==b&&(z=a,a={},a[z]=b);"string"===typeof a?e=(this[a+"Getter"]||this._defaultGetter).call(this,a,x):(L(a,function(z,b){r=!1;c||N(this,b);this.symbolName&&/^(x|y|width|height|r|start|end|innerR|anchorX|anchorY)$/.test(b)&&(f||(this.symbolAttr(a),f=!0),r=!0);!this.rotation||"x"!==b&&"y"!==b||(this.doTransform=!0);r||(H=this[b+"Setter"]||this._defaultSetter,H.call(this,z,b,x),this.shadows&&/^(width|height|visibility|x|y|d|transform|cx|cy|r)$/.test(b)&&this.updateShadows(b,
|
|
z,H))},this),this.afterSetters());l&&l.call(this);return e},afterSetters:function(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)},updateShadows:function(a,b,l){for(var z=this.shadows,c=z.length;c--;)l.call(z[c],"height"===a?Math.max(b-(z[c].cutHeight||0),0):"d"===a?this.d:b,a,z[c])},addClass:function(a,b){var z=this.attr("class")||"";-1===z.indexOf(a)&&(b||(a=(z+(z?" ":"")+a).replace(" "," ")),this.attr("class",a));return this},hasClass:function(a){return-1!==w(a,(this.attr("class")||
|
|
"").split(" "))},removeClass:function(a){return this.attr("class",(this.attr("class")||"").replace(a,""))},symbolAttr:function(a){var b=this;m("x y r start end width height innerR anchorX anchorY".split(" "),function(z){b[z]=J(a[z],b[z])});b.attr({d:b.renderer.symbols[b.symbolName](b.x,b.y,b.width,b.height,b)})},clip:function(a){return this.attr("clip-path",a?"url("+this.renderer.url+"#"+a.id+")":"none")},crisp:function(a,b){var z;b=b||a.strokeWidth||0;z=Math.round(b)%2/2;a.x=Math.floor(a.x||this.x||
|
|
0)+z;a.y=Math.floor(a.y||this.y||0)+z;a.width=Math.floor((a.width||this.width||0)-2*z);a.height=Math.floor((a.height||this.height||0)-2*z);p(a.strokeWidth)&&(a.strokeWidth=b);return a},css:function(a){var z=this.styles,c={},x=this.element,f,e="",r,H=!z,h=["textOutline","textOverflow","width"];a&&a.color&&(a.fill=a.color);z&&L(a,function(a,b){a!==z[b]&&(c[b]=a,H=!0)});H&&(z&&(a=b(z,c)),a&&(null===a.width||"auto"===a.width?delete this.textWidth:"text"===x.nodeName.toLowerCase()&&a.width&&(f=this.textWidth=
|
|
l(a.width))),this.styles=a,f&&!T&&this.renderer.forExport&&delete a.width,x.namespaceURI===this.SVG_NS?(r=function(a,b){return"-"+b.toLowerCase()},L(a,function(a,b){-1===w(b,h)&&(e+=b.replace(/([A-Z])/g,r)+":"+a+";")}),e&&d(x,"style",e)):v(x,a),this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),a&&a.textOutline&&this.applyTextOutline(a.textOutline)));return this},strokeWidth:function(){return this["stroke-width"]||0},on:function(a,b){var z=this,l=z.element;e&&"click"===a?(l.ontouchstart=
|
|
function(a){z.touchEventFired=Date.now();a.preventDefault();b.call(l,a)},l.onclick=function(a){(-1===Q.navigator.userAgent.indexOf("Android")||1100<Date.now()-(z.touchEventFired||0))&&b.call(l,a)}):l["on"+a]=b;return this},setRadialReference:function(a){var b=this.renderer.gradients[this.element.gradient];this.element.radialReference=a;b&&b.radAttr&&b.animate(this.renderer.getRadialAttr(a,b.radAttr));return this},translate:function(a,b){return this.attr({translateX:a,translateY:b})},invert:function(a){this.inverted=
|
|
a;this.updateTransform();return this},updateTransform:function(){var a=this.translateX||0,b=this.translateY||0,l=this.scaleX,c=this.scaleY,x=this.inverted,f=this.rotation,e=this.matrix,r=this.element;x&&(a+=this.width,b+=this.height);a=["translate("+a+","+b+")"];p(e)&&a.push("matrix("+e.join(",")+")");x?a.push("rotate(90) scale(-1,1)"):f&&a.push("rotate("+f+" "+J(this.rotationOriginX,r.getAttribute("x"),0)+" "+J(this.rotationOriginY,r.getAttribute("y")||0)+")");(p(l)||p(c))&&a.push("scale("+J(l,1)+
|
|
" "+J(c,1)+")");a.length&&r.setAttribute("transform",a.join(" "))},toFront:function(){var a=this.element;a.parentNode.appendChild(a);return this},align:function(a,b,l){var z,x,f,e,r={};x=this.renderer;f=x.alignedObjects;var H,h;if(a){if(this.alignOptions=a,this.alignByTranslate=b,!l||F(l))this.alignTo=z=l||"renderer",c(f,this),f.push(this),l=null}else a=this.alignOptions,b=this.alignByTranslate,z=this.alignTo;l=J(l,x[z],x);z=a.align;x=a.verticalAlign;f=(l.x||0)+(a.x||0);e=(l.y||0)+(a.y||0);"right"===
|
|
z?H=1:"center"===z&&(H=2);H&&(f+=(l.width-(a.width||0))/H);r[b?"translateX":"x"]=Math.round(f);"bottom"===x?h=1:"middle"===x&&(h=2);h&&(e+=(l.height-(a.height||0))/h);r[b?"translateY":"y"]=Math.round(e);this[this.placed?"animate":"attr"](r);this.placed=!0;this.alignAttr=r;return this},getBBox:function(a,l){var z,c=this.renderer,x,f=this.element,e=this.styles,r,H=this.textStr,h,w=c.cache,g=c.cacheKeys,E=f.namespaceURI===this.SVG_NS,t;l=J(l,this.rotation);x=l*y;r=e&&e.fontSize;p(H)&&(t=H.toString(),
|
|
-1===t.indexOf("\x3c")&&(t=t.replace(/[0-9]/g,"0")),t+=["",l||0,r,this.textWidth,e&&e.textOverflow].join());t&&!a&&(z=w[t]);if(!z){if(E||c.forExport){try{(h=this.fakeTS&&function(a){m(f.querySelectorAll(".highcharts-text-outline"),function(b){b.style.display=a})})&&h("none"),z=f.getBBox?b({},f.getBBox()):{width:f.offsetWidth,height:f.offsetHeight},h&&h("")}catch(X){}if(!z||0>z.width)z={width:0,height:0}}else z=this.htmlGetBBox();c.isSVG&&(a=z.width,c=z.height,E&&(z.height=c={"11px,17":14,"13px,20":16}[e&&
|
|
e.fontSize+","+Math.round(c)]||c),l&&(z.width=Math.abs(c*Math.sin(x))+Math.abs(a*Math.cos(x)),z.height=Math.abs(c*Math.cos(x))+Math.abs(a*Math.sin(x))));if(t&&0<z.height){for(;250<g.length;)delete w[g.shift()];w[t]||g.push(t);w[t]=z}}return z},show:function(a){return this.attr({visibility:a?"inherit":"visible"})},hide:function(){return this.attr({visibility:"hidden"})},fadeOut:function(a){var b=this;b.animate({opacity:0},{duration:a||150,complete:function(){b.attr({y:-9999})}})},add:function(a){var b=
|
|
this.renderer,l=this.element,z;a&&(this.parentGroup=a);this.parentInverted=a&&a.inverted;void 0!==this.textStr&&b.buildText(this);this.added=!0;if(!a||a.handleZ||this.zIndex)z=this.zIndexSetter();z||(a?a.element:b.box).appendChild(l);if(this.onAdd)this.onAdd();return this},safeRemoveChild:function(a){var b=a.parentNode;b&&b.removeChild(a)},destroy:function(){var a=this,b=a.element||{},l=a.renderer.isSVG&&"SPAN"===b.nodeName&&a.parentGroup,x=b.ownerSVGElement,f=a.clipPath;b.onclick=b.onmouseout=b.onmouseover=
|
|
b.onmousemove=b.point=null;N(a);f&&x&&(m(x.querySelectorAll("[clip-path],[CLIP-PATH]"),function(a){var b=a.getAttribute("clip-path"),l=f.element.id;(-1<b.indexOf("(#"+l+")")||-1<b.indexOf('("#'+l+'")'))&&a.removeAttribute("clip-path")}),a.clipPath=f.destroy());if(a.stops){for(x=0;x<a.stops.length;x++)a.stops[x]=a.stops[x].destroy();a.stops=null}a.safeRemoveChild(b);for(a.destroyShadows();l&&l.div&&0===l.div.childNodes.length;)b=l.parentGroup,a.safeRemoveChild(l.div),delete l.div,l=b;a.alignTo&&c(a.renderer.alignedObjects,
|
|
a);L(a,function(b,l){delete a[l]});return null},shadow:function(a,b,l){var c=[],x,f,z=this.element,e,r,H,h;if(!a)this.destroyShadows();else if(!this.shadows){r=J(a.width,3);H=(a.opacity||.15)/r;h=this.parentInverted?"(-1,-1)":"("+J(a.offsetX,1)+", "+J(a.offsetY,1)+")";for(x=1;x<=r;x++)f=z.cloneNode(0),e=2*r+1-2*x,d(f,{stroke:a.color||"#000000","stroke-opacity":H*x,"stroke-width":e,transform:"translate"+h,fill:"none"}),f.setAttribute("class",(f.getAttribute("class")||"")+" highcharts-shadow"),l&&(d(f,
|
|
"height",Math.max(d(f,"height")-e,0)),f.cutHeight=e),b?b.element.appendChild(f):z.parentNode&&z.parentNode.insertBefore(f,z),c.push(f);this.shadows=c}return this},destroyShadows:function(){m(this.shadows||[],function(a){this.safeRemoveChild(a)},this);this.shadows=void 0},xGetter:function(a){"circle"===this.element.nodeName&&("x"===a?a="cx":"y"===a&&(a="cy"));return this._defaultGetter(a)},_defaultGetter:function(a){a=J(this[a+"Value"],this[a],this.element?this.element.getAttribute(a):null,0);/^[\-0-9\.]+$/.test(a)&&
|
|
(a=parseFloat(a));return a},dSetter:function(a,b,l){a&&a.join&&(a=a.join(" "));/(NaN| {2}|^$)/.test(a)&&(a="M 0 0");this[b]!==a&&(l.setAttribute(b,a),this[b]=a)},dashstyleSetter:function(a){var b,c=this["stroke-width"];"inherit"===c&&(c=1);if(a=a&&a.toLowerCase()){a=a.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");
|
|
for(b=a.length;b--;)a[b]=l(a[b])*c;a=a.join(",").replace(/NaN/g,"none");this.element.setAttribute("stroke-dasharray",a)}},alignSetter:function(a){this.alignValue=a;this.element.setAttribute("text-anchor",{left:"start",center:"middle",right:"end"}[a])},opacitySetter:function(a,b,l){this[b]=a;l.setAttribute(b,a)},titleSetter:function(a){var b=this.element.getElementsByTagName("title")[0];b||(b=h.createElementNS(this.SVG_NS,"title"),this.element.appendChild(b));b.firstChild&&b.removeChild(b.firstChild);
|
|
b.appendChild(h.createTextNode(String(J(a),"").replace(/<[^>]*>/g,"").replace(/</g,"\x3c").replace(/>/g,"\x3e")))},textSetter:function(a){a!==this.textStr&&(delete this.bBox,this.textStr=a,this.added&&this.renderer.buildText(this))},fillSetter:function(a,b,l){"string"===typeof a?l.setAttribute(b,a):a&&this.complexColor(a,b,l)},visibilitySetter:function(a,b,l){"inherit"===a?l.removeAttribute(b):this[b]!==a&&l.setAttribute(b,a);this[b]=a},zIndexSetter:function(a,b){var c=this.renderer,x=this.parentGroup,
|
|
f=(x||c).element||c.box,e,r=this.element,z,H,c=f===c.box;e=this.added;var h;p(a)?(r.setAttribute("data-z-index",a),a=+a,this[b]===a&&(e=!1)):p(this[b])&&r.removeAttribute("data-z-index");this[b]=a;if(e){(a=this.zIndex)&&x&&(x.handleZ=!0);b=f.childNodes;for(h=b.length-1;0<=h&&!z;h--)if(x=b[h],e=x.getAttribute("data-z-index"),H=!p(e),x!==r)if(0>a&&H&&!c&&!h)f.insertBefore(r,b[h]),z=!0;else if(l(e)<=a||H&&(!p(a)||0<=a))f.insertBefore(r,b[h+1]||null),z=!0;z||(f.insertBefore(r,b[c?3:0]||null),z=!0)}return z},
|
|
_defaultSetter:function(a,b,l){l.setAttribute(b,a)}});B.prototype.yGetter=B.prototype.xGetter;B.prototype.translateXSetter=B.prototype.translateYSetter=B.prototype.rotationSetter=B.prototype.verticalAlignSetter=B.prototype.rotationOriginXSetter=B.prototype.rotationOriginYSetter=B.prototype.scaleXSetter=B.prototype.scaleYSetter=B.prototype.matrixSetter=function(a,b){this[b]=a;this.doTransform=!0};B.prototype["stroke-widthSetter"]=B.prototype.strokeSetter=function(a,b,l){this[b]=a;this.stroke&&this["stroke-width"]?
|
|
(B.prototype.fillSetter.call(this,this.stroke,"stroke",l),l.setAttribute("stroke-width",this["stroke-width"]),this.hasStroke=!0):"stroke-width"===b&&0===a&&this.hasStroke&&(l.removeAttribute("stroke"),this.hasStroke=!1)};C=a.SVGRenderer=function(){this.init.apply(this,arguments)};b(C.prototype,{Element:B,SVG_NS:H,init:function(a,b,l,c,x,f){var e;c=this.createElement("svg").attr({version:"1.1","class":"highcharts-root"}).css(this.getStyle(c));e=c.element;a.appendChild(e);d(a,"dir","ltr");-1===a.innerHTML.indexOf("xmlns")&&
|
|
d(e,"xmlns",this.SVG_NS);this.isSVG=!0;this.box=e;this.boxWrapper=c;this.alignedObjects=[];this.url=(t||r)&&h.getElementsByTagName("base").length?Q.location.href.split("#")[0].replace(/<[^>]*>/g,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"";this.createElement("desc").add().element.appendChild(h.createTextNode("Created with Highmaps 6.2.0"));this.defs=this.createElement("defs").add();this.allowHTML=f;this.forExport=x;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount=0;this.setSize(b,
|
|
l,!1);var z;t&&a.getBoundingClientRect&&(b=function(){v(a,{left:0,top:0});z=a.getBoundingClientRect();v(a,{left:Math.ceil(z.left)-z.left+"px",top:Math.ceil(z.top)-z.top+"px"})},b(),this.unSubPixelFix=D(Q,"resize",b))},getStyle:function(a){return this.style=b({fontFamily:'"Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif',fontSize:"12px"},a)},setStyle:function(a){this.boxWrapper.css(this.getStyle(a))},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var a=
|
|
this.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();g(this.gradients||{});this.gradients=null;a&&(this.defs=a.destroy());this.unSubPixelFix&&this.unSubPixelFix();return this.alignedObjects=null},createElement:function(a){var b=new this.Element;b.init(this,a);return b},draw:E,getRadialAttr:function(a,b){return{cx:a[0]-a[2]/2+b.cx*a[2],cy:a[1]-a[2]/2+b.cy*a[2],r:b.r*a[2]}},truncate:function(a,b,l,c,x,f,e){var r=this,z=a.rotation,H,w=c?1:0,g=(l||c).length,m=g,p=[],E=function(a){b.firstChild&&
|
|
b.removeChild(b.firstChild);a&&b.appendChild(h.createTextNode(a))},t=function(f,z){z=z||f;if(void 0===p[z])if(b.getSubStringLength)try{p[z]=x+b.getSubStringLength(0,c?z+1:z)}catch(Y){}else r.getSpanWidth&&(E(e(l||c,f)),p[z]=x+r.getSpanWidth(a,b));return p[z]},d,N;a.rotation=0;d=t(b.textContent.length);if(N=x+d>f){for(;w<=g;)m=Math.ceil((w+g)/2),c&&(H=e(c,m)),d=t(m,H&&H.length-1),w===g?w=g+1:d>f?g=m-1:w=m;0===g?E(""):l&&g===l.length-1||E(H||e(l||c,m))}c&&c.splice(0,m);a.actualWidth=d;a.rotation=z;
|
|
return N},escapes:{"\x26":"\x26amp;","\x3c":"\x26lt;","\x3e":"\x26gt;","'":"\x26#39;",'"':"\x26quot;"},buildText:function(a){var b=a.element,c=this,x=c.forExport,e=J(a.textStr,"").toString(),r=-1!==e.indexOf("\x3c"),z=b.childNodes,g,p=d(b,"x"),E=a.styles,t=a.textWidth,N=E&&E.lineHeight,I=E&&E.textOutline,A=E&&"ellipsis"===E.textOverflow,q=E&&"nowrap"===E.whiteSpace,G=E&&E.fontSize,F,k,P=z.length,E=t&&!a.added&&this.box,n=function(a){var x;x=/(px|em)$/.test(a&&a.style.fontSize)?a.style.fontSize:G||
|
|
c.style.fontSize||12;return N?l(N):c.fontMetrics(x,a.getAttribute("style")?a:b).h},y=function(a,b){L(c.escapes,function(l,c){b&&-1!==w(l,b)||(a=a.toString().replace(new RegExp(l,"g"),c))});return a},Q=function(a,b){var l;l=a.indexOf("\x3c");a=a.substring(l,a.indexOf("\x3e")-l);l=a.indexOf(b+"\x3d");if(-1!==l&&(l=l+b.length+1,b=a.charAt(l),'"'===b||"'"===b))return a=a.substring(l+1),a.substring(0,a.indexOf(b))};F=[e,A,q,N,I,G,t].join();if(F!==a.textCache){for(a.textCache=F;P--;)b.removeChild(z[P]);
|
|
r||I||A||t||-1!==e.indexOf(" ")?(E&&E.appendChild(b),e=r?e.replace(/<(b|strong)>/g,'\x3cspan style\x3d"font-weight:bold"\x3e').replace(/<(i|em)>/g,'\x3cspan style\x3d"font-style:italic"\x3e').replace(/<a/g,"\x3cspan").replace(/<\/(b|strong|i|em|a)>/g,"\x3c/span\x3e").split(/<br.*?>/g):[e],e=f(e,function(a){return""!==a}),m(e,function(l,f){var e,r=0,z=0;l=l.replace(/^\s+|\s+$/g,"").replace(/<span/g,"|||\x3cspan").replace(/<\/span>/g,"\x3c/span\x3e|||");e=l.split("|||");m(e,function(l){if(""!==l||1===
|
|
e.length){var w={},m=h.createElementNS(c.SVG_NS,"tspan"),E,N;(E=Q(l,"class"))&&d(m,"class",E);if(E=Q(l,"style"))E=E.replace(/(;| |^)color([ :])/,"$1fill$2"),d(m,"style",E);(N=Q(l,"href"))&&!x&&(d(m,"onclick",'location.href\x3d"'+N+'"'),d(m,"class","highcharts-anchor"),v(m,{cursor:"pointer"}));l=y(l.replace(/<[a-zA-Z\/](.|\n)*?>/g,"")||" ");if(" "!==l){m.appendChild(h.createTextNode(l));r?w.dx=0:f&&null!==p&&(w.x=p);d(m,w);b.appendChild(m);!r&&k&&(!T&&x&&v(m,{display:"block"}),d(m,"dy",n(m)));if(t){var I=
|
|
l.replace(/([^\^])-/g,"$1- ").split(" "),w=!q&&(1<e.length||f||1<I.length);N=0;var F=n(m);if(A)g=c.truncate(a,m,l,void 0,0,Math.max(0,t-parseInt(G||12,10)),function(a,b){return a.substring(0,b)+"\u2026"});else if(w)for(;I.length;)I.length&&!q&&0<N&&(m=h.createElementNS(H,"tspan"),d(m,{dy:F,x:p}),E&&d(m,"style",E),m.appendChild(h.createTextNode(I.join(" ").replace(/- /g,"-"))),b.appendChild(m)),c.truncate(a,m,null,I,0===N?z:0,t,function(a,b){return I.slice(0,b).join(" ").replace(/- /g,"-")}),z=a.actualWidth,
|
|
N++}r++}}});k=k||b.childNodes.length}),A&&g&&a.attr("title",y(a.textStr,["\x26lt;","\x26gt;"])),E&&E.removeChild(b),I&&a.applyTextOutline&&a.applyTextOutline(I)):b.appendChild(h.createTextNode(y(e)))}},getContrast:function(a){a=u(a).rgba;a[0]*=1;a[1]*=1.2;a[2]*=.5;return 459<a[0]+a[1]+a[2]?"#000000":"#FFFFFF"},button:function(a,l,c,x,f,e,r,H,h){var z=this.label(a,l,c,h,null,null,null,null,"button"),m=0;z.attr(I({padding:8,r:2},f));var w,g,E,p;f=I({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1,
|
|
style:{color:"#333333",cursor:"pointer",fontWeight:"normal"}},f);w=f.style;delete f.style;e=I(f,{fill:"#e6e6e6"},e);g=e.style;delete e.style;r=I(f,{fill:"#e6ebf5",style:{color:"#000000",fontWeight:"bold"}},r);E=r.style;delete r.style;H=I(f,{style:{color:"#cccccc"}},H);p=H.style;delete H.style;D(z.element,K?"mouseover":"mouseenter",function(){3!==m&&z.setState(1)});D(z.element,K?"mouseout":"mouseleave",function(){3!==m&&z.setState(m)});z.setState=function(a){1!==a&&(z.state=m=a);z.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+
|
|
["normal","hover","pressed","disabled"][a||0]);z.attr([f,e,r,H][a||0]).css([w,g,E,p][a||0])};z.attr(f).css(b({cursor:"default"},w));return z.on("click",function(a){3!==m&&x.call(z,a)})},crispLine:function(a,b){a[1]===a[4]&&(a[1]=a[4]=Math.round(a[1])-b%2/2);a[2]===a[5]&&(a[2]=a[5]=Math.round(a[2])+b%2/2);return a},path:function(a){var l={fill:"none"};G(a)?l.d=a:A(a)&&b(l,a);return this.createElement("path").attr(l)},circle:function(a,b,l){a=A(a)?a:{x:a,y:b,r:l};b=this.createElement("circle");b.xSetter=
|
|
b.ySetter=function(a,b,l){l.setAttribute("c"+b,a)};return b.attr(a)},arc:function(a,b,l,c,x,f){A(a)?(c=a,b=c.y,l=c.r,a=c.x):c={innerR:c,start:x,end:f};a=this.symbol("arc",a,b,l,l,c);a.r=l;return a},rect:function(a,b,l,c,x,f){x=A(a)?a.r:x;var e=this.createElement("rect");a=A(a)?a:void 0===a?{}:{x:a,y:b,width:Math.max(l,0),height:Math.max(c,0)};void 0!==f&&(a.strokeWidth=f,a=e.crisp(a));a.fill="none";x&&(a.r=x);e.rSetter=function(a,b,l){d(l,{rx:a,ry:a})};return e.attr(a)},setSize:function(a,b,l){var c=
|
|
this.alignedObjects,x=c.length;this.width=a;this.height=b;for(this.boxWrapper.animate({width:a,height:b},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:J(l,!0)?void 0:0});x--;)c[x].align()},g:function(a){var b=this.createElement("g");return a?b.attr({"class":"highcharts-"+a}):b},image:function(a,l,c,x,f,e){var r={preserveAspectRatio:"none"},H,h=function(a,b){a.setAttributeNS?a.setAttributeNS("http://www.w3.org/1999/xlink","href",b):a.setAttribute("hc-svg-href",
|
|
b)},m=function(b){h(H.element,a);e.call(H,b)};1<arguments.length&&b(r,{x:l,y:c,width:x,height:f});H=this.createElement("image").attr(r);e?(h(H.element,"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw\x3d\x3d"),r=new Q.Image,D(r,"load",m),r.src=a,r.complete&&m({})):h(H.element,a);return H},symbol:function(a,l,c,x,f,e){var r=this,H,w=/^url\((.*?)\)$/,g=w.test(a),E=!g&&(this.symbols[a]?a:"circle"),z=E&&this.symbols[E],t=p(l)&&z&&z.call(this.symbols,Math.round(l),Math.round(c),
|
|
x,f,e),d,N;z?(H=this.path(t),H.attr("fill","none"),b(H,{symbolName:E,x:l,y:c,width:x,height:f}),e&&b(H,e)):g&&(d=a.match(w)[1],H=this.image(d),H.imgwidth=J(P[d]&&P[d].width,e&&e.width),H.imgheight=J(P[d]&&P[d].height,e&&e.height),N=function(){H.attr({width:H.width,height:H.height})},m(["width","height"],function(a){H[a+"Setter"]=function(a,b){var l={},c=this["img"+b],x="width"===b?"translateX":"translateY";this[b]=a;p(c)&&(this.element&&this.element.setAttribute(b,c),this.alignByTranslate||(l[x]=
|
|
((this[b]||0)-c)/2,this.attr(l)))}}),p(l)&&H.attr({x:l,y:c}),H.isImg=!0,p(H.imgwidth)&&p(H.imgheight)?N():(H.attr({width:0,height:0}),q("img",{onload:function(){var a=k[r.chartIndex];0===this.width&&(v(this,{position:"absolute",top:"-999em"}),h.body.appendChild(this));P[d]={width:this.width,height:this.height};H.imgwidth=this.width;H.imgheight=this.height;H.element&&N();this.parentNode&&this.parentNode.removeChild(this);r.imgCount--;if(!r.imgCount&&a&&a.onload)a.onload()},src:d}),this.imgCount++));
|
|
return H},symbols:{circle:function(a,b,l,c){return this.arc(a+l/2,b+c/2,l/2,c/2,{start:0,end:2*Math.PI,open:!1})},square:function(a,b,l,c){return["M",a,b,"L",a+l,b,a+l,b+c,a,b+c,"Z"]},triangle:function(a,b,l,c){return["M",a+l/2,b,"L",a+l,b+c,a,b+c,"Z"]},"triangle-down":function(a,b,l,c){return["M",a,b,"L",a+l,b,a+l/2,b+c,"Z"]},diamond:function(a,b,l,c){return["M",a+l/2,b,"L",a+l,b+c/2,a+l/2,b+c,a,b+c/2,"Z"]},arc:function(a,b,l,c,x){var f=x.start,e=x.r||l,r=x.r||c||l,H=x.end-.001;l=x.innerR;c=J(x.open,
|
|
.001>Math.abs(x.end-x.start-2*Math.PI));var h=Math.cos(f),m=Math.sin(f),w=Math.cos(H),H=Math.sin(H);x=.001>x.end-f-Math.PI?0:1;e=["M",a+e*h,b+r*m,"A",e,r,0,x,1,a+e*w,b+r*H];p(l)&&e.push(c?"M":"L",a+l*w,b+l*H,"A",l,l,0,x,0,a+l*h,b+l*m);e.push(c?"":"Z");return e},callout:function(a,b,l,c,x){var e=Math.min(x&&x.r||0,l,c),f=e+6,r=x&&x.anchorX;x=x&&x.anchorY;var H;H=["M",a+e,b,"L",a+l-e,b,"C",a+l,b,a+l,b,a+l,b+e,"L",a+l,b+c-e,"C",a+l,b+c,a+l,b+c,a+l-e,b+c,"L",a+e,b+c,"C",a,b+c,a,b+c,a,b+c-e,"L",a,b+e,
|
|
"C",a,b,a,b,a+e,b];r&&r>l?x>b+f&&x<b+c-f?H.splice(13,3,"L",a+l,x-6,a+l+6,x,a+l,x+6,a+l,b+c-e):H.splice(13,3,"L",a+l,c/2,r,x,a+l,c/2,a+l,b+c-e):r&&0>r?x>b+f&&x<b+c-f?H.splice(33,3,"L",a,x+6,a-6,x,a,x-6,a,b+e):H.splice(33,3,"L",a,c/2,r,x,a,c/2,a,b+e):x&&x>c&&r>a+f&&r<a+l-f?H.splice(23,3,"L",r+6,b+c,r,b+c+6,r-6,b+c,a+e,b+c):x&&0>x&&r>a+f&&r<a+l-f&&H.splice(3,3,"L",r-6,b,r,b-6,r+6,b,l-e,b);return H}},clipRect:function(b,l,c,x){var e=a.uniqueKey(),f=this.createElement("clipPath").attr({id:e}).add(this.defs);
|
|
b=this.rect(b,l,c,x,0).add(f);b.id=e;b.clipPath=f;b.count=0;return b},text:function(a,b,l,c){var x={};if(c&&(this.allowHTML||!this.forExport))return this.html(a,b,l);x.x=Math.round(b||0);l&&(x.y=Math.round(l));p(a)&&(x.text=a);a=this.createElement("text").attr(x);c||(a.xSetter=function(a,b,l){var c=l.getElementsByTagName("tspan"),x,e=l.getAttribute(b),f;for(f=0;f<c.length;f++)x=c[f],x.getAttribute(b)===e&&x.setAttribute(b,a);l.setAttribute(b,a)});return a},fontMetrics:function(a,b){a=a||b&&b.style&&
|
|
b.style.fontSize||this.style&&this.style.fontSize;a=/px/.test(a)?l(a):/em/.test(a)?parseFloat(a)*(b?this.fontMetrics(null,b.parentNode).f:16):12;b=24>a?a+3:Math.round(1.2*a);return{h:b,b:Math.round(.8*b),f:a}},rotCorr:function(a,b,l){var c=a;b&&l&&(c=Math.max(c*Math.cos(b*y),4));return{x:-a/3*Math.sin(b*y),y:c}},label:function(l,c,e,f,r,H,h,w,g){var E=this,t=E.g("button"!==g&&"label"),d=t.text=E.text("",0,0,h).attr({zIndex:1}),N,A,T=0,q=3,z=0,G,F,k,P,J,n={},L,y,Q=/^url\((.*?)\)$/.test(f),K=Q,v,u,
|
|
O,S;g&&t.addClass("highcharts-"+g);K=Q;v=function(){return(L||0)%2/2};u=function(){var a=d.element.style,l={};A=(void 0===G||void 0===F||J)&&p(d.textStr)&&d.getBBox();t.width=(G||A.width||0)+2*q+z;t.height=(F||A.height||0)+2*q;y=q+E.fontMetrics(a&&a.fontSize,d).b;K&&(N||(t.box=N=E.symbols[f]||Q?E.symbol(f):E.rect(),N.addClass(("button"===g?"":"highcharts-label-box")+(g?" highcharts-"+g+"-box":"")),N.add(t),a=v(),l.x=a,l.y=(w?-y:0)+a),l.width=Math.round(t.width),l.height=Math.round(t.height),N.attr(b(l,
|
|
n)),n={})};O=function(){var a=z+q,b;b=w?0:y;p(G)&&A&&("center"===J||"right"===J)&&(a+={center:.5,right:1}[J]*(G-A.width));if(a!==d.x||b!==d.y)d.attr("x",a),d.hasBoxWidthChanged&&(A=d.getBBox(!0),u()),void 0!==b&&d.attr("y",b);d.x=a;d.y=b};S=function(a,b){N?N.attr(a,b):n[a]=b};t.onAdd=function(){d.add(t);t.attr({text:l||0===l?l:"",x:c,y:e});N&&p(r)&&t.attr({anchorX:r,anchorY:H})};t.widthSetter=function(b){G=a.isNumber(b)?b:null};t.heightSetter=function(a){F=a};t["text-alignSetter"]=function(a){J=a};
|
|
t.paddingSetter=function(a){p(a)&&a!==q&&(q=t.padding=a,O())};t.paddingLeftSetter=function(a){p(a)&&a!==z&&(z=a,O())};t.alignSetter=function(a){a={left:0,center:.5,right:1}[a];a!==T&&(T=a,A&&t.attr({x:k}))};t.textSetter=function(a){void 0!==a&&d.textSetter(a);u();O()};t["stroke-widthSetter"]=function(a,b){a&&(K=!0);L=this["stroke-width"]=a;S(b,a)};t.strokeSetter=t.fillSetter=t.rSetter=function(a,b){"r"!==b&&("fill"===b&&a&&(K=!0),t[b]=a);S(b,a)};t.anchorXSetter=function(a,b){r=t.anchorX=a;S(b,Math.round(a)-
|
|
v()-k)};t.anchorYSetter=function(a,b){H=t.anchorY=a;S(b,a-P)};t.xSetter=function(a){t.x=a;T&&(a-=T*((G||A.width)+2*q),t["forceAnimate:x"]=!0);k=Math.round(a);t.attr("translateX",k)};t.ySetter=function(a){P=t.y=Math.round(a);t.attr("translateY",P)};var V=t.css;return b(t,{css:function(a){if(a){var b={};a=I(a);m(t.textProps,function(l){void 0!==a[l]&&(b[l]=a[l],delete a[l])});d.css(b);"width"in b&&u()}return V.call(t,a)},getBBox:function(){return{width:A.width+2*q,height:A.height+2*q,x:A.x-q,y:A.y-
|
|
q}},shadow:function(a){a&&(u(),N&&N.shadow(a));return t},destroy:function(){x(t.element,"mouseenter");x(t.element,"mouseleave");d&&(d=d.destroy());N&&(N=N.destroy());B.prototype.destroy.call(t);t=E=u=O=S=null}})}});a.Renderer=C})(M);(function(a){var B=a.attr,C=a.createElement,D=a.css,n=a.defined,d=a.each,k=a.extend,u=a.isFirefox,v=a.isMS,q=a.isWebKit,p=a.pick,y=a.pInt,g=a.SVGRenderer,h=a.win,m=a.wrap;k(a.SVGElement.prototype,{htmlCss:function(a){var b="SPAN"===this.element.tagName&&a&&"width"in a,
|
|
f=p(b&&a.width,void 0);b&&(delete a.width,this.textWidth=f,this.htmlUpdateTransform());a&&"ellipsis"===a.textOverflow&&(a.whiteSpace="nowrap",a.overflow="hidden");this.styles=k(this.styles,a);D(this.element,a);return this},htmlGetBBox:function(){var a=this.element;return{x:a.offsetLeft,y:a.offsetTop,width:a.offsetWidth,height:a.offsetHeight}},htmlUpdateTransform:function(){if(this.added){var a=this.renderer,c=this.element,f=this.translateX||0,e=this.translateY||0,h=this.x||0,m=this.y||0,g=this.textAlign||
|
|
"left",p={left:0,center:.5,right:1}[g],A=this.styles,q=A&&A.whiteSpace;D(c,{marginLeft:f,marginTop:e});this.shadows&&d(this.shadows,function(a){D(a,{marginLeft:f+1,marginTop:e+1})});this.inverted&&d(c.childNodes,function(b){a.invertChild(b,c)});if("SPAN"===c.tagName){var A=this.rotation,r=this.textWidth&&y(this.textWidth),I=[A,g,c.innerHTML,this.textWidth,this.textAlign].join(),E;(E=r!==this.oldTextWidth)&&!(E=r>this.oldTextWidth)&&((E=this.textPxLength)||(D(c,{width:"",whiteSpace:q||"nowrap"}),E=
|
|
c.offsetWidth),E=E>r);E&&/[ \-]/.test(c.textContent||c.innerText)?(D(c,{width:r+"px",display:"block",whiteSpace:q||"normal"}),this.oldTextWidth=r,this.hasBoxWidthChanged=!0):this.hasBoxWidthChanged=!1;I!==this.cTT&&(q=a.fontMetrics(c.style.fontSize).b,!n(A)||A===(this.oldRotation||0)&&g===this.oldAlign||this.setSpanRotation(A,p,q),this.getSpanCorrection(!n(A)&&this.textPxLength||c.offsetWidth,q,p,A,g));D(c,{left:h+(this.xCorr||0)+"px",top:m+(this.yCorr||0)+"px"});this.cTT=I;this.oldRotation=A;this.oldAlign=
|
|
g}}else this.alignOnAdd=!0},setSpanRotation:function(a,c,f){var b={},h=this.renderer.getTransformKey();b[h]=b.transform="rotate("+a+"deg)";b[h+(u?"Origin":"-origin")]=b.transformOrigin=100*c+"% "+f+"px";D(this.element,b)},getSpanCorrection:function(a,c,f){this.xCorr=-a*f;this.yCorr=-c}});k(g.prototype,{getTransformKey:function(){return v&&!/Edge/.test(h.navigator.userAgent)?"-ms-transform":q?"-webkit-transform":u?"MozTransform":h.opera?"-o-transform":""},html:function(a,c,f){var b=this.createElement("span"),
|
|
h=b.element,g=b.renderer,t=g.isSVG,q=function(a,b){d(["opacity","visibility"],function(c){m(a,c+"Setter",function(a,c,f,e){a.call(this,c,f,e);b[f]=c})});a.addedSetters=!0};b.textSetter=function(a){a!==h.innerHTML&&delete this.bBox;this.textStr=a;h.innerHTML=p(a,"");b.doTransform=!0};t&&q(b,b.element.style);b.xSetter=b.ySetter=b.alignSetter=b.rotationSetter=function(a,c){"align"===c&&(c="textAlign");b[c]=a;b.doTransform=!0};b.afterSetters=function(){this.doTransform&&(this.htmlUpdateTransform(),this.doTransform=
|
|
!1)};b.attr({text:a,x:Math.round(c),y:Math.round(f)}).css({fontFamily:this.style.fontFamily,fontSize:this.style.fontSize,position:"absolute"});h.style.whiteSpace="nowrap";b.css=b.htmlCss;t&&(b.add=function(a){var c,f=g.box.parentNode,e=[];if(this.parentGroup=a){if(c=a.div,!c){for(;a;)e.push(a),a=a.parentGroup;d(e.reverse(),function(a){function r(b,l){a[l]=b;"translateX"===l?h.left=b+"px":h.top=b+"px";a.doTransform=!0}var h,l=B(a.element,"class");l&&(l={className:l});c=a.div=a.div||C("div",l,{position:"absolute",
|
|
left:(a.translateX||0)+"px",top:(a.translateY||0)+"px",display:a.display,opacity:a.opacity,pointerEvents:a.styles&&a.styles.pointerEvents},c||f);h=c.style;k(a,{classSetter:function(a){return function(b){this.element.setAttribute("class",b);a.className=b}}(c),on:function(){e[0].div&&b.on.apply({element:e[0].div},arguments);return a},translateXSetter:r,translateYSetter:r});a.addedSetters||q(a,h)})}}else c=f;c.appendChild(h);b.added=!0;b.alignOnAdd&&b.htmlUpdateTransform();return b});return b}})})(M);
|
|
(function(a){var B=a.correctFloat,C=a.defined,D=a.destroyObjectProperties,n=a.fireEvent,d=a.isNumber,k=a.merge,u=a.pick,v=a.deg2rad;a.Tick=function(a,p,d,g,h){this.axis=a;this.pos=p;this.type=d||"";this.isNewLabel=this.isNew=!0;this.parameters=h||{};this.tickmarkOffset=this.parameters.tickmarkOffset;this.options=this.parameters.options;d||g||this.addLabel()};a.Tick.prototype={addLabel:function(){var d=this,p=d.axis,n=p.options,g=p.chart,h=p.categories,m=p.names,b=d.pos,c=u(d.options&&d.options.labels,
|
|
n.labels),f=p.tickPositions,e=b===f[0],w=b===f[f.length-1],h=this.parameters.category||(h?u(h[b],m[b],b):b),G=d.label,f=f.info,t,K,A,F;p.isDatetimeAxis&&f&&(K=g.time.resolveDTLFormat(n.dateTimeLabelFormats[!n.grid&&f.higherRanks[b]||f.unitName]),t=K.main);d.isFirst=e;d.isLast=w;d.formatCtx={axis:p,chart:g,isFirst:e,isLast:w,dateTimeLabelFormat:t,tickPositionInfo:f,value:p.isLog?B(p.lin2log(h)):h,pos:b};n=p.labelFormatter.call(d.formatCtx,this.formatCtx);if(F=K&&K.list)d.shortenLabel=function(){for(A=
|
|
0;A<F.length;A++)if(G.attr({text:p.labelFormatter.call(a.extend(d.formatCtx,{dateTimeLabelFormat:F[A]}))}),G.getBBox().width<p.getSlotWidth(d)-2*u(c.padding,5))return;G.attr({text:""})};if(C(G))G&&G.textStr!==n&&(!G.textWidth||c.style&&c.style.width||G.styles.width||G.css({width:null}),G.attr({text:n}));else{if(d.label=G=C(n)&&c.enabled?g.renderer.text(n,0,0,c.useHTML).css(k(c.style)).add(p.labelGroup):null)G.textPxLength=G.getBBox().width;d.rotation=0}},getLabelSize:function(){return this.label?
|
|
this.label.getBBox()[this.axis.horiz?"height":"width"]:0},handleOverflow:function(a){var d=this.axis,q=d.options.labels,g=a.x,h=d.chart.chartWidth,m=d.chart.spacing,b=u(d.labelLeft,Math.min(d.pos,m[3])),m=u(d.labelRight,Math.max(d.isRadial?0:d.pos+d.len,h-m[1])),c=this.label,f=this.rotation,e={left:0,center:.5,right:1}[d.labelAlign||c.attr("align")],w=c.getBBox().width,G=d.getSlotWidth(this),t=G,k=1,A,n={};if(f||"justify"!==u(q.overflow,"justify"))0>f&&g-e*w<b?A=Math.round(g/Math.cos(f*v)-b):0<f&&
|
|
g+e*w>m&&(A=Math.round((h-g)/Math.cos(f*v)));else if(h=g+(1-e)*w,g-e*w<b?t=a.x+t*(1-e)-b:h>m&&(t=m-a.x+t*e,k=-1),t=Math.min(G,t),t<G&&"center"===d.labelAlign&&(a.x+=k*(G-t-e*(G-Math.min(w,t)))),w>t||d.autoRotation&&(c.styles||{}).width)A=t;A&&(this.shortenLabel?this.shortenLabel():(n.width=A,(q.style||{}).textOverflow||(n.textOverflow="ellipsis"),c.css(n)))},getPosition:function(d,p,k,g){var h=this.axis,m=h.chart,b=g&&m.oldChartHeight||m.chartHeight;d={x:d?a.correctFloat(h.translate(p+k,null,null,
|
|
g)+h.transB):h.left+h.offset+(h.opposite?(g&&m.oldChartWidth||m.chartWidth)-h.right-h.left:0),y:d?b-h.bottom+h.offset-(h.opposite?h.height:0):a.correctFloat(b-h.translate(p+k,null,null,g)-h.transB)};n(this,"afterGetPosition",{pos:d});return d},getLabelPosition:function(a,d,k,g,h,m,b,c){var f=this.axis,e=f.transA,w=f.reversed,p=f.staggerLines,t=f.tickRotCorr||{x:0,y:0},q=h.y,A=g||f.reserveSpaceDefault?0:-f.labelOffset*("center"===f.labelAlign?.5:1),F={};C(q)||(q=0===f.side?k.rotation?-8:-k.getBBox().height:
|
|
2===f.side?t.y+8:Math.cos(k.rotation*v)*(t.y-k.getBBox(!1,0).height/2));a=a+h.x+A+t.x-(m&&g?m*e*(w?-1:1):0);d=d+q-(m&&!g?m*e*(w?1:-1):0);p&&(k=b/(c||1)%p,f.opposite&&(k=p-k-1),d+=f.labelOffset/p*k);F.x=a;F.y=Math.round(d);n(this,"afterGetLabelPosition",{pos:F});return F},getMarkPath:function(a,d,k,g,h,m){return m.crispLine(["M",a,d,"L",a+(h?0:-k),d+(h?k:0)],g)},renderGridLine:function(a,d,k){var g=this.axis,h=g.options,m=this.gridLine,b={},c=this.pos,f=this.type,e=u(this.tickmarkOffset,g.tickmarkOffset),
|
|
w=g.chart.renderer,p=f?f+"Grid":"grid",t=h[p+"LineWidth"],q=h[p+"LineColor"],h=h[p+"LineDashStyle"];m||(b.stroke=q,b["stroke-width"]=t,h&&(b.dashstyle=h),f||(b.zIndex=1),a&&(d=0),this.gridLine=m=w.path().attr(b).addClass("highcharts-"+(f?f+"-":"")+"grid-line").add(g.gridGroup));if(m&&(k=g.getPlotLinePath(c+e,m.strokeWidth()*k,a,"pass")))m[a||this.isNew?"attr":"animate"]({d:k,opacity:d})},renderMark:function(a,d,k){var g=this.axis,h=g.options,m=g.chart.renderer,b=this.type,c=b?b+"Tick":"tick",f=g.tickSize(c),
|
|
e=this.mark,w=!e,p=a.x;a=a.y;var t=u(h[c+"Width"],!b&&g.isXAxis?1:0),h=h[c+"Color"];f&&(g.opposite&&(f[0]=-f[0]),w&&(this.mark=e=m.path().addClass("highcharts-"+(b?b+"-":"")+"tick").add(g.axisGroup),e.attr({stroke:h,"stroke-width":t})),e[w?"attr":"animate"]({d:this.getMarkPath(p,a,f[0],e.strokeWidth()*k,g.horiz,m),opacity:d}))},renderLabel:function(a,p,k,g){var h=this.axis,m=h.horiz,b=h.options,c=this.label,f=b.labels,e=f.step,h=u(this.tickmarkOffset,h.tickmarkOffset),w=!0,G=a.x;a=a.y;c&&d(G)&&(c.xy=
|
|
a=this.getLabelPosition(G,a,c,m,f,h,g,e),this.isFirst&&!this.isLast&&!u(b.showFirstLabel,1)||this.isLast&&!this.isFirst&&!u(b.showLastLabel,1)?w=!1:!m||f.step||f.rotation||p||0===k||this.handleOverflow(a),e&&g%e&&(w=!1),w&&d(a.y)?(a.opacity=k,c[this.isNewLabel?"attr":"animate"](a),this.isNewLabel=!1):(c.attr("y",-9999),this.isNewLabel=!0))},render:function(d,p,k){var g=this.axis,h=g.horiz,m=this.pos,b=u(this.tickmarkOffset,g.tickmarkOffset),m=this.getPosition(h,m,b,p),b=m.x,c=m.y,g=h&&b===g.pos+g.len||
|
|
!h&&c===g.pos?-1:1;k=u(k,1);this.isActive=!0;this.renderGridLine(p,k,g);this.renderMark(m,k,g);this.renderLabel(m,p,k,d);this.isNew=!1;a.fireEvent(this,"afterRender")},destroy:function(){D(this,this.axis)}}})(M);var W=function(a){var B=a.addEvent,C=a.animObject,D=a.arrayMax,n=a.arrayMin,d=a.color,k=a.correctFloat,u=a.defaultOptions,v=a.defined,q=a.deg2rad,p=a.destroyObjectProperties,y=a.each,g=a.extend,h=a.fireEvent,m=a.format,b=a.getMagnitude,c=a.grep,f=a.inArray,e=a.isArray,w=a.isNumber,G=a.isString,
|
|
t=a.merge,K=a.normalizeTickInterval,A=a.objectEach,F=a.pick,r=a.removeEvent,I=a.splat,E=a.syncTimeout,L=a.Tick,J=function(){this.init.apply(this,arguments)};a.extend(J.prototype,{defaultOptions:{dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e. %b"},week:{main:"%e. %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,labels:{enabled:!0,indentation:10,x:0,style:{color:"#666666",
|
|
cursor:"default",fontSize:"11px"}},maxPadding:.01,minorTickLength:2,minorTickPosition:"outside",minPadding:.01,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",style:{color:"#666666"}},type:"linear",minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#ccd6eb",lineWidth:1,gridLineColor:"#e6e6e6",tickColor:"#ccd6eb"},defaultYAxisOptions:{endOnTick:!0,maxPadding:.05,minPadding:.05,
|
|
tickPixelInterval:72,showLastLabel:!0,labels:{x:-8},startOnTick:!0,title:{rotation:270,text:"Values"},stackLabels:{allowOverlap:!1,enabled:!1,formatter:function(){return a.numberFormat(this.total,-1)},style:{color:"#000000",fontSize:"11px",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},defaultLeftAxisOptions:{labels:{x:-15},title:{rotation:270}},defaultRightAxisOptions:{labels:{x:15},title:{rotation:90}},defaultBottomAxisOptions:{labels:{autoRotation:[-45],x:0},title:{rotation:0}},
|
|
defaultTopAxisOptions:{labels:{autoRotation:[-45],x:0},title:{rotation:0}},init:function(a,b){var l=b.isX,c=this;c.chart=a;c.horiz=a.inverted&&!c.isZAxis?!l:l;c.isXAxis=l;c.coll=c.coll||(l?"xAxis":"yAxis");h(this,"init",{userOptions:b});c.opposite=b.opposite;c.side=b.side||(c.horiz?c.opposite?0:2:c.opposite?1:3);c.setOptions(b);var x=this.options,e=x.type;c.labelFormatter=x.labels.formatter||c.defaultLabelFormatter;c.userOptions=b;c.minPixelPadding=0;c.reversed=x.reversed;c.visible=!1!==x.visible;
|
|
c.zoomEnabled=!1!==x.zoomEnabled;c.hasNames="category"===e||!0===x.categories;c.categories=x.categories||c.hasNames;c.names||(c.names=[],c.names.keys={});c.plotLinesAndBandsGroups={};c.isLog="logarithmic"===e;c.isDatetimeAxis="datetime"===e;c.positiveValuesOnly=c.isLog&&!c.allowNegativeLog;c.isLinked=v(x.linkedTo);c.ticks={};c.labelEdge=[];c.minorTicks={};c.plotLinesAndBands=[];c.alternateBands={};c.len=0;c.minRange=c.userMinRange=x.minRange||x.maxZoom;c.range=x.range;c.offset=x.offset||0;c.stacks=
|
|
{};c.oldStacks={};c.stacksTouched=0;c.max=null;c.min=null;c.crosshair=F(x.crosshair,I(a.options.tooltip.crosshairs)[l?0:1],!1);b=c.options.events;-1===f(c,a.axes)&&(l?a.axes.splice(a.xAxis.length,0,c):a.axes.push(c),a[c.coll].push(c));c.series=c.series||[];a.inverted&&!c.isZAxis&&l&&void 0===c.reversed&&(c.reversed=!0);A(b,function(a,b){B(c,b,a)});c.lin2log=x.linearToLogConverter||c.lin2log;c.isLog&&(c.val2lin=c.log2lin,c.lin2val=c.lin2log);h(this,"afterInit")},setOptions:function(a){this.options=
|
|
t(this.defaultOptions,"yAxis"===this.coll&&this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],t(u[this.coll],a));h(this,"afterSetOptions",{userOptions:a})},defaultLabelFormatter:function(){var b=this.axis,c=this.value,f=b.chart.time,e=b.categories,r=this.dateTimeLabelFormat,h=u.lang,d=h.numericSymbols,h=h.numericSymbolMagnitude||1E3,g=d&&d.length,t,w=b.options.labels.format,b=b.isLog?Math.abs(c):b.tickInterval;
|
|
if(w)t=m(w,this,f);else if(e)t=c;else if(r)t=f.dateFormat(r,c);else if(g&&1E3<=b)for(;g--&&void 0===t;)f=Math.pow(h,g+1),b>=f&&0===10*c%f&&null!==d[g]&&0!==c&&(t=a.numberFormat(c/f,-1)+d[g]);void 0===t&&(t=1E4<=Math.abs(c)?a.numberFormat(c,-1):a.numberFormat(c,-1,void 0,""));return t},getSeriesExtremes:function(){var a=this,b=a.chart;h(this,"getSeriesExtremes",null,function(){a.hasVisibleSeries=!1;a.dataMin=a.dataMax=a.threshold=null;a.softThreshold=!a.isXAxis;a.buildStacks&&a.buildStacks();y(a.series,
|
|
function(l){if(l.visible||!b.options.chart.ignoreHiddenSeries){var x=l.options,f=x.threshold,e;a.hasVisibleSeries=!0;a.positiveValuesOnly&&0>=f&&(f=null);if(a.isXAxis)x=l.xData,x.length&&(l=n(x),e=D(x),w(l)||l instanceof Date||(x=c(x,w),l=n(x),e=D(x)),x.length&&(a.dataMin=Math.min(F(a.dataMin,x[0],l),l),a.dataMax=Math.max(F(a.dataMax,x[0],e),e)));else if(l.getExtremes(),e=l.dataMax,l=l.dataMin,v(l)&&v(e)&&(a.dataMin=Math.min(F(a.dataMin,l),l),a.dataMax=Math.max(F(a.dataMax,e),e)),v(f)&&(a.threshold=
|
|
f),!x.softThreshold||a.positiveValuesOnly)a.softThreshold=!1}})});h(this,"afterGetSeriesExtremes")},translate:function(a,b,c,f,e,r){var l=this.linkedParent||this,x=1,h=0,H=f?l.oldTransA:l.transA;f=f?l.oldMin:l.min;var d=l.minPixelPadding;e=(l.isOrdinal||l.isBroken||l.isLog&&e)&&l.lin2val;H||(H=l.transA);c&&(x*=-1,h=l.len);l.reversed&&(x*=-1,h-=x*(l.sector||l.len));b?(a=(a*x+h-d)/H+f,e&&(a=l.lin2val(a))):(e&&(a=l.val2lin(a)),a=w(f)?x*(a-f)*H+h+x*d+(w(r)?H*r:0):void 0);return a},toPixels:function(a,
|
|
b){return this.translate(a,!1,!this.horiz,null,!0)+(b?0:this.pos)},toValue:function(a,b){return this.translate(a-(b?0:this.pos),!0,!this.horiz,null,!0)},getPlotLinePath:function(a,b,c,f,e){var l=this.chart,x=this.left,r=this.top,h,H,d=c&&l.oldChartHeight||l.chartHeight,g=c&&l.oldChartWidth||l.chartWidth,m;h=this.transB;var t=function(a,b,c){if("pass"!==f&&a<b||a>c)f?a=Math.min(Math.max(b,a),c):m=!0;return a};e=F(e,this.translate(a,null,null,c));e=Math.min(Math.max(-1E5,e),1E5);a=c=Math.round(e+h);
|
|
h=H=Math.round(d-e-h);w(e)?this.horiz?(h=r,H=d-this.bottom,a=c=t(a,x,x+this.width)):(a=x,c=g-this.right,h=H=t(h,r,r+this.height)):(m=!0,f=!1);return m&&!f?null:l.renderer.crispLine(["M",a,h,"L",c,H],b||1)},getLinearTickPositions:function(a,b,c){var l,f=k(Math.floor(b/a)*a);c=k(Math.ceil(c/a)*a);var x=[],e;k(f+a)===f&&(e=20);if(this.single)return[b];for(b=f;b<=c;){x.push(b);b=k(b+a,e);if(b===l)break;l=b}return x},getMinorTickInterval:function(){var a=this.options;return!0===a.minorTicks?F(a.minorTickInterval,
|
|
"auto"):!1===a.minorTicks?null:a.minorTickInterval},getMinorTickPositions:function(){var a=this,b=a.options,c=a.tickPositions,f=a.minorTickInterval,e=[],r=a.pointRangePadding||0,h=a.min-r,r=a.max+r,d=r-h;if(d&&d/f<a.len/3)if(a.isLog)y(this.paddedTicks,function(b,c,l){c&&e.push.apply(e,a.getLogTickPositions(f,l[c-1],l[c],!0))});else if(a.isDatetimeAxis&&"auto"===this.getMinorTickInterval())e=e.concat(a.getTimeTicks(a.normalizeTimeTickInterval(f),h,r,b.startOfWeek));else for(b=h+(c[0]-h)%f;b<=r&&b!==
|
|
e[0];b+=f)e.push(b);0!==e.length&&a.trimTicks(e);return e},adjustForMinRange:function(){var a=this.options,b=this.min,c=this.max,f,e,r,h,d,g,m,t;this.isXAxis&&void 0===this.minRange&&!this.isLog&&(v(a.min)||v(a.max)?this.minRange=null:(y(this.series,function(a){g=a.xData;for(h=m=a.xIncrement?1:g.length-1;0<h;h--)if(d=g[h]-g[h-1],void 0===r||d<r)r=d}),this.minRange=Math.min(5*r,this.dataMax-this.dataMin)));c-b<this.minRange&&(e=this.dataMax-this.dataMin>=this.minRange,t=this.minRange,f=(t-c+b)/2,f=
|
|
[b-f,F(a.min,b-f)],e&&(f[2]=this.isLog?this.log2lin(this.dataMin):this.dataMin),b=D(f),c=[b+t,F(a.max,b+t)],e&&(c[2]=this.isLog?this.log2lin(this.dataMax):this.dataMax),c=n(c),c-b<t&&(f[0]=c-t,f[1]=F(a.min,c-t),b=D(f)));this.min=b;this.max=c},getClosest:function(){var a;this.categories?a=1:y(this.series,function(b){var c=b.closestPointRange,l=b.visible||!b.chart.options.chart.ignoreHiddenSeries;!b.noSharedTooltip&&v(c)&&l&&(a=v(a)?Math.min(a,c):c)});return a},nameToX:function(a){var b=e(this.categories),
|
|
c=b?this.categories:this.names,l=a.options.x,r;a.series.requireSorting=!1;v(l)||(l=!1===this.options.uniqueNames?a.series.autoIncrement():b?f(a.name,c):F(c.keys[a.name],-1));-1===l?b||(r=c.length):r=l;void 0!==r&&(this.names[r]=a.name,this.names.keys[a.name]=r);return r},updateNames:function(){var b=this,c=this.names;0<c.length&&(y(a.keys(c.keys),function(a){delete c.keys[a]}),c.length=0,this.minRange=this.userMinRange,y(this.series||[],function(a){a.xIncrement=null;if(!a.points||a.isDirtyData)a.processData(),
|
|
a.generatePoints();y(a.points,function(c,l){var f;c.options&&(f=b.nameToX(c),void 0!==f&&f!==c.x&&(c.x=f,a.xData[l]=f))})}))},setAxisTranslation:function(a){var b=this,c=b.max-b.min,l=b.axisPointRange||0,f,e=0,r=0,d=b.linkedParent,g=!!b.categories,m=b.transA,t=b.isXAxis;if(t||g||l)f=b.getClosest(),d?(e=d.minPointOffset,r=d.pointRangePadding):y(b.series,function(a){var c=g?1:t?F(a.options.pointRange,f,0):b.axisPointRange||0;a=a.options.pointPlacement;l=Math.max(l,c);b.single||(e=Math.max(e,G(a)?0:
|
|
c/2),r=Math.max(r,"on"===a?0:c))}),d=b.ordinalSlope&&f?b.ordinalSlope/f:1,b.minPointOffset=e*=d,b.pointRangePadding=r*=d,b.pointRange=Math.min(l,c),t&&(b.closestPointRange=f);a&&(b.oldTransA=m);b.translationSlope=b.transA=m=b.staticScale||b.len/(c+r||1);b.transB=b.horiz?b.left:b.bottom;b.minPixelPadding=m*e;h(this,"afterSetAxisTranslation")},minFromRange:function(){return this.max-this.range},setTickInterval:function(c){var l=this,f=l.chart,e=l.options,r=l.isLog,d=l.isDatetimeAxis,g=l.isXAxis,m=l.isLinked,
|
|
t=e.maxPadding,E=e.minPadding,p=e.tickInterval,I=e.tickPixelInterval,A=l.categories,G=w(l.threshold)?l.threshold:null,q=l.softThreshold,n,J,L,u;d||A||m||this.getTickAmount();L=F(l.userMin,e.min);u=F(l.userMax,e.max);m?(l.linkedParent=f[l.coll][e.linkedTo],f=l.linkedParent.getExtremes(),l.min=F(f.min,f.dataMin),l.max=F(f.max,f.dataMax),e.type!==l.linkedParent.options.type&&a.error(11,1)):(!q&&v(G)&&(l.dataMin>=G?(n=G,E=0):l.dataMax<=G&&(J=G,t=0)),l.min=F(L,n,l.dataMin),l.max=F(u,J,l.dataMax));r&&(l.positiveValuesOnly&&
|
|
!c&&0>=Math.min(l.min,F(l.dataMin,l.min))&&a.error(10,1),l.min=k(l.log2lin(l.min),15),l.max=k(l.log2lin(l.max),15));l.range&&v(l.max)&&(l.userMin=l.min=L=Math.max(l.dataMin,l.minFromRange()),l.userMax=u=l.max,l.range=null);h(l,"foundExtremes");l.beforePadding&&l.beforePadding();l.adjustForMinRange();!(A||l.axisPointRange||l.usePercentage||m)&&v(l.min)&&v(l.max)&&(f=l.max-l.min)&&(!v(L)&&E&&(l.min-=f*E),!v(u)&&t&&(l.max+=f*t));w(e.softMin)&&!w(l.userMin)&&(l.min=Math.min(l.min,e.softMin));w(e.softMax)&&
|
|
!w(l.userMax)&&(l.max=Math.max(l.max,e.softMax));w(e.floor)&&(l.min=Math.max(l.min,e.floor));w(e.ceiling)&&(l.max=Math.min(l.max,e.ceiling));q&&v(l.dataMin)&&(G=G||0,!v(L)&&l.min<G&&l.dataMin>=G?l.min=G:!v(u)&&l.max>G&&l.dataMax<=G&&(l.max=G));l.tickInterval=l.min===l.max||void 0===l.min||void 0===l.max?1:m&&!p&&I===l.linkedParent.options.tickPixelInterval?p=l.linkedParent.tickInterval:F(p,this.tickAmount?(l.max-l.min)/Math.max(this.tickAmount-1,1):void 0,A?1:(l.max-l.min)*I/Math.max(l.len,I));g&&
|
|
!c&&y(l.series,function(a){a.processData(l.min!==l.oldMin||l.max!==l.oldMax)});l.setAxisTranslation(!0);l.beforeSetTickPositions&&l.beforeSetTickPositions();l.postProcessTickInterval&&(l.tickInterval=l.postProcessTickInterval(l.tickInterval));l.pointRange&&!p&&(l.tickInterval=Math.max(l.pointRange,l.tickInterval));c=F(e.minTickInterval,l.isDatetimeAxis&&l.closestPointRange);!p&&l.tickInterval<c&&(l.tickInterval=c);d||r||p||(l.tickInterval=K(l.tickInterval,null,b(l.tickInterval),F(e.allowDecimals,
|
|
!(.5<l.tickInterval&&5>l.tickInterval&&1E3<l.max&&9999>l.max)),!!this.tickAmount));this.tickAmount||(l.tickInterval=l.unsquish());this.setTickPositions()},setTickPositions:function(){var b=this.options,c,f=b.tickPositions;c=this.getMinorTickInterval();var e=b.tickPositioner,r=b.startOnTick,d=b.endOnTick;this.tickmarkOffset=this.categories&&"between"===b.tickmarkPlacement&&1===this.tickInterval?.5:0;this.minorTickInterval="auto"===c&&this.tickInterval?this.tickInterval/5:c;this.single=this.min===this.max&&
|
|
v(this.min)&&!this.tickAmount&&(parseInt(this.min,10)===this.min||!1!==b.allowDecimals);this.tickPositions=c=f&&f.slice();!c&&(!this.ordinalPositions&&(this.max-this.min)/this.tickInterval>Math.max(2*this.len,200)?(c=[this.min,this.max],a.error(19)):c=this.isDatetimeAxis?this.getTimeTicks(this.normalizeTimeTickInterval(this.tickInterval,b.units),this.min,this.max,b.startOfWeek,this.ordinalPositions,this.closestPointRange,!0):this.isLog?this.getLogTickPositions(this.tickInterval,this.min,this.max):
|
|
this.getLinearTickPositions(this.tickInterval,this.min,this.max),c.length>this.len&&(c=[c[0],c.pop()],c[0]===c[1]&&(c.length=1)),this.tickPositions=c,e&&(e=e.apply(this,[this.min,this.max])))&&(this.tickPositions=c=e);this.paddedTicks=c.slice(0);this.trimTicks(c,r,d);this.isLinked||(this.single&&2>c.length&&(this.min-=.5,this.max+=.5),f||e||this.adjustTickAmount());h(this,"afterSetTickPositions")},trimTicks:function(a,b,c){var l=a[0],f=a[a.length-1],e=this.minPointOffset||0;if(!this.isLinked){if(b&&
|
|
-Infinity!==l)this.min=l;else for(;this.min-e>a[0];)a.shift();if(c)this.max=f;else for(;this.max+e<a[a.length-1];)a.pop();0===a.length&&v(l)&&!this.options.tickPositions&&a.push((f+l)/2)}},alignToOthers:function(){var a={},b,c=this.options;!1===this.chart.options.chart.alignTicks||!1===c.alignTicks||!1===c.startOnTick||!1===c.endOnTick||this.isLog||y(this.chart[this.coll],function(c){var l=c.options,l=[c.horiz?l.left:l.top,l.width,l.height,l.pane].join();c.series.length&&(a[l]?b=!0:a[l]=1)});return b},
|
|
getTickAmount:function(){var a=this.options,b=a.tickAmount,c=a.tickPixelInterval;!v(a.tickInterval)&&this.len<c&&!this.isRadial&&!this.isLog&&a.startOnTick&&a.endOnTick&&(b=2);!b&&this.alignToOthers()&&(b=Math.ceil(this.len/c)+1);4>b&&(this.finalTickAmt=b,b=5);this.tickAmount=b},adjustTickAmount:function(){var a=this.tickInterval,b=this.tickPositions,c=this.tickAmount,f=this.finalTickAmt,e=b&&b.length,r=F(this.threshold,this.softThreshold?0:null);if(this.hasData()){if(e<c){for(;b.length<c;)b.length%
|
|
2||this.min===r?b.push(k(b[b.length-1]+a)):b.unshift(k(b[0]-a));this.transA*=(e-1)/(c-1);this.min=b[0];this.max=b[b.length-1]}else e>c&&(this.tickInterval*=2,this.setTickPositions());if(v(f)){for(a=c=b.length;a--;)(3===f&&1===a%2||2>=f&&0<a&&a<c-1)&&b.splice(a,1);this.finalTickAmt=void 0}}},setScale:function(){var a,b;this.oldMin=this.min;this.oldMax=this.max;this.oldAxisLength=this.len;this.setAxisSize();b=this.len!==this.oldAxisLength;y(this.series,function(b){if(b.isDirtyData||b.isDirty||b.xAxis.isDirty)a=
|
|
!0});b||a||this.isLinked||this.forceRedraw||this.userMin!==this.oldUserMin||this.userMax!==this.oldUserMax||this.alignToOthers()?(this.resetStacks&&this.resetStacks(),this.forceRedraw=!1,this.getSeriesExtremes(),this.setTickInterval(),this.oldUserMin=this.userMin,this.oldUserMax=this.userMax,this.isDirty||(this.isDirty=b||this.min!==this.oldMin||this.max!==this.oldMax)):this.cleanStacks&&this.cleanStacks();h(this,"afterSetScale")},setExtremes:function(a,b,c,f,e){var l=this,r=l.chart;c=F(c,!0);y(l.series,
|
|
function(a){delete a.kdTree});e=g(e,{min:a,max:b});h(l,"setExtremes",e,function(){l.userMin=a;l.userMax=b;l.eventArgs=e;c&&r.redraw(f)})},zoom:function(a,b){var c=this.dataMin,l=this.dataMax,f=this.options,e=Math.min(c,F(f.min,c)),f=Math.max(l,F(f.max,l));if(a!==this.min||b!==this.max)this.allowZoomOutside||(v(c)&&(a<e&&(a=e),a>f&&(a=f)),v(l)&&(b<e&&(b=e),b>f&&(b=f))),this.displayBtn=void 0!==a||void 0!==b,this.setExtremes(a,b,!1,void 0,{trigger:"zoom"});return!0},setAxisSize:function(){var b=this.chart,
|
|
c=this.options,f=c.offsets||[0,0,0,0],e=this.horiz,r=this.width=Math.round(a.relativeLength(F(c.width,b.plotWidth-f[3]+f[1]),b.plotWidth)),h=this.height=Math.round(a.relativeLength(F(c.height,b.plotHeight-f[0]+f[2]),b.plotHeight)),d=this.top=Math.round(a.relativeLength(F(c.top,b.plotTop+f[0]),b.plotHeight,b.plotTop)),c=this.left=Math.round(a.relativeLength(F(c.left,b.plotLeft+f[3]),b.plotWidth,b.plotLeft));this.bottom=b.chartHeight-h-d;this.right=b.chartWidth-r-c;this.len=Math.max(e?r:h,0);this.pos=
|
|
e?c:d},getExtremes:function(){var a=this.isLog;return{min:a?k(this.lin2log(this.min)):this.min,max:a?k(this.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(a){var b=this.isLog,c=b?this.lin2log(this.min):this.min,b=b?this.lin2log(this.max):this.max;null===a||-Infinity===a?a=c:Infinity===a?a=b:c>a?a=c:b<a&&(a=b);return this.translate(a,0,1,0,1)},autoLabelAlign:function(a){a=(F(a,0)-90*this.side+720)%360;return 15<
|
|
a&&165>a?"right":195<a&&345>a?"left":"center"},tickSize:function(a){var b=this.options,c=b[a+"Length"],l=F(b[a+"Width"],"tick"===a&&this.isXAxis?1:0);if(l&&c)return"inside"===b[a+"Position"]&&(c=-c),[c,l]},labelMetrics:function(){var a=this.tickPositions&&this.tickPositions[0]||0;return this.chart.renderer.fontMetrics(this.options.labels.style&&this.options.labels.style.fontSize,this.ticks[a]&&this.ticks[a].label)},unsquish:function(){var a=this.options.labels,b=this.horiz,c=this.tickInterval,f=c,
|
|
e=this.len/(((this.categories?1:0)+this.max-this.min)/c),r,h=a.rotation,d=this.labelMetrics(),g,m=Number.MAX_VALUE,t,w=function(a){a/=e||1;a=1<a?Math.ceil(a):1;return k(a*c)};b?(t=!a.staggerLines&&!a.step&&(v(h)?[h]:e<F(a.autoRotationLimit,80)&&a.autoRotation))&&y(t,function(a){var b;if(a===h||a&&-90<=a&&90>=a)g=w(Math.abs(d.h/Math.sin(q*a))),b=g+Math.abs(a/360),b<m&&(m=b,r=a,f=g)}):a.step||(f=w(d.h));this.autoRotation=t;this.labelRotation=F(r,h);return f},getSlotWidth:function(a){var b=this.chart,
|
|
c=this.horiz,l=this.options.labels,f=Math.max(this.tickPositions.length-(this.categories?0:1),1),e=b.margin[3];return a&&a.slotWidth||c&&2>(l.step||0)&&!l.rotation&&(this.staggerLines||1)*this.len/f||!c&&(l.style&&parseInt(l.style.width,10)||e&&e-b.spacing[3]||.33*b.chartWidth)},renderUnsquish:function(){var a=this.chart,b=a.renderer,c=this.tickPositions,f=this.ticks,e=this.options.labels,r=e&&e.style||{},h=this.horiz,d=this.getSlotWidth(),g=Math.max(1,Math.round(d-2*(e.padding||5))),m={},t=this.labelMetrics(),
|
|
w=e.style&&e.style.textOverflow,E,p,I=0,A;G(e.rotation)||(m.rotation=e.rotation||0);y(c,function(a){(a=f[a])&&a.label&&a.label.textPxLength>I&&(I=a.label.textPxLength)});this.maxLabelLength=I;if(this.autoRotation)I>g&&I>t.h?m.rotation=this.labelRotation:this.labelRotation=0;else if(d&&(E=g,!w))for(p="clip",g=c.length;!h&&g--;)if(A=c[g],A=f[A].label)A.styles&&"ellipsis"===A.styles.textOverflow?A.css({textOverflow:"clip"}):A.textPxLength>d&&A.css({width:d+"px"}),A.getBBox().height>this.len/c.length-
|
|
(t.h-t.f)&&(A.specificTextOverflow="ellipsis");m.rotation&&(E=I>.5*a.chartHeight?.33*a.chartHeight:I,w||(p="ellipsis"));if(this.labelAlign=e.align||this.autoLabelAlign(this.labelRotation))m.align=this.labelAlign;y(c,function(a){var b=(a=f[a])&&a.label,c=r.width,l={};b&&(b.attr(m),a.shortenLabel?a.shortenLabel():E&&!c&&"nowrap"!==r.whiteSpace&&(E<b.textPxLength||"SPAN"===b.element.tagName)?(l.width=E,w||(l.textOverflow=b.specificTextOverflow||p),b.css(l)):b.styles&&b.styles.width&&!l.width&&!c&&b.css({width:null}),
|
|
delete b.specificTextOverflow,a.rotation=m.rotation)},this);this.tickRotCorr=b.rotCorr(t.b,this.labelRotation||0,0!==this.side)},hasData:function(){return this.hasVisibleSeries||v(this.min)&&v(this.max)&&this.tickPositions&&0<this.tickPositions.length},addTitle:function(a){var b=this.chart.renderer,c=this.horiz,l=this.opposite,f=this.options.title,e;this.axisTitle||((e=f.textAlign)||(e=(c?{low:"left",middle:"center",high:"right"}:{low:l?"right":"left",middle:"center",high:l?"left":"right"})[f.align]),
|
|
this.axisTitle=b.text(f.text,0,0,f.useHTML).attr({zIndex:7,rotation:f.rotation||0,align:e}).addClass("highcharts-axis-title").css(t(f.style)).add(this.axisGroup),this.axisTitle.isNew=!0);f.style.width||this.isRadial||this.axisTitle.css({width:this.len});this.axisTitle[a?"show":"hide"](!0)},generateTick:function(a){var b=this.ticks;b[a]?b[a].addLabel():b[a]=new L(this,a)},getOffset:function(){var a=this,b=a.chart,c=b.renderer,f=a.options,e=a.tickPositions,r=a.ticks,d=a.horiz,g=a.side,m=b.inverted&&
|
|
!a.isZAxis?[1,0,3,2][g]:g,t,w,E=0,p,I=0,k=f.title,G=f.labels,q=0,n=b.axisOffset,b=b.clipOffset,J=[-1,1,1,-1][g],L=f.className,K=a.axisParent;t=a.hasData();a.showAxis=w=t||F(f.showEmpty,!0);a.staggerLines=a.horiz&&G.staggerLines;a.axisGroup||(a.gridGroup=c.g("grid").attr({zIndex:f.gridZIndex||1}).addClass("highcharts-"+this.coll.toLowerCase()+"-grid "+(L||"")).add(K),a.axisGroup=c.g("axis").attr({zIndex:f.zIndex||2}).addClass("highcharts-"+this.coll.toLowerCase()+" "+(L||"")).add(K),a.labelGroup=c.g("axis-labels").attr({zIndex:G.zIndex||
|
|
7}).addClass("highcharts-"+a.coll.toLowerCase()+"-labels "+(L||"")).add(K));t||a.isLinked?(y(e,function(b,c){a.generateTick(b,c)}),a.renderUnsquish(),a.reserveSpaceDefault=0===g||2===g||{1:"left",3:"right"}[g]===a.labelAlign,F(G.reserveSpace,"center"===a.labelAlign?!0:null,a.reserveSpaceDefault)&&y(e,function(a){q=Math.max(r[a].getLabelSize(),q)}),a.staggerLines&&(q*=a.staggerLines),a.labelOffset=q*(a.opposite?-1:1)):A(r,function(a,b){a.destroy();delete r[b]});k&&k.text&&!1!==k.enabled&&(a.addTitle(w),
|
|
w&&!1!==k.reserveSpace&&(a.titleOffset=E=a.axisTitle.getBBox()[d?"height":"width"],p=k.offset,I=v(p)?0:F(k.margin,d?5:10)));a.renderLine();a.offset=J*F(f.offset,n[g]);a.tickRotCorr=a.tickRotCorr||{x:0,y:0};c=0===g?-a.labelMetrics().h:2===g?a.tickRotCorr.y:0;I=Math.abs(q)+I;q&&(I=I-c+J*(d?F(G.y,a.tickRotCorr.y+8*J):G.x));a.axisTitleMargin=F(p,I);a.getMaxLabelDimensions&&(a.maxLabelDimensions=a.getMaxLabelDimensions(r,e));d=this.tickSize("tick");n[g]=Math.max(n[g],a.axisTitleMargin+E+J*a.offset,I,t&&
|
|
e.length&&d?d[0]+J*a.offset:0);f=f.offset?0:2*Math.floor(a.axisLine.strokeWidth()/2);b[m]=Math.max(b[m],f);h(this,"afterGetOffset")},getLinePath:function(a){var b=this.chart,c=this.opposite,f=this.offset,e=this.horiz,l=this.left+(c?this.width:0)+f,f=b.chartHeight-this.bottom-(c?this.height:0)+f;c&&(a*=-1);return b.renderer.crispLine(["M",e?this.left:l,e?f:this.top,"L",e?b.chartWidth-this.right:l,e?f:b.chartHeight-this.bottom],a)},renderLine:function(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),
|
|
this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))},getTitlePosition:function(){var a=this.horiz,b=this.left,c=this.top,f=this.len,e=this.options.title,r=a?b:c,h=this.opposite,d=this.offset,g=e.x||0,m=e.y||0,t=this.axisTitle,w=this.chart.renderer.fontMetrics(e.style&&e.style.fontSize,t),t=Math.max(t.getBBox(null,0).height-w.h-1,0),f={low:r+(a?0:f),middle:r+f/2,high:r+(a?f:0)}[e.align],b=(a?c+this.height:b)+(a?1:-1)*(h?-1:1)*this.axisTitleMargin+[-t,
|
|
t,w.f,-t][this.side];return{x:a?f+g:b+(h?this.width:0)+d+g,y:a?b+m-(h?this.height:0)+d:f+m}},renderMinorTick:function(a){var b=this.chart.hasRendered&&w(this.oldMin),c=this.minorTicks;c[a]||(c[a]=new L(this,a,"minor"));b&&c[a].isNew&&c[a].render(null,!0);c[a].render(null,!1,1)},renderTick:function(a,b){var c=this.isLinked,f=this.ticks,e=this.chart.hasRendered&&w(this.oldMin);if(!c||a>=this.min&&a<=this.max)f[a]||(f[a]=new L(this,a)),e&&f[a].isNew&&f[a].render(b,!0,-1),f[a].render(b)},render:function(){var b=
|
|
this,c=b.chart,f=b.options,e=b.isLog,r=b.isLinked,d=b.tickPositions,g=b.axisTitle,t=b.ticks,m=b.minorTicks,p=b.alternateBands,I=f.stackLabels,k=f.alternateGridColor,G=b.tickmarkOffset,q=b.axisLine,n=b.showAxis,J=C(c.renderer.globalAnimation),F,K;b.labelEdge.length=0;b.overlap=!1;y([t,m,p],function(a){A(a,function(a){a.isActive=!1})});if(b.hasData()||r)b.minorTickInterval&&!b.categories&&y(b.getMinorTickPositions(),function(a){b.renderMinorTick(a)}),d.length&&(y(d,function(a,c){b.renderTick(a,c)}),
|
|
G&&(0===b.min||b.single)&&(t[-1]||(t[-1]=new L(b,-1,null,!0)),t[-1].render(-1))),k&&y(d,function(f,l){K=void 0!==d[l+1]?d[l+1]+G:b.max-G;0===l%2&&f<b.max&&K<=b.max+(c.polar?-G:G)&&(p[f]||(p[f]=new a.PlotLineOrBand(b)),F=f+G,p[f].options={from:e?b.lin2log(F):F,to:e?b.lin2log(K):K,color:k},p[f].render(),p[f].isActive=!0)}),b._addedPlotLB||(y((f.plotLines||[]).concat(f.plotBands||[]),function(a){b.addPlotBandOrLine(a)}),b._addedPlotLB=!0);y([t,m,p],function(a){var b,f=[],e=J.duration;A(a,function(a,
|
|
b){a.isActive||(a.render(b,!1,0),a.isActive=!1,f.push(b))});E(function(){for(b=f.length;b--;)a[f[b]]&&!a[f[b]].isActive&&(a[f[b]].destroy(),delete a[f[b]])},a!==p&&c.hasRendered&&e?e:0)});q&&(q[q.isPlaced?"animate":"attr"]({d:this.getLinePath(q.strokeWidth())}),q.isPlaced=!0,q[n?"show":"hide"](!0));g&&n&&(f=b.getTitlePosition(),w(f.y)?(g[g.isNew?"attr":"animate"](f),g.isNew=!1):(g.attr("y",-9999),g.isNew=!0));I&&I.enabled&&b.renderStackTotals();b.isDirty=!1;h(this,"afterRender")},redraw:function(){this.visible&&
|
|
(this.render(),y(this.plotLinesAndBands,function(a){a.render()}));y(this.series,function(a){a.isDirty=!0})},keepProps:"extKey hcEvents names series userMax userMin".split(" "),destroy:function(a){var b=this,c=b.stacks,e=b.plotLinesAndBands,l;h(this,"destroy",{keepEvents:a});a||r(b);A(c,function(a,b){p(a);c[b]=null});y([b.ticks,b.minorTicks,b.alternateBands],function(a){p(a)});if(e)for(a=e.length;a--;)e[a].destroy();y("stackTotalGroup axisLine axisTitle axisGroup gridGroup labelGroup cross scrollbar".split(" "),
|
|
function(a){b[a]&&(b[a]=b[a].destroy())});for(l in b.plotLinesAndBandsGroups)b.plotLinesAndBandsGroups[l]=b.plotLinesAndBandsGroups[l].destroy();A(b,function(a,c){-1===f(c,b.keepProps)&&delete b[c]})},drawCrosshair:function(a,b){var c,f=this.crosshair,e=F(f.snap,!0),l,r=this.cross;h(this,"drawCrosshair",{e:a,point:b});a||(a=this.cross&&this.cross.e);if(this.crosshair&&!1!==(v(b)||!e)){e?v(b)&&(l=F(b.crosshairPos,this.isXAxis?b.plotX:this.len-b.plotY)):l=a&&(this.horiz?a.chartX-this.pos:this.len-a.chartY+
|
|
this.pos);v(l)&&(c=this.getPlotLinePath(b&&(this.isXAxis?b.x:F(b.stackY,b.y)),null,null,null,l)||null);if(!v(c)){this.hideCrosshair();return}e=this.categories&&!this.isRadial;r||(this.cross=r=this.chart.renderer.path().addClass("highcharts-crosshair highcharts-crosshair-"+(e?"category ":"thin ")+f.className).attr({zIndex:F(f.zIndex,2)}).add(),r.attr({stroke:f.color||(e?d("#ccd6eb").setOpacity(.25).get():"#cccccc"),"stroke-width":F(f.width,1)}).css({"pointer-events":"none"}),f.dashStyle&&r.attr({dashstyle:f.dashStyle}));
|
|
r.show().attr({d:c});e&&!f.width&&r.attr({"stroke-width":this.transA});this.cross.e=a}else this.hideCrosshair();h(this,"afterDrawCrosshair",{e:a,point:b})},hideCrosshair:function(){this.cross&&this.cross.hide()}});return a.Axis=J}(M);(function(a){var B=a.Axis,C=a.getMagnitude,D=a.map,n=a.normalizeTickInterval,d=a.pick;B.prototype.getLogTickPositions=function(a,u,v,q){var p=this.options,k=this.len,g=[];q||(this._minorAutoInterval=null);if(.5<=a)a=Math.round(a),g=this.getLinearTickPositions(a,u,v);
|
|
else if(.08<=a)for(var k=Math.floor(u),h,m,b,c,f,p=.3<a?[1,2,4]:.15<a?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9];k<v+1&&!f;k++)for(m=p.length,h=0;h<m&&!f;h++)b=this.log2lin(this.lin2log(k)*p[h]),b>u&&(!q||c<=v)&&void 0!==c&&g.push(c),c>v&&(f=!0),c=b;else u=this.lin2log(u),v=this.lin2log(v),a=q?this.getMinorTickInterval():p.tickInterval,a=d("auto"===a?null:a,this._minorAutoInterval,p.tickPixelInterval/(q?5:1)*(v-u)/((q?k/this.tickPositions.length:k)||1)),a=n(a,null,C(a)),g=D(this.getLinearTickPositions(a,u,v),
|
|
this.log2lin),q||(this._minorAutoInterval=a/5);q||(this.tickInterval=a);return g};B.prototype.log2lin=function(a){return Math.log(a)/Math.LN10};B.prototype.lin2log=function(a){return Math.pow(10,a)}})(M);(function(a,B){var C=a.arrayMax,D=a.arrayMin,n=a.defined,d=a.destroyObjectProperties,k=a.each,u=a.erase,v=a.merge,q=a.pick;a.PlotLineOrBand=function(a,d){this.axis=a;d&&(this.options=d,this.id=d.id)};a.PlotLineOrBand.prototype={render:function(){a.fireEvent(this,"render");var d=this,k=d.axis,g=k.horiz,
|
|
h=d.options,m=h.label,b=d.label,c=h.to,f=h.from,e=h.value,w=n(f)&&n(c),G=n(e),t=d.svgElem,K=!t,A=[],F=h.color,r=q(h.zIndex,0),I=h.events,A={"class":"highcharts-plot-"+(w?"band ":"line ")+(h.className||"")},E={},L=k.chart.renderer,J=w?"bands":"lines";k.isLog&&(f=k.log2lin(f),c=k.log2lin(c),e=k.log2lin(e));G?(A.stroke=F,A["stroke-width"]=h.width,h.dashStyle&&(A.dashstyle=h.dashStyle)):w&&(F&&(A.fill=F),h.borderWidth&&(A.stroke=h.borderColor,A["stroke-width"]=h.borderWidth));E.zIndex=r;J+="-"+r;(F=k.plotLinesAndBandsGroups[J])||
|
|
(k.plotLinesAndBandsGroups[J]=F=L.g("plot-"+J).attr(E).add());K&&(d.svgElem=t=L.path().attr(A).add(F));if(G)A=k.getPlotLinePath(e,t.strokeWidth());else if(w)A=k.getPlotBandPath(f,c,h);else return;K&&A&&A.length?(t.attr({d:A}),I&&a.objectEach(I,function(a,b){t.on(b,function(a){I[b].apply(d,[a])})})):t&&(A?(t.show(),t.animate({d:A})):(t.hide(),b&&(d.label=b=b.destroy())));m&&n(m.text)&&A&&A.length&&0<k.width&&0<k.height&&!A.isFlat?(m=v({align:g&&w&&"center",x:g?!w&&4:10,verticalAlign:!g&&w&&"middle",
|
|
y:g?w?16:10:w?6:-4,rotation:g&&!w&&90},m),this.renderLabel(m,A,w,r)):b&&b.hide();return d},renderLabel:function(a,d,g,h){var m=this.label,b=this.axis.chart.renderer;m||(m={align:a.textAlign||a.align,rotation:a.rotation,"class":"highcharts-plot-"+(g?"band":"line")+"-label "+(a.className||"")},m.zIndex=h,this.label=m=b.text(a.text,0,0,a.useHTML).attr(m).add(),m.css(a.style));h=d.xBounds||[d[1],d[4],g?d[6]:d[1]];d=d.yBounds||[d[2],d[5],g?d[7]:d[2]];g=D(h);b=D(d);m.align(a,!1,{x:g,y:b,width:C(h)-g,height:C(d)-
|
|
b});m.show()},destroy:function(){u(this.axis.plotLinesAndBands,this);delete this.axis;d(this)}};a.extend(B.prototype,{getPlotBandPath:function(a,d){var g=this.getPlotLinePath(d,null,null,!0),h=this.getPlotLinePath(a,null,null,!0),m=[],b=this.horiz,c=1,f;a=a<this.min&&d<this.min||a>this.max&&d>this.max;if(h&&g)for(a&&(f=h.toString()===g.toString(),c=0),a=0;a<h.length;a+=6)b&&g[a+1]===h[a+1]?(g[a+1]+=c,g[a+4]+=c):b||g[a+2]!==h[a+2]||(g[a+2]+=c,g[a+5]+=c),m.push("M",h[a+1],h[a+2],"L",h[a+4],h[a+5],g[a+
|
|
4],g[a+5],g[a+1],g[a+2],"z"),m.isFlat=f;return m},addPlotBand:function(a){return this.addPlotBandOrLine(a,"plotBands")},addPlotLine:function(a){return this.addPlotBandOrLine(a,"plotLines")},addPlotBandOrLine:function(d,k){var g=(new a.PlotLineOrBand(this,d)).render(),h=this.userOptions;g&&(k&&(h[k]=h[k]||[],h[k].push(d)),this.plotLinesAndBands.push(g));return g},removePlotBandOrLine:function(a){for(var d=this.plotLinesAndBands,g=this.options,h=this.userOptions,m=d.length;m--;)d[m].id===a&&d[m].destroy();
|
|
k([g.plotLines||[],h.plotLines||[],g.plotBands||[],h.plotBands||[]],function(b){for(m=b.length;m--;)b[m].id===a&&u(b,b[m])})},removePlotBand:function(a){this.removePlotBandOrLine(a)},removePlotLine:function(a){this.removePlotBandOrLine(a)}})})(M,W);(function(a){var B=a.doc,C=a.each,D=a.extend,n=a.format,d=a.isNumber,k=a.map,u=a.merge,v=a.pick,q=a.splat,p=a.syncTimeout,y=a.timeUnits;a.Tooltip=function(){this.init.apply(this,arguments)};a.Tooltip.prototype={init:function(a,d){this.chart=a;this.options=
|
|
d;this.crosshairs=[];this.now={x:0,y:0};this.isHidden=!0;this.split=d.split&&!a.inverted;this.shared=d.shared||this.split;this.outside=d.outside&&!this.split},cleanSplit:function(a){C(this.chart.series,function(d){var h=d&&d.tt;h&&(!h.isActive||a?d.tt=h.destroy():h.isActive=!1)})},getLabel:function(){var d=this.chart.renderer,h=this.options,m;this.label||(this.outside&&(this.container=m=a.doc.createElement("div"),m.className="highcharts-tooltip-container",a.css(m,{position:"absolute",top:"1px",pointerEvents:h.style&&
|
|
h.style.pointerEvents}),a.doc.body.appendChild(m),this.renderer=d=new a.Renderer(m,0,0)),this.split?this.label=d.g("tooltip"):(this.label=d.label("",0,0,h.shape||"callout",null,null,h.useHTML,null,"tooltip").attr({padding:h.padding,r:h.borderRadius}),this.label.attr({fill:h.backgroundColor,"stroke-width":h.borderWidth}).css(h.style).shadow(h.shadow)),this.outside&&(this.label.attr({x:this.distance,y:this.distance}),this.label.xSetter=function(a){m.style.left=a+"px"},this.label.ySetter=function(a){m.style.top=
|
|
a+"px"}),this.label.attr({zIndex:8}).add());return this.label},update:function(a){this.destroy();u(!0,this.chart.options.tooltip.userOptions,a);this.init(this.chart,u(!0,this.options,a))},destroy:function(){this.label&&(this.label=this.label.destroy());this.split&&this.tt&&(this.cleanSplit(this.chart,!0),this.tt=this.tt.destroy());this.renderer&&(this.renderer=this.renderer.destroy(),a.discardElement(this.container));a.clearTimeout(this.hideTimer);a.clearTimeout(this.tooltipTimeout)},move:function(d,
|
|
h,m,b){var c=this,f=c.now,e=!1!==c.options.animation&&!c.isHidden&&(1<Math.abs(d-f.x)||1<Math.abs(h-f.y)),g=c.followPointer||1<c.len;D(f,{x:e?(2*f.x+d)/3:d,y:e?(f.y+h)/2:h,anchorX:g?void 0:e?(2*f.anchorX+m)/3:m,anchorY:g?void 0:e?(f.anchorY+b)/2:b});c.getLabel().attr(f);e&&(a.clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){c&&c.move(d,h,m,b)},32))},hide:function(d){var h=this;a.clearTimeout(this.hideTimer);d=v(d,this.options.hideDelay,500);this.isHidden||(this.hideTimer=
|
|
p(function(){h.getLabel()[d?"fadeOut":"hide"]();h.isHidden=!0},d))},getAnchor:function(a,d){var h=this.chart,b=h.pointer,c=h.inverted,f=h.plotTop,e=h.plotLeft,g=0,p=0,t,n;a=q(a);this.followPointer&&d?(void 0===d.chartX&&(d=b.normalize(d)),a=[d.chartX-h.plotLeft,d.chartY-f]):a[0].tooltipPos?a=a[0].tooltipPos:(C(a,function(a){t=a.series.yAxis;n=a.series.xAxis;g+=a.plotX+(!c&&n?n.left-e:0);p+=(a.plotLow?(a.plotLow+a.plotHigh)/2:a.plotY)+(!c&&t?t.top-f:0)}),g/=a.length,p/=a.length,a=[c?h.plotWidth-p:
|
|
g,this.shared&&!c&&1<a.length&&d?d.chartY-f:c?h.plotHeight-g:p]);return k(a,Math.round)},getPosition:function(a,d,m){var b=this.chart,c=this.distance,f={},e=b.inverted&&m.h||0,h,g=this.outside,t=g?B.documentElement.clientWidth-2*c:b.chartWidth,p=g?Math.max(B.body.scrollHeight,B.documentElement.scrollHeight,B.body.offsetHeight,B.documentElement.offsetHeight,B.documentElement.clientHeight):b.chartHeight,A=b.pointer.chartPosition,k=["y",p,d,(g?A.top-c:0)+m.plotY+b.plotTop,g?0:b.plotTop,g?p:b.plotTop+
|
|
b.plotHeight],r=["x",t,a,(g?A.left-c:0)+m.plotX+b.plotLeft,g?0:b.plotLeft,g?t:b.plotLeft+b.plotWidth],I=!this.followPointer&&v(m.ttBelow,!b.inverted===!!m.negative),E=function(a,b,l,r,d,h){var t=l<r-c,g=r+c+l<b,m=r-c-l;r+=c;if(I&&g)f[a]=r;else if(!I&&t)f[a]=m;else if(t)f[a]=Math.min(h-l,0>m-e?m:m-e);else if(g)f[a]=Math.max(d,r+e+l>b?r:r+e);else return!1},q=function(a,b,e,l){var r;l<c||l>b-c?r=!1:f[a]=l<e/2?1:l>b-e/2?b-e-2:l-e/2;return r},n=function(a){var b=k;k=r;r=b;h=a},l=function(){!1!==E.apply(0,
|
|
k)?!1!==q.apply(0,r)||h||(n(!0),l()):h?f.x=f.y=0:(n(!0),l())};(b.inverted||1<this.len)&&n();l();return f},defaultFormatter:function(a){var d=this.points||q(this),g;g=[a.tooltipFooterHeaderFormatter(d[0])];g=g.concat(a.bodyFormatter(d));g.push(a.tooltipFooterHeaderFormatter(d[0],!0));return g},refresh:function(d,h){var g,b=this.options,c,f=d,e,w={},p=[];g=b.formatter||this.defaultFormatter;var w=this.shared,t;b.enabled&&(a.clearTimeout(this.hideTimer),this.followPointer=q(f)[0].series.tooltipOptions.followPointer,
|
|
e=this.getAnchor(f,h),h=e[0],c=e[1],!w||f.series&&f.series.noSharedTooltip?w=f.getLabelConfig():(C(f,function(a){a.setState("hover");p.push(a.getLabelConfig())}),w={x:f[0].category,y:f[0].y},w.points=p,f=f[0]),this.len=p.length,w=g.call(w,this),t=f.series,this.distance=v(t.tooltipOptions.distance,16),!1===w?this.hide():(g=this.getLabel(),this.isHidden&&g.attr({opacity:1}).show(),this.split?this.renderSplit(w,q(d)):(b.style.width||g.css({width:this.chart.spacingBox.width}),g.attr({text:w&&w.join?w.join(""):
|
|
w}),g.removeClass(/highcharts-color-[\d]+/g).addClass("highcharts-color-"+v(f.colorIndex,t.colorIndex)),g.attr({stroke:b.borderColor||f.color||t.color||"#666666"}),this.updatePosition({plotX:h,plotY:c,negative:f.negative,ttBelow:f.ttBelow,h:e[2]||0})),this.isHidden=!1))},renderSplit:function(d,h){var g=this,b=[],c=this.chart,f=c.renderer,e=!0,w=this.options,p=0,t,k=this.getLabel(),A=c.plotTop;a.isString(d)&&(d=[!1,d]);C(d.slice(0,h.length+1),function(a,r){if(!1!==a){r=h[r-1]||{isHeader:!0,plotX:h[0].plotX};
|
|
var d=r.series||g,m=d.tt,q=r.series||{},n="highcharts-color-"+v(r.colorIndex,q.colorIndex,"none");m||(d.tt=m=f.label(null,null,null,"callout",null,null,w.useHTML).addClass("highcharts-tooltip-box "+n+(r.isHeader?" highcharts-tooltip-header":"")).attr({padding:w.padding,r:w.borderRadius,fill:w.backgroundColor,stroke:w.borderColor||r.color||q.color||"#333333","stroke-width":w.borderWidth}).add(k));m.isActive=!0;m.attr({text:a});m.css(w.style).shadow(w.shadow);a=m.getBBox();q=a.width+m.strokeWidth();
|
|
r.isHeader?(p=a.height,c.xAxis[0].opposite&&(t=!0,A-=p),q=Math.max(0,Math.min(r.plotX+c.plotLeft-q/2,c.chartWidth+(c.scrollablePixels?c.scrollablePixels-c.marginRight:0)-q))):q=r.plotX+c.plotLeft-v(w.distance,16)-q;0>q&&(e=!1);a=(r.series&&r.series.yAxis&&r.series.yAxis.pos)+(r.plotY||0);a-=A;r.isHeader&&(a=t?-p:c.plotHeight+p);b.push({target:a,rank:r.isHeader?1:0,size:d.tt.getBBox().height+1,point:r,x:q,tt:m})}});this.cleanSplit();a.distribute(b,c.plotHeight+p);C(b,function(a){var b=a.point,f=b.series;
|
|
a.tt.attr({visibility:void 0===a.pos?"hidden":"inherit",x:e||b.isHeader?a.x:b.plotX+c.plotLeft+v(w.distance,16),y:a.pos+A,anchorX:b.isHeader?b.plotX+c.plotLeft:b.plotX+f.xAxis.pos,anchorY:b.isHeader?c.plotTop+c.plotHeight/2:b.plotY+f.yAxis.pos})})},updatePosition:function(a){var d=this.chart,g=this.getLabel(),b=(this.options.positioner||this.getPosition).call(this,g.width,g.height,a),c=a.plotX+d.plotLeft;a=a.plotY+d.plotTop;var f;this.outside&&(f=(this.options.borderWidth||0)+2*this.distance,this.renderer.setSize(g.width+
|
|
f,g.height+f,!1),c+=d.pointer.chartPosition.left-b.x,a+=d.pointer.chartPosition.top-b.y);this.move(Math.round(b.x),Math.round(b.y||0),c,a)},getDateFormat:function(a,d,m,b){var c=this.chart.time,f=c.dateFormat("%m-%d %H:%M:%S.%L",d),e,h,g={millisecond:15,second:12,minute:9,hour:6,day:3},t="millisecond";for(h in y){if(a===y.week&&+c.dateFormat("%w",d)===m&&"00:00:00.000"===f.substr(6)){h="week";break}if(y[h]>a){h=t;break}if(g[h]&&f.substr(g[h])!=="01-01 00:00:00.000".substr(g[h]))break;"week"!==h&&
|
|
(t=h)}h&&(e=c.resolveDTLFormat(b[h]).main);return e},getXDateFormat:function(a,d,m){d=d.dateTimeLabelFormats;var b=m&&m.closestPointRange;return(b?this.getDateFormat(b,a.x,m.options.startOfWeek,d):d.day)||d.year},tooltipFooterHeaderFormatter:function(a,h){h=h?"footer":"header";var g=a.series,b=g.tooltipOptions,c=b.xDateFormat,f=g.xAxis,e=f&&"datetime"===f.options.type&&d(a.key),w=b[h+"Format"];e&&!c&&(c=this.getXDateFormat(a,b,f));e&&c&&C(a.point&&a.point.tooltipDateKeys||["key"],function(a){w=w.replace("{point."+
|
|
a+"}","{point."+a+":"+c+"}")});return n(w,{point:a,series:g},this.chart.time)},bodyFormatter:function(a){return k(a,function(a){var d=a.series.tooltipOptions;return(d[(a.point.formatPrefix||"point")+"Formatter"]||a.point.tooltipFormatter).call(a.point,d[(a.point.formatPrefix||"point")+"Format"])})}}})(M);(function(a){var B=a.addEvent,C=a.attr,D=a.charts,n=a.color,d=a.css,k=a.defined,u=a.each,v=a.extend,q=a.find,p=a.fireEvent,y=a.isNumber,g=a.isObject,h=a.offset,m=a.pick,b=a.splat,c=a.Tooltip;a.Pointer=
|
|
function(a,b){this.init(a,b)};a.Pointer.prototype={init:function(a,b){this.options=b;this.chart=a;this.runChartClick=b.chart.events&&!!b.chart.events.click;this.pinchDown=[];this.lastValidTouch={};c&&(a.tooltip=new c(a,b.tooltip),this.followTouchMove=m(b.tooltip.followTouchMove,!0));this.setDOMEvents()},zoomOption:function(a){var b=this.chart,c=b.options.chart,f=c.zoomType||"",b=b.inverted;/touch/.test(a.type)&&(f=m(c.pinchType,f));this.zoomX=a=/x/.test(f);this.zoomY=f=/y/.test(f);this.zoomHor=a&&
|
|
!b||f&&b;this.zoomVert=f&&!b||a&&b;this.hasZoom=a||f},normalize:function(a,b){var c;c=a.touches?a.touches.length?a.touches.item(0):a.changedTouches[0]:a;b||(this.chartPosition=b=h(this.chart.container));return v(a,{chartX:Math.round(c.pageX-b.left),chartY:Math.round(c.pageY-b.top)})},getCoordinates:function(a){var b={xAxis:[],yAxis:[]};u(this.chart.axes,function(c){b[c.isXAxis?"xAxis":"yAxis"].push({axis:c,value:c.toValue(a[c.horiz?"chartX":"chartY"])})});return b},findNearestKDPoint:function(a,b,
|
|
c){var f;u(a,function(a){var e=!(a.noSharedTooltip&&b)&&0>a.options.findNearestPointBy.indexOf("y");a=a.searchPoint(c,e);if((e=g(a,!0))&&!(e=!g(f,!0)))var e=f.distX-a.distX,d=f.dist-a.dist,h=(a.series.group&&a.series.group.zIndex)-(f.series.group&&f.series.group.zIndex),e=0<(0!==e&&b?e:0!==d?d:0!==h?h:f.series.index>a.series.index?-1:1);e&&(f=a)});return f},getPointFromEvent:function(a){a=a.target;for(var b;a&&!b;)b=a.point,a=a.parentNode;return b},getChartCoordinatesFromPoint:function(a,b){var c=
|
|
a.series,f=c.xAxis,c=c.yAxis,e=m(a.clientX,a.plotX),d=a.shapeArgs;if(f&&c)return b?{chartX:f.len+f.pos-e,chartY:c.len+c.pos-a.plotY}:{chartX:e+f.pos,chartY:a.plotY+c.pos};if(d&&d.x&&d.y)return{chartX:d.x,chartY:d.y}},getHoverData:function(b,c,d,h,t,p,k){var f,e=[],w=k&&k.isBoosting;h=!(!h||!b);k=c&&!c.stickyTracking?[c]:a.grep(d,function(a){return a.visible&&!(!t&&a.directTouch)&&m(a.options.enableMouseTracking,!0)&&a.stickyTracking});c=(f=h?b:this.findNearestKDPoint(k,t,p))&&f.series;f&&(t&&!c.noSharedTooltip?
|
|
(k=a.grep(d,function(a){return a.visible&&!(!t&&a.directTouch)&&m(a.options.enableMouseTracking,!0)&&!a.noSharedTooltip}),u(k,function(a){var b=q(a.points,function(a){return a.x===f.x&&!a.isNull});g(b)&&(w&&(b=a.getPoint(b)),e.push(b))})):e.push(f));return{hoverPoint:f,hoverSeries:c,hoverPoints:e}},runPointActions:function(b,c){var f=this.chart,e=f.tooltip&&f.tooltip.options.enabled?f.tooltip:void 0,d=e?e.shared:!1,h=c||f.hoverPoint,g=h&&h.series||f.hoverSeries,g=this.getHoverData(h,g,f.series,"touchmove"!==
|
|
b.type&&(!!c||g&&g.directTouch&&this.isDirectTouch),d,b,{isBoosting:f.isBoosting}),p,h=g.hoverPoint;p=g.hoverPoints;c=(g=g.hoverSeries)&&g.tooltipOptions.followPointer;d=d&&g&&!g.noSharedTooltip;if(h&&(h!==f.hoverPoint||e&&e.isHidden)){u(f.hoverPoints||[],function(b){-1===a.inArray(b,p)&&b.setState()});u(p||[],function(a){a.setState("hover")});if(f.hoverSeries!==g)g.onMouseOver();f.hoverPoint&&f.hoverPoint.firePointEvent("mouseOut");if(!h.series)return;h.firePointEvent("mouseOver");f.hoverPoints=
|
|
p;f.hoverPoint=h;e&&e.refresh(d?p:h,b)}else c&&e&&!e.isHidden&&(h=e.getAnchor([{}],b),e.updatePosition({plotX:h[0],plotY:h[1]}));this.unDocMouseMove||(this.unDocMouseMove=B(f.container.ownerDocument,"mousemove",function(b){var c=D[a.hoverChartIndex];if(c)c.pointer.onDocumentMouseMove(b)}));u(f.axes,function(c){var f=m(c.crosshair.snap,!0),e=f?a.find(p,function(a){return a.series[c.coll]===c}):void 0;e||!f?c.drawCrosshair(b,e):c.hideCrosshair()})},reset:function(a,c){var f=this.chart,e=f.hoverSeries,
|
|
d=f.hoverPoint,h=f.hoverPoints,g=f.tooltip,m=g&&g.shared?h:d;a&&m&&u(b(m),function(b){b.series.isCartesian&&void 0===b.plotX&&(a=!1)});if(a)g&&m&&(g.refresh(m),g.shared&&h?u(h,function(a){a.setState(a.state,!0);a.series.isCartesian&&(a.series.xAxis.crosshair&&a.series.xAxis.drawCrosshair(null,a),a.series.yAxis.crosshair&&a.series.yAxis.drawCrosshair(null,a))}):d&&(d.setState(d.state,!0),u(f.axes,function(a){a.crosshair&&a.drawCrosshair(null,d)})));else{if(d)d.onMouseOut();h&&u(h,function(a){a.setState()});
|
|
if(e)e.onMouseOut();g&&g.hide(c);this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove());u(f.axes,function(a){a.hideCrosshair()});this.hoverX=f.hoverPoints=f.hoverPoint=null}},scaleGroups:function(a,b){var c=this.chart,f;u(c.series,function(e){f=a||e.getPlotBox();e.xAxis&&e.xAxis.zoomEnabled&&e.group&&(e.group.attr(f),e.markerGroup&&(e.markerGroup.attr(f),e.markerGroup.clip(b?c.clipRect:null)),e.dataLabelsGroup&&e.dataLabelsGroup.attr(f))});c.clipRect.attr(b||c.clipBox)},dragStart:function(a){var b=
|
|
this.chart;b.mouseIsDown=a.type;b.cancelClick=!1;b.mouseDownX=this.mouseDownX=a.chartX;b.mouseDownY=this.mouseDownY=a.chartY},drag:function(a){var b=this.chart,c=b.options.chart,f=a.chartX,d=a.chartY,h=this.zoomHor,g=this.zoomVert,m=b.plotLeft,r=b.plotTop,p=b.plotWidth,E=b.plotHeight,k,q=this.selectionMarker,l=this.mouseDownX,x=this.mouseDownY,u=c.panKey&&a[c.panKey+"Key"];q&&q.touch||(f<m?f=m:f>m+p&&(f=m+p),d<r?d=r:d>r+E&&(d=r+E),this.hasDragged=Math.sqrt(Math.pow(l-f,2)+Math.pow(x-d,2)),10<this.hasDragged&&
|
|
(k=b.isInsidePlot(l-m,x-r),b.hasCartesianSeries&&(this.zoomX||this.zoomY)&&k&&!u&&!q&&(this.selectionMarker=q=b.renderer.rect(m,r,h?1:p,g?1:E,0).attr({fill:c.selectionMarkerFill||n("#335cad").setOpacity(.25).get(),"class":"highcharts-selection-marker",zIndex:7}).add()),q&&h&&(f-=l,q.attr({width:Math.abs(f),x:(0<f?0:f)+l})),q&&g&&(f=d-x,q.attr({height:Math.abs(f),y:(0<f?0:f)+x})),k&&!q&&c.panning&&b.pan(a,c.panning)))},drop:function(a){var b=this,c=this.chart,f=this.hasPinched;if(this.selectionMarker){var h=
|
|
{originalEvent:a,xAxis:[],yAxis:[]},g=this.selectionMarker,m=g.attr?g.attr("x"):g.x,q=g.attr?g.attr("y"):g.y,r=g.attr?g.attr("width"):g.width,I=g.attr?g.attr("height"):g.height,E;if(this.hasDragged||f)u(c.axes,function(c){if(c.zoomEnabled&&k(c.min)&&(f||b[{xAxis:"zoomX",yAxis:"zoomY"}[c.coll]])){var e=c.horiz,l="touchend"===a.type?c.minPixelPadding:0,d=c.toValue((e?m:q)+l),e=c.toValue((e?m+r:q+I)-l);h[c.coll].push({axis:c,min:Math.min(d,e),max:Math.max(d,e)});E=!0}}),E&&p(c,"selection",h,function(a){c.zoom(v(a,
|
|
f?{animation:!1}:null))});y(c.index)&&(this.selectionMarker=this.selectionMarker.destroy());f&&this.scaleGroups()}c&&y(c.index)&&(d(c.container,{cursor:c._cursor}),c.cancelClick=10<this.hasDragged,c.mouseIsDown=this.hasDragged=this.hasPinched=!1,this.pinchDown=[])},onContainerMouseDown:function(a){a=this.normalize(a);2!==a.button&&(this.zoomOption(a),a.preventDefault&&a.preventDefault(),this.dragStart(a))},onDocumentMouseUp:function(b){D[a.hoverChartIndex]&&D[a.hoverChartIndex].pointer.drop(b)},onDocumentMouseMove:function(a){var b=
|
|
this.chart,c=this.chartPosition;a=this.normalize(a,c);!c||this.inClass(a.target,"highcharts-tracker")||b.isInsidePlot(a.chartX-b.plotLeft,a.chartY-b.plotTop)||this.reset()},onContainerMouseLeave:function(b){var c=D[a.hoverChartIndex];c&&(b.relatedTarget||b.toElement)&&(c.pointer.reset(),c.pointer.chartPosition=null)},onContainerMouseMove:function(b){var c=this.chart;k(a.hoverChartIndex)&&D[a.hoverChartIndex]&&D[a.hoverChartIndex].mouseIsDown||(a.hoverChartIndex=c.index);b=this.normalize(b);b.returnValue=
|
|
!1;"mousedown"===c.mouseIsDown&&this.drag(b);!this.inClass(b.target,"highcharts-tracker")&&!c.isInsidePlot(b.chartX-c.plotLeft,b.chartY-c.plotTop)||c.openMenu||this.runPointActions(b)},inClass:function(a,b){for(var c;a;){if(c=C(a,"class")){if(-1!==c.indexOf(b))return!0;if(-1!==c.indexOf("highcharts-container"))return!1}a=a.parentNode}},onTrackerMouseOut:function(a){var b=this.chart.hoverSeries;a=a.relatedTarget||a.toElement;this.isDirectTouch=!1;if(!(!b||!a||b.stickyTracking||this.inClass(a,"highcharts-tooltip")||
|
|
this.inClass(a,"highcharts-series-"+b.index)&&this.inClass(a,"highcharts-tracker")))b.onMouseOut()},onContainerClick:function(a){var b=this.chart,c=b.hoverPoint,f=b.plotLeft,d=b.plotTop;a=this.normalize(a);b.cancelClick||(c&&this.inClass(a.target,"highcharts-tracker")?(p(c.series,"click",v(a,{point:c})),b.hoverPoint&&c.firePointEvent("click",a)):(v(a,this.getCoordinates(a)),b.isInsidePlot(a.chartX-f,a.chartY-d)&&p(b,"click",a)))},setDOMEvents:function(){var b=this,c=b.chart.container,d=c.ownerDocument;
|
|
c.onmousedown=function(a){b.onContainerMouseDown(a)};c.onmousemove=function(a){b.onContainerMouseMove(a)};c.onclick=function(a){b.onContainerClick(a)};this.unbindContainerMouseLeave=B(c,"mouseleave",b.onContainerMouseLeave);a.unbindDocumentMouseUp||(a.unbindDocumentMouseUp=B(d,"mouseup",b.onDocumentMouseUp));a.hasTouch&&(c.ontouchstart=function(a){b.onContainerTouchStart(a)},c.ontouchmove=function(a){b.onContainerTouchMove(a)},a.unbindDocumentTouchEnd||(a.unbindDocumentTouchEnd=B(d,"touchend",b.onDocumentTouchEnd)))},
|
|
destroy:function(){var b=this;b.unDocMouseMove&&b.unDocMouseMove();this.unbindContainerMouseLeave();a.chartCount||(a.unbindDocumentMouseUp&&(a.unbindDocumentMouseUp=a.unbindDocumentMouseUp()),a.unbindDocumentTouchEnd&&(a.unbindDocumentTouchEnd=a.unbindDocumentTouchEnd()));clearInterval(b.tooltipTimeout);a.objectEach(b,function(a,c){b[c]=null})}}})(M);(function(a){var B=a.charts,C=a.each,D=a.extend,n=a.map,d=a.noop,k=a.pick;D(a.Pointer.prototype,{pinchTranslate:function(a,d,k,p,n,g){this.zoomHor&&
|
|
this.pinchTranslateDirection(!0,a,d,k,p,n,g);this.zoomVert&&this.pinchTranslateDirection(!1,a,d,k,p,n,g)},pinchTranslateDirection:function(a,d,k,p,n,g,h,m){var b=this.chart,c=a?"x":"y",f=a?"X":"Y",e="chart"+f,w=a?"width":"height",q=b["plot"+(a?"Left":"Top")],t,u,A=m||1,F=b.inverted,r=b.bounds[a?"h":"v"],I=1===d.length,E=d[0][e],L=k[0][e],J=!I&&d[1][e],l=!I&&k[1][e],x;k=function(){!I&&20<Math.abs(E-J)&&(A=m||Math.abs(L-l)/Math.abs(E-J));u=(q-L)/A+E;t=b["plot"+(a?"Width":"Height")]/A};k();d=u;d<r.min?
|
|
(d=r.min,x=!0):d+t>r.max&&(d=r.max-t,x=!0);x?(L-=.8*(L-h[c][0]),I||(l-=.8*(l-h[c][1])),k()):h[c]=[L,l];F||(g[c]=u-q,g[w]=t);g=F?1/A:A;n[w]=t;n[c]=d;p[F?a?"scaleY":"scaleX":"scale"+f]=A;p["translate"+f]=g*q+(L-g*E)},pinch:function(a){var u=this,q=u.chart,p=u.pinchDown,y=a.touches,g=y.length,h=u.lastValidTouch,m=u.hasZoom,b=u.selectionMarker,c={},f=1===g&&(u.inClass(a.target,"highcharts-tracker")&&q.runTrackerClick||u.runChartClick),e={};1<g&&(u.initiated=!0);m&&u.initiated&&!f&&a.preventDefault();
|
|
n(y,function(a){return u.normalize(a)});"touchstart"===a.type?(C(y,function(a,b){p[b]={chartX:a.chartX,chartY:a.chartY}}),h.x=[p[0].chartX,p[1]&&p[1].chartX],h.y=[p[0].chartY,p[1]&&p[1].chartY],C(q.axes,function(a){if(a.zoomEnabled){var b=q.bounds[a.horiz?"h":"v"],c=a.minPixelPadding,f=a.toPixels(k(a.options.min,a.dataMin)),e=a.toPixels(k(a.options.max,a.dataMax)),d=Math.max(f,e);b.min=Math.min(a.pos,Math.min(f,e)-c);b.max=Math.max(a.pos+a.len,d+c)}}),u.res=!0):u.followTouchMove&&1===g?this.runPointActions(u.normalize(a)):
|
|
p.length&&(b||(u.selectionMarker=b=D({destroy:d,touch:!0},q.plotBox)),u.pinchTranslate(p,y,c,b,e,h),u.hasPinched=m,u.scaleGroups(c,e),u.res&&(u.res=!1,this.reset(!1,0)))},touch:function(d,n){var q=this.chart,p,u;if(q.index!==a.hoverChartIndex)this.onContainerMouseLeave({relatedTarget:!0});a.hoverChartIndex=q.index;1===d.touches.length?(d=this.normalize(d),(u=q.isInsidePlot(d.chartX-q.plotLeft,d.chartY-q.plotTop))&&!q.openMenu?(n&&this.runPointActions(d),"touchmove"===d.type&&(n=this.pinchDown,p=n[0]?
|
|
4<=Math.sqrt(Math.pow(n[0].chartX-d.chartX,2)+Math.pow(n[0].chartY-d.chartY,2)):!1),k(p,!0)&&this.pinch(d)):n&&this.reset()):2===d.touches.length&&this.pinch(d)},onContainerTouchStart:function(a){this.zoomOption(a);this.touch(a,!0)},onContainerTouchMove:function(a){this.touch(a)},onDocumentTouchEnd:function(d){B[a.hoverChartIndex]&&B[a.hoverChartIndex].pointer.drop(d)}})})(M);(function(a){var B=a.addEvent,C=a.charts,D=a.css,n=a.doc,d=a.extend,k=a.noop,u=a.Pointer,v=a.removeEvent,q=a.win,p=a.wrap;
|
|
if(!a.hasTouch&&(q.PointerEvent||q.MSPointerEvent)){var y={},g=!!q.PointerEvent,h=function(){var b=[];b.item=function(a){return this[a]};a.objectEach(y,function(a){b.push({pageX:a.pageX,pageY:a.pageY,target:a.target})});return b},m=function(b,c,f,e){"touch"!==b.pointerType&&b.pointerType!==b.MSPOINTER_TYPE_TOUCH||!C[a.hoverChartIndex]||(e(b),e=C[a.hoverChartIndex].pointer,e[c]({type:f,target:b.currentTarget,preventDefault:k,touches:h()}))};d(u.prototype,{onContainerPointerDown:function(a){m(a,"onContainerTouchStart",
|
|
"touchstart",function(a){y[a.pointerId]={pageX:a.pageX,pageY:a.pageY,target:a.currentTarget}})},onContainerPointerMove:function(a){m(a,"onContainerTouchMove","touchmove",function(a){y[a.pointerId]={pageX:a.pageX,pageY:a.pageY};y[a.pointerId].target||(y[a.pointerId].target=a.currentTarget)})},onDocumentPointerUp:function(a){m(a,"onDocumentTouchEnd","touchend",function(a){delete y[a.pointerId]})},batchMSEvents:function(a){a(this.chart.container,g?"pointerdown":"MSPointerDown",this.onContainerPointerDown);
|
|
a(this.chart.container,g?"pointermove":"MSPointerMove",this.onContainerPointerMove);a(n,g?"pointerup":"MSPointerUp",this.onDocumentPointerUp)}});p(u.prototype,"init",function(a,c,f){a.call(this,c,f);this.hasZoom&&D(c.container,{"-ms-touch-action":"none","touch-action":"none"})});p(u.prototype,"setDOMEvents",function(a){a.apply(this);(this.hasZoom||this.followTouchMove)&&this.batchMSEvents(B)});p(u.prototype,"destroy",function(a){this.batchMSEvents(v);a.call(this)})}})(M);(function(a){var B=a.addEvent,
|
|
C=a.css,D=a.discardElement,n=a.defined,d=a.each,k=a.fireEvent,u=a.isFirefox,v=a.marginNames,q=a.merge,p=a.pick,y=a.setAnimation,g=a.stableSort,h=a.win,m=a.wrap;a.Legend=function(a,c){this.init(a,c)};a.Legend.prototype={init:function(a,c){this.chart=a;this.setOptions(c);c.enabled&&(this.render(),B(this.chart,"endResize",function(){this.legend.positionCheckboxes()}),this.proximate?this.unchartrender=B(this.chart,"render",function(){this.legend.proximatePositions();this.legend.positionItems()}):this.unchartrender&&
|
|
this.unchartrender())},setOptions:function(a){var b=p(a.padding,8);this.options=a;this.itemStyle=a.itemStyle;this.itemHiddenStyle=q(this.itemStyle,a.itemHiddenStyle);this.itemMarginTop=a.itemMarginTop||0;this.padding=b;this.initialItemY=b-5;this.symbolWidth=p(a.symbolWidth,16);this.pages=[];this.proximate="proximate"===a.layout&&!this.chart.inverted},update:function(a,c){var b=this.chart;this.setOptions(q(!0,this.options,a));this.destroy();b.isDirtyLegend=b.isDirtyBox=!0;p(c,!0)&&b.redraw();k(this,
|
|
"afterUpdate")},colorizeItem:function(a,c){a.legendGroup[c?"removeClass":"addClass"]("highcharts-legend-item-hidden");var b=this.options,e=a.legendItem,d=a.legendLine,h=a.legendSymbol,g=this.itemHiddenStyle.color,b=c?b.itemStyle.color:g,m=c?a.color||g:g,p=a.options&&a.options.marker,q={fill:m};e&&e.css({fill:b,color:b});d&&d.attr({stroke:m});h&&(p&&h.isMarker&&(q=a.pointAttribs(),c||(q.stroke=q.fill=g)),h.attr(q));k(this,"afterColorizeItem",{item:a,visible:c})},positionItems:function(){d(this.allItems,
|
|
this.positionItem,this);this.chart.isResizing||this.positionCheckboxes()},positionItem:function(a){var b=this.options,f=b.symbolPadding,b=!b.rtl,e=a._legendItemPos,d=e[0],e=e[1],h=a.checkbox;if((a=a.legendGroup)&&a.element)a[n(a.translateY)?"animate":"attr"]({translateX:b?d:this.legendWidth-d-2*f-4,translateY:e});h&&(h.x=d,h.y=e)},destroyItem:function(a){var b=a.checkbox;d(["legendItem","legendLine","legendSymbol","legendGroup"],function(b){a[b]&&(a[b]=a[b].destroy())});b&&D(a.checkbox)},destroy:function(){function a(a){this[a]&&
|
|
(this[a]=this[a].destroy())}d(this.getAllItems(),function(b){d(["legendItem","legendGroup"],a,b)});d("clipRect up down pager nav box title group".split(" "),a,this);this.display=null},positionCheckboxes:function(){var a=this.group&&this.group.alignAttr,c,f=this.clipHeight||this.legendHeight,e=this.titleHeight;a&&(c=a.translateY,d(this.allItems,function(b){var d=b.checkbox,h;d&&(h=c+e+d.y+(this.scrollOffset||0)+3,C(d,{left:a.translateX+b.checkboxOffset+d.x-20+"px",top:h+"px",display:this.proximate||
|
|
h>c-6&&h<c+f-6?"":"none"}))},this))},renderTitle:function(){var a=this.options,c=this.padding,f=a.title,e=0;f.text&&(this.title||(this.title=this.chart.renderer.label(f.text,c-3,c-4,null,null,null,a.useHTML,null,"legend-title").attr({zIndex:1}).css(f.style).add(this.group)),a=this.title.getBBox(),e=a.height,this.offsetWidth=a.width,this.contentGroup.attr({translateY:e}));this.titleHeight=e},setText:function(b){var c=this.options;b.legendItem.attr({text:c.labelFormat?a.format(c.labelFormat,b,this.chart.time):
|
|
c.labelFormatter.call(b)})},renderItem:function(a){var b=this.chart,f=b.renderer,e=this.options,d=this.symbolWidth,h=e.symbolPadding,g=this.itemStyle,m=this.itemHiddenStyle,k="horizontal"===e.layout?p(e.itemDistance,20):0,n=!e.rtl,r=a.legendItem,I=!a.series,E=!I&&a.series.drawLegendSymbol?a.series:a,L=E.options,L=this.createCheckboxForItem&&L&&L.showCheckbox,k=d+h+k+(L?20:0),J=e.useHTML,l=a.options.className;r||(a.legendGroup=f.g("legend-item").addClass("highcharts-"+E.type+"-series highcharts-color-"+
|
|
a.colorIndex+(l?" "+l:"")+(I?" highcharts-series-"+a.index:"")).attr({zIndex:1}).add(this.scrollGroup),a.legendItem=r=f.text("",n?d+h:-h,this.baseline||0,J).css(q(a.visible?g:m)).attr({align:n?"left":"right",zIndex:2}).add(a.legendGroup),this.baseline||(d=g.fontSize,this.fontMetrics=f.fontMetrics(d,r),this.baseline=this.fontMetrics.f+3+this.itemMarginTop,r.attr("y",this.baseline)),this.symbolHeight=e.symbolHeight||this.fontMetrics.f,E.drawLegendSymbol(this,a),this.setItemEvents&&this.setItemEvents(a,
|
|
r,J),L&&this.createCheckboxForItem(a));this.colorizeItem(a,a.visible);g.width||r.css({width:(e.itemWidth||e.width||b.spacingBox.width)-k});this.setText(a);b=r.getBBox();a.itemWidth=a.checkboxOffset=e.itemWidth||a.legendItemWidth||b.width+k;this.maxItemWidth=Math.max(this.maxItemWidth,a.itemWidth);this.totalItemWidth+=a.itemWidth;this.itemHeight=a.itemHeight=Math.round(a.legendItemHeight||b.height||this.symbolHeight)},layoutItem:function(a){var b=this.options,f=this.padding,e="horizontal"===b.layout,
|
|
d=a.itemHeight,h=b.itemMarginBottom||0,g=this.itemMarginTop,m=e?p(b.itemDistance,20):0,k=b.width,q=k||this.chart.spacingBox.width-2*f-b.x,b=b.alignColumns&&this.totalItemWidth>q?this.maxItemWidth:a.itemWidth;e&&this.itemX-f+b>q&&(this.itemX=f,this.itemY+=g+this.lastLineHeight+h,this.lastLineHeight=0);this.lastItemY=g+this.itemY+h;this.lastLineHeight=Math.max(d,this.lastLineHeight);a._legendItemPos=[this.itemX,this.itemY];e?this.itemX+=b:(this.itemY+=g+d+h,this.lastLineHeight=d);this.offsetWidth=k||
|
|
Math.max((e?this.itemX-f-(a.checkbox?0:m):b)+f,this.offsetWidth)},getAllItems:function(){var a=[];d(this.chart.series,function(b){var c=b&&b.options;b&&p(c.showInLegend,n(c.linkedTo)?!1:void 0,!0)&&(a=a.concat(b.legendItems||("point"===c.legendType?b.data:b)))});k(this,"afterGetAllItems",{allItems:a});return a},getAlignment:function(){var a=this.options;return this.proximate?a.align.charAt(0)+"tv":a.floating?"":a.align.charAt(0)+a.verticalAlign.charAt(0)+a.layout.charAt(0)},adjustMargins:function(a,
|
|
c){var b=this.chart,e=this.options,h=this.getAlignment();h&&d([/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/],function(f,d){f.test(h)&&!n(a[d])&&(b[v[d]]=Math.max(b[v[d]],b.legend[(d+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][d]*e[d%2?"x":"y"]+p(e.margin,12)+c[d]+(0===d&&void 0!==b.options.title.margin?b.titleOffset+b.options.title.margin:0)))})},proximatePositions:function(){var b=this.chart,c=[],f="left"===this.options.align;d(this.allItems,function(d){var e,h;e=f;d.xAxis&&d.points&&
|
|
(d.xAxis.options.reversed&&(e=!e),e=a.find(e?d.points:d.points.slice(0).reverse(),function(b){return a.isNumber(b.plotY)}),h=d.legendGroup.getBBox().height,c.push({target:d.visible?(e?e.plotY:d.xAxis.height)-.3*h:b.plotHeight,size:h,item:d}))},this);a.distribute(c,b.plotHeight);d(c,function(a){a.item._legendItemPos[1]=b.plotTop-b.spacing[0]+a.pos})},render:function(){var a=this.chart,c=a.renderer,f=this.group,e,h,m,t=this.box,p=this.options,k=this.padding;this.itemX=k;this.itemY=this.initialItemY;
|
|
this.lastItemY=this.offsetWidth=0;f||(this.group=f=c.g("legend").attr({zIndex:7}).add(),this.contentGroup=c.g().attr({zIndex:1}).add(f),this.scrollGroup=c.g().add(this.contentGroup));this.renderTitle();e=this.getAllItems();g(e,function(a,b){return(a.options&&a.options.legendIndex||0)-(b.options&&b.options.legendIndex||0)});p.reversed&&e.reverse();this.allItems=e;this.display=h=!!e.length;this.itemHeight=this.totalItemWidth=this.maxItemWidth=this.lastLineHeight=0;d(e,this.renderItem,this);d(e,this.layoutItem,
|
|
this);e=(p.width||this.offsetWidth)+k;m=this.lastItemY+this.lastLineHeight+this.titleHeight;m=this.handleOverflow(m);m+=k;t||(this.box=t=c.rect().addClass("highcharts-legend-box").attr({r:p.borderRadius}).add(f),t.isNew=!0);t.attr({stroke:p.borderColor,"stroke-width":p.borderWidth||0,fill:p.backgroundColor||"none"}).shadow(p.shadow);0<e&&0<m&&(t[t.isNew?"attr":"animate"](t.crisp.call({},{x:0,y:0,width:e,height:m},t.strokeWidth())),t.isNew=!1);t[h?"show":"hide"]();this.legendWidth=e;this.legendHeight=
|
|
m;h&&(c=a.spacingBox,/(lth|ct|rth)/.test(this.getAlignment())&&(c=q(c,{y:c.y+a.titleOffset+a.options.title.margin})),f.align(q(p,{width:e,height:m,verticalAlign:this.proximate?"top":p.verticalAlign}),!0,c));this.proximate||this.positionItems()},handleOverflow:function(a){var b=this,f=this.chart,e=f.renderer,h=this.options,g=h.y,m=this.padding,f=f.spacingBox.height+("top"===h.verticalAlign?-g:g)-m,g=h.maxHeight,k,q=this.clipRect,n=h.navigation,r=p(n.animation,!0),I=n.arrowSize||12,E=this.nav,L=this.pages,
|
|
J,l=this.allItems,x=function(a){"number"===typeof a?q.attr({height:a}):q&&(b.clipRect=q.destroy(),b.contentGroup.clip());b.contentGroup.div&&(b.contentGroup.div.style.clip=a?"rect("+m+"px,9999px,"+(m+a)+"px,0)":"auto")};"horizontal"!==h.layout||"middle"===h.verticalAlign||h.floating||(f/=2);g&&(f=Math.min(f,g));L.length=0;a>f&&!1!==n.enabled?(this.clipHeight=k=Math.max(f-20-this.titleHeight-m,0),this.currentPage=p(this.currentPage,1),this.fullHeight=a,d(l,function(a,b){var c=a._legendItemPos[1],f=
|
|
Math.round(a.legendItem.getBBox().height),d=L.length;if(!d||c-L[d-1]>k&&(J||c)!==L[d-1])L.push(J||c),d++;a.pageIx=d-1;J&&(l[b-1].pageIx=d-1);b===l.length-1&&c+f-L[d-1]>k&&(L.push(c),a.pageIx=d);c!==J&&(J=c)}),q||(q=b.clipRect=e.clipRect(0,m,9999,0),b.contentGroup.clip(q)),x(k),E||(this.nav=E=e.g().attr({zIndex:1}).add(this.group),this.up=e.symbol("triangle",0,0,I,I).on("click",function(){b.scroll(-1,r)}).add(E),this.pager=e.text("",15,10).addClass("highcharts-legend-navigation").css(n.style).add(E),
|
|
this.down=e.symbol("triangle-down",0,0,I,I).on("click",function(){b.scroll(1,r)}).add(E)),b.scroll(0),a=f):E&&(x(),this.nav=E.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0);return a},scroll:function(a,c){var b=this.pages,d=b.length;a=this.currentPage+a;var h=this.clipHeight,g=this.options.navigation,m=this.pager,p=this.padding;a>d&&(a=d);0<a&&(void 0!==c&&y(c,this.chart),this.nav.attr({translateX:p,translateY:h+this.padding+7+this.titleHeight,visibility:"visible"}),this.up.attr({"class":1===
|
|
a?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"}),m.attr({text:a+"/"+d}),this.down.attr({x:18+this.pager.getBBox().width,"class":a===d?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"}),this.up.attr({fill:1===a?g.inactiveColor:g.activeColor}).css({cursor:1===a?"default":"pointer"}),this.down.attr({fill:a===d?g.inactiveColor:g.activeColor}).css({cursor:a===d?"default":"pointer"}),this.scrollOffset=-b[a-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),
|
|
this.currentPage=a,this.positionCheckboxes())}};a.LegendSymbolMixin={drawRectangle:function(a,c){var b=a.symbolHeight,d=a.options.squareSymbol;c.legendSymbol=this.chart.renderer.rect(d?(a.symbolWidth-b)/2:0,a.baseline-b+1,d?b:a.symbolWidth,b,p(a.options.symbolRadius,b/2)).addClass("highcharts-point").attr({zIndex:3}).add(c.legendGroup)},drawLineMarker:function(a){var b=this.options,d=b.marker,e=a.symbolWidth,h=a.symbolHeight,g=h/2,m=this.chart.renderer,k=this.legendGroup;a=a.baseline-Math.round(.3*
|
|
a.fontMetrics.b);var n;n={"stroke-width":b.lineWidth||0};b.dashStyle&&(n.dashstyle=b.dashStyle);this.legendLine=m.path(["M",0,a,"L",e,a]).addClass("highcharts-graph").attr(n).add(k);d&&!1!==d.enabled&&e&&(b=Math.min(p(d.radius,g),g),0===this.symbol.indexOf("url")&&(d=q(d,{width:h,height:h}),b=0),this.legendSymbol=d=m.symbol(this.symbol,e/2-b,a-b,2*b,2*b,d).addClass("highcharts-point").add(k),d.isMarker=!0)}};(/Trident\/7\.0/.test(h.navigator.userAgent)||u)&&m(a.Legend.prototype,"positionItem",function(a,
|
|
c){var b=this,d=function(){c._legendItemPos&&a.call(b,c)};d();setTimeout(d)})})(M);(function(a){var B=a.addEvent,C=a.animate,D=a.animObject,n=a.attr,d=a.doc,k=a.Axis,u=a.createElement,v=a.defaultOptions,q=a.discardElement,p=a.charts,y=a.css,g=a.defined,h=a.each,m=a.extend,b=a.find,c=a.fireEvent,f=a.grep,e=a.isNumber,w=a.isObject,G=a.isString,t=a.Legend,K=a.marginNames,A=a.merge,F=a.objectEach,r=a.Pointer,I=a.pick,E=a.pInt,L=a.removeEvent,J=a.seriesTypes,l=a.splat,x=a.syncTimeout,N=a.win,T=a.Chart=
|
|
function(){this.getArgs.apply(this,arguments)};a.chart=function(a,b,c){return new T(a,b,c)};m(T.prototype,{callbacks:[],getArgs:function(){var a=[].slice.call(arguments);if(G(a[0])||a[0].nodeName)this.renderTo=a.shift();this.init(a[0],a[1])},init:function(b,d){var f,e,l=b.series,r=b.plotOptions||{};c(this,"init",{args:arguments},function(){b.series=null;f=A(v,b);for(e in f.plotOptions)f.plotOptions[e].tooltip=r[e]&&A(r[e].tooltip)||void 0;f.tooltip.userOptions=b.chart&&b.chart.forExport&&b.tooltip.userOptions||
|
|
b.tooltip;f.series=b.series=l;this.userOptions=b;var h=f.chart,g=h.events;this.margin=[];this.spacing=[];this.bounds={h:{},v:{}};this.labelCollectors=[];this.callback=d;this.isResizing=0;this.options=f;this.axes=[];this.series=[];this.time=b.time&&a.keys(b.time).length?new a.Time(b.time):a.time;this.hasCartesianSeries=h.showAxes;var m=this;m.index=p.length;p.push(m);a.chartCount++;g&&F(g,function(a,b){B(m,b,a)});m.xAxis=[];m.yAxis=[];m.pointCount=m.colorCounter=m.symbolCounter=0;c(m,"afterInit");
|
|
m.firstRender()})},initSeries:function(b){var c=this.options.chart;(c=J[b.type||c.type||c.defaultSeriesType])||a.error(17,!0);c=new c;c.init(this,b);return c},orderSeries:function(a){var b=this.series;for(a=a||0;a<b.length;a++)b[a]&&(b[a].index=a,b[a].name=b[a].getName())},isInsidePlot:function(a,b,c){var d=c?b:a;a=c?a:b;return 0<=d&&d<=this.plotWidth&&0<=a&&a<=this.plotHeight},redraw:function(b){c(this,"beforeRedraw");var d=this.axes,f=this.series,e=this.pointer,l=this.legend,r=this.userOptions.legend,
|
|
g=this.isDirtyLegend,p,t,E=this.hasCartesianSeries,k=this.isDirtyBox,I,q=this.renderer,n=q.isHidden(),x=[];this.setResponsive&&this.setResponsive(!1);a.setAnimation(b,this);n&&this.temporaryDisplay();this.layOutTitles();for(b=f.length;b--;)if(I=f[b],I.options.stacking&&(p=!0,I.isDirty)){t=!0;break}if(t)for(b=f.length;b--;)I=f[b],I.options.stacking&&(I.isDirty=!0);h(f,function(a){a.isDirty&&("point"===a.options.legendType?(a.updateTotals&&a.updateTotals(),g=!0):r&&(r.labelFormatter||r.labelFormat)&&
|
|
(g=!0));a.isDirtyData&&c(a,"updatedData")});g&&l&&l.options.enabled&&(l.render(),this.isDirtyLegend=!1);p&&this.getStacks();E&&h(d,function(a){a.updateNames();a.updateYNames&&a.updateYNames();a.setScale()});this.getMargins();E&&(h(d,function(a){a.isDirty&&(k=!0)}),h(d,function(a){var b=a.min+","+a.max;a.extKey!==b&&(a.extKey=b,x.push(function(){c(a,"afterSetExtremes",m(a.eventArgs,a.getExtremes()));delete a.eventArgs}));(k||p)&&a.redraw()}));k&&this.drawChartBox();c(this,"predraw");h(f,function(a){(k||
|
|
a.isDirty)&&a.visible&&a.redraw();a.isDirtyData=!1});e&&e.reset(!0);q.draw();c(this,"redraw");c(this,"render");n&&this.temporaryDisplay(!0);h(x,function(a){a.call()})},get:function(a){function c(b){return b.id===a||b.options&&b.options.id===a}var d,f=this.series,e;d=b(this.axes,c)||b(this.series,c);for(e=0;!d&&e<f.length;e++)d=b(f[e].points||[],c);return d},getAxes:function(){var a=this,b=this.options,d=b.xAxis=l(b.xAxis||{}),b=b.yAxis=l(b.yAxis||{});c(this,"getAxes");h(d,function(a,b){a.index=b;
|
|
a.isX=!0});h(b,function(a,b){a.index=b});d=d.concat(b);h(d,function(b){new k(a,b)});c(this,"afterGetAxes")},getSelectedPoints:function(){var a=[];h(this.series,function(b){a=a.concat(f(b.data||[],function(a){return a.selected}))});return a},getSelectedSeries:function(){return f(this.series,function(a){return a.selected})},setTitle:function(a,b,c){var d=this,f=d.options,e;e=f.title=A({style:{color:"#333333",fontSize:f.isStock?"16px":"18px"}},f.title,a);f=f.subtitle=A({style:{color:"#666666"}},f.subtitle,
|
|
b);h([["title",a,e],["subtitle",b,f]],function(a,b){var c=a[0],f=d[c],e=a[1];a=a[2];f&&e&&(d[c]=f=f.destroy());a&&!f&&(d[c]=d.renderer.text(a.text,0,0,a.useHTML).attr({align:a.align,"class":"highcharts-"+c,zIndex:a.zIndex||4}).add(),d[c].update=function(a){d.setTitle(!b&&a,b&&a)},d[c].css(a.style))});d.layOutTitles(c)},layOutTitles:function(a){var b=0,c,d=this.renderer,f=this.spacingBox;h(["title","subtitle"],function(a){var c=this[a],e=this.options[a];a="title"===a?-3:e.verticalAlign?0:b+2;var l;
|
|
c&&(l=e.style.fontSize,l=d.fontMetrics(l,c).b,c.css({width:(e.width||f.width+e.widthAdjust)+"px"}).align(m({y:a+l},e),!1,"spacingBox"),e.floating||e.verticalAlign||(b=Math.ceil(b+c.getBBox(e.useHTML).height)))},this);c=this.titleOffset!==b;this.titleOffset=b;!this.isDirtyBox&&c&&(this.isDirtyBox=this.isDirtyLegend=c,this.hasRendered&&I(a,!0)&&this.isDirtyBox&&this.redraw())},getChartSize:function(){var b=this.options.chart,c=b.width,b=b.height,d=this.renderTo;g(c)||(this.containerWidth=a.getStyle(d,
|
|
"width"));g(b)||(this.containerHeight=a.getStyle(d,"height"));this.chartWidth=Math.max(0,c||this.containerWidth||600);this.chartHeight=Math.max(0,a.relativeLength(b,this.chartWidth)||(1<this.containerHeight?this.containerHeight:400))},temporaryDisplay:function(b){var c=this.renderTo;if(b)for(;c&&c.style;)c.hcOrigStyle&&(a.css(c,c.hcOrigStyle),delete c.hcOrigStyle),c.hcOrigDetached&&(d.body.removeChild(c),c.hcOrigDetached=!1),c=c.parentNode;else for(;c&&c.style;){d.body.contains(c)||c.parentNode||
|
|
(c.hcOrigDetached=!0,d.body.appendChild(c));if("none"===a.getStyle(c,"display",!1)||c.hcOricDetached)c.hcOrigStyle={display:c.style.display,height:c.style.height,overflow:c.style.overflow},b={display:"block",overflow:"hidden"},c!==this.renderTo&&(b.height=0),a.css(c,b),c.offsetWidth||c.style.setProperty("display","block","important");c=c.parentNode;if(c===d.body)break}},setClassName:function(a){this.container.className="highcharts-container "+(a||"")},getContainer:function(){var b,f=this.options,
|
|
l=f.chart,r,h;b=this.renderTo;var g=a.uniqueKey(),t;b||(this.renderTo=b=l.renderTo);G(b)&&(this.renderTo=b=d.getElementById(b));b||a.error(13,!0);r=E(n(b,"data-highcharts-chart"));e(r)&&p[r]&&p[r].hasRendered&&p[r].destroy();n(b,"data-highcharts-chart",this.index);b.innerHTML="";l.skipClone||b.offsetWidth||this.temporaryDisplay();this.getChartSize();r=this.chartWidth;h=this.chartHeight;t=m({position:"relative",overflow:"hidden",width:r+"px",height:h+"px",textAlign:"left",lineHeight:"normal",zIndex:0,
|
|
"-webkit-tap-highlight-color":"rgba(0,0,0,0)"},l.style);this.container=b=u("div",{id:g},t,b);this._cursor=b.style.cursor;this.renderer=new (a[l.renderer]||a.Renderer)(b,r,h,null,l.forExport,f.exporting&&f.exporting.allowHTML);this.setClassName(l.className);this.renderer.setStyle(l.style);this.renderer.chartIndex=this.index;c(this,"afterGetContainer")},getMargins:function(a){var b=this.spacing,d=this.margin,f=this.titleOffset;this.resetMargins();f&&!g(d[0])&&(this.plotTop=Math.max(this.plotTop,f+this.options.title.margin+
|
|
b[0]));this.legend&&this.legend.display&&this.legend.adjustMargins(d,b);c(this,"getMargins");a||this.getAxisMargins()},getAxisMargins:function(){var a=this,b=a.axisOffset=[0,0,0,0],c=a.margin;a.hasCartesianSeries&&h(a.axes,function(a){a.visible&&a.getOffset()});h(K,function(d,f){g(c[f])||(a[d]+=b[f])});a.setChartSize()},reflow:function(b){var c=this,f=c.options.chart,e=c.renderTo,l=g(f.width)&&g(f.height),r=f.width||a.getStyle(e,"width"),f=f.height||a.getStyle(e,"height"),e=b?b.target:N;if(!l&&!c.isPrinting&&
|
|
r&&f&&(e===N||e===d)){if(r!==c.containerWidth||f!==c.containerHeight)a.clearTimeout(c.reflowTimeout),c.reflowTimeout=x(function(){c.container&&c.setSize(void 0,void 0,!1)},b?100:0);c.containerWidth=r;c.containerHeight=f}},setReflow:function(a){var b=this;!1===a||this.unbindReflow?!1===a&&this.unbindReflow&&(this.unbindReflow=this.unbindReflow()):(this.unbindReflow=B(N,"resize",function(a){b.reflow(a)}),B(this,"destroy",this.unbindReflow))},setSize:function(b,d,f){var e=this,l=e.renderer;e.isResizing+=
|
|
1;a.setAnimation(f,e);e.oldChartHeight=e.chartHeight;e.oldChartWidth=e.chartWidth;void 0!==b&&(e.options.chart.width=b);void 0!==d&&(e.options.chart.height=d);e.getChartSize();b=l.globalAnimation;(b?C:y)(e.container,{width:e.chartWidth+"px",height:e.chartHeight+"px"},b);e.setChartSize(!0);l.setSize(e.chartWidth,e.chartHeight,f);h(e.axes,function(a){a.isDirty=!0;a.setScale()});e.isDirtyLegend=!0;e.isDirtyBox=!0;e.layOutTitles();e.getMargins();e.redraw(f);e.oldChartHeight=null;c(e,"resize");x(function(){e&&
|
|
c(e,"endResize",null,function(){--e.isResizing})},D(b).duration)},setChartSize:function(a){var b=this.inverted,d=this.renderer,f=this.chartWidth,e=this.chartHeight,l=this.options.chart,r=this.spacing,g=this.clipOffset,m,p,t,E;this.plotLeft=m=Math.round(this.plotLeft);this.plotTop=p=Math.round(this.plotTop);this.plotWidth=t=Math.max(0,Math.round(f-m-this.marginRight));this.plotHeight=E=Math.max(0,Math.round(e-p-this.marginBottom));this.plotSizeX=b?E:t;this.plotSizeY=b?t:E;this.plotBorderWidth=l.plotBorderWidth||
|
|
0;this.spacingBox=d.spacingBox={x:r[3],y:r[0],width:f-r[3]-r[1],height:e-r[0]-r[2]};this.plotBox=d.plotBox={x:m,y:p,width:t,height:E};f=2*Math.floor(this.plotBorderWidth/2);b=Math.ceil(Math.max(f,g[3])/2);d=Math.ceil(Math.max(f,g[0])/2);this.clipBox={x:b,y:d,width:Math.floor(this.plotSizeX-Math.max(f,g[1])/2-b),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(f,g[2])/2-d))};a||h(this.axes,function(a){a.setAxisSize();a.setAxisTranslation()});c(this,"afterSetChartSize",{skipAxes:a})},resetMargins:function(){var a=
|
|
this,b=a.options.chart;h(["margin","spacing"],function(c){var d=b[c],f=w(d)?d:[d,d,d,d];h(["Top","Right","Bottom","Left"],function(d,e){a[c][e]=I(b[c+d],f[e])})});h(K,function(b,c){a[b]=I(a.margin[c],a.spacing[c])});a.axisOffset=[0,0,0,0];a.clipOffset=[0,0,0,0]},drawChartBox:function(){var a=this.options.chart,b=this.renderer,d=this.chartWidth,f=this.chartHeight,e=this.chartBackground,l=this.plotBackground,r=this.plotBorder,h,g=this.plotBGImage,m=a.backgroundColor,p=a.plotBackgroundColor,t=a.plotBackgroundImage,
|
|
E,k=this.plotLeft,I=this.plotTop,q=this.plotWidth,n=this.plotHeight,x=this.plotBox,A=this.clipRect,w=this.clipBox,J="animate";e||(this.chartBackground=e=b.rect().addClass("highcharts-background").add(),J="attr");h=a.borderWidth||0;E=h+(a.shadow?8:0);m={fill:m||"none"};if(h||e["stroke-width"])m.stroke=a.borderColor,m["stroke-width"]=h;e.attr(m).shadow(a.shadow);e[J]({x:E/2,y:E/2,width:d-E-h%2,height:f-E-h%2,r:a.borderRadius});J="animate";l||(J="attr",this.plotBackground=l=b.rect().addClass("highcharts-plot-background").add());
|
|
l[J](x);l.attr({fill:p||"none"}).shadow(a.plotShadow);t&&(g?g.animate(x):this.plotBGImage=b.image(t,k,I,q,n).add());A?A.animate({width:w.width,height:w.height}):this.clipRect=b.clipRect(w);J="animate";r||(J="attr",this.plotBorder=r=b.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add());r.attr({stroke:a.plotBorderColor,"stroke-width":a.plotBorderWidth||0,fill:"none"});r[J](r.crisp({x:k,y:I,width:q,height:n},-r.strokeWidth()));this.isDirtyBox=!1;c(this,"afterDrawChartBox")},propFromSeries:function(){var a=
|
|
this,b=a.options.chart,c,d=a.options.series,f,e;h(["inverted","angular","polar"],function(l){c=J[b.type||b.defaultSeriesType];e=b[l]||c&&c.prototype[l];for(f=d&&d.length;!e&&f--;)(c=J[d[f].type])&&c.prototype[l]&&(e=!0);a[l]=e})},linkSeries:function(){var a=this,b=a.series;h(b,function(a){a.linkedSeries.length=0});h(b,function(b){var c=b.options.linkedTo;G(c)&&(c=":previous"===c?a.series[b.index-1]:a.get(c))&&c.linkedParent!==b&&(c.linkedSeries.push(b),b.linkedParent=c,b.visible=I(b.options.visible,
|
|
c.options.visible,b.visible))});c(this,"afterLinkSeries")},renderSeries:function(){h(this.series,function(a){a.translate();a.render()})},renderLabels:function(){var a=this,b=a.options.labels;b.items&&h(b.items,function(c){var d=m(b.style,c.style),f=E(d.left)+a.plotLeft,e=E(d.top)+a.plotTop+12;delete d.left;delete d.top;a.renderer.text(c.html,f,e).attr({zIndex:2}).css(d).add()})},render:function(){var a=this.axes,b=this.renderer,c=this.options,d,f,e;this.setTitle();this.legend=new t(this,c.legend);
|
|
this.getStacks&&this.getStacks();this.getMargins(!0);this.setChartSize();c=this.plotWidth;d=this.plotHeight=Math.max(this.plotHeight-21,0);h(a,function(a){a.setScale()});this.getAxisMargins();f=1.1<c/this.plotWidth;e=1.05<d/this.plotHeight;if(f||e)h(a,function(a){(a.horiz&&f||!a.horiz&&e)&&a.setTickInterval(!0)}),this.getMargins();this.drawChartBox();this.hasCartesianSeries&&h(a,function(a){a.visible&&a.render()});this.seriesGroup||(this.seriesGroup=b.g("series-group").attr({zIndex:3}).add());this.renderSeries();
|
|
this.renderLabels();this.addCredits();this.setResponsive&&this.setResponsive();this.hasRendered=!0},addCredits:function(a){var b=this;a=A(!0,this.options.credits,a);a.enabled&&!this.credits&&(this.credits=this.renderer.text(a.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){a.href&&(N.location.href=a.href)}).attr({align:a.position.align,zIndex:8}).css(a.style).add().align(a.position),this.credits.update=function(a){b.credits=b.credits.destroy();b.addCredits(a)})},
|
|
destroy:function(){var b=this,d=b.axes,f=b.series,e=b.container,l,r=e&&e.parentNode;c(b,"destroy");b.renderer.forExport?a.erase(p,b):p[b.index]=void 0;a.chartCount--;b.renderTo.removeAttribute("data-highcharts-chart");L(b);for(l=d.length;l--;)d[l]=d[l].destroy();this.scroller&&this.scroller.destroy&&this.scroller.destroy();for(l=f.length;l--;)f[l]=f[l].destroy();h("title subtitle chartBackground plotBackground plotBGImage plotBorder seriesGroup clipRect credits pointer rangeSelector legend resetZoomButton tooltip renderer".split(" "),
|
|
function(a){var c=b[a];c&&c.destroy&&(b[a]=c.destroy())});e&&(e.innerHTML="",L(e),r&&q(e));F(b,function(a,c){delete b[c]})},firstRender:function(){var a=this,b=a.options;if(!a.isReadyToRender||a.isReadyToRender()){a.getContainer();a.resetMargins();a.setChartSize();a.propFromSeries();a.getAxes();h(b.series||[],function(b){a.initSeries(b)});a.linkSeries();c(a,"beforeRender");r&&(a.pointer=new r(a,b));a.render();if(!a.renderer.imgCount&&a.onload)a.onload();a.temporaryDisplay(!0)}},onload:function(){h([this.callback].concat(this.callbacks),
|
|
function(a){a&&void 0!==this.index&&a.apply(this,[this])},this);c(this,"load");c(this,"render");g(this.index)&&this.setReflow(this.options.chart.reflow);this.onload=null}})})(M);(function(a){var B,C=a.each,D=a.extend,n=a.erase,d=a.fireEvent,k=a.format,u=a.isArray,v=a.isNumber,q=a.pick,p=a.uniqueKey,y=a.defined,g=a.removeEvent;a.Point=B=function(){};a.Point.prototype={init:function(a,g,b){this.series=a;this.color=a.color;this.applyOptions(g,b);this.id=y(this.id)?this.id:p();a.options.colorByPoint?
|
|
(g=a.options.colors||a.chart.options.colors,this.color=this.color||g[a.colorCounter],g=g.length,b=a.colorCounter,a.colorCounter++,a.colorCounter===g&&(a.colorCounter=0)):b=a.colorIndex;this.colorIndex=q(this.colorIndex,b);a.chart.pointCount++;d(this,"afterInit");return this},applyOptions:function(a,d){var b=this.series,c=b.options.pointValKey||b.pointValKey;a=B.prototype.optionsToObject.call(this,a);D(this,a);this.options=this.options?D(this.options,a):a;a.group&&delete this.group;a.dataLabels&&delete this.dataLabels;
|
|
c&&(this.y=this[c]);this.isNull=q(this.isValid&&!this.isValid(),null===this.x||!v(this.y,!0));this.selected&&(this.state="select");"name"in this&&void 0===d&&b.xAxis&&b.xAxis.hasNames&&(this.x=b.xAxis.nameToX(this));void 0===this.x&&b&&(this.x=void 0===d?b.autoIncrement(this):d);return this},setNestedProperty:function(d,g,b){b=b.split(".");a.reduce(b,function(b,d,e,h){b[d]=h.length-1===e?g:a.isObject(b[d],!0)?b[d]:{};return b[d]},d);return d},optionsToObject:function(d){var g={},b=this.series,c=b.options.keys,
|
|
f=c||b.pointArrayMap||["y"],e=f.length,h=0,p=0;if(v(d)||null===d)g[f[0]]=d;else if(u(d))for(!c&&d.length>e&&(b=typeof d[0],"string"===b?g.name=d[0]:"number"===b&&(g.x=d[0]),h++);p<e;)c&&void 0===d[h]||(0<f[p].indexOf(".")?a.Point.prototype.setNestedProperty(g,d[h],f[p]):g[f[p]]=d[h]),h++,p++;else"object"===typeof d&&(g=d,d.dataLabels&&(b._hasPointLabels=!0),d.marker&&(b._hasPointMarkers=!0));return g},getClassName:function(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?
|
|
" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")},getZone:function(){var a=this.series,d=a.zones,a=a.zoneAxis||"y",b=0,c;for(c=d[b];this[a]>=c.value;)c=d[++b];this.nonZonedColor||(this.nonZonedColor=this.color);this.color=c&&c.color&&!this.options.color?c.color:this.nonZonedColor;
|
|
return c},destroy:function(){var a=this.series.chart,d=a.hoverPoints,b;a.pointCount--;d&&(this.setState(),n(d,this),d.length||(a.hoverPoints=null));if(this===a.hoverPoint)this.onMouseOut();if(this.graphic||this.dataLabel||this.dataLabels)g(this),this.destroyElements();this.legendItem&&a.legend.destroyItem(this);for(b in this)this[b]=null},destroyElements:function(){for(var a=["graphic","dataLabel","dataLabelUpper","connector","shadowGroup"],d,b=6;b--;)d=a[b],this[d]&&(this[d]=this[d].destroy());this.dataLabels&&
|
|
(C(this.dataLabels,function(a){a.element&&a.destroy()}),delete this.dataLabels);this.connectors&&(C(this.connectors,function(a){a.element&&a.destroy()}),delete this.connectors)},getLabelConfig:function(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}},tooltipFormatter:function(a){var d=this.series,b=d.tooltipOptions,c=q(b.valueDecimals,""),f=b.valuePrefix||
|
|
"",e=b.valueSuffix||"";C(d.pointArrayMap||["y"],function(b){b="{point."+b;if(f||e)a=a.replace(RegExp(b+"}","g"),f+b+"}"+e);a=a.replace(RegExp(b+"}","g"),b+":,."+c+"f}")});return k(a,{point:this,series:this.series},d.chart.time)},firePointEvent:function(a,g,b){var c=this,f=this.series.options;(f.point.events[a]||c.options&&c.options.events&&c.options.events[a])&&this.importEvents();"click"===a&&f.allowPointSelect&&(b=function(a){c.select&&c.select(null,a.ctrlKey||a.metaKey||a.shiftKey)});d(this,a,
|
|
g,b)},visible:!0}})(M);(function(a){var B=a.addEvent,C=a.animObject,D=a.arrayMax,n=a.arrayMin,d=a.correctFloat,k=a.defaultOptions,u=a.defaultPlotOptions,v=a.defined,q=a.each,p=a.erase,y=a.extend,g=a.fireEvent,h=a.grep,m=a.isArray,b=a.isNumber,c=a.isString,f=a.merge,e=a.objectEach,w=a.pick,G=a.removeEvent,t=a.splat,K=a.SVGElement,A=a.syncTimeout,F=a.win;a.Series=a.seriesType("line",null,{lineWidth:2,allowPointSelect:!1,showCheckbox:!1,animation:{duration:1E3},events:{},marker:{lineWidth:0,lineColor:"#ffffff",
|
|
enabledThreshold:2,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:50},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{align:"center",formatter:function(){return null===this.y?"":a.numberFormat(this.y,-1)},style:{fontSize:"11px",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0,padding:5},cropThreshold:300,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},
|
|
hover:{animation:{duration:50},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{}},stickyTracking:!0,turboThreshold:1E3,findNearestPointBy:"x"},{isCartesian:!0,pointClass:a.Point,sorted:!0,requireSorting:!0,directTouch:!1,axisTypes:["xAxis","yAxis"],colorCounter:0,parallelArrays:["x","y"],coll:"series",init:function(a,b){var c=this,d,f=a.series,l;c.chart=a;c.options=b=c.setOptions(b);c.linkedSeries=[];c.bindAxes();y(c,{name:b.name,state:"",visible:!1!==b.visible,selected:!0===b.selected});
|
|
d=b.events;e(d,function(a,b){B(c,b,a)});if(d&&d.click||b.point&&b.point.events&&b.point.events.click||b.allowPointSelect)a.runTrackerClick=!0;c.getColor();c.getSymbol();q(c.parallelArrays,function(a){c[a+"Data"]=[]});c.setData(b.data,!1);c.isCartesian&&(a.hasCartesianSeries=!0);f.length&&(l=f[f.length-1]);c._i=w(l&&l._i,-1)+1;a.orderSeries(this.insert(f));g(this,"afterInit")},insert:function(a){var c=this.options.index,d;if(b(c)){for(d=a.length;d--;)if(c>=w(a[d].options.index,a[d]._i)){a.splice(d+
|
|
1,0,this);break}-1===d&&a.unshift(this);d+=1}else a.push(this);return w(d,a.length-1)},bindAxes:function(){var b=this,c=b.options,d=b.chart,f;q(b.axisTypes||[],function(e){q(d[e],function(a){f=a.options;if(c[e]===f.index||void 0!==c[e]&&c[e]===f.id||void 0===c[e]&&0===f.index)b.insert(a.series),b[e]=a,a.isDirty=!0});b[e]||b.optionalAxis===e||a.error(18,!0)})},updateParallelArrays:function(a,c){var d=a.series,f=arguments,e=b(c)?function(b){var f="y"===b&&d.toYData?d.toYData(a):a[b];d[b+"Data"][c]=
|
|
f}:function(a){Array.prototype[c].apply(d[a+"Data"],Array.prototype.slice.call(f,2))};q(d.parallelArrays,e)},autoIncrement:function(){var a=this.options,b=this.xIncrement,c,d=a.pointIntervalUnit,f=this.chart.time,b=w(b,a.pointStart,0);this.pointInterval=c=w(this.pointInterval,a.pointInterval,1);d&&(a=new f.Date(b),"day"===d?f.set("Date",a,f.get("Date",a)+c):"month"===d?f.set("Month",a,f.get("Month",a)+c):"year"===d&&f.set("FullYear",a,f.get("FullYear",a)+c),c=a.getTime()-b);this.xIncrement=b+c;return b},
|
|
setOptions:function(a){var b=this.chart,c=b.options,d=c.plotOptions,e=(b.userOptions||{}).plotOptions||{},l=d[this.type];this.userOptions=a;b=f(l,d.series,a);this.tooltipOptions=f(k.tooltip,k.plotOptions.series&&k.plotOptions.series.tooltip,k.plotOptions[this.type].tooltip,c.tooltip.userOptions,d.series&&d.series.tooltip,d[this.type].tooltip,a.tooltip);this.stickyTracking=w(a.stickyTracking,e[this.type]&&e[this.type].stickyTracking,e.series&&e.series.stickyTracking,this.tooltipOptions.shared&&!this.noSharedTooltip?
|
|
!0:b.stickyTracking);null===l.marker&&delete b.marker;this.zoneAxis=b.zoneAxis;a=this.zones=(b.zones||[]).slice();!b.negativeColor&&!b.negativeFillColor||b.zones||a.push({value:b[this.zoneAxis+"Threshold"]||b.threshold||0,className:"highcharts-negative",color:b.negativeColor,fillColor:b.negativeFillColor});a.length&&v(a[a.length-1].value)&&a.push({color:this.color,fillColor:this.fillColor});g(this,"afterSetOptions",{options:b});return b},getName:function(){return this.name||"Series "+(this.index+
|
|
1)},getCyclic:function(a,b,c){var d,f=this.chart,e=this.userOptions,g=a+"Index",r=a+"Counter",h=c?c.length:w(f.options.chart[a+"Count"],f[a+"Count"]);b||(d=w(e[g],e["_"+g]),v(d)||(f.series.length||(f[r]=0),e["_"+g]=d=f[r]%h,f[r]+=1),c&&(b=c[d]));void 0!==d&&(this[g]=d);this[a]=b},getColor:function(){this.options.colorByPoint?this.options.color=null:this.getCyclic("color",this.options.color||u[this.type].color,this.chart.options.colors)},getSymbol:function(){this.getCyclic("symbol",this.options.marker.symbol,
|
|
this.chart.options.symbols)},drawLegendSymbol:a.LegendSymbolMixin.drawLineMarker,updateData:function(c){var d=this.options,f=this.points,e=[],g,l,r,h=this.requireSorting;q(c,function(c){var l;l=a.defined(c)&&this.pointClass.prototype.optionsToObject.call({series:this},c).x;b(l)&&(l=a.inArray(l,this.xData,r),-1===l||f[l].touched?e.push(c):c!==d.data[l]?(f[l].update(c,!1,null,!1),f[l].touched=!0,h&&(r=l+1)):f[l]&&(f[l].touched=!0),g=!0)},this);if(g)for(c=f.length;c--;)l=f[c],l.touched||l.remove(!1),
|
|
l.touched=!1;else if(c.length===f.length)q(c,function(a,b){f[b].update&&a!==d.data[b]&&f[b].update(a,!1,null,!1)});else return!1;q(e,function(a){this.addPoint(a,!1)},this);return!0},setData:function(d,f,e,g){var r=this,l=r.points,h=l&&l.length||0,p,t=r.options,k=r.chart,n=null,E=r.xAxis,I=t.turboThreshold,A=this.xData,F=this.yData,L=(p=r.pointArrayMap)&&p.length,u;d=d||[];p=d.length;f=w(f,!0);!1!==g&&p&&h&&!r.cropped&&!r.hasGroupedData&&r.visible&&!r.isSeriesBoosting&&(u=this.updateData(d));if(!u){r.xIncrement=
|
|
null;r.colorCounter=0;q(this.parallelArrays,function(a){r[a+"Data"].length=0});if(I&&p>I){for(e=0;null===n&&e<p;)n=d[e],e++;if(b(n))for(e=0;e<p;e++)A[e]=this.autoIncrement(),F[e]=d[e];else if(m(n))if(L)for(e=0;e<p;e++)n=d[e],A[e]=n[0],F[e]=n.slice(1,L+1);else for(e=0;e<p;e++)n=d[e],A[e]=n[0],F[e]=n[1];else a.error(12)}else for(e=0;e<p;e++)void 0!==d[e]&&(n={series:r},r.pointClass.prototype.applyOptions.apply(n,[d[e]]),r.updateParallelArrays(n,e));F&&c(F[0])&&a.error(14,!0);r.data=[];r.options.data=
|
|
r.userOptions.data=d;for(e=h;e--;)l[e]&&l[e].destroy&&l[e].destroy();E&&(E.minRange=E.userMinRange);r.isDirty=k.isDirtyBox=!0;r.isDirtyData=!!l;e=!1}"point"===t.legendType&&(this.processData(),this.generatePoints());f&&k.redraw(e)},processData:function(b){var c=this.xData,d=this.yData,f=c.length,e;e=0;var l,g,r=this.xAxis,h,m=this.options;h=m.cropThreshold;var p=this.getExtremesFromAll||m.getExtremesFromAll,t=this.isCartesian,m=r&&r.val2lin,k=r&&r.isLog,q=this.requireSorting,n,A;if(t&&!this.isDirty&&
|
|
!r.isDirty&&!this.yAxis.isDirty&&!b)return!1;r&&(b=r.getExtremes(),n=b.min,A=b.max);t&&this.sorted&&!p&&(!h||f>h||this.forceCrop)&&(c[f-1]<n||c[0]>A?(c=[],d=[]):this.yData&&(c[0]<n||c[f-1]>A)&&(e=this.cropData(this.xData,this.yData,n,A),c=e.xData,d=e.yData,e=e.start,l=!0));for(h=c.length||1;--h;)f=k?m(c[h])-m(c[h-1]):c[h]-c[h-1],0<f&&(void 0===g||f<g)?g=f:0>f&&q&&(a.error(15),q=!1);this.cropped=l;this.cropStart=e;this.processedXData=c;this.processedYData=d;this.closestPointRange=g},cropData:function(a,
|
|
b,c,d,f){var e=a.length,g=0,r=e,h;f=w(f,this.cropShoulder,1);for(h=0;h<e;h++)if(a[h]>=c){g=Math.max(0,h-f);break}for(c=h;c<e;c++)if(a[c]>d){r=c+f;break}return{xData:a.slice(g,r),yData:b.slice(g,r),start:g,end:r}},generatePoints:function(){var a=this.options,b=a.data,c=this.data,d,f=this.processedXData,e=this.processedYData,g=this.pointClass,h=f.length,m=this.cropStart||0,p,k=this.hasGroupedData,a=a.keys,n,q=[],A;c||k||(c=[],c.length=b.length,c=this.data=c);a&&k&&(this.options.keys=!1);for(A=0;A<h;A++)p=
|
|
m+A,k?(n=(new g).init(this,[f[A]].concat(t(e[A]))),n.dataGroup=this.groupMap[A],n.dataGroup.options&&(n.options=n.dataGroup.options,y(n,n.dataGroup.options))):(n=c[p])||void 0===b[p]||(c[p]=n=(new g).init(this,b[p],f[A])),n&&(n.index=p,q[A]=n);this.options.keys=a;if(c&&(h!==(d=c.length)||k))for(A=0;A<d;A++)A!==m||k||(A+=h),c[A]&&(c[A].destroyElements(),c[A].plotX=void 0);this.data=c;this.points=q},getExtremes:function(a){var c=this.yAxis,d=this.processedXData,f,e=[],l=0;f=this.xAxis.getExtremes();
|
|
var g=f.min,h=f.max,r,p,t=this.requireSorting?1:0,k,q;a=a||this.stackedYData||this.processedYData||[];f=a.length;for(q=0;q<f;q++)if(p=d[q],k=a[q],r=(b(k,!0)||m(k))&&(!c.positiveValuesOnly||k.length||0<k),p=this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||(d[q+t]||p)>=g&&(d[q-t]||p)<=h,r&&p)if(r=k.length)for(;r--;)"number"===typeof k[r]&&(e[l++]=k[r]);else e[l++]=k;this.dataMin=n(e);this.dataMax=D(e)},translate:function(){this.processedXData||this.processData();this.generatePoints();
|
|
var a=this.options,c=a.stacking,f=this.xAxis,e=f.categories,h=this.yAxis,l=this.points,m=l.length,p=!!this.modifyValue,t=a.pointPlacement,k="between"===t||b(t),n=a.threshold,q=a.startFromThreshold?n:0,A,F,u,G,y=Number.MAX_VALUE;"between"===t&&(t=.5);b(t)&&(t*=w(a.pointRange||f.pointRange));for(a=0;a<m;a++){var K=l[a],C=K.x,D=K.y;F=K.low;var B=c&&h.stacks[(this.negStacks&&D<(q?0:n)?"-":"")+this.stackKey],M;h.positiveValuesOnly&&null!==D&&0>=D&&(K.isNull=!0);K.plotX=A=d(Math.min(Math.max(-1E5,f.translate(C,
|
|
0,0,0,1,t,"flags"===this.type)),1E5));c&&this.visible&&!K.isNull&&B&&B[C]&&(G=this.getStackIndicator(G,C,this.index),M=B[C],D=M.points[G.key],F=D[0],D=D[1],F===q&&G.key===B[C].base&&(F=w(b(n)&&n,h.min)),h.positiveValuesOnly&&0>=F&&(F=null),K.total=K.stackTotal=M.total,K.percentage=M.total&&K.y/M.total*100,K.stackY=D,M.setOffset(this.pointXOffset||0,this.barW||0));K.yBottom=v(F)?Math.min(Math.max(-1E5,h.translate(F,0,1,0,1)),1E5):null;p&&(D=this.modifyValue(D,K));K.plotY=F="number"===typeof D&&Infinity!==
|
|
D?Math.min(Math.max(-1E5,h.translate(D,0,1,0,1)),1E5):void 0;K.isInside=void 0!==F&&0<=F&&F<=h.len&&0<=A&&A<=f.len;K.clientX=k?d(f.translate(C,0,0,0,1,t)):A;K.negative=K.y<(n||0);K.category=e&&void 0!==e[K.x]?e[K.x]:K.x;K.isNull||(void 0!==u&&(y=Math.min(y,Math.abs(A-u))),u=A);K.zone=this.zones.length&&K.getZone()}this.closestPointRangePx=y;g(this,"afterTranslate")},getValidPoints:function(a,b){var c=this.chart;return h(a||this.points||[],function(a){return b&&!c.isInsidePlot(a.plotX,a.plotY,c.inverted)?
|
|
!1:!a.isNull})},setClip:function(a){var b=this.chart,c=this.options,d=b.renderer,f=b.inverted,e=this.clipBox,g=e||b.clipBox,h=this.sharedClipKey||["_sharedClip",a&&a.duration,a&&a.easing,g.height,c.xAxis,c.yAxis].join(),r=b[h],m=b[h+"m"];r||(a&&(g.width=0,f&&(g.x=b.plotSizeX),b[h+"m"]=m=d.clipRect(f?b.plotSizeX+99:-99,f?-b.plotLeft:-b.plotTop,99,f?b.chartWidth:b.chartHeight)),b[h]=r=d.clipRect(g),r.count={length:0});a&&!r.count[this.index]&&(r.count[this.index]=!0,r.count.length+=1);!1!==c.clip&&
|
|
(this.group.clip(a||e?r:b.clipRect),this.markerGroup.clip(m),this.sharedClipKey=h);a||(r.count[this.index]&&(delete r.count[this.index],--r.count.length),0===r.count.length&&h&&b[h]&&(e||(b[h]=b[h].destroy()),b[h+"m"]&&(b[h+"m"]=b[h+"m"].destroy())))},animate:function(a){var b=this.chart,c=C(this.options.animation),d;a?this.setClip(c):(d=this.sharedClipKey,(a=b[d])&&a.animate({width:b.plotSizeX,x:0},c),b[d+"m"]&&b[d+"m"].animate({width:b.plotSizeX+99,x:0},c),this.animate=null)},afterAnimate:function(){this.setClip();
|
|
g(this,"afterAnimate");this.finishedAnimating=!0},drawPoints:function(){var a=this.points,b=this.chart,c,d,f,e,g=this.options.marker,h,m,p,t=this[this.specialGroup]||this.markerGroup,k,n=w(g.enabled,this.xAxis.isRadial?!0:null,this.closestPointRangePx>=g.enabledThreshold*g.radius);if(!1!==g.enabled||this._hasPointMarkers)for(c=0;c<a.length;c++)d=a[c],e=d.graphic,h=d.marker||{},m=!!d.marker,f=n&&void 0===h.enabled||h.enabled,p=d.isInside,f&&!d.isNull?(f=w(h.symbol,this.symbol),k=this.markerAttribs(d,
|
|
d.selected&&"select"),e?e[p?"show":"hide"](!0).animate(k):p&&(0<k.width||d.hasImage)&&(d.graphic=e=b.renderer.symbol(f,k.x,k.y,k.width,k.height,m?h:g).add(t)),e&&e.attr(this.pointAttribs(d,d.selected&&"select")),e&&e.addClass(d.getClassName(),!0)):e&&(d.graphic=e.destroy())},markerAttribs:function(a,b){var c=this.options.marker,d=a.marker||{},f=d.symbol||c.symbol,e=w(d.radius,c.radius);b&&(c=c.states[b],b=d.states&&d.states[b],e=w(b&&b.radius,c&&c.radius,e+(c&&c.radiusPlus||0)));a.hasImage=f&&0===
|
|
f.indexOf("url");a.hasImage&&(e=0);a={x:Math.floor(a.plotX)-e,y:a.plotY-e};e&&(a.width=a.height=2*e);return a},pointAttribs:function(a,b){var c=this.options.marker,d=a&&a.options,f=d&&d.marker||{},e=this.color,g=d&&d.color,h=a&&a.color,d=w(f.lineWidth,c.lineWidth);a=a&&a.zone&&a.zone.color;e=g||a||h||e;a=f.fillColor||c.fillColor||e;e=f.lineColor||c.lineColor||e;b&&(c=c.states[b],b=f.states&&f.states[b]||{},d=w(b.lineWidth,c.lineWidth,d+w(b.lineWidthPlus,c.lineWidthPlus,0)),a=b.fillColor||c.fillColor||
|
|
a,e=b.lineColor||c.lineColor||e);return{stroke:e,"stroke-width":d,fill:a}},destroy:function(){var b=this,c=b.chart,d=/AppleWebKit\/533/.test(F.navigator.userAgent),f,h,l=b.data||[],m,t;g(b,"destroy");G(b);q(b.axisTypes||[],function(a){(t=b[a])&&t.series&&(p(t.series,b),t.isDirty=t.forceRedraw=!0)});b.legendItem&&b.chart.legend.destroyItem(b);for(h=l.length;h--;)(m=l[h])&&m.destroy&&m.destroy();b.points=null;a.clearTimeout(b.animationTimeout);e(b,function(a,b){a instanceof K&&!a.survive&&(f=d&&"group"===
|
|
b?"hide":"destroy",a[f]())});c.hoverSeries===b&&(c.hoverSeries=null);p(c.series,b);c.orderSeries();e(b,function(a,c){delete b[c]})},getGraphPath:function(a,b,c){var d=this,f=d.options,e=f.step,g,h=[],r=[],m;a=a||d.points;(g=a.reversed)&&a.reverse();(e={right:1,center:2}[e]||e&&3)&&g&&(e=4-e);!f.connectNulls||b||c||(a=this.getValidPoints(a));q(a,function(l,g){var p=l.plotX,t=l.plotY,k=a[g-1];(l.leftCliff||k&&k.rightCliff)&&!c&&(m=!0);l.isNull&&!v(b)&&0<g?m=!f.connectNulls:l.isNull&&!b?m=!0:(0===g||
|
|
m?g=["M",l.plotX,l.plotY]:d.getPointSpline?g=d.getPointSpline(a,l,g):e?(g=1===e?["L",k.plotX,t]:2===e?["L",(k.plotX+p)/2,k.plotY,"L",(k.plotX+p)/2,t]:["L",p,k.plotY],g.push("L",p,t)):g=["L",p,t],r.push(l.x),e&&(r.push(l.x),2===e&&r.push(l.x)),h.push.apply(h,g),m=!1)});h.xMap=r;return d.graphPath=h},drawGraph:function(){var a=this,b=this.options,c=(this.gappedPath||this.getGraphPath).call(this),d=[["graph","highcharts-graph",b.lineColor||this.color,b.dashStyle]],d=a.getZonesGraphs(d);q(d,function(d,
|
|
e){var f=d[0],l=a[f];l?(l.endX=a.preventGraphAnimation?null:c.xMap,l.animate({d:c})):c.length&&(a[f]=a.chart.renderer.path(c).addClass(d[1]).attr({zIndex:1}).add(a.group),l={stroke:d[2],"stroke-width":b.lineWidth,fill:a.fillGraph&&a.color||"none"},d[3]?l.dashstyle=d[3]:"square"!==b.linecap&&(l["stroke-linecap"]=l["stroke-linejoin"]="round"),l=a[f].attr(l).shadow(2>e&&b.shadow));l&&(l.startX=c.xMap,l.isArea=c.isArea)})},getZonesGraphs:function(a){q(this.zones,function(b,c){a.push(["zone-graph-"+c,
|
|
"highcharts-graph highcharts-zone-graph-"+c+" "+(b.className||""),b.color||this.color,b.dashStyle||this.options.dashStyle])},this);return a},applyZones:function(){var a=this,b=this.chart,c=b.renderer,d=this.zones,e,f,g=this.clips||[],h,m=this.graph,p=this.area,t=Math.max(b.chartWidth,b.chartHeight),k=this[(this.zoneAxis||"y")+"Axis"],n,A,F=b.inverted,u,G,y,K,v=!1;d.length&&(m||p)&&k&&void 0!==k.min&&(A=k.reversed,u=k.horiz,m&&!this.showLine&&m.hide(),p&&p.hide(),n=k.getExtremes(),q(d,function(d,l){e=
|
|
A?u?b.plotWidth:0:u?0:k.toPixels(n.min);e=Math.min(Math.max(w(f,e),0),t);f=Math.min(Math.max(Math.round(k.toPixels(w(d.value,n.max),!0)),0),t);v&&(e=f=k.toPixels(n.max));G=Math.abs(e-f);y=Math.min(e,f);K=Math.max(e,f);k.isXAxis?(h={x:F?K:y,y:0,width:G,height:t},u||(h.x=b.plotHeight-h.x)):(h={x:0,y:F?K:y,width:t,height:G},u&&(h.y=b.plotWidth-h.y));F&&c.isVML&&(h=k.isXAxis?{x:0,y:A?y:K,height:h.width,width:b.chartWidth}:{x:h.y-b.plotLeft-b.spacingBox.x,y:0,width:h.height,height:b.chartHeight});g[l]?
|
|
g[l].animate(h):(g[l]=c.clipRect(h),m&&a["zone-graph-"+l].clip(g[l]),p&&a["zone-area-"+l].clip(g[l]));v=d.value>n.max;a.resetZones&&0===f&&(f=void 0)}),this.clips=g)},invertGroups:function(a){function b(){q(["group","markerGroup"],function(b){c[b]&&(d.renderer.isVML&&c[b].attr({width:c.yAxis.len,height:c.xAxis.len}),c[b].width=c.yAxis.len,c[b].height=c.xAxis.len,c[b].invert(a))})}var c=this,d=c.chart,f;c.xAxis&&(f=B(d,"resize",b),B(c,"destroy",f),b(a),c.invertGroups=b)},plotGroup:function(a,b,c,d,
|
|
f){var e=this[a],g=!e;g&&(this[a]=e=this.chart.renderer.g().attr({zIndex:d||.1}).add(f));e.addClass("highcharts-"+b+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(v(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(e.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0);e.attr({visibility:c})[g?"attr":"animate"](this.getPlotBox());return e},getPlotBox:function(){var a=this.chart,b=this.xAxis,c=this.yAxis;a.inverted&&(b=c,c=this.xAxis);
|
|
return{translateX:b?b.left:a.plotLeft,translateY:c?c.top:a.plotTop,scaleX:1,scaleY:1}},render:function(){var a=this,b=a.chart,c,d=a.options,e=!!a.animate&&b.renderer.isSVG&&C(d.animation).duration,f=a.visible?"inherit":"hidden",h=d.zIndex,m=a.hasRendered,p=b.seriesGroup,t=b.inverted;c=a.plotGroup("group","series",f,h,p);a.markerGroup=a.plotGroup("markerGroup","markers",f,h,p);e&&a.animate(!0);c.inverted=a.isCartesian?t:!1;a.drawGraph&&(a.drawGraph(),a.applyZones());a.drawDataLabels&&a.drawDataLabels();
|
|
a.visible&&a.drawPoints();a.drawTracker&&!1!==a.options.enableMouseTracking&&a.drawTracker();a.invertGroups(t);!1===d.clip||a.sharedClipKey||m||c.clip(b.clipRect);e&&a.animate();m||(a.animationTimeout=A(function(){a.afterAnimate()},e));a.isDirty=!1;a.hasRendered=!0;g(a,"afterRender")},redraw:function(){var a=this.chart,b=this.isDirty||this.isDirtyData,c=this.group,d=this.xAxis,e=this.yAxis;c&&(a.inverted&&c.attr({width:a.plotWidth,height:a.plotHeight}),c.animate({translateX:w(d&&d.left,a.plotLeft),
|
|
translateY:w(e&&e.top,a.plotTop)}));this.translate();this.render();b&&delete this.kdTree},kdAxisArray:["clientX","plotY"],searchPoint:function(a,b){var c=this.xAxis,d=this.yAxis,e=this.chart.inverted;return this.searchKDTree({clientX:e?c.len-a.chartY+c.pos:a.chartX-c.pos,plotY:e?d.len-a.chartX+d.pos:a.chartY-d.pos},b)},buildKDTree:function(){function a(c,d,e){var f,l;if(l=c&&c.length)return f=b.kdAxisArray[d%e],c.sort(function(a,b){return a[f]-b[f]}),l=Math.floor(l/2),{point:c[l],left:a(c.slice(0,
|
|
l),d+1,e),right:a(c.slice(l+1),d+1,e)}}this.buildingKdTree=!0;var b=this,c=-1<b.options.findNearestPointBy.indexOf("y")?2:1;delete b.kdTree;A(function(){b.kdTree=a(b.getValidPoints(null,!b.directTouch),c,c);b.buildingKdTree=!1},b.options.kdNow?0:1)},searchKDTree:function(a,b){function c(a,b,l,h){var m=b.point,p=d.kdAxisArray[l%h],t,k,r=m;k=v(a[e])&&v(m[e])?Math.pow(a[e]-m[e],2):null;t=v(a[f])&&v(m[f])?Math.pow(a[f]-m[f],2):null;t=(k||0)+(t||0);m.dist=v(t)?Math.sqrt(t):Number.MAX_VALUE;m.distX=v(k)?
|
|
Math.sqrt(k):Number.MAX_VALUE;p=a[p]-m[p];t=0>p?"left":"right";k=0>p?"right":"left";b[t]&&(t=c(a,b[t],l+1,h),r=t[g]<r[g]?t:m);b[k]&&Math.sqrt(p*p)<r[g]&&(a=c(a,b[k],l+1,h),r=a[g]<r[g]?a:r);return r}var d=this,e=this.kdAxisArray[0],f=this.kdAxisArray[1],g=b?"distX":"dist";b=-1<d.options.findNearestPointBy.indexOf("y")?2:1;this.kdTree||this.buildingKdTree||this.buildKDTree();if(this.kdTree)return c(a,this.kdTree,b,b)}})})(M);(function(a){var B=a.addEvent,C=a.animate,D=a.Axis,n=a.createElement,d=a.css,
|
|
k=a.defined,u=a.each,v=a.erase,q=a.extend,p=a.fireEvent,y=a.inArray,g=a.isNumber,h=a.isObject,m=a.isArray,b=a.merge,c=a.objectEach,f=a.pick,e=a.Point,w=a.Series,G=a.seriesTypes,t=a.setAnimation,K=a.splat;q(a.Chart.prototype,{addSeries:function(a,b,c){var d,e=this;a&&(b=f(b,!0),p(e,"addSeries",{options:a},function(){d=e.initSeries(a);e.isDirtyLegend=!0;e.linkSeries();p(e,"afterAddSeries");b&&e.redraw(c)}));return d},addAxis:function(a,c,d,e){var g=c?"xAxis":"yAxis",h=this.options;a=b(a,{index:this[g].length,
|
|
isX:c});c=new D(this,a);h[g]=K(h[g]||{});h[g].push(a);f(d,!0)&&this.redraw(e);return c},showLoading:function(a){var b=this,c=b.options,e=b.loadingDiv,f=c.loading,g=function(){e&&d(e,{left:b.plotLeft+"px",top:b.plotTop+"px",width:b.plotWidth+"px",height:b.plotHeight+"px"})};e||(b.loadingDiv=e=n("div",{className:"highcharts-loading highcharts-loading-hidden"},null,b.container),b.loadingSpan=n("span",{className:"highcharts-loading-inner"},null,e),B(b,"redraw",g));e.className="highcharts-loading";b.loadingSpan.innerHTML=
|
|
a||c.lang.loading;d(e,q(f.style,{zIndex:10}));d(b.loadingSpan,f.labelStyle);b.loadingShown||(d(e,{opacity:0,display:""}),C(e,{opacity:f.style.opacity||.5},{duration:f.showDuration||0}));b.loadingShown=!0;g()},hideLoading:function(){var a=this.options,b=this.loadingDiv;b&&(b.className="highcharts-loading highcharts-loading-hidden",C(b,{opacity:0},{duration:a.loading.hideDuration||100,complete:function(){d(b,{display:"none"})}}));this.loadingShown=!1},propsRequireDirtyBox:"backgroundColor borderColor borderWidth margin marginTop marginRight marginBottom marginLeft spacing spacingTop spacingRight spacingBottom spacingLeft borderRadius plotBackgroundColor plotBackgroundImage plotBorderColor plotBorderWidth plotShadow shadow".split(" "),
|
|
propsRequireUpdateSeries:"chart.inverted chart.polar chart.ignoreHiddenSeries chart.type colors plotOptions time tooltip".split(" "),update:function(a,d,e,h){var m=this,t={credits:"addCredits",title:"setTitle",subtitle:"setSubtitle"},r=a.chart,l,n,q=[];p(m,"update",{options:a});if(r){b(!0,m.options.chart,r);"className"in r&&m.setClassName(r.className);"reflow"in r&&m.setReflow(r.reflow);if("inverted"in r||"polar"in r||"type"in r)m.propFromSeries(),l=!0;"alignTicks"in r&&(l=!0);c(r,function(a,b){-1!==
|
|
y("chart."+b,m.propsRequireUpdateSeries)&&(n=!0);-1!==y(b,m.propsRequireDirtyBox)&&(m.isDirtyBox=!0)});"style"in r&&m.renderer.setStyle(r.style)}a.colors&&(this.options.colors=a.colors);a.plotOptions&&b(!0,this.options.plotOptions,a.plotOptions);c(a,function(a,b){if(m[b]&&"function"===typeof m[b].update)m[b].update(a,!1);else if("function"===typeof m[t[b]])m[t[b]](a);"chart"!==b&&-1!==y(b,m.propsRequireUpdateSeries)&&(n=!0)});u("xAxis yAxis zAxis series colorAxis pane".split(" "),function(b){var c;
|
|
a[b]&&("series"===b&&(c=[],u(m[b],function(a,b){a.options.isInternal||c.push(b)})),u(K(a[b]),function(a,d){(d=k(a.id)&&m.get(a.id)||m[b][c?c[d]:d])&&d.coll===b&&(d.update(a,!1),e&&(d.touched=!0));if(!d&&e)if("series"===b)m.addSeries(a,!1).touched=!0;else if("xAxis"===b||"yAxis"===b)m.addAxis(a,"xAxis"===b,!1).touched=!0}),e&&u(m[b],function(a){a.touched||a.options.isInternal?delete a.touched:q.push(a)}))});u(q,function(a){a.remove&&a.remove(!1)});l&&u(m.axes,function(a){a.update({},!1)});n&&u(m.series,
|
|
function(a){a.update({},!1)});a.loading&&b(!0,m.options.loading,a.loading);l=r&&r.width;r=r&&r.height;g(l)&&l!==m.chartWidth||g(r)&&r!==m.chartHeight?m.setSize(l,r,h):f(d,!0)&&m.redraw(h);p(m,"afterUpdate",{options:a})},setSubtitle:function(a){this.setTitle(void 0,a)}});q(e.prototype,{update:function(a,b,c,d){function e(){g.applyOptions(a);null===g.y&&l&&(g.graphic=l.destroy());h(a,!0)&&(l&&l.element&&a&&a.marker&&void 0!==a.marker.symbol&&(g.graphic=l.destroy()),a&&a.dataLabels&&g.dataLabel&&(g.dataLabel=
|
|
g.dataLabel.destroy()),g.connector&&(g.connector=g.connector.destroy()));p=g.index;m.updateParallelArrays(g,p);r.data[p]=h(r.data[p],!0)||h(a,!0)?g.options:f(a,r.data[p]);m.isDirty=m.isDirtyData=!0;!m.fixedBox&&m.hasCartesianSeries&&(t.isDirtyBox=!0);"point"===r.legendType&&(t.isDirtyLegend=!0);b&&t.redraw(c)}var g=this,m=g.series,l=g.graphic,p,t=m.chart,r=m.options;b=f(b,!0);!1===d?e():g.firePointEvent("update",{options:a},e)},remove:function(a,b){this.series.removePoint(y(this,this.series.data),
|
|
a,b)}});q(w.prototype,{addPoint:function(a,b,c,d){var e=this.options,g=this.data,h=this.chart,l=this.xAxis,l=l&&l.hasNames&&l.names,m=e.data,p,t,r=this.xData,k,n;b=f(b,!0);p={series:this};this.pointClass.prototype.applyOptions.apply(p,[a]);n=p.x;k=r.length;if(this.requireSorting&&n<r[k-1])for(t=!0;k&&r[k-1]>n;)k--;this.updateParallelArrays(p,"splice",k,0,0);this.updateParallelArrays(p,k);l&&p.name&&(l[n]=p.name);m.splice(k,0,a);t&&(this.data.splice(k,0,null),this.processData());"point"===e.legendType&&
|
|
this.generatePoints();c&&(g[0]&&g[0].remove?g[0].remove(!1):(g.shift(),this.updateParallelArrays(p,"shift"),m.shift()));this.isDirtyData=this.isDirty=!0;b&&h.redraw(d)},removePoint:function(a,b,c){var d=this,e=d.data,g=e[a],h=d.points,l=d.chart,m=function(){h&&h.length===e.length&&h.splice(a,1);e.splice(a,1);d.options.data.splice(a,1);d.updateParallelArrays(g||{series:d},"splice",a,1);g&&g.destroy();d.isDirty=!0;d.isDirtyData=!0;b&&l.redraw()};t(c,l);b=f(b,!0);g?g.firePointEvent("remove",null,m):
|
|
m()},remove:function(a,b,c){function d(){e.destroy();e.remove=null;g.isDirtyLegend=g.isDirtyBox=!0;g.linkSeries();f(a,!0)&&g.redraw(b)}var e=this,g=e.chart;!1!==c?p(e,"remove",null,d):d()},update:function(c,d){var e=this,g=e.chart,h=e.userOptions,m=e.oldType||e.type,t=c.type||h.type||g.options.chart.type,l=G[m].prototype,k,n=["group","markerGroup","dataLabelsGroup"],w=["navigatorSeries","baseSeries"],A=e.finishedAnimating&&{animation:!1},F=["data","name","turboThreshold"],K=a.keys(c),v=0<K.length;
|
|
u(K,function(a){-1===y(a,F)&&(v=!1)});if(v)c.data&&this.setData(c.data,!1),c.name&&this.setName(c.name,!1);else{w=n.concat(w);u(w,function(a){w[a]=e[a];delete e[a]});c=b(h,A,{index:e.index,pointStart:f(h.pointStart,e.xData[0])},{data:e.options.data},c);e.remove(!1,null,!1);for(k in l)e[k]=void 0;G[t||m]?q(e,G[t||m].prototype):a.error(17,!0);u(w,function(a){e[a]=w[a]});e.init(g,c);c.zIndex!==h.zIndex&&u(n,function(a){e[a]&&e[a].attr({zIndex:c.zIndex})});e.oldType=m;g.linkSeries()}p(this,"afterUpdate");
|
|
f(d,!0)&&g.redraw(v?void 0:!1)},setName:function(a){this.name=this.options.name=this.userOptions.name=a;this.chart.isDirtyLegend=!0}});q(D.prototype,{update:function(a,d){var e=this.chart,g=a&&a.events||{};a=b(this.userOptions,a);e.options[this.coll].indexOf&&(e.options[this.coll][e.options[this.coll].indexOf(this.userOptions)]=a);c(e.options[this.coll].events,function(a,b){"undefined"===typeof g[b]&&(g[b]=void 0)});this.destroy(!0);this.init(e,q(a,{events:g}));e.isDirtyBox=!0;f(d,!0)&&e.redraw()},
|
|
remove:function(a){for(var b=this.chart,c=this.coll,d=this.series,e=d.length;e--;)d[e]&&d[e].remove(!1);v(b.axes,this);v(b[c],this);m(b.options[c])?b.options[c].splice(this.options.index,1):delete b.options[c];u(b[c],function(a,b){a.options.index=a.userOptions.index=b});this.destroy();b.isDirtyBox=!0;f(a,!0)&&b.redraw()},setTitle:function(a,b){this.update({title:a},b)},setCategories:function(a,b){this.update({categories:a},b)}})})(M);(function(a){var B=a.animObject,C=a.color,D=a.each,n=a.extend,d=
|
|
a.defined,k=a.isNumber,u=a.merge,v=a.pick,q=a.Series,p=a.seriesType,y=a.svg;p("column","line",{borderRadius:0,crisp:!0,groupPadding:.2,marker:null,pointPadding:.1,minPointLength:0,cropThreshold:50,pointRange:null,states:{hover:{halo:!1,brightness:.1},select:{color:"#cccccc",borderColor:"#000000"}},dataLabels:{align:null,verticalAlign:null,y:null},softThreshold:!1,startFromThreshold:!0,stickyTracking:!1,tooltip:{distance:6},threshold:0,borderColor:"#ffffff"},{cropShoulder:0,directTouch:!0,trackerGroups:["group",
|
|
"dataLabelsGroup"],negStacks:!0,init:function(){q.prototype.init.apply(this,arguments);var a=this,d=a.chart;d.hasRendered&&D(d.series,function(d){d.type===a.type&&(d.isDirty=!0)})},getColumnMetrics:function(){var a=this,d=a.options,m=a.xAxis,b=a.yAxis,c=m.options.reversedStacks,c=m.reversed&&!c||!m.reversed&&c,f,e={},p=0;!1===d.grouping?p=1:D(a.chart.series,function(c){var d=c.options,g=c.yAxis,h;c.type!==a.type||!c.visible&&a.chart.options.chart.ignoreHiddenSeries||b.len!==g.len||b.pos!==g.pos||
|
|
(d.stacking?(f=c.stackKey,void 0===e[f]&&(e[f]=p++),h=e[f]):!1!==d.grouping&&(h=p++),c.columnIndex=h)});var k=Math.min(Math.abs(m.transA)*(m.ordinalSlope||d.pointRange||m.closestPointRange||m.tickInterval||1),m.len),t=k*d.groupPadding,n=(k-2*t)/(p||1),d=Math.min(d.maxPointWidth||m.len,v(d.pointWidth,n*(1-2*d.pointPadding)));a.columnMetrics={width:d,offset:(n-d)/2+(t+((a.columnIndex||0)+(c?1:0))*n-k/2)*(c?-1:1)};return a.columnMetrics},crispCol:function(a,d,m,b){var c=this.chart,f=this.borderWidth,
|
|
e=-(f%2?.5:0),f=f%2?.5:1;c.inverted&&c.renderer.isVML&&(f+=1);this.options.crisp&&(m=Math.round(a+m)+e,a=Math.round(a)+e,m-=a);b=Math.round(d+b)+f;e=.5>=Math.abs(d)&&.5<b;d=Math.round(d)+f;b-=d;e&&b&&(--d,b+=1);return{x:a,y:d,width:m,height:b}},translate:function(){var a=this,h=a.chart,m=a.options,b=a.dense=2>a.closestPointRange*a.xAxis.transA,b=a.borderWidth=v(m.borderWidth,b?0:1),c=a.yAxis,f=m.threshold,e=a.translatedThreshold=c.getThreshold(f),p=v(m.minPointLength,5),k=a.getColumnMetrics(),t=k.width,
|
|
n=a.barW=Math.max(t,1+2*b),A=a.pointXOffset=k.offset;h.inverted&&(e-=.5);m.pointPadding&&(n=Math.ceil(n));q.prototype.translate.apply(a);D(a.points,function(b){var g=v(b.yBottom,e),m=999+Math.abs(g),k=t,m=Math.min(Math.max(-m,b.plotY),c.len+m),q=b.plotX+A,w=n,l=Math.min(m,g),x,u=Math.max(m,g)-l;p&&Math.abs(u)<p&&(u=p,x=!c.reversed&&!b.negative||c.reversed&&b.negative,b.y===f&&a.dataMax<=f&&c.min<f&&(x=!x),l=Math.abs(l-e)>p?g-p:e-(x?p:0));d(b.options.pointWidth)&&(k=w=Math.ceil(b.options.pointWidth),
|
|
q-=Math.round((k-t)/2));b.barX=q;b.pointWidth=k;b.tooltipPos=h.inverted?[c.len+c.pos-h.plotLeft-m,a.xAxis.len-q-w/2,u]:[q+w/2,m+c.pos-h.plotTop,u];b.shapeType="rect";b.shapeArgs=a.crispCol.apply(a,b.isNull?[q,e,w,0]:[q,l,w,u])})},getSymbol:a.noop,drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,drawGraph:function(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")},pointAttribs:function(a,d){var g=this.options,b,c=this.pointAttrToOptions||{};b=c.stroke||"borderColor";var f=
|
|
c["stroke-width"]||"borderWidth",e=a&&a.color||this.color,h=a&&a[b]||g[b]||this.color||e,p=a&&a[f]||g[f]||this[f]||0,c=g.dashStyle;a&&this.zones.length&&(e=a.getZone(),e=a.options.color||e&&e.color||this.color);d&&(a=u(g.states[d],a.options.states&&a.options.states[d]||{}),d=a.brightness,e=a.color||void 0!==d&&C(e).brighten(a.brightness).get()||e,h=a[b]||h,p=a[f]||p,c=a.dashStyle||c);b={fill:e,stroke:h,"stroke-width":p};c&&(b.dashstyle=c);return b},drawPoints:function(){var a=this,d=this.chart,m=
|
|
a.options,b=d.renderer,c=m.animationLimit||250,f;D(a.points,function(e){var g=e.graphic,h=g&&d.pointCount<c?"animate":"attr";if(k(e.plotY)&&null!==e.y){f=e.shapeArgs;if(g)g[h](u(f));else e.graphic=g=b[e.shapeType](f).add(e.group||a.group);m.borderRadius&&g.attr({r:m.borderRadius});g[h](a.pointAttribs(e,e.selected&&"select")).shadow(m.shadow,null,m.stacking&&!m.borderRadius);g.addClass(e.getClassName(),!0)}else g&&(e.graphic=g.destroy())})},animate:function(a){var d=this,g=this.yAxis,b=d.options,c=
|
|
this.chart.inverted,f={},e=c?"translateX":"translateY",p;y&&(a?(f.scaleY=.001,a=Math.min(g.pos+g.len,Math.max(g.pos,g.toPixels(b.threshold))),c?f.translateX=a-g.len:f.translateY=a,d.group.attr(f)):(p=d.group.attr(e),d.group.animate({scaleY:1},n(B(d.options.animation),{step:function(a,b){f[e]=p+b.pos*(g.pos-p);d.group.attr(f)}})),d.animate=null))},remove:function(){var a=this,d=a.chart;d.hasRendered&&D(d.series,function(d){d.type===a.type&&(d.isDirty=!0)});q.prototype.remove.apply(a,arguments)}})})(M);
|
|
(function(a){var B=a.Series;a=a.seriesType;a("scatter","line",{lineWidth:0,findNearestPointBy:"xy",marker:{enabled:!0},tooltip:{headerFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e \x3cspan style\x3d"font-size: 0.85em"\x3e {series.name}\x3c/span\x3e\x3cbr/\x3e',pointFormat:"x: \x3cb\x3e{point.x}\x3c/b\x3e\x3cbr/\x3ey: \x3cb\x3e{point.y}\x3c/b\x3e\x3cbr/\x3e"}},{sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"],takeOrdinalPosition:!1,
|
|
drawGraph:function(){this.options.lineWidth&&B.prototype.drawGraph.call(this)}})})(M);(function(a){var B=a.addEvent,C=a.arrayMax,D=a.defined,n=a.each,d=a.extend,k=a.format,u=a.map,v=a.merge,q=a.noop,p=a.pick,y=a.relativeLength,g=a.Series,h=a.seriesTypes,m=a.some,b=a.stableSort,c=a.isArray,f=a.splat;a.distribute=function(c,d,f){function e(a,b){return a.target-b.target}var g,h=!0,k=c,r=[],q;q=0;var w=k.reducedLen||d;for(g=c.length;g--;)q+=c[g].size;if(q>w){b(c,function(a,b){return(b.rank||0)-(a.rank||
|
|
0)});for(q=g=0;q<=w;)q+=c[g].size,g++;r=c.splice(g-1,c.length)}b(c,e);for(c=u(c,function(a){return{size:a.size,targets:[a.target],align:p(a.align,.5)}});h;){for(g=c.length;g--;)h=c[g],q=(Math.min.apply(0,h.targets)+Math.max.apply(0,h.targets))/2,h.pos=Math.min(Math.max(0,q-h.size*h.align),d-h.size);g=c.length;for(h=!1;g--;)0<g&&c[g-1].pos+c[g-1].size>c[g].pos&&(c[g-1].size+=c[g].size,c[g-1].targets=c[g-1].targets.concat(c[g].targets),c[g-1].align=.5,c[g-1].pos+c[g-1].size>d&&(c[g-1].pos=d-c[g-1].size),
|
|
c.splice(g,1),h=!0)}k.push.apply(k,r);g=0;m(c,function(b){var c=0;if(m(b.targets,function(){k[g].pos=b.pos+c;if(Math.abs(k[g].pos-k[g].target)>f)return n(k.slice(0,g+1),function(a){delete a.pos}),k.reducedLen=(k.reducedLen||d)-.1*d,k.reducedLen>.1*d&&a.distribute(k,d,f),!0;c+=k[g].size;g++}))return!0});b(k,e)};g.prototype.drawDataLabels=function(){function b(a,b){var c=b.filter;return c?(b=c.operator,a=a[c.property],c=c.value,"\x3e"===b&&a>c||"\x3c"===b&&a<c||"\x3e\x3d"===b&&a>=c||"\x3c\x3d"===b&&
|
|
a<=c||"\x3d\x3d"===b&&a==c||"\x3d\x3d\x3d"===b&&a===c?!0:!1):!0}function d(a,b){var d=[],e;if(c(a)&&!c(b))d=u(a,function(a){return v(a,b)});else if(c(b)&&!c(a))d=u(b,function(b){return v(a,b)});else if(c(a)||c(b))for(e=Math.max(a.length,b.length);e--;)d[e]=v(a[e],b[e]);else d=v(a,b);return d}var g=this,h=g.chart,m=g.options,q=m.dataLabels,y=g.points,r,I=g.hasRendered||0,E,C=p(q.defer,!!m.animation),J=h.renderer,q=d(d(h.options.plotOptions&&h.options.plotOptions.series&&h.options.plotOptions.series.dataLabels,
|
|
h.options.plotOptions&&h.options.plotOptions[g.type]&&h.options.plotOptions[g.type].dataLabels),q);if(c(q)||q.enabled||g._hasPointLabels)E=g.plotGroup("dataLabelsGroup","data-labels",C&&!I?"hidden":"visible",q.zIndex||6),C&&(E.attr({opacity:+I}),I||B(g,"afterAnimate",function(){g.visible&&E.show(!0);E[m.animation?"animate":"attr"]({opacity:1},{duration:200})})),n(y,function(c){r=f(d(q,c.dlOptions||c.options&&c.options.dataLabels));n(r,function(d,e){var f=d.enabled&&!c.isNull&&b(c,d),l,t,r,n,q=c.dataLabels?
|
|
c.dataLabels[e]:c.dataLabel,w=c.connectors?c.connectors[e]:c.connector,A=!q;f&&(l=c.getLabelConfig(),t=d[c.formatPrefix+"Format"]||d.format,l=D(t)?k(t,l,h.time):(d[c.formatPrefix+"Formatter"]||d.formatter).call(l,d),t=d.style,r=d.rotation,t.color=p(d.color,t.color,g.color,"#000000"),"contrast"===t.color&&(c.contrastColor=J.getContrast(c.color||g.color),t.color=d.inside||0>p(d.distance,c.labelDistance)||m.stacking?c.contrastColor:"#000000"),m.cursor&&(t.cursor=m.cursor),n={fill:d.backgroundColor,stroke:d.borderColor,
|
|
"stroke-width":d.borderWidth,r:d.borderRadius||0,rotation:r,padding:d.padding,zIndex:1},a.objectEach(n,function(a,b){void 0===a&&delete n[b]}));!q||f&&D(l)?f&&D(l)&&(q?n.text=l:(c.dataLabels=c.dataLabels||[],q=c.dataLabels[e]=r?J.text(l,0,-9999).addClass("highcharts-data-label"):J.label(l,0,-9999,d.shape,null,null,d.useHTML,null,"data-label"),e||(c.dataLabel=q),q.addClass(" highcharts-data-label-color-"+c.colorIndex+" "+(d.className||"")+(d.useHTML?" highcharts-tracker":""))),q.options=d,q.attr(n),
|
|
q.css(t).shadow(d.shadow),q.added||q.add(E),g.alignDataLabel(c,q,d,null,A)):(c.dataLabel=c.dataLabel.destroy(),c.dataLabels&&(1===c.dataLabels.length?delete c.dataLabels:delete c.dataLabels[e]),e||delete c.dataLabel,w&&(c.connector=c.connector.destroy(),c.connectors&&(1===c.connectors.length?delete c.connectors:delete c.connectors[e])))})});a.fireEvent(this,"afterDrawDataLabels")};g.prototype.alignDataLabel=function(a,b,c,f,g){var e=this.chart,h=e.inverted,m=p(a.dlBox&&a.dlBox.centerX,a.plotX,-9999),
|
|
k=p(a.plotY,-9999),t=b.getBBox(),n,q=c.rotation,l=c.align,w=this.visible&&(a.series.forceDL||e.isInsidePlot(m,Math.round(k),h)||f&&e.isInsidePlot(m,h?f.x+1:f.y+f.height-1,h)),u="justify"===p(c.overflow,"justify");if(w&&(n=c.style.fontSize,n=e.renderer.fontMetrics(n,b).b,f=d({x:h?this.yAxis.len-k:m,y:Math.round(h?this.xAxis.len-m:k),width:0,height:0},f),d(c,{width:t.width,height:t.height}),q?(u=!1,m=e.renderer.rotCorr(n,q),m={x:f.x+c.x+f.width/2+m.x,y:f.y+c.y+{top:0,middle:.5,bottom:1}[c.verticalAlign]*
|
|
f.height},b[g?"attr":"animate"](m).attr({align:l}),k=(q+720)%360,k=180<k&&360>k,"left"===l?m.y-=k?t.height:0:"center"===l?(m.x-=t.width/2,m.y-=t.height/2):"right"===l&&(m.x-=t.width,m.y-=k?0:t.height),b.placed=!0,b.alignAttr=m):(b.align(c,null,f),m=b.alignAttr),u&&0<=f.height?a.isLabelJustified=this.justifyDataLabel(b,c,m,t,f,g):p(c.crop,!0)&&(w=e.isInsidePlot(m.x,m.y)&&e.isInsidePlot(m.x+t.width,m.y+t.height)),c.shape&&!q))b[g?"attr":"animate"]({anchorX:h?e.plotWidth-a.plotY:a.plotX,anchorY:h?e.plotHeight-
|
|
a.plotX:a.plotY});w||(b.attr({y:-9999}),b.placed=!1)};g.prototype.justifyDataLabel=function(a,b,c,d,f,g){var e=this.chart,h=b.align,m=b.verticalAlign,p,k,t=a.box?0:a.padding||0;p=c.x+t;0>p&&("right"===h?b.align="left":b.x=-p,k=!0);p=c.x+d.width-t;p>e.plotWidth&&("left"===h?b.align="right":b.x=e.plotWidth-p,k=!0);p=c.y+t;0>p&&("bottom"===m?b.verticalAlign="top":b.y=-p,k=!0);p=c.y+d.height-t;p>e.plotHeight&&("top"===m?b.verticalAlign="bottom":b.y=e.plotHeight-p,k=!0);k&&(a.placed=!g,a.align(b,null,
|
|
f));return k};h.pie&&(h.pie.prototype.drawDataLabels=function(){var b=this,c=b.data,d,f=b.chart,h=b.options.dataLabels,m=p(h.connectorPadding,10),k=p(h.connectorWidth,1),q=f.plotWidth,u=f.plotHeight,y=Math.round(f.chartWidth/3),v,J=b.center,l=J[2]/2,x=J[1],B,M,H,P,Q=[[],[]],z,O,S,R,U=[0,0,0,0];b.visible&&(h.enabled||b._hasPointLabels)&&(n(c,function(a){a.dataLabel&&a.visible&&a.dataLabel.shortened&&(a.dataLabel.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),a.dataLabel.shortened=!1)}),
|
|
g.prototype.drawDataLabels.apply(b),n(c,function(a){a.dataLabel&&(a.visible?(Q[a.half].push(a),a.dataLabel._pos=null,!D(h.style.width)&&!D(a.options.dataLabels&&a.options.dataLabels.style&&a.options.dataLabels.style.width)&&a.dataLabel.getBBox().width>y&&(a.dataLabel.css({width:.7*y}),a.dataLabel.shortened=!0)):(a.dataLabel=a.dataLabel.destroy(),a.dataLabels&&1===a.dataLabels.length&&delete a.dataLabels))}),n(Q,function(c,e){var g,k,t=c.length,r=[],w;if(t)for(b.sortByAngle(c,e-.5),0<b.maxLabelDistance&&
|
|
(g=Math.max(0,x-l-b.maxLabelDistance),k=Math.min(x+l+b.maxLabelDistance,f.plotHeight),n(c,function(a){0<a.labelDistance&&a.dataLabel&&(a.top=Math.max(0,x-l-a.labelDistance),a.bottom=Math.min(x+l+a.labelDistance,f.plotHeight),w=a.dataLabel.getBBox().height||21,a.distributeBox={target:a.labelPos[1]-a.top+w/2,size:w,rank:a.y},r.push(a.distributeBox))}),g=k+w-g,a.distribute(r,g,g/5)),R=0;R<t;R++)d=c[R],H=d.labelPos,B=d.dataLabel,S=!1===d.visible?"hidden":"inherit",O=g=H[1],r&&D(d.distributeBox)&&(void 0===
|
|
d.distributeBox.pos?S="hidden":(P=d.distributeBox.size,O=d.top+d.distributeBox.pos)),delete d.positionIndex,z=h.justify?J[0]+(e?-1:1)*(l+d.labelDistance):b.getX(O<d.top+2||O>d.bottom-2?g:O,e,d),B._attr={visibility:S,align:H[6]},B._pos={x:z+h.x+({left:m,right:-m}[H[6]]||0),y:O+h.y-10},H.x=z,H.y=O,p(h.crop,!0)&&(M=B.getBBox().width,g=null,z-M<m&&1===e?(g=Math.round(M-z+m),U[3]=Math.max(g,U[3])):z+M>q-m&&0===e&&(g=Math.round(z+M-q+m),U[1]=Math.max(g,U[1])),0>O-P/2?U[0]=Math.max(Math.round(-O+P/2),U[0]):
|
|
O+P/2>u&&(U[2]=Math.max(Math.round(O+P/2-u),U[2])),B.sideOverflow=g)}),0===C(U)||this.verifyDataLabelOverflow(U))&&(this.placeDataLabels(),k&&n(this.points,function(a){var c;v=a.connector;if((B=a.dataLabel)&&B._pos&&a.visible&&0<a.labelDistance){S=B._attr.visibility;if(c=!v)a.connector=v=f.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+a.colorIndex+(a.className?" "+a.className:"")).add(b.dataLabelsGroup),v.attr({"stroke-width":k,stroke:h.connectorColor||a.color||"#666666"});
|
|
v[c?"attr":"animate"]({d:b.connectorPath(a.labelPos)});v.attr("visibility",S)}else v&&(a.connector=v.destroy())}))},h.pie.prototype.connectorPath=function(a){var b=a.x,c=a.y;return p(this.options.dataLabels.softConnector,!0)?["M",b+("left"===a[6]?5:-5),c,"C",b,c,2*a[2]-a[4],2*a[3]-a[5],a[2],a[3],"L",a[4],a[5]]:["M",b+("left"===a[6]?5:-5),c,"L",a[2],a[3],"L",a[4],a[5]]},h.pie.prototype.placeDataLabels=function(){n(this.points,function(a){var b=a.dataLabel;b&&a.visible&&((a=b._pos)?(b.sideOverflow&&
|
|
(b._attr.width=b.getBBox().width-b.sideOverflow,b.css({width:b._attr.width+"px",textOverflow:(this.options.dataLabels.style||{}).textOverflow||"ellipsis"}),b.shortened=!0),b.attr(b._attr),b[b.moved?"animate":"attr"](a),b.moved=!0):b&&b.attr({y:-9999}))},this)},h.pie.prototype.alignDataLabel=q,h.pie.prototype.verifyDataLabelOverflow=function(a){var b=this.center,c=this.options,d=c.center,f=c.minSize||80,e,g=null!==c.size;g||(null!==d[0]?e=Math.max(b[2]-Math.max(a[1],a[3]),f):(e=Math.max(b[2]-a[1]-
|
|
a[3],f),b[0]+=(a[3]-a[1])/2),null!==d[1]?e=Math.max(Math.min(e,b[2]-Math.max(a[0],a[2])),f):(e=Math.max(Math.min(e,b[2]-a[0]-a[2]),f),b[1]+=(a[0]-a[2])/2),e<b[2]?(b[2]=e,b[3]=Math.min(y(c.innerSize||0,e),e),this.translate(b),this.drawDataLabels&&this.drawDataLabels()):g=!0);return g});h.column&&(h.column.prototype.alignDataLabel=function(a,b,c,d,f){var e=this.chart.inverted,h=a.series,m=a.dlBox||a.shapeArgs,k=p(a.below,a.plotY>p(this.translatedThreshold,h.yAxis.len)),t=p(c.inside,!!this.options.stacking);
|
|
m&&(d=v(m),0>d.y&&(d.height+=d.y,d.y=0),m=d.y+d.height-h.yAxis.len,0<m&&(d.height-=m),e&&(d={x:h.yAxis.len-d.y-d.height,y:h.xAxis.len-d.x-d.width,width:d.height,height:d.width}),t||(e?(d.x+=k?0:d.width,d.width=0):(d.y+=k?d.height:0,d.height=0)));c.align=p(c.align,!e||t?"center":k?"right":"left");c.verticalAlign=p(c.verticalAlign,e||t?"middle":k?"top":"bottom");g.prototype.alignDataLabel.call(this,a,b,c,d,f);a.isLabelJustified&&a.contrastColor&&b.css({color:a.contrastColor})})})(M);(function(a){var B=
|
|
a.Chart,C=a.each,D=a.isArray,n=a.objectEach,d=a.pick;a=a.addEvent;a(B,"render",function(){var a=[];C(this.labelCollectors||[],function(d){a=a.concat(d())});C(this.yAxis||[],function(d){d.options.stackLabels&&!d.options.stackLabels.allowOverlap&&n(d.stacks,function(d){n(d,function(d){a.push(d.label)})})});C(this.series||[],function(k){var n=k.options.dataLabels;k.visible&&(!1!==n.enabled||k._hasPointLabels)&&C(k.points,function(k){if(k.visible){var p=D(k.dataLabels)?k.dataLabels:k.dataLabel?[k.dataLabel]:
|
|
[];C(p,function(p){var g=p.options;p.labelrank=d(g.labelrank,k.labelrank,k.shapeArgs&&k.shapeArgs.height);g.allowOverlap||a.push(p)})}})});this.hideOverlappingLabels(a)});B.prototype.hideOverlappingLabels=function(a){var d=a.length,k=this.renderer,n,p,y,g,h,m,b=function(a,b,d,g,h,m,p,k){return!(h>a+d||h+p<a||m>b+g||m+k<b)};y=function(a){var b,c,d,g=a.box?0:a.padding||0;d=0;if(a&&(!a.alignAttr||a.placed))return b=a.alignAttr||{x:a.attr("x"),y:a.attr("y")},c=a.parentGroup,a.width||(d=a.getBBox(),a.width=
|
|
d.width,a.height=d.height,d=k.fontMetrics(null,a.element).h),{x:b.x+(c.translateX||0)+g,y:b.y+(c.translateY||0)+g-d,width:a.width-2*g,height:a.height-2*g}};for(p=0;p<d;p++)if(n=a[p])n.oldOpacity=n.opacity,n.newOpacity=1,n.absoluteBox=y(n);a.sort(function(a,b){return(b.labelrank||0)-(a.labelrank||0)});for(p=0;p<d;p++)for(m=(y=a[p])&&y.absoluteBox,n=p+1;n<d;++n)if(h=(g=a[n])&&g.absoluteBox,m&&h&&y!==g&&0!==y.newOpacity&&0!==g.newOpacity&&(h=b(m.x,m.y,m.width,m.height,h.x,h.y,h.width,h.height)))(y.labelrank<
|
|
g.labelrank?y:g).newOpacity=0;C(a,function(a){var b,c;a&&(c=a.newOpacity,a.oldOpacity!==c&&(a.alignAttr&&a.placed?(c?a.show(!0):b=function(){a.hide()},a.alignAttr.opacity=c,a[a.isOld?"animate":"attr"](a.alignAttr,null,b)):a.attr({opacity:c})),a.isOld=!0)})}})(M);(function(a){var B=a.addEvent,C=a.Chart,D=a.createElement,n=a.css,d=a.defaultOptions,k=a.defaultPlotOptions,u=a.each,v=a.extend,q=a.fireEvent,p=a.hasTouch,y=a.inArray,g=a.isObject,h=a.Legend,m=a.merge,b=a.pick,c=a.Point,f=a.Series,e=a.seriesTypes,
|
|
w=a.svg,G;G=a.TrackerMixin={drawTrackerPoint:function(){var a=this,b=a.chart.pointer,c=function(a){var c=b.getPointFromEvent(a);void 0!==c&&(b.isDirectTouch=!0,c.onMouseOver(a))};u(a.points,function(a){a.graphic&&(a.graphic.element.point=a);a.dataLabel&&(a.dataLabel.div?a.dataLabel.div.point=a:a.dataLabel.element.point=a)});a._hasTracking||(u(a.trackerGroups,function(d){if(a[d]){a[d].addClass("highcharts-tracker").on("mouseover",c).on("mouseout",function(a){b.onTrackerMouseOut(a)});if(p)a[d].on("touchstart",
|
|
c);a.options.cursor&&a[d].css(n).css({cursor:a.options.cursor})}}),a._hasTracking=!0);q(this,"afterDrawTracker")},drawTrackerGraph:function(){var a=this,b=a.options,c=b.trackByArea,d=[].concat(c?a.areaPath:a.graphPath),f=d.length,e=a.chart,g=e.pointer,h=e.renderer,m=e.options.tooltip.snap,l=a.tracker,k,n=function(){if(e.hoverSeries!==a)a.onMouseOver()},y="rgba(192,192,192,"+(w?.0001:.002)+")";if(f&&!c)for(k=f+1;k--;)"M"===d[k]&&d.splice(k+1,0,d[k+1]-m,d[k+2],"L"),(k&&"M"===d[k]||k===f)&&d.splice(k,
|
|
0,"L",d[k-2]+m,d[k-1]);l?l.attr({d:d}):a.graph&&(a.tracker=h.path(d).attr({"stroke-linejoin":"round",stroke:y,fill:c?y:"none","stroke-width":a.graph.strokeWidth()+(c?0:2*m),visibility:a.visible?"visible":"hidden",zIndex:2}).addClass(c?"highcharts-tracker-area":"highcharts-tracker-line").add(a.group),u([a.tracker,a.markerGroup],function(a){a.addClass("highcharts-tracker").on("mouseover",n).on("mouseout",function(a){g.onTrackerMouseOut(a)});b.cursor&&a.css({cursor:b.cursor});if(p)a.on("touchstart",
|
|
n)}));q(this,"afterDrawTracker")}};e.column&&(e.column.prototype.drawTracker=G.drawTrackerPoint);e.pie&&(e.pie.prototype.drawTracker=G.drawTrackerPoint);e.scatter&&(e.scatter.prototype.drawTracker=G.drawTrackerPoint);d.legend.itemStyle.cursor="pointer";v(h.prototype,{setItemEvents:function(a,b,d){var f=this,e=f.chart.renderer.boxWrapper,g="highcharts-legend-"+(a instanceof c?"point":"series")+"-active";(d?b:a.legendGroup).on("mouseover",function(){a.setState("hover");e.addClass(g);b.css(f.options.itemHoverStyle)}).on("mouseout",
|
|
function(){b.css(m(a.visible?f.itemStyle:f.itemHiddenStyle));e.removeClass(g);a.setState()}).on("click",function(b){var c=function(){a.setVisible&&a.setVisible()};e.removeClass(g);b={browserEvent:b};a.firePointEvent?a.firePointEvent("legendItemClick",b,c):q(a,"legendItemClick",b,c)})},createCheckboxForItem:function(a){a.checkbox=D("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:a.selected,defaultChecked:a.selected},this.options.itemCheckboxStyle,this.chart.container);B(a.checkbox,
|
|
"click",function(b){q(a.series||a,"checkboxClick",{checked:b.target.checked,item:a},function(){a.select()})})}});v(C.prototype,{showResetZoom:function(){function a(){b.zoomOut()}var b=this,c=d.lang,f=b.options.chart.resetZoomButton,e=f.theme,g=e.states,h="chart"===f.relativeTo?null:"plotBox";q(this,"beforeShowResetZoom",null,function(){b.resetZoomButton=b.renderer.button(c.resetZoom,null,null,a,e,g&&g.hover).attr({align:f.position.align,title:c.resetZoomTitle}).addClass("highcharts-reset-zoom").add().align(f.position,
|
|
!1,h)})},zoomOut:function(){q(this,"selection",{resetSelection:!0},this.zoom)},zoom:function(a){var c,d=this.pointer,f=!1,e;!a||a.resetSelection?(u(this.axes,function(a){c=a.zoom()}),d.initiated=!1):u(a.xAxis.concat(a.yAxis),function(a){var b=a.axis;d[b.isXAxis?"zoomX":"zoomY"]&&(c=b.zoom(a.min,a.max),b.displayBtn&&(f=!0))});e=this.resetZoomButton;f&&!e?this.showResetZoom():!f&&g(e)&&(this.resetZoomButton=e.destroy());c&&this.redraw(b(this.options.chart.animation,a&&a.animation,100>this.pointCount))},
|
|
pan:function(a,b){var c=this,d=c.hoverPoints,f;d&&u(d,function(a){a.setState()});u("xy"===b?[1,0]:[1],function(b){b=c[b?"xAxis":"yAxis"][0];var d=b.horiz,e=a[d?"chartX":"chartY"],d=d?"mouseDownX":"mouseDownY",g=c[d],h=(b.pointRange||0)/2,m=b.reversed&&!c.inverted||!b.reversed&&c.inverted?-1:1,k=b.getExtremes(),p=b.toValue(g-e,!0)+h*m,m=b.toValue(g+b.len-e,!0)-h*m,n=m<p,g=n?m:p,p=n?p:m,m=Math.min(k.dataMin,h?k.min:b.toValue(b.toPixels(k.min)-b.minPixelPadding)),h=Math.max(k.dataMax,h?k.max:b.toValue(b.toPixels(k.max)+
|
|
b.minPixelPadding)),n=m-g;0<n&&(p+=n,g=m);n=p-h;0<n&&(p=h,g-=n);b.series.length&&g!==k.min&&p!==k.max&&(b.setExtremes(g,p,!1,!1,{trigger:"pan"}),f=!0);c[d]=e});f&&c.redraw(!1);n(c.container,{cursor:"move"})}});v(c.prototype,{select:function(a,c){var d=this,f=d.series,e=f.chart;a=b(a,!d.selected);d.firePointEvent(a?"select":"unselect",{accumulate:c},function(){d.selected=d.options.selected=a;f.options.data[y(d,f.data)]=d.options;d.setState(a&&"select");c||u(e.getSelectedPoints(),function(a){a.selected&&
|
|
a!==d&&(a.selected=a.options.selected=!1,f.options.data[y(a,f.data)]=a.options,a.setState(""),a.firePointEvent("unselect"))})})},onMouseOver:function(a){var b=this.series.chart,c=b.pointer;a=a?c.normalize(a):c.getChartCoordinatesFromPoint(this,b.inverted);c.runPointActions(a,this)},onMouseOut:function(){var a=this.series.chart;this.firePointEvent("mouseOut");u(a.hoverPoints||[],function(a){a.setState()});a.hoverPoints=a.hoverPoint=null},importEvents:function(){if(!this.hasImportedEvents){var b=this,
|
|
c=m(b.series.options.point,b.options).events;b.events=c;a.objectEach(c,function(a,c){B(b,c,a)});this.hasImportedEvents=!0}},setState:function(a,c){var d=Math.floor(this.plotX),f=this.plotY,e=this.series,g=e.options.states[a||"normal"]||{},h=k[e.type].marker&&e.options.marker,m=h&&!1===h.enabled,p=h&&h.states&&h.states[a||"normal"]||{},l=!1===p.enabled,n=e.stateMarkerGraphic,t=this.marker||{},u=e.chart,w=e.halo,y,G=h&&e.markerAttribs;a=a||"";if(!(a===this.state&&!c||this.selected&&"select"!==a||!1===
|
|
g.enabled||a&&(l||m&&!1===p.enabled)||a&&t.states&&t.states[a]&&!1===t.states[a].enabled)){G&&(y=e.markerAttribs(this,a));if(this.graphic)this.state&&this.graphic.removeClass("highcharts-point-"+this.state),a&&this.graphic.addClass("highcharts-point-"+a),this.graphic.animate(e.pointAttribs(this,a),b(u.options.chart.animation,g.animation)),y&&this.graphic.animate(y,b(u.options.chart.animation,p.animation,h.animation)),n&&n.hide();else{if(a&&p){h=t.symbol||e.symbol;n&&n.currentSymbol!==h&&(n=n.destroy());
|
|
if(n)n[c?"animate":"attr"]({x:y.x,y:y.y});else h&&(e.stateMarkerGraphic=n=u.renderer.symbol(h,y.x,y.y,y.width,y.height).add(e.markerGroup),n.currentSymbol=h);n&&n.attr(e.pointAttribs(this,a))}n&&(n[a&&u.isInsidePlot(d,f,u.inverted)?"show":"hide"](),n.element.point=this)}(d=g.halo)&&d.size?(w||(e.halo=w=u.renderer.path().add((this.graphic||n).parentGroup)),w.show()[c?"animate":"attr"]({d:this.haloPath(d.size)}),w.attr({"class":"highcharts-halo highcharts-color-"+b(this.colorIndex,e.colorIndex)+(this.className?
|
|
" "+this.className:""),zIndex:-1}),w.point=this,w.attr(v({fill:this.color||e.color,"fill-opacity":d.opacity},d.attributes))):w&&w.point&&w.point.haloPath&&w.animate({d:w.point.haloPath(0)},null,w.hide);this.state=a;q(this,"afterSetState")}},haloPath:function(a){return this.series.chart.renderer.symbols.circle(Math.floor(this.plotX)-a,this.plotY-a,2*a,2*a)}});v(f.prototype,{onMouseOver:function(){var a=this.chart,b=a.hoverSeries;if(b&&b!==this)b.onMouseOut();this.options.events.mouseOver&&q(this,"mouseOver");
|
|
this.setState("hover");a.hoverSeries=this},onMouseOut:function(){var a=this.options,b=this.chart,c=b.tooltip,d=b.hoverPoint;b.hoverSeries=null;if(d)d.onMouseOut();this&&a.events.mouseOut&&q(this,"mouseOut");!c||this.stickyTracking||c.shared&&!this.noSharedTooltip||c.hide();this.setState()},setState:function(a){var c=this,d=c.options,f=c.graph,e=d.states,g=d.lineWidth,d=0;a=a||"";if(c.state!==a&&(u([c.group,c.markerGroup,c.dataLabelsGroup],function(b){b&&(c.state&&b.removeClass("highcharts-series-"+
|
|
c.state),a&&b.addClass("highcharts-series-"+a))}),c.state=a,!e[a]||!1!==e[a].enabled)&&(a&&(g=e[a].lineWidth||g+(e[a].lineWidthPlus||0)),f&&!f.dashstyle))for(g={"stroke-width":g},f.animate(g,b(e[a||"normal"]&&e[a||"normal"].animation,c.chart.options.chart.animation));c["zone-graph-"+d];)c["zone-graph-"+d].attr(g),d+=1},setVisible:function(a,b){var c=this,d=c.chart,f=c.legendItem,e,g=d.options.chart.ignoreHiddenSeries,h=c.visible;e=(c.visible=a=c.options.visible=c.userOptions.visible=void 0===a?!h:
|
|
a)?"show":"hide";u(["group","dataLabelsGroup","markerGroup","tracker","tt"],function(a){if(c[a])c[a][e]()});if(d.hoverSeries===c||(d.hoverPoint&&d.hoverPoint.series)===c)c.onMouseOut();f&&d.legend.colorizeItem(c,a);c.isDirty=!0;c.options.stacking&&u(d.series,function(a){a.options.stacking&&a.visible&&(a.isDirty=!0)});u(c.linkedSeries,function(b){b.setVisible(a,!1)});g&&(d.isDirtyBox=!0);q(c,e);!1!==b&&d.redraw()},show:function(){this.setVisible(!0)},hide:function(){this.setVisible(!1)},select:function(a){this.selected=
|
|
a=void 0===a?!this.selected:a;this.checkbox&&(this.checkbox.checked=a);q(this,a?"select":"unselect")},drawTracker:G.drawTrackerGraph})})(M);(function(a){var B=a.Chart,C=a.each,D=a.inArray,n=a.isArray,d=a.isObject,k=a.pick,u=a.splat;B.prototype.setResponsive=function(d){var k=this.options.responsive,p=[],n=this.currentResponsive;k&&k.rules&&C(k.rules,function(g){void 0===g._id&&(g._id=a.uniqueKey());this.matchResponsiveRule(g,p,d)},this);var g=a.merge.apply(0,a.map(p,function(d){return a.find(k.rules,
|
|
function(a){return a._id===d}).chartOptions})),p=p.toString()||void 0;p!==(n&&n.ruleIds)&&(n&&this.update(n.undoOptions,d),p?(this.currentResponsive={ruleIds:p,mergedOptions:g,undoOptions:this.currentOptions(g)},this.update(g,d)):this.currentResponsive=void 0)};B.prototype.matchResponsiveRule=function(a,d){var p=a.condition;(p.callback||function(){return this.chartWidth<=k(p.maxWidth,Number.MAX_VALUE)&&this.chartHeight<=k(p.maxHeight,Number.MAX_VALUE)&&this.chartWidth>=k(p.minWidth,0)&&this.chartHeight>=
|
|
k(p.minHeight,0)}).call(this)&&d.push(a._id)};B.prototype.currentOptions=function(k){function q(k,g,h,m){var b;a.objectEach(k,function(a,f){if(!m&&-1<D(f,["series","xAxis","yAxis"]))for(a=u(a),h[f]=[],b=0;b<a.length;b++)g[f][b]&&(h[f][b]={},q(a[b],g[f][b],h[f][b],m+1));else d(a)?(h[f]=n(a)?[]:{},q(a,g[f]||{},h[f],m+1)):h[f]=g[f]||null})}var p={};q(k,this.options,p,0);return p}})(M);(function(a){var B=a.addEvent,C=a.Axis,D=a.each,n=a.pick;B(C,"getSeriesExtremes",function(){var a=[];this.isXAxis&&(D(this.series,
|
|
function(d,n){d.useMapGeometry&&(a[n]=d.xData,d.xData=[])}),this.seriesXData=a)});B(C,"afterGetSeriesExtremes",function(){var a=this.seriesXData,k,u,v;this.isXAxis&&(k=n(this.dataMin,Number.MAX_VALUE),u=n(this.dataMax,-Number.MAX_VALUE),D(this.series,function(d,p){d.useMapGeometry&&(k=Math.min(k,n(d.minX,k)),u=Math.max(u,n(d.maxX,u)),d.xData=a[p],v=!0)}),v&&(this.dataMin=k,this.dataMax=u),delete this.seriesXData)});B(C,"afterSetAxisTranslation",function(){var a=this.chart,k;k=a.plotWidth/a.plotHeight;
|
|
var a=a.xAxis[0],n;"yAxis"===this.coll&&void 0!==a.transA&&D(this.series,function(a){a.preserveAspectRatio&&(n=!0)});if(n&&(this.transA=a.transA=Math.min(this.transA,a.transA),k/=(a.max-a.min)/(this.max-this.min),k=1>k?this:a,a=(k.max-k.min)*k.transA,k.pixelPadding=k.len-a,k.minPixelPadding=k.pixelPadding/2,a=k.fixTo)){a=a[1]-k.toValue(a[0],!0);a*=k.transA;if(Math.abs(a)>k.minPixelPadding||k.min===k.dataMin&&k.max===k.dataMax)a=0;k.minPixelPadding-=a}});B(C,"render",function(){this.fixTo=null})})(M);
|
|
(function(a){var B=a.addEvent,C=a.Axis,D=a.Chart,n=a.color,d,k=a.each,u=a.extend,v=a.isNumber,q=a.Legend,p=a.LegendSymbolMixin,y=a.noop,g=a.merge,h=a.pick;a.ColorAxis||(d=a.ColorAxis=function(){this.init.apply(this,arguments)},u(d.prototype,C.prototype),u(d.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(C.prototype.keepProps),init:function(a,b){var c="vertical"!==a.options.legend.layout,d;this.coll="colorAxis";d=g(this.defaultColorAxisOptions,{side:c?2:1,reversed:!c},b,{opposite:!c,showEmpty:!1,title:null,visible:a.options.legend.enabled});C.prototype.init.call(this,a,d);b.dataClasses&&this.initDataClasses(b);this.initStops();this.horiz=
|
|
c;this.zoomEnabled=!1;this.defaultLegendLength=200},initDataClasses:function(a){var b=this.chart,c,d=0,e=b.options.chart.colorCount,h=this.options,m=a.dataClasses.length;this.dataClasses=c=[];this.legendItems=[];k(a.dataClasses,function(a,f){a=g(a);c.push(a);a.color||("category"===h.dataClassColor?(f=b.options.colors,e=f.length,a.color=f[d],a.colorIndex=d,d++,d===e&&(d=0)):a.color=n(h.minColor).tweenTo(n(h.maxColor),2>m?.5:f/(m-1)))})},setTickPositions:function(){if(!this.dataClasses)return C.prototype.setTickPositions.call(this)},
|
|
initStops:function(){this.stops=this.options.stops||[[0,this.options.minColor],[1,this.options.maxColor]];k(this.stops,function(a){a.color=n(a[1])})},setOptions:function(a){C.prototype.setOptions.call(this,a);this.options.crosshair=this.options.marker},setAxisSize:function(){var a=this.legendSymbol,b=this.chart,c=b.options.legend||{},d,e;a?(this.left=c=a.attr("x"),this.top=d=a.attr("y"),this.width=e=a.attr("width"),this.height=a=a.attr("height"),this.right=b.chartWidth-c-e,this.bottom=b.chartHeight-
|
|
d-a,this.len=this.horiz?e:a,this.pos=this.horiz?c:d):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,d,e,g=this.dataClasses,h,m;if(g)for(m=g.length;m--;){if(h=g[m],d=h.from,c=h.to,(void 0===d||a>=d)&&(void 0===c||a<=c)){e=h.color;b&&(b.dataClass=m,b.colorIndex=h.colorIndex);break}}else{a=this.normalizedValue(a);for(m=c.length;m--&&
|
|
!(a>c[m][0]););d=c[m]||c[m+1];c=c[m+1]||d;a=1-(c[0]-a)/(c[0]-d[0]||1);e=d.color.tweenTo(c.color,a)}return e},getOffset:function(){var a=this.legendGroup,b=this.chart.axisOffset[this.side];a&&(this.axisParent=a,C.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,d=a.options,e=this.horiz,g=h(d.symbolWidth,e?this.defaultLegendLength:12),m=h(d.symbolHeight,e?12:this.defaultLegendLength),k=h(d.labelPadding,e?16:30),d=h(d.itemDistance,10);this.setLegendColor();b.legendSymbol=this.chart.renderer.rect(0,a.baseline-11,g,m).attr({zIndex:1}).add(b.legendGroup);this.legendItemWidth=g+c+(e?d:k);this.legendItemHeight=m+c+(e?k:0)},setState:function(a){k(this.series,function(b){b.setState(a)})},
|
|
visible:!0,setVisible:y,getSeriesExtremes:function(){var a=this.series,b=a.length;this.dataMin=Infinity;for(this.dataMax=-Infinity;b--;)a[b].getExtremes(),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,d=b&&b.plotY,e,g=this.pos,h=this.len;b&&(e=this.toPixels(b[b.series.colorKey]),e<g?e=g-2:e>g+h&&(e=g+h+2),b.plotX=e,b.plotY=this.len-e,C.prototype.drawCrosshair.call(this,a,b),
|
|
b.plotX=c,b.plotY=d,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 v(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"]:C.prototype.getPlotLinePath.call(this,a,b,c,d)},update:function(a,b){var c=this.chart,d=c.legend;
|
|
k(this.series,function(a){a.isDirtyData=!0});a.dataClasses&&d.allItems&&(k(d.allItems,function(a){a.isDataClass&&a.legendGroup&&a.legendGroup.destroy()}),c.isDirtyLegend=!0);c.options[this.coll]=g(this.userOptions,a);C.prototype.update.call(this,a,b);this.legendItem&&(this.setLegendColor(),d.colorizeItem(this,!0))},remove:function(){this.legendItem&&this.chart.legend.destroyItem(this);C.prototype.remove.call(this)},getDataClassLegendSymbols:function(){var d=this,b=this.chart,c=this.legendItems,f=
|
|
b.options.legend,e=f.valueDecimals,g=f.valueSuffix||"",h;c.length||k(this.dataClasses,function(f,m){var n=!0,q=f.from,r=f.to;h="";void 0===q?h="\x3c ":void 0===r&&(h="\x3e ");void 0!==q&&(h+=a.numberFormat(q,e)+g);void 0!==q&&void 0!==r&&(h+=" - ");void 0!==r&&(h+=a.numberFormat(r,e)+g);c.push(u({chart:b,name:h,options:{},drawLegendSymbol:p.drawRectangle,visible:!0,setState:y,isDataClass:!0,setVisible:function(){n=this.visible=!n;k(d.series,function(a){k(a.points,function(a){a.dataClass===m&&a.setVisible(n)})});
|
|
b.legend.colorizeItem(this,n)}},f))});return c},name:""}),k(["fill","stroke"],function(d){a.Fx.prototype[d+"Setter"]=function(){this.elem.attr(d,n(this.start).tweenTo(n(this.end),this.pos),null,!0)}}),B(D,"afterGetAxes",function(){var a=this.options.colorAxis;this.colorAxis=[];a&&new d(this,a)}),B(q,"afterGetAllItems",function(d){var b=[],c=this.chart.colorAxis[0];c&&c.options&&c.options.showInLegend&&(c.options.dataClasses?b=c.getDataClassLegendSymbols():b.push(c),k(c.series,function(b){a.erase(d.allItems,
|
|
b)}));for(c=b.length;c--;)d.allItems.unshift(b[c])}),B(q,"afterColorizeItem",function(a){a.visible&&a.item.legendColor&&a.item.legendSymbol.attr({fill:a.item.legendColor})}),B(q,"afterUpdate",function(a,b,c){this.chart.colorAxis[0]&&this.chart.colorAxis[0].update({},c)}))})(M);(function(a){var B=a.defined,C=a.each,D=a.noop,n=a.seriesTypes;a.colorPointMixin={isValid:function(){return null!==this.value&&Infinity!==this.value&&-Infinity!==this.value},setVisible:function(a){var d=this,n=a?"show":"hide";
|
|
d.visible=!!a;C(["graphic","dataLabel"],function(a){if(d[a])d[a][n]()})},setState:function(d){a.Point.prototype.setState.call(this,d);this.graphic&&this.graphic.attr({zIndex:"hover"===d?1:0})}};a.colorSeriesMixin={pointArrayMap:["value"],axisTypes:["xAxis","yAxis","colorAxis"],optionalAxis:"colorAxis",trackerGroups:["group","markerGroup","dataLabelsGroup"],getSymbol:D,parallelArrays:["x","y","value"],colorKey:"value",pointAttribs:n.column.prototype.pointAttribs,translateColors:function(){var a=this,
|
|
k=this.options.nullColor,n=this.colorAxis,v=this.colorKey;C(this.data,function(d){var p=d[v];if(p=d.options.color||(d.isNull?k:n&&void 0!==p?n.toColor(p,d):d.color||a.color))d.color=p})},colorAttribs:function(a){var d={};B(a.color)&&(d[this.colorProp||"fill"]=a.color);return d}}})(M);(function(a){function B(a){a&&(a.preventDefault&&a.preventDefault(),a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)}function C(a){this.init(a)}var D=a.addEvent,n=a.Chart,d=a.doc,k=a.each,u=a.extend,v=a.merge,
|
|
q=a.pick;C.prototype.init=function(a){this.chart=a;a.mapNavButtons=[]};C.prototype.update=function(d){var k=this.chart,g=k.options.mapNavigation,h,m,b,c,f,e=function(a){this.handler.call(k,a);B(a)},p=k.mapNavButtons;d&&(g=k.options.mapNavigation=v(k.options.mapNavigation,d));for(;p.length;)p.pop().destroy();q(g.enableButtons,g.enabled)&&!k.renderer.forExport&&a.objectEach(g.buttons,function(a,d){h=v(g.buttonOptions,a);m=h.theme;m.style=v(h.theme.style,h.style);c=(b=m.states)&&b.hover;f=b&&b.select;
|
|
a=k.renderer.button(h.text,0,0,e,m,c,f,0,"zoomIn"===d?"topbutton":"bottombutton").addClass("highcharts-map-navigation").attr({width:h.width,height:h.height,title:k.options.lang[d],padding:h.padding,zIndex:5}).add();a.handler=h.onclick;a.align(u(h,{width:a.width,height:2*a.height}),null,h.alignTo);D(a.element,"dblclick",B);p.push(a)});this.updateEvents(g)};C.prototype.updateEvents=function(a){var k=this.chart;q(a.enableDoubleClickZoom,a.enabled)||a.enableDoubleClickZoomTo?this.unbindDblClick=this.unbindDblClick||
|
|
D(k.container,"dblclick",function(a){k.pointer.onContainerDblClick(a)}):this.unbindDblClick&&(this.unbindDblClick=this.unbindDblClick());q(a.enableMouseWheelZoom,a.enabled)?this.unbindMouseWheel=this.unbindMouseWheel||D(k.container,void 0===d.onmousewheel?"DOMMouseScroll":"mousewheel",function(a){k.pointer.onContainerMouseWheel(a);B(a);return!1}):this.unbindMouseWheel&&(this.unbindMouseWheel=this.unbindMouseWheel())};u(n.prototype,{fitToBox:function(a,d){k([["x","width"],["y","height"]],function(g){var h=
|
|
g[0];g=g[1];a[h]+a[g]>d[h]+d[g]&&(a[g]>d[g]?(a[g]=d[g],a[h]=d[h]):a[h]=d[h]+d[g]-a[g]);a[g]>d[g]&&(a[g]=d[g]);a[h]<d[h]&&(a[h]=d[h])});return a},mapZoom:function(a,d,g,h,m){var b=this.xAxis[0],c=b.max-b.min,f=q(d,b.min+c/2),e=c*a,c=this.yAxis[0],k=c.max-c.min,p=q(g,c.min+k/2),k=k*a,f=this.fitToBox({x:f-e*(h?(h-b.pos)/b.len:.5),y:p-k*(m?(m-c.pos)/c.len:.5),width:e,height:k},{x:b.dataMin,y:c.dataMin,width:b.dataMax-b.dataMin,height:c.dataMax-c.dataMin}),e=f.x<=b.dataMin&&f.width>=b.dataMax-b.dataMin&&
|
|
f.y<=c.dataMin&&f.height>=c.dataMax-c.dataMin;h&&(b.fixTo=[h-b.pos,d]);m&&(c.fixTo=[m-c.pos,g]);void 0===a||e?(b.setExtremes(void 0,void 0,!1),c.setExtremes(void 0,void 0,!1)):(b.setExtremes(f.x,f.x+f.width,!1),c.setExtremes(f.y,f.y+f.height,!1));this.redraw()}});D(n,"beforeRender",function(){this.mapNavigation=new C(this);this.mapNavigation.update()})})(M);(function(a){var B=a.extend,C=a.pick,D=a.Pointer;a=a.wrap;B(D.prototype,{onContainerDblClick:function(a){var d=this.chart;a=this.normalize(a);
|
|
d.options.mapNavigation.enableDoubleClickZoomTo?d.pointer.inClass(a.target,"highcharts-tracker")&&d.hoverPoint&&d.hoverPoint.zoomTo():d.isInsidePlot(a.chartX-d.plotLeft,a.chartY-d.plotTop)&&d.mapZoom(.5,d.xAxis[0].toValue(a.chartX),d.yAxis[0].toValue(a.chartY),a.chartX,a.chartY)},onContainerMouseWheel:function(a){var d=this.chart,k;a=this.normalize(a);k=a.detail||-(a.wheelDelta/120);d.isInsidePlot(a.chartX-d.plotLeft,a.chartY-d.plotTop)&&d.mapZoom(Math.pow(d.options.mapNavigation.mouseWheelSensitivity,
|
|
k),d.xAxis[0].toValue(a.chartX),d.yAxis[0].toValue(a.chartY),a.chartX,a.chartY)}});a(D.prototype,"zoomOption",function(a){var d=this.chart.options.mapNavigation;C(d.enableTouchZoom,d.enabled)&&(this.chart.options.chart.pinchType="xy");a.apply(this,[].slice.call(arguments,1))});a(D.prototype,"pinchTranslate",function(a,d,k,u,v,q,p){a.call(this,d,k,u,v,q,p);"map"===this.chart.options.chart.type&&this.hasZoom&&(a=u.scaleX>u.scaleY,this.pinchTranslateDirection(!a,d,k,u,v,q,p,a?u.scaleX:u.scaleY))})})(M);
|
|
(function(a){var B=a.colorPointMixin,C=a.each,D=a.extend,n=a.isNumber,d=a.map,k=a.merge,u=a.noop,v=a.pick,q=a.isArray,p=a.Point,y=a.Series,g=a.seriesType,h=a.seriesTypes,m=a.splat;g("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"}}},k(a.colorSeriesMixin,{type:"map",getExtremesFromAll:!0,useMapGeometry:!0,forceDL:!0,searchPoint:u,directTouch:!0,preserveAspectRatio:!0,pointArrayMap:["value"],getBox:function(b){var c=Number.MAX_VALUE,d=-c,e=c,g=-c,h=c,m=c,k=this.xAxis,p=this.yAxis,q;C(b||[],function(b){if(b.path){"string"===typeof b.path&&(b.path=a.splitPath(b.path));var f=b.path||[],k=f.length,p=!1,r=-c,l=c,t=-c,u=c,w=b.properties;if(!b._foundBox){for(;k--;)n(f[k])&&
|
|
(p?(r=Math.max(r,f[k]),l=Math.min(l,f[k])):(t=Math.max(t,f[k]),u=Math.min(u,f[k])),p=!p);b._midX=l+(r-l)*v(b.middleX,w&&w["hc-middle-x"],.5);b._midY=u+(t-u)*v(b.middleY,w&&w["hc-middle-y"],.5);b._maxX=r;b._minX=l;b._maxY=t;b._minY=u;b.labelrank=v(b.labelrank,(r-l)*(t-u));b._foundBox=!0}d=Math.max(d,b._maxX);e=Math.min(e,b._minX);g=Math.max(g,b._maxY);h=Math.min(h,b._minY);m=Math.min(b._maxX-b._minX,b._maxY-b._minY,m);q=!0}});q&&(this.minY=Math.min(h,v(this.minY,c)),this.maxY=Math.max(g,v(this.maxY,
|
|
-c)),this.minX=Math.min(e,v(this.minX,c)),this.maxX=Math.max(d,v(this.maxX,-c)),k&&void 0===k.options.minRange&&(k.minRange=Math.min(5*m,(this.maxX-this.minX)/5,k.minRange||c)),p&&void 0===p.options.minRange&&(p.minRange=Math.min(5*m,(this.maxY-this.minY)/5,p.minRange||c)))},getExtremes:function(){y.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 b=!1,d=this.xAxis,e=this.yAxis,g=d.min,h=d.transA,d=d.minPixelPadding,k=e.min,m=e.transA,e=e.minPixelPadding,p,q=[];if(a)for(p=a.length;p--;)n(a[p])?(q[p]=b?(a[p]-g)*h+d:(a[p]-k)*m+e,b=!b):q[p]=a[p];return q},setData:function(b,c,f,e){var g=this.options,h=this.chart.options.chart,p=h&&h.map,u=g.mapData,v=g.joinBy,D=null===v,r=g.keys||this.pointArrayMap,B=[],E={},L=this.chart.mapTransforms;!u&&p&&(u="string"===typeof p?a.maps[p]:p);D&&(v="_i");v=this.joinBy=
|
|
m(v);v[1]||(v[1]=v[0]);b&&C(b,function(c,d){var e=0;if(n(c))b[d]={value:c};else if(q(c)){b[d]={};!g.keys&&c.length>r.length&&"string"===typeof c[0]&&(b[d]["hc-key"]=c[0],++e);for(var f=0;f<r.length;++f,++e)r[f]&&void 0!==c[e]&&(0<r[f].indexOf(".")?a.Point.prototype.setNestedProperty(b[d],c[e],r[f]):b[d][r[f]]=c[e])}D&&(b[d]._i=d)});this.getBox(b);(this.chart.mapTransforms=L=h&&h.mapTransforms||u&&u["hc-transform"]||L)&&a.objectEach(L,function(a){a.rotation&&(a.cosAngle=Math.cos(a.rotation),a.sinAngle=
|
|
Math.sin(a.rotation))});if(u){"FeatureCollection"===u.type&&(this.mapTitle=u.title,u=a.geojson(u,this.type,this));this.mapData=u;this.mapMap={};for(L=0;L<u.length;L++)h=u[L],p=h.properties,h._i=L,v[0]&&p&&p[v[0]]&&(h[v[0]]=p[v[0]]),E[h[v[0]]]=h;this.mapMap=E;b&&v[1]&&C(b,function(a){E[a[v[1]]]&&B.push(E[a[v[1]]])});g.allAreas?(this.getBox(u),b=b||[],v[1]&&C(b,function(a){B.push(a[v[1]])}),B="|"+d(B,function(a){return a&&a[v[0]]}).join("|")+"|",C(u,function(a){v[0]&&-1!==B.indexOf("|"+a[v[0]]+"|")||
|
|
(b.push(k(a,{value:null})),e=!1)})):this.getBox(B)}y.prototype.setData.call(this,b,c,f,e)},drawGraph:u,drawDataLabels:u,doFullTranslate:function(){return this.isDirtyData||this.chart.isResizing||this.chart.renderer.isVML||!this.baseTrans},translate:function(){var a=this,c=a.xAxis,d=a.yAxis,e=a.doFullTranslate();a.generatePoints();C(a.data,function(b){b.plotX=c.toPixels(b._midX,!0);b.plotY=d.toPixels(b._midY,!0);e&&(b.shapeType="path",b.shapeArgs={d:a.translatePath(b.path)})});a.translateColors()},
|
|
pointAttribs:function(a,c){c=h.column.prototype.pointAttribs.call(this,a,c);c["stroke-width"]=v(a.options[this.pointAttrToOptions&&this.pointAttrToOptions["stroke-width"]||"borderWidth"],"inherit");return c},drawPoints:function(){var a=this,c=a.xAxis,d=a.yAxis,e=a.group,g=a.chart,k=g.renderer,m,p,n,q,r=this.baseTrans,u,v,y,B,l;a.transformGroup||(a.transformGroup=k.g().attr({scaleX:1,scaleY:1}).add(e),a.transformGroup.survive=!0);a.doFullTranslate()?(g.hasRendered&&C(a.points,function(b){b.shapeArgs&&
|
|
(b.shapeArgs.fill=a.pointAttribs(b,b.state).fill)}),a.group=a.transformGroup,h.column.prototype.drawPoints.apply(a),a.group=e,C(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:c.min-c.minPixelPadding/c.transA,originY:d.min-d.minPixelPadding/d.transA+(d.reversed?0:d.len/d.transA),transAX:c.transA,
|
|
transAY:d.transA},this.transformGroup.animate({translateX:0,translateY:0,scaleX:1,scaleY:1})):(m=c.transA/r.transAX,p=d.transA/r.transAY,n=c.toPixels(r.originX,!0),q=d.toPixels(r.originY,!0),.99<m&&1.01>m&&.99<p&&1.01>p&&(p=m=1,n=Math.round(n),q=Math.round(q)),u=this.transformGroup,g.renderer.globalAnimation?(v=u.attr("translateX"),y=u.attr("translateY"),B=u.attr("scaleX"),l=u.attr("scaleY"),u.attr({animator:0}).animate({animator:1},{step:function(a,b){u.attr({translateX:v+(n-v)*b.pos,translateY:y+
|
|
(q-y)*b.pos,scaleX:B+(m-B)*b.pos,scaleY:l+(p-l)*b.pos})}})):u.attr({translateX:n,translateY:q,scaleX:m,scaleY:p}));e.element.setAttribute("stroke-width",(a.options[a.pointAttrToOptions&&a.pointAttrToOptions["stroke-width"]||"borderWidth"]||1)/(m||1));this.drawMapDataLabels()},drawMapDataLabels:function(){y.prototype.drawDataLabels.call(this);this.dataLabelsGroup&&this.dataLabelsGroup.clip(this.chart.clipRect)},render:function(){var a=this,c=y.prototype.render;a.chart.renderer.isVML&&3E3<a.data.length?
|
|
setTimeout(function(){c.call(a)}):c.call(a)},animate:function(a){var b=this.options.animation,d=this.group,e=this.xAxis,g=this.yAxis,h=e.pos,m=g.pos;this.chart.renderer.isSVG&&(!0===b&&(b={duration:1E3}),a?d.attr({translateX:h+e.len/2,translateY:m+g.len/2,scaleX:.001,scaleY:.001}):(d.animate({translateX:h,translateY:m,scaleX:1,scaleY:1},b),this.animate=null))},animateDrilldown:function(a){var b=this.chart.plotBox,d=this.chart.drilldownLevels[this.chart.drilldownLevels.length-1],e=d.bBox,g=this.chart.options.drilldown.animation;
|
|
a||(a=Math.min(e.width/b.width,e.height/b.height),d.shapeArgs={scaleX:a,scaleY:a,translateX:e.x,translateY:e.y},C(this.points,function(a){a.graphic&&a.graphic.attr(d.shapeArgs).animate({scaleX:1,scaleY:1,translateX:0,translateY:0},g)}),this.animate=null)},drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,animateDrillupFrom:function(a){h.column.prototype.animateDrillupFrom.call(this,a)},animateDrillupTo:function(a){h.column.prototype.animateDrillupTo.call(this,a)}}),D({applyOptions:function(a,c){a=
|
|
p.prototype.applyOptions.call(this,a,c);c=this.series;var b=c.joinBy;c.mapData&&((b=void 0!==a[b[1]]&&c.mapMap[a[b[1]]])?(c.xyFromShape&&(a.x=b._midX,a.y=b._midY),D(a,b)):a.value=a.value||null);return a},onMouseOver:function(b){a.clearTimeout(this.colorInterval);if(null!==this.value||this.series.options.nullInteraction)p.prototype.onMouseOver.call(this,b);else this.series.onMouseOut(b)},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()}},B))})(M);(function(a){var B=a.seriesType,C=a.seriesTypes;B("mapline","map",{lineWidth:1,fillColor:"none"},{type:"mapline",colorProp:"stroke",pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"},pointAttribs:function(a,n){a=C.map.prototype.pointAttribs.call(this,a,n);a.fill=this.options.fillColor;return a},drawLegendSymbol:C.line.prototype.drawLegendSymbol})})(M);(function(a){var B=a.merge,C=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,n){a=void 0!==a.lat&&void 0!==a.lon?B(a,this.series.chart.fromLatLonToPoint(a)):a;return C.prototype.applyOptions.call(this,a,n)}})})(M);(function(a){var B=a.arrayMax,C=a.arrayMin,D=a.Axis,n=a.color,d=a.each,k=a.isNumber,u=a.noop,v=a.pick,q=a.pInt,p=a.Point,y=a.Series,g=a.seriesType,h=a.seriesTypes;g("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=y.prototype.pointAttribs.call(this,a,b);1!==c&&(a.fill=n(a.fill).setOpacity(c).get("rgba"));return a},getRadii:function(a,b,c,d){var e,f,g,h=this.zData,m=[],p=this.options,n="width"!==p.sizeBy,q=p.zThreshold,u=b-a;f=0;for(e=h.length;f<e;f++)g=h[f],p.sizeByAbsoluteValue&&null!==g&&(g=Math.abs(g-q),b=u=Math.max(b-q,Math.abs(a-q)),a=0),k(g)?g<a?g=c/2-1:(g=0<u?(g-a)/u:.5,n&&0<=g&&(g=Math.sqrt(g)),g=Math.ceil(c+g*(d-c))/2):g=null,m.push(g);
|
|
this.radii=m},animate:function(a){!a&&this.points.length<this.options.animationLimit&&(d(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 d,b=this.data,c,f,e=this.radii;h.scatter.prototype.translate.call(this);for(d=b.length;d--;)c=b[d],f=e?e[d]:0,k(f)&&f>=this.minPxSize/2?(c.marker=a.extend(c.marker,{radius:f,width:2*
|
|
f,height:2*f}),c.dlBox={x:c.plotX-f,y:c.plotY-f,width:2*f,height:2*f}):c.shapeArgs=c.plotY=c.dlBox=void 0},alignDataLabel:h.column.prototype.alignDataLabel,buildKDTree:u,applyZones:u},{haloPath:function(a){return p.prototype.haloPath.call(this,0===a?0:(this.marker?this.marker.radius||0:0)+a)},ttBelow:!1});D.prototype.beforePadding=function(){var g=this,b=this.len,c=this.chart,f=0,e=b,h=this.isXAxis,p=h?"xData":"yData",n=this.min,u={},y=Math.min(c.plotWidth,c.plotHeight),D=Number.MAX_VALUE,r=-Number.MAX_VALUE,
|
|
I=this.max-n,E=b/I,L=[];d(this.series,function(b){var e=b.options;!b.bubblePadding||!b.visible&&c.options.chart.ignoreHiddenSeries||(g.allowZoomOutside=!0,L.push(b),h&&(d(["minSize","maxSize"],function(a){var b=e[a],c=/%$/.test(b),b=q(b);u[a]=c?y*b/100:b}),b.minPxSize=u.minSize,b.maxPxSize=Math.max(u.maxSize,u.minSize),b=a.grep(b.zData,a.isNumber),b.length&&(D=v(e.zMin,Math.min(D,Math.max(C(b),!1===e.displayNegative?e.zThreshold:-Number.MAX_VALUE))),r=v(e.zMax,Math.max(r,B(b))))))});d(L,function(a){var b=
|
|
a[p],c=b.length,d;h&&a.getRadii(D,r,a.minPxSize,a.maxPxSize);if(0<I)for(;c--;)k(b[c])&&g.dataMin<=b[c]&&b[c]<=g.dataMax&&(d=a.radii[c],f=Math.min((b[c]-n)*E-d,f),e=Math.max((b[c]-n)*E+d,e))});L.length&&0<I&&!this.isLog&&(e-=b,E*=(b+Math.max(0,f)-Math.min(e,b))/b,d([["min","userMin",f],["max","userMax",e]],function(a){void 0===v(g.options[a[0]],g[a[1]])&&(g[a[0]]+=a[2]/E)}))}})(M);(function(a){var B=a.merge,C=a.Point,D=a.seriesType,n=a.seriesTypes;n.bubble&&D("mapbubble","bubble",{animationLimit:500,
|
|
tooltip:{pointFormat:"{point.name}: {point.z}"}},{xyFromShape:!0,type:"mapbubble",pointArrayMap:["z"],getMapData:n.map.prototype.getMapData,getBox:n.map.prototype.getBox,setData:n.map.prototype.setData},{applyOptions:function(a,k){return a&&void 0!==a.lat&&void 0!==a.lon?C.prototype.applyOptions.call(this,B(a,this.series.chart.fromLatLonToPoint(a)),k):n.map.prototype.pointClass.prototype.applyOptions.call(this,a,k)},isValid:function(){return"number"===typeof this.z},ttBelow:!1})})(M);(function(a){var B=
|
|
a.colorPointMixin,C=a.each,D=a.merge,n=a.noop,d=a.pick,k=a.Series,u=a.seriesType,v=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}}},D(a.colorSeriesMixin,{pointArrayMap:["y","value"],hasPointSpecificOptions:!0,
|
|
getExtremesFromAll:!0,directTouch:!0,init:function(){var a;v.scatter.prototype.init.apply(this,arguments);a=this.options;a.pointRange=d(a.pointRange,a.colsize||1);this.yAxis.axisPointRange=a.rowsize||1},translate:function(){var a=this.options,k=this.xAxis,n=this.yAxis,g=a.pointPadding||0,h=function(a,b,c){return Math.min(Math.max(b,a),c)};this.generatePoints();C(this.points,function(m){var b=(a.colsize||1)/2,c=(a.rowsize||1)/2,f=h(Math.round(k.len-k.translate(m.x-b,0,1,0,1)),-k.len,2*k.len),b=h(Math.round(k.len-
|
|
k.translate(m.x+b,0,1,0,1)),-k.len,2*k.len),e=h(Math.round(n.translate(m.y-c,0,1,0,1)),-n.len,2*n.len),c=h(Math.round(n.translate(m.y+c,0,1,0,1)),-n.len,2*n.len),p=d(m.pointPadding,g);m.plotX=m.clientX=(f+b)/2;m.plotY=(e+c)/2;m.shapeType="rect";m.shapeArgs={x:Math.min(f,b)+p,y:Math.min(e,c)+p,width:Math.abs(b-f)-2*p,height:Math.abs(c-e)-2*p}});this.translateColors()},drawPoints:function(){v.column.prototype.drawPoints.call(this);C(this.points,function(a){a.graphic.attr(this.colorAttribs(a))},this)},
|
|
animate:n,getBox:n,drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,alignDataLabel:v.column.prototype.alignDataLabel,getExtremes:function(){k.prototype.getExtremes.call(this,this.valueData);this.valueMin=this.dataMin;this.valueMax=this.dataMax;k.prototype.getExtremes.call(this)}}),a.extend({haloPath:function(a){if(!a)return[];var d=this.shapeArgs;return["M",d.x-a,d.y-a,"L",d.x-a,d.y+d.height+a,d.x+d.width+a,d.y+d.height+a,d.x+d.width+a,d.y-a,"Z"]}},B))})(M);(function(a){function B(a,d){var k,g,
|
|
h,m=!1,b=a.x,c=a.y;a=0;for(k=d.length-1;a<d.length;k=a++)g=d[a][1]>c,h=d[k][1]>c,g!==h&&b<(d[k][0]-d[a][0])*(c-d[a][1])/(d[k][1]-d[a][1])+d[a][0]&&(m=!m);return m}var C=a.Chart,D=a.each,n=a.extend,d=a.format,k=a.merge,u=a.win,v=a.wrap;C.prototype.transformFromLatLon=function(d,k){if(void 0===u.proj4)return a.error(21),{x:0,y:null};d=u.proj4(k.crs,[d.lon,d.lat]);var p=k.cosAngle||k.rotation&&Math.cos(k.rotation),g=k.sinAngle||k.rotation&&Math.sin(k.rotation);d=k.rotation?[d[0]*p+d[1]*g,-d[0]*g+d[1]*
|
|
p]:d;return{x:((d[0]-(k.xoffset||0))*(k.scale||1)+(k.xpan||0))*(k.jsonres||1)+(k.jsonmarginX||0),y:(((k.yoffset||0)-d[1])*(k.scale||1)+(k.ypan||0))*(k.jsonres||1)-(k.jsonmarginY||0)}};C.prototype.transformToLatLon=function(d,k){if(void 0===u.proj4)a.error(21);else{d={x:((d.x-(k.jsonmarginX||0))/(k.jsonres||1)-(k.xpan||0))/(k.scale||1)+(k.xoffset||0),y:((-d.y-(k.jsonmarginY||0))/(k.jsonres||1)+(k.ypan||0))/(k.scale||1)+(k.yoffset||0)};var p=k.cosAngle||k.rotation&&Math.cos(k.rotation),g=k.sinAngle||
|
|
k.rotation&&Math.sin(k.rotation);k=u.proj4(k.crs,"WGS84",k.rotation?{x:d.x*p+d.y*-g,y:d.x*g+d.y*p}:d);return{lat:k.y,lon:k.x}}};C.prototype.fromPointToLatLon=function(d){var k=this.mapTransforms,n;if(k){for(n in k)if(k.hasOwnProperty(n)&&k[n].hitZone&&B({x:d.x,y:-d.y},k[n].hitZone.coordinates[0]))return this.transformToLatLon(d,k[n]);return this.transformToLatLon(d,k["default"])}a.error(22)};C.prototype.fromLatLonToPoint=function(d){var k=this.mapTransforms,n,g;if(!k)return a.error(22),{x:0,y:null};
|
|
for(n in k)if(k.hasOwnProperty(n)&&k[n].hitZone&&(g=this.transformFromLatLon(d,k[n]),B({x:g.x,y:-g.y},k[n].hitZone.coordinates[0])))return g;return this.transformFromLatLon(d,k["default"])};a.geojson=function(a,k,u){var g=[],h=[],m=function(a){var b,d=a.length;h.push("M");for(b=0;b<d;b++)1===b&&h.push("L"),h.push(a[b][0],-a[b][1])};k=k||"map";D(a.features,function(a){var b=a.geometry,d=b.type,b=b.coordinates;a=a.properties;var e;h=[];"map"===k||"mapbubble"===k?("Polygon"===d?(D(b,m),h.push("Z")):
|
|
"MultiPolygon"===d&&(D(b,function(a){D(a,m)}),h.push("Z")),h.length&&(e={path:h})):"mapline"===k?("LineString"===d?m(b):"MultiLineString"===d&&D(b,m),h.length&&(e={path:h})):"mappoint"===k&&"Point"===d&&(e={x:b[0],y:-b[1]});e&&g.push(n(e,{name:a.name||a.NAME,properties:a}))});u&&a.copyrightShort&&(u.chart.mapCredits=d(u.chart.options.credits.mapText,{geojson:a}),u.chart.mapCreditsFull=d(u.chart.options.credits.mapTextFull,{geojson:a}));return g};v(C.prototype,"addCredits",function(a,d){d=k(!0,this.options.credits,
|
|
d);this.mapCredits&&(d.href=null);a.call(this,d);this.credits&&this.mapCreditsFull&&this.credits.attr({title:this.mapCreditsFull})})})(M);(function(a){function B(a,d,h,k,b,c,f,e){return["M",a+b,d,"L",a+h-c,d,"C",a+h-c/2,d,a+h,d+c/2,a+h,d+c,"L",a+h,d+k-f,"C",a+h,d+k-f/2,a+h-f/2,d+k,a+h-f,d+k,"L",a+e,d+k,"C",a+e/2,d+k,a,d+k-e/2,a,d+k-e,"L",a,d+b,"C",a,d+b/2,a+b/2,d,a+b,d,"Z"]}var C=a.Chart,D=a.defaultOptions,n=a.each,d=a.extend,k=a.merge,u=a.pick,v=a.Renderer,q=a.SVGRenderer,p=a.VMLRenderer;d(D.lang,
|
|
{zoomIn:"Zoom in",zoomOut:"Zoom out"});D.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 d;a=a.replace(/([A-Za-z])/g," $1 ");a=a.replace(/^\s*/,"").replace(/\s*$/,
|
|
"");a=a.split(/[ ,]+/);for(d=0;d<a.length;d++)/[a-zA-Z]/.test(a[d])||(a[d]=parseFloat(a[d]));return a};a.maps={};q.prototype.symbols.topbutton=function(a,d,h,k,b){return B(a-1,d-1,h,k,b.r,b.r,0,0)};q.prototype.symbols.bottombutton=function(a,d,h,k,b){return B(a-1,d-1,h,k,0,0,b.r,b.r)};v===p&&n(["topbutton","bottombutton"],function(a){p.prototype.symbols[a]=q.prototype.symbols[a]});a.Map=a.mapChart=function(d,g,h){var m="string"===typeof d||d.nodeName,b=arguments[m?1:0],c={endOnTick:!1,visible:!1,
|
|
minPadding:0,maxPadding:0,startOnTick:!1},f,e=a.getOptions().credits;f=b.series;b.series=null;b=k({chart:{panning:"xy",type:"map"},credits:{mapText:u(e.mapText,' \u00a9 \x3ca href\x3d"{geojson.copyrightUrl}"\x3e{geojson.copyrightShort}\x3c/a\x3e'),mapTextFull:u(e.mapTextFull,"{geojson.copyright}")},tooltip:{followTouchMove:!1},xAxis:c,yAxis:k(c,{reversed:!0})},b,{chart:{inverted:!1,alignTicks:!1}});b.series=f;return m?new C(d,b,h):new C(b,g)}})(M);return M});
|
|
//# sourceMappingURL=highmaps.js.map
|