You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
400 lines
196 KiB
JavaScript
400 lines
196 KiB
JavaScript
/*
|
|
Highmaps JS v6.0.4 (2017-12-15)
|
|
|
|
(c) 2011-2016 Torstein Honsi
|
|
|
|
License: www.highcharts.com/license
|
|
*/
|
|
(function(S,H){"object"===typeof module&&module.exports?module.exports=S.document?H(S):H:S.Highcharts=H(S)})("undefined"!==typeof window?window:this,function(S){var H=function(){var a="undefined"===typeof S?window:S,x=a.document,B=a.navigator&&a.navigator.userAgent||"",z=x&&x.createElementNS&&!!x.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,g=/(edge|msie|trident)/i.test(B)&&!a.opera,e=/Firefox/.test(B),r=e&&4>parseInt(B.split("Firefox/")[1],10);return a.Highcharts?a.Highcharts.error(16,
|
|
!0):{product:"Highmaps",version:"6.0.4",deg2rad:2*Math.PI/360,doc:x,hasBidiBug:r,hasTouch:x&&void 0!==x.documentElement.ontouchstart,isMS:g,isWebKit:/AppleWebKit/.test(B),isFirefox:e,isTouchDevice:/(Mobile|Android|Windows Phone)/.test(B),SVG_NS:"http://www.w3.org/2000/svg",chartCount:0,seriesTypes:{},symbolSizes:{},svg:z,win:a,marginNames:["plotTop","marginRight","marginBottom","plotLeft"],noop:function(){},charts:[]}}();(function(a){a.timers=[];var x=a.charts,B=a.doc,z=a.win;a.error=function(g,e){g=
|
|
a.isNumber(g)?"Highcharts error #"+g+": www.highcharts.com/errors/"+g:g;if(e)throw Error(g);z.console&&console.log(g)};a.Fx=function(a,e,r){this.options=e;this.elem=a;this.prop=r};a.Fx.prototype={dSetter:function(){var a=this.paths[0],e=this.paths[1],r=[],l=this.now,q=a.length,p;if(1===l)r=this.toD;else if(q===e.length&&1>l)for(;q--;)p=parseFloat(a[q]),r[q]=isNaN(p)?e[q]:l*parseFloat(e[q]-p)+p;else r=e;this.elem.attr("d",r,null,!0)},update:function(){var a=this.elem,e=this.prop,r=this.now,l=this.options.step;
|
|
if(this[e+"Setter"])this[e+"Setter"]();else a.attr?a.element&&a.attr(e,r,null,!0):a.style[e]=r+this.unit;l&&l.call(a,r,this)},run:function(g,e,r){var l=this,q=l.options,p=function(a){return p.stopped?!1:l.step(a)},k=z.requestAnimationFrame||function(a){setTimeout(a,13)},d=function(){for(var n=0;n<a.timers.length;n++)a.timers[n]()||a.timers.splice(n--,1);a.timers.length&&k(d)};g===e?(delete q.curAnim[this.prop],q.complete&&0===a.keys(q.curAnim).length&&q.complete.call(this.elem)):(this.startTime=+new Date,
|
|
this.start=g,this.end=e,this.unit=r,this.now=this.start,this.pos=0,p.elem=this.elem,p.prop=this.prop,p()&&1===a.timers.push(p)&&k(d))},step:function(g){var e=+new Date,r,l=this.options,q=this.elem,p=l.complete,k=l.duration,d=l.curAnim;q.attr&&!q.element?g=!1:g||e>=k+this.startTime?(this.now=this.end,this.pos=1,this.update(),r=d[this.prop]=!0,a.objectEach(d,function(a){!0!==a&&(r=!1)}),r&&p&&p.call(q),g=!1):(this.pos=l.easing((e-this.startTime)/k),this.now=this.start+(this.end-this.start)*this.pos,
|
|
this.update(),g=!0);return g},initPath:function(g,e,r){function l(a){var b,c;for(h=a.length;h--;)b="M"===a[h]||"L"===a[h],c=/[a-zA-Z]/.test(a[h+3]),b&&c&&a.splice(h+1,0,a[h+1],a[h+2],a[h+1],a[h+2])}function q(a,c){for(;a.length<b;){a[0]=c[b-a.length];var k=a.slice(0,f);[].splice.apply(a,[0,0].concat(k));m&&(k=a.slice(a.length-f),[].splice.apply(a,[a.length,0].concat(k)),h--)}a[0]="M"}function p(a,k){for(var h=(b-a.length)/f;0<h&&h--;)c=a.slice().splice(a.length/F-f,f*F),c[0]=k[b-f-h*f],w&&(c[f-6]=
|
|
c[f-2],c[f-5]=c[f-1]),[].splice.apply(a,[a.length/F,0].concat(c)),m&&h--}e=e||"";var k,d=g.startX,n=g.endX,w=-1<e.indexOf("C"),f=w?7:3,b,c,h;e=e.split(" ");r=r.slice();var m=g.isArea,F=m?2:1,I;w&&(l(e),l(r));if(d&&n){for(h=0;h<d.length;h++)if(d[h]===n[0]){k=h;break}else if(d[0]===n[n.length-d.length+h]){k=h;I=!0;break}void 0===k&&(e=[])}e.length&&a.isNumber(k)&&(b=r.length+k*F*f,I?(q(e,r),p(r,e)):(q(r,e),p(e,r)));return[e,r]}};a.Fx.prototype.fillSetter=a.Fx.prototype.strokeSetter=function(){this.elem.attr(this.prop,
|
|
a.color(this.start).tweenTo(a.color(this.end),this.pos),null,!0)};a.extend=function(a,e){var g;a||(a={});for(g in e)a[g]=e[g];return a};a.merge=function(){var g,e=arguments,r,l={},q=function(g,k){"object"!==typeof g&&(g={});a.objectEach(k,function(d,n){!a.isObject(d,!0)||a.isClass(d)||a.isDOMElement(d)?g[n]=k[n]:g[n]=q(g[n]||{},d)});return g};!0===e[0]&&(l=e[1],e=Array.prototype.slice.call(e,2));r=e.length;for(g=0;g<r;g++)l=q(l,e[g]);return l};a.pInt=function(a,e){return parseInt(a,e||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(g,e){return!!g&&"object"===typeof g&&(!e||!a.isArray(g))};a.isDOMElement=function(g){return a.isObject(g)&&"number"===typeof g.nodeType};a.isClass=function(g){var e=g&&g.constructor;return!(!a.isObject(g,!0)||a.isDOMElement(g)||!e||!e.name||"Object"===e.name)};a.isNumber=function(a){return"number"===typeof a&&!isNaN(a)&&Infinity>
|
|
a&&-Infinity<a};a.erase=function(a,e){for(var g=a.length;g--;)if(a[g]===e){a.splice(g,1);break}};a.defined=function(a){return void 0!==a&&null!==a};a.attr=function(g,e,r){var l;a.isString(e)?a.defined(r)?g.setAttribute(e,r):g&&g.getAttribute&&(l=g.getAttribute(e)):a.defined(e)&&a.isObject(e)&&a.objectEach(e,function(a,e){g.setAttribute(e,a)});return l};a.splat=function(g){return a.isArray(g)?g:[g]};a.syncTimeout=function(a,e,r){if(e)return setTimeout(a,e,r);a.call(0,r)};a.pick=function(){var a=arguments,
|
|
e,r,l=a.length;for(e=0;e<l;e++)if(r=a[e],void 0!==r&&null!==r)return r};a.css=function(g,e){a.isMS&&!a.svg&&e&&void 0!==e.opacity&&(e.filter="alpha(opacity\x3d"+100*e.opacity+")");a.extend(g.style,e)};a.createElement=function(g,e,r,l,q){g=B.createElement(g);var p=a.css;e&&a.extend(g,e);q&&p(g,{padding:0,border:"none",margin:0});r&&p(g,r);l&&l.appendChild(g);return g};a.extendClass=function(g,e){var r=function(){};r.prototype=new g;a.extend(r.prototype,e);return r};a.pad=function(a,e,r){return Array((e||
|
|
2)+1-String(a).length).join(r||0)+a};a.relativeLength=function(a,e,r){return/%$/.test(a)?e*parseFloat(a)/100+(r||0):parseFloat(a)};a.wrap=function(a,e,r){var g=a[e];a[e]=function(){var a=Array.prototype.slice.call(arguments),e=arguments,k=this;k.proceed=function(){g.apply(k,arguments.length?arguments:e)};a.unshift(g);a=r.apply(this,a);k.proceed=null;return a}};a.getTZOffset=function(g){var e=a.Date;return 6E4*(e.hcGetTimezoneOffset&&e.hcGetTimezoneOffset(g)||e.hcTimezoneOffset||0)};a.dateFormat=function(g,
|
|
e,r){if(!a.defined(e)||isNaN(e))return a.defaultOptions.lang.invalidDate||"";g=a.pick(g,"%Y-%m-%d %H:%M:%S");var l=a.Date,q=new l(e-a.getTZOffset(e)),p=q[l.hcGetHours](),k=q[l.hcGetDay](),d=q[l.hcGetDate](),n=q[l.hcGetMonth](),w=q[l.hcGetFullYear](),f=a.defaultOptions.lang,b=f.weekdays,c=f.shortWeekdays,h=a.pad,l=a.extend({a:c?c[k]:b[k].substr(0,3),A:b[k],d:h(d),e:h(d,2," "),w:k,b:f.shortMonths[n],B:f.months[n],m:h(n+1),y:w.toString().substr(2,2),Y:w,H:h(p),k:p,I:h(p%12||12),l:p%12||12,M:h(q[l.hcGetMinutes]()),
|
|
p:12>p?"AM":"PM",P:12>p?"am":"pm",S:h(q.getSeconds()),L:h(Math.round(e%1E3),3)},a.dateFormats);a.objectEach(l,function(a,b){for(;-1!==g.indexOf("%"+b);)g=g.replace("%"+b,"function"===typeof a?a(e):a)});return r?g.substr(0,1).toUpperCase()+g.substr(1):g};a.formatSingle=function(g,e){var r=/\.([0-9])/,l=a.defaultOptions.lang;/f$/.test(g)?(r=(r=g.match(r))?r[1]:-1,null!==e&&(e=a.numberFormat(e,r,l.decimalPoint,-1<g.indexOf(",")?l.thousandsSep:""))):e=a.dateFormat(g,e);return e};a.format=function(g,e){for(var r=
|
|
"{",l=!1,q,p,k,d,n=[],w;g;){r=g.indexOf(r);if(-1===r)break;q=g.slice(0,r);if(l){q=q.split(":");p=q.shift().split(".");d=p.length;w=e;for(k=0;k<d;k++)w&&(w=w[p[k]]);q.length&&(w=a.formatSingle(q.join(":"),w));n.push(w)}else n.push(q);g=g.slice(r+1);r=(l=!l)?"}":"{"}n.push(g);return n.join("")};a.getMagnitude=function(a){return Math.pow(10,Math.floor(Math.log(a)/Math.LN10))};a.normalizeTickInterval=function(g,e,r,l,q){var p,k=g;r=a.pick(r,1);p=g/r;e||(e=q?[1,1.2,1.5,2,2.5,3,4,5,6,8,10]:[1,2,2.5,5,10],
|
|
!1===l&&(1===r?e=a.grep(e,function(a){return 0===a%1}):.1>=r&&(e=[1/r])));for(l=0;l<e.length&&!(k=e[l],q&&k*r>=g||!q&&p<=(e[l]+(e[l+1]||e[l]))/2);l++);return k=a.correctFloat(k*r,-Math.round(Math.log(.001)/Math.LN10))};a.stableSort=function(a,e){var g=a.length,l,q;for(q=0;q<g;q++)a[q].safeI=q;a.sort(function(a,k){l=e(a,k);return 0===l?a.safeI-k.safeI:l});for(q=0;q<g;q++)delete a[q].safeI};a.arrayMin=function(a){for(var e=a.length,g=a[0];e--;)a[e]<g&&(g=a[e]);return g};a.arrayMax=function(a){for(var e=
|
|
a.length,g=a[0];e--;)a[e]>g&&(g=a[e]);return g};a.destroyObjectProperties=function(g,e){a.objectEach(g,function(a,l){a&&a!==e&&a.destroy&&a.destroy();delete g[l]})};a.discardElement=function(g){var e=a.garbageBin;e||(e=a.createElement("div"));g&&e.appendChild(g);e.innerHTML=""};a.correctFloat=function(a,e){return parseFloat(a.toPrecision(e||14))};a.setAnimation=function(g,e){e.renderer.globalAnimation=a.pick(g,e.options.chart.animation,!0)};a.animObject=function(g){return a.isObject(g)?a.merge(g):
|
|
{duration:g?500:0}};a.timeUnits={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5,month:24192E5,year:314496E5};a.numberFormat=function(g,e,r,l){g=+g||0;e=+e;var q=a.defaultOptions.lang,p=(g.toString().split(".")[1]||"").split("e")[0].length,k,d,n=g.toString().split("e");-1===e?e=Math.min(p,20):a.isNumber(e)?e&&n[1]&&0>n[1]&&(k=e+ +n[1],0<=k?(n[0]=(+n[0]).toExponential(k).split("e")[0],e=k):(n[0]=n[0].split(".")[0]||0,g=20>e?(n[0]*Math.pow(10,n[1])).toFixed(e):0,n[1]=0)):e=2;d=(Math.abs(n[1]?
|
|
n[0]:g)+Math.pow(10,-Math.max(e,p)-1)).toFixed(e);p=String(a.pInt(d));k=3<p.length?p.length%3:0;r=a.pick(r,q.decimalPoint);l=a.pick(l,q.thousandsSep);g=(0>g?"-":"")+(k?p.substr(0,k)+l:"");g+=p.substr(k).replace(/(\d{3})(?=\d)/g,"$1"+l);e&&(g+=r+d.slice(-e));n[1]&&0!==+g&&(g+="e"+n[1]);return g};Math.easeInOutSine=function(a){return-.5*(Math.cos(Math.PI*a)-1)};a.getStyle=function(g,e,r){if("width"===e)return Math.min(g.offsetWidth,g.scrollWidth)-a.getStyle(g,"padding-left")-a.getStyle(g,"padding-right");
|
|
if("height"===e)return Math.min(g.offsetHeight,g.scrollHeight)-a.getStyle(g,"padding-top")-a.getStyle(g,"padding-bottom");z.getComputedStyle||a.error(27,!0);if(g=z.getComputedStyle(g,void 0))g=g.getPropertyValue(e),a.pick(r,"opacity"!==e)&&(g=a.pInt(g));return g};a.inArray=function(g,e){return(a.indexOfPolyfill||Array.prototype.indexOf).call(e,g)};a.grep=function(g,e){return(a.filterPolyfill||Array.prototype.filter).call(g,e)};a.find=Array.prototype.find?function(a,e){return a.find(e)}:function(a,
|
|
e){var g,l=a.length;for(g=0;g<l;g++)if(e(a[g],g))return a[g]};a.map=function(a,e){for(var g=[],l=0,q=a.length;l<q;l++)g[l]=e.call(a[l],a[l],l,a);return g};a.keys=function(g){return(a.keysPolyfill||Object.keys).call(void 0,g)};a.reduce=function(g,e,r){return(a.reducePolyfill||Array.prototype.reduce).call(g,e,r)};a.offset=function(a){var e=B.documentElement;a=a.parentElement?a.getBoundingClientRect():{top:0,left:0};return{top:a.top+(z.pageYOffset||e.scrollTop)-(e.clientTop||0),left:a.left+(z.pageXOffset||
|
|
e.scrollLeft)-(e.clientLeft||0)}};a.stop=function(g,e){for(var r=a.timers.length;r--;)a.timers[r].elem!==g||e&&e!==a.timers[r].prop||(a.timers[r].stopped=!0)};a.each=function(g,e,r){return(a.forEachPolyfill||Array.prototype.forEach).call(g,e,r)};a.objectEach=function(a,e,r){for(var l in a)a.hasOwnProperty(l)&&e.call(r,a[l],l,a)};a.addEvent=function(g,e,r){var l,q,p=g.addEventListener||a.addEventListenerPolyfill;g.hcEvents&&!Object.prototype.hasOwnProperty.call(g,"hcEvents")&&(q={},a.objectEach(g.hcEvents,
|
|
function(a,d){q[d]=a.slice(0)}),g.hcEvents=q);l=g.hcEvents=g.hcEvents||{};p&&p.call(g,e,r,!1);l[e]||(l[e]=[]);l[e].push(r);return function(){a.removeEvent(g,e,r)}};a.removeEvent=function(g,e,r){function l(k,d){var f=g.removeEventListener||a.removeEventListenerPolyfill;f&&f.call(g,k,d,!1)}function q(){var d,p;g.nodeName&&(e?(d={},d[e]=!0):d=k,a.objectEach(d,function(a,b){if(k[b])for(p=k[b].length;p--;)l(b,k[b][p])}))}var p,k=g.hcEvents,d;k&&(e?(p=k[e]||[],r?(d=a.inArray(r,p),-1<d&&(p.splice(d,1),k[e]=
|
|
p),l(e,r)):(q(),k[e]=[])):(q(),g.hcEvents={}))};a.fireEvent=function(g,e,r,l){var q;q=g.hcEvents;var p,k;r=r||{};if(B.createEvent&&(g.dispatchEvent||g.fireEvent))q=B.createEvent("Events"),q.initEvent(e,!0,!0),a.extend(q,r),g.dispatchEvent?g.dispatchEvent(q):g.fireEvent(e,q);else if(q)for(q=q[e]||[],p=q.length,r.target||a.extend(r,{preventDefault:function(){r.defaultPrevented=!0},target:g,type:e}),e=0;e<p;e++)(k=q[e])&&!1===k.call(g,r)&&r.preventDefault();l&&!r.defaultPrevented&&l(r)};a.animate=function(g,
|
|
e,r){var l,q="",p,k,d;a.isObject(r)||(d=arguments,r={duration:d[2],easing:d[3],complete:d[4]});a.isNumber(r.duration)||(r.duration=400);r.easing="function"===typeof r.easing?r.easing:Math[r.easing]||Math.easeInOutSine;r.curAnim=a.merge(e);a.objectEach(e,function(d,w){a.stop(g,w);k=new a.Fx(g,r,w);p=null;"d"===w?(k.paths=k.initPath(g,g.d,e.d),k.toD=e.d,l=0,p=1):g.attr?l=g.attr(w):(l=parseFloat(a.getStyle(g,w))||0,"opacity"!==w&&(q="px"));p||(p=d);p&&p.match&&p.match("px")&&(p=p.replace(/px/g,""));
|
|
k.run(l,p,q)})};a.seriesType=function(g,e,r,l,q){var p=a.getOptions(),k=a.seriesTypes;p.plotOptions[g]=a.merge(p.plotOptions[e],r);k[g]=a.extendClass(k[e]||function(){},l);k[g].prototype.type=g;q&&(k[g].prototype.pointClass=a.extendClass(a.Point,q));return k[g]};a.uniqueKey=function(){var a=Math.random().toString(36).substring(2,9),e=0;return function(){return"highcharts-"+a+"-"+e++}}();z.jQuery&&(z.jQuery.fn.highcharts=function(){var g=[].slice.call(arguments);if(this[0])return g[0]?(new (a[a.isString(g[0])?
|
|
g.shift():"Chart"])(this[0],g[0],g[1]),this):x[a.attr(this[0],"data-highcharts-chart")]})})(H);(function(a){var x=a.each,B=a.isNumber,z=a.map,g=a.merge,e=a.pInt;a.Color=function(e){if(!(this instanceof a.Color))return new a.Color(e);this.init(e)};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[e(a[1]),e(a[2]),e(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[e(a[1]),e(a[2]),e(a[3]),1]}}],names:{none:"rgba(255,255,255,0)",white:"#ffffff",black:"#000000"},init:function(e){var l,g,p,k;if((this.input=e=this.names[e&&e.toLowerCase?e.toLowerCase():""]||e)&&e.stops)this.stops=z(e.stops,function(k){return new a.Color(k[1])});else if(e&&e.charAt&&"#"===e.charAt()&&(l=e.length,e=parseInt(e.substr(1),16),7===l?g=[(e&16711680)>>16,(e&65280)>>8,e&255,1]:4===l&&(g=[(e&3840)>>4|(e&3840)>>8,(e&240)>>4|e&240,(e&15)<<4|e&15,1])),!g)for(p=this.parsers.length;p--&&
|
|
!g;)k=this.parsers[p],(l=k.regex.exec(e))&&(g=k.parse(l));this.rgba=g||[]},get:function(a){var e=this.input,q=this.rgba,p;this.stops?(p=g(e),p.stops=[].concat(p.stops),x(this.stops,function(k,d){p.stops[d]=[p.stops[d][0],k.get(a)]})):p=q&&B(q[0])?"rgb"===a||!a&&1===q[3]?"rgb("+q[0]+","+q[1]+","+q[2]+")":"a"===a?q[3]:"rgba("+q.join(",")+")":e;return p},brighten:function(a){var g,q=this.rgba;if(this.stops)x(this.stops,function(e){e.brighten(a)});else if(B(a)&&0!==a)for(g=0;3>g;g++)q[g]+=e(255*a),0>
|
|
q[g]&&(q[g]=0),255<q[g]&&(q[g]=255);return this},setOpacity:function(a){this.rgba[3]=a;return this},tweenTo:function(a,e){var g=this.rgba,l=a.rgba;l.length&&g&&g.length?(a=1!==l[3]||1!==g[3],e=(a?"rgba(":"rgb(")+Math.round(l[0]+(g[0]-l[0])*(1-e))+","+Math.round(l[1]+(g[1]-l[1])*(1-e))+","+Math.round(l[2]+(g[2]-l[2])*(1-e))+(a?","+(l[3]+(g[3]-l[3])*(1-e)):"")+")"):e=a.input||"none";return e}};a.color=function(e){return new a.Color(e)}})(H);(function(a){function x(){var e=a.defaultOptions.global,g=
|
|
r.moment;if(e.timezone){if(g)return function(a){return-g.tz(a,e.timezone).utcOffset()};a.error(25)}return e.useUTC&&e.getTimezoneOffset}function B(){var g=a.defaultOptions.global,q,p=g.useUTC,k=p?"getUTC":"get",d=p?"setUTC":"set",n="Minutes Hours Day Date Month FullYear".split(" "),w=n.concat(["Milliseconds","Seconds"]);a.Date=q=g.Date||r.Date;q.hcTimezoneOffset=p&&g.timezoneOffset;q.hcGetTimezoneOffset=x();q.hcHasTimeZone=!(!q.hcTimezoneOffset&&!q.hcGetTimezoneOffset);q.hcMakeTime=function(a,b,c,
|
|
k,m,d){var f;p?(f=q.UTC.apply(0,arguments),f+=z(f)):f=(new q(a,b,e(c,1),e(k,0),e(m,0),e(d,0))).getTime();return f};for(g=0;g<n.length;g++)q["hcGet"+n[g]]=k+n[g];for(g=0;g<w.length;g++)q["hcSet"+w[g]]=d+w[g]}var z=a.getTZOffset,g=a.merge,e=a.pick,r=a.win;a.defaultOptions={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:{useUTC:!0},chart:{borderRadius:0,colorCount:10,defaultSeriesType:"line",ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}},width:null,height:null},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",layout:"horizontal",labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{},itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{}},loading:{},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,headerFormat:'\x3cspan class\x3d"highcharts-header"\x3e{point.key}\x3c/span\x3e\x3cbr/\x3e',pointFormat:'\x3cspan class\x3d"highcharts-color-{point.colorIndex}"\x3e\u25cf\x3c/span\x3e {series.name}: \x3cspan class\x3d"highcharts-strong"\x3e{point.y}\x3c/span\x3e\x3cbr/\x3e'},credits:{enabled:!0,
|
|
href:"http://www.highcharts.com",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},text:"Highcharts.com"}};a.setOptions=function(e){a.defaultOptions=g(!0,a.defaultOptions,e);B();return a.defaultOptions};a.getOptions=function(){return a.defaultOptions};a.defaultPlotOptions=a.defaultOptions.plotOptions;B()})(H);(function(a){var x,B,z=a.addEvent,g=a.animate,e=a.attr,r=a.charts,l=a.color,q=a.css,p=a.createElement,k=a.defined,d=a.deg2rad,n=a.destroyObjectProperties,w=a.doc,f=a.each,b=a.extend,
|
|
c=a.erase,h=a.grep,m=a.hasTouch,F=a.inArray,I=a.isArray,E=a.isFirefox,J=a.isMS,v=a.isObject,K=a.isString,y=a.isWebKit,A=a.merge,D=a.noop,L=a.objectEach,t=a.pick,u=a.pInt,N=a.removeEvent,G=a.splat,C=a.stop,R=a.svg,P=a.SVG_NS,Q=a.symbolSizes,O=a.win;x=a.SVGElement=function(){return this};b(x.prototype,{opacity:1,SVG_NS:P,textProps:"direction fontSize fontWeight fontFamily fontStyle color lineHeight width textAlign textDecoration textOverflow textOutline".split(" "),init:function(a,b){this.element="span"===
|
|
b?p(b):w.createElementNS(this.SVG_NS,b);this.renderer=a},animate:function(b,c,u){c=a.animObject(t(c,this.renderer.globalAnimation,!0));0!==c.duration?(u&&(c.complete=u),g(this,b,c)):(this.attr(b,null,u),c.step&&c.step.call(this));return this},colorGradient:function(b,c,t){var u=this.renderer,M,h,m,C,d,e,D,y,n,G,g=[],T;b.radialGradient?h="radialGradient":b.linearGradient&&(h="linearGradient");h&&(m=b[h],d=u.gradients,D=b.stops,G=t.radialReference,I(m)&&(b[h]=m={x1:m[0],y1:m[1],x2:m[2],y2:m[3],gradientUnits:"userSpaceOnUse"}),
|
|
"radialGradient"===h&&G&&!k(m.gradientUnits)&&(C=m,m=A(m,u.getRadialAttr(G,C),{gradientUnits:"userSpaceOnUse"})),L(m,function(a,b){"id"!==b&&g.push(b,a)}),L(D,function(a){g.push(a)}),g=g.join(","),d[g]?G=d[g].attr("id"):(m.id=G=a.uniqueKey(),d[g]=e=u.createElement(h).attr(m).add(u.defs),e.radAttr=C,e.stops=[],f(D,function(b){0===b[1].indexOf("rgba")?(M=a.color(b[1]),y=M.get("rgb"),n=M.get("a")):(y=b[1],n=1);b=u.createElement("stop").attr({offset:b[0],"stop-color":y,"stop-opacity":n}).add(e);e.stops.push(b)})),
|
|
T="url("+u.url+"#"+G+")",t.setAttribute(c,T),t.gradient=g,b.toString=function(){return T})},applyTextOutline:function(b){var t=this.element,u,M,k,h,m;-1!==b.indexOf("contrast")&&(b=b.replace(/contrast/g,this.renderer.getContrast(t.style.fill)));b=b.split(" ");M=b[b.length-1];if((k=b[0])&&"none"!==k&&a.svg){this.fakeTS=!0;b=[].slice.call(t.getElementsByTagName("tspan"));this.ySetter=this.xSetter;k=k.replace(/(^[\d\.]+)(.*?)$/g,function(a,b,c){return 2*b+c});for(m=b.length;m--;)u=b[m],"highcharts-text-outline"===
|
|
u.getAttribute("class")&&c(b,t.removeChild(u));h=t.firstChild;f(b,function(a,b){0===b&&(a.setAttribute("x",t.getAttribute("x")),b=t.getAttribute("y"),a.setAttribute("y",b||0),null===b&&t.setAttribute("y",0));a=a.cloneNode(1);e(a,{"class":"highcharts-text-outline",fill:M,stroke:M,"stroke-width":k,"stroke-linejoin":"round"});t.insertBefore(a,h)})}},attr:function(a,b,c,t){var u,M=this.element,f,k=this,h,m;"string"===typeof a&&void 0!==b&&(u=a,a={},a[u]=b);"string"===typeof a?k=(this[a+"Getter"]||this._defaultGetter).call(this,
|
|
a,M):(L(a,function(b,c){h=!1;t||C(this,c);this.symbolName&&/^(x|y|width|height|r|start|end|innerR|anchorX|anchorY)$/.test(c)&&(f||(this.symbolAttr(a),f=!0),h=!0);!this.rotation||"x"!==c&&"y"!==c||(this.doTransform=!0);h||(m=this[c+"Setter"]||this._defaultSetter,m.call(this,b,c,M))},this),this.afterSetters());c&&c();return k},afterSetters:function(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)},addClass:function(a,b){var c=this.attr("class")||"";-1===c.indexOf(a)&&(b||(a=(c+(c?" ":
|
|
"")+a).replace(" "," ")),this.attr("class",a));return this},hasClass:function(a){return-1!==F(a,(this.attr("class")||"").split(" "))},removeClass:function(a){return this.attr("class",(this.attr("class")||"").replace(a,""))},symbolAttr:function(a){var b=this;f("x y r start end width height innerR anchorX anchorY".split(" "),function(c){b[c]=t(a[c],b[c])});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 c;b=b||a.strokeWidth||0;c=Math.round(b)%2/2;a.x=Math.floor(a.x||this.x||0)+c;a.y=Math.floor(a.y||this.y||0)+c;a.width=Math.floor((a.width||this.width||0)-2*c);a.height=Math.floor((a.height||this.height||0)-2*c);k(a.strokeWidth)&&(a.strokeWidth=b);return a},css:function(a){var c=this.styles,t={},f=this.element,k,h="",m,M=!c,C=["textOutline","textOverflow","width"];a&&a.color&&(a.fill=a.color);c&&L(a,function(a,b){a!==c[b]&&(t[b]=a,M=!0)});M&&(c&&(a=b(c,
|
|
t)),k=this.textWidth=a&&a.width&&"auto"!==a.width&&"text"===f.nodeName.toLowerCase()&&u(a.width),this.styles=a,k&&!R&&this.renderer.forExport&&delete a.width,J&&!R?q(this.element,a):(m=function(a,b){return"-"+b.toLowerCase()},L(a,function(a,b){-1===F(b,C)&&(h+=b.replace(/([A-Z])/g,m)+":"+a+";")}),h&&e(f,"style",h)),this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),a&&a.textOutline&&this.applyTextOutline(a.textOutline)));return this},getStyle:function(a){return O.getComputedStyle(this.element||
|
|
this,"").getPropertyValue(a)},strokeWidth:function(){var a=this.getStyle("stroke-width"),b;a.indexOf("px")===a.length-2?a=u(a):(b=w.createElementNS(P,"rect"),e(b,{width:a,"stroke-width":0}),this.element.parentNode.appendChild(b),a=b.getBBox().width,b.parentNode.removeChild(b));return a},on:function(a,b){var c=this,t=c.element;m&&"click"===a?(t.ontouchstart=function(a){c.touchEventFired=Date.now();a.preventDefault();b.call(t,a)},t.onclick=function(a){(-1===O.navigator.userAgent.indexOf("Android")||
|
|
1100<Date.now()-(c.touchEventFired||0))&&b.call(t,a)}):t["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,c=this.scaleX,
|
|
u=this.scaleY,f=this.inverted,h=this.rotation,m=this.matrix,C=this.element;f&&(a+=this.width,b+=this.height);a=["translate("+a+","+b+")"];k(m)&&a.push("matrix("+m.join(",")+")");f?a.push("rotate(90) scale(-1,1)"):h&&a.push("rotate("+h+" "+t(this.rotationOriginX,C.getAttribute("x"),0)+" "+t(this.rotationOriginY,C.getAttribute("y")||0)+")");(k(c)||k(u))&&a.push("scale("+t(c,1)+" "+t(u,1)+")");a.length&&C.setAttribute("transform",a.join(" "))},toFront:function(){var a=this.element;a.parentNode.appendChild(a);
|
|
return this},align:function(a,b,u){var f,h,k,m,C={};h=this.renderer;k=h.alignedObjects;var M,d;if(a){if(this.alignOptions=a,this.alignByTranslate=b,!u||K(u))this.alignTo=f=u||"renderer",c(k,this),k.push(this),u=null}else a=this.alignOptions,b=this.alignByTranslate,f=this.alignTo;u=t(u,h[f],h);f=a.align;h=a.verticalAlign;k=(u.x||0)+(a.x||0);m=(u.y||0)+(a.y||0);"right"===f?M=1:"center"===f&&(M=2);M&&(k+=(u.width-(a.width||0))/M);C[b?"translateX":"x"]=Math.round(k);"bottom"===h?d=1:"middle"===h&&(d=
|
|
2);d&&(m+=(u.height-(a.height||0))/d);C[b?"translateY":"y"]=Math.round(m);this[this.placed?"animate":"attr"](C);this.placed=!0;this.alignAttr=C;return this},getBBox:function(a,c){var u,h=this.renderer,m,C=this.element,M=this.styles,e,D=this.textStr,y,n=h.cache,g=h.cacheKeys,G;c=t(c,this.rotation);m=c*d;e=C&&x.prototype.getStyle.call(C,"font-size");k(D)&&(G=D.toString(),-1===G.indexOf("\x3c")&&(G=G.replace(/[0-9]/g,"0")),G+=["",c||0,e,M&&M.width,M&&M.textOverflow].join());G&&!a&&(u=n[G]);if(!u){if(C.namespaceURI===
|
|
this.SVG_NS||h.forExport){try{(y=this.fakeTS&&function(a){f(C.querySelectorAll(".highcharts-text-outline"),function(b){b.style.display=a})})&&y("none"),u=C.getBBox?b({},C.getBBox()):{width:C.offsetWidth,height:C.offsetHeight},y&&y("")}catch(V){}if(!u||0>u.width)u={width:0,height:0}}else u=this.htmlGetBBox();h.isSVG&&(a=u.width,h=u.height,M&&"11px"===M.fontSize&&17===Math.round(h)&&(u.height=h=14),c&&(u.width=Math.abs(h*Math.sin(m))+Math.abs(a*Math.cos(m)),u.height=Math.abs(h*Math.cos(m))+Math.abs(a*
|
|
Math.sin(m))));if(G&&0<u.height){for(;250<g.length;)delete n[g.shift()];n[G]||g.push(G);n[G]=u}}return u},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,c=this.element,t;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)t=this.zIndexSetter();t||(a?a.element:b.box).appendChild(c);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||{},t=a.renderer.isSVG&&"SPAN"===b.nodeName&&a.parentGroup,u=b.ownerSVGElement;b.onclick=b.onmouseout=b.onmouseover=b.onmousemove=b.point=null;C(a);a.clipPath&&u&&(f(u.querySelectorAll("[clip-path],[CLIP-PATH]"),function(b){b.getAttribute("clip-path").match(RegExp('[("]#'+
|
|
a.clipPath.element.id+'[)"]'))&&b.removeAttribute("clip-path")}),a.clipPath=a.clipPath.destroy());if(a.stops){for(u=0;u<a.stops.length;u++)a.stops[u]=a.stops[u].destroy();a.stops=null}for(a.safeRemoveChild(b);t&&t.div&&0===t.div.childNodes.length;)b=t.parentGroup,a.safeRemoveChild(t.div),delete t.div,t=b;a.alignTo&&c(a.renderer.alignedObjects,a);L(a,function(b,c){delete a[c]});return null},xGetter:function(a){"circle"===this.element.nodeName&&("x"===a?a="cx":"y"===a&&(a="cy"));return this._defaultGetter(a)},
|
|
_defaultGetter:function(a){a=t(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,c){a&&a.join&&(a=a.join(" "));/(NaN| {2}|^$)/.test(a)&&(a="M 0 0");this[b]!==a&&(c.setAttribute(b,a),this[b]=a)},alignSetter:function(a){this.alignValue=a;this.element.setAttribute("text-anchor",{left:"start",center:"middle",right:"end"}[a])},opacitySetter:function(a,b,c){this[b]=a;c.setAttribute(b,a)},titleSetter:function(a){var b=
|
|
this.element.getElementsByTagName("title")[0];b||(b=w.createElementNS(this.SVG_NS,"title"),this.element.appendChild(b));b.firstChild&&b.removeChild(b.firstChild);b.appendChild(w.createTextNode(String(t(a),"").replace(/<[^>]*>/g,"")))},textSetter:function(a){a!==this.textStr&&(delete this.bBox,this.textStr=a,this.added&&this.renderer.buildText(this))},fillSetter:function(a,b,c){"string"===typeof a?c.setAttribute(b,a):a&&this.colorGradient(a,b,c)},visibilitySetter:function(a,b,c){"inherit"===a?c.removeAttribute(b):
|
|
this[b]!==a&&c.setAttribute(b,a);this[b]=a},zIndexSetter:function(a,b){var c=this.renderer,t=this.parentGroup,f=(t||c).element||c.box,h,m=this.element,C,d,c=f===c.box;h=this.added;var e;k(a)&&(m.zIndex=a,a=+a,this[b]===a&&(h=!1),this[b]=a);if(h){(a=this.zIndex)&&t&&(t.handleZ=!0);b=f.childNodes;for(e=b.length-1;0<=e&&!C;e--)if(t=b[e],h=t.zIndex,d=!k(h),t!==m)if(0>a&&d&&!c&&!e)f.insertBefore(m,b[e]),C=!0;else if(u(h)<=a||d&&(!k(a)||0<=a))f.insertBefore(m,b[e+1]||null),C=!0;C||(f.insertBefore(m,b[c?
|
|
3:0]||null),C=!0)}return C},_defaultSetter:function(a,b,c){c.setAttribute(b,a)}});x.prototype.yGetter=x.prototype.xGetter;x.prototype.translateXSetter=x.prototype.translateYSetter=x.prototype.rotationSetter=x.prototype.verticalAlignSetter=x.prototype.rotationOriginXSetter=x.prototype.rotationOriginYSetter=x.prototype.scaleXSetter=x.prototype.scaleYSetter=x.prototype.matrixSetter=function(a,b){this[b]=a;this.doTransform=!0};B=a.SVGRenderer=function(){this.init.apply(this,arguments)};b(B.prototype,
|
|
{Element:x,SVG_NS:P,init:function(a,b,c,t,u,f){var h;t=this.createElement("svg").attr({version:"1.1","class":"highcharts-root"});h=t.element;a.appendChild(h);e(a,"dir","ltr");-1===a.innerHTML.indexOf("xmlns")&&e(h,"xmlns",this.SVG_NS);this.isSVG=!0;this.box=h;this.boxWrapper=t;this.alignedObjects=[];this.url=(E||y)&&w.getElementsByTagName("base").length?O.location.href.replace(/#.*?$/,"").replace(/<[^>]*>/g,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"";this.createElement("desc").add().element.appendChild(w.createTextNode("Created with Highmaps 6.0.4"));
|
|
this.defs=this.createElement("defs").add();this.allowHTML=f;this.forExport=u;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount=0;this.setSize(b,c,!1);var m;E&&a.getBoundingClientRect&&(b=function(){q(a,{left:0,top:0});m=a.getBoundingClientRect();q(a,{left:Math.ceil(m.left)-m.left+"px",top:Math.ceil(m.top)-m.top+"px"})},b(),this.unSubPixelFix=z(O,"resize",b))},definition:function(a){function b(a,t){var u;f(G(a),function(a){var f=c.createElement(a.tagName),h={};L(a,function(a,b){"tagName"!==
|
|
b&&"children"!==b&&"textContent"!==b&&(h[b]=a)});f.attr(h);f.add(t||c.defs);a.textContent&&f.element.appendChild(w.createTextNode(a.textContent));b(a.children||[],f);u=f});return u}var c=this;return b(a)},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var a=this.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();n(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:D,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]}},getSpanWidth:function(a,b){var c=a.getBBox(!0).width;!R&&this.forExport&&(c=this.measureSpanWidth(b.firstChild.data,a.styles));return c},applyEllipsis:function(a,b,c,t){var u=a.rotation,f=c,h,m=0,k=c.length,C=function(a){b.removeChild(b.firstChild);a&&b.appendChild(w.createTextNode(a))},d;a.rotation=0;f=this.getSpanWidth(a,b);if(d=f>t){for(;m<=k;)h=Math.ceil((m+
|
|
k)/2),f=c.substring(0,h)+"\u2026",C(f),f=this.getSpanWidth(a,b),m===k?m=k+1:f>t?k=h-1:m=h;0===k&&C("")}a.rotation=u;return d},escapes:{"\x26":"\x26amp;","\x3c":"\x26lt;","\x3e":"\x26gt;","'":"\x26#39;",'"':"\x26quot;"},buildText:function(a){var b=a.element,c=this,m=c.forExport,k=t(a.textStr,"").toString(),C=-1!==k.indexOf("\x3c"),d=b.childNodes,D,y,G,n,g=e(b,"x"),A=a.styles,v=a.textWidth,N=A&&A.lineHeight,l=A&&A.textOutline,M=A&&"ellipsis"===A.textOverflow,p=A&&"nowrap"===A.whiteSpace,E,J=d.length,
|
|
F=v&&!a.added&&this.box,r=function(a){return N?u(N):c.fontMetrics(void 0,a.getAttribute("style")?a:b).h},K=function(a){L(c.escapes,function(b,c){a=a.replace(new RegExp(b,"g"),c)});return a},A=[k,M,p,N,l,A&&A.fontSize,v].join();if(A!==a.textCache){for(a.textCache=A;J--;)b.removeChild(d[J]);C||l||M||v||-1!==k.indexOf(" ")?(D=/<.*class="([^"]+)".*>/,y=/<.*style="([^"]+)".*>/,G=/<.*href="([^"]+)".*>/,F&&F.appendChild(b),k=C?k.replace(/<(b|strong)>/g,'\x3cspan class\x3d"highcharts-strong"\x3e').replace(/<(i|em)>/g,
|
|
'\x3cspan class\x3d"highcharts-emphasized"\x3e').replace(/<a/g,"\x3cspan").replace(/<\/(b|strong|i|em|a)>/g,"\x3c/span\x3e").split(/<br.*?>/g):[k],k=h(k,function(a){return""!==a}),f(k,function(t,u){var h,k=0;t=t.replace(/^\s+|\s+$/g,"").replace(/<span/g,"|||\x3cspan").replace(/<\/span>/g,"\x3c/span\x3e|||");h=t.split("|||");f(h,function(t){if(""!==t||1===h.length){var f={},C=w.createElementNS(c.SVG_NS,"tspan"),d,A;D.test(t)&&(d=t.match(D)[1],e(C,"class",d));y.test(t)&&(A=t.match(y)[1].replace(/(;| |^)color([ :])/,
|
|
"$1fill$2"),e(C,"style",A));G.test(t)&&!m&&(e(C,"onclick",'location.href\x3d"'+t.match(G)[1]+'"'),e(C,"class","highcharts-anchor"));t=K(t.replace(/<[a-zA-Z\/](.|\n)*?>/g,"")||" ");if(" "!==t){C.appendChild(w.createTextNode(t));k?f.dx=0:u&&null!==g&&(f.x=g);e(C,f);b.appendChild(C);!k&&E&&(!R&&m&&q(C,{display:"block"}),e(C,"dy",r(C)));if(v){f=t.replace(/([^\^])-/g,"$1- ").split(" ");d=1<h.length||u||1<f.length&&!p;var N=[],l,J=r(C),F=a.rotation;for(M&&(n=c.applyEllipsis(a,C,t,v));!M&&d&&(f.length||
|
|
N.length);)a.rotation=0,l=c.getSpanWidth(a,C),t=l>v,void 0===n&&(n=t),t&&1!==f.length?(C.removeChild(C.firstChild),N.unshift(f.pop())):(f=N,N=[],f.length&&!p&&(C=w.createElementNS(P,"tspan"),e(C,{dy:J,x:g}),A&&e(C,"style",A),b.appendChild(C)),l>v&&(v=l)),f.length&&C.appendChild(w.createTextNode(f.join(" ").replace(/- /g,"-")));a.rotation=F}k++}}});E=E||b.childNodes.length}),n&&a.attr("title",a.textStr),F&&F.removeChild(b),l&&a.applyTextOutline&&a.applyTextOutline(l)):b.appendChild(w.createTextNode(K(k)))}},
|
|
getContrast:function(a){a=l(a).rgba;return 510<a[0]+a[1]+a[2]?"#000000":"#FFFFFF"},button:function(a,b,c,t,u,f,h,m,k){var C=this.label(a,b,c,k,null,null,null,null,"button"),d=0;C.attr(A({padding:8,r:2},u));z(C.element,J?"mouseover":"mouseenter",function(){3!==d&&C.setState(1)});z(C.element,J?"mouseout":"mouseleave",function(){3!==d&&C.setState(d)});C.setState=function(a){1!==a&&(C.state=d=a);C.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal",
|
|
"hover","pressed","disabled"][a||0])};return C.on("click",function(a){3!==d&&t.call(C,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 c={};I(a)?c.d=a:v(a)&&b(c,a);return this.createElement("path").attr(c)},circle:function(a,b,c){a=v(a)?a:{x:a,y:b,r:c};b=this.createElement("circle");b.xSetter=b.ySetter=function(a,b,c){c.setAttribute("c"+b,a)};return b.attr(a)},arc:function(a,b,c,t,u,f){v(a)?
|
|
(t=a,b=t.y,c=t.r,a=t.x):t={innerR:t,start:u,end:f};a=this.symbol("arc",a,b,c,c,t);a.r=c;return a},rect:function(a,b,c,t,u,f){u=v(a)?a.r:u;f=this.createElement("rect");a=v(a)?a:void 0===a?{}:{x:a,y:b,width:Math.max(c,0),height:Math.max(t,0)};u&&(a.r=u);f.rSetter=function(a,b,c){e(c,{rx:a,ry:a})};return f.attr(a)},setSize:function(a,b,c){var u=this.alignedObjects,f=u.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:t(c,!0)?void 0:0});f--;)u[f].align()},g:function(a){var b=this.createElement("g");return a?b.attr({"class":"highcharts-"+a}):b},image:function(a,c,t,u,f){var h={preserveAspectRatio:"none"};1<arguments.length&&b(h,{x:c,y:t,width:u,height:f});h=this.createElement("image").attr(h);h.element.setAttributeNS?h.element.setAttributeNS("http://www.w3.org/1999/xlink","href",a):h.element.setAttribute("hc-svg-href",a);return h},symbol:function(a,c,u,h,m,C){var d=this,e,D=/^url\((.*?)\)$/,
|
|
y=D.test(a),G=!y&&(this.symbols[a]?a:"circle"),n=G&&this.symbols[G],g=k(c)&&n&&n.call(this.symbols,Math.round(c),Math.round(u),h,m,C),A,v;n?(e=this.path(g),b(e,{symbolName:G,x:c,y:u,width:h,height:m}),C&&b(e,C)):y&&(A=a.match(D)[1],e=this.image(A),e.imgwidth=t(Q[A]&&Q[A].width,C&&C.width),e.imgheight=t(Q[A]&&Q[A].height,C&&C.height),v=function(){e.attr({width:e.width,height:e.height})},f(["width","height"],function(a){e[a+"Setter"]=function(a,b){var c={},t=this["img"+b],u="width"===b?"translateX":
|
|
"translateY";this[b]=a;k(t)&&(this.element&&this.element.setAttribute(b,t),this.alignByTranslate||(c[u]=((this[b]||0)-t)/2,this.attr(c)))}}),k(c)&&e.attr({x:c,y:u}),e.isImg=!0,k(e.imgwidth)&&k(e.imgheight)?v():(e.attr({width:0,height:0}),p("img",{onload:function(){var a=r[d.chartIndex];0===this.width&&(q(this,{position:"absolute",top:"-999em"}),w.body.appendChild(this));Q[A]={width:this.width,height:this.height};e.imgwidth=this.width;e.imgheight=this.height;e.element&&v();this.parentNode&&this.parentNode.removeChild(this);
|
|
d.imgCount--;if(!d.imgCount&&a&&a.onload)a.onload()},src:A}),this.imgCount++));return e},symbols:{circle:function(a,b,c,t){return this.arc(a+c/2,b+t/2,c/2,t/2,{start:0,end:2*Math.PI,open:!1})},square:function(a,b,c,t){return["M",a,b,"L",a+c,b,a+c,b+t,a,b+t,"Z"]},triangle:function(a,b,c,t){return["M",a+c/2,b,"L",a+c,b+t,a,b+t,"Z"]},"triangle-down":function(a,b,c,t){return["M",a,b,"L",a+c,b,a+c/2,b+t,"Z"]},diamond:function(a,b,c,t){return["M",a+c/2,b,"L",a+c,b+t/2,a+c/2,b+t,a,b+t/2,"Z"]},arc:function(a,
|
|
b,c,u,f){var h=f.start,m=f.r||c,C=f.r||u||c,d=f.end-.001;c=f.innerR;u=t(f.open,.001>Math.abs(f.end-f.start-2*Math.PI));var e=Math.cos(h),D=Math.sin(h),y=Math.cos(d),d=Math.sin(d);f=.001>f.end-h-Math.PI?0:1;m=["M",a+m*e,b+C*D,"A",m,C,0,f,1,a+m*y,b+C*d];k(c)&&m.push(u?"M":"L",a+c*y,b+c*d,"A",c,c,0,f,0,a+c*e,b+c*D);m.push(u?"":"Z");return m},callout:function(a,b,c,t,u){var f=Math.min(u&&u.r||0,c,t),h=f+6,m=u&&u.anchorX;u=u&&u.anchorY;var C;C=["M",a+f,b,"L",a+c-f,b,"C",a+c,b,a+c,b,a+c,b+f,"L",a+c,b+t-
|
|
f,"C",a+c,b+t,a+c,b+t,a+c-f,b+t,"L",a+f,b+t,"C",a,b+t,a,b+t,a,b+t-f,"L",a,b+f,"C",a,b,a,b,a+f,b];m&&m>c?u>b+h&&u<b+t-h?C.splice(13,3,"L",a+c,u-6,a+c+6,u,a+c,u+6,a+c,b+t-f):C.splice(13,3,"L",a+c,t/2,m,u,a+c,t/2,a+c,b+t-f):m&&0>m?u>b+h&&u<b+t-h?C.splice(33,3,"L",a,u+6,a-6,u,a,u-6,a,b+f):C.splice(33,3,"L",a,t/2,m,u,a,t/2,a,b+f):u&&u>t&&m>a+h&&m<a+c-h?C.splice(23,3,"L",m+6,b+t,m,b+t+6,m-6,b+t,a+f,b+t):u&&0>u&&m>a+h&&m<a+c-h&&C.splice(3,3,"L",m-6,b,m,b-6,m+6,b,c-f,b);return C}},clipRect:function(b,c,t,
|
|
u){var f=a.uniqueKey(),h=this.createElement("clipPath").attr({id:f}).add(this.defs);b=this.rect(b,c,t,u,0).add(h);b.id=f;b.clipPath=h;b.count=0;return b},text:function(a,b,c,t){var u={};if(t&&(this.allowHTML||!this.forExport))return this.html(a,b,c);u.x=Math.round(b||0);c&&(u.y=Math.round(c));if(a||0===a)u.text=a;a=this.createElement("text").attr(u);t||(a.xSetter=function(a,b,c){var t=c.getElementsByTagName("tspan"),u,f=c.getAttribute(b),h;for(h=0;h<t.length;h++)u=t[h],u.getAttribute(b)===f&&u.setAttribute(b,
|
|
a);c.setAttribute(b,a)});return a},fontMetrics:function(a,b){a=b&&x.prototype.getStyle.call(b,"font-size");a=/px/.test(a)?u(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,c){var t=a;b&&c&&(t=Math.max(t*Math.cos(b*d),4));return{x:-a/3*Math.sin(b*d),y:t}},label:function(c,t,u,h,m,C,d,e,D){var y=this,G=y.g("button"!==D&&"label"),n=G.text=y.text("",0,0,d).attr({zIndex:1}),g,v,R=0,l=3,w=
|
|
0,p,E,J,F,q,P={},r,K=/^url\((.*?)\)$/.test(h),L=K,Q,I,M,O;D&&G.addClass("highcharts-"+D);L=!0;Q=function(){return g.strokeWidth()%2/2};I=function(){var a=n.element.style,c={};v=(void 0===p||void 0===E||q)&&k(n.textStr)&&n.getBBox();G.width=(p||v.width||0)+2*l+w;G.height=(E||v.height||0)+2*l;r=l+y.fontMetrics(a&&a.fontSize,n).b;L&&(g||(G.box=g=y.symbols[h]||K?y.symbol(h):y.rect(),g.addClass(("button"===D?"":"highcharts-label-box")+(D?" highcharts-"+D+"-box":"")),g.add(G),a=Q(),c.x=a,c.y=(e?-r:0)+a),
|
|
c.width=Math.round(G.width),c.height=Math.round(G.height),g.attr(b(c,P)),P={})};M=function(){var a=w+l,b;b=e?0:r;k(p)&&v&&("center"===q||"right"===q)&&(a+={center:.5,right:1}[q]*(p-v.width));if(a!==n.x||b!==n.y)n.attr("x",a),void 0!==b&&n.attr("y",b);n.x=a;n.y=b};O=function(a,b){g?g.attr(a,b):P[a]=b};G.onAdd=function(){n.add(G);G.attr({text:c||0===c?c:"",x:t,y:u});g&&k(m)&&G.attr({anchorX:m,anchorY:C})};G.widthSetter=function(b){p=a.isNumber(b)?b:null};G.heightSetter=function(a){E=a};G["text-alignSetter"]=
|
|
function(a){q=a};G.paddingSetter=function(a){k(a)&&a!==l&&(l=G.padding=a,M())};G.paddingLeftSetter=function(a){k(a)&&a!==w&&(w=a,M())};G.alignSetter=function(a){a={left:0,center:.5,right:1}[a];a!==R&&(R=a,v&&G.attr({x:J}))};G.textSetter=function(a){void 0!==a&&n.textSetter(a);I();M()};G["stroke-widthSetter"]=function(a,b){a&&(L=!0);this["stroke-width"]=a;O(b,a)};G.rSetter=function(a,b){O(b,a)};G.anchorXSetter=function(a,b){m=G.anchorX=a;O(b,Math.round(a)-Q()-J)};G.anchorYSetter=function(a,b){C=G.anchorY=
|
|
a;O(b,a-F)};G.xSetter=function(a){G.x=a;R&&(a-=R*((p||v.width)+2*l));J=Math.round(a);G.attr("translateX",J)};G.ySetter=function(a){F=G.y=Math.round(a);G.attr("translateY",F)};var T=G.css;return b(G,{css:function(a){if(a){var b={};a=A(a);f(G.textProps,function(c){void 0!==a[c]&&(b[c]=a[c],delete a[c])});n.css(b)}return T.call(G,a)},getBBox:function(){return{width:v.width+2*l,height:v.height+2*l,x:v.x-l,y:v.y-l}},destroy:function(){N(G.element,"mouseenter");N(G.element,"mouseleave");n&&(n=n.destroy());
|
|
g&&(g=g.destroy());x.prototype.destroy.call(G);G=y=I=M=O=null}})}});a.Renderer=B})(H);(function(a){var x=a.attr,B=a.createElement,z=a.css,g=a.defined,e=a.each,r=a.extend,l=a.isFirefox,q=a.isMS,p=a.isWebKit,k=a.pick,d=a.pInt,n=a.SVGRenderer,w=a.win,f=a.wrap;r(a.SVGElement.prototype,{htmlCss:function(a){var b=this.element;if(b=a&&"SPAN"===b.tagName&&a.width)delete a.width,this.textWidth=b,this.updateTransform();a&&"ellipsis"===a.textOverflow&&(a.whiteSpace="nowrap",a.overflow="hidden");this.styles=
|
|
r(this.styles,a);z(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.x||0,m=this.y||0,k=this.textAlign||"left",n={left:0,center:.5,right:1}[k],l=this.styles;z(c,{marginLeft:this.translateX||0,marginTop:this.translateY||0});this.inverted&&e(c.childNodes,function(b){a.invertChild(b,c)});if("SPAN"===c.tagName){var w=
|
|
this.rotation,v=d(this.textWidth),q=l&&l.whiteSpace,y=[w,k,c.innerHTML,this.textWidth,this.textAlign].join();y!==this.cTT&&(l=a.fontMetrics(c.style.fontSize).b,g(w)&&this.setSpanRotation(w,n,l),z(c,{width:"",whiteSpace:q||"nowrap"}),c.offsetWidth>v&&/[ \-]/.test(c.textContent||c.innerText)&&z(c,{width:v+"px",display:"block",whiteSpace:q||"normal"}),this.getSpanCorrection(c.offsetWidth,l,n,w,k));z(c,{left:f+(this.xCorr||0)+"px",top:m+(this.yCorr||0)+"px"});p&&(l=c.offsetHeight);this.cTT=y}}else this.alignOnAdd=
|
|
!0},setSpanRotation:function(a,c,f){var b={},h=this.renderer.getTransformKey();b[h]=b.transform="rotate("+a+"deg)";b[h+(l?"Origin":"-origin")]=b.transformOrigin=100*c+"% "+f+"px";z(this.element,b)},getSpanCorrection:function(a,c,f){this.xCorr=-a*f;this.yCorr=-c}});r(n.prototype,{getTransformKey:function(){return q&&!/Edge/.test(w.navigator.userAgent)?"-ms-transform":p?"-webkit-transform":l?"MozTransform":w.opera?"-o-transform":""},html:function(a,c,h){var b=this.createElement("span"),d=b.element,
|
|
n=b.renderer,g=n.isSVG,l=function(a,b){e(["opacity","visibility"],function(c){f(a,c+"Setter",function(a,c,f,t){a.call(this,c,f,t);b[f]=c})})};b.textSetter=function(a){a!==d.innerHTML&&delete this.bBox;this.textStr=a;d.innerHTML=k(a,"");b.htmlUpdateTransform()};g&&l(b,b.element.style);b.xSetter=b.ySetter=b.alignSetter=b.rotationSetter=function(a,c){"align"===c&&(c="textAlign");b[c]=a;b.htmlUpdateTransform()};b.attr({text:a,x:Math.round(c),y:Math.round(h)}).css({position:"absolute"});d.style.whiteSpace=
|
|
"nowrap";b.css=b.htmlCss;g&&(b.add=function(a){var c,f=n.box.parentNode,h=[];if(this.parentGroup=a){if(c=a.div,!c){for(;a;)h.push(a),a=a.parentGroup;e(h.reverse(),function(a){function k(b,c){a[c]=b;q?t[n.getTransformKey()]="translate("+(a.x||a.translateX)+"px,"+(a.y||a.translateY)+"px)":"translateX"===c?t.left=b+"px":t.top=b+"px";a.doTransform=!0}var t,u=x(a.element,"class");u&&(u={className:u});c=a.div=a.div||B("div",u,{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);t=c.style;r(a,{classSetter:function(a){return function(b){this.element.setAttribute("class",b);a.className=b}}(c),on:function(){h[0].div&&b.on.apply({element:h[0].div},arguments);return a},translateXSetter:k,translateYSetter:k});l(a,t)})}}else c=f;c.appendChild(d);b.added=!0;b.alignOnAdd&&b.htmlUpdateTransform();return b});return b}})})(H);(function(a){var x=a.correctFloat,B=a.defined,z=a.destroyObjectProperties,g=a.isNumber,
|
|
e=a.pick,r=a.deg2rad;a.Tick=function(a,e,g,k){this.axis=a;this.pos=e;this.type=g||"";this.isNewLabel=this.isNew=!0;g||k||this.addLabel()};a.Tick.prototype={addLabel:function(){var a=this.axis,g=a.options,p=a.chart,k=a.categories,d=a.names,n=this.pos,w=g.labels,f=a.tickPositions,b=n===f[0],c=n===f[f.length-1],d=k?e(k[n],d[n],n):n,k=this.label,f=f.info,h;a.isDatetimeAxis&&f&&(h=g.dateTimeLabelFormats[f.higherRanks[n]||f.unitName]);this.isFirst=b;this.isLast=c;g=a.labelFormatter.call({axis:a,chart:p,
|
|
isFirst:b,isLast:c,dateTimeLabelFormat:h,value:a.isLog?x(a.lin2log(d)):d,pos:n});B(k)?k&&k.attr({text:g}):(this.labelLength=(this.label=k=B(g)&&w.enabled?p.renderer.text(g,0,0,w.useHTML).add(a.labelGroup):null)&&k.getBBox().width,this.rotation=0)},getLabelSize:function(){return this.label?this.label.getBBox()[this.axis.horiz?"height":"width"]:0},handleOverflow:function(a){var g=this.axis,l=g.options.labels,k=a.x,d=g.chart.chartWidth,n=g.chart.spacing,w=e(g.labelLeft,Math.min(g.pos,n[3])),n=e(g.labelRight,
|
|
Math.max(g.isRadial?0:g.pos+g.len,d-n[1])),f=this.label,b=this.rotation,c={left:0,center:.5,right:1}[g.labelAlign||f.attr("align")],h=f.getBBox().width,m=g.getSlotWidth(),F=m,I=1,E,J={};if(b||!1===l.overflow)0>b&&k-c*h<w?E=Math.round(k/Math.cos(b*r)-w):0<b&&k+c*h>n&&(E=Math.round((d-k)/Math.cos(b*r)));else if(d=k+(1-c)*h,k-c*h<w?F=a.x+F*(1-c)-w:d>n&&(F=n-a.x+F*c,I=-1),F=Math.min(m,F),F<m&&"center"===g.labelAlign&&(a.x+=I*(m-F-c*(m-Math.min(h,F)))),h>F||g.autoRotation&&(f.styles||{}).width)E=F;E&&
|
|
(J.width=E,(l.style||{}).textOverflow||(J.textOverflow="ellipsis"),f.css(J))},getPosition:function(a,e,g,k){var d=this.axis,n=d.chart,l=k&&n.oldChartHeight||n.chartHeight;return{x:a?d.translate(e+g,null,null,k)+d.transB:d.left+d.offset+(d.opposite?(k&&n.oldChartWidth||n.chartWidth)-d.right-d.left:0),y:a?l-d.bottom+d.offset-(d.opposite?d.height:0):l-d.translate(e+g,null,null,k)-d.transB}},getLabelPosition:function(a,e,g,k,d,n,w,f){var b=this.axis,c=b.transA,h=b.reversed,m=b.staggerLines,l=b.tickRotCorr||
|
|
{x:0,y:0},p=d.y,E=k||b.reserveSpaceDefault?0:-b.labelOffset*("center"===b.labelAlign?.5:1);B(p)||(p=0===b.side?g.rotation?-8:-g.getBBox().height:2===b.side?l.y+8:Math.cos(g.rotation*r)*(l.y-g.getBBox(!1,0).height/2));a=a+d.x+E+l.x-(n&&k?n*c*(h?-1:1):0);e=e+p-(n&&!k?n*c*(h?1:-1):0);m&&(g=w/(f||1)%m,b.opposite&&(g=m-g-1),e+=b.labelOffset/m*g);return{x:a,y:Math.round(e)}},getMarkPath:function(a,e,g,k,d,n){return n.crispLine(["M",a,e,"L",a+(d?0:-g),e+(d?g:0)],k)},renderGridLine:function(a,e,g){var k=
|
|
this.axis,d=this.gridLine,n={},l=this.pos,f=this.type,b=k.tickmarkOffset,c=k.chart.renderer;d||(f||(n.zIndex=1),a&&(n.opacity=0),this.gridLine=d=c.path().attr(n).addClass("highcharts-"+(f?f+"-":"")+"grid-line").add(k.gridGroup));if(!a&&d&&(a=k.getPlotLinePath(l+b,d.strokeWidth()*g,a,!0)))d[this.isNew?"attr":"animate"]({d:a,opacity:e})},renderMark:function(a,e,g){var k=this.axis,d=k.chart.renderer,n=this.type,l=k.tickSize(n?n+"Tick":"tick"),f=this.mark,b=!f,c=a.x;a=a.y;l&&(k.opposite&&(l[0]=-l[0]),
|
|
b&&(this.mark=f=d.path().addClass("highcharts-"+(n?n+"-":"")+"tick").add(k.axisGroup)),f[b?"attr":"animate"]({d:this.getMarkPath(c,a,l[0],f.strokeWidth()*g,k.horiz,d),opacity:e}))},renderLabel:function(a,r,p,k){var d=this.axis,n=d.horiz,l=d.options,f=this.label,b=l.labels,c=b.step,d=d.tickmarkOffset,h=!0,m=a.x;a=a.y;f&&g(m)&&(f.xy=a=this.getLabelPosition(m,a,f,n,b,d,k,c),this.isFirst&&!this.isLast&&!e(l.showFirstLabel,1)||this.isLast&&!this.isFirst&&!e(l.showLastLabel,1)?h=!1:!n||b.step||b.rotation||
|
|
r||0===p||this.handleOverflow(a),c&&k%c&&(h=!1),h&&g(a.y)?(a.opacity=p,f[this.isNewLabel?"attr":"animate"](a),this.isNewLabel=!1):(f.attr("y",-9999),this.isNewLabel=!0))},render:function(a,g,p){var k=this.axis,d=k.horiz,n=this.getPosition(d,this.pos,k.tickmarkOffset,g),l=n.x,f=n.y,k=d&&l===k.pos+k.len||!d&&f===k.pos?-1:1;p=e(p,1);this.isActive=!0;this.renderGridLine(g,p,k);this.renderMark(n,p,k);this.renderLabel(n,g,p,a);this.isNew=!1},destroy:function(){z(this,this.axis)}}})(H);var U=function(a){var x=
|
|
a.addEvent,B=a.animObject,z=a.arrayMax,g=a.arrayMin,e=a.correctFloat,r=a.defaultOptions,l=a.defined,q=a.deg2rad,p=a.destroyObjectProperties,k=a.each,d=a.extend,n=a.fireEvent,w=a.format,f=a.getMagnitude,b=a.grep,c=a.inArray,h=a.isArray,m=a.isNumber,F=a.isString,I=a.merge,E=a.normalizeTickInterval,J=a.objectEach,v=a.pick,K=a.removeEvent,y=a.splat,A=a.syncTimeout,D=a.Tick,L=function(){this.init.apply(this,arguments)};a.extend(L.prototype,{defaultOptions:{dateTimeLabelFormats:{millisecond:"%H:%M:%S.%L",
|
|
second:"%H:%M:%S",minute:"%H:%M",hour:"%H:%M",day:"%e. %b",week:"%e. %b",month:"%b '%y",year:"%Y"},endOnTick:!1,labels:{enabled:!0,x:0},maxPadding:.01,minorTickLength:2,minorTickPosition:"outside",minPadding:.01,startOfWeek:1,startOnTick:!1,tickLength:10,tickmarkPlacement:"between",tickPixelInterval:100,tickPosition:"outside",title:{align:"middle"},type:"linear"},defaultYAxisOptions:{endOnTick:!0,tickPixelInterval:72,showLastLabel:!0,labels:{x:-8},maxPadding:.05,minPadding:.05,startOnTick:!0,title:{rotation:270,
|
|
text:"Values"},stackLabels:{allowOverlap:!1,enabled:!1,formatter:function(){return a.numberFormat(this.total,-1)}}},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 t=b.isX,u=this;u.chart=a;u.horiz=a.inverted&&!u.isZAxis?!t:t;u.isXAxis=t;u.coll=u.coll||
|
|
(t?"xAxis":"yAxis");u.opposite=b.opposite;u.side=b.side||(u.horiz?u.opposite?0:2:u.opposite?1:3);u.setOptions(b);var f=this.options,h=f.type;u.labelFormatter=f.labels.formatter||u.defaultLabelFormatter;u.userOptions=b;u.minPixelPadding=0;u.reversed=f.reversed;u.visible=!1!==f.visible;u.zoomEnabled=!1!==f.zoomEnabled;u.hasNames="category"===h||!0===f.categories;u.categories=f.categories||u.hasNames;u.names=u.names||[];u.plotLinesAndBandsGroups={};u.isLog="logarithmic"===h;u.isDatetimeAxis="datetime"===
|
|
h;u.positiveValuesOnly=u.isLog&&!u.allowNegativeLog;u.isLinked=l(f.linkedTo);u.ticks={};u.labelEdge=[];u.minorTicks={};u.plotLinesAndBands=[];u.alternateBands={};u.len=0;u.minRange=u.userMinRange=f.minRange||f.maxZoom;u.range=f.range;u.offset=f.offset||0;u.stacks={};u.oldStacks={};u.stacksTouched=0;u.max=null;u.min=null;u.crosshair=v(f.crosshair,y(a.options.tooltip.crosshairs)[t?0:1],!1);b=u.options.events;-1===c(u,a.axes)&&(t?a.axes.splice(a.xAxis.length,0,u):a.axes.push(u),a[u.coll].push(u));u.series=
|
|
u.series||[];a.inverted&&!u.isZAxis&&t&&void 0===u.reversed&&(u.reversed=!0);J(b,function(a,b){x(u,b,a)});u.lin2log=f.linearToLogConverter||u.lin2log;u.isLog&&(u.val2lin=u.log2lin,u.lin2val=u.lin2log)},setOptions:function(a){this.options=I(this.defaultOptions,"yAxis"===this.coll&&this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],I(r[this.coll],a))},defaultLabelFormatter:function(){var b=this.axis,
|
|
c=this.value,f=b.categories,h=this.dateTimeLabelFormat,k=r.lang,m=k.numericSymbols,k=k.numericSymbolMagnitude||1E3,e=m&&m.length,d,g=b.options.labels.format,b=b.isLog?Math.abs(c):b.tickInterval;if(g)d=w(g,this);else if(f)d=c;else if(h)d=a.dateFormat(h,c);else if(e&&1E3<=b)for(;e--&&void 0===d;)f=Math.pow(k,e+1),b>=f&&0===10*c%f&&null!==m[e]&&0!==c&&(d=a.numberFormat(c/f,-1)+m[e]);void 0===d&&(d=1E4<=Math.abs(c)?a.numberFormat(c,-1):a.numberFormat(c,-1,void 0,""));return d},getSeriesExtremes:function(){var a=
|
|
this,c=a.chart;a.hasVisibleSeries=!1;a.dataMin=a.dataMax=a.threshold=null;a.softThreshold=!a.isXAxis;a.buildStacks&&a.buildStacks();k(a.series,function(u){if(u.visible||!c.options.chart.ignoreHiddenSeries){var t=u.options,f=t.threshold,h;a.hasVisibleSeries=!0;a.positiveValuesOnly&&0>=f&&(f=null);if(a.isXAxis)t=u.xData,t.length&&(u=g(t),h=z(t),m(u)||u instanceof Date||(t=b(t,m),u=g(t)),a.dataMin=Math.min(v(a.dataMin,t[0],u),u),a.dataMax=Math.max(v(a.dataMax,t[0],h),h));else if(u.getExtremes(),h=u.dataMax,
|
|
u=u.dataMin,l(u)&&l(h)&&(a.dataMin=Math.min(v(a.dataMin,u),u),a.dataMax=Math.max(v(a.dataMax,h),h)),l(f)&&(a.threshold=f),!t.softThreshold||a.positiveValuesOnly)a.softThreshold=!1}})},translate:function(a,b,c,f,h,k){var u=this.linkedParent||this,t=1,C=0,d=f?u.oldTransA:u.transA;f=f?u.oldMin:u.min;var e=u.minPixelPadding;h=(u.isOrdinal||u.isBroken||u.isLog&&h)&&u.lin2val;d||(d=u.transA);c&&(t*=-1,C=u.len);u.reversed&&(t*=-1,C-=t*(u.sector||u.len));b?(a=(a*t+C-e)/d+f,h&&(a=u.lin2val(a))):(h&&(a=u.val2lin(a)),
|
|
a=m(f)?t*(a-f)*d+C+t*e+(m(k)?d*k: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,h){var u=this.chart,t=this.left,k=this.top,C,d,e=c&&u.oldChartHeight||u.chartHeight,g=c&&u.oldChartWidth||u.chartWidth,n;C=this.transB;var y=function(a,b,c){if(a<b||a>c)f?a=Math.min(Math.max(b,a),c):n=!0;return a};h=v(h,this.translate(a,null,
|
|
null,c));a=c=Math.round(h+C);C=d=Math.round(e-h-C);m(h)?this.horiz?(C=k,d=e-this.bottom,a=c=y(a,t,t+this.width)):(a=t,c=g-this.right,C=d=y(C,k,k+this.height)):(n=!0,f=!1);return n&&!f?null:u.renderer.crispLine(["M",a,C,"L",c,d],b||1)},getLinearTickPositions:function(a,b,c){var u,t=e(Math.floor(b/a)*a);c=e(Math.ceil(c/a)*a);var f=[],h;e(t+a)===t&&(h=20);if(this.single)return[b];for(b=t;b<=c;){f.push(b);b=e(b+a,h);if(b===u)break;u=b}return f},getMinorTickInterval:function(){var a=this.options;return!0===
|
|
a.minorTicks?v(a.minorTickInterval,"auto"):!1===a.minorTicks?null:a.minorTickInterval},getMinorTickPositions:function(){var a=this,b=a.options,c=a.tickPositions,f=a.minorTickInterval,h=[],m=a.pointRangePadding||0,d=a.min-m,m=a.max+m,e=m-d;if(e&&e/f<a.len/3)if(a.isLog)k(this.paddedTicks,function(b,c,u){c&&h.push.apply(h,a.getLogTickPositions(f,u[c-1],u[c],!0))});else if(a.isDatetimeAxis&&"auto"===this.getMinorTickInterval())h=h.concat(a.getTimeTicks(a.normalizeTimeTickInterval(f),d,m,b.startOfWeek));
|
|
else for(b=d+(c[0]-d)%f;b<=m&&b!==h[0];b+=f)h.push(b);0!==h.length&&a.trimTicks(h);return h},adjustForMinRange:function(){var a=this.options,b=this.min,c=this.max,f,h,m,d,e,n,y,D;this.isXAxis&&void 0===this.minRange&&!this.isLog&&(l(a.min)||l(a.max)?this.minRange=null:(k(this.series,function(a){n=a.xData;for(d=y=a.xIncrement?1:n.length-1;0<d;d--)if(e=n[d]-n[d-1],void 0===m||e<m)m=e}),this.minRange=Math.min(5*m,this.dataMax-this.dataMin)));c-b<this.minRange&&(h=this.dataMax-this.dataMin>=this.minRange,
|
|
D=this.minRange,f=(D-c+b)/2,f=[b-f,v(a.min,b-f)],h&&(f[2]=this.isLog?this.log2lin(this.dataMin):this.dataMin),b=z(f),c=[b+D,v(a.max,b+D)],h&&(c[2]=this.isLog?this.log2lin(this.dataMax):this.dataMax),c=g(c),c-b<D&&(f[0]=c-D,f[1]=v(a.min,c-D),b=z(f)));this.min=b;this.max=c},getClosest:function(){var a;this.categories?a=1:k(this.series,function(b){var c=b.closestPointRange,u=b.visible||!b.chart.options.chart.ignoreHiddenSeries;!b.noSharedTooltip&&l(c)&&u&&(a=l(a)?Math.min(a,c):c)});return a},nameToX:function(a){var b=
|
|
h(this.categories),t=b?this.categories:this.names,f=a.options.x,m;a.series.requireSorting=!1;l(f)||(f=!1===this.options.uniqueNames?a.series.autoIncrement():c(a.name,t));-1===f?b||(m=t.length):m=f;void 0!==m&&(this.names[m]=a.name);return m},updateNames:function(){var a=this;0<this.names.length&&(this.names.length=0,this.minRange=this.userMinRange,k(this.series||[],function(b){b.xIncrement=null;if(!b.points||b.isDirtyData)b.processData(),b.generatePoints();k(b.points,function(c,u){var t;c.options&&
|
|
(t=a.nameToX(c),void 0!==t&&t!==c.x&&(c.x=t,b.xData[u]=t))})}))},setAxisTranslation:function(a){var b=this,c=b.max-b.min,t=b.axisPointRange||0,f,h=0,m=0,d=b.linkedParent,e=!!b.categories,g=b.transA,n=b.isXAxis;if(n||e||t)f=b.getClosest(),d?(h=d.minPointOffset,m=d.pointRangePadding):k(b.series,function(a){var c=e?1:n?v(a.options.pointRange,f,0):b.axisPointRange||0;a=a.options.pointPlacement;t=Math.max(t,c);b.single||(h=Math.max(h,F(a)?0:c/2),m=Math.max(m,"on"===a?0:c))}),d=b.ordinalSlope&&f?b.ordinalSlope/
|
|
f:1,b.minPointOffset=h*=d,b.pointRangePadding=m*=d,b.pointRange=Math.min(t,c),n&&(b.closestPointRange=f);a&&(b.oldTransA=g);b.translationSlope=b.transA=g=b.options.staticScale||b.len/(c+m||1);b.transB=b.horiz?b.left:b.bottom;b.minPixelPadding=g*h},minFromRange:function(){return this.max-this.range},setTickInterval:function(b){var c=this,t=c.chart,h=c.options,d=c.isLog,g=c.log2lin,y=c.isDatetimeAxis,D=c.isXAxis,A=c.isLinked,w=h.maxPadding,p=h.minPadding,J=h.tickInterval,F=h.tickPixelInterval,r=c.categories,
|
|
q=c.threshold,L=c.softThreshold,K,I,x,z;y||r||A||this.getTickAmount();x=v(c.userMin,h.min);z=v(c.userMax,h.max);A?(c.linkedParent=t[c.coll][h.linkedTo],t=c.linkedParent.getExtremes(),c.min=v(t.min,t.dataMin),c.max=v(t.max,t.dataMax),h.type!==c.linkedParent.options.type&&a.error(11,1)):(!L&&l(q)&&(c.dataMin>=q?(K=q,p=0):c.dataMax<=q&&(I=q,w=0)),c.min=v(x,K,c.dataMin),c.max=v(z,I,c.dataMax));d&&(c.positiveValuesOnly&&!b&&0>=Math.min(c.min,v(c.dataMin,c.min))&&a.error(10,1),c.min=e(g(c.min),15),c.max=
|
|
e(g(c.max),15));c.range&&l(c.max)&&(c.userMin=c.min=x=Math.max(c.dataMin,c.minFromRange()),c.userMax=z=c.max,c.range=null);n(c,"foundExtremes");c.beforePadding&&c.beforePadding();c.adjustForMinRange();!(r||c.axisPointRange||c.usePercentage||A)&&l(c.min)&&l(c.max)&&(g=c.max-c.min)&&(!l(x)&&p&&(c.min-=g*p),!l(z)&&w&&(c.max+=g*w));m(h.softMin)&&!m(c.userMin)&&(c.min=Math.min(c.min,h.softMin));m(h.softMax)&&!m(c.userMax)&&(c.max=Math.max(c.max,h.softMax));m(h.floor)&&(c.min=Math.max(c.min,h.floor));m(h.ceiling)&&
|
|
(c.max=Math.min(c.max,h.ceiling));L&&l(c.dataMin)&&(q=q||0,!l(x)&&c.min<q&&c.dataMin>=q?c.min=q:!l(z)&&c.max>q&&c.dataMax<=q&&(c.max=q));c.tickInterval=c.min===c.max||void 0===c.min||void 0===c.max?1:A&&!J&&F===c.linkedParent.options.tickPixelInterval?J=c.linkedParent.tickInterval:v(J,this.tickAmount?(c.max-c.min)/Math.max(this.tickAmount-1,1):void 0,r?1:(c.max-c.min)*F/Math.max(c.len,F));D&&!b&&k(c.series,function(a){a.processData(c.min!==c.oldMin||c.max!==c.oldMax)});c.setAxisTranslation(!0);c.beforeSetTickPositions&&
|
|
c.beforeSetTickPositions();c.postProcessTickInterval&&(c.tickInterval=c.postProcessTickInterval(c.tickInterval));c.pointRange&&!J&&(c.tickInterval=Math.max(c.pointRange,c.tickInterval));b=v(h.minTickInterval,c.isDatetimeAxis&&c.closestPointRange);!J&&c.tickInterval<b&&(c.tickInterval=b);y||d||J||(c.tickInterval=E(c.tickInterval,null,f(c.tickInterval),v(h.allowDecimals,!(.5<c.tickInterval&&5>c.tickInterval&&1E3<c.max&&9999>c.max)),!!this.tickAmount));this.tickAmount||(c.tickInterval=c.unsquish());
|
|
this.setTickPositions()},setTickPositions:function(){var a=this.options,b,c=a.tickPositions;b=this.getMinorTickInterval();var f=a.tickPositioner,h=a.startOnTick,m=a.endOnTick;this.tickmarkOffset=this.categories&&"between"===a.tickmarkPlacement&&1===this.tickInterval?.5:0;this.minorTickInterval="auto"===b&&this.tickInterval?this.tickInterval/5:b;this.single=this.min===this.max&&l(this.min)&&!this.tickAmount&&(parseInt(this.min,10)===this.min||!1!==a.allowDecimals);this.tickPositions=b=c&&c.slice();
|
|
!b&&(b=this.isDatetimeAxis?this.getTimeTicks(this.normalizeTimeTickInterval(this.tickInterval,a.units),this.min,this.max,a.startOfWeek,this.ordinalPositions,this.closestPointRange,!0):this.isLog?this.getLogTickPositions(this.tickInterval,this.min,this.max):this.getLinearTickPositions(this.tickInterval,this.min,this.max),b.length>this.len&&(b=[b[0],b.pop()],b[0]===b[1]&&(b.length=1)),this.tickPositions=b,f&&(f=f.apply(this,[this.min,this.max])))&&(this.tickPositions=b=f);this.paddedTicks=b.slice(0);
|
|
this.trimTicks(b,h,m);this.isLinked||(this.single&&2>b.length&&(this.min-=.5,this.max+=.5),c||f||this.adjustTickAmount())},trimTicks:function(a,b,c){var f=a[0],t=a[a.length-1],h=this.minPointOffset||0;if(!this.isLinked){if(b&&-Infinity!==f)this.min=f;else for(;this.min-h>a[0];)a.shift();if(c)this.max=t;else for(;this.max+h<a[a.length-1];)a.pop();0===a.length&&l(f)&&!this.options.tickPositions&&a.push((t+f)/2)}},alignToOthers:function(){var a={},b,c=this.options;!1===this.chart.options.chart.alignTicks||
|
|
!1===c.alignTicks||this.isLog||k(this.chart[this.coll],function(c){var f=c.options,f=[c.horiz?f.left:f.top,f.width,f.height,f.pane].join();c.series.length&&(a[f]?b=!0:a[f]=1)});return b},getTickAmount:function(){var a=this.options,b=a.tickAmount,c=a.tickPixelInterval;!l(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,h=b&&b.length,m=v(this.threshold,this.softThreshold?0:null);if(this.hasData()){if(h<c){for(;b.length<c;)b.length%2||this.min===m?b.push(e(b[b.length-1]+a)):b.unshift(e(b[0]-a));this.transA*=(h-1)/(c-1);this.min=b[0];this.max=b[b.length-1]}else h>c&&(this.tickInterval*=2,this.setTickPositions());if(l(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;k(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()},setExtremes:function(a,b,c,f,h){var t=this,m=t.chart;c=v(c,!0);k(t.series,function(a){delete a.kdTree});h=d(h,{min:a,max:b});n(t,"setExtremes",h,function(){t.userMin=a;t.userMax=b;t.eventArgs=h;c&&m.redraw(f)})},zoom:function(a,b){var c=this.dataMin,f=this.dataMax,h=this.options,t=Math.min(c,v(h.min,c)),h=Math.max(f,v(h.max,f));if(a!==this.min||b!==this.max)this.allowZoomOutside||(l(c)&&(a<t&&(a=
|
|
t),a>h&&(a=h)),l(f)&&(b<t&&(b=t),b>h&&(b=h))),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],h=this.horiz,m=this.width=Math.round(a.relativeLength(v(c.width,b.plotWidth-f[3]+f[1]),b.plotWidth)),k=this.height=Math.round(a.relativeLength(v(c.height,b.plotHeight-f[0]+f[2]),b.plotHeight)),d=this.top=Math.round(a.relativeLength(v(c.top,b.plotTop+f[0]),b.plotHeight,b.plotTop)),
|
|
c=this.left=Math.round(a.relativeLength(v(c.left,b.plotLeft+f[3]),b.plotWidth,b.plotLeft));this.bottom=b.chartHeight-k-d;this.right=b.chartWidth-m-c;this.len=Math.max(h?m:k,0);this.pos=h?c:d},getExtremes:function(){var a=this.isLog,b=this.lin2log;return{min:a?e(b(this.min)):this.min,max:a?e(b(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(a){var b=this.isLog,c=this.lin2log,f=b?c(this.min):this.min,b=b?c(this.max):this.max;
|
|
null===a?a=f:f>a?a=f:b<a&&(a=b);return this.translate(a,0,1,0,1)},autoLabelAlign:function(a){a=(v(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"],f=v(b[a+"Width"],"tick"===a&&this.isXAxis?1:0);if(f&&c)return"inside"===b[a+"Position"]&&(c=-c),[c,f]},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,h=this.len/(((this.categories?1:0)+this.max-this.min)/c),m,d=a.rotation,e=this.labelMetrics(),g,n=Number.MAX_VALUE,y,D=function(a){a/=h||1;a=1<a?Math.ceil(a):1;return a*c};b?(y=!a.staggerLines&&!a.step&&(l(d)?[d]:h<v(a.autoRotationLimit,80)&&a.autoRotation))&&k(y,function(a){var b;if(a===d||a&&-90<=a&&90>=a)g=D(Math.abs(e.h/Math.sin(q*a))),b=g+Math.abs(a/360),b<n&&(n=b,m=a,f=g)}):
|
|
a.step||(f=D(e.h));this.autoRotation=y;this.labelRotation=v(m,d);return f},getSlotWidth:function(){var a=this.chart,b=this.horiz,c=this.options.labels,f=Math.max(this.tickPositions.length-(this.categories?0:1),1),h=a.margin[3];return b&&2>(c.step||0)&&!c.rotation&&(this.staggerLines||1)*this.len/f||!b&&(c.style&&parseInt(c.style.width,10)||h&&h-a.spacing[3]||.33*a.chartWidth)},renderUnsquish:function(){var a=this.chart,b=a.renderer,c=this.tickPositions,f=this.ticks,h=this.options.labels,m=this.horiz,
|
|
d=this.getSlotWidth(),e=Math.max(1,Math.round(d-2*(h.padding||5))),g={},n=this.labelMetrics(),y=h.style&&h.style.textOverflow,D,A=0,v,l;F(h.rotation)||(g.rotation=h.rotation||0);k(c,function(a){(a=f[a])&&a.labelLength>A&&(A=a.labelLength)});this.maxLabelLength=A;if(this.autoRotation)A>e&&A>n.h?g.rotation=this.labelRotation:this.labelRotation=0;else if(d&&(D={width:e+"px"},!y))for(D.textOverflow="clip",v=c.length;!m&&v--;)if(l=c[v],e=f[l].label)e.styles&&"ellipsis"===e.styles.textOverflow?e.css({textOverflow:"clip"}):
|
|
f[l].labelLength>d&&e.css({width:d+"px"}),e.getBBox().height>this.len/c.length-(n.h-n.f)&&(e.specCss={textOverflow:"ellipsis"});g.rotation&&(D={width:(A>.5*a.chartHeight?.33*a.chartHeight:a.chartHeight)+"px"},y||(D.textOverflow="ellipsis"));if(this.labelAlign=h.align||this.autoLabelAlign(this.labelRotation))g.align=this.labelAlign;k(c,function(a){var b=(a=f[a])&&a.label;b&&(b.attr(g),D&&b.css(I(D,b.specCss)),delete b.specCss,a.rotation=g.rotation)});this.tickRotCorr=b.rotCorr(n.b,this.labelRotation||
|
|
0,0!==this.side)},hasData:function(){return this.hasVisibleSeries||l(this.min)&&l(this.max)&&this.tickPositions&&0<this.tickPositions.length},addTitle:function(a){var b=this.chart.renderer,c=this.horiz,f=this.opposite,h=this.options.title,t;this.axisTitle||((t=h.textAlign)||(t=(c?{low:"left",middle:"center",high:"right"}:{low:f?"right":"left",middle:"center",high:f?"left":"right"})[h.align]),this.axisTitle=b.text(h.text,0,0,h.useHTML).attr({zIndex:7,rotation:h.rotation||0,align:t}).addClass("highcharts-axis-title").add(this.axisGroup),
|
|
this.axisTitle.isNew=!0);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 D(this,a)},getOffset:function(){var a=this,b=a.chart,c=b.renderer,f=a.options,h=a.tickPositions,m=a.ticks,d=a.horiz,e=a.side,g=b.inverted&&!a.isZAxis?[1,0,3,2][e]:e,n,y,D=0,A,w=0,p=f.title,E=f.labels,F=0,r=b.axisOffset,b=b.clipOffset,q=[-1,1,1,-1][e],L=f.className,K=a.axisParent,I=this.tickSize("tick");n=a.hasData();a.showAxis=y=
|
|
n||v(f.showEmpty,!0);a.staggerLines=a.horiz&&E.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:E.zIndex||7}).addClass("highcharts-"+a.coll.toLowerCase()+"-labels "+(L||"")).add(K));n||a.isLinked?(k(h,function(b,c){a.generateTick(b,c)}),
|
|
a.renderUnsquish(),a.reserveSpaceDefault=0===e||2===e||{1:"left",3:"right"}[e]===a.labelAlign,v(E.reserveSpace,"center"===a.labelAlign?!0:null,a.reserveSpaceDefault)&&k(h,function(a){F=Math.max(m[a].getLabelSize(),F)}),a.staggerLines&&(F*=a.staggerLines),a.labelOffset=F*(a.opposite?-1:1)):J(m,function(a,b){a.destroy();delete m[b]});p&&p.text&&!1!==p.enabled&&(a.addTitle(y),y&&!1!==p.reserveSpace&&(a.titleOffset=D=a.axisTitle.getBBox()[d?"height":"width"],A=p.offset,w=l(A)?0:v(p.margin,d?5:10)));a.renderLine();
|
|
a.offset=q*v(f.offset,r[e]);a.tickRotCorr=a.tickRotCorr||{x:0,y:0};c=0===e?-a.labelMetrics().h:2===e?a.tickRotCorr.y:0;w=Math.abs(F)+w;F&&(w=w-c+q*(d?v(E.y,a.tickRotCorr.y+8*q):E.x));a.axisTitleMargin=v(A,w);r[e]=Math.max(r[e],a.axisTitleMargin+D+q*a.offset,w,n&&h.length&&I?I[0]+q*a.offset:0);f=f.offset?0:2*Math.floor(a.axisLine.strokeWidth()/2);b[g]=Math.max(b[g],f)},getLinePath:function(a){var b=this.chart,c=this.opposite,f=this.offset,h=this.horiz,m=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",h?this.left:m,h?f:this.top,"L",h?b.chartWidth-this.right:m,h?f:b.chartHeight-this.bottom],a)},renderLine:function(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup))},getTitlePosition:function(){var a=this.horiz,b=this.left,c=this.top,f=this.len,h=this.options.title,m=a?b:c,k=this.opposite,d=this.offset,e=h.x||0,g=h.y||0,n=this.axisTitle,y=this.chart.renderer.fontMetrics(h.style&&
|
|
h.style.fontSize,n),n=Math.max(n.getBBox(null,0).height-y.h-1,0),f={low:m+(a?0:f),middle:m+f/2,high:m+(a?f:0)}[h.align],b=(a?c+this.height:b)+(a?1:-1)*(k?-1:1)*this.axisTitleMargin+[-n,n,y.f,-n][this.side];return{x:a?f+e:b+(k?this.width:0)+d+e,y:a?b+g-(k?this.height:0)+d:f+g}},renderMinorTick:function(a){var b=this.chart.hasRendered&&m(this.oldMin),c=this.minorTicks;c[a]||(c[a]=new D(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,h=this.chart.hasRendered&&m(this.oldMin);if(!c||a>=this.min&&a<=this.max)f[a]||(f[a]=new D(this,a)),h&&f[a].isNew&&f[a].render(b,!0,.1),f[a].render(b)},render:function(){var b=this,c=b.chart,f=b.options,h=b.isLog,d=b.lin2log,e=b.isLinked,g=b.tickPositions,n=b.axisTitle,y=b.ticks,v=b.minorTicks,l=b.alternateBands,w=f.stackLabels,p=f.alternateGridColor,E=b.tickmarkOffset,F=b.axisLine,r=b.showAxis,q=B(c.renderer.globalAnimation),L,K;b.labelEdge.length=0;b.overlap=!1;k([y,v,l],function(a){J(a,
|
|
function(a){a.isActive=!1})});if(b.hasData()||e)b.minorTickInterval&&!b.categories&&k(b.getMinorTickPositions(),function(a){b.renderMinorTick(a)}),g.length&&(k(g,function(a,c){b.renderTick(a,c)}),E&&(0===b.min||b.single)&&(y[-1]||(y[-1]=new D(b,-1,null,!0)),y[-1].render(-1))),p&&k(g,function(f,m){K=void 0!==g[m+1]?g[m+1]+E:b.max-E;0===m%2&&f<b.max&&K<=b.max+(c.polar?-E:E)&&(l[f]||(l[f]=new a.PlotLineOrBand(b)),L=f+E,l[f].options={from:h?d(L):L,to:h?d(K):K,color:p},l[f].render(),l[f].isActive=!0)}),
|
|
b._addedPlotLB||(k((f.plotLines||[]).concat(f.plotBands||[]),function(a){b.addPlotBandOrLine(a)}),b._addedPlotLB=!0);k([y,v,l],function(a){var b,f=[],h=q.duration;J(a,function(a,b){a.isActive||(a.render(b,!1,0),a.isActive=!1,f.push(b))});A(function(){for(b=f.length;b--;)a[f[b]]&&!a[f[b]].isActive&&(a[f[b]].destroy(),delete a[f[b]])},a!==l&&c.hasRendered&&h?h:0)});F&&(F[F.isPlaced?"animate":"attr"]({d:this.getLinePath(F.strokeWidth())}),F.isPlaced=!0,F[r?"show":"hide"](!0));n&&r&&(f=b.getTitlePosition(),
|
|
m(f.y)?(n[n.isNew?"attr":"animate"](f),n.isNew=!1):(n.attr("y",-9999),n.isNew=!0));w&&w.enabled&&b.renderStackTotals();b.isDirty=!1},redraw:function(){this.visible&&(this.render(),k(this.plotLinesAndBands,function(a){a.render()}));k(this.series,function(a){a.isDirty=!0})},keepProps:"extKey hcEvents names series userMax userMin".split(" "),destroy:function(a){var b=this,f=b.stacks,h=b.plotLinesAndBands,m;a||K(b);J(f,function(a,b){p(a);f[b]=null});k([b.ticks,b.minorTicks,b.alternateBands],function(a){p(a)});
|
|
if(h)for(a=h.length;a--;)h[a].destroy();k("stackTotalGroup axisLine axisTitle axisGroup gridGroup labelGroup cross".split(" "),function(a){b[a]&&(b[a]=b[a].destroy())});for(m in b.plotLinesAndBandsGroups)b.plotLinesAndBandsGroups[m]=b.plotLinesAndBandsGroups[m].destroy();J(b,function(a,f){-1===c(f,b.keepProps)&&delete b[f]})},drawCrosshair:function(a,b){var c,f=this.crosshair,h=v(f.snap,!0),m,k=this.cross;a||(a=this.cross&&this.cross.e);this.crosshair&&!1!==(l(b)||!h)?(h?l(b)&&(m=this.isXAxis?b.plotX:
|
|
this.len-b.plotY):m=a&&(this.horiz?a.chartX-this.pos:this.len-a.chartY+this.pos),l(m)&&(c=this.getPlotLinePath(b&&(this.isXAxis?b.x:v(b.stackY,b.y)),null,null,null,m)||null),l(c)?(b=this.categories&&!this.isRadial,k||(this.cross=k=this.chart.renderer.path().addClass("highcharts-crosshair highcharts-crosshair-"+(b?"category ":"thin ")+f.className).attr({zIndex:v(f.zIndex,2)}).add()),k.show().attr({d:c}),b&&!f.width&&k.attr({"stroke-width":this.transA}),this.cross.e=a):this.hideCrosshair()):this.hideCrosshair()},
|
|
hideCrosshair:function(){this.cross&&this.cross.hide()}});return a.Axis=L}(H);(function(a){var x=a.Axis,B=a.getMagnitude,z=a.map,g=a.normalizeTickInterval,e=a.pick;x.prototype.getLogTickPositions=function(a,l,q,p){var k=this.options,d=this.len,n=this.lin2log,w=this.log2lin,f=[];p||(this._minorAutoInterval=null);if(.5<=a)a=Math.round(a),f=this.getLinearTickPositions(a,l,q);else if(.08<=a)for(var d=Math.floor(l),b,c,h,m,F,k=.3<a?[1,2,4]:.15<a?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9];d<q+1&&!F;d++)for(c=k.length,
|
|
b=0;b<c&&!F;b++)h=w(n(d)*k[b]),h>l&&(!p||m<=q)&&void 0!==m&&f.push(m),m>q&&(F=!0),m=h;else l=n(l),q=n(q),a=p?this.getMinorTickInterval():k.tickInterval,a=e("auto"===a?null:a,this._minorAutoInterval,k.tickPixelInterval/(p?5:1)*(q-l)/((p?d/this.tickPositions.length:d)||1)),a=g(a,null,B(a)),f=z(this.getLinearTickPositions(a,l,q),w),p||(this._minorAutoInterval=a/5);p||(this.tickInterval=a);return f};x.prototype.log2lin=function(a){return Math.log(a)/Math.LN10};x.prototype.lin2log=function(a){return Math.pow(10,
|
|
a)}})(H);(function(a,x){var B=a.arrayMax,z=a.arrayMin,g=a.defined,e=a.destroyObjectProperties,r=a.each,l=a.erase,q=a.merge,p=a.pick;a.PlotLineOrBand=function(a,d){this.axis=a;d&&(this.options=d,this.id=d.id)};a.PlotLineOrBand.prototype={render:function(){var k=this,d=k.axis,e=d.horiz,l=k.options,f=l.label,b=k.label,c=l.to,h=l.from,m=l.value,F=g(h)&&g(c),r=g(m),E=k.svgElem,J=!E,v=[],K=p(l.zIndex,0),y=l.events,v={"class":"highcharts-plot-"+(F?"band ":"line ")+(l.className||"")},A={},D=d.chart.renderer,
|
|
L=F?"bands":"lines",t;t=d.log2lin;d.isLog&&(h=t(h),c=t(c),m=t(m));A.zIndex=K;L+="-"+K;(t=d.plotLinesAndBandsGroups[L])||(d.plotLinesAndBandsGroups[L]=t=D.g("plot-"+L).attr(A).add());J&&(k.svgElem=E=D.path().attr(v).add(t));if(r)v=d.getPlotLinePath(m,E.strokeWidth());else if(F)v=d.getPlotBandPath(h,c,l);else return;J&&v&&v.length?(E.attr({d:v}),y&&a.objectEach(y,function(a,b){E.on(b,function(a){y[b].apply(k,[a])})})):E&&(v?(E.show(),E.animate({d:v})):(E.hide(),b&&(k.label=b=b.destroy())));f&&g(f.text)&&
|
|
v&&v.length&&0<d.width&&0<d.height&&!v.flat?(f=q({align:e&&F&&"center",x:e?!F&&4:10,verticalAlign:!e&&F&&"middle",y:e?F?16:10:F?6:-4,rotation:e&&!F&&90},f),this.renderLabel(f,v,F,K)):b&&b.hide();return k},renderLabel:function(a,d,e,g){var f=this.label,b=this.axis.chart.renderer;f||(f={align:a.textAlign||a.align,rotation:a.rotation,"class":"highcharts-plot-"+(e?"band":"line")+"-label "+(a.className||"")},f.zIndex=g,this.label=f=b.text(a.text,0,0,a.useHTML).attr(f).add());g=d.xBounds||[d[1],d[4],e?
|
|
d[6]:d[1]];d=d.yBounds||[d[2],d[5],e?d[7]:d[2]];e=z(g);b=z(d);f.align(a,!1,{x:e,y:b,width:B(g)-e,height:B(d)-b});f.show()},destroy:function(){l(this.axis.plotLinesAndBands,this);delete this.axis;e(this)}};a.extend(x.prototype,{getPlotBandPath:function(a,e){var d=this.getPlotLinePath(e,null,null,!0),k=this.getPlotLinePath(a,null,null,!0),f=[],b=this.horiz,c=1,h;a=a<this.min&&e<this.min||a>this.max&&e>this.max;if(k&&d)for(a&&(h=k.toString()===d.toString(),c=0),a=0;a<k.length;a+=6)b&&d[a+1]===k[a+1]?
|
|
(d[a+1]+=c,d[a+4]+=c):b||d[a+2]!==k[a+2]||(d[a+2]+=c,d[a+5]+=c),f.push("M",k[a+1],k[a+2],"L",k[a+4],k[a+5],d[a+4],d[a+5],d[a+1],d[a+2],"z"),f.flat=h;return f},addPlotBand:function(a){return this.addPlotBandOrLine(a,"plotBands")},addPlotLine:function(a){return this.addPlotBandOrLine(a,"plotLines")},addPlotBandOrLine:function(e,d){var k=(new a.PlotLineOrBand(this,e)).render(),g=this.userOptions;k&&(d&&(g[d]=g[d]||[],g[d].push(e)),this.plotLinesAndBands.push(k));return k},removePlotBandOrLine:function(a){for(var d=
|
|
this.plotLinesAndBands,e=this.options,k=this.userOptions,f=d.length;f--;)d[f].id===a&&d[f].destroy();r([e.plotLines||[],k.plotLines||[],e.plotBands||[],k.plotBands||[]],function(b){for(f=b.length;f--;)b[f].id===a&&l(b,b[f])})},removePlotBand:function(a){this.removePlotBandOrLine(a)},removePlotLine:function(a){this.removePlotBandOrLine(a)}})})(H,U);(function(a){var x=a.dateFormat,B=a.each,z=a.extend,g=a.format,e=a.isNumber,r=a.map,l=a.merge,q=a.pick,p=a.splat,k=a.syncTimeout,d=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},cleanSplit:function(a){B(this.chart.series,function(d){var f=d&&d.tt;f&&(!f.isActive||a?d.tt=f.destroy():f.isActive=!1)})},applyFilter:function(){var a=this.chart;a.renderer.definition({tagName:"filter",id:"drop-shadow-"+a.index,opacity:.5,children:[{tagName:"feGaussianBlur",
|
|
in:"SourceAlpha",stdDeviation:1},{tagName:"feOffset",dx:1,dy:1},{tagName:"feComponentTransfer",children:[{tagName:"feFuncA",type:"linear",slope:.3}]},{tagName:"feMerge",children:[{tagName:"feMergeNode"},{tagName:"feMergeNode",in:"SourceGraphic"}]}]});a.renderer.definition({tagName:"style",textContent:".highcharts-tooltip-"+a.index+"{filter:url(#drop-shadow-"+a.index+")}"})},getLabel:function(){var a=this.chart.renderer,d=this.options;this.label||(this.label=this.split?a.g("tooltip"):a.label("",0,
|
|
0,d.shape||"callout",null,null,d.useHTML,null,"tooltip").attr({padding:d.padding,r:d.borderRadius}),this.applyFilter(),this.label.addClass("highcharts-tooltip-"+this.chart.index),this.label.attr({zIndex:8}).add());return this.label},update:function(a){this.destroy();l(!0,this.chart.options.tooltip.userOptions,a);this.init(this.chart,l(!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());
|
|
clearTimeout(this.hideTimer);clearTimeout(this.tooltipTimeout)},move:function(a,d,f,b){var c=this,h=c.now,m=!1!==c.options.animation&&!c.isHidden&&(1<Math.abs(a-h.x)||1<Math.abs(d-h.y)),e=c.followPointer||1<c.len;z(h,{x:m?(2*h.x+a)/3:a,y:m?(h.y+d)/2:d,anchorX:e?void 0:m?(2*h.anchorX+f)/3:f,anchorY:e?void 0:m?(h.anchorY+b)/2:b});c.getLabel().attr(h);m&&(clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){c&&c.move(a,d,f,b)},32))},hide:function(a){var d=this;clearTimeout(this.hideTimer);
|
|
a=q(a,this.options.hideDelay,500);this.isHidden||(this.hideTimer=k(function(){d.getLabel()[a?"fadeOut":"hide"]();d.isHidden=!0},a))},getAnchor:function(a,d){var f,b=this.chart,c=b.inverted,h=b.plotTop,m=b.plotLeft,e=0,k=0,g,n;a=p(a);f=a[0].tooltipPos;this.followPointer&&d&&(void 0===d.chartX&&(d=b.pointer.normalize(d)),f=[d.chartX-b.plotLeft,d.chartY-h]);f||(B(a,function(a){g=a.series.yAxis;n=a.series.xAxis;e+=a.plotX+(!c&&n?n.left-m:0);k+=(a.plotLow?(a.plotLow+a.plotHigh)/2:a.plotY)+(!c&&g?g.top-
|
|
h:0)}),e/=a.length,k/=a.length,f=[c?b.plotWidth-k:e,this.shared&&!c&&1<a.length&&d?d.chartY-h:c?b.plotHeight-e:k]);return r(f,Math.round)},getPosition:function(a,d,f){var b=this.chart,c=this.distance,h={},m=b.inverted&&f.h||0,e,k=["y",b.chartHeight,d,f.plotY+b.plotTop,b.plotTop,b.plotTop+b.plotHeight],g=["x",b.chartWidth,a,f.plotX+b.plotLeft,b.plotLeft,b.plotLeft+b.plotWidth],n=!this.followPointer&&q(f.ttBelow,!b.inverted===!!f.negative),v=function(a,b,f,d,e,k){var g=f<d-c,t=d+c+f<b,y=d-c-f;d+=c;
|
|
if(n&&t)h[a]=d;else if(!n&&g)h[a]=y;else if(g)h[a]=Math.min(k-f,0>y-m?y:y-m);else if(t)h[a]=Math.max(e,d+m+f>b?d:d+m);else return!1},l=function(a,b,f,m){var d;m<c||m>b-c?d=!1:h[a]=m<f/2?1:m>b-f/2?b-f-2:m-f/2;return d},y=function(a){var b=k;k=g;g=b;e=a},A=function(){!1!==v.apply(0,k)?!1!==l.apply(0,g)||e||(y(!0),A()):e?h.x=h.y=0:(y(!0),A())};(b.inverted||1<this.len)&&y();A();return h},defaultFormatter:function(a){var d=this.points||p(this),f;f=[a.tooltipFooterHeaderFormatter(d[0])];f=f.concat(a.bodyFormatter(d));
|
|
f.push(a.tooltipFooterHeaderFormatter(d[0],!0));return f},refresh:function(a,d){var f,b=this.options,c=a,h,m={},e=[];f=b.formatter||this.defaultFormatter;var m=this.shared,k;b.enabled&&(clearTimeout(this.hideTimer),this.followPointer=p(c)[0].series.tooltipOptions.followPointer,h=this.getAnchor(c,d),d=h[0],b=h[1],!m||c.series&&c.series.noSharedTooltip?m=c.getLabelConfig():(B(c,function(a){a.setState("hover");e.push(a.getLabelConfig())}),m={x:c[0].category,y:c[0].y},m.points=e,c=c[0]),this.len=e.length,
|
|
m=f.call(m,this),k=c.series,this.distance=q(k.tooltipOptions.distance,16),!1===m?this.hide():(f=this.getLabel(),this.isHidden&&f.attr({opacity:1}).show(),this.split?this.renderSplit(m,p(a)):(f.css({width:this.chart.spacingBox.width}),f.attr({text:m&&m.join?m.join(""):m}),f.removeClass(/highcharts-color-[\d]+/g).addClass("highcharts-color-"+q(c.colorIndex,k.colorIndex)),this.updatePosition({plotX:d,plotY:b,negative:c.negative,ttBelow:c.ttBelow,h:h[2]||0})),this.isHidden=!1))},renderSplit:function(d,
|
|
e){var f=this,b=[],c=this.chart,h=c.renderer,m=!0,k=this.options,g=0,n=this.getLabel();a.isString(d)&&(d=[!1,d]);B(d.slice(0,e.length+1),function(a,d){if(!1!==a){d=e[d-1]||{isHeader:!0,plotX:e[0].plotX};var v=d.series||f,y=v.tt,A="highcharts-color-"+q(d.colorIndex,(d.series||{}).colorIndex,"none");y||(v.tt=y=h.label(null,null,null,"callout",null,null,k.useHTML).addClass("highcharts-tooltip-box "+A).attr({padding:k.padding,r:k.borderRadius}).add(n));y.isActive=!0;y.attr({text:a});a=y.getBBox();A=a.width+
|
|
y.strokeWidth();d.isHeader?(g=a.height,A=Math.max(0,Math.min(d.plotX+c.plotLeft-A/2,c.chartWidth-A))):A=d.plotX+c.plotLeft-q(k.distance,16)-A;0>A&&(m=!1);a=(d.series&&d.series.yAxis&&d.series.yAxis.pos)+(d.plotY||0);a-=c.plotTop;b.push({target:d.isHeader?c.plotHeight+g:a,rank:d.isHeader?1:0,size:v.tt.getBBox().height+1,point:d,x:A,tt:y})}});this.cleanSplit();a.distribute(b,c.plotHeight+g);B(b,function(a){var b=a.point,f=b.series;a.tt.attr({visibility:void 0===a.pos?"hidden":"inherit",x:m||b.isHeader?
|
|
a.x:b.plotX+c.plotLeft+q(k.distance,16),y:a.pos+c.plotTop,anchorX:b.isHeader?b.plotX+c.plotLeft:b.plotX+f.xAxis.pos,anchorY:b.isHeader?a.pos+c.plotTop-15:b.plotY+f.yAxis.pos})})},updatePosition:function(a){var d=this.chart,f=this.getLabel(),f=(this.options.positioner||this.getPosition).call(this,f.width,f.height,a);this.move(Math.round(f.x),Math.round(f.y||0),a.plotX+d.plotLeft,a.plotY+d.plotTop)},getDateFormat:function(a,e,f,b){var c=x("%m-%d %H:%M:%S.%L",e),h,m,k={millisecond:15,second:12,minute:9,
|
|
hour:6,day:3},g="millisecond";for(m in d){if(a===d.week&&+x("%w",e)===f&&"00:00:00.000"===c.substr(6)){m="week";break}if(d[m]>a){m=g;break}if(k[m]&&c.substr(k[m])!=="01-01 00:00:00.000".substr(k[m]))break;"week"!==m&&(g=m)}m&&(h=b[m]);return h},getXDateFormat:function(a,d,f){d=d.dateTimeLabelFormats;var b=f&&f.closestPointRange;return(b?this.getDateFormat(b,a.x,f.options.startOfWeek,d):d.day)||d.year},tooltipFooterHeaderFormatter:function(a,d){d=d?"footer":"header";var f=a.series,b=f.tooltipOptions,
|
|
c=b.xDateFormat,h=f.xAxis,m=h&&"datetime"===h.options.type&&e(a.key),k=b[d+"Format"];m&&!c&&(c=this.getXDateFormat(a,b,h));m&&c&&B(a.point&&a.point.tooltipDateKeys||["key"],function(a){k=k.replace("{point."+a+"}","{point."+a+":"+c+"}")});return g(k,{point:a,series:f})},bodyFormatter:function(a){return r(a,function(a){var f=a.series.tooltipOptions;return(f[(a.point.formatPrefix||"point")+"Formatter"]||a.point.tooltipFormatter).call(a.point,f[(a.point.formatPrefix||"point")+"Format"])})}}})(H);(function(a){var x=
|
|
a.addEvent,B=a.attr,z=a.charts,g=a.css,e=a.defined,r=a.each,l=a.extend,q=a.find,p=a.fireEvent,k=a.isObject,d=a.offset,n=a.pick,w=a.splat,f=a.Tooltip;a.Pointer=function(a,c){this.init(a,c)};a.Pointer.prototype={init:function(a,c){this.options=c;this.chart=a;this.runChartClick=c.chart.events&&!!c.chart.events.click;this.pinchDown=[];this.lastValidTouch={};f&&(a.tooltip=new f(a,c.tooltip),this.followTouchMove=n(c.tooltip.followTouchMove,!0));this.setDOMEvents()},zoomOption:function(a){var b=this.chart,
|
|
f=b.options.chart,d=f.zoomType||"",b=b.inverted;/touch/.test(a.type)&&(d=n(f.pinchType,d));this.zoomX=a=/x/.test(d);this.zoomY=d=/y/.test(d);this.zoomHor=a&&!b||d&&b;this.zoomVert=d&&!b||a&&b;this.hasZoom=a||d},normalize:function(a,c){var b;b=a.touches?a.touches.length?a.touches.item(0):a.changedTouches[0]:a;c||(this.chartPosition=c=d(this.chart.container));return l(a,{chartX:Math.round(b.pageX-c.left),chartY:Math.round(b.pageY-c.top)})},getCoordinates:function(a){var b={xAxis:[],yAxis:[]};r(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,c,f){var b;r(a,function(a){var h=!(a.noSharedTooltip&&c)&&0>a.options.findNearestPointBy.indexOf("y");a=a.searchPoint(f,h);if((h=k(a,!0))&&!(h=!k(b,!0)))var h=b.distX-a.distX,d=b.dist-a.dist,m=(a.series.group&&a.series.group.zIndex)-(b.series.group&&b.series.group.zIndex),h=0<(0!==h&&c?h:0!==d?d:0!==m?m:b.series.index>a.series.index?-1:1);h&&(b=a)});return b},
|
|
getPointFromEvent:function(a){a=a.target;for(var b;a&&!b;)b=a.point,a=a.parentNode;return b},getChartCoordinatesFromPoint:function(a,c){var b=a.series,f=b.xAxis,b=b.yAxis,d=n(a.clientX,a.plotX);if(f&&b)return c?{chartX:f.len+f.pos-d,chartY:b.len+b.pos-a.plotY}:{chartX:d+f.pos,chartY:a.plotY+b.pos}},getHoverData:function(b,c,f,d,e,g,l){var h,m=[],p=l&&l.isBoosting;d=!(!d||!b);l=c&&!c.stickyTracking?[c]:a.grep(f,function(a){return a.visible&&!(!e&&a.directTouch)&&n(a.options.enableMouseTracking,!0)&&
|
|
a.stickyTracking});c=(h=d?b:this.findNearestKDPoint(l,e,g))&&h.series;h&&(e&&!c.noSharedTooltip?(l=a.grep(f,function(a){return a.visible&&!(!e&&a.directTouch)&&n(a.options.enableMouseTracking,!0)&&!a.noSharedTooltip}),r(l,function(a){var b=q(a.points,function(a){return a.x===h.x&&!a.isNull});k(b)&&(p&&(b=a.getPoint(b)),m.push(b))})):m.push(h));return{hoverPoint:h,hoverSeries:c,hoverPoints:m}},runPointActions:function(b,c){var f=this.chart,d=f.tooltip&&f.tooltip.options.enabled?f.tooltip:void 0,e=
|
|
d?d.shared:!1,k=c||f.hoverPoint,g=k&&k.series||f.hoverSeries,g=this.getHoverData(k,g,f.series,!!c||g&&g.directTouch&&this.isDirectTouch,e,b,{isBoosting:f.isBoosting}),l,k=g.hoverPoint;l=g.hoverPoints;c=(g=g.hoverSeries)&&g.tooltipOptions.followPointer;e=e&&g&&!g.noSharedTooltip;if(k&&(k!==f.hoverPoint||d&&d.isHidden)){r(f.hoverPoints||[],function(b){-1===a.inArray(b,l)&&b.setState()});r(l||[],function(a){a.setState("hover")});if(f.hoverSeries!==g)g.onMouseOver();f.hoverPoint&&f.hoverPoint.firePointEvent("mouseOut");
|
|
if(!k.series)return;k.firePointEvent("mouseOver");f.hoverPoints=l;f.hoverPoint=k;d&&d.refresh(e?l:k,b)}else c&&d&&!d.isHidden&&(k=d.getAnchor([{}],b),d.updatePosition({plotX:k[0],plotY:k[1]}));this.unDocMouseMove||(this.unDocMouseMove=x(f.container.ownerDocument,"mousemove",function(b){var c=z[a.hoverChartIndex];if(c)c.pointer.onDocumentMouseMove(b)}));r(f.axes,function(c){var f=n(c.crosshair.snap,!0),h=f?a.find(l,function(a){return a.series[c.coll]===c}):void 0;h||!f?c.drawCrosshair(b,h):c.hideCrosshair()})},
|
|
reset:function(a,c){var b=this.chart,f=b.hoverSeries,d=b.hoverPoint,e=b.hoverPoints,k=b.tooltip,g=k&&k.shared?e:d;a&&g&&r(w(g),function(b){b.series.isCartesian&&void 0===b.plotX&&(a=!1)});if(a)k&&g&&(k.refresh(g),d&&(d.setState(d.state,!0),r(b.axes,function(a){a.crosshair&&a.drawCrosshair(null,d)})));else{if(d)d.onMouseOut();e&&r(e,function(a){a.setState()});if(f)f.onMouseOut();k&&k.hide(c);this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove());r(b.axes,function(a){a.hideCrosshair()});this.hoverX=
|
|
b.hoverPoints=b.hoverPoint=null}},scaleGroups:function(a,c){var b=this.chart,f;r(b.series,function(h){f=a||h.getPlotBox();h.xAxis&&h.xAxis.zoomEnabled&&h.group&&(h.group.attr(f),h.markerGroup&&(h.markerGroup.attr(f),h.markerGroup.clip(c?b.clipRect:null)),h.dataLabelsGroup&&h.dataLabelsGroup.attr(f))});b.clipRect.attr(c||b.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,f=b.options.chart,d=a.chartX,e=a.chartY,k=this.zoomHor,g=this.zoomVert,n=b.plotLeft,l=b.plotTop,p=b.plotWidth,y=b.plotHeight,A,D=this.selectionMarker,q=this.mouseDownX,t=this.mouseDownY,u=f.panKey&&a[f.panKey+"Key"];D&&D.touch||(d<n?d=n:d>n+p&&(d=n+p),e<l?e=l:e>l+y&&(e=l+y),this.hasDragged=Math.sqrt(Math.pow(q-d,2)+Math.pow(t-e,2)),10<this.hasDragged&&(A=b.isInsidePlot(q-n,t-l),b.hasCartesianSeries&&(this.zoomX||this.zoomY)&&A&&!u&&!D&&(this.selectionMarker=D=b.renderer.rect(n,l,k?1:p,
|
|
g?1:y,0).attr({"class":"highcharts-selection-marker",zIndex:7}).add()),D&&k&&(d-=q,D.attr({width:Math.abs(d),x:(0<d?0:d)+q})),D&&g&&(d=e-t,D.attr({height:Math.abs(d),y:(0<d?0:d)+t})),A&&!D&&f.panning&&b.pan(a,f.panning)))},drop:function(a){var b=this,f=this.chart,d=this.hasPinched;if(this.selectionMarker){var k={originalEvent:a,xAxis:[],yAxis:[]},n=this.selectionMarker,q=n.attr?n.attr("x"):n.x,J=n.attr?n.attr("y"):n.y,v=n.attr?n.attr("width"):n.width,w=n.attr?n.attr("height"):n.height,y;if(this.hasDragged||
|
|
d)r(f.axes,function(c){if(c.zoomEnabled&&e(c.min)&&(d||b[{xAxis:"zoomX",yAxis:"zoomY"}[c.coll]])){var f=c.horiz,h="touchend"===a.type?c.minPixelPadding:0,g=c.toValue((f?q:J)+h),f=c.toValue((f?q+v:J+w)-h);k[c.coll].push({axis:c,min:Math.min(g,f),max:Math.max(g,f)});y=!0}}),y&&p(f,"selection",k,function(a){f.zoom(l(a,d?{animation:!1}:null))});this.selectionMarker=this.selectionMarker.destroy();d&&this.scaleGroups()}f&&(g(f.container,{cursor:f._cursor}),f.cancelClick=10<this.hasDragged,f.mouseIsDown=
|
|
this.hasDragged=this.hasPinched=!1,this.pinchDown=[])},onContainerMouseDown:function(a){2!==a.button&&(a=this.normalize(a),this.zoomOption(a),a.preventDefault&&a.preventDefault(),this.dragStart(a))},onDocumentMouseUp:function(b){z[a.hoverChartIndex]&&z[a.hoverChartIndex].pointer.drop(b)},onDocumentMouseMove:function(a){var b=this.chart,f=this.chartPosition;a=this.normalize(a,f);!f||this.inClass(a.target,"highcharts-tracker")||b.isInsidePlot(a.chartX-b.plotLeft,a.chartY-b.plotTop)||this.reset()},onContainerMouseLeave:function(b){var c=
|
|
z[a.hoverChartIndex];c&&(b.relatedTarget||b.toElement)&&(c.pointer.reset(),c.pointer.chartPosition=null)},onContainerMouseMove:function(b){var c=this.chart;e(a.hoverChartIndex)&&z[a.hoverChartIndex]&&z[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,c){for(var b;a;){if(b=
|
|
B(a,"class")){if(-1!==b.indexOf(c))return!0;if(-1!==b.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,f=b.hoverPoint,d=b.plotLeft,e=b.plotTop;a=this.normalize(a);b.cancelClick||
|
|
(f&&this.inClass(a.target,"highcharts-tracker")?(p(f.series,"click",l(a,{point:f})),b.hoverPoint&&f.firePointEvent("click",a)):(l(a,this.getCoordinates(a)),b.isInsidePlot(a.chartX-d,a.chartY-e)&&p(b,"click",a)))},setDOMEvents:function(){var b=this,c=b.chart.container,f=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=x(c,"mouseleave",b.onContainerMouseLeave);
|
|
a.unbindDocumentMouseUp||(a.unbindDocumentMouseUp=x(f,"mouseup",b.onDocumentMouseUp));a.hasTouch&&(c.ontouchstart=function(a){b.onContainerTouchStart(a)},c.ontouchmove=function(a){b.onContainerTouchMove(a)},a.unbindDocumentTouchEnd||(a.unbindDocumentTouchEnd=x(f,"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,f){b[f]=null})}}})(H);(function(a){var x=a.charts,B=a.each,z=a.extend,g=a.map,e=a.noop,r=a.pick;z(a.Pointer.prototype,{pinchTranslate:function(a,e,g,k,d,n){this.zoomHor&&this.pinchTranslateDirection(!0,a,e,g,k,d,n);this.zoomVert&&this.pinchTranslateDirection(!1,a,e,g,k,d,n)},pinchTranslateDirection:function(a,e,g,k,d,n,r,f){var b=this.chart,c=a?"x":"y",h=a?"X":"Y",m="chart"+h,l=a?"width":
|
|
"height",p=b["plot"+(a?"Left":"Top")],q,J,v=f||1,w=b.inverted,y=b.bounds[a?"h":"v"],A=1===e.length,D=e[0][m],L=g[0][m],t=!A&&e[1][m],u=!A&&g[1][m],N;g=function(){!A&&20<Math.abs(D-t)&&(v=f||Math.abs(L-u)/Math.abs(D-t));J=(p-L)/v+D;q=b["plot"+(a?"Width":"Height")]/v};g();e=J;e<y.min?(e=y.min,N=!0):e+q>y.max&&(e=y.max-q,N=!0);N?(L-=.8*(L-r[c][0]),A||(u-=.8*(u-r[c][1])),g()):r[c]=[L,u];w||(n[c]=J-p,n[l]=q);n=w?1/v:v;d[l]=q;d[c]=e;k[w?a?"scaleY":"scaleX":"scale"+h]=v;k["translate"+h]=n*p+(L-n*D)},pinch:function(a){var l=
|
|
this,p=l.chart,k=l.pinchDown,d=a.touches,n=d.length,w=l.lastValidTouch,f=l.hasZoom,b=l.selectionMarker,c={},h=1===n&&(l.inClass(a.target,"highcharts-tracker")&&p.runTrackerClick||l.runChartClick),m={};1<n&&(l.initiated=!0);f&&l.initiated&&!h&&a.preventDefault();g(d,function(a){return l.normalize(a)});"touchstart"===a.type?(B(d,function(a,b){k[b]={chartX:a.chartX,chartY:a.chartY}}),w.x=[k[0].chartX,k[1]&&k[1].chartX],w.y=[k[0].chartY,k[1]&&k[1].chartY],B(p.axes,function(a){if(a.zoomEnabled){var b=
|
|
p.bounds[a.horiz?"h":"v"],c=a.minPixelPadding,f=a.toPixels(r(a.options.min,a.dataMin)),d=a.toPixels(r(a.options.max,a.dataMax)),h=Math.max(f,d);b.min=Math.min(a.pos,Math.min(f,d)-c);b.max=Math.max(a.pos+a.len,h+c)}}),l.res=!0):l.followTouchMove&&1===n?this.runPointActions(l.normalize(a)):k.length&&(b||(l.selectionMarker=b=z({destroy:e,touch:!0},p.plotBox)),l.pinchTranslate(k,d,c,b,m,w),l.hasPinched=f,l.scaleGroups(c,m),l.res&&(l.res=!1,this.reset(!1,0)))},touch:function(e,g){var l=this.chart,k,d;
|
|
if(l.index!==a.hoverChartIndex)this.onContainerMouseLeave({relatedTarget:!0});a.hoverChartIndex=l.index;1===e.touches.length?(e=this.normalize(e),(d=l.isInsidePlot(e.chartX-l.plotLeft,e.chartY-l.plotTop))&&!l.openMenu?(g&&this.runPointActions(e),"touchmove"===e.type&&(g=this.pinchDown,k=g[0]?4<=Math.sqrt(Math.pow(g[0].chartX-e.chartX,2)+Math.pow(g[0].chartY-e.chartY,2)):!1),r(k,!0)&&this.pinch(e)):g&&this.reset()):2===e.touches.length&&this.pinch(e)},onContainerTouchStart:function(a){this.zoomOption(a);
|
|
this.touch(a,!0)},onContainerTouchMove:function(a){this.touch(a)},onDocumentTouchEnd:function(e){x[a.hoverChartIndex]&&x[a.hoverChartIndex].pointer.drop(e)}})})(H);(function(a){var x=a.addEvent,B=a.charts,z=a.css,g=a.doc,e=a.extend,r=a.noop,l=a.Pointer,q=a.removeEvent,p=a.win,k=a.wrap;if(!a.hasTouch&&(p.PointerEvent||p.MSPointerEvent)){var d={},n=!!p.PointerEvent,w=function(){var b=[];b.item=function(a){return this[a]};a.objectEach(d,function(a){b.push({pageX:a.pageX,pageY:a.pageY,target:a.target})});
|
|
return b},f=function(b,c,f,d){"touch"!==b.pointerType&&b.pointerType!==b.MSPOINTER_TYPE_TOUCH||!B[a.hoverChartIndex]||(d(b),d=B[a.hoverChartIndex].pointer,d[c]({type:f,target:b.currentTarget,preventDefault:r,touches:w()}))};e(l.prototype,{onContainerPointerDown:function(a){f(a,"onContainerTouchStart","touchstart",function(a){d[a.pointerId]={pageX:a.pageX,pageY:a.pageY,target:a.currentTarget}})},onContainerPointerMove:function(a){f(a,"onContainerTouchMove","touchmove",function(a){d[a.pointerId]={pageX:a.pageX,
|
|
pageY:a.pageY};d[a.pointerId].target||(d[a.pointerId].target=a.currentTarget)})},onDocumentPointerUp:function(a){f(a,"onDocumentTouchEnd","touchend",function(a){delete d[a.pointerId]})},batchMSEvents:function(a){a(this.chart.container,n?"pointerdown":"MSPointerDown",this.onContainerPointerDown);a(this.chart.container,n?"pointermove":"MSPointerMove",this.onContainerPointerMove);a(g,n?"pointerup":"MSPointerUp",this.onDocumentPointerUp)}});k(l.prototype,"init",function(a,c,f){a.call(this,c,f);this.hasZoom&&
|
|
z(c.container,{"-ms-touch-action":"none","touch-action":"none"})});k(l.prototype,"setDOMEvents",function(a){a.apply(this);(this.hasZoom||this.followTouchMove)&&this.batchMSEvents(x)});k(l.prototype,"destroy",function(a){this.batchMSEvents(q);a.call(this)})}})(H);(function(a){var x=a.addEvent,B=a.css,z=a.discardElement,g=a.defined,e=a.each,r=a.isFirefox,l=a.marginNames,q=a.merge,p=a.pick,k=a.setAnimation,d=a.stableSort,n=a.win,w=a.wrap;a.Legend=function(a,b){this.init(a,b)};a.Legend.prototype={init:function(a,
|
|
b){this.chart=a;this.setOptions(b);b.enabled&&(this.render(),x(this.chart,"endResize",function(){this.legend.positionCheckboxes()}))},setOptions:function(a){var b=p(a.padding,8);this.options=a;this.itemMarginTop=a.itemMarginTop||0;this.padding=b;this.initialItemY=b-5;this.itemHeight=this.maxItemWidth=0;this.symbolWidth=p(a.symbolWidth,16);this.pages=[]},update:function(a,b){var c=this.chart;this.setOptions(q(!0,this.options,a));this.destroy();c.isDirtyLegend=c.isDirtyBox=!0;p(b,!0)&&c.redraw()},colorizeItem:function(a,
|
|
b){a.legendGroup[b?"removeClass":"addClass"]("highcharts-legend-item-hidden")},positionItem:function(a){var b=this.options,c=b.symbolPadding,b=!b.rtl,f=a._legendItemPos,d=f[0],f=f[1],e=a.checkbox;(a=a.legendGroup)&&a.element&&a.translate(b?d:this.legendWidth-d-2*c-4,f);e&&(e.x=d,e.y=f)},destroyItem:function(a){var b=a.checkbox;e(["legendItem","legendLine","legendSymbol","legendGroup"],function(b){a[b]&&(a[b]=a[b].destroy())});b&&z(a.checkbox)},destroy:function(){function a(a){this[a]&&(this[a]=this[a].destroy())}
|
|
e(this.getAllItems(),function(b){e(["legendItem","legendGroup"],a,b)});e("clipRect up down pager nav box title group".split(" "),a,this);this.display=null},positionCheckboxes:function(){var a=this.group&&this.group.alignAttr,b,c=this.clipHeight||this.legendHeight,d=this.titleHeight;a&&(b=a.translateY,e(this.allItems,function(f){var h=f.checkbox,e;h&&(e=b+d+h.y+(this.scrollOffset||0)+3,B(h,{left:a.translateX+f.checkboxOffset+h.x-20+"px",top:e+"px",display:e>b-6&&e<b+c-6?"":"none"}))},this))},renderTitle:function(){var a=
|
|
this.options,b=this.padding,c=a.title,d=0;c.text&&(this.title||(this.title=this.chart.renderer.label(c.text,b-3,b-4,null,null,null,a.useHTML,null,"legend-title").attr({zIndex:1}).add(this.group)),a=this.title.getBBox(),d=a.height,this.offsetWidth=a.width,this.contentGroup.attr({translateY:d}));this.titleHeight=d},setText:function(f){var b=this.options;f.legendItem.attr({text:b.labelFormat?a.format(b.labelFormat,f):b.labelFormatter.call(f)})},renderItem:function(a){var b=this.chart,c=b.renderer,f=
|
|
this.options,d="horizontal"===f.layout,e=this.symbolWidth,k=f.symbolPadding,g=this.padding,n=d?p(f.itemDistance,20):0,l=!f.rtl,r=f.width,y=f.itemMarginBottom||0,A=this.itemMarginTop,D=a.legendItem,q=!a.series,t=!q&&a.series.drawLegendSymbol?a.series:a,u=t.options,w=this.createCheckboxForItem&&u&&u.showCheckbox,u=e+k+n+(w?20:0),G=f.useHTML,C=a.options.className;D||(a.legendGroup=c.g("legend-item").addClass("highcharts-"+t.type+"-series highcharts-color-"+a.colorIndex+(C?" "+C:"")+(q?" highcharts-series-"+
|
|
a.index:"")).attr({zIndex:1}).add(this.scrollGroup),a.legendItem=D=c.text("",l?e+k:-k,this.baseline||0,G).attr({align:l?"left":"right",zIndex:2}).add(a.legendGroup),this.baseline||(this.fontMetrics=c.fontMetrics(12,D),this.baseline=this.fontMetrics.f+3+A,D.attr("y",this.baseline)),this.symbolHeight=f.symbolHeight||this.fontMetrics.f,t.drawLegendSymbol(this,a),this.setItemEvents&&this.setItemEvents(a,D,G),w&&this.createCheckboxForItem(a));this.colorizeItem(a,a.visible);D.css({width:(f.itemWidth||f.width||
|
|
b.spacingBox.width)-u});this.setText(a);c=D.getBBox();e=a.checkboxOffset=f.itemWidth||a.legendItemWidth||c.width+u;this.itemHeight=c=Math.round(a.legendItemHeight||c.height||this.symbolHeight);d&&this.itemX-g+e>(r||b.spacingBox.width-2*g-f.x)&&(this.itemX=g,this.itemY+=A+this.lastLineHeight+y,this.lastLineHeight=0);this.maxItemWidth=Math.max(this.maxItemWidth,e);this.lastItemY=A+this.itemY+y;this.lastLineHeight=Math.max(c,this.lastLineHeight);a._legendItemPos=[this.itemX,this.itemY];d?this.itemX+=
|
|
e:(this.itemY+=A+c+y,this.lastLineHeight=c);this.offsetWidth=r||Math.max((d?this.itemX-g-(a.checkbox?0:n):e)+g,this.offsetWidth)},getAllItems:function(){var a=[];e(this.chart.series,function(b){var c=b&&b.options;b&&p(c.showInLegend,g(c.linkedTo)?!1:void 0,!0)&&(a=a.concat(b.legendItems||("point"===c.legendType?b.data:b)))});return a},getAlignment:function(){var a=this.options;return a.floating?"":a.align.charAt(0)+a.verticalAlign.charAt(0)+a.layout.charAt(0)},adjustMargins:function(a,b){var c=this.chart,
|
|
f=this.options,d=this.getAlignment();d&&e([/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/],function(h,e){h.test(d)&&!g(a[e])&&(c[l[e]]=Math.max(c[l[e]],c.legend[(e+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][e]*f[e%2?"x":"y"]+p(f.margin,12)+b[e]+(0===e?c.titleOffset+c.options.title.margin:0)))})},render:function(){var a=this,b=a.chart,c=b.renderer,h=a.group,k,g,n,l,p=a.box,v=a.options,r=a.padding;a.itemX=r;a.itemY=a.initialItemY;a.offsetWidth=0;a.lastItemY=0;h||(a.group=h=c.g("legend").attr({zIndex:7}).add(),
|
|
a.contentGroup=c.g().attr({zIndex:1}).add(h),a.scrollGroup=c.g().add(a.contentGroup));a.renderTitle();k=a.getAllItems();d(k,function(a,b){return(a.options&&a.options.legendIndex||0)-(b.options&&b.options.legendIndex||0)});v.reversed&&k.reverse();a.allItems=k;a.display=g=!!k.length;a.lastLineHeight=0;e(k,function(b){a.renderItem(b)});n=(v.width||a.offsetWidth)+r;l=a.lastItemY+a.lastLineHeight+a.titleHeight;l=a.handleOverflow(l);l+=r;p||(a.box=p=c.rect().addClass("highcharts-legend-box").attr({r:v.borderRadius}).add(h),
|
|
p.isNew=!0);0<n&&0<l&&(p[p.isNew?"attr":"animate"](p.crisp.call({},{x:0,y:0,width:n,height:l},p.strokeWidth())),p.isNew=!1);p[g?"show":"hide"]();"none"===h.getStyle("display")&&(n=l=0);a.legendWidth=n;a.legendHeight=l;e(k,function(b){a.positionItem(b)});g&&(c=b.spacingBox,/(lth|ct|rth)/.test(a.getAlignment())&&(c=q(c,{y:c.y+b.titleOffset+b.options.title.margin})),h.align(q(v,{width:n,height:l}),!0,c));b.isResizing||this.positionCheckboxes()},handleOverflow:function(a){var b=this,c=this.chart,f=c.renderer,
|
|
d=this.options,k=d.y,g=this.padding,c=c.spacingBox.height+("top"===d.verticalAlign?-k:k)-g,k=d.maxHeight,n,l=this.clipRect,v=d.navigation,r=p(v.animation,!0),y=v.arrowSize||12,A=this.nav,D=this.pages,q,t=this.allItems,u=function(a){"number"===typeof a?l.attr({height:a}):l&&(b.clipRect=l.destroy(),b.contentGroup.clip());b.contentGroup.div&&(b.contentGroup.div.style.clip=a?"rect("+g+"px,9999px,"+(g+a)+"px,0)":"auto")};"horizontal"!==d.layout||"middle"===d.verticalAlign||d.floating||(c/=2);k&&(c=Math.min(c,
|
|
k));D.length=0;a>c&&!1!==v.enabled?(this.clipHeight=n=Math.max(c-20-this.titleHeight-g,0),this.currentPage=p(this.currentPage,1),this.fullHeight=a,e(t,function(a,b){var c=a._legendItemPos[1],f=Math.round(a.legendItem.getBBox().height),d=D.length;if(!d||c-D[d-1]>n&&(q||c)!==D[d-1])D.push(q||c),d++;a.pageIx=d-1;q&&(t[b-1].pageIx=d-1);b===t.length-1&&c+f-D[d-1]>n&&(D.push(c),a.pageIx=d);c!==q&&(q=c)}),l||(l=b.clipRect=f.clipRect(0,g,9999,0),b.contentGroup.clip(l)),u(n),A||(this.nav=A=f.g().attr({zIndex:1}).add(this.group),
|
|
this.up=f.symbol("triangle",0,0,y,y).on("click",function(){b.scroll(-1,r)}).add(A),this.pager=f.text("",15,10).addClass("highcharts-legend-navigation").add(A),this.down=f.symbol("triangle-down",0,0,y,y).on("click",function(){b.scroll(1,r)}).add(A)),b.scroll(0),a=c):A&&(u(),this.nav=A.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0);return a},scroll:function(a,b){var c=this.pages,f=c.length;a=this.currentPage+a;var d=this.clipHeight,e=this.pager,g=this.padding;a>f&&(a=f);0<a&&(void 0!==
|
|
b&&k(b,this.chart),this.nav.attr({translateX:g,translateY:d+this.padding+7+this.titleHeight,visibility:"visible"}),this.up.attr({"class":1===a?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"}),e.attr({text:a+"/"+f}),this.down.attr({x:18+this.pager.getBBox().width,"class":a===f?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"}),this.scrollOffset=-c[a-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=a,this.positionCheckboxes())}};
|
|
a.LegendSymbolMixin={drawRectangle:function(a,b){var c=a.symbolHeight,f=a.options.squareSymbol;b.legendSymbol=this.chart.renderer.rect(f?(a.symbolWidth-c)/2:0,a.baseline-c+1,f?c:a.symbolWidth,c,p(a.options.symbolRadius,c/2)).addClass("highcharts-point").attr({zIndex:3}).add(b.legendGroup)},drawLineMarker:function(a){var b=this.options.marker,c,f=a.symbolWidth,d=a.symbolHeight;c=d/2;var e=this.chart.renderer,k=this.legendGroup;a=a.baseline-Math.round(.3*a.fontMetrics.b);this.legendLine=e.path(["M",
|
|
0,a,"L",f,a]).addClass("highcharts-graph").attr({}).add(k);b&&!1!==b.enabled&&(c=Math.min(p(b.radius,c),c),0===this.symbol.indexOf("url")&&(b=q(b,{width:d,height:d}),c=0),this.legendSymbol=b=e.symbol(this.symbol,f/2-c,a-c,2*c,2*c,b).addClass("highcharts-point").add(k),b.isMarker=!0)}};(/Trident\/7\.0/.test(n.navigator.userAgent)||r)&&w(a.Legend.prototype,"positionItem",function(a,b){var c=this,f=function(){b._legendItemPos&&a.call(c,b)};f();setTimeout(f)})})(H);(function(a){var x=a.addEvent,B=a.animObject,
|
|
z=a.attr,g=a.doc,e=a.Axis,r=a.createElement,l=a.defaultOptions,q=a.discardElement,p=a.charts,k=a.defined,d=a.each,n=a.extend,w=a.find,f=a.fireEvent,b=a.grep,c=a.isNumber,h=a.isObject,m=a.isString,F=a.Legend,I=a.marginNames,E=a.merge,J=a.objectEach,v=a.Pointer,K=a.pick,y=a.pInt,A=a.removeEvent,D=a.seriesTypes,L=a.splat,t=a.svg,u=a.syncTimeout,N=a.win,G=a.Chart=function(){this.getArgs.apply(this,arguments)};a.chart=function(a,b,c){return new G(a,b,c)};n(G.prototype,{callbacks:[],getArgs:function(){var a=
|
|
[].slice.call(arguments);if(m(a[0])||a[0].nodeName)this.renderTo=a.shift();this.init(a[0],a[1])},init:function(b,c){var f,d,e=b.series,h=b.plotOptions||{};b.series=null;f=E(l,b);for(d in f.plotOptions)f.plotOptions[d].tooltip=h[d]&&E(h[d].tooltip)||void 0;f.tooltip.userOptions=b.chart&&b.chart.forExport&&b.tooltip.userOptions||b.tooltip;f.series=b.series=e;this.userOptions=b;b=f.chart;d=b.events;this.margin=[];this.spacing=[];this.bounds={h:{},v:{}};this.labelCollectors=[];this.callback=c;this.isResizing=
|
|
0;this.options=f;this.axes=[];this.series=[];this.hasCartesianSeries=b.showAxes;var k=this;k.index=p.length;p.push(k);a.chartCount++;d&&J(d,function(a,b){x(k,b,a)});k.xAxis=[];k.yAxis=[];k.pointCount=k.colorCounter=k.symbolCounter=0;k.firstRender()},initSeries:function(b){var c=this.options.chart;(c=D[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].name||"Series "+
|
|
(b[a].index+1))},isInsidePlot:function(a,b,c){var f=c?b:a;a=c?a:b;return 0<=f&&f<=this.plotWidth&&0<=a&&a<=this.plotHeight},redraw:function(b){var c=this.axes,e=this.series,h=this.pointer,k=this.legend,g=this.isDirtyLegend,m,t,u=this.hasCartesianSeries,y=this.isDirtyBox,D,l=this.renderer,A=l.isHidden(),C=[];this.setResponsive&&this.setResponsive(!1);a.setAnimation(b,this);A&&this.temporaryDisplay();this.layOutTitles();for(b=e.length;b--;)if(D=e[b],D.options.stacking&&(m=!0,D.isDirty)){t=!0;break}if(t)for(b=
|
|
e.length;b--;)D=e[b],D.options.stacking&&(D.isDirty=!0);d(e,function(a){a.isDirty&&"point"===a.options.legendType&&(a.updateTotals&&a.updateTotals(),g=!0);a.isDirtyData&&f(a,"updatedData")});g&&k.options.enabled&&(k.render(),this.isDirtyLegend=!1);m&&this.getStacks();u&&d(c,function(a){a.updateNames();a.setScale()});this.getMargins();u&&(d(c,function(a){a.isDirty&&(y=!0)}),d(c,function(a){var b=a.min+","+a.max;a.extKey!==b&&(a.extKey=b,C.push(function(){f(a,"afterSetExtremes",n(a.eventArgs,a.getExtremes()));
|
|
delete a.eventArgs}));(y||m)&&a.redraw()}));y&&this.drawChartBox();f(this,"predraw");d(e,function(a){(y||a.isDirty)&&a.visible&&a.redraw();a.isDirtyData=!1});h&&h.reset(!0);l.draw();f(this,"redraw");f(this,"render");A&&this.temporaryDisplay(!0);d(C,function(a){a.call()})},get:function(a){function b(b){return b.id===a||b.options&&b.options.id===a}var c,f=this.series,d;c=w(this.axes,b)||w(this.series,b);for(d=0;!c&&d<f.length;d++)c=w(f[d].points||[],b);return c},getAxes:function(){var a=this,b=this.options,
|
|
c=b.xAxis=L(b.xAxis||{}),b=b.yAxis=L(b.yAxis||{});d(c,function(a,b){a.index=b;a.isX=!0});d(b,function(a,b){a.index=b});c=c.concat(b);d(c,function(b){new e(a,b)})},getSelectedPoints:function(){var a=[];d(this.series,function(c){a=a.concat(b(c.data||[],function(a){return a.selected}))});return a},getSelectedSeries:function(){return b(this.series,function(a){return a.selected})},setTitle:function(a,b,c){var f=this,e=f.options,h;h=e.title=E(e.title,a);e=e.subtitle=E(e.subtitle,b);d([["title",a,h],["subtitle",
|
|
b,e]],function(a,b){var c=a[0],d=f[c],e=a[1];a=a[2];d&&e&&(f[c]=d=d.destroy());a&&!d&&(f[c]=f.renderer.text(a.text,0,0,a.useHTML).attr({align:a.align,"class":"highcharts-"+c,zIndex:a.zIndex||4}).add(),f[c].update=function(a){f.setTitle(!b&&a,b&&a)})});f.layOutTitles(c)},layOutTitles:function(a){var b=0,c,f=this.renderer,e=this.spacingBox;d(["title","subtitle"],function(a){var c=this[a],d=this.options[a];a="title"===a?-3:d.verticalAlign?0:b+2;var h;c&&(h=f.fontMetrics(h,c).b,c.css({width:(d.width||
|
|
e.width+d.widthAdjust)+"px"}).align(n({y:a+h},d),!1,"spacingBox"),d.floating||d.verticalAlign||(b=Math.ceil(b+c.getBBox(d.useHTML).height)))},this);c=this.titleOffset!==b;this.titleOffset=b;!this.isDirtyBox&&c&&(this.isDirtyBox=c,this.hasRendered&&K(a,!0)&&this.isDirtyBox&&this.redraw())},getChartSize:function(){var b=this.options.chart,c=b.width,b=b.height,f=this.renderTo;k(c)||(this.containerWidth=a.getStyle(f,"width"));k(b)||(this.containerHeight=a.getStyle(f,"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&&(g.body.removeChild(c),c.hcOrigDetached=!1),c=c.parentNode;else for(;c&&c.style;){g.body.contains(c)||c.parentNode||(c.hcOrigDetached=!0,g.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===g.body)break}},setClassName:function(a){this.container.className="highcharts-container "+(a||"")},getContainer:function(){var b,f=this.options,d=f.chart,e,h;b=this.renderTo;var k=a.uniqueKey(),t;b||(this.renderTo=b=d.renderTo);m(b)&&(this.renderTo=b=g.getElementById(b));
|
|
b||a.error(13,!0);e=y(z(b,"data-highcharts-chart"));c(e)&&p[e]&&p[e].hasRendered&&p[e].destroy();z(b,"data-highcharts-chart",this.index);b.innerHTML="";d.skipClone||b.offsetWidth||this.temporaryDisplay();this.getChartSize();e=this.chartWidth;h=this.chartHeight;this.container=b=r("div",{id:k},void 0,b);this._cursor=b.style.cursor;this.renderer=new (a[d.renderer]||a.Renderer)(b,e,h,null,d.forExport,f.exporting&&f.exporting.allowHTML);this.setClassName(d.className);for(t in f.defs)this.renderer.definition(f.defs[t]);
|
|
this.renderer.chartIndex=this.index},getMargins:function(a){var b=this.spacing,c=this.margin,f=this.titleOffset;this.resetMargins();f&&!k(c[0])&&(this.plotTop=Math.max(this.plotTop,f+this.options.title.margin+b[0]));this.legend&&this.legend.display&&this.legend.adjustMargins(c,b);this.extraMargin&&(this[this.extraMargin.type]=(this[this.extraMargin.type]||0)+this.extraMargin.value);this.adjustPlotArea&&this.adjustPlotArea();a||this.getAxisMargins()},getAxisMargins:function(){var a=this,b=a.axisOffset=
|
|
[0,0,0,0],c=a.margin;a.hasCartesianSeries&&d(a.axes,function(a){a.visible&&a.getOffset()});d(I,function(f,d){k(c[d])||(a[f]+=b[d])});a.setChartSize()},reflow:function(b){var c=this,f=c.options.chart,d=c.renderTo,e=k(f.width)&&k(f.height),h=f.width||a.getStyle(d,"width"),f=f.height||a.getStyle(d,"height"),d=b?b.target:N;if(!e&&!c.isPrinting&&h&&f&&(d===N||d===g)){if(h!==c.containerWidth||f!==c.containerHeight)clearTimeout(c.reflowTimeout),c.reflowTimeout=u(function(){c.container&&c.setSize(void 0,
|
|
void 0,!1)},b?100:0);c.containerWidth=h;c.containerHeight=f}},initReflow:function(){var a=this,b;b=x(N,"resize",function(b){a.reflow(b)});x(a,"destroy",b)},setSize:function(b,c,e){var h=this,k=h.renderer;h.isResizing+=1;a.setAnimation(e,h);h.oldChartHeight=h.chartHeight;h.oldChartWidth=h.chartWidth;void 0!==b&&(h.options.chart.width=b);void 0!==c&&(h.options.chart.height=c);h.getChartSize();h.setChartSize(!0);k.setSize(h.chartWidth,h.chartHeight,e);d(h.axes,function(a){a.isDirty=!0;a.setScale()});
|
|
h.isDirtyLegend=!0;h.isDirtyBox=!0;h.layOutTitles();h.getMargins();h.redraw(e);h.oldChartHeight=null;f(h,"resize");u(function(){h&&f(h,"endResize",null,function(){--h.isResizing})},B(void 0).duration)},setChartSize:function(a){var b=this.inverted,c=this.renderer,f=this.chartWidth,e=this.chartHeight,h=this.options.chart,k=this.spacing,g=this.clipOffset,m,t,u,y;this.plotLeft=m=Math.round(this.plotLeft);this.plotTop=t=Math.round(this.plotTop);this.plotWidth=u=Math.max(0,Math.round(f-m-this.marginRight));
|
|
this.plotHeight=y=Math.max(0,Math.round(e-t-this.marginBottom));this.plotSizeX=b?y:u;this.plotSizeY=b?u:y;this.plotBorderWidth=h.plotBorderWidth||0;this.spacingBox=c.spacingBox={x:k[3],y:k[0],width:f-k[3]-k[1],height:e-k[0]-k[2]};this.plotBox=c.plotBox={x:m,y:t,width:u,height:y};f=2*Math.floor(this.plotBorderWidth/2);b=Math.ceil(Math.max(f,g[3])/2);c=Math.ceil(Math.max(f,g[0])/2);this.clipBox={x:b,y:c,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-c))};a||d(this.axes,function(a){a.setAxisSize();a.setAxisTranslation()})},resetMargins:function(){var a=this,b=a.options.chart;d(["margin","spacing"],function(c){var f=b[c],e=h(f)?f:[f,f,f,f];d(["Top","Right","Bottom","Left"],function(f,d){a[c][d]=K(b[c+f],e[d])})});d(I,function(b,c){a[b]=K(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,c=this.chartWidth,f=this.chartHeight,d=this.chartBackground,
|
|
e=this.plotBackground,h=this.plotBorder,k,g,m=this.plotLeft,t=this.plotTop,u=this.plotWidth,y=this.plotHeight,D=this.plotBox,n=this.clipRect,l=this.clipBox,A="animate";d||(this.chartBackground=d=b.rect().addClass("highcharts-background").add(),A="attr");k=g=d.strokeWidth();d[A]({x:g/2,y:g/2,width:c-g-k%2,height:f-g-k%2,r:a.borderRadius});A="animate";e||(A="attr",this.plotBackground=e=b.rect().addClass("highcharts-plot-background").add());e[A](D);n?n.animate({width:l.width,height:l.height}):this.clipRect=
|
|
b.clipRect(l);A="animate";h||(A="attr",this.plotBorder=h=b.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add());h[A](h.crisp({x:m,y:t,width:u,height:y},-h.strokeWidth()));this.isDirtyBox=!1},propFromSeries:function(){var a=this,b=a.options.chart,c,f=a.options.series,e,h;d(["inverted","angular","polar"],function(d){c=D[b.type||b.defaultSeriesType];h=b[d]||c&&c.prototype[d];for(e=f&&f.length;!h&&e--;)(c=D[f[e].type])&&c.prototype[d]&&(h=!0);a[d]=h})},linkSeries:function(){var a=this,b=
|
|
a.series;d(b,function(a){a.linkedSeries.length=0});d(b,function(b){var c=b.options.linkedTo;m(c)&&(c=":previous"===c?a.series[b.index-1]:a.get(c))&&c.linkedParent!==b&&(c.linkedSeries.push(b),b.linkedParent=c,b.visible=K(b.options.visible,c.options.visible,b.visible))})},renderSeries:function(){d(this.series,function(a){a.translate();a.render()})},renderLabels:function(){var a=this,b=a.options.labels;b.items&&d(b.items,function(c){var f=n(b.style,c.style),d=y(f.left)+a.plotLeft,e=y(f.top)+a.plotTop+
|
|
12;delete f.left;delete f.top;a.renderer.text(c.html,d,e).attr({zIndex:2}).css(f).add()})},render:function(){var a=this.axes,b=this.renderer,c=this.options,f,e,h;this.setTitle();this.legend=new F(this,c.legend);this.getStacks&&this.getStacks();this.getMargins(!0);this.setChartSize();c=this.plotWidth;f=this.plotHeight=Math.max(this.plotHeight-21,0);d(a,function(a){a.setScale()});this.getAxisMargins();e=1.1<c/this.plotWidth;h=1.05<f/this.plotHeight;if(e||h)d(a,function(a){(a.horiz&&e||!a.horiz&&h)&&
|
|
a.setTickInterval(!0)}),this.getMargins();this.drawChartBox();this.hasCartesianSeries&&d(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=E(!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}).add().align(a.position),this.credits.update=function(a){b.credits=b.credits.destroy();b.addCredits(a)})},destroy:function(){var b=this,c=b.axes,e=b.series,h=b.container,k,g=h&&h.parentNode;f(b,"destroy");b.renderer.forExport?a.erase(p,b):p[b.index]=void 0;a.chartCount--;b.renderTo.removeAttribute("data-highcharts-chart");A(b);for(k=c.length;k--;)c[k]=c[k].destroy();this.scroller&&this.scroller.destroy&&this.scroller.destroy();
|
|
for(k=e.length;k--;)e[k]=e[k].destroy();d("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())});h&&(h.innerHTML="",A(h),g&&q(h));J(b,function(a,c){delete b[c]})},isReadyToRender:function(){var a=this;return t||N!=N.top||"complete"===g.readyState?!0:(g.attachEvent("onreadystatechange",function(){g.detachEvent("onreadystatechange",
|
|
a.firstRender);"complete"===g.readyState&&a.firstRender()}),!1)},firstRender:function(){var a=this,b=a.options;if(a.isReadyToRender()){a.getContainer();f(a,"init");a.resetMargins();a.setChartSize();a.propFromSeries();a.getAxes();d(b.series||[],function(b){a.initSeries(b)});a.linkSeries();f(a,"beforeRender");v&&(a.pointer=new v(a,b));a.render();if(!a.renderer.imgCount&&a.onload)a.onload();a.temporaryDisplay(!0)}},onload:function(){d([this.callback].concat(this.callbacks),function(a){a&&void 0!==this.index&&
|
|
a.apply(this,[this])},this);f(this,"load");f(this,"render");k(this.index)&&!1!==this.options.chart.reflow&&this.initReflow();this.onload=null}})})(H);(function(a){var x,B=a.each,z=a.extend,g=a.erase,e=a.fireEvent,r=a.format,l=a.isArray,q=a.isNumber,p=a.pick,k=a.removeEvent;a.Point=x=function(){};a.Point.prototype={init:function(a,e,k){var f=a.chart.options.chart.colorCount;this.series=a;this.applyOptions(e,k);a.options.colorByPoint?(e=a.colorCounter,a.colorCounter++,a.colorCounter===f&&(a.colorCounter=
|
|
0)):e=a.colorIndex;this.colorIndex=p(this.colorIndex,e);a.chart.pointCount++;return this},applyOptions:function(a,e){var d=this.series,f=d.options.pointValKey||d.pointValKey;a=x.prototype.optionsToObject.call(this,a);z(this,a);this.options=this.options?z(this.options,a):a;a.group&&delete this.group;f&&(this.y=this[f]);this.isNull=p(this.isValid&&!this.isValid(),null===this.x||!q(this.y,!0));this.selected&&(this.state="select");"name"in this&&void 0===e&&d.xAxis&&d.xAxis.hasNames&&(this.x=d.xAxis.nameToX(this));
|
|
void 0===this.x&&d&&(this.x=void 0===e?d.autoIncrement(this):e);return this},optionsToObject:function(a){var d={},e=this.series,f=e.options.keys,b=f||e.pointArrayMap||["y"],c=b.length,h=0,k=0;if(q(a)||null===a)d[b[0]]=a;else if(l(a))for(!f&&a.length>c&&(e=typeof a[0],"string"===e?d.name=a[0]:"number"===e&&(d.x=a[0]),h++);k<c;)f&&void 0===a[h]||(d[b[k]]=a[h]),h++,k++;else"object"===typeof a&&(d=a,a.dataLabels&&(e._hasPointLabels=!0),a.marker&&(e._hasPointMarkers=!0));return d},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,e=a.zones,a=a.zoneAxis||"y",k=0,f;for(f=e[k];this[a]>=f.value;)f=e[++k];f&&f.color&&!this.options.color&&(this.color=
|
|
f.color);return f},destroy:function(){var a=this.series.chart,e=a.hoverPoints,l;a.pointCount--;e&&(this.setState(),g(e,this),e.length||(a.hoverPoints=null));if(this===a.hoverPoint)this.onMouseOut();if(this.graphic||this.dataLabel)k(this),this.destroyElements();this.legendItem&&a.legend.destroyItem(this);for(l in this)this[l]=null},destroyElements:function(){for(var a=["graphic","dataLabel","dataLabelUpper","connector","shadowGroup"],e,k=6;k--;)e=a[k],this[e]&&(this[e]=this[e].destroy())},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,e=d.tooltipOptions,f=p(e.valueDecimals,""),b=e.valuePrefix||"",c=e.valueSuffix||"";B(d.pointArrayMap||["y"],function(d){d="{point."+d;if(b||c)a=a.replace(d+"}",b+d+"}"+c);a=a.replace(d+"}",d+":,."+f+"f}")});return r(a,{point:this,series:this.series})},firePointEvent:function(a,k,
|
|
g){var f=this,b=this.series.options;(b.point.events[a]||f.options&&f.options.events&&f.options.events[a])&&this.importEvents();"click"===a&&b.allowPointSelect&&(g=function(a){f.select&&f.select(null,a.ctrlKey||a.metaKey||a.shiftKey)});e(this,a,k,g)},visible:!0}})(H);(function(a){var x=a.addEvent,B=a.animObject,z=a.arrayMax,g=a.arrayMin,e=a.correctFloat,r=a.Date,l=a.defaultOptions,q=a.defined,p=a.each,k=a.erase,d=a.extend,n=a.fireEvent,w=a.grep,f=a.isArray,b=a.isNumber,c=a.isString,h=a.merge,m=a.objectEach,
|
|
F=a.pick,I=a.removeEvent,E=a.splat,J=a.SVGElement,v=a.syncTimeout,K=a.win;a.Series=a.seriesType("line",null,{allowPointSelect:!1,showCheckbox:!1,animation:{duration:1E3},events:{},marker:{radius:4,states:{hover:{animation:{duration:50},enabled:!0,radiusPlus:2}}},point:{events:{}},dataLabels:{align:"center",formatter:function(){return null===this.y?"":a.numberFormat(this.y,-1)},verticalAlign:"bottom",x:0,y:0,padding:5},cropThreshold:300,pointRange:0,softThreshold:!0,states:{hover:{animation:{duration:50},
|
|
lineWidthPlus:1,marker:{},halo:{size:10}},select:{marker:{}}},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,f,e=a.series,h;c.chart=a;c.options=b=c.setOptions(b);c.linkedSeries=[];c.bindAxes();d(c,{name:b.name,state:"",visible:!1!==b.visible,selected:!0===b.selected});f=b.events;m(f,function(a,b){x(c,
|
|
b,a)});if(f&&f.click||b.point&&b.point.events&&b.point.events.click||b.allowPointSelect)a.runTrackerClick=!0;c.getColor();c.getSymbol();p(c.parallelArrays,function(a){c[a+"Data"]=[]});c.setData(b.data,!1);c.isCartesian&&(a.hasCartesianSeries=!0);e.length&&(h=e[e.length-1]);c._i=F(h&&h._i,-1)+1;a.orderSeries(this.insert(e))},insert:function(a){var c=this.options.index,f;if(b(c)){for(f=a.length;f--;)if(c>=F(a[f].options.index,a[f]._i)){a.splice(f+1,0,this);break}-1===f&&a.unshift(this);f+=1}else a.push(this);
|
|
return F(f,a.length-1)},bindAxes:function(){var b=this,c=b.options,f=b.chart,d;p(b.axisTypes||[],function(e){p(f[e],function(a){d=a.options;if(c[e]===d.index||void 0!==c[e]&&c[e]===d.id||void 0===c[e]&&0===d.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 f=a.series,d=arguments,e=b(c)?function(b){var d="y"===b&&f.toYData?f.toYData(a):a[b];f[b+"Data"][c]=d}:function(a){Array.prototype[c].apply(f[a+"Data"],Array.prototype.slice.call(d,
|
|
2))};p(f.parallelArrays,e)},autoIncrement:function(){var b=this.options,c=this.xIncrement,f,d=b.pointIntervalUnit,e=0,c=F(c,b.pointStart,0);this.pointInterval=f=F(this.pointInterval,b.pointInterval,1);d&&(b=new r(c),"day"===d?b=+b[r.hcSetDate](b[r.hcGetDate]()+f):"month"===d?b=+b[r.hcSetMonth](b[r.hcGetMonth]()+f):"year"===d&&(b=+b[r.hcSetFullYear](b[r.hcGetFullYear]()+f)),r.hcHasTimeZone&&(e=a.getTZOffset(b)-a.getTZOffset(c)),f=b-c+e);this.xIncrement=c+f;return c},setOptions:function(a){var b=this.chart,
|
|
c=b.options,f=c.plotOptions,d=(b.userOptions||{}).plotOptions||{},e=f[this.type];this.userOptions=a;b=h(e,f.series,a);this.tooltipOptions=h(l.tooltip,l.plotOptions.series&&l.plotOptions.series.tooltip,l.plotOptions[this.type].tooltip,c.tooltip.userOptions,f.series&&f.series.tooltip,f[this.type].tooltip,a.tooltip);this.stickyTracking=F(a.stickyTracking,d[this.type]&&d[this.type].stickyTracking,d.series&&d.series.stickyTracking,this.tooltipOptions.shared&&!this.noSharedTooltip?!0:b.stickyTracking);
|
|
null===e.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"});a.length&&q(a[a.length-1].value)&&a.push({});return b},getCyclic:function(a,b,c){var f,d=this.chart,e=this.userOptions,h=a+"Index",k=a+"Counter",g=c?c.length:F(d.options.chart[a+"Count"],d[a+"Count"]);b||(f=F(e[h],e["_"+h]),q(f)||(d.series.length||(d[k]=0),e["_"+h]=
|
|
f=d[k]%g,d[k]+=1),c&&(b=c[f]));void 0!==f&&(this[h]=f);this[a]=b},getColor:function(){this.getCyclic("color")},getSymbol:function(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)},drawLegendSymbol:a.LegendSymbolMixin.drawLineMarker,setData:function(d,e,h,k){var g=this,m=g.points,l=m&&m.length||0,n,y=g.options,D=g.chart,A=null,v=g.xAxis,r=y.turboThreshold,q=this.xData,E=this.yData,J=(n=g.pointArrayMap)&&n.length;d=d||[];n=d.length;e=F(e,!0);if(!1!==k&&n&&l===n&&!g.cropped&&
|
|
!g.hasGroupedData&&g.visible)p(d,function(a,b){m[b].update&&a!==y.data[b]&&m[b].update(a,!1,null,!1)});else{g.xIncrement=null;g.colorCounter=0;p(this.parallelArrays,function(a){g[a+"Data"].length=0});if(r&&n>r){for(h=0;null===A&&h<n;)A=d[h],h++;if(b(A))for(h=0;h<n;h++)q[h]=this.autoIncrement(),E[h]=d[h];else if(f(A))if(J)for(h=0;h<n;h++)A=d[h],q[h]=A[0],E[h]=A.slice(1,J+1);else for(h=0;h<n;h++)A=d[h],q[h]=A[0],E[h]=A[1];else a.error(12)}else for(h=0;h<n;h++)void 0!==d[h]&&(A={series:g},g.pointClass.prototype.applyOptions.apply(A,
|
|
[d[h]]),g.updateParallelArrays(A,h));E&&c(E[0])&&a.error(14,!0);g.data=[];g.options.data=g.userOptions.data=d;for(h=l;h--;)m[h]&&m[h].destroy&&m[h].destroy();v&&(v.minRange=v.userMinRange);g.isDirty=D.isDirtyBox=!0;g.isDirtyData=!!m;h=!1}"point"===y.legendType&&(this.processData(),this.generatePoints());e&&D.redraw(h)},processData:function(b){var c=this.xData,f=this.yData,d=c.length,e;e=0;var h,k,g=this.xAxis,m,n=this.options;m=n.cropThreshold;var l=this.getExtremesFromAll||n.getExtremesFromAll,y=
|
|
this.isCartesian,n=g&&g.val2lin,p=g&&g.isLog,v=this.requireSorting,r,q;if(y&&!this.isDirty&&!g.isDirty&&!this.yAxis.isDirty&&!b)return!1;g&&(b=g.getExtremes(),r=b.min,q=b.max);if(y&&this.sorted&&!l&&(!m||d>m||this.forceCrop))if(c[d-1]<r||c[0]>q)c=[],f=[];else if(c[0]<r||c[d-1]>q)e=this.cropData(this.xData,this.yData,r,q),c=e.xData,f=e.yData,e=e.start,h=!0;for(m=c.length||1;--m;)d=p?n(c[m])-n(c[m-1]):c[m]-c[m-1],0<d&&(void 0===k||d<k)?k=d:0>d&&v&&(a.error(15),v=!1);this.cropped=h;this.cropStart=e;
|
|
this.processedXData=c;this.processedYData=f;this.closestPointRange=k},cropData:function(a,b,c,f){var d=a.length,e=0,h=d,k=F(this.cropShoulder,1),g;for(g=0;g<d;g++)if(a[g]>=c){e=Math.max(0,g-k);break}for(c=g;c<d;c++)if(a[c]>f){h=c+k;break}return{xData:a.slice(e,h),yData:b.slice(e,h),start:e,end:h}},generatePoints:function(){var a=this.options,b=a.data,c=this.data,f,d=this.processedXData,e=this.processedYData,h=this.pointClass,k=d.length,g=this.cropStart||0,m,n=this.hasGroupedData,a=a.keys,l,p=[],v;
|
|
c||n||(c=[],c.length=b.length,c=this.data=c);a&&n&&(this.options.keys=!1);for(v=0;v<k;v++)m=g+v,n?(l=(new h).init(this,[d[v]].concat(E(e[v]))),l.dataGroup=this.groupMap[v]):(l=c[m])||void 0===b[m]||(c[m]=l=(new h).init(this,b[m],d[v])),l&&(l.index=m,p[v]=l);this.options.keys=a;if(c&&(k!==(f=c.length)||n))for(v=0;v<f;v++)v!==g||n||(v+=k),c[v]&&(c[v].destroyElements(),c[v].plotX=void 0);this.data=c;this.points=p},getExtremes:function(a){var c=this.yAxis,d=this.processedXData,e,h=[],k=0;e=this.xAxis.getExtremes();
|
|
var m=e.min,n=e.max,l,y,v,p;a=a||this.stackedYData||this.processedYData||[];e=a.length;for(p=0;p<e;p++)if(y=d[p],v=a[p],l=(b(v,!0)||f(v))&&(!c.positiveValuesOnly||v.length||0<v),y=this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||(d[p+1]||y)>=m&&(d[p-1]||y)<=n,l&&y)if(l=v.length)for(;l--;)"number"===typeof v[l]&&(h[k++]=v[l]);else h[k++]=v;this.dataMin=g(h);this.dataMax=z(h)},translate:function(){this.processedXData||this.processData();this.generatePoints();var a=this.options,
|
|
c=a.stacking,f=this.xAxis,d=f.categories,h=this.yAxis,k=this.points,g=k.length,m=!!this.modifyValue,n=a.pointPlacement,l="between"===n||b(n),v=a.threshold,p=a.startFromThreshold?v:0,r,E,J,K,w=Number.MAX_VALUE;"between"===n&&(n=.5);b(n)&&(n*=F(a.pointRange||f.pointRange));for(a=0;a<g;a++){var I=k[a],x=I.x,z=I.y;E=I.low;var B=c&&h.stacks[(this.negStacks&&z<(p?0:v)?"-":"")+this.stackKey],H;h.positiveValuesOnly&&null!==z&&0>=z&&(I.isNull=!0);I.plotX=r=e(Math.min(Math.max(-1E5,f.translate(x,0,0,0,1,n,
|
|
"flags"===this.type)),1E5));c&&this.visible&&!I.isNull&&B&&B[x]&&(K=this.getStackIndicator(K,x,this.index),H=B[x],z=H.points[K.key],E=z[0],z=z[1],E===p&&K.key===B[x].base&&(E=F(v,h.min)),h.positiveValuesOnly&&0>=E&&(E=null),I.total=I.stackTotal=H.total,I.percentage=H.total&&I.y/H.total*100,I.stackY=z,H.setOffset(this.pointXOffset||0,this.barW||0));I.yBottom=q(E)?h.translate(E,0,1,0,1):null;m&&(z=this.modifyValue(z,I));I.plotY=E="number"===typeof z&&Infinity!==z?Math.min(Math.max(-1E5,h.translate(z,
|
|
0,1,0,1)),1E5):void 0;I.isInside=void 0!==E&&0<=E&&E<=h.len&&0<=r&&r<=f.len;I.clientX=l?e(f.translate(x,0,0,0,1,n)):r;I.negative=I.y<(v||0);I.category=d&&void 0!==d[I.x]?d[I.x]:I.x;I.isNull||(void 0!==J&&(w=Math.min(w,Math.abs(r-J))),J=r);I.zone=this.zones.length&&I.getZone()}this.closestPointRangePx=w},getValidPoints:function(a,b){var c=this.chart;return w(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,
|
|
f=b.renderer,d=b.inverted,e=this.clipBox,h=e||b.clipBox,k=this.sharedClipKey||["_sharedClip",a&&a.duration,a&&a.easing,h.height,c.xAxis,c.yAxis].join(),g=b[k],m=b[k+"m"];g||(a&&(h.width=0,d&&(h.x=b.plotSizeX),b[k+"m"]=m=f.clipRect(d?b.plotSizeX+99:-99,d?-b.plotLeft:-b.plotTop,99,d?b.chartWidth:b.chartHeight)),b[k]=g=f.clipRect(h),g.count={length:0});a&&!g.count[this.index]&&(g.count[this.index]=!0,g.count.length+=1);!1!==c.clip&&(this.group.clip(a||e?g:b.clipRect),this.markerGroup.clip(m),this.sharedClipKey=
|
|
k);a||(g.count[this.index]&&(delete g.count[this.index],--g.count.length),0===g.count.length&&k&&b[k]&&(e||(b[k]=b[k].destroy()),b[k+"m"]&&(b[k+"m"]=b[k+"m"].destroy())))},animate:function(a){var b=this.chart,c=B(this.options.animation),f;a?this.setClip(c):(f=this.sharedClipKey,(a=b[f])&&a.animate({width:b.plotSizeX,x:0},c),b[f+"m"]&&b[f+"m"].animate({width:b.plotSizeX+99,x:0},c),this.animate=null)},afterAnimate:function(){this.setClip();n(this,"afterAnimate");this.finishedAnimating=!0},drawPoints:function(){var a=
|
|
this.points,b=this.chart,c,f,d,e,h=this.options.marker,k,g,m,n=this[this.specialGroup]||this.markerGroup,l,v=F(h.enabled,this.xAxis.isRadial?!0:null,this.closestPointRangePx>=2*h.radius);if(!1!==h.enabled||this._hasPointMarkers)for(c=0;c<a.length;c++)f=a[c],e=f.graphic,k=f.marker||{},g=!!f.marker,d=v&&void 0===k.enabled||k.enabled,m=f.isInside,d&&!f.isNull?(d=F(k.symbol,this.symbol),f.hasImage=0===d.indexOf("url"),l=this.markerAttribs(f,f.selected&&"select"),e?e[m?"show":"hide"](!0).animate(l):m&&
|
|
(0<l.width||f.hasImage)&&(f.graphic=e=b.renderer.symbol(d,l.x,l.y,l.width,l.height,g?k:h).add(n)),e&&e.addClass(f.getClassName(),!0)):e&&(f.graphic=e.destroy())},markerAttribs:function(a,b){var c=this.options.marker,f=a.marker||{},d=F(f.radius,c.radius);b&&(c=c.states[b],b=f.states&&f.states[b],d=F(b&&b.radius,c&&c.radius,d+(c&&c.radiusPlus||0)));a.hasImage&&(d=0);a={x:Math.floor(a.plotX)-d,y:a.plotY-d};d&&(a.width=a.height=2*d);return a},destroy:function(){var a=this,b=a.chart,c=/AppleWebKit\/533/.test(K.navigator.userAgent),
|
|
f,d,e=a.data||[],h,g;n(a,"destroy");I(a);p(a.axisTypes||[],function(b){(g=a[b])&&g.series&&(k(g.series,a),g.isDirty=g.forceRedraw=!0)});a.legendItem&&a.chart.legend.destroyItem(a);for(d=e.length;d--;)(h=e[d])&&h.destroy&&h.destroy();a.points=null;clearTimeout(a.animationTimeout);m(a,function(a,b){a instanceof J&&!a.survive&&(f=c&&"group"===b?"hide":"destroy",a[f]())});b.hoverSeries===a&&(b.hoverSeries=null);k(b.series,a);b.orderSeries();m(a,function(b,c){delete a[c]})},getGraphPath:function(a,b,c){var f=
|
|
this,d=f.options,e=d.step,h,k=[],g=[],m;a=a||f.points;(h=a.reversed)&&a.reverse();(e={right:1,center:2}[e]||e&&3)&&h&&(e=4-e);!d.connectNulls||b||c||(a=this.getValidPoints(a));p(a,function(h,n){var l=h.plotX,t=h.plotY,u=a[n-1];(h.leftCliff||u&&u.rightCliff)&&!c&&(m=!0);h.isNull&&!q(b)&&0<n?m=!d.connectNulls:h.isNull&&!b?m=!0:(0===n||m?n=["M",h.plotX,h.plotY]:f.getPointSpline?n=f.getPointSpline(a,h,n):e?(n=1===e?["L",u.plotX,t]:2===e?["L",(u.plotX+l)/2,u.plotY,"L",(u.plotX+l)/2,t]:["L",l,u.plotY],
|
|
n.push("L",l,t)):n=["L",l,t],g.push(h.x),e&&g.push(h.x),k.push.apply(k,n),m=!1)});k.xMap=g;return f.graphPath=k},drawGraph:function(){var a=this,b=(this.gappedPath||this.getGraphPath).call(this),c=[["graph","highcharts-graph"]];p(this.zones,function(a,b){c.push(["zone-graph-"+b,"highcharts-graph highcharts-zone-graph-"+b+" "+(a.className||"")])});p(c,function(c,f){f=c[0];var d=a[f];d?(d.endX=a.preventGraphAnimation?null:b.xMap,d.animate({d:b})):b.length&&(a[f]=a.chart.renderer.path(b).addClass(c[1]).attr({zIndex:1}).add(a.group));
|
|
d&&(d.startX=b.xMap,d.isArea=b.isArea)})},applyZones:function(){var a=this,b=this.chart,c=b.renderer,f=this.zones,d,e,h=this.clips||[],k,g=this.graph,m=this.area,n=Math.max(b.chartWidth,b.chartHeight),l=this[(this.zoneAxis||"y")+"Axis"],v,r,q=b.inverted,E,J,K,w,I=!1;f.length&&(g||m)&&l&&void 0!==l.min&&(r=l.reversed,E=l.horiz,g&&g.hide(),m&&m.hide(),v=l.getExtremes(),p(f,function(f,t){d=r?E?b.plotWidth:0:E?0:l.toPixels(v.min);d=Math.min(Math.max(F(e,d),0),n);e=Math.min(Math.max(Math.round(l.toPixels(F(f.value,
|
|
v.max),!0)),0),n);I&&(d=e=l.toPixels(v.max));J=Math.abs(d-e);K=Math.min(d,e);w=Math.max(d,e);l.isXAxis?(k={x:q?w:K,y:0,width:J,height:n},E||(k.x=b.plotHeight-k.x)):(k={x:0,y:q?w:K,width:n,height:J},E&&(k.y=b.plotWidth-k.y));h[t]?h[t].animate(k):(h[t]=c.clipRect(k),g&&a["zone-graph-"+t].clip(h[t]),m&&a["zone-area-"+t].clip(h[t]));I=f.value>v.max}),this.clips=h)},invertGroups:function(a){function b(){p(["group","markerGroup"],function(b){c[b]&&(f.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,f=c.chart,d;c.xAxis&&(d=x(f,"resize",b),x(c,"destroy",d),b(a),c.invertGroups=b)},plotGroup:function(a,b,c,f,d){var e=this[a],h=!e;h&&(this[a]=e=this.chart.renderer.g().attr({zIndex:f||.1}).add(d));e.addClass("highcharts-"+b+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(q(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(e.hasClass("highcharts-tracker")?" highcharts-tracker":
|
|
""),!0);e.attr({visibility:c})[h?"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,f=a.options,d=!!a.animate&&b.renderer.isSVG&&B(f.animation).duration,e=a.visible?"inherit":"hidden",h=f.zIndex,k=a.hasRendered,g=b.seriesGroup,m=b.inverted;c=a.plotGroup("group","series",e,h,g);a.markerGroup=
|
|
a.plotGroup("markerGroup","markers",e,h,g);d&&a.animate(!0);c.inverted=a.isCartesian?m:!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(m);!1===f.clip||a.sharedClipKey||k||c.clip(b.clipRect);d&&a.animate();k||(a.animationTimeout=v(function(){a.afterAnimate()},d));a.isDirty=!1;a.hasRendered=!0},redraw:function(){var a=this.chart,b=this.isDirty||this.isDirtyData,
|
|
c=this.group,f=this.xAxis,d=this.yAxis;c&&(a.inverted&&c.attr({width:a.plotWidth,height:a.plotHeight}),c.animate({translateX:F(f&&f.left,a.plotLeft),translateY:F(d&&d.top,a.plotTop)}));this.translate();this.render();b&&delete this.kdTree},kdAxisArray:["clientX","plotY"],searchPoint:function(a,b){var c=this.xAxis,f=this.yAxis,d=this.chart.inverted;return this.searchKDTree({clientX:d?c.len-a.chartY+c.pos:a.chartX-c.pos,plotY:d?f.len-a.chartX+f.pos:a.chartY-f.pos},b)},buildKDTree:function(){function a(c,
|
|
f,d){var e,h;if(h=c&&c.length)return e=b.kdAxisArray[f%d],c.sort(function(a,b){return a[e]-b[e]}),h=Math.floor(h/2),{point:c[h],left:a(c.slice(0,h),f+1,d),right:a(c.slice(h+1),f+1,d)}}this.buildingKdTree=!0;var b=this,c=-1<b.options.findNearestPointBy.indexOf("y")?2:1;delete b.kdTree;v(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,k,g){var m=b.point,n=f.kdAxisArray[k%g],l,t,v=m;t=q(a[d])&&q(m[d])?
|
|
Math.pow(a[d]-m[d],2):null;l=q(a[e])&&q(m[e])?Math.pow(a[e]-m[e],2):null;l=(t||0)+(l||0);m.dist=q(l)?Math.sqrt(l):Number.MAX_VALUE;m.distX=q(t)?Math.sqrt(t):Number.MAX_VALUE;n=a[n]-m[n];l=0>n?"left":"right";t=0>n?"right":"left";b[l]&&(l=c(a,b[l],k+1,g),v=l[h]<v[h]?l:m);b[t]&&Math.sqrt(n*n)<v[h]&&(a=c(a,b[t],k+1,g),v=a[h]<v[h]?a:v);return v}var f=this,d=this.kdAxisArray[0],e=this.kdAxisArray[1],h=b?"distX":"dist";b=-1<f.options.findNearestPointBy.indexOf("y")?2:1;this.kdTree||this.buildingKdTree||
|
|
this.buildKDTree();if(this.kdTree)return c(a,this.kdTree,b,b)}})})(H);(function(a){var x=a.addEvent,B=a.Axis,z=a.createElement,g=a.css,e=a.defined,r=a.each,l=a.erase,q=a.extend,p=a.fireEvent,k=a.inArray,d=a.isNumber,n=a.isObject,w=a.isArray,f=a.merge,b=a.objectEach,c=a.pick,h=a.Point,m=a.Series,F=a.seriesTypes,I=a.setAnimation,E=a.splat;q(a.Chart.prototype,{addSeries:function(a,b,f){var d,e=this;a&&(b=c(b,!0),p(e,"addSeries",{options:a},function(){d=e.initSeries(a);e.isDirtyLegend=!0;e.linkSeries();
|
|
b&&e.redraw(f)}));return d},addAxis:function(a,b,d,e){var h=b?"xAxis":"yAxis",k=this.options;a=f(a,{index:this[h].length,isX:b});b=new B(this,a);k[h]=E(k[h]||{});k[h].push(a);c(d,!0)&&this.redraw(e);return b},showLoading:function(a){var b=this,c=b.options,f=b.loadingDiv,d=function(){f&&g(f,{left:b.plotLeft+"px",top:b.plotTop+"px",width:b.plotWidth+"px",height:b.plotHeight+"px"})};f||(b.loadingDiv=f=z("div",{className:"highcharts-loading highcharts-loading-hidden"},null,b.container),b.loadingSpan=
|
|
z("span",{className:"highcharts-loading-inner"},null,f),x(b,"redraw",d));f.className="highcharts-loading";b.loadingSpan.innerHTML=a||c.lang.loading;b.loadingShown=!0;d()},hideLoading:function(){var a=this.loadingDiv;a&&(a.className="highcharts-loading highcharts-loading-hidden");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 tooltip".split(" "),update:function(a,h,g){var m=this,l={credits:"addCredits",title:"setTitle",subtitle:"setSubtitle"},n=a.chart,v,t,u=[];if(n){f(!0,m.options.chart,n);"className"in n&&m.setClassName(n.className);if("inverted"in n||"polar"in n)m.propFromSeries(),v=!0;"alignTicks"in n&&(v=!0);b(n,function(a,b){-1!==k("chart."+b,m.propsRequireUpdateSeries)&&(t=!0);-1!==k(b,m.propsRequireDirtyBox)&&
|
|
(m.isDirtyBox=!0)})}a.plotOptions&&f(!0,this.options.plotOptions,a.plotOptions);b(a,function(a,b){if(m[b]&&"function"===typeof m[b].update)m[b].update(a,!1);else if("function"===typeof m[l[b]])m[l[b]](a);"chart"!==b&&-1!==k(b,m.propsRequireUpdateSeries)&&(t=!0)});r("xAxis yAxis zAxis series colorAxis pane".split(" "),function(b){a[b]&&(r(E(a[b]),function(a,c){(c=e(a.id)&&m.get(a.id)||m[b][c])&&c.coll===b&&(c.update(a,!1),g&&(c.touched=!0));if(!c&&g)if("series"===b)m.addSeries(a,!1).touched=!0;else if("xAxis"===
|
|
b||"yAxis"===b)m.addAxis(a,"xAxis"===b,!1).touched=!0}),g&&r(m[b],function(a){a.touched?delete a.touched:u.push(a)}))});r(u,function(a){a.remove(!1)});v&&r(m.axes,function(a){a.update({},!1)});t&&r(m.series,function(a){a.update({},!1)});a.loading&&f(!0,m.options.loading,a.loading);v=n&&n.width;n=n&&n.height;d(v)&&v!==m.chartWidth||d(n)&&n!==m.chartHeight?m.setSize(v,n):c(h,!0)&&m.redraw()},setSubtitle:function(a){this.setTitle(void 0,a)}});q(h.prototype,{update:function(a,b,f,d){function e(){h.applyOptions(a);
|
|
null===h.y&&g&&(h.graphic=g.destroy());n(a,!0)&&(g&&g.element&&a&&a.marker&&void 0!==a.marker.symbol&&(h.graphic=g.destroy()),a&&a.dataLabels&&h.dataLabel&&(h.dataLabel=h.dataLabel.destroy()),h.connector&&(h.connector=h.connector.destroy()));m=h.index;k.updateParallelArrays(h,m);v.data[m]=n(v.data[m],!0)||n(a,!0)?h.options:a;k.isDirty=k.isDirtyData=!0;!k.fixedBox&&k.hasCartesianSeries&&(l.isDirtyBox=!0);"point"===v.legendType&&(l.isDirtyLegend=!0);b&&l.redraw(f)}var h=this,k=h.series,g=h.graphic,
|
|
m,l=k.chart,v=k.options;b=c(b,!0);!1===d?e():h.firePointEvent("update",{options:a},e)},remove:function(a,b){this.series.removePoint(k(this,this.series.data),a,b)}});q(m.prototype,{addPoint:function(a,b,f,d){var e=this.options,h=this.data,k=this.chart,g=this.xAxis,g=g&&g.hasNames&&g.names,m=e.data,n,l,v=this.xData,p,r;b=c(b,!0);n={series:this};this.pointClass.prototype.applyOptions.apply(n,[a]);r=n.x;p=v.length;if(this.requireSorting&&r<v[p-1])for(l=!0;p&&v[p-1]>r;)p--;this.updateParallelArrays(n,
|
|
"splice",p,0,0);this.updateParallelArrays(n,p);g&&n.name&&(g[r]=n.name);m.splice(p,0,a);l&&(this.data.splice(p,0,null),this.processData());"point"===e.legendType&&this.generatePoints();f&&(h[0]&&h[0].remove?h[0].remove(!1):(h.shift(),this.updateParallelArrays(n,"shift"),m.shift()));this.isDirtyData=this.isDirty=!0;b&&k.redraw(d)},removePoint:function(a,b,f){var d=this,e=d.data,h=e[a],k=d.points,g=d.chart,m=function(){k&&k.length===e.length&&k.splice(a,1);e.splice(a,1);d.options.data.splice(a,1);d.updateParallelArrays(h||
|
|
{series:d},"splice",a,1);h&&h.destroy();d.isDirty=!0;d.isDirtyData=!0;b&&g.redraw()};I(f,g);b=c(b,!0);h?h.firePointEvent("remove",null,m):m()},remove:function(a,b,f){function d(){e.destroy();h.isDirtyLegend=h.isDirtyBox=!0;h.linkSeries();c(a,!0)&&h.redraw(b)}var e=this,h=e.chart;!1!==f?p(e,"remove",null,d):d()},update:function(a,b){var d=this,e=d.chart,h=d.userOptions,k=d.oldType||d.type,g=a.type||h.type||e.options.chart.type,m=F[k].prototype,n,l=["group","markerGroup","dataLabelsGroup"],p=["navigatorSeries",
|
|
"baseSeries"],v=d.finishedAnimating&&{animation:!1};if(Object.keys&&"data"===Object.keys(a).toString())return this.setData(a.data,b);p=l.concat(p);r(p,function(a){p[a]=d[a];delete d[a]});a=f(h,v,{index:d.index,pointStart:d.xData[0]},{data:d.options.data},a);d.remove(!1,null,!1);for(n in m)d[n]=void 0;q(d,F[g||k].prototype);r(p,function(a){d[a]=p[a]});d.init(e,a);a.zIndex!==h.zIndex&&r(l,function(b){d[b]&&d[b].attr({zIndex:a.zIndex})});d.oldType=k;e.linkSeries();c(b,!0)&&e.redraw(!1)}});q(B.prototype,
|
|
{update:function(a,b){var d=this.chart;a=d.options[this.coll][this.options.index]=f(this.userOptions,a);this.destroy(!0);this.init(d,q(a,{events:void 0}));d.isDirtyBox=!0;c(b,!0)&&d.redraw()},remove:function(a){for(var b=this.chart,f=this.coll,d=this.series,e=d.length;e--;)d[e]&&d[e].remove(!1);l(b.axes,this);l(b[f],this);w(b.options[f])?b.options[f].splice(this.options.index,1):delete b.options[f];r(b[f],function(a,b){a.options.index=b});this.destroy();b.isDirtyBox=!0;c(a,!0)&&b.redraw()},setTitle:function(a,
|
|
b){this.update({title:a},b)},setCategories:function(a,b){this.update({categories:a},b)}})})(H);(function(a){var x=a.animObject,B=a.each,z=a.extend,g=a.isNumber,e=a.merge,r=a.pick,l=a.Series,q=a.seriesType,p=a.svg;q("column","line",{borderRadius:0,crisp:!0,groupPadding:.2,marker:null,pointPadding:.1,minPointLength:0,cropThreshold:50,pointRange:null,states:{hover:{halo:!1}},dataLabels:{align:null,verticalAlign:null,y:null},softThreshold:!1,startFromThreshold:!0,stickyTracking:!1,tooltip:{distance:6},
|
|
threshold:0},{cropShoulder:0,directTouch:!0,trackerGroups:["group","dataLabelsGroup"],negStacks:!0,init:function(){l.prototype.init.apply(this,arguments);var a=this,d=a.chart;d.hasRendered&&B(d.series,function(d){d.type===a.type&&(d.isDirty=!0)})},getColumnMetrics:function(){var a=this,d=a.options,e=a.xAxis,g=a.yAxis,f=e.reversed,b,c={},h=0;!1===d.grouping?h=1:B(a.chart.series,function(f){var d=f.options,e=f.yAxis,k;f.type!==a.type||!f.visible&&a.chart.options.chart.ignoreHiddenSeries||g.len!==e.len||
|
|
g.pos!==e.pos||(d.stacking?(b=f.stackKey,void 0===c[b]&&(c[b]=h++),k=c[b]):!1!==d.grouping&&(k=h++),f.columnIndex=k)});var m=Math.min(Math.abs(e.transA)*(e.ordinalSlope||d.pointRange||e.closestPointRange||e.tickInterval||1),e.len),l=m*d.groupPadding,p=(m-2*l)/(h||1),d=Math.min(d.maxPointWidth||e.len,r(d.pointWidth,p*(1-2*d.pointPadding)));a.columnMetrics={width:d,offset:(p-d)/2+(l+((a.columnIndex||0)+(f?1:0))*p-m/2)*(f?-1:1)};return a.columnMetrics},crispCol:function(a,d,e,g){var f=this.chart,b=this.borderWidth,
|
|
c=-(b%2?.5:0),b=b%2?.5:1;f.inverted&&f.renderer.isVML&&(b+=1);this.options.crisp&&(e=Math.round(a+e)+c,a=Math.round(a)+c,e-=a);g=Math.round(d+g)+b;c=.5>=Math.abs(d)&&.5<g;d=Math.round(d)+b;g-=d;c&&g&&(--d,g+=1);return{x:a,y:d,width:e,height:g}},translate:function(){var a=this,d=a.chart,e=a.options,g=a.dense=2>a.closestPointRange*a.xAxis.transA,g=a.borderWidth=r(e.borderWidth,g?0:1),f=a.yAxis,b=e.threshold,c=a.translatedThreshold=f.getThreshold(b),h=r(e.minPointLength,5),m=a.getColumnMetrics(),p=m.width,
|
|
q=a.barW=Math.max(p,1+2*g),E=a.pointXOffset=m.offset;d.inverted&&(c-=.5);e.pointPadding&&(q=Math.ceil(q));l.prototype.translate.apply(a);B(a.points,function(e){var g=r(e.yBottom,c),k=999+Math.abs(g),k=Math.min(Math.max(-k,e.plotY),f.len+k),m=e.plotX+E,l=q,n=Math.min(k,g),w,t=Math.max(k,g)-n;h&&Math.abs(t)<h&&(t=h,w=!f.reversed&&!e.negative||f.reversed&&e.negative,e.y===b&&a.dataMax<=b&&f.min<b&&(w=!w),n=Math.abs(n-c)>h?g-h:c-(w?h:0));e.barX=m;e.pointWidth=p;e.tooltipPos=d.inverted?[f.len+f.pos-d.plotLeft-
|
|
k,a.xAxis.len-m-l/2,t]:[m+l/2,k+f.pos-d.plotTop,t];e.shapeType="rect";e.shapeArgs=a.crispCol.apply(a,e.isNull?[m,c,l,0]:[m,n,l,t])})},getSymbol:a.noop,drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,drawGraph:function(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")},drawPoints:function(){var a=this,d=this.chart,l=a.options,p=d.renderer,f=l.animationLimit||250,b;B(a.points,function(c){var h=c.graphic;if(g(c.plotY)&&null!==c.y){b=c.shapeArgs;if(h)h[d.pointCount<f?"animate":
|
|
"attr"](e(b));else c.graphic=h=p[c.shapeType](b).add(c.group||a.group);l.borderRadius&&h.attr({r:l.borderRadius});h.addClass(c.getClassName(),!0)}else h&&(c.graphic=h.destroy())})},animate:function(a){var d=this,e=this.yAxis,g=d.options,f=this.chart.inverted,b={},c=f?"translateX":"translateY",h;p&&(a?(b.scaleY=.001,a=Math.min(e.pos+e.len,Math.max(e.pos,e.toPixels(g.threshold))),f?b.translateX=a-e.len:b.translateY=a,d.group.attr(b)):(h=d.group.attr(c),d.group.animate({scaleY:1},z(x(d.options.animation),
|
|
{step:function(a,f){b[c]=h+f.pos*(e.pos-h);d.group.attr(b)}})),d.animate=null))},remove:function(){var a=this,d=a.chart;d.hasRendered&&B(d.series,function(d){d.type===a.type&&(d.isDirty=!0)});l.prototype.remove.apply(a,arguments)}})})(H);(function(a){var x=a.Series;a=a.seriesType;a("scatter","line",{lineWidth:0,findNearestPointBy:"xy",marker:{enabled:!0},tooltip:{headerFormat:'\x3cspan class\x3d"highcharts-color-{point.colorIndex}"\x3e\u25cf\x3c/span\x3e \x3cspan class\x3d"highcharts-header"\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&&x.prototype.drawGraph.call(this)}})})(H);(function(a){var x=a.addEvent,B=a.arrayMax,z=a.defined,g=a.each,e=a.extend,r=a.format,l=a.map,q=a.merge,p=a.noop,k=a.pick,d=a.relativeLength,n=a.Series,w=a.seriesTypes,f=a.stableSort;a.distribute=
|
|
function(a,c){function b(a,b){return a.target-b.target}var d,e=!0,n=a,p=[],r;r=0;for(d=a.length;d--;)r+=a[d].size;if(r>c){f(a,function(a,b){return(b.rank||0)-(a.rank||0)});for(r=d=0;r<=c;)r+=a[d].size,d++;p=a.splice(d-1,a.length)}f(a,b);for(a=l(a,function(a){return{size:a.size,targets:[a.target],align:k(a.align,.5)}});e;){for(d=a.length;d--;)e=a[d],r=(Math.min.apply(0,e.targets)+Math.max.apply(0,e.targets))/2,e.pos=Math.min(Math.max(0,r-e.size*e.align),c-e.size);d=a.length;for(e=!1;d--;)0<d&&a[d-
|
|
1].pos+a[d-1].size>a[d].pos&&(a[d-1].size+=a[d].size,a[d-1].targets=a[d-1].targets.concat(a[d].targets),a[d-1].align=.5,a[d-1].pos+a[d-1].size>c&&(a[d-1].pos=c-a[d-1].size),a.splice(d,1),e=!0)}d=0;g(a,function(a){var b=0;g(a.targets,function(){n[d].pos=a.pos+b;b+=n[d].size;d++})});n.push.apply(n,p);f(n,b)};n.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}var c=this,f=c.options,d=f.dataLabels,e=c.points,l,n,p=c.hasRendered||0,v,w,y=k(d.defer,!!f.animation),A=c.chart.renderer;if(d.enabled||c._hasPointLabels)c.dlProcessOptions&&c.dlProcessOptions(d),w=c.plotGroup("dataLabelsGroup","data-labels",y&&!p?"hidden":"visible",d.zIndex||6),y&&(w.attr({opacity:+p}),p||x(c,"afterAnimate",function(){c.visible&&w.show(!0);w[f.animation?"animate":"attr"]({opacity:1},{duration:200})})),n=d,g(e,function(f){var e,
|
|
h=f.dataLabel,g,m,p=f.connector,E=!h,y;l=f.dlOptions||f.options&&f.options.dataLabels;(e=k(l&&l.enabled,n.enabled)&&!f.isNull)&&(e=!0===b(f,l||d));e&&(d=q(n,l),g=f.getLabelConfig(),y=d[f.formatPrefix+"Format"]||d.format,v=z(y)?r(y,g):(d[f.formatPrefix+"Formatter"]||d.formatter).call(g,d),g=d.rotation,m={r:d.borderRadius||0,rotation:g,padding:d.padding,zIndex:1},a.objectEach(m,function(a,b){void 0===a&&delete m[b]}));!h||e&&z(v)?e&&z(v)&&(h?m.text=v:(h=f.dataLabel=g?A.text(v,0,-9999).addClass("highcharts-data-label"):
|
|
A.label(v,0,-9999,d.shape,null,null,d.useHTML,null,"data-label"),h.addClass(" highcharts-data-label-color-"+f.colorIndex+" "+(d.className||"")+(d.useHTML?"highcharts-tracker":""))),h.attr(m),h.added||h.add(w),c.alignDataLabel(f,h,d,null,E)):(f.dataLabel=h=h.destroy(),p&&(f.connector=p.destroy()))})};n.prototype.alignDataLabel=function(a,c,f,d,g){var b=this.chart,h=b.inverted,m=k(a.dlBox&&a.dlBox.centerX,a.plotX,-9999),l=k(a.plotY,-9999),n=c.getBBox(),p,r=f.rotation,q=f.align,w=this.visible&&(a.series.forceDL||
|
|
b.isInsidePlot(m,Math.round(l),h)||d&&b.isInsidePlot(m,h?d.x+1:d.y+d.height-1,h)),t="justify"===k(f.overflow,"justify");if(w&&(p=b.renderer.fontMetrics(void 0,c).b,d=e({x:h?this.yAxis.len-l:m,y:Math.round(h?this.xAxis.len-m:l),width:0,height:0},d),e(f,{width:n.width,height:n.height}),r?(t=!1,m=b.renderer.rotCorr(p,r),m={x:d.x+f.x+d.width/2+m.x,y:d.y+f.y+{top:0,middle:.5,bottom:1}[f.verticalAlign]*d.height},c[g?"attr":"animate"](m).attr({align:q}),l=(r+720)%360,l=180<l&&360>l,"left"===q?m.y-=l?n.height:
|
|
0:"center"===q?(m.x-=n.width/2,m.y-=n.height/2):"right"===q&&(m.x-=n.width,m.y-=l?0:n.height)):(c.align(f,null,d),m=c.alignAttr),t?a.isLabelJustified=this.justifyDataLabel(c,f,m,n,d,g):k(f.crop,!0)&&(w=b.isInsidePlot(m.x,m.y)&&b.isInsidePlot(m.x+n.width,m.y+n.height)),f.shape&&!r))c[g?"attr":"animate"]({anchorX:h?b.plotWidth-a.plotY:a.plotX,anchorY:h?b.plotHeight-a.plotX:a.plotY});w||(c.attr({y:-9999}),c.placed=!1)};n.prototype.justifyDataLabel=function(a,c,f,d,e,g){var b=this.chart,h=c.align,k=c.verticalAlign,
|
|
m,l,n=a.box?0:a.padding||0;m=f.x+n;0>m&&("right"===h?c.align="left":c.x=-m,l=!0);m=f.x+d.width-n;m>b.plotWidth&&("left"===h?c.align="right":c.x=b.plotWidth-m,l=!0);m=f.y+n;0>m&&("bottom"===k?c.verticalAlign="top":c.y=-m,l=!0);m=f.y+d.height-n;m>b.plotHeight&&("top"===k?c.verticalAlign="bottom":c.y=b.plotHeight-m,l=!0);l&&(a.placed=!g,a.align(c,null,e));return l};w.pie&&(w.pie.prototype.drawDataLabels=function(){var b=this,c=b.data,f,d=b.chart,e=b.options.dataLabels,l=k(e.connectorPadding,10),p=k(e.connectorWidth,
|
|
1),r=d.plotWidth,v=d.plotHeight,q,w=b.center,A=w[2]/2,D=w[1],x,t,u,N,G=[[],[]],C,H,P,Q,O=[0,0,0,0];b.visible&&(e.enabled||b._hasPointLabels)&&(g(c,function(a){a.dataLabel&&a.visible&&a.dataLabel.shortened&&(a.dataLabel.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),a.dataLabel.shortened=!1)}),n.prototype.drawDataLabels.apply(b),g(c,function(a){a.dataLabel&&a.visible&&(G[a.half].push(a),a.dataLabel._pos=null)}),g(G,function(c,h){var m,n,p=c.length,q=[],E;if(p)for(b.sortByAngle(c,h-.5),
|
|
0<b.maxLabelDistance&&(m=Math.max(0,D-A-b.maxLabelDistance),n=Math.min(D+A+b.maxLabelDistance,d.plotHeight),g(c,function(a){0<a.labelDistance&&a.dataLabel&&(a.top=Math.max(0,D-A-a.labelDistance),a.bottom=Math.min(D+A+a.labelDistance,d.plotHeight),E=a.dataLabel.getBBox().height||21,a.positionsIndex=q.push({target:a.labelPos[1]-a.top+E/2,size:E,rank:a.y})-1)}),a.distribute(q,n+E-m)),Q=0;Q<p;Q++)f=c[Q],n=f.positionsIndex,u=f.labelPos,x=f.dataLabel,P=!1===f.visible?"hidden":"inherit",H=m=u[1],q&&z(q[n])&&
|
|
(void 0===q[n].pos?P="hidden":(N=q[n].size,H=f.top+q[n].pos)),delete f.positionIndex,C=e.justify?w[0]+(h?-1:1)*(A+f.labelDistance):b.getX(H<f.top+2||H>f.bottom-2?m:H,h,f),x._attr={visibility:P,align:u[6]},x._pos={x:C+e.x+({left:l,right:-l}[u[6]]||0),y:H+e.y-10},u.x=C,u.y=H,k(e.crop,!0)&&(t=x.getBBox().width,m=null,C-t<l?(m=Math.round(t-C+l),O[3]=Math.max(m,O[3])):C+t>r-l&&(m=Math.round(C+t-r+l),O[1]=Math.max(m,O[1])),0>H-N/2?O[0]=Math.max(Math.round(-H+N/2),O[0]):H+N/2>v&&(O[2]=Math.max(Math.round(H+
|
|
N/2-v),O[2])),x.sideOverflow=m)}),0===B(O)||this.verifyDataLabelOverflow(O))&&(this.placeDataLabels(),p&&g(this.points,function(a){var c;q=a.connector;if((x=a.dataLabel)&&x._pos&&a.visible&&0<a.labelDistance){P=x._attr.visibility;if(c=!q)a.connector=q=d.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+a.colorIndex).add(b.dataLabelsGroup);q[c?"attr":"animate"]({d:b.connectorPath(a.labelPos)});q.attr("visibility",P)}else q&&(a.connector=q.destroy())}))},w.pie.prototype.connectorPath=
|
|
function(a){var b=a.x,f=a.y;return k(this.options.dataLabels.softConnector,!0)?["M",b+("left"===a[6]?5:-5),f,"C",b,f,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),f,"L",a[2],a[3],"L",a[4],a[5]]},w.pie.prototype.placeDataLabels=function(){g(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:"ellipsis"}),b.shortened=!0),b.attr(b._attr),b[b.moved?
|
|
"animate":"attr"](a),b.moved=!0):b&&b.attr({y:-9999}))},this)},w.pie.prototype.alignDataLabel=p,w.pie.prototype.verifyDataLabelOverflow=function(a){var b=this.center,f=this.options,e=f.center,g=f.minSize||80,k,l=null!==f.size;l||(null!==e[0]?k=Math.max(b[2]-Math.max(a[1],a[3]),g):(k=Math.max(b[2]-a[1]-a[3],g),b[0]+=(a[3]-a[1])/2),null!==e[1]?k=Math.max(Math.min(k,b[2]-Math.max(a[0],a[2])),g):(k=Math.max(Math.min(k,b[2]-a[0]-a[2]),g),b[1]+=(a[0]-a[2])/2),k<b[2]?(b[2]=k,b[3]=Math.min(d(f.innerSize||
|
|
0,k),k),this.translate(b),this.drawDataLabels&&this.drawDataLabels()):l=!0);return l});w.column&&(w.column.prototype.alignDataLabel=function(a,c,f,d,e){var b=this.chart.inverted,h=a.series,g=a.dlBox||a.shapeArgs,m=k(a.below,a.plotY>k(this.translatedThreshold,h.yAxis.len)),l=k(f.inside,!!this.options.stacking);g&&(d=q(g),0>d.y&&(d.height+=d.y,d.y=0),g=d.y+d.height-h.yAxis.len,0<g&&(d.height-=g),b&&(d={x:h.yAxis.len-d.y-d.height,y:h.xAxis.len-d.x-d.width,width:d.height,height:d.width}),l||(b?(d.x+=
|
|
m?0:d.width,d.width=0):(d.y+=m?d.height:0,d.height=0)));f.align=k(f.align,!b||l?"center":m?"right":"left");f.verticalAlign=k(f.verticalAlign,b||l?"middle":m?"top":"bottom");n.prototype.alignDataLabel.call(this,a,c,f,d,e);a.isLabelJustified&&a.contrastColor&&a.dataLabel.css({color:a.contrastColor})})})(H);(function(a){var x=a.Chart,B=a.each,z=a.objectEach,g=a.pick;a=a.addEvent;a(x.prototype,"render",function(){var a=[];B(this.labelCollectors||[],function(e){a=a.concat(e())});B(this.yAxis||[],function(e){e.options.stackLabels&&
|
|
!e.options.stackLabels.allowOverlap&&z(e.stacks,function(e){z(e,function(e){a.push(e.label)})})});B(this.series||[],function(e){var l=e.options.dataLabels,r=e.dataLabelCollections||["dataLabel"];(l.enabled||e._hasPointLabels)&&!l.allowOverlap&&e.visible&&B(r,function(l){B(e.points,function(e){e[l]&&(e[l].labelrank=g(e.labelrank,e.shapeArgs&&e.shapeArgs.height),a.push(e[l]))})})});this.hideOverlappingLabels(a)});x.prototype.hideOverlappingLabels=function(a){var e=a.length,g,q,p,k,d,n,w,f,b,c=function(a,
|
|
b,c,f,d,e,g,k){return!(d>a+c||d+g<a||e>b+f||e+k<b)};for(q=0;q<e;q++)if(g=a[q])g.oldOpacity=g.opacity,g.newOpacity=1,g.width||(p=g.getBBox(),g.width=p.width,g.height=p.height);a.sort(function(a,b){return(b.labelrank||0)-(a.labelrank||0)});for(q=0;q<e;q++)for(p=a[q],g=q+1;g<e;++g)if(k=a[g],p&&k&&p!==k&&p.placed&&k.placed&&0!==p.newOpacity&&0!==k.newOpacity&&(d=p.alignAttr,n=k.alignAttr,w=p.parentGroup,f=k.parentGroup,b=2*(p.box?0:p.padding||0),d=c(d.x+w.translateX,d.y+w.translateY,p.width-b,p.height-
|
|
b,n.x+f.translateX,n.y+f.translateY,k.width-b,k.height-b)))(p.labelrank<k.labelrank?p:k).newOpacity=0;B(a,function(a){var b,c;a&&(c=a.newOpacity,a.oldOpacity!==c&&a.placed&&(c?a.show(!0):b=function(){a.hide()},a.alignAttr.opacity=c,a[a.isOld?"animate":"attr"](a.alignAttr,null,b)),a.isOld=!0)})}})(H);(function(a){var x=a.addEvent,B=a.Chart,z=a.createElement,g=a.css,e=a.defaultOptions,r=a.defaultPlotOptions,l=a.each,q=a.extend,p=a.fireEvent,k=a.hasTouch,d=a.inArray,n=a.isObject,w=a.Legend,f=a.merge,
|
|
b=a.pick,c=a.Point,h=a.Series,m=a.seriesTypes,F=a.svg,I;I=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))};l(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||(l(a.trackerGroups,function(f){if(a[f]&&(a[f].addClass("highcharts-tracker").on("mouseover",c).on("mouseout",function(a){b.onTrackerMouseOut(a)}),
|
|
k))a[f].on("touchstart",c)}),a._hasTracking=!0)},drawTrackerGraph:function(){var a=this,b=a.options.trackByArea,c=[].concat(b?a.areaPath:a.graphPath),f=c.length,d=a.chart,e=d.pointer,h=d.renderer,g=d.options.tooltip.snap,m=a.tracker,n,p=function(){if(d.hoverSeries!==a)a.onMouseOver()},r="rgba(192,192,192,"+(F?.0001:.002)+")";if(f&&!b)for(n=f+1;n--;)"M"===c[n]&&c.splice(n+1,0,c[n+1]-g,c[n+2],"L"),(n&&"M"===c[n]||n===f)&&c.splice(n,0,"L",c[n-2]+g,c[n-1]);m?m.attr({d:c}):a.graph&&(a.tracker=h.path(c).attr({"stroke-linejoin":"round",
|
|
visibility:a.visible?"visible":"hidden",stroke:r,fill:b?r:"none","stroke-width":a.graph.strokeWidth()+(b?0:2*g),zIndex:2}).add(a.group),l([a.tracker,a.markerGroup],function(a){a.addClass("highcharts-tracker").on("mouseover",p).on("mouseout",function(a){e.onTrackerMouseOut(a)});if(k)a.on("touchstart",p)}))}};m.column&&(m.column.prototype.drawTracker=I.drawTrackerPoint);m.pie&&(m.pie.prototype.drawTracker=I.drawTrackerPoint);m.scatter&&(m.scatter.prototype.drawTracker=I.drawTrackerPoint);q(w.prototype,
|
|
{setItemEvents:function(a,b,f){var d=this.chart.renderer.boxWrapper,e="highcharts-legend-"+(a instanceof c?"point":"series")+"-active";(f?b:a.legendGroup).on("mouseover",function(){a.setState("hover");d.addClass(e)}).on("mouseout",function(){d.removeClass(e);a.setState()}).on("click",function(b){var c=function(){a.setVisible&&a.setVisible()};d.removeClass(e);b={browserEvent:b};a.firePointEvent?a.firePointEvent("legendItemClick",b,c):p(a,"legendItemClick",b,c)})},createCheckboxForItem:function(a){a.checkbox=
|
|
z("input",{type:"checkbox",checked:a.selected,defaultChecked:a.selected},this.options.itemCheckboxStyle,this.chart.container);x(a.checkbox,"click",function(b){p(a.series||a,"checkboxClick",{checked:b.target.checked,item:a},function(){a.select()})})}});q(B.prototype,{showResetZoom:function(){var a=this,b=e.lang,c=a.options.chart.resetZoomButton,f=c.theme,d=f.states,h="chart"===c.relativeTo?null:"plotBox";this.resetZoomButton=a.renderer.button(b.resetZoom,null,null,function(){a.zoomOut()},f,d&&d.hover).attr({align:c.position.align,
|
|
title:b.resetZoomTitle}).addClass("highcharts-reset-zoom").add().align(c.position,!1,h)},zoomOut:function(){var a=this;p(a,"selection",{resetSelection:!0},function(){a.zoom()})},zoom:function(a){var c,f=this.pointer,d=!1,e;!a||a.resetSelection?(l(this.axes,function(a){c=a.zoom()}),f.initiated=!1):l(a.xAxis.concat(a.yAxis),function(a){var b=a.axis;f[b.isXAxis?"zoomX":"zoomY"]&&(c=b.zoom(a.min,a.max),b.displayBtn&&(d=!0))});e=this.resetZoomButton;d&&!e?this.showResetZoom():!d&&n(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,f=c.hoverPoints,d;f&&l(f,function(a){a.setState()});l("xy"===b?[1,0]:[1],function(b){b=c[b?"xAxis":"yAxis"][0];var f=b.horiz,e=a[f?"chartX":"chartY"],f=f?"mouseDownX":"mouseDownY",h=c[f],g=(b.pointRange||0)/2,k=b.getExtremes(),m=b.toValue(h-e,!0)+g,l=b.toValue(h+b.len-e,!0)-g,n=l<m,h=n?l:m,m=n?m:l,l=Math.min(k.dataMin,g?k.min:b.toValue(b.toPixels(k.min)-b.minPixelPadding)),
|
|
g=Math.max(k.dataMax,g?k.max:b.toValue(b.toPixels(k.max)+b.minPixelPadding)),n=l-h;0<n&&(m+=n,h=l);n=m-g;0<n&&(m=g,h-=n);b.series.length&&h!==k.min&&m!==k.max&&(b.setExtremes(h,m,!1,!1,{trigger:"pan"}),d=!0);c[f]=e});d&&c.redraw(!1);g(c.container,{cursor:"move"})}});q(c.prototype,{select:function(a,c){var f=this,e=f.series,h=e.chart;a=b(a,!f.selected);f.firePointEvent(a?"select":"unselect",{accumulate:c},function(){f.selected=f.options.selected=a;e.options.data[d(f,e.data)]=f.options;f.setState(a&&
|
|
"select");c||l(h.getSelectedPoints(),function(a){a.selected&&a!==f&&(a.selected=a.options.selected=!1,e.options.data[d(a,e.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");l(a.hoverPoints||[],function(a){a.setState()});a.hoverPoints=a.hoverPoint=null},
|
|
importEvents:function(){if(!this.hasImportedEvents){var b=this,c=f(b.series.options.point,b.options).events;b.events=c;a.objectEach(c,function(a,c){x(b,c,a)});this.hasImportedEvents=!0}},setState:function(a,c){var f=Math.floor(this.plotX),d=this.plotY,e=this.series,h=e.options.states[a]||{},g=r[e.type].marker&&e.options.marker,k=g&&!1===g.enabled,m=g&&g.states&&g.states[a]||{},l=!1===m.enabled,n=e.stateMarkerGraphic,p=this.marker||{},q=e.chart,w=e.halo,E,F=g&&e.markerAttribs;a=a||"";if(!(a===this.state&&
|
|
!c||this.selected&&"select"!==a||!1===h.enabled||a&&(l||k&&!1===m.enabled)||a&&p.states&&p.states[a]&&!1===p.states[a].enabled)){F&&(E=e.markerAttribs(this,a));if(this.graphic)this.state&&this.graphic.removeClass("highcharts-point-"+this.state),a&&this.graphic.addClass("highcharts-point-"+a),E&&this.graphic.animate(E,b(q.options.chart.animation,m.animation,g.animation)),n&&n.hide();else{if(a&&m)if(g=p.symbol||e.symbol,n&&n.currentSymbol!==g&&(n=n.destroy()),n)n[c?"animate":"attr"]({x:E.x,y:E.y});
|
|
else g&&(e.stateMarkerGraphic=n=q.renderer.symbol(g,E.x,E.y,E.width,E.height).add(e.markerGroup),n.currentSymbol=g);n&&(n[a&&q.isInsidePlot(f,d,q.inverted)?"show":"hide"](),n.element.point=this)}(f=h.halo)&&f.size?(w||(e.halo=w=q.renderer.path().add((this.graphic||n).parentGroup)),w[c?"animate":"attr"]({d:this.haloPath(f.size)}),w.attr({"class":"highcharts-halo highcharts-color-"+b(this.colorIndex,e.colorIndex)}),w.point=this):w&&w.point&&w.point.haloPath&&w.animate({d:w.point.haloPath(0)});this.state=
|
|
a}},haloPath:function(a){return this.series.chart.renderer.symbols.circle(Math.floor(this.plotX)-a,this.plotY-a,2*a,2*a)}});q(h.prototype,{onMouseOver:function(){var a=this.chart,b=a.hoverSeries;if(b&&b!==this)b.onMouseOut();this.options.events.mouseOver&&p(this,"mouseOver");this.setState("hover");a.hoverSeries=this},onMouseOut:function(){var a=this.options,b=this.chart,c=b.tooltip,f=b.hoverPoint;b.hoverSeries=null;if(f)f.onMouseOut();this&&a.events.mouseOut&&p(this,"mouseOut");!c||this.stickyTracking||
|
|
c.shared&&!this.noSharedTooltip||c.hide();this.setState()},setState:function(a){var b=this;a=a||"";b.state!==a&&(l([b.group,b.markerGroup,b.dataLabelsGroup],function(c){c&&(b.state&&c.removeClass("highcharts-series-"+b.state),a&&c.addClass("highcharts-series-"+a))}),b.state=a)},setVisible:function(a,b){var c=this,f=c.chart,d=c.legendItem,e,h=f.options.chart.ignoreHiddenSeries,g=c.visible;e=(c.visible=a=c.options.visible=c.userOptions.visible=void 0===a?!g:a)?"show":"hide";l(["group","dataLabelsGroup",
|
|
"markerGroup","tracker","tt"],function(a){if(c[a])c[a][e]()});if(f.hoverSeries===c||(f.hoverPoint&&f.hoverPoint.series)===c)c.onMouseOut();d&&f.legend.colorizeItem(c,a);c.isDirty=!0;c.options.stacking&&l(f.series,function(a){a.options.stacking&&a.visible&&(a.isDirty=!0)});l(c.linkedSeries,function(b){b.setVisible(a,!1)});h&&(f.isDirtyBox=!0);!1!==b&&f.redraw();p(c,e)},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);p(this,a?"select":"unselect")},drawTracker:I.drawTrackerGraph})})(H);(function(a){var x=a.Chart,B=a.each,z=a.inArray,g=a.isArray,e=a.isObject,r=a.pick,l=a.splat;x.prototype.setResponsive=function(e){var g=this.options.responsive,k=[],d=this.currentResponsive;g&&g.rules&&B(g.rules,function(d){void 0===d._id&&(d._id=a.uniqueKey());this.matchResponsiveRule(d,k,e)},this);var n=a.merge.apply(0,a.map(k,function(d){return a.find(g.rules,function(a){return a._id===
|
|
d}).chartOptions})),k=k.toString()||void 0;k!==(d&&d.ruleIds)&&(d&&this.update(d.undoOptions,e),k?(this.currentResponsive={ruleIds:k,mergedOptions:n,undoOptions:this.currentOptions(n)},this.update(n,e)):this.currentResponsive=void 0)};x.prototype.matchResponsiveRule=function(a,e){var g=a.condition;(g.callback||function(){return this.chartWidth<=r(g.maxWidth,Number.MAX_VALUE)&&this.chartHeight<=r(g.maxHeight,Number.MAX_VALUE)&&this.chartWidth>=r(g.minWidth,0)&&this.chartHeight>=r(g.minHeight,0)}).call(this)&&
|
|
e.push(a._id)};x.prototype.currentOptions=function(r){function p(d,k,r,f){var b;a.objectEach(d,function(a,d){if(!f&&-1<z(d,["series","xAxis","yAxis"]))for(a=l(a),r[d]=[],b=0;b<a.length;b++)k[d][b]&&(r[d][b]={},p(a[b],k[d][b],r[d][b],f+1));else e(a)?(r[d]=g(a)?[]:{},p(a,k[d]||{},r[d],f+1)):r[d]=k[d]||null})}var k={};p(r,this.options,k,0);return k}})(H);(function(a){var x=a.Axis,B=a.each,z=a.pick;a=a.wrap;a(x.prototype,"getSeriesExtremes",function(a){var e=this.isXAxis,g,l,q=[],p;e&&B(this.series,function(a,
|
|
d){a.useMapGeometry&&(q[d]=a.xData,a.xData=[])});a.call(this);e&&(g=z(this.dataMin,Number.MAX_VALUE),l=z(this.dataMax,-Number.MAX_VALUE),B(this.series,function(a,d){a.useMapGeometry&&(g=Math.min(g,z(a.minX,g)),l=Math.max(l,z(a.maxX,l)),a.xData=q[d],p=!0)}),p&&(this.dataMin=g,this.dataMax=l))});a(x.prototype,"setAxisTranslation",function(a){var e=this.chart,g=e.plotWidth/e.plotHeight,e=e.xAxis[0],l;a.call(this);"yAxis"===this.coll&&void 0!==e.transA&&B(this.series,function(a){a.preserveAspectRatio&&
|
|
(l=!0)});if(l&&(this.transA=e.transA=Math.min(this.transA,e.transA),a=g/((e.max-e.min)/(this.max-this.min)),a=1>a?this:e,g=(a.max-a.min)*a.transA,a.pixelPadding=a.len-g,a.minPixelPadding=a.pixelPadding/2,g=a.fixTo)){g=g[1]-a.toValue(g[0],!0);g*=a.transA;if(Math.abs(g)>a.minPixelPadding||a.min===a.dataMin&&a.max===a.dataMax)g=0;a.minPixelPadding-=g}});a(x.prototype,"render",function(a){a.call(this);this.fixTo=null})})(H);(function(a){var x=a.Axis,B=a.Chart,z=a.color,g,e=a.each,r=a.extend,l=a.isNumber,
|
|
q=a.Legend,p=a.LegendSymbolMixin,k=a.noop,d=a.merge,n=a.pick,w=a.wrap;a.ColorAxis||(g=a.ColorAxis=function(){this.init.apply(this,arguments)},r(g.prototype,x.prototype),r(g.prototype,{defaultColorAxisOptions:{lineWidth:0,minPadding:0,maxPadding:0,gridLineWidth:1,tickPixelInterval:72,startOnTick:!0,endOnTick:!0,offset:0,marker:{animation:{duration:50},width:.01},labels:{overflow:"justify",rotation:0},minColor:"#e6ebf5",maxColor:"#003399",tickLength:5,showInLegend:!0},keepProps:["legendGroup","legendItemHeight",
|
|
"legendItemWidth","legendItem","legendSymbol"].concat(x.prototype.keepProps),init:function(a,b){var c="vertical"!==a.options.legend.layout,f;this.coll="colorAxis";f=d(this.defaultColorAxisOptions,{side:c?2:1,reversed:!c},b,{opposite:!c,showEmpty:!1,title:null,visible:a.options.legend.enabled});x.prototype.init.call(this,a,f);b.dataClasses&&this.initDataClasses(b);this.initStops();this.horiz=c;this.zoomEnabled=!1;this.defaultLegendLength=200},initDataClasses:function(a){var b,c=0,f=this.chart.options.chart.colorCount,
|
|
g=this.options,k=a.dataClasses.length;this.dataClasses=b=[];this.legendItems=[];e(a.dataClasses,function(a,e){a=d(a);b.push(a);"category"===g.dataClassColor?(a.colorIndex=c,c++,c===f&&(c=0)):a.color=z(g.minColor).tweenTo(z(g.maxColor),2>k?.5:e/(k-1))})},setTickPositions:function(){if(!this.dataClasses)return x.prototype.setTickPositions.call(this)},initStops:function(){this.stops=this.options.stops||[[0,this.options.minColor],[1,this.options.maxColor]];e(this.stops,function(a){a.color=z(a[1])})},
|
|
setOptions:function(a){x.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,f,d,e=this.dataClasses,g,k;if(e)for(k=e.length;k--;){if(g=e[k],f=g.from,c=g.to,(void 0===f||a>=f)&&(void 0===c||a<=c)){b&&(b.dataClass=k,b.colorIndex=g.colorIndex);break}}else{a=this.normalizedValue(a);for(k=c.length;k--&&!(a>c[k][0]););f=c[k]||c[k+1];c=c[k+1]||f;a=1-(c[0]-a)/(c[0]-f[0]||1);d=f.color.tweenTo(c.color,a)}return d},getOffset:function(){var a=this.legendGroup,b=this.chart.axisOffset[this.side];
|
|
a&&(this.axisParent=a,x.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,f=a.options,d=this.horiz,e=n(f.symbolWidth,d?this.defaultLegendLength:12),g=n(f.symbolHeight,d?12:this.defaultLegendLength),
|
|
k=n(f.labelPadding,d?16:30),f=n(f.itemDistance,10);this.setLegendColor();b.legendSymbol=this.chart.renderer.rect(0,a.baseline-11,e,g).attr({zIndex:1}).add(b.legendGroup);this.legendItemWidth=e+c+(d?f:k);this.legendItemHeight=g+c+(d?k:0)},setState:function(a){e(this.series,function(b){b.setState(a)})},visible:!0,setVisible:k,getSeriesExtremes:function(){var a=this.series,b=a.length;this.dataMin=Infinity;for(this.dataMax=-Infinity;b--;)void 0!==a[b].valueMin&&(this.dataMin=Math.min(this.dataMin,a[b].valueMin),
|
|
this.dataMax=Math.max(this.dataMax,a[b].valueMax))},drawCrosshair:function(a,b){var c=b&&b.plotX,f=b&&b.plotY,d,e=this.pos,g=this.len;b&&(d=this.toPixels(b[b.series.colorKey]),d<e?d=e-2:d>e+g&&(d=e+g+2),b.plotX=d,b.plotY=this.len-d,x.prototype.drawCrosshair.call(this,a,b),b.plotX=c,b.plotY=f,this.cross&&!this.cross.addedToColorAxis&&this.legendGroup&&(this.cross.addClass("highcharts-coloraxis-marker").add(this.legendGroup),this.cross.addedToColorAxis=!0))},getPlotLinePath:function(a,b,c,d,e){return l(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"]:x.prototype.getPlotLinePath.call(this,a,b,c,d)},update:function(a,b){var c=this.chart,f=c.legend;e(this.series,function(a){a.isDirtyData=!0});a.dataClasses&&f.allItems&&(e(f.allItems,function(a){a.isDataClass&&a.legendGroup&&a.legendGroup.destroy()}),c.isDirtyLegend=!0);c.options[this.coll]=d(this.userOptions,a);x.prototype.update.call(this,a,b);this.legendItem&&(this.setLegendColor(),
|
|
f.colorizeItem(this,!0))},remove:function(){this.legendItem&&this.chart.legend.destroyItem(this);x.prototype.remove.call(this)},getDataClassLegendSymbols:function(){var f=this,b=this.chart,c=this.legendItems,d=b.options.legend,g=d.valueDecimals,n=d.valueSuffix||"",l;c.length||e(this.dataClasses,function(d,h){var m=!0,q=d.from,w=d.to;l="";void 0===q?l="\x3c ":void 0===w&&(l="\x3e ");void 0!==q&&(l+=a.numberFormat(q,g)+n);void 0!==q&&void 0!==w&&(l+=" - ");void 0!==w&&(l+=a.numberFormat(w,g)+n);c.push(r({chart:b,
|
|
name:l,options:{},drawLegendSymbol:p.drawRectangle,visible:!0,setState:k,isDataClass:!0,setVisible:function(){m=this.visible=!m;e(f.series,function(a){e(a.points,function(a){a.dataClass===h&&a.setVisible(m)})});b.legend.colorizeItem(this,m)}},d))});return c},name:""}),e(["fill","stroke"],function(f){a.Fx.prototype[f+"Setter"]=function(){this.elem.attr(f,z(this.start).tweenTo(z(this.end),this.pos),null,!0)}}),w(B.prototype,"getAxes",function(a){var b=this.options.colorAxis;a.call(this);this.colorAxis=
|
|
[];b&&new g(this,b)}),w(q.prototype,"getAllItems",function(a){var b=[],c=this.chart.colorAxis[0];c&&c.options&&(c.options.showInLegend&&(c.options.dataClasses?b=b.concat(c.getDataClassLegendSymbols()):b.push(c)),e(c.series,function(a){a.options.showInLegend=!1}));return b.concat(a.call(this))}),w(q.prototype,"colorizeItem",function(a,b,c){a.call(this,b,c);c&&b.legendColor&&b.legendSymbol.attr({fill:b.legendColor})}),w(q.prototype,"update",function(a){a.apply(this,[].slice.call(arguments,1));this.chart.colorAxis[0]&&
|
|
this.chart.colorAxis[0].update({},arguments[2])}))})(H);(function(a){var x=a.defined,B=a.each,z=a.noop;a.colorPointMixin={isValid:function(){return null!==this.value&&Infinity!==this.value&&-Infinity!==this.value},setVisible:function(a){var e=this,g=a?"show":"hide";B(["graphic","dataLabel"],function(a){if(e[a])e[a][g]()})},setState:function(g){a.Point.prototype.setState.call(this,g);this.graphic&&this.graphic.attr({zIndex:"hover"===g?1:0})}};a.colorSeriesMixin={pointArrayMap:["value"],axisTypes:["xAxis",
|
|
"yAxis","colorAxis"],optionalAxis:"colorAxis",trackerGroups:["group","markerGroup","dataLabelsGroup"],getSymbol:z,parallelArrays:["x","y","value"],colorKey:"value",translateColors:function(){var a=this,e=this.options.nullColor,r=this.colorAxis,l=this.colorKey;B(this.data,function(g){var p=g[l];if(p=g.options.color||(g.isNull?e:r&&void 0!==p?r.toColor(p,g):g.color||a.color))g.color=p})},colorAttribs:function(a){var e={};x(a.color)&&(e[this.colorProp||"fill"]=a.color);return e}}})(H);(function(a){function x(a){a&&
|
|
(a.preventDefault&&a.preventDefault(),a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)}function B(a){this.init(a)}var z=a.addEvent,g=a.Chart,e=a.doc,r=a.each,l=a.extend,q=a.merge,p=a.pick,k=a.wrap;B.prototype.init=function(a){this.chart=a;a.mapNavButtons=[]};B.prototype.update=function(d){var e=this.chart,g=e.options.mapNavigation,f,b=function(a){this.handler.call(e,a);x(a)},c=e.mapNavButtons;d&&(g=e.options.mapNavigation=q(e.options.mapNavigation,d));for(;c.length;)c.pop().destroy();p(g.enableButtons,
|
|
g.enabled)&&!e.renderer.forExport&&a.objectEach(g.buttons,function(a,d){f=q(g.buttonOptions,a);a=e.renderer.button(f.text,0,0,b,void 0,void 0,void 0,0,"zoomIn"===d?"topbutton":"bottombutton").addClass("highcharts-map-navigation").attr({width:f.width,height:f.height,title:e.options.lang[d],padding:f.padding,zIndex:5}).add();a.handler=f.onclick;a.align(l(f,{width:a.width,height:2*a.height}),null,f.alignTo);z(a.element,"dblclick",x);c.push(a)});this.updateEvents(g)};B.prototype.updateEvents=function(a){var d=
|
|
this.chart;p(a.enableDoubleClickZoom,a.enabled)||a.enableDoubleClickZoomTo?this.unbindDblClick=this.unbindDblClick||z(d.container,"dblclick",function(a){d.pointer.onContainerDblClick(a)}):this.unbindDblClick&&(this.unbindDblClick=this.unbindDblClick());p(a.enableMouseWheelZoom,a.enabled)?this.unbindMouseWheel=this.unbindMouseWheel||z(d.container,void 0===e.onmousewheel?"DOMMouseScroll":"mousewheel",function(a){d.pointer.onContainerMouseWheel(a);x(a);return!1}):this.unbindMouseWheel&&(this.unbindMouseWheel=
|
|
this.unbindMouseWheel())};l(g.prototype,{fitToBox:function(a,e){r([["x","width"],["y","height"]],function(d){var f=d[0];d=d[1];a[f]+a[d]>e[f]+e[d]&&(a[d]>e[d]?(a[d]=e[d],a[f]=e[f]):a[f]=e[f]+e[d]-a[d]);a[d]>e[d]&&(a[d]=e[d]);a[f]<e[f]&&(a[f]=e[f])});return a},mapZoom:function(a,e,g,f,b){var c=this.xAxis[0],d=c.max-c.min,k=p(e,c.min+d/2),l=d*a,d=this.yAxis[0],n=d.max-d.min,r=p(g,d.min+n/2),n=n*a,k=this.fitToBox({x:k-l*(f?(f-c.pos)/c.len:.5),y:r-n*(b?(b-d.pos)/d.len:.5),width:l,height:n},{x:c.dataMin,
|
|
y:d.dataMin,width:c.dataMax-c.dataMin,height:d.dataMax-d.dataMin}),l=k.x<=c.dataMin&&k.width>=c.dataMax-c.dataMin&&k.y<=d.dataMin&&k.height>=d.dataMax-d.dataMin;f&&(c.fixTo=[f-c.pos,e]);b&&(d.fixTo=[b-d.pos,g]);void 0===a||l?(c.setExtremes(void 0,void 0,!1),d.setExtremes(void 0,void 0,!1)):(c.setExtremes(k.x,k.x+k.width,!1),d.setExtremes(k.y,k.y+k.height,!1));this.redraw()}});k(g.prototype,"render",function(a){this.mapNavigation=new B(this);this.mapNavigation.update();a.call(this)})})(H);(function(a){var x=
|
|
a.extend,B=a.pick,z=a.Pointer;a=a.wrap;x(z.prototype,{onContainerDblClick:function(a){var e=this.chart;a=this.normalize(a);e.options.mapNavigation.enableDoubleClickZoomTo?e.pointer.inClass(a.target,"highcharts-tracker")&&e.hoverPoint&&e.hoverPoint.zoomTo():e.isInsidePlot(a.chartX-e.plotLeft,a.chartY-e.plotTop)&&e.mapZoom(.5,e.xAxis[0].toValue(a.chartX),e.yAxis[0].toValue(a.chartY),a.chartX,a.chartY)},onContainerMouseWheel:function(a){var e=this.chart,g;a=this.normalize(a);g=a.detail||-(a.wheelDelta/
|
|
120);e.isInsidePlot(a.chartX-e.plotLeft,a.chartY-e.plotTop)&&e.mapZoom(Math.pow(e.options.mapNavigation.mouseWheelSensitivity,g),e.xAxis[0].toValue(a.chartX),e.yAxis[0].toValue(a.chartY),a.chartX,a.chartY)}});a(z.prototype,"zoomOption",function(a){var e=this.chart.options.mapNavigation;B(e.enableTouchZoom,e.enabled)&&(this.chart.options.chart.pinchType="xy");a.apply(this,[].slice.call(arguments,1))});a(z.prototype,"pinchTranslate",function(a,e,r,l,q,p,k){a.call(this,e,r,l,q,p,k);"map"===this.chart.options.chart.type&&
|
|
this.hasZoom&&(a=l.scaleX>l.scaleY,this.pinchTranslateDirection(!a,e,r,l,q,p,k,a?l.scaleX:l.scaleY))})})(H);(function(a){var x=a.colorPointMixin,B=a.each,z=a.extend,g=a.isNumber,e=a.map,r=a.merge,l=a.noop,q=a.pick,p=a.isArray,k=a.Point,d=a.Series,n=a.seriesType,w=a.seriesTypes,f=a.splat,b=void 0!==a.doc.documentElement.style.vectorEffect;n("map","scatter",{allAreas:!0,animation:!1,nullColor:"#f7f7f7",borderColor:"#cccccc",borderWidth:1,marker:null,stickyTracking:!1,joinBy:"hc-key",dataLabels:{formatter:function(){return this.point.value},
|
|
inside:!0,verticalAlign:"middle",crop:!1,overflow:!1,padding:0},turboThreshold:0,tooltip:{followPointer:!0,pointFormat:"{point.name}: {point.value}\x3cbr/\x3e"},states:{normal:{animation:!0},hover:{halo:null,brightness:.2},select:{color:"#cccccc"}}},r(a.colorSeriesMixin,{type:"map",getExtremesFromAll:!0,useMapGeometry:!0,forceDL:!0,searchPoint:l,directTouch:!0,preserveAspectRatio:!0,pointArrayMap:["value"],getBox:function(b){var c=Number.MAX_VALUE,d=-c,f=c,e=-c,k=c,l=c,n=this.xAxis,p=this.yAxis,r;
|
|
B(b||[],function(b){if(b.path){"string"===typeof b.path&&(b.path=a.splitPath(b.path));var h=b.path||[],m=h.length,n=!1,p=-c,v=c,w=-c,y=c,x=b.properties;if(!b._foundBox){for(;m--;)g(h[m])&&(n?(p=Math.max(p,h[m]),v=Math.min(v,h[m])):(w=Math.max(w,h[m]),y=Math.min(y,h[m])),n=!n);b._midX=v+(p-v)*q(b.middleX,x&&x["hc-middle-x"],.5);b._midY=y+(w-y)*q(b.middleY,x&&x["hc-middle-y"],.5);b._maxX=p;b._minX=v;b._maxY=w;b._minY=y;b.labelrank=q(b.labelrank,(p-v)*(w-y));b._foundBox=!0}d=Math.max(d,b._maxX);f=Math.min(f,
|
|
b._minX);e=Math.max(e,b._maxY);k=Math.min(k,b._minY);l=Math.min(b._maxX-b._minX,b._maxY-b._minY,l);r=!0}});r&&(this.minY=Math.min(k,q(this.minY,c)),this.maxY=Math.max(e,q(this.maxY,-c)),this.minX=Math.min(f,q(this.minX,c)),this.maxX=Math.max(d,q(this.maxX,-c)),n&&void 0===n.options.minRange&&(n.minRange=Math.min(5*l,(this.maxX-this.minX)/5,n.minRange||c)),p&&void 0===p.options.minRange&&(p.minRange=Math.min(5*l,(this.maxY-this.minY)/5,p.minRange||c)))},getExtremes:function(){d.prototype.getExtremes.call(this,
|
|
this.valueData);this.chart.hasRendered&&this.isDirtyData&&this.getBox(this.options.data);this.valueMin=this.dataMin;this.valueMax=this.dataMax;this.dataMin=this.minY;this.dataMax=this.maxY},translatePath:function(a){var b=!1,c=this.xAxis,d=this.yAxis,f=c.min,e=c.transA,c=c.minPixelPadding,k=d.min,l=d.transA,d=d.minPixelPadding,n,p=[];if(a)for(n=a.length;n--;)g(a[n])?(p[n]=b?(a[n]-f)*e+c:(a[n]-k)*l+d,b=!b):p[n]=a[n];return p},setData:function(b,h,k,l){var c=this.options,m=this.chart.options.chart,
|
|
n=m&&m.map,q=c.mapData,w=c.joinBy,y=null===w,x=c.keys||this.pointArrayMap,D=[],z={},t=this.chart.mapTransforms;!q&&n&&(q="string"===typeof n?a.maps[n]:n);y&&(w="_i");w=this.joinBy=f(w);w[1]||(w[1]=w[0]);b&&B(b,function(a,d){var f=0;if(g(a))b[d]={value:a};else if(p(a)){b[d]={};!c.keys&&a.length>x.length&&"string"===typeof a[0]&&(b[d]["hc-key"]=a[0],++f);for(var e=0;e<x.length;++e,++f)x[e]&&(b[d][x[e]]=a[f])}y&&(b[d]._i=d)});this.getBox(b);(this.chart.mapTransforms=t=m&&m.mapTransforms||q&&q["hc-transform"]||
|
|
t)&&a.objectEach(t,function(a){a.rotation&&(a.cosAngle=Math.cos(a.rotation),a.sinAngle=Math.sin(a.rotation))});if(q){"FeatureCollection"===q.type&&(this.mapTitle=q.title,q=a.geojson(q,this.type,this));this.mapData=q;this.mapMap={};for(t=0;t<q.length;t++)m=q[t],n=m.properties,m._i=t,w[0]&&n&&n[w[0]]&&(m[w[0]]=n[w[0]]),z[m[w[0]]]=m;this.mapMap=z;b&&w[1]&&B(b,function(a){z[a[w[1]]]&&D.push(z[a[w[1]]])});c.allAreas?(this.getBox(q),b=b||[],w[1]&&B(b,function(a){D.push(a[w[1]])}),D="|"+e(D,function(a){return a&&
|
|
a[w[0]]}).join("|")+"|",B(q,function(a){w[0]&&-1!==D.indexOf("|"+a[w[0]]+"|")||(b.push(r(a,{value:null})),l=!1)})):this.getBox(D)}d.prototype.setData.call(this,b,h,k,l)},drawGraph:l,drawDataLabels:l,doFullTranslate:function(){return this.isDirtyData||this.chart.isResizing||this.chart.renderer.isVML||!this.baseTrans},translate:function(){var a=this,b=a.xAxis,d=a.yAxis,f=a.doFullTranslate();a.generatePoints();B(a.data,function(c){c.plotX=b.toPixels(c._midX,!0);c.plotY=d.toPixels(c._midY,!0);f&&(c.shapeType=
|
|
"path",c.shapeArgs={d:a.translatePath(c.path)})});a.translateColors()},pointAttribs:function(a,d){a=this.colorAttribs(a);b?a["vector-effect"]="non-scaling-stroke":a["stroke-width"]="inherit";return a},drawPoints:function(){var a=this,d=a.xAxis,f=a.yAxis,e=a.group,g=a.chart,k=g.renderer,l,n,p,q,r=this.baseTrans,x,z,t,u,H;a.transformGroup||(a.transformGroup=k.g().attr({scaleX:1,scaleY:1}).add(e),a.transformGroup.survive=!0);a.doFullTranslate()?(a.group=a.transformGroup,w.column.prototype.drawPoints.apply(a),
|
|
a.group=e,B(a.points,function(b){b.graphic&&(b.name&&b.graphic.addClass("highcharts-name-"+b.name.replace(/ /g,"-").toLowerCase()),b.properties&&b.properties["hc-key"]&&b.graphic.addClass("highcharts-key-"+b.properties["hc-key"].toLowerCase()),b.graphic.css(a.pointAttribs(b,b.selected&&"select")))}),this.baseTrans={originX:d.min-d.minPixelPadding/d.transA,originY:f.min-f.minPixelPadding/f.transA+(f.reversed?0:f.len/f.transA),transAX:d.transA,transAY:f.transA},this.transformGroup.animate({translateX:0,
|
|
translateY:0,scaleX:1,scaleY:1})):(l=d.transA/r.transAX,n=f.transA/r.transAY,p=d.toPixels(r.originX,!0),q=f.toPixels(r.originY,!0),.99<l&&1.01>l&&.99<n&&1.01>n&&(n=l=1,p=Math.round(p),q=Math.round(q)),x=this.transformGroup,g.renderer.globalAnimation?(z=x.attr("translateX"),t=x.attr("translateY"),u=x.attr("scaleX"),H=x.attr("scaleY"),x.attr({animator:0}).animate({animator:1},{step:function(a,b){x.attr({translateX:z+(p-z)*b.pos,translateY:t+(q-t)*b.pos,scaleX:u+(l-u)*b.pos,scaleY:H+(n-H)*b.pos})}})):
|
|
x.attr({translateX:p,translateY:q,scaleX:l,scaleY:n}));b||a.group.element.setAttribute("stroke-width",a.options[a.pointAttrToOptions&&a.pointAttrToOptions["stroke-width"]||"borderWidth"]/(l||1));this.drawMapDataLabels()},drawMapDataLabels:function(){d.prototype.drawDataLabels.call(this);this.dataLabelsGroup&&this.dataLabelsGroup.clip(this.chart.clipRect)},render:function(){var a=this,b=d.prototype.render;a.chart.renderer.isVML&&3E3<a.data.length?setTimeout(function(){b.call(a)}):b.call(a)},animate:function(a){var b=
|
|
this.options.animation,c=this.group,d=this.xAxis,f=this.yAxis,e=d.pos,g=f.pos;this.chart.renderer.isSVG&&(!0===b&&(b={duration:1E3}),a?c.attr({translateX:e+d.len/2,translateY:g+f.len/2,scaleX:.001,scaleY:.001}):(c.animate({translateX:e,translateY:g,scaleX:1,scaleY:1},b),this.animate=null))},animateDrilldown:function(a){var b=this.chart.plotBox,c=this.chart.drilldownLevels[this.chart.drilldownLevels.length-1],d=c.bBox,f=this.chart.options.drilldown.animation;a||(a=Math.min(d.width/b.width,d.height/
|
|
b.height),c.shapeArgs={scaleX:a,scaleY:a,translateX:d.x,translateY:d.y},B(this.points,function(a){a.graphic&&a.graphic.attr(c.shapeArgs).animate({scaleX:1,scaleY:1,translateX:0,translateY:0},f)}),this.animate=null)},drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,animateDrillupFrom:function(a){w.column.prototype.animateDrillupFrom.call(this,a)},animateDrillupTo:function(a){w.column.prototype.animateDrillupTo.call(this,a)}}),z({applyOptions:function(a,b){a=k.prototype.applyOptions.call(this,a,b);
|
|
b=this.series;var c=b.joinBy;b.mapData&&((c=void 0!==a[c[1]]&&b.mapMap[a[c[1]]])?(b.xyFromShape&&(a.x=c._midX,a.y=c._midY),z(a,c)):a.value=a.value||null);return a},onMouseOver:function(a){clearTimeout(this.colorInterval);if(null!==this.value||this.series.options.nullInteraction)k.prototype.onMouseOver.call(this,a);else this.series.onMouseOut(a)},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()}},x))})(H);
|
|
(function(a){var x=a.seriesType;x("mapline","map",{},{type:"mapline",colorProp:"stroke",drawLegendSymbol:a.seriesTypes.line.prototype.drawLegendSymbol})})(H);(function(a){var x=a.merge,B=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,g){a=void 0!==a.lat&&void 0!==a.lon?x(a,this.series.chart.fromLatLonToPoint(a)):a;return B.prototype.applyOptions.call(this,
|
|
a,g)}})})(H);(function(a){var x=a.arrayMax,B=a.arrayMin,z=a.Axis,g=a.each,e=a.isNumber,r=a.noop,l=a.pick,q=a.pInt,p=a.Point,k=a.seriesType,d=a.seriesTypes;k("bubble","scatter",{dataLabels:{formatter:function(){return this.point.z},inside:!0,verticalAlign:"middle"},marker:{radius:null,states:{hover:{radiusPlus:0}},symbol:"circle"},minSize:8,maxSize:"20%",softThreshold:!1,states:{hover:{halo:{size:5}}},tooltip:{pointFormat:"({point.x}, {point.y}), Size: {point.z}"},turboThreshold:0,zThreshold:0,zoneAxis:"z"},
|
|
{pointArrayMap:["y","z"],parallelArrays:["x","y","z"],trackerGroups:["group","dataLabelsGroup"],specialGroup:"group",bubblePadding:!0,zoneAxis:"z",directTouch:!0,getRadii:function(a,d,f,b){var c,e,g,k=this.zData,l=[],n=this.options,p="width"!==n.sizeBy,q=n.zThreshold,r=d-a;e=0;for(c=k.length;e<c;e++)g=k[e],n.sizeByAbsoluteValue&&null!==g&&(g=Math.abs(g-q),d=Math.max(d-q,Math.abs(a-q)),a=0),null===g?g=null:g<a?g=f/2-1:(g=0<r?(g-a)/r:.5,p&&0<=g&&(g=Math.sqrt(g)),g=Math.ceil(f+g*(b-f))/2),l.push(g);
|
|
this.radii=l},animate:function(a){var d=this.options.animation;a||(g(this.points,function(a){var b=a.graphic,c;b&&b.width&&(c={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(c,d))}),this.animate=null)},translate:function(){var g,k=this.data,f,b,c=this.radii;d.scatter.prototype.translate.call(this);for(g=k.length;g--;)f=k[g],b=c?c[g]:0,e(b)&&b>=this.minPxSize/2?(f.marker=a.extend(f.marker,{radius:b,width:2*b,height:2*b}),f.dlBox={x:f.plotX-b,y:f.plotY-
|
|
b,width:2*b,height:2*b}):f.shapeArgs=f.plotY=f.dlBox=void 0},alignDataLabel:d.column.prototype.alignDataLabel,buildKDTree:r,applyZones:r},{haloPath:function(a){return p.prototype.haloPath.call(this,0===a?0:(this.marker?this.marker.radius||0:0)+a)},ttBelow:!1});z.prototype.beforePadding=function(){var a=this,d=this.len,f=this.chart,b=0,c=d,k=this.isXAxis,m=k?"xData":"yData",p=this.min,r={},z=Math.min(f.plotWidth,f.plotHeight),H=Number.MAX_VALUE,v=-Number.MAX_VALUE,K=this.max-p,y=d/K,A=[];g(this.series,
|
|
function(b){var c=b.options;!b.bubblePadding||!b.visible&&f.options.chart.ignoreHiddenSeries||(a.allowZoomOutside=!0,A.push(b),k&&(g(["minSize","maxSize"],function(a){var b=c[a],d=/%$/.test(b),b=q(b);r[a]=d?z*b/100:b}),b.minPxSize=r.minSize,b.maxPxSize=Math.max(r.maxSize,r.minSize),b=b.zData,b.length&&(H=l(c.zMin,Math.min(H,Math.max(B(b),!1===c.displayNegative?c.zThreshold:-Number.MAX_VALUE))),v=l(c.zMax,Math.max(v,x(b))))))});g(A,function(d){var f=d[m],g=f.length,h;k&&d.getRadii(H,v,d.minPxSize,
|
|
d.maxPxSize);if(0<K)for(;g--;)e(f[g])&&a.dataMin<=f[g]&&f[g]<=a.dataMax&&(h=d.radii[g],b=Math.min((f[g]-p)*y-h,b),c=Math.max((f[g]-p)*y+h,c))});A.length&&0<K&&!this.isLog&&(c-=d,y*=(d+b-c)/d,g([["min","userMin",b],["max","userMax",c]],function(b){void 0===l(a.options[b[0]],a[b[1]])&&(a[b[0]]+=b[2]/y)}))}})(H);(function(a){var x=a.merge,B=a.Point,z=a.seriesType,g=a.seriesTypes;g.bubble&&z("mapbubble","bubble",{animationLimit:500,tooltip:{pointFormat:"{point.name}: {point.z}"}},{xyFromShape:!0,type:"mapbubble",
|
|
pointArrayMap:["z"],getMapData:g.map.prototype.getMapData,getBox:g.map.prototype.getBox,setData:g.map.prototype.setData},{applyOptions:function(a,r){return a&&void 0!==a.lat&&void 0!==a.lon?B.prototype.applyOptions.call(this,x(a,this.series.chart.fromLatLonToPoint(a)),r):g.map.prototype.pointClass.prototype.applyOptions.call(this,a,r)},isValid:function(){return"number"===typeof this.z},ttBelow:!1})})(H);(function(a){var x=a.colorPointMixin,B=a.each,z=a.merge,g=a.noop,e=a.pick,r=a.Series,l=a.seriesType,
|
|
q=a.seriesTypes;l("heatmap","scatter",{animation:!1,borderWidth:0,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:{normal:{animation:!0},hover:{halo:!1,brightness:.2}}},z(a.colorSeriesMixin,{pointArrayMap:["y","value"],hasPointSpecificOptions:!0,getExtremesFromAll:!0,directTouch:!0,init:function(){var a;q.scatter.prototype.init.apply(this,
|
|
arguments);a=this.options;a.pointRange=e(a.pointRange,a.colsize||1);this.yAxis.axisPointRange=a.rowsize||1},translate:function(){var a=this.options,g=this.xAxis,d=this.yAxis,l=a.pointPadding||0,q=function(a,b,c){return Math.min(Math.max(b,a),c)};this.generatePoints();B(this.points,function(f){var b=(a.colsize||1)/2,c=(a.rowsize||1)/2,k=q(Math.round(g.len-g.translate(f.x-b,0,1,0,1)),-g.len,2*g.len),b=q(Math.round(g.len-g.translate(f.x+b,0,1,0,1)),-g.len,2*g.len),n=q(Math.round(d.translate(f.y-c,0,
|
|
1,0,1)),-d.len,2*d.len),c=q(Math.round(d.translate(f.y+c,0,1,0,1)),-d.len,2*d.len),p=e(f.pointPadding,l);f.plotX=f.clientX=(k+b)/2;f.plotY=(n+c)/2;f.shapeType="rect";f.shapeArgs={x:Math.min(k,b)+p,y:Math.min(n,c)+p,width:Math.abs(b-k)-2*p,height:Math.abs(c-n)-2*p}});this.translateColors()},drawPoints:function(){q.column.prototype.drawPoints.call(this);B(this.points,function(a){a.graphic.css(this.colorAttribs(a))},this)},animate:g,getBox:g,drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,alignDataLabel:q.column.prototype.alignDataLabel,
|
|
getExtremes:function(){r.prototype.getExtremes.call(this,this.valueData);this.valueMin=this.dataMin;this.valueMax=this.dataMax;r.prototype.getExtremes.call(this)}}),a.extend({haloPath:function(a){if(!a)return[];var e=this.shapeArgs;return["M",e.x-a,e.y-a,"L",e.x-a,e.y+e.height+a,e.x+e.width+a,e.y+e.height+a,e.x+e.width+a,e.y-a,"Z"]}},x))})(H);(function(a){function x(a,e){var d,g,k,f=!1,b=a.x,c=a.y;a=0;for(d=e.length-1;a<e.length;d=a++)g=e[a][1]>c,k=e[d][1]>c,g!==k&&b<(e[d][0]-e[a][0])*(c-e[a][1])/
|
|
(e[d][1]-e[a][1])+e[a][0]&&(f=!f);return f}var B=a.Chart,z=a.each,g=a.extend,e=a.format,r=a.merge,l=a.win,q=a.wrap;B.prototype.transformFromLatLon=function(e,g){if(void 0===l.proj4)return a.error(21),{x:0,y:null};e=l.proj4(g.crs,[e.lon,e.lat]);var d=g.cosAngle||g.rotation&&Math.cos(g.rotation),k=g.sinAngle||g.rotation&&Math.sin(g.rotation);e=g.rotation?[e[0]*d+e[1]*k,-e[0]*k+e[1]*d]:e;return{x:((e[0]-(g.xoffset||0))*(g.scale||1)+(g.xpan||0))*(g.jsonres||1)+(g.jsonmarginX||0),y:(((g.yoffset||0)-e[1])*
|
|
(g.scale||1)+(g.ypan||0))*(g.jsonres||1)-(g.jsonmarginY||0)}};B.prototype.transformToLatLon=function(e,g){if(void 0===l.proj4)a.error(21);else{e={x:((e.x-(g.jsonmarginX||0))/(g.jsonres||1)-(g.xpan||0))/(g.scale||1)+(g.xoffset||0),y:((-e.y-(g.jsonmarginY||0))/(g.jsonres||1)+(g.ypan||0))/(g.scale||1)+(g.yoffset||0)};var d=g.cosAngle||g.rotation&&Math.cos(g.rotation),k=g.sinAngle||g.rotation&&Math.sin(g.rotation);g=l.proj4(g.crs,"WGS84",g.rotation?{x:e.x*d+e.y*-k,y:e.x*k+e.y*d}:e);return{lat:g.y,lon:g.x}}};
|
|
B.prototype.fromPointToLatLon=function(e){var g=this.mapTransforms,d;if(g){for(d in g)if(g.hasOwnProperty(d)&&g[d].hitZone&&x({x:e.x,y:-e.y},g[d].hitZone.coordinates[0]))return this.transformToLatLon(e,g[d]);return this.transformToLatLon(e,g["default"])}a.error(22)};B.prototype.fromLatLonToPoint=function(e){var g=this.mapTransforms,d,l;if(!g)return a.error(22),{x:0,y:null};for(d in g)if(g.hasOwnProperty(d)&&g[d].hitZone&&(l=this.transformFromLatLon(e,g[d]),x({x:l.x,y:-l.y},g[d].hitZone.coordinates[0])))return l;
|
|
return this.transformFromLatLon(e,g["default"])};a.geojson=function(a,k,d){var l=[],p=[],f=function(a){var b,d=a.length;p.push("M");for(b=0;b<d;b++)1===b&&p.push("L"),p.push(a[b][0],-a[b][1])};k=k||"map";z(a.features,function(a){var b=a.geometry,d=b.type,b=b.coordinates;a=a.properties;var e;p=[];"map"===k||"mapbubble"===k?("Polygon"===d?(z(b,f),p.push("Z")):"MultiPolygon"===d&&(z(b,function(a){z(a,f)}),p.push("Z")),p.length&&(e={path:p})):"mapline"===k?("LineString"===d?f(b):"MultiLineString"===d&&
|
|
z(b,f),p.length&&(e={path:p})):"mappoint"===k&&"Point"===d&&(e={x:b[0],y:-b[1]});e&&l.push(g(e,{name:a.name||a.NAME,properties:a}))});d&&a.copyrightShort&&(d.chart.mapCredits=e(d.chart.options.credits.mapText,{geojson:a}),d.chart.mapCreditsFull=e(d.chart.options.credits.mapTextFull,{geojson:a}));return l};q(B.prototype,"addCredits",function(a,e){e=r(!0,this.options.credits,e);this.mapCredits&&(e.href=null);a.call(this,e);this.credits&&this.mapCreditsFull&&this.credits.attr({title:this.mapCreditsFull})})})(H);
|
|
(function(a){function x(a,e,g,f,b,c,h,k){return["M",a+b,e,"L",a+g-c,e,"C",a+g-c/2,e,a+g,e+c/2,a+g,e+c,"L",a+g,e+f-h,"C",a+g,e+f-h/2,a+g-h/2,e+f,a+g-h,e+f,"L",a+k,e+f,"C",a+k/2,e+f,a,e+f-k/2,a,e+f-k,"L",a,e+b,"C",a,e+b/2,a+b/2,e,a+b,e,"Z"]}var B=a.Chart,z=a.defaultOptions,g=a.each,e=a.extend,r=a.merge,l=a.pick,q=a.Renderer,p=a.SVGRenderer,k=a.VMLRenderer;e(z.lang,{zoomIn:"Zoom in",zoomOut:"Zoom out"});z.mapNavigation={buttonOptions:{alignTo:"plotBox",align:"left",verticalAlign:"top",x:0,width:18,height:18,
|
|
padding:5},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={};p.prototype.symbols.topbutton=function(a,e,g,f,b){return x(a-1,e-1,g,f,b.r,b.r,0,0)};p.prototype.symbols.bottombutton=function(a,
|
|
e,g,f,b){return x(a-1,e-1,g,f,0,0,b.r,b.r)};q===k&&g(["topbutton","bottombutton"],function(a){k.prototype.symbols[a]=p.prototype.symbols[a]});a.Map=a.mapChart=function(d,e,g){var f="string"===typeof d||d.nodeName,b=arguments[f?1:0],c={endOnTick:!1,visible:!1,minPadding:0,maxPadding:0,startOnTick:!1},h,k=a.getOptions().credits;h=b.series;b.series=null;b=r({chart:{panning:"xy",type:"map"},credits:{mapText:l(k.mapText,' \u00a9 \x3ca href\x3d"{geojson.copyrightUrl}"\x3e{geojson.copyrightShort}\x3c/a\x3e'),
|
|
mapTextFull:l(k.mapTextFull,"{geojson.copyright}")},tooltip:{followTouchMove:!1},xAxis:c,yAxis:r(c,{reversed:!0})},b,{chart:{inverted:!1,alignTicks:!1}});b.series=h;return f?new B(d,b,g):new B(b,e)}})(H);return H});
|