highcharts
Version:
JavaScript charting framework
105 lines (103 loc) • 341 kB
JavaScript
/*
Highcharts Gantt JS v8.0.1 (2020-03-02)
(c) 2017-2018 Lars Cabrera, Torstein Honsi, Jon Arild Nygard & Oystein Moseng
License: www.highcharts.com/license
*/
(function(Y,P){"object"===typeof module&&module.exports?(P["default"]=P,module.exports=Y.document?P(Y):P):"function"===typeof define&&define.amd?define("highcharts/highcharts-gantt",function(){return P(Y)}):(Y.Highcharts&&Y.Highcharts.error(16,!0),Y.Highcharts=P(Y))})("undefined"!==typeof window?window:this,function(Y){function P(e,h,F,r){e.hasOwnProperty(h)||(e[h]=r.apply(null,F))}var w={};P(w,"parts/Globals.js",[],function(){var e="undefined"!==typeof Y?Y:"undefined"!==typeof window?window:{},h=
e.document,F=e.navigator&&e.navigator.userAgent||"",r=h&&h.createElementNS&&!!h.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,H=/(edge|msie|trident)/i.test(F)&&!e.opera,G=-1!==F.indexOf("Firefox"),I=-1!==F.indexOf("Chrome"),D=G&&4>parseInt(F.split("Firefox/")[1],10);return{product:"Highcharts",version:"8.0.1",deg2rad:2*Math.PI/360,doc:h,hasBidiBug:D,hasTouch:!!e.TouchEvent,isMS:H,isWebKit:-1!==F.indexOf("AppleWebKit"),isFirefox:G,isChrome:I,isSafari:!I&&-1!==F.indexOf("Safari"),
isTouchDevice:/(Mobile|Android|Windows Phone)/.test(F),SVG_NS:"http://www.w3.org/2000/svg",chartCount:0,seriesTypes:{},symbolSizes:{},svg:r,win:e,marginNames:["plotTop","marginRight","marginBottom","plotLeft"],noop:function(){},charts:[],dateFormats:{}}});P(w,"parts/Utilities.js",[w["parts/Globals.js"]],function(e){function h(){var a,b=arguments,k={},f=function(a,b){"object"!==typeof a&&(a={});X(b,function(k,c){!L(k,!0)||p(k)||q(k)?a[c]=b[c]:a[c]=f(a[c]||{},k)});return a};!0===b[0]&&(k=b[1],b=Array.prototype.slice.call(b,
2));var c=b.length;for(a=0;a<c;a++)k=f(k,b[a]);return k}function F(a,b,k){var f;u(b)?d(k)?a.setAttribute(b,k):a&&a.getAttribute&&((f=a.getAttribute(b))||"class"!==b||(f=a.getAttribute(b+"Name"))):X(b,function(b,k){a.setAttribute(k,b)});return f}function r(){for(var a=arguments,b=a.length,k=0;k<b;k++){var f=a[k];if("undefined"!==typeof f&&null!==f)return f}}function H(a,b){if(!a)return b;var k=a.split(".").reverse();if(1===k.length)return b[a];for(a=k.pop();"undefined"!==typeof a&&"undefined"!==typeof b&&
null!==b;)b=b[a],a=k.pop();return b}e.timers=[];var G=e.charts,I=e.doc,D=e.win,y=e.error=function(a,b,k,f){var c=l(a),v=c?"Highcharts error #"+a+": www.highcharts.com/errors/"+a+"/":a.toString(),d=function(){if(b)throw Error(v);D.console&&console.log(v)};if("undefined"!==typeof f){var n="";c&&(v+="?");e.objectEach(f,function(a,b){n+="\n"+b+": "+a;c&&(v+=encodeURI(b)+"="+encodeURI(a))});v+=n}k?e.fireEvent(k,"displayError",{code:a,message:v,params:f},d):d()},B=function(){function a(a,b,k){this.options=
b;this.elem=a;this.prop=k}a.prototype.dSetter=function(){var a=this.paths[0],b=this.paths[1],k=[],f=this.now,c=a.length;if(1===f)k=this.toD;else if(c===b.length&&1>f)for(;c--;){var v=parseFloat(a[c]);k[c]=isNaN(v)||"A"===b[c-4]||"A"===b[c-5]?b[c]:f*parseFloat(""+(b[c]-v))+v}else k=b;this.elem.attr("d",k,null,!0)};a.prototype.update=function(){var a=this.elem,b=this.prop,k=this.now,f=this.options.step;if(this[b+"Setter"])this[b+"Setter"]();else a.attr?a.element&&a.attr(b,k,null,!0):a.style[b]=k+this.unit;
f&&f.call(a,k,this)};a.prototype.run=function(a,b,k){var f=this,c=f.options,v=function(a){return v.stopped?!1:f.step(a)},d=D.requestAnimationFrame||function(a){setTimeout(a,13)},n=function(){for(var a=0;a<e.timers.length;a++)e.timers[a]()||e.timers.splice(a--,1);e.timers.length&&d(n)};a!==b||this.elem["forceAnimate:"+this.prop]?(this.startTime=+new Date,this.start=a,this.end=b,this.unit=k,this.now=this.start,this.pos=0,v.elem=this.elem,v.prop=this.prop,v()&&1===e.timers.push(v)&&d(n)):(delete c.curAnim[this.prop],
c.complete&&0===Object.keys(c.curAnim).length&&c.complete.call(this.elem))};a.prototype.step=function(a){var b=+new Date,k=this.options,f=this.elem,c=k.complete,v=k.duration,d=k.curAnim;if(f.attr&&!f.element)a=!1;else if(a||b>=v+this.startTime){this.now=this.end;this.pos=1;this.update();var n=d[this.prop]=!0;X(d,function(a){!0!==a&&(n=!1)});n&&c&&c.call(f);a=!1}else this.pos=k.easing((b-this.startTime)/v),this.now=this.start+(this.end-this.start)*this.pos,this.update(),a=!0;return a};a.prototype.initPath=
function(a,b,k){function f(a){for(m=a.length;m--;){var b="M"===a[m]||"L"===a[m];var k=/[a-zA-Z]/.test(a[m+3]);b&&k&&a.splice(m+1,0,a[m+1],a[m+2],a[m+1],a[m+2])}}function c(a,b){for(;a.length<C;){a[0]=b[C-a.length];var k=a.slice(0,Q);[].splice.apply(a,[0,0].concat(k));O&&(k=a.slice(a.length-Q),[].splice.apply(a,[a.length,0].concat(k)),m--)}a[0]="M"}function v(a,b){for(var k=(C-a.length)/Q;0<k&&k--;)t=a.slice().splice(a.length/x-Q,Q*x),t[0]=b[C-Q-k*Q],g&&(t[Q-6]=t[Q-2],t[Q-5]=t[Q-1]),[].splice.apply(a,
[a.length/x,0].concat(t)),O&&k--}b=b||"";var d=a.startX,n=a.endX,g=-1<b.indexOf("C"),Q=g?7:3,t,m;b=b.split(" ");k=k.slice();var O=a.isArea,x=O?2:1;g&&(f(b),f(k));if(d&&n){for(m=0;m<d.length;m++)if(d[m]===n[0]){var M=m;break}else if(d[0]===n[n.length-d.length+m]){M=m;var A=!0;break}else if(d[d.length-1]===n[n.length-d.length+m]){M=d.length-m;break}"undefined"===typeof M&&(b=[])}if(b.length&&l(M)){var C=k.length+M*x*Q;A?(c(b,k),v(k,b)):(c(k,b),v(b,k))}return[b,k]};a.prototype.fillSetter=function(){e.Fx.prototype.strokeSetter.apply(this,
arguments)};a.prototype.strokeSetter=function(){this.elem.attr(this.prop,e.color(this.start).tweenTo(e.color(this.end),this.pos),null,!0)};return a}();e.Fx=B;e.merge=h;var z=e.pInt=function(a,b){return parseInt(a,b||10)},u=e.isString=function(a){return"string"===typeof a},E=e.isArray=function(a){a=Object.prototype.toString.call(a);return"[object Array]"===a||"[object Array Iterator]"===a},L=e.isObject=function(a,b){return!!a&&"object"===typeof a&&(!b||!E(a))},q=e.isDOMElement=function(a){return L(a)&&
"number"===typeof a.nodeType},p=e.isClass=function(a){var b=a&&a.constructor;return!(!L(a,!0)||q(a)||!b||!b.name||"Object"===b.name)},l=e.isNumber=function(a){return"number"===typeof a&&!isNaN(a)&&Infinity>a&&-Infinity<a},g=e.erase=function(a,b){for(var k=a.length;k--;)if(a[k]===b){a.splice(k,1);break}},d=e.defined=function(a){return"undefined"!==typeof a&&null!==a};e.attr=F;var m=e.splat=function(a){return E(a)?a:[a]},c=e.syncTimeout=function(a,b,k){if(0<b)return setTimeout(a,b,k);a.call(0,k);return-1},
a=e.clearTimeout=function(a){d(a)&&clearTimeout(a)},b=e.extend=function(a,b){var k;a||(a={});for(k in b)a[k]=b[k];return a};e.pick=r;var t=e.css=function(a,k){e.isMS&&!e.svg&&k&&"undefined"!==typeof k.opacity&&(k.filter="alpha(opacity="+100*k.opacity+")");b(a.style,k)},x=e.createElement=function(a,k,f,c,v){a=I.createElement(a);k&&b(a,k);v&&t(a,{padding:"0",border:"none",margin:"0"});f&&t(a,f);c&&c.appendChild(a);return a},C=e.extendClass=function(a,k){var f=function(){};f.prototype=new a;b(f.prototype,
k);return f},f=e.pad=function(a,b,k){return Array((b||2)+1-String(a).replace("-","").length).join(k||"0")+a},n=e.relativeLength=function(a,b,k){return/%$/.test(a)?b*parseFloat(a)/100+(k||0):parseFloat(a)},A=e.wrap=function(a,b,k){var f=a[b];a[b]=function(){var a=Array.prototype.slice.call(arguments),b=arguments,c=this;c.proceed=function(){f.apply(c,arguments.length?arguments:b)};a.unshift(f);a=k.apply(this,a);c.proceed=null;return a}},K=e.format=function(a,b,k){var f="{",c=!1,v=[],d=/f$/,n=/\.([0-9])/,
g=e.defaultOptions.lang,Q=k&&k.time||e.time;for(k=k&&k.numberFormatter||V;a;){var m=a.indexOf(f);if(-1===m)break;var t=a.slice(0,m);if(c){t=t.split(":");f=H(t.shift()||"",b);if(t.length&&"number"===typeof f)if(t=t.join(":"),d.test(t)){var O=parseInt((t.match(n)||["","-1"])[1],10);null!==f&&(f=k(f,O,g.decimalPoint,-1<t.indexOf(",")?g.thousandsSep:""))}else f=Q.dateFormat(t,f);v.push(f)}else v.push(t);a=a.slice(m+1);f=(c=!c)?"}":"{"}v.push(a);return v.join("")},J=e.getMagnitude=function(a){return Math.pow(10,
Math.floor(Math.log(a)/Math.LN10))},N=e.normalizeTickInterval=function(a,b,k,f,c){var v=a;k=r(k,1);var d=a/k;b||(b=c?[1,1.2,1.5,2,2.5,3,4,5,6,8,10]:[1,2,2.5,5,10],!1===f&&(1===k?b=b.filter(function(a){return 0===a%1}):.1>=k&&(b=[1/k])));for(f=0;f<b.length&&!(v=b[f],c&&v*k>=a||!c&&d<=(b[f]+(b[f+1]||b[f]))/2);f++);return v=U(v*k,-Math.round(Math.log(.001)/Math.LN10))},v=e.stableSort=function(a,b){var k=a.length,f,c;for(c=0;c<k;c++)a[c].safeI=c;a.sort(function(a,k){f=b(a,k);return 0===f?a.safeI-k.safeI:
f});for(c=0;c<k;c++)delete a[c].safeI},k=e.arrayMin=function(a){for(var b=a.length,k=a[0];b--;)a[b]<k&&(k=a[b]);return k},M=e.arrayMax=function(a){for(var b=a.length,k=a[0];b--;)a[b]>k&&(k=a[b]);return k},O=e.destroyObjectProperties=function(a,b){X(a,function(k,f){k&&k!==b&&k.destroy&&k.destroy();delete a[f]})},S=e.discardElement=function(a){var b=e.garbageBin;b||(b=x("div"));a&&b.appendChild(a);b.innerHTML=""},U=e.correctFloat=function(a,b){return parseFloat(a.toPrecision(b||14))},W=e.setAnimation=
function(a,b){b.renderer.globalAnimation=r(a,b.options.chart.animation,!0)},R=e.animObject=function(a){return L(a)?h(a):{duration:a?500:0}},Q=e.timeUnits={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5,month:24192E5,year:314496E5},V=e.numberFormat=function(a,b,k,f){a=+a||0;b=+b;var c=e.defaultOptions.lang,v=(a.toString().split(".")[1]||"").split("e")[0].length,d=a.toString().split("e");if(-1===b)b=Math.min(v,20);else if(!l(b))b=2;else if(b&&d[1]&&0>d[1]){var n=b+ +d[1];0<=n?(d[0]=
(+d[0]).toExponential(n).split("e")[0],b=n):(d[0]=d[0].split(".")[0]||0,a=20>b?(d[0]*Math.pow(10,d[1])).toFixed(b):0,d[1]=0)}var g=(Math.abs(d[1]?d[0]:a)+Math.pow(10,-Math.max(b,v)-1)).toFixed(b);v=String(z(g));n=3<v.length?v.length%3:0;k=r(k,c.decimalPoint);f=r(f,c.thousandsSep);a=(0>a?"-":"")+(n?v.substr(0,n)+f:"");a+=v.substr(n).replace(/(\d{3})(?=\d)/g,"$1"+f);b&&(a+=k+g.slice(-b));d[1]&&0!==+a&&(a+="e"+d[1]);return a};Math.easeInOutSine=function(a){return-.5*(Math.cos(Math.PI*a)-1)};var fa=e.getStyle=
function(a,b,k){if("width"===b)return b=Math.min(a.offsetWidth,a.scrollWidth),k=a.getBoundingClientRect&&a.getBoundingClientRect().width,k<b&&k>=b-1&&(b=Math.floor(k)),Math.max(0,b-e.getStyle(a,"padding-left")-e.getStyle(a,"padding-right"));if("height"===b)return Math.max(0,Math.min(a.offsetHeight,a.scrollHeight)-e.getStyle(a,"padding-top")-e.getStyle(a,"padding-bottom"));D.getComputedStyle||y(27,!0);if(a=D.getComputedStyle(a,void 0))a=a.getPropertyValue(b),r(k,"opacity"!==b)&&(a=z(a));return a},
Z=e.inArray=function(a,b,k){return b.indexOf(a,k)},T=e.find=Array.prototype.find?function(a,b){return a.find(b)}:function(a,b){var k,f=a.length;for(k=0;k<f;k++)if(b(a[k],k))return a[k]};e.keys=Object.keys;var ca=e.offset=function(a){var b=I.documentElement;a=a.parentElement||a.parentNode?a.getBoundingClientRect():{top:0,left:0};return{top:a.top+(D.pageYOffset||b.scrollTop)-(b.clientTop||0),left:a.left+(D.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}},da=e.stop=function(a,b){for(var k=e.timers.length;k--;)e.timers[k].elem!==
a||b&&b!==e.timers[k].prop||(e.timers[k].stopped=!0)},X=e.objectEach=function(a,b,k){for(var f in a)Object.hasOwnProperty.call(a,f)&&b.call(k||a[f],a[f],f,a)};X({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(a,b){e[b]=function(b){return Array.prototype[a].apply(b,[].slice.call(arguments,1))}});var ba=e.addEvent=function(a,b,k,f){void 0===f&&(f={});var c=a.addEventListener||e.addEventListenerPolyfill;var v="function"===typeof a&&a.prototype?a.prototype.protoEvents=a.prototype.protoEvents||
{}:a.hcEvents=a.hcEvents||{};e.Point&&a instanceof e.Point&&a.series&&a.series.chart&&(a.series.chart.runTrackerClick=!0);c&&c.call(a,b,k,!1);v[b]||(v[b]=[]);v[b].push({fn:k,order:"number"===typeof f.order?f.order:Infinity});v[b].sort(function(a,b){return a.order-b.order});return function(){aa(a,b,k)}},aa=e.removeEvent=function(a,b,k){function f(b,k){var f=a.removeEventListener||e.removeEventListenerPolyfill;f&&f.call(a,b,k,!1)}function c(k){var c;if(a.nodeName){if(b){var v={};v[b]=!0}else v=k;X(v,
function(a,b){if(k[b])for(c=k[b].length;c--;)f(b,k[b][c].fn)})}}var v;["protoEvents","hcEvents"].forEach(function(d,n){var g=(n=n?a:a.prototype)&&n[d];g&&(b?(v=g[b]||[],k?(g[b]=v.filter(function(a){return k!==a.fn}),f(b,k)):(c(g),g[b]=[])):(c(g),n[d]={}))})},ea=e.fireEvent=function(a,k,f,c){var v;f=f||{};if(I.createEvent&&(a.dispatchEvent||a.fireEvent)){var d=I.createEvent("Events");d.initEvent(k,!0,!0);b(d,f);a.dispatchEvent?a.dispatchEvent(d):a.fireEvent(k,d)}else f.target||b(f,{preventDefault:function(){f.defaultPrevented=
!0},target:a,type:k}),function(b,k){void 0===b&&(b=[]);void 0===k&&(k=[]);var c=0,d=0,n=b.length+k.length;for(v=0;v<n;v++)!1===(b[c]?k[d]?b[c].order<=k[d].order?b[c++]:k[d++]:b[c++]:k[d++]).fn.call(a,f)&&f.preventDefault()}(a.protoEvents&&a.protoEvents[k],a.hcEvents&&a.hcEvents[k]);c&&!f.defaultPrevented&&c.call(a,f)},ia=e.animate=function(a,b,k){var f,c="",v,d;if(!L(k)){var n=arguments;k={duration:n[2],easing:n[3],complete:n[4]}}l(k.duration)||(k.duration=400);k.easing="function"===typeof k.easing?
k.easing:Math[k.easing]||Math.easeInOutSine;k.curAnim=h(b);X(b,function(n,g){da(a,g);d=new B(a,k,g);v=null;"d"===g?(d.paths=d.initPath(a,a.d,b.d),d.toD=b.d,f=0,v=1):a.attr?f=a.attr(g):(f=parseFloat(fa(a,g))||0,"opacity"!==g&&(c="px"));v||(v=n);v&&v.match&&v.match("px")&&(v=v.replace(/px/g,""));d.run(f,v,c)})},w=e.seriesType=function(a,b,k,f,c){var v=e.getOptions(),d=e.seriesTypes;v.plotOptions[a]=h(v.plotOptions[b],k);d[a]=C(d[b]||function(){},f);d[a].prototype.type=a;c&&(d[a].prototype.pointClass=
C(e.Point,c));return d[a]},ha=e.uniqueKey=function(){var a=Math.random().toString(36).substring(2,9),b=0;return function(){return"highcharts-"+a+"-"+b++}}(),ja=e.isFunction=function(a){return"function"===typeof a};D.jQuery&&(D.jQuery.fn.highcharts=function(){var a=[].slice.call(arguments);if(this[0])return a[0]?(new (e[u(a[0])?a.shift():"Chart"])(this[0],a[0],a[1]),this):G[F(this[0],"data-highcharts-chart")]});return{Fx:B,addEvent:ba,animate:ia,animObject:R,arrayMax:M,arrayMin:k,attr:F,clamp:function(a,
b,k){return a>b?a<k?a:k:b},clearTimeout:a,correctFloat:U,createElement:x,css:t,defined:d,destroyObjectProperties:O,discardElement:S,erase:g,error:y,extend:b,extendClass:C,find:T,fireEvent:ea,format:K,getMagnitude:J,getNestedProperty:H,getStyle:fa,inArray:Z,isArray:E,isClass:p,isDOMElement:q,isFunction:ja,isNumber:l,isObject:L,isString:u,merge:h,normalizeTickInterval:N,numberFormat:V,objectEach:X,offset:ca,pad:f,pick:r,pInt:z,relativeLength:n,removeEvent:aa,seriesType:w,setAnimation:W,splat:m,stableSort:v,
stop:da,syncTimeout:c,timeUnits:Q,uniqueKey:ha,wrap:A}});P(w,"parts/Color.js",[w["parts/Globals.js"],w["parts/Utilities.js"]],function(e,h){var F=h.isNumber,r=h.merge,H=h.pInt;h=function(){function e(e){this.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(e){return[H(e[1]),H(e[2]),H(e[3]),parseFloat(e[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(e){return[H(e[1]),H(e[2]),
H(e[3]),1]}}];this.rgba=[];this.init(e)}e.parse=function(h){return new e(h)};e.prototype.init=function(h){var D,y;if((this.input=h=e.names[h&&h.toLowerCase?h.toLowerCase():""]||h)&&h.stops)this.stops=h.stops.map(function(u){return new e(u[1])});else{if(h&&h.charAt&&"#"===h.charAt()){var B=h.length;h=parseInt(h.substr(1),16);7===B?D=[(h&16711680)>>16,(h&65280)>>8,h&255,1]:4===B&&(D=[(h&3840)>>4|(h&3840)>>8,(h&240)>>4|h&240,(h&15)<<4|h&15,1])}if(!D)for(y=this.parsers.length;y--&&!D;){var z=this.parsers[y];
(B=z.regex.exec(h))&&(D=z.parse(B))}}this.rgba=D||[]};e.prototype.get=function(e){var h=this.input,y=this.rgba;if("undefined"!==typeof this.stops){var B=r(h);B.stops=[].concat(B.stops);this.stops.forEach(function(z,u){B.stops[u]=[B.stops[u][0],z.get(e)]})}else B=y&&F(y[0])?"rgb"===e||!e&&1===y[3]?"rgb("+y[0]+","+y[1]+","+y[2]+")":"a"===e?y[3]:"rgba("+y.join(",")+")":h;return B};e.prototype.brighten=function(e){var h,y=this.rgba;if(this.stops)this.stops.forEach(function(h){h.brighten(e)});else if(F(e)&&
0!==e)for(h=0;3>h;h++)y[h]+=H(255*e),0>y[h]&&(y[h]=0),255<y[h]&&(y[h]=255);return this};e.prototype.setOpacity=function(e){this.rgba[3]=e;return this};e.prototype.tweenTo=function(e,h){var y=this.rgba,B=e.rgba;B.length&&y&&y.length?(e=1!==B[3]||1!==y[3],h=(e?"rgba(":"rgb(")+Math.round(B[0]+(y[0]-B[0])*(1-h))+","+Math.round(B[1]+(y[1]-B[1])*(1-h))+","+Math.round(B[2]+(y[2]-B[2])*(1-h))+(e?","+(B[3]+(y[3]-B[3])*(1-h)):"")+")"):h=e.input||"none";return h};e.names={white:"#ffffff",black:"#000000"};return e}();
e.Color=h;e.color=h.parse;return e.Color});P(w,"parts/SvgRenderer.js",[w["parts/Globals.js"],w["parts/Color.js"],w["parts/Utilities.js"]],function(e,h,F){var r=h.parse,H=F.addEvent,G=F.animate,I=F.animObject,D=F.attr,y=F.createElement,B=F.css,z=F.defined,u=F.destroyObjectProperties,E=F.erase,L=F.extend,q=F.inArray,p=F.isArray,l=F.isNumber,g=F.isObject,d=F.isString,m=F.merge,c=F.objectEach,a=F.pick,b=F.pInt,t=F.removeEvent,x=F.splat,C=F.stop,f=F.uniqueKey,n=e.charts,A=e.deg2rad,K=e.doc,J=e.hasTouch,
N=e.isFirefox,v=e.isMS,k=e.isWebKit,M=e.noop,O=e.svg,S=e.SVG_NS,U=e.symbolSizes,W=e.win;var R=e.SVGElement=function(){return this};L(R.prototype,{opacity:1,SVG_NS:S,textProps:"direction fontSize fontWeight fontFamily fontStyle color lineHeight width textAlign textDecoration textOverflow textOutline cursor".split(" "),init:function(a,b){this.element="span"===b?y(b):K.createElementNS(this.SVG_NS,b);this.renderer=a;e.fireEvent(this,"afterInit")},animate:function(b,k,f){var v=I(a(k,this.renderer.globalAnimation,
!0));a(K.hidden,K.msHidden,K.webkitHidden,!1)&&(v.duration=0);0!==v.duration?(f&&(v.complete=f),G(this,b,v)):(this.attr(b,void 0,f),c(b,function(a,b){v.step&&v.step.call(this,a,{prop:b,pos:1})},this));return this},complexColor:function(a,b,k){var v=this.renderer,d,n,g,t,Q,O,x,M,A,C,l,V=[],K;e.fireEvent(this.renderer,"complexColor",{args:arguments},function(){a.radialGradient?n="radialGradient":a.linearGradient&&(n="linearGradient");n&&(g=a[n],Q=v.gradients,x=a.stops,C=k.radialReference,p(g)&&(a[n]=
g={x1:g[0],y1:g[1],x2:g[2],y2:g[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===n&&C&&!z(g.gradientUnits)&&(t=g,g=m(g,v.getRadialAttr(C,t),{gradientUnits:"userSpaceOnUse"})),c(g,function(a,b){"id"!==b&&V.push(b,a)}),c(x,function(a){V.push(a)}),V=V.join(","),Q[V]?l=Q[V].attr("id"):(g.id=l=f(),Q[V]=O=v.createElement(n).attr(g).add(v.defs),O.radAttr=t,O.stops=[],x.forEach(function(a){0===a[1].indexOf("rgba")?(d=r(a[1]),M=d.get("rgb"),A=d.get("a")):(M=a[1],A=1);a=v.createElement("stop").attr({offset:a[0],
"stop-color":M,"stop-opacity":A}).add(O);O.stops.push(a)})),K="url("+v.url+"#"+l+")",k.setAttribute(b,K),k.gradient=V,a.toString=function(){return K})})},applyTextOutline:function(a){var b=this.element,k;-1!==a.indexOf("contrast")&&(a=a.replace(/contrast/g,this.renderer.getContrast(b.style.fill)));a=a.split(" ");var f=a[a.length-1];if((k=a[0])&&"none"!==k&&e.svg){this.fakeTS=!0;a=[].slice.call(b.getElementsByTagName("tspan"));this.ySetter=this.xSetter;k=k.replace(/(^[\d\.]+)(.*?)$/g,function(a,b,
k){return 2*b+k});this.removeTextOutline(a);var c=b.textContent?/^[\u0591-\u065F\u066A-\u07FF\uFB1D-\uFDFD\uFE70-\uFEFC]/.test(b.textContent):!1;var v=b.firstChild;a.forEach(function(a,d){0===d&&(a.setAttribute("x",b.getAttribute("x")),d=b.getAttribute("y"),a.setAttribute("y",d||0),null===d&&b.setAttribute("y",0));d=a.cloneNode(!0);D(c&&!N?a:d,{"class":"highcharts-text-outline",fill:f,stroke:f,"stroke-width":k,"stroke-linejoin":"round"});b.insertBefore(d,v)});c&&N&&a[0]&&(a=a[0].cloneNode(!0),a.textContent=
" ",b.insertBefore(a,v))}},removeTextOutline:function(a){for(var b=a.length,k;b--;)k=a[b],"highcharts-text-outline"===k.getAttribute("class")&&E(a,this.element.removeChild(k))},symbolCustomAttribs:"x y width height r start end innerR anchorX anchorY rounded".split(" "),attr:function(a,b,k,f){var v=this.element,d,n=this,g,t,m=this.symbolCustomAttribs;if("string"===typeof a&&"undefined"!==typeof b){var Q=a;a={};a[Q]=b}"string"===typeof a?n=(this[a+"Getter"]||this._defaultGetter).call(this,a,v):(c(a,
function(b,k){g=!1;f||C(this,k);this.symbolName&&-1!==q(k,m)&&(d||(this.symbolAttr(a),d=!0),g=!0);!this.rotation||"x"!==k&&"y"!==k||(this.doTransform=!0);g||(t=this[k+"Setter"]||this._defaultSetter,t.call(this,b,k,v),!this.styledMode&&this.shadows&&/^(width|height|visibility|x|y|d|transform|cx|cy|r)$/.test(k)&&this.updateShadows(k,b,t))},this),this.afterSetters());k&&k.call(this);return n},afterSetters:function(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)},updateShadows:function(a,
b,k){for(var f=this.shadows,c=f.length;c--;)k.call(f[c],"height"===a?Math.max(b-(f[c].cutHeight||0),0):"d"===a?this.d:b,a,f[c])},addClass:function(a,b){var k=b?"":this.attr("class")||"";a=(a||"").split(/ /g).reduce(function(a,b){-1===k.indexOf(b)&&a.push(b);return a},k?[k]:[]).join(" ");a!==k&&this.attr("class",a);return this},hasClass:function(a){return-1!==(this.attr("class")||"").split(" ").indexOf(a)},removeClass:function(a){return this.attr("class",(this.attr("class")||"").replace(d(a)?new RegExp(" ?"+
a+" ?"):a,""))},symbolAttr:function(b){var k=this;"x y r start end width height innerR anchorX anchorY clockwise".split(" ").forEach(function(f){k[f]=a(b[f],k[f])});k.attr({d:k.renderer.symbols[k.symbolName](k.x,k.y,k.width,k.height,k)})},clip:function(a){return this.attr("clip-path",a?"url("+this.renderer.url+"#"+a.id+")":"none")},crisp:function(a,b){b=b||a.strokeWidth||0;var k=Math.round(b)%2/2;a.x=Math.floor(a.x||this.x||0)+k;a.y=Math.floor(a.y||this.y||0)+k;a.width=Math.floor((a.width||this.width||
0)-2*k);a.height=Math.floor((a.height||this.height||0)-2*k);z(a.strokeWidth)&&(a.strokeWidth=b);return a},css:function(a){var k=this.styles,f={},v=this.element,d="",n=!k,g=["textOutline","textOverflow","width"];a&&a.color&&(a.fill=a.color);k&&c(a,function(a,b){a!==k[b]&&(f[b]=a,n=!0)});if(n){k&&(a=L(k,f));if(a)if(null===a.width||"auto"===a.width)delete this.textWidth;else if("text"===v.nodeName.toLowerCase()&&a.width)var t=this.textWidth=b(a.width);this.styles=a;t&&!O&&this.renderer.forExport&&delete a.width;
if(v.namespaceURI===this.SVG_NS){var m=function(a,b){return"-"+b.toLowerCase()};c(a,function(a,b){-1===g.indexOf(b)&&(d+=b.replace(/([A-Z])/g,m)+":"+a+";")});d&&D(v,"style",d)}else B(v,a);this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),a&&a.textOutline&&this.applyTextOutline(a.textOutline))}return this},getStyle:function(a){return W.getComputedStyle(this.element||this,"").getPropertyValue(a)},strokeWidth:function(){if(!this.renderer.styledMode)return this["stroke-width"]||
0;var a=this.getStyle("stroke-width"),k=0;if(a.indexOf("px")===a.length-2)k=b(a);else if(""!==a){var f=K.createElementNS(S,"rect");D(f,{width:a,"stroke-width":0});this.element.parentNode.appendChild(f);k=f.getBBox().width;f.parentNode.removeChild(f)}return k},on:function(a,b){var k=this,f=k.element;J&&"click"===a?(f.ontouchstart=function(a){k.touchEventFired=Date.now();a.preventDefault();b.call(f,a)},f.onclick=function(a){(-1===W.navigator.userAgent.indexOf("Android")||1100<Date.now()-(k.touchEventFired||
0))&&b.call(f,a)}):f["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 b=this.translateX||0,k=this.translateY||0,f=this.scaleX,c=this.scaleY,v=this.inverted,d=this.rotation,
n=this.matrix,g=this.element;v&&(b+=this.width,k+=this.height);b=["translate("+b+","+k+")"];z(n)&&b.push("matrix("+n.join(",")+")");v?b.push("rotate(90) scale(-1,1)"):d&&b.push("rotate("+d+" "+a(this.rotationOriginX,g.getAttribute("x"),0)+" "+a(this.rotationOriginY,g.getAttribute("y")||0)+")");(z(f)||z(c))&&b.push("scale("+a(f,1)+" "+a(c,1)+")");b.length&&g.setAttribute("transform",b.join(" "))},toFront:function(){var a=this.element;a.parentNode.appendChild(a);return this},align:function(b,k,f){var c,
v={};var n=this.renderer;var g=n.alignedObjects;var t,m;if(b){if(this.alignOptions=b,this.alignByTranslate=k,!f||d(f))this.alignTo=c=f||"renderer",E(g,this),g.push(this),f=null}else b=this.alignOptions,k=this.alignByTranslate,c=this.alignTo;f=a(f,n[c],n);c=b.align;n=b.verticalAlign;g=(f.x||0)+(b.x||0);var O=(f.y||0)+(b.y||0);"right"===c?t=1:"center"===c&&(t=2);t&&(g+=(f.width-(b.width||0))/t);v[k?"translateX":"x"]=Math.round(g);"bottom"===n?m=1:"middle"===n&&(m=2);m&&(O+=(f.height-(b.height||0))/
m);v[k?"translateY":"y"]=Math.round(O);this[this.placed?"animate":"attr"](v);this.placed=!0;this.alignAttr=v;return this},getBBox:function(b,k){var f,c=this.renderer,v=this.element,d=this.styles,n=this.textStr,g,t=c.cache,m=c.cacheKeys,O=v.namespaceURI===this.SVG_NS;k=a(k,this.rotation,0);var x=c.styledMode?v&&R.prototype.getStyle.call(v,"font-size"):d&&d.fontSize;if(z(n)){var M=n.toString();-1===M.indexOf("<")&&(M=M.replace(/[0-9]/g,"0"));M+=["",k,x,this.textWidth,d&&d.textOverflow].join()}M&&!b&&
(f=t[M]);if(!f){if(O||c.forExport){try{(g=this.fakeTS&&function(a){[].forEach.call(v.querySelectorAll(".highcharts-text-outline"),function(b){b.style.display=a})})&&g("none"),f=v.getBBox?L({},v.getBBox()):{width:v.offsetWidth,height:v.offsetHeight},g&&g("")}catch(ha){""}if(!f||0>f.width)f={width:0,height:0}}else f=this.htmlGetBBox();c.isSVG&&(b=f.width,c=f.height,O&&(f.height=c={"11px,17":14,"13px,20":16}[d&&d.fontSize+","+Math.round(c)]||c),k&&(d=k*A,f.width=Math.abs(c*Math.sin(d))+Math.abs(b*Math.cos(d)),
f.height=Math.abs(c*Math.cos(d))+Math.abs(b*Math.sin(d))));if(M&&0<f.height){for(;250<m.length;)delete t[m.shift()];t[M]||m.push(M);t[M]=f}}return f},show:function(a){return this.attr({visibility:a?"inherit":"visible"})},hide:function(a){a?this.attr({y:-9999}):this.attr({visibility:"hidden"});return this},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,k=this.element;a&&(this.parentGroup=a);this.parentInverted=
a&&a.inverted;"undefined"!==typeof this.textStr&&b.buildText(this);this.added=!0;if(!a||a.handleZ||this.zIndex)var f=this.zIndexSetter();f||(a?a.element:b.box).appendChild(k);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||{},k=a.renderer,f=k.isSVG&&"SPAN"===b.nodeName&&a.parentGroup,v=b.ownerSVGElement,d=a.clipPath;b.onclick=b.onmouseout=b.onmouseover=b.onmousemove=b.point=null;C(a);d&&v&&([].forEach.call(v.querySelectorAll("[clip-path],[CLIP-PATH]"),
function(a){-1<a.getAttribute("clip-path").indexOf(d.element.id)&&a.removeAttribute("clip-path")}),a.clipPath=d.destroy());if(a.stops){for(v=0;v<a.stops.length;v++)a.stops[v]=a.stops[v].destroy();a.stops=null}a.safeRemoveChild(b);for(k.styledMode||a.destroyShadows();f&&f.div&&0===f.div.childNodes.length;)b=f.parentGroup,a.safeRemoveChild(f.div),delete f.div,f=b;a.alignTo&&E(k.alignedObjects,a);c(a,function(b,k){a[k]&&a[k].parentGroup===a&&a[k].destroy&&a[k].destroy();delete a[k]})},shadow:function(b,
k,f){var c=[],v,d=this.element;if(!b)this.destroyShadows();else if(!this.shadows){var n=a(b.width,3);var g=(b.opacity||.15)/n;var t=this.parentInverted?"(-1,-1)":"("+a(b.offsetX,1)+", "+a(b.offsetY,1)+")";for(v=1;v<=n;v++){var m=d.cloneNode(0);var O=2*n+1-2*v;D(m,{stroke:b.color||"#000000","stroke-opacity":g*v,"stroke-width":O,transform:"translate"+t,fill:"none"});m.setAttribute("class",(m.getAttribute("class")||"")+" highcharts-shadow");f&&(D(m,"height",Math.max(D(m,"height")-O,0)),m.cutHeight=O);
k?k.element.appendChild(m):d.parentNode&&d.parentNode.insertBefore(m,d);c.push(m)}this.shadows=c}return this},destroyShadows:function(){(this.shadows||[]).forEach(function(a){this.safeRemoveChild(a)},this);this.shadows=void 0},xGetter:function(a){"circle"===this.element.nodeName&&("x"===a?a="cx":"y"===a&&(a="cy"));return this._defaultGetter(a)},_defaultGetter:function(b){b=a(this[b+"Value"],this[b],this.element?this.element.getAttribute(b):null,0);/^[\-0-9\.]+$/.test(b)&&(b=parseFloat(b));return b},
dSetter:function(a,b,k){a&&a.join&&(a=a.join(" "));/(NaN| {2}|^$)/.test(a)&&(a="M 0 0");this[b]!==a&&(k.setAttribute(b,a),this[b]=a)},dashstyleSetter:function(a){var k,f=this["stroke-width"];"inherit"===f&&(f=1);if(a=a&&a.toLowerCase()){a=a.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(k=a.length;k--;)a[k]=b(a[k])*
f;a=a.join(",").replace(/NaN/g,"none");this.element.setAttribute("stroke-dasharray",a)}},alignSetter:function(a){var b={left:"start",center:"middle",right:"end"};b[a]&&(this.alignValue=a,this.element.setAttribute("text-anchor",b[a]))},opacitySetter:function(a,b,k){this[b]=a;k.setAttribute(b,a)},titleSetter:function(b){var k=this.element.getElementsByTagName("title")[0];k||(k=K.createElementNS(this.SVG_NS,"title"),this.element.appendChild(k));k.firstChild&&k.removeChild(k.firstChild);k.appendChild(K.createTextNode(String(a(b,
"")).replace(/<[^>]*>/g,"").replace(/</g,"<").replace(/>/g,">")))},textSetter:function(a){a!==this.textStr&&(delete this.bBox,delete this.textPxLength,this.textStr=a,this.added&&this.renderer.buildText(this))},setTextPath:function(a,b){var k=this.element,v={textAnchor:"text-anchor"},d=!1,n=this.textPathWrapper,g=!n;b=m(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},b);var t=b.attributes;if(a&&b&&b.enabled){n&&null===n.element.parentNode?(g=!0,n=n.destroy()):n&&this.removeTextOutline.call(n.parentGroup,
[].slice.call(k.getElementsByTagName("tspan")));this.options&&this.options.padding&&(t.dx=-this.options.padding);n||(this.textPathWrapper=n=this.renderer.createElement("textPath"),d=!0);var O=n.element;(b=a.element.getAttribute("id"))||a.element.setAttribute("id",b=f());if(g)for(a=k.getElementsByTagName("tspan");a.length;)a[0].setAttribute("y",0),l(t.dx)&&a[0].setAttribute("x",-t.dx),O.appendChild(a[0]);d&&n.add({element:this.text?this.text.element:k});O.setAttributeNS("http://www.w3.org/1999/xlink",
"href",this.renderer.url+"#"+b);z(t.dy)&&(O.parentNode.setAttribute("dy",t.dy),delete t.dy);z(t.dx)&&(O.parentNode.setAttribute("dx",t.dx),delete t.dx);c(t,function(a,b){O.setAttribute(v[b]||b,a)});k.removeAttribute("transform");this.removeTextOutline.call(n,[].slice.call(k.getElementsByTagName("tspan")));this.text&&!this.renderer.styledMode&&this.attr({fill:"none","stroke-width":0});this.applyTextOutline=this.updateTransform=M}else n&&(delete this.updateTransform,delete this.applyTextOutline,this.destroyTextPath(k,
a),this.updateTransform(),this.options.rotation&&this.applyTextOutline(this.options.style.textOutline));return this},destroyTextPath:function(a,b){var k=a.getElementsByTagName("text")[0];if(k){if(k.removeAttribute("dx"),k.removeAttribute("dy"),b.element.setAttribute("id",""),k.getElementsByTagName("textPath").length){for(a=this.textPathWrapper.element.childNodes;a.length;)k.appendChild(a[0]);k.removeChild(this.textPathWrapper.element)}}else if(a.getAttribute("dx")||a.getAttribute("dy"))a.removeAttribute("dx"),
a.removeAttribute("dy");this.textPathWrapper=this.textPathWrapper.destroy()},fillSetter:function(a,b,k){"string"===typeof a?k.setAttribute(b,a):a&&this.complexColor(a,b,k)},visibilitySetter:function(a,b,k){"inherit"===a?k.removeAttribute(b):this[b]!==a&&k.setAttribute(b,a);this[b]=a},zIndexSetter:function(a,k){var f=this.renderer,c=this.parentGroup,v=(c||f).element||f.box,d=this.element,n=!1;f=v===f.box;var g=this.added;var t;z(a)?(d.setAttribute("data-z-index",a),a=+a,this[k]===a&&(g=!1)):z(this[k])&&
d.removeAttribute("data-z-index");this[k]=a;if(g){(a=this.zIndex)&&c&&(c.handleZ=!0);k=v.childNodes;for(t=k.length-1;0<=t&&!n;t--){c=k[t];g=c.getAttribute("data-z-index");var m=!z(g);if(c!==d)if(0>a&&m&&!f&&!t)v.insertBefore(d,k[t]),n=!0;else if(b(g)<=a||m&&(!z(a)||0<=a))v.insertBefore(d,k[t+1]||null),n=!0}n||(v.insertBefore(d,k[f?3:0]||null),n=!0)}return n},_defaultSetter:function(a,b,k){k.setAttribute(b,a)}});R.prototype.yGetter=R.prototype.xGetter;R.prototype.translateXSetter=R.prototype.translateYSetter=
R.prototype.rotationSetter=R.prototype.verticalAlignSetter=R.prototype.rotationOriginXSetter=R.prototype.rotationOriginYSetter=R.prototype.scaleXSetter=R.prototype.scaleYSetter=R.prototype.matrixSetter=function(a,b){this[b]=a;this.doTransform=!0};R.prototype["stroke-widthSetter"]=R.prototype.strokeSetter=function(a,b,k){this[b]=a;this.stroke&&this["stroke-width"]?(R.prototype.fillSetter.call(this,this.stroke,"stroke",k),k.setAttribute("stroke-width",this["stroke-width"]),this.hasStroke=!0):"stroke-width"===
b&&0===a&&this.hasStroke?(k.removeAttribute("stroke"),this.hasStroke=!1):this.renderer.styledMode&&this["stroke-width"]&&(k.setAttribute("stroke-width",this["stroke-width"]),this.hasStroke=!0)};h=e.SVGRenderer=function(){this.init.apply(this,arguments)};L(h.prototype,{Element:R,SVG_NS:S,init:function(a,b,f,c,v,d,n){var g=this.createElement("svg").attr({version:"1.1","class":"highcharts-root"});n||g.css(this.getStyle(c));c=g.element;a.appendChild(c);D(a,"dir","ltr");-1===a.innerHTML.indexOf("xmlns")&&
D(c,"xmlns",this.SVG_NS);this.isSVG=!0;this.box=c;this.boxWrapper=g;this.alignedObjects=[];this.url=(N||k)&&K.getElementsByTagName("base").length?W.location.href.split("#")[0].replace(/<[^>]*>/g,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"";this.createElement("desc").add().element.appendChild(K.createTextNode("Created with Highcharts 8.0.1"));this.defs=this.createElement("defs").add();this.allowHTML=d;this.forExport=v;this.styledMode=n;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount=
0;this.setSize(b,f,!1);var t;N&&a.getBoundingClientRect&&(b=function(){B(a,{left:0,top:0});t=a.getBoundingClientRect();B(a,{left:Math.ceil(t.left)-t.left+"px",top:Math.ceil(t.top)-t.top+"px"})},b(),this.unSubPixelFix=H(W,"resize",b))},definition:function(a){function b(a,f){var v;x(a).forEach(function(a){var d=k.createElement(a.tagName),n={};c(a,function(a,b){"tagName"!==b&&"children"!==b&&"textContent"!==b&&(n[b]=a)});d.attr(n);d.add(f||k.defs);a.textContent&&d.element.appendChild(K.createTextNode(a.textContent));
b(a.children||[],d);v=d});return v}var k=this;return b(a)},getStyle:function(a){return this.style=L({fontFamily:'"Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif',fontSize:"12px"},a)},setStyle:function(a){this.boxWrapper.css(this.getStyle(a))},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var a=this.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();u(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:M,getRadialAttr:function(a,b){return{cx:a[0]-a[2]/2+b.cx*a[2],cy:a[1]-a[2]/2+b.cy*a[2],r:b.r*a[2]}},truncate:function(a,b,k,f,c,v,d){var n=this,g=a.rotation,t,m=f?1:0,O=(k||f).length,x=O,M=[],A=function(a){b.firstChild&&b.removeChild(b.firstChild);a&&b.appendChild(K.createTextNode(a))},C=function(v,g){g=g||v;if("undefined"===typeof M[g])if(b.getSubStringLength)try{M[g]=
c+b.getSubStringLength(0,f?g+1:g)}catch(ka){""}else n.getSpanWidth&&(A(d(k||f,v)),M[g]=c+n.getSpanWidth(a,b));return M[g]},l;a.rotation=0;var p=C(b.textContent.length);if(l=c+p>v){for(;m<=O;)x=Math.ceil((m+O)/2),f&&(t=d(f,x)),p=C(x,t&&t.length-1),m===O?m=O+1:p>v?O=x-1:m=x;0===O?A(""):k&&O===k.length-1||A(t||d(k||f,x))}f&&f.splice(0,x);a.actualWidth=p;a.rotation=g;return l},escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},buildText:function(k){var f=k.element,v=this,d=v.forExport,
n=a(k.textStr,"").toString(),g=-1!==n.indexOf("<"),t=f.childNodes,m,x=D(f,"x"),M=k.styles,A=k.textWidth,C=M&&M.lineHeight,l=M&&M.textOutline,p=M&&"ellipsis"===M.textOverflow,q=M&&"nowrap"===M.whiteSpace,J=M&&M.fontSize,U,N=t.length;M=A&&!k.added&&this.box;var e=function(a){var k;v.styledMode||(k=/(px|em)$/.test(a&&a.style.fontSize)?a.style.fontSize:J||v.style.fontSize||12);return C?b(C):v.fontMetrics(k,a.getAttribute("style")?a:f).h},Q=function(a,b){c(v.escapes,function(k,f){b&&-1!==b.indexOf(k)||
(a=a.toString().replace(new RegExp(k,"g"),f))});return a},u=function(a,b){var k=a.indexOf("<");a=a.substring(k,a.indexOf(">")-k);k=a.indexOf(b+"=");if(-1!==k&&(k=k+b.length+1,b=a.charAt(k),'"'===b||"'"===b))return a=a.substring(k+1),a.substring(0,a.indexOf(b))},z=/<br.*?>/g;var W=[n,p,q,C,l,J,A].join();if(W!==k.textCache){for(k.textCache=W;N--;)f.removeChild(t[N]);g||l||p||A||-1!==n.indexOf(" ")&&(!q||z.test(n))?(M&&M.appendChild(f),g?(n=v.styledMode?n.replace(/<(b|strong)>/g,'<span class="highcharts-strong">').replace(/<(i|em)>/g,
'<span class="highcharts-emphasized">'):n.replace(/<(b|strong)>/g,'<span style="font-weight:bold">').replace(/<(i|em)>/g,'<span style="font-style:italic">'),n=n.replace(/<a/g,"<span").replace(/<\/(b|strong|i|em|a)>/g,"</span>").split(z)):n=[n],n=n.filter(function(a){return""!==a}),n.forEach(function(a,b){var c=0,n=0;a=a.replace(/^\s+|\s+$/g,"").replace(/<span/g,"|||<span").replace(/<\/span>/g,"</span>|||");var g=a.split("|||");g.forEach(function(a){if(""!==a||1===g.length){var t={},M=K.createElementNS(v.SVG_NS,
"tspan"),C,l;(C=u(a,"class"))&&D(M,"class",C);if(C=u(a,"style"))C=C.replace(/(;| |^)color([ :])/,"$1fill$2"),D(M,"style",C);(l=u(a,"href"))&&!d&&(D(M,"onclick",'location.href="'+l+'"'),D(M,"class","highcharts-anchor"),v.styledMode||B(M,{cursor:"pointer"}));a=Q(a.replace(/<[a-zA-Z\/](.|\n)*?>/g,"")||" ");if(" "!==a){M.appendChild(K.createTextNode(a));c?t.dx=0:b&&null!==x&&(t.x=x);D(M,t);f.appendChild(M);!c&&U&&(!O&&d&&B(M,{display:"block"}),D(M,"dy",e(M)));if(A){var T=a.replace(/([^\^])-/g,"$1- ").split(" ");
t=!q&&(1<g.length||b||1<T.length);l=0;var N=e(M);if(p)m=v.truncate(k,M,a,void 0,0,Math.max(0,A-parseInt(J||12,10)),function(a,b){return a.substring(0,b)+"\u2026"});else if(t)for(;T.length;)T.length&&!q&&0<l&&(M=K.createElementNS(S,"tspan"),D(M,{dy:N,x:x}),C&&D(M,"style",C),M.appendChild(K.createTextNode(T.join(" ").replace(/- /g,"-"))),f.appendChild(M)),v.truncate(k,M,null,T,0===l?n:0,A,function(a,b){return T.slice(0,b).join(" ").replace(/- /g,"-")}),n=k.actualWidth,l++}c++}}});U=U||f.childNodes.length}),
p&&m&&k.attr("title",Q(k.textStr,["<",">"])),M&&M.removeChild(f),l&&k.applyTextOutline&&k.applyTextOutline(l)):f.appendChild(K.createTextNode(Q(n)))}},getContrast:function(a){a=r(a).rgba;a[0]*=1;a[1]*=1.2;a[2]*=.5;return 459<a[0]+a[1]+a[2]?"#000000":"#FFFFFF"},button:function(a,b,k,f,c,d,n,g,t,O){var M=this.label(a,b,k,t,null,null,O,null,"button"),x=0,A=this.styledMode;M.attr(m({padding:8,r:2},c));if(!A){c=m({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1,style:{color:"#333333",cursor:"pointer",
fontWeight:"normal"}},c);var C=c.style;delete c.style;d=m(c,{fill:"#e6e6e6"},d);var l=d.style;delete d.style;n=m(c,{fill:"#e6ebf5",style:{color:"#000000",fontWeight:"bold"}},n);var p=n.style;delete n.style;g=m(c,{style:{color:"#cccccc"}},g);var q=g.style;delete g.style}H(M.element,v?"mouseover":"mouseenter",function(){3!==x&&M.setState(1)});H(M.element,v?"mouseout":"mouseleave",function(){3!==x&&M.setState(x)});M.setState=function(a){1!==a&&(M.state=x=a);M.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+
["normal","hover","pressed","disabled"][a||0]);A||M.attr([c,d,n,g][a||0]).css([C,l,p,q][a||0])};A||M.attr(c).css(L({cursor:"default"},C));return M.on("click",function(a){3!==x&&f.call(M,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 b=this.styledMode?{}:{fill:"none"};p(a)?b.d=a:g(a)&&L(b,a);return this.createElement("path").attr(b)},circle:function(a,b,k){a=g(a)?a:"undefined"===typeof a?{}:
{x:a,y:b,r:k};b=this.createElement("circle");b.xSetter=b.ySetter=function(a,b,k){k.setAttribute("c"+b,a)};return b.attr(a)},arc:function(a,b,k,f,c,v){g(a)?(f=a,b=f.y,k=f.r,a=f.x):f={innerR:f,start:c,end:v};a=this.symbol("arc",a,b,k,k,f);a.r=k;return a},rect:function(a,b,k,f,c,v){c=g(a)?a.r:c;var d=this.createElement("rect");a=g(a)?a:"undefined"===typeof a?{}:{x:a,y:b,width:Math.max(k,0),height:Math.max(f,0)};this.styledMode||("undefined"!==typeof v&&(a.strokeWidth=v,a=d.crisp(a)),a.fill="none");c&&
(a.r=c);d.rSetter=function(a,b,k){d.r=a;D(k,{rx:a,ry:a})};d.rGetter=function(){return d.r};return d.attr(a)},setSize:function(b,k,f){var c=this.alignedObjects,v=c.length;this.width=b;this.height=k;for(this.boxWrapper.animate({width:b,height:k},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:a(f,!0)?void 0:0});v--;)c[v].align()},g:function(a){var b=this.createElement("g");return a?b.attr({"class":"highcharts-"+a}):b},image:function(a,b,k,f,c,v){var d=
{preserveAspectRatio:"none"},n=function(a,b){a.setAttributeNS?a.setAttributeNS("http://www.w3.org/1999/xlink","href",b):a.setAttribute("hc-svg-href",b)},g=function(b){n(t.element,a);v.call(t,b)};1<arguments.length&&L(d,{x:b,y:k,width:f,height:c});var t=this.createElement("image").attr(d);v?(n(t.element,"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="),d=new W.Image,H(d,"load",g),d.src=a,d.complete&&g({})):n(t.element,a);return t},symbol:function(b,k,f,c,v,d){var g=this,
t=/^url\((.*?)\)$/,m=t.test(b),O=!m&&(this.symbols[b]?b:"circle"),M=O&&this.symbols[O],x=z(k)&&M&&M.call(this.symbols,Math.round(k),Math.round(f),c,v,d);if(M){var A=this.path(x);g.styledMode||A.attr("fill","none");L(A,{symbolName:O,x:k,y:f,width:c,height:v});d&&L(A,d)}else if(m){var C=b.match(t)[1];A=this.image(C);A.imgwidth=a(U[C]&&U[C].width,d&&d.width);A.imgheight=a(U[C]&&U[C].height,d&&d.height);var l=function(){A.attr({width:A.width,height:A.height})};["width","height"].forEach(function(a){A[a+
"Setter"]=function(a,b){var k={},f=this["img"+b],c="width"===b?"translateX":"translateY";this[b]=a;z(f)&&(d&&"within"===d.backgroundSize&&this.width&&this.height&&(f=Math.round(f*Math.min(this.width/this.imgwidth,this.height/this.imgheight))),this.element&&this.element.setAttribute(b,f),this.alignByTranslate||(k[c]=((this[b]||0)-f)/2,this.attr(k)))}});z(k)&&A.attr({x:k,y:f});A.isImg=!0;z(A.imgwidth)&&z(A.imgheight)?l():(A.attr({width:0,height:0}),y("img",{onload:function(){var a=n[g.chartIndex];0===
this.width&&(B(this,{position:"absolute",top:"-999em"}),K.body.appendChild(this));U[C]={width:this.width,height:this.height};A.imgwidth=this.width;A.imgheight=this.height;A.element&&l();this.parentNode&&this.parentNode.removeChild(this);g.imgCount--;if(!g.imgCount&&a&&!a.hasLoaded)a.onload()},src:C}),this.imgCount++)}return A},symbols:{circle:function(a,b,k,f){return this.arc(a+k/2,b+f/2,k/2,f/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},square:function(a,b,k,f){return["M",a,b,"L",a+k,b,a+k,b+f,
a,b+f,"Z"]},triangle:function(a,b,k,f){return["M",a+k/2,b,"L",a+k,b+f,a,b+f,"Z"]},"triangle-down":function(a,b,k,f){return["M",a,b,"L",a+k,b,a+k/2,b+f,"Z"]},diamond:function(a,b,k,f){return["M",a+k/2,b,"L",a+k,b+f/2,a+k/2,b+f,a,b+f/2,"Z"]},arc:function(b,k,f,c,v){var d=v.start,n=v.r||f,g=v.r||c||f,t=v.end-.001;f=v.innerR;c=a(v.open,.001>Math.abs(v.end-v.start-2*Math.PI));var m=Math.cos(d),O=Math.sin(d),M=Math.cos(t);t=Math.sin(t);d=a(v.longArc,.001>v.end-d-Math.PI?0:1);n=["M",b+n*m,k+g*O,"A",n,g,
0,d,a(v.clockwise,1),b+n*M,k+g*t];z(f)&&n.push(c?"M":"L",b+f*M,k+f*t,"A",f,f,0,d,z(v.clockwise)?1-v.clockwise:0,b+f*m,k+f*O);n.push(c?"":"Z");return n},callout:function(a,b,k,f,c){var v=Math.min(c&&c.r||0,k,f),d=v+6,n=c&&c.anchorX;c=c&&c.anchorY;var g=["M",a+v,b,"L",a+k-v,b,"C",a+k,b,a+k,b,a+k,b+v,"L",a+k,b+f-v,"C",a+k,b+f,a+k,b+f,a+k-v,b+f,"L",a+v,b+f,"C",a,b+f,a,b+f,a,b+f-v,"L",a,b+v,"C",a,b,a,b,a+v,b];n&&n>k?c>b+d&&c<b+f-d?g.splice(13,3,"L",a+k,c-6,a+k+6,c,a+k,c+6,a+k,b+f-v):g.splice(13,3,"L",
a+k,f/2,n,c,a+k,f/2,a+k,b+f-v):n&&0>n?c>b+d&&c<b+f-d?g.splice(33,3,"L",a,c+6,a-6,c,a,c-6,a,b+v):g.splice(33,3,"L",a,f/2,n,c,a,f/2,a,b+v):c&&c>f&&n>a+d&&n<a+k-d?g.splice(23,3,"L",n+6,b+f,n,b+f+6,n-6,b+f,a+v,b+f):c&&0>c&&n>a+d&&n<a+k-d&&g.splice(3,3,"L",n-6,b,n,b-6,n+6,b,k-v,b);return g}},clipRect:function(a,b,k,c){var v=f()+"-",d=this.createElement("clipPath").attr({id:v}).add(this.defs);a=this.rect(a,b,k,c,0).add(d);a.id=v;a.clipPath=d;a.count=0;return a},text:function(a,b,k,f){var c={};if(f&&(this.allowHTML||
!this.forExport))return this.html(a,b,k);c.x=Math.round(b||0);k&&(c.y=Math.round(k));z(a)&&(c.text=a);a=this.createElement("text").attr(c);f||(a.xSetter=function(a,b,k){var f=k.getElementsByTagName("tspan"),c=k.getAttribute(b),v;for(v=0;v<f.length;v++){var d=f[v];d.getAttribute(b)===c&&d.setAttribute(b,a)}k.setAttribute(b,a)});return a},fontMetrics:function(a,k){a=!this.styledMode&&/px/.test(a)||!W.getComputedStyle?a||k&&k.style&&k.style.fontSize||this.style&&this.style.fontSize:k&&R.prototype.getStyle.call(k,
"font-size");a=/px/.test(a)?b(a):12;k=24>a?a+3:Math.round(1.2*a);return{h:k,b:Math.round(.8*k),f:a}},rotCorr:function(a,b,k){var f=a;b&&k&&(f=Math.max(f*Math.cos(b*A),4));return{x:-a/3*Math.sin(b*A),y:f}},label:function(a,b,k,f,c,v,d,n,g){var O=this,M=O.styledMode,x=O.g("button"!==g&&"label"),A=x.text=O.text("",0,0,d).attr({zIndex:1}),C,p,q=0,K=3,J=0,S,U,N,e,u,T={},W,E,h=/^url\((.*?)\)$/.test(f),ca=M||h,B=function(){return M?C.strokeWidth()%2/2:(W?parseInt(W,10):0)%2/2};g&&x.addClass("highcharts-"+
g);var y=function(){var a=A.element.style,b={};p=("undefined"===typeof S||"undefined"===typeof U||u)&&z(A.textStr)&&A.getBBox();x.width=(S||p.width||0)+2*K+J;x.height=(U||p.height||0)+2*K;E=K+Math.min(O.fontMetrics(a&&a.fontSize,A).b,p?p.height:Infinity);ca&&(C||(x.box=C=O.symbols[f]||h?O.symbol(f):O.rect(),C.addClass(("button"===g?"":"highcharts-label-box")+(g?" highcharts-"+g+"-box":"")),C.add(x),a=B(),b.x=a,b.y=(n?-E:0)+a),b.width=Math.round(x.width),b.height=Math.round(x.height),C.attr(L(b,T)),
T={})};var r=function(){var a=J+K;var b=n?0:E;z(S)&&p&&("center"===u||"right"===u)&&(a+={center:.5,right:1}[u]*(S-p.width));if(a!==A.x||b!==A.y)A.attr("x",a),A.hasBoxWidthChanged&&(p=A.getBBox(!0),y()),"undefined"!==typeof b&&A.attr("y",b);A.x=a;A.y=b};var Q=function(a,b){C?C.attr(a,b):T[a]=b};x.onAdd=function(){A.add(x);x.attr({text:a||0===a?a:"",x:b,y:k});C&&z(c)&&x.attr({anchorX:c,anchorY:v})};x.widthSetter=function(a){S=l(a)?a:null};x.heightSetter=function(a){U=a};x["text-alignSetter"]=function(a){u=
a};x.paddingSetter=function(a){z(a)&&a!==K&&(K=x.padding=a,r())};x.paddingLeftSetter=function(a){z(a)&&a!==J&&(J=a,r())};x.alignSetter=function(a){a={left:0,center:.5,right:1}[a];a!==q&&(q=a,p&&x.attr({x:N}))};x.textSetter=function(a){"undefined"!==typeof a&&A.attr({text:a});y();r()};x["stroke-widthSetter"]=function(a,b){a&&(ca=!0);W=this["stroke-width"]=a;Q(b,a)};M?x.rSetter=function(a,b){Q(b,a)}:x.strokeSetter=x.fillSetter=x.rSetter=function(a,b){"r"!==b&&("fill"===b&&a&&(ca=!0),x[b]=a);Q(b,a)};
x.anchorXSetter=function(a,b){c=x.anchorX=a;Q(b,Math.round(a)-B()-N)};x.anchorYSetter=function(a,b){v=x.anchorY=a;Q(b,a-e)};x.xSetter=function(a){x.x=a;q&&(a-=q*((S||p.width)+2*K),x["forceAnimate:x"]=!0);N=Math.round(a);x.attr("translateX",N)};x.ySetter=function(a){e=x.y=Math.round(a);x.attr("translateY",e)};var V=x.css;d={css:function(a){if(a){var b={};a=m(a);x.textProps.forEach(function(k){"undefined"!==typeof a[k]&&(b[k]=a[k],delete a[k])});A.css(b);"width"in b&&y();"fontSize"in b&&(y(),r())}return V.call(x,
a)},getBBox:function(){return{width:p.width+2*K,height:p.height+2*K,x:p.x-K,y:p.y-K}},destroy:function(){t(x.element,"mouseenter");t(x.element,"mouseleave");A&&(A=A.destroy());C&&(C=C.destroy());R.prototype.destroy.call(x);x=O=y=r=Q=null}};M||(d.shadow=function(a){a&&(y(),C&&C.shadow(a));return x});return L(x,d)}});e.Renderer=h});P(w,"parts/Html.js",[w["parts/Globals.js"],w["parts/Utilities.js"]],function(e,h){var F=h.attr,r=h.createElement,H=h.css,G=h.defined,I=h.extend,D=h.pick,y=h.pInt,B=e.isFirefox,
z=e.isMS,u=e.isWebKit,E=e.SVGElement;h=e.SVGRenderer;var L=e.win;I(E.prototype,{htmlCss:function(q){var p="SPAN"===this.element.tagName&&q&&"width"in q,l=D(p&&q.width,void 0);if(p){delete q.width;this.textWidth=l;var g=!0}q&&"ellipsis"===q.textOverflow&&(q.whiteSpace="nowrap",q.overflow="hidden");this.styles=I(this.styles,q);H(this.element,q);g&&this.htmlUpdateTransform();return this},htmlGetBBox:function(){var q=this.element;return{x:q.offsetLeft,y:q.offsetTop,width:q.offsetWidth,height:q.offsetHeight}},
htmlUpdateTransform:function(){if(this.added){var q=this.renderer,p=this.element,l=this.translateX||0,g=this.translateY||0,d=this.x||0,m=this.y||0,c=this.textAlign||"left",a={left:0,center:.5,right:1}[c],b=this.styles,t=b&&b.whiteSpace;H(p,{marginLeft:l,marginTop:g});!q.styledMode&&this.shadows&&this.shadows.forEach(function(a){H(a,{marginLeft:l+1,marginTop:g+1})});this.inverted&&[].forEach.call(p.childNodes,function(a){q.invertChild(a,p)});if("SPAN"===p.tagName){b=this.rotation;var x=this.textWidth&&
y(this.textWidth),C=[b,c,p.innerHTML,this.textWidth,this.textAlign].join(),f;(f=x!==this.oldTextWidth)&&!(f=x>this.oldTextWidth)&&((f=this.textPxLength)||(H(p,{width:"",whiteSpace:t||"nowrap"}),f=p.offsetWidth),f=f>x);f&&(/[ \-]/.test(p.textContent||p.innerText)||"ellipsis"===p.style.textOverflow)?(H(p,{width:x+"px",display:"block",whiteSpace:t||"normal"}),this.oldTextWidth=x,this.hasBoxWidthChanged=!0):this.hasBoxWidthChanged=!1;C!==this.cTT&&(t=q.fontMetrics(p.style.fontSize,p).b,!G(b)||b===(this.oldRotation||
0)&&c===this.oldAlign||this.setSpanRotation(b,a,t),this.getSpanCorrection(!G(b)&&this.textPxLength||p.offsetWidth,t,a,b,c));H(p,{left:d+(this.xCorr||0)+"px",top:m+(this.yCorr||0)+"px"});this.cTT=C;this.oldRot