From 79ee30c6cab34aac58a37e7c4e7f2c908348de63 Mon Sep 17 00:00:00 2001 From: Peter Dias Date: Wed, 16 Dec 2020 12:36:40 +0800 Subject: [PATCH] MDL-70305 lib: Upgrade chartjs to 2.9.4 --- lib/amd/build/chartjs-lazy.min.js | 2 +- lib/amd/build/chartjs-lazy.min.js.map | 2 +- lib/amd/src/chartjs-lazy.js | 38359 +++++++++++++----------- 3 files changed, 20317 insertions(+), 18046 deletions(-) diff --git a/lib/amd/build/chartjs-lazy.min.js b/lib/amd/build/chartjs-lazy.min.js index 3c1a6d9c57f..770259d56d3 100644 --- a/lib/amd/build/chartjs-lazy.min.js +++ b/lib/amd/build/chartjs-lazy.min.js @@ -1,2 +1,2 @@ -function _typeof(e){"@babel/helpers - typeof";if("function"==typeof Symbol&&"symbol"==typeof Symbol.iterator){_typeof=function(e){return typeof e}}else{_typeof=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e}}return _typeof(e)}(function(e){if("object"===("undefined"==typeof exports?"undefined":_typeof(exports))&&"undefined"!=typeof module){module.exports=e()}else if("function"==typeof define&&define.amd){define ("core/chartjs-lazy",[],e)}else{var t;if("undefined"!=typeof window){t=window}else if("undefined"!=typeof global){t=global}else if("undefined"!=typeof self){t=self}else{t=this}t.Chart=e()}})(function(){var e;return function d(c,e,t){function a(i,o){if(!e[i]){if(!c[i]){var s="function"==typeof require&&require;if(!o&&s)return s(i,!0);if(n)return n(i,!0);var h=new Error("Cannot find module '"+i+"'");throw h.code="MODULE_NOT_FOUND",h}var u=e[i]={exports:{}};c[i][0].call(u.exports,function(t){var e=c[i][1][t];return a(e?e:t)},u,u.exports,d,c,e,t)}return e[i].exports}for(var n="function"==typeof require&&require,i=0;it||e[3]&&1>e[3]){return n(e,t)}return"rgb("+e[0]+", "+e[1]+", "+e[2]+")"},rgbaString:n,percentString:function(e,t){if(1>t||e[3]&&1>e[3]){return l(e,t)}var a=Math.round(100*(e[0]/255)),o=Math.round(100*(e[1]/255)),i=Math.round(100*(e[2]/255));return"rgb("+a+"%, "+o+"%, "+i+"%)"},percentaString:l,hslString:function(e,t){if(1>t||e[3]&&1>e[3]){return s(e,t)}return"hsl("+e[0]+", "+e[1]+"%, "+e[2]+"%)"},hslaString:s,hwbString:function(e,t){if(t===void 0){t=e[3]!==void 0?e[3]:1}return"hwb("+e[0]+", "+e[1]+"%, "+e[2]+"%"+(t!==void 0&&1!==t?", "+t:"")+")"},keyword:function(e){return u[e.slice(0,3)]}};function a(e){if(!e){return}var t=[0,0,0],o=1,n=e.match(/^#([a-fA-F0-9]{3})$/i);if(n){n=n[1];for(var l=0;lt.length?"0"+t:t}var u={};for(var m in h){u[h[m]]=m}},{5:5}],2:[function(e,t){var a=e(4),o=e(1),i=function(e){if(e instanceof i){return e}if(!(this instanceof i)){return new i(e)}this.valid=!1;this.values={rgb:[0,0,0],hsl:[0,0,0],hsv:[0,0,0],hwb:[0,0,0],cmyk:[0,0,0,0],alpha:1};var t;if("string"==typeof e){t=o.getRgba(e);if(t){this.setValues("rgb",t)}else if(t=o.getHsla(e)){this.setValues("hsl",t)}else if(t=o.getHwb(e)){this.setValues("hwb",t)}}else if("object"===_typeof(e)){t=e;if(t.r!==void 0||t.red!==void 0){this.setValues("rgb",t)}else if(t.l!==void 0||t.lightness!==void 0){this.setValues("hsl",t)}else if(t.v!==void 0||t.value!==void 0){this.setValues("hsv",t)}else if(t.w!==void 0||t.whiteness!==void 0){this.setValues("hwb",t)}else if(t.c!==void 0||t.cyan!==void 0){this.setValues("cmyk",t)}}};i.prototype={isValid:function isValid(){return this.valid},rgb:function rgb(){return this.setSpace("rgb",arguments)},hsl:function hsl(){return this.setSpace("hsl",arguments)},hsv:function hsv(){return this.setSpace("hsv",arguments)},hwb:function hwb(){return this.setSpace("hwb",arguments)},cmyk:function cmyk(){return this.setSpace("cmyk",arguments)},rgbArray:function rgbArray(){return this.values.rgb},hslArray:function hslArray(){return this.values.hsl},hsvArray:function hsvArray(){return this.values.hsv},hwbArray:function hwbArray(){var e=this.values;if(1!==e.alpha){return e.hwb.concat([e.alpha])}return e.hwb},cmykArray:function cmykArray(){return this.values.cmyk},rgbaArray:function rgbaArray(){var e=this.values;return e.rgb.concat([e.alpha])},hslaArray:function hslaArray(){var e=this.values;return e.hsl.concat([e.alpha])},alpha:function alpha(e){if(e===void 0){return this.values.alpha}this.setValues("alpha",e);return this},red:function red(e){return this.setChannel("rgb",0,e)},green:function green(e){return this.setChannel("rgb",1,e)},blue:function blue(e){return this.setChannel("rgb",2,e)},hue:function hue(e){if(e){e%=360;e=0>e?360+e:e}return this.setChannel("hsl",0,e)},saturation:function saturation(e){return this.setChannel("hsl",1,e)},lightness:function lightness(e){return this.setChannel("hsl",2,e)},saturationv:function saturationv(e){return this.setChannel("hsv",1,e)},whiteness:function whiteness(e){return this.setChannel("hwb",1,e)},blackness:function blackness(e){return this.setChannel("hwb",2,e)},value:function value(e){return this.setChannel("hsv",2,e)},cyan:function cyan(e){return this.setChannel("cmyk",0,e)},magenta:function magenta(e){return this.setChannel("cmyk",1,e)},yellow:function yellow(e){return this.setChannel("cmyk",2,e)},black:function black(e){return this.setChannel("cmyk",3,e)},hexString:function hexString(){return o.hexString(this.values.rgb)},rgbString:function rgbString(){return o.rgbString(this.values.rgb,this.values.alpha)},rgbaString:function rgbaString(){return o.rgbaString(this.values.rgb,this.values.alpha)},percentString:function percentString(){return o.percentString(this.values.rgb,this.values.alpha)},hslString:function hslString(){return o.hslString(this.values.hsl,this.values.alpha)},hslaString:function hslaString(){return o.hslaString(this.values.hsl,this.values.alpha)},hwbString:function hwbString(){return o.hwbString(this.values.hwb,this.values.alpha)},keyword:function keyword(){return o.keyword(this.values.rgb,this.values.alpha)},rgbNumber:function rgbNumber(){var e=this.values.rgb;return e[0]<<16|e[1]<<8|e[2]},luminosity:function luminosity(){for(var e=this.values.rgb,t=[],a=0,o;a=o?o/12.92:Math.pow((o+.055)/1.055,2.4)}return .2126*t[0]+.7152*t[1]+.0722*t[2]},contrast:function contrast(e){var t=this.luminosity(),a=e.luminosity();if(t>a){return(t+.05)/(a+.05)}return(a+.05)/(t+.05)},level:function level(e){var t=this.contrast(e);if(7.1<=t){return"AAA"}return 4.5<=t?"AA":""},dark:function dark(){var e=this.values.rgb,t=(299*e[0]+587*e[1]+114*e[2])/1e3;return 128>t},light:function light(){return!this.dark()},negate:function negate(){for(var e=[],t=0;3>t;t++){e[t]=255-this.values.rgb[t]}this.setValues("rgb",e);return this},lighten:function lighten(e){var t=this.values.hsl;t[2]+=t[2]*e;this.setValues("hsl",t);return this},darken:function darken(e){var t=this.values.hsl;t[2]-=t[2]*e;this.setValues("hsl",t);return this},saturate:function saturate(e){var t=this.values.hsl;t[1]+=t[1]*e;this.setValues("hsl",t);return this},desaturate:function desaturate(e){var t=this.values.hsl;t[1]-=t[1]*e;this.setValues("hsl",t);return this},whiten:function whiten(e){var t=this.values.hwb;t[1]+=t[1]*e;this.setValues("hwb",t);return this},blacken:function blacken(e){var t=this.values.hwb;t[2]+=t[2]*e;this.setValues("hwb",t);return this},greyscale:function greyscale(){var e=this.values.rgb,t=.3*e[0]+.59*e[1]+.11*e[2];this.setValues("rgb",[t,t,t]);return this},clearer:function clearer(e){var t=this.values.alpha;this.setValues("alpha",t-t*e);return this},opaquer:function opaquer(e){var t=this.values.alpha;this.setValues("alpha",t+t*e);return this},rotate:function rotate(e){var t=this.values.hsl,a=(t[0]+e)%360;t[0]=0>a?360+a:a;this.setValues("hsl",t);return this},mix:function mix(e,t){var o=this,i=e,n=t===void 0?.5:t,l=2*n-1,s=o.alpha()-i.alpha(),a=((-1==l*s?l:(l+s)/(1+l*s))+1)/2,d=1-a;return this.rgb(a*o.red()+d*i.red(),a*o.green()+d*i.green(),a*o.blue()+d*i.blue()).alpha(o.alpha()*n+i.alpha()*(1-n))},toJSON:function toJSON(){return this.rgb()},clone:function clone(){var e=new i,t=this.values,a=e.values,o,n;for(var l in t){if(t.hasOwnProperty(l)){o=t[l];n={}.toString.call(o);if("[object Array]"===n){a[l]=o.slice(0)}else if("[object Number]"===n){a[l]=o}else{console.error("unexpected color value:",o)}}}return e}};i.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]};i.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]};i.prototype.getValues=function(e){for(var t=this.values,a={},o=0;o=o?o:2-o;n=(o+a)/2;i=2*a/(o+a);return[t,100*i,100*n]},hsl2hwb:function(e){return i(c(e))},hsl2cmyk:function(e){return n(c(e))},hsl2keyword:function(e){return l(c(e))},hsv2rgb:h,hsv2hsl:function(e){var t=e[0],a=e[1]/100,o=e[2]/100,i,n;n=(2-a)*o;i=a*o;i/=1>=n?n:2-n;i=i||0;n/=2;return[t,100*i,100*n]},hsv2hwb:function(e){return i(h(e))},hsv2cmyk:function(e){return n(h(e))},hsv2keyword:function(e){return l(h(e))},hwb2rgb:u,hwb2hsl:function(e){return a(u(e))},hwb2hsv:function(e){return o(u(e))},hwb2cmyk:function(e){return n(u(e))},hwb2keyword:function(e){return l(u(e))},cmyk2rgb:m,cmyk2hsl:function(e){return a(m(e))},cmyk2hsv:function(e){return o(m(e))},cmyk2hwb:function(e){return i(m(e))},cmyk2keyword:function(e){return l(m(e))},keyword2rgb:v,keyword2hsl:function(e){return a(v(e))},keyword2hsv:function(e){return o(v(e))},keyword2hwb:function(e){return i(v(e))},keyword2cmyk:function(e){return n(v(e))},keyword2lab:function(e){return d(v(e))},keyword2xyz:function(e){return s(v(e))},xyz2rgb:p,xyz2lab:f,xyz2lch:function(e){return x(f(e))},lab2xyz:y,lab2rgb:k,lab2lch:x,lch2lab:_,lch2xyz:function(e){return y(_(e))},lch2rgb:function(e){return k(_(e))}};function a(e){var t=e[0]/255,a=e[1]/255,o=e[2]/255,i=Math.min(t,a,o),n=Math.max(t,a,o),d=n-i,c,u,m;if(n==i)c=0;else if(t==n)c=(a-o)/d;else if(a==n)c=2+(o-t)/d;else if(o==n)c=4+(t-a)/d;c=Math.min(60*c,360);if(0>c)c+=360;m=(i+n)/2;if(n==i)u=0;else if(.5>=m)u=d/(n+i);else u=d/(2-n-i);return[c,100*u,100*m]}function o(e){var t=e[0],a=e[1],o=e[2],i=Math.min(t,a,o),n=Math.max(t,a,o),l=n-i,d,c,u;if(0==n)c=0;else c=1e3*(l/n)/10;if(n==i)d=0;else if(t==n)d=(a-o)/l;else if(a==n)d=2+(o-t)/l;else if(o==n)d=4+(t-a)/l;d=Math.min(60*d,360);if(0>d)d+=360;u=1e3*(n/255)/10;return[d,c,u]}function i(e){var t=e[0],o=e[1],i=e[2],n=a(e)[0],l=1/255*Math.min(t,Math.min(o,i)),i=1-1/255*Math.max(t,Math.max(o,i));return[n,100*l,100*i]}function n(e){var t=e[0]/255,a=e[1]/255,o=e[2]/255,i,n,l,s;s=Math.min(1-t,1-a,1-o);i=(1-t-s)/(1-s)||0;n=(1-a-s)/(1-s)||0;l=(1-o-s)/(1-s)||0;return[100*i,100*n,100*l,100*s]}function l(e){return w[JSON.stringify(e)]}function s(e){var t=e[0]/255,a=e[1]/255,o=e[2]/255;t=.04045o)l=o*(1+a);else l=o+a-o*a;n=2*o-l;d=[0,0,0];for(var h=0;3>h;h++){s=t+1/3*-(h-1);0>s&&s++;16*s)c=n+6*(l-n)*s;else if(1>2*s)c=l;else if(2>3*s)c=n+6*((l-n)*(2/3-s));else c=n;d[h]=255*c}return d}function h(e){var a=e[0]/60,o=e[1]/100,i=e[2]/100,n=Math.floor(a)%6,l=a-Math.floor(a),s=255*i*(1-o),d=255*i*(1-o*l),c=255*i*(1-o*(1-l)),i=255*i;switch(n){case 0:return[i,c,s];case 1:return[d,i,s];case 2:return[s,i,c];case 3:return[s,d,i];case 4:return[c,s,i];case 5:return[i,s,d];}}function u(e){var t=e[0]/360,a=e[1]/100,o=e[2]/100,l=a+o,s,d,c,h;if(1=t){n=100*t/903.3;s=7.787*(n/100)+16/116}else{n=100*Math.pow((t+16)/116,3);s=Math.pow(n/100,1/3)}i=.008856>=i/95.047?i=95.047*(o/500+s-16/116)/7.787:95.047*Math.pow(o/500+s,3);l=.008859>=l/108.883?l=108.883*(s-a/200-16/116)/7.787:108.883*Math.pow(s-a/200,3);return[i,n,l]}function x(e){var t=e[0],o=e[1],a=e[2],i,n,l;i=Math.atan2(a,o);n=360*i/2/Math.PI;if(0>n){n+=360}l=Math.sqrt(o*o+a*a);return[t,l,n]}function k(e){return p(y(e))}function _(e){var t=e[0],o=e[1],i=e[2],n,l,s;s=2*(i/360)*Math.PI;n=o*Math.cos(s);l=o*Math.sin(s);return[t,n,l]}function v(e){return S[e]}var S={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},w={};for(var D in S){w[JSON.stringify(S[D])]=D}},{}],4:[function(e,t){var a=e(3),o=function(){return new d};for(var i in a){o[i+"Raw"]=function(e){return function(t){if("number"==typeof t)t=Array.prototype.slice.call(arguments);return a[e](t)}}(i);var n=/(\w+)2(\w+)/.exec(i),l=n[1],s=n[2];o[l]=o[l]||{};o[l][s]=o[i]=function(e){return function(t){if("number"==typeof t)t=Array.prototype.slice.call(arguments);var o=a[e](t);if("string"==typeof o||o===void 0)return o;for(var n=0;n>>0,o=0;ot.overflow&&!t.empty&&!t.invalidMonth&&!t.invalidWeekday&&!t.nullInput&&!t.invalidFormat&&!t.userInvalidated&&(!t.meridiem||t.meridiem&&a);if(e._strict){o=o&&0===t.charsLeftOver&&0===t.unusedTokens.length&&t.bigHour===void 0}if(null==Object.isFrozen||!Object.isFrozen(e)){e._isValid=o}else{return o}}return e._isValid}function k(e){var t=p(NaN);if(null!=e){u(y(t),e)}else{y(t).userInvalidated=!0}return t}var It=e.momentProperties=[];function _(e,t){var a,o,n;if(!l(t._isAMomentObject)){e._isAMomentObject=t._isAMomentObject}if(!l(t._i)){e._i=t._i}if(!l(t._f)){e._f=t._f}if(!l(t._l)){e._l=t._l}if(!l(t._strict)){e._strict=t._strict}if(!l(t._tzm)){e._tzm=t._tzm}if(!l(t._isUTC)){e._isUTC=t._isUTC}if(!l(t._offset)){e._offset=t._offset}if(!l(t._pf)){e._pf=y(t)}if(!l(t._locale)){e._locale=t._locale}if(0e){return Math.ceil(e)||0}else{return Math.floor(e)}}function D(e){var t=+e,a=0;if(0!=t&&isFinite(t)){a=w(t)}return a}function C(e,t,a){var o=Math.min(e.length,t.length),n=Math.abs(e.length-t.length),l=0,s;for(s=0;so;++o){l=p([2e3,o]);this._shortMonthsParse[o]=this.monthsShort(l,"").toLocaleLowerCase();this._longMonthsParse[o]=this.months(l,"").toLocaleLowerCase()}}if(a){if("MMM"===t){n=ca.call(this._shortMonthsParse,s);return-1!==n?n:null}else{n=ca.call(this._longMonthsParse,s);return-1!==n?n:null}}else{if("MMM"===t){n=ca.call(this._shortMonthsParse,s);if(-1!==n){return n}n=ca.call(this._longMonthsParse,s);return-1!==n?n:null}else{n=ca.call(this._longMonthsParse,s);if(-1!==n){return n}n=ca.call(this._shortMonthsParse,s);return-1!==n?n:null}}}function oe(e,t){var a;if(!e.isValid()){return e}if("string"==typeof t){if(/^\d+$/.test(t)){t=D(t)}else{t=e.localeData().monthsParse(t);if(!s(t)){return e}}}a=Math.min(e.date(),te(e.year(),t));e._d["set"+(e._isUTC?"UTC":"")+"Month"](t,a);return e}function ie(t){if(null!=t){oe(this,t);e.updateOffset(this,!0);return this}else{return H(this,"Month")}}function ne(){function e(e,t){return t.length-e.length}var t=[],a=[],o=[],n,l;for(n=0;12>n;n++){l=p([2e3,n]);t.push(this.monthsShort(l,""));a.push(this.months(l,""));o.push(this.months(l,""));o.push(this.monthsShort(l,""))}t.sort(e);a.sort(e);o.sort(e);for(n=0;12>n;n++){t[n]=J(t[n]);a[n]=J(a[n])}for(n=0;24>n;n++){o[n]=J(o[n])}this._monthsRegex=new RegExp("^("+o.join("|")+")","i");this._monthsShortRegex=this._monthsRegex;this._monthsStrictRegex=new RegExp("^("+a.join("|")+")","i");this._monthsShortStrictRegex=new RegExp("^("+t.join("|")+")","i")}N("Y",0,0,function(){var e=this.year();return 9999>=e?""+e:"+"+e});N(0,["YY",2],0,function(){return this.year()%100});N(0,["YYYY",4],0,"year");N(0,["YYYYY",5],0,"year");N(0,["YYYYYY",6,!0],0,"year");R("year","y");W("year",1);X("Y",Qt);X("YY",qt,Vt);X("YYYY",Kt,Ut);X("YYYYY",Jt,jt);X("YYYYYY",Jt,jt);Q(["YYYYY","YYYYYY"],0);Q("YYYY",function(t,a){a[0]=2===t.length?e.parseTwoDigitYear(t):D(t)});Q("YY",function(t,a){a[0]=e.parseTwoDigitYear(t)});Q("Y",function(e,t){t[0]=parseInt(e,10)});function re(e){return le(e)?366:365}function le(e){return 0==e%4&&0!=e%100||0==e%400}e.parseTwoDigitYear=function(e){return D(e)+(68e&&0<=e&&isFinite(s.getFullYear())){s.setFullYear(e)}return s}function de(e){var t=new Date(Date.UTC.apply(null,arguments));if(100>e&&0<=e&&isFinite(t.getUTCFullYear())){t.setUTCFullYear(e)}return t}function ce(e,t,a){var o=7+t-a,i=(7+de(e,0,o).getUTCDay()-t)%7;return-i+o-1}function he(e,t,a,o,i){var n=ce(e,o,i),l=1+7*(t-1)+(7+a-o)%7+n,s,d;if(0>=l){s=e-1;d=re(s)+l}else if(l>re(e)){s=e+1;d=l-re(e)}else{s=e;d=l}return{year:s,dayOfYear:d}}function ue(e,t,a){var o=ce(e.year(),t,a),i=Math.floor((e.dayOfYear()-o-1)/7)+1,n,l;if(1>i){l=e.year()-1;n=i+ge(l,t,a)}else if(i>ge(e.year(),t,a)){n=i-ge(e.year(),t,a);l=e.year()+1}else{l=e.year();n=i}return{week:n,year:l}}function ge(e,t,a){var o=ce(e,t,a),i=ce(e+1,t,a);return(re(e)-o+i)/7}N("w",["ww",2],"wo","week");N("W",["WW",2],"Wo","isoWeek");R("week","w");R("isoWeek","W");W("week",5);W("isoWeek",5);X("w",qt);X("ww",qt,Vt);X("W",qt);X("WW",qt,Vt);$(["w","ww","W","WW"],function(e,t,a,o){t[o.substr(0,1)]=D(e)});N("d",0,"do","day");N("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)});N("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)});N("dddd",0,0,function(e){return this.localeData().weekdays(this,e)});N("e",0,0,"weekday");N("E",0,0,"isoWeekday");R("day","d");R("weekday","e");R("isoWeekday","E");W("day",11);W("weekday",11);W("isoWeekday",11);X("d",qt);X("e",qt);X("E",qt);X("dd",function(e,t){return t.weekdaysMinRegex(e)});X("ddd",function(e,t){return t.weekdaysShortRegex(e)});X("dddd",function(e,t){return t.weekdaysRegex(e)});$(["dd","ddd","dddd"],function(e,t,a,o){var i=a._locale.weekdaysParse(e,o,a._strict);if(null!=i){t.d=i}else{y(a).invalidWeekday=e}});$(["d","e","E"],function(e,t,a,o){t[o]=D(e)});function me(e,t){if("string"!=typeof e){return e}if(!isNaN(e)){return parseInt(e,10)}e=t.weekdaysParse(e);if("number"==typeof e){return e}return null}function pe(e,t){if("string"==typeof e){return t.weekdaysParse(e)%7||7}return isNaN(e)?null:e}function fe(e,t,a){var o,n,l,s=e.toLocaleLowerCase();if(!this._weekdaysParse){this._weekdaysParse=[];this._shortWeekdaysParse=[];this._minWeekdaysParse=[];for(o=0;7>o;++o){l=p([2e3,1]).day(o);this._minWeekdaysParse[o]=this.weekdaysMin(l,"").toLocaleLowerCase();this._shortWeekdaysParse[o]=this.weekdaysShort(l,"").toLocaleLowerCase();this._weekdaysParse[o]=this.weekdays(l,"").toLocaleLowerCase()}}if(a){if("dddd"===t){n=ca.call(this._weekdaysParse,s);return-1!==n?n:null}else if("ddd"===t){n=ca.call(this._shortWeekdaysParse,s);return-1!==n?n:null}else{n=ca.call(this._minWeekdaysParse,s);return-1!==n?n:null}}else{if("dddd"===t){n=ca.call(this._weekdaysParse,s);if(-1!==n){return n}n=ca.call(this._shortWeekdaysParse,s);if(-1!==n){return n}n=ca.call(this._minWeekdaysParse,s);return-1!==n?n:null}else if("ddd"===t){n=ca.call(this._shortWeekdaysParse,s);if(-1!==n){return n}n=ca.call(this._weekdaysParse,s);if(-1!==n){return n}n=ca.call(this._minWeekdaysParse,s);return-1!==n?n:null}else{n=ca.call(this._minWeekdaysParse,s);if(-1!==n){return n}n=ca.call(this._weekdaysParse,s);if(-1!==n){return n}n=ca.call(this._shortWeekdaysParse,s);return-1!==n?n:null}}}function ye(){function e(e,t){return t.length-e.length}var t=[],a=[],o=[],n=[],l,s,d,c,h;for(l=0;7>l;l++){s=p([2e3,1]).day(l);d=this.weekdaysMin(s,"");c=this.weekdaysShort(s,"");h=this.weekdays(s,"");t.push(d);a.push(c);o.push(h);n.push(d);n.push(c);n.push(h)}t.sort(e);a.sort(e);o.sort(e);n.sort(e);for(l=0;7>l;l++){a[l]=J(a[l]);o[l]=J(o[l]);n[l]=J(n[l])}this._weekdaysRegex=new RegExp("^("+n.join("|")+")","i");this._weekdaysShortRegex=this._weekdaysRegex;this._weekdaysMinRegex=this._weekdaysRegex;this._weekdaysStrictRegex=new RegExp("^("+o.join("|")+")","i");this._weekdaysShortStrictRegex=new RegExp("^("+a.join("|")+")","i");this._weekdaysMinStrictRegex=new RegExp("^("+t.join("|")+")","i")}function be(){return this.hours()%12||12}N("H",["HH",2],0,"hour");N("h",["hh",2],0,be);N("k",["kk",2],0,function(){return this.hours()||24});N("hmm",0,0,function(){return""+be.apply(this)+V(this.minutes(),2)});N("hmmss",0,0,function(){return""+be.apply(this)+V(this.minutes(),2)+V(this.seconds(),2)});N("Hmm",0,0,function(){return""+this.hours()+V(this.minutes(),2)});N("Hmmss",0,0,function(){return""+this.hours()+V(this.minutes(),2)+V(this.seconds(),2)});function xe(e,t){N(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}xe("a",!0);xe("A",!1);R("hour","h");W("hour",13);function ke(e,t){return t._meridiemParse}X("a",ke);X("A",ke);X("H",qt);X("h",qt);X("k",qt);X("HH",qt,Vt);X("hh",qt,Vt);X("kk",qt,Vt);X("hmm",Gt);X("hmmss",Xt);X("Hmm",Gt);X("Hmmss",Xt);Q(["H","HH"],na);Q(["k","kk"],function(e,t){var a=D(e);t[na]=24===a?0:a});Q(["a","A"],function(e,t,a){a._isPm=a._locale.isPM(e);a._meridiem=e});Q(["h","hh"],function(e,t,a){t[na]=D(e);y(a).bigHour=!0});Q("hmm",function(e,t,a){var o=e.length-2;t[na]=D(e.substr(0,o));t[ra]=D(e.substr(o));y(a).bigHour=!0});Q("hmmss",function(e,t,a){var o=e.length-4,i=e.length-2;t[na]=D(e.substr(0,o));t[ra]=D(e.substr(o,2));t[la]=D(e.substr(i));y(a).bigHour=!0});Q("Hmm",function(e,t){var a=e.length-2;t[na]=D(e.substr(0,a));t[ra]=D(e.substr(a))});Q("Hmmss",function(e,t){var a=e.length-4,o=e.length-2;t[na]=D(e.substr(0,a));t[ra]=D(e.substr(a,2));t[la]=D(e.substr(o))});var ga=z("Hours",!0),ma={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],week:{dow:0,doy:6},weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],weekdaysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekdaysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],meridiemParse:/[ap]\.?m?\.?/i},pa={},fa={},ya;function _e(e){return e?e.toLowerCase().replace("_","-"):e}function ve(e){var t=0,a,o,n,l;while(t=a&&C(l,o,!0)>=a-1){break}a--}t++}return null}function Se(e){var o=null;if(!pa[e]&&"undefined"!=typeof a&&a&&a.exports){try{o=ya._abbr;t("./locale/"+e);we(o)}catch(t){}}return pa[e]}function we(e,t){var a;if(e){if(l(t)){a=Ce(e)}else{a=De(e,t)}if(a){ya=a}}return ya._abbr}function De(e,t){if(null!==t){var a=ma;t.abbr=e;if(null!=pa[e]){O("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info.");a=pa[e]._config}else if(null!=t.parentLocale){if(null!=pa[t.parentLocale]){a=pa[t.parentLocale]._config}else{if(!fa[t.parentLocale]){fa[t.parentLocale]=[]}fa[t.parentLocale].push({name:e,config:t});return null}}pa[e]=new M(A(a,t));if(fa[e]){fa[e].forEach(function(e){De(e.name,e.config)})}we(e);return pa[e]}else{delete pa[e];return null}}function Ce(e){var t;if(e&&e._locale&&e._locale._abbr){e=e._locale._abbr}if(!e){return ya}if(!o(e)){t=Se(e);if(t){return t}e=[e]}return ve(e)}function Pe(e){var t,o=e._a;if(o&&-2===y(e).overflow){t=0>o[oa]||11o[ia]||o[ia]>te(o[0],o[oa])?ia:0>o[na]||24o[ra]||59o[la]||59o[sa]||999ia)){t=ia}if(y(e)._overflowWeeks&&-1===t){t=7}if(y(e)._overflowWeekday&&-1===t){t=8}y(e).overflow=t}return e}var ba=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],xa=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]];function Te(e){var t,a,o=e._i,n=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/.exec(o)||/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/.exec(o),s,d,c,h;if(n){y(e).iso=!0;for(t=0,a=ba.length;tc?" -":" +")+(""+c).replace(/^-?/,"0").match(/..$/)[0]+"00"}break;case 4:d=s[a[5]];break;default:d=s[" GMT"];}a[5]=d;e._i=a.splice(1).join("");l=" ZZ";e._f=o+i+n+l;Le(e);y(e).rfc2822=!0}else{e._isValid=!1}}function Ie(t){var a=/^\/?Date\((\-?\d+)/i.exec(t._i);if(null!==a){t._d=new Date(+a[1]);return}Te(t);if(!1===t._isValid){delete t._isValid}else{return}Oe(t);if(!1===t._isValid){delete t._isValid}else{return}e.createFromInputFallback(t)}e.createFromInputFallback=T("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))});function Ae(e,t,a){if(null!=e){return e}if(null!=t){return t}return a}function Me(t){var a=new Date(e.now());if(t._useUTC){return[a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate()]}return[a.getFullYear(),a.getMonth(),a.getDate()]}function Re(e){var t,a,o=[],n,l;if(e._d){return}n=Me(e);if(e._w&&null==e._a[ia]&&null==e._a[oa]){Fe(e)}if(null!=e._dayOfYear){l=Ae(e._a[0],n[0]);if(e._dayOfYear>re(l)||0===e._dayOfYear){y(e)._overflowDayOfYear=!0}a=de(l,0,e._dayOfYear);e._a[oa]=a.getUTCMonth();e._a[ia]=a.getUTCDate()}for(t=0;3>t&&null==e._a[t];++t){e._a[t]=o[t]=n[t]}for(;7>t;t++){e._a[t]=o[t]=null==e._a[t]?2===t?1:0:e._a[t]}if(24===e._a[na]&&0===e._a[ra]&&0===e._a[la]&&0===e._a[sa]){e._nextDay=!0;e._a[na]=0}e._d=(e._useUTC?de:se).apply(null,o);if(null!=e._tzm){e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm)}if(e._nextDay){e._a[na]=24}}function Fe(e){var t,a,o,i,n,l,s,d;t=e._w;if(null!=t.GG||null!=t.W||null!=t.E){n=1;l=4;a=Ae(t.GG,e._a[0],ue(Ne(),1,4).year);o=Ae(t.W,1);i=Ae(t.E,1);if(1>i||7i||6t.e||6o||o>ge(a,n,l)){y(e)._overflowWeeks=!0}else if(null!=d){y(e)._overflowWeekday=!0}else{s=he(a,o,i,n,l);e._a[0]=s.year;e._dayOfYear=s.dayOfYear}}e.ISO_8601=function(){};e.RFC_2822=function(){};function Le(t){if(t._f===e.ISO_8601){Te(t);return}if(t._f===e.RFC_2822){Oe(t);return}t._a=[];y(t).empty=!0;var a=""+t._i,o,n,l,s,d,c=a.length,h=0;l=G(t._f,t._locale).match(Yt)||[];for(o=0;o=t._a[na]&&!0===y(t).bigHour&&0t){t+=12}if(!o&&12===t){t=0}return t}else{return t}}function Ye(e){var t,a,o,n,l;if(0===e._f.length){y(e).invalidFormat=!0;e._d=new Date(NaN);return}for(n=0;nthis?this:e}else{return k()}});function Ue(e,t){var a,n;if(1===t.length&&o(t[0])){t=t[0]}if(!t.length){return Ne()}a=t[0];for(n=1;ne){return-1*Math.round(-1*e)}else{return Math.round(e)}}function Ze(e,t){N(e,0,0,function(){var e=this.utcOffset(),a="+";if(0>e){e=-e;a="-"}return a+V(~~(e/60),2)+t+V(~~e%60,2)})}Ze("Z",":");Ze("ZZ","");X("Z",$t);X("ZZ",$t);Q(["Z","ZZ"],function(e,t,a){a._useUTC=!0;a._tzm=Ke($t,e)});function Ke(e,t){var a=(t||"").match(e);if(null===a){return null}var o=a[a.length-1]||[],i=(o+"").match(/([\+\-]|\d\d)/gi)||["-",0,0],n=+(60*i[1])+D(i[2]);return 0===n?0:"+"===i[0]?n:-n}function Je(t,a){var o,i;if(a._isUTC){o=a.clone();i=(S(t)||d(t)?t.valueOf():Ne(t).valueOf())-o.valueOf();o._d.setTime(o._d.valueOf()+i);e.updateOffset(o,!1);return o}else{return Ne(t).local()}}function Qe(e){return 15*-Math.round(e._d.getTimezoneOffset()/15)}e.updateOffset=function(){};function $e(){return this.isValid()?this._isUTC&&0===this._offset:!1}function et(e,t){var a=e,o=null,i,n,l;if(Ge(e)){a={ms:e._milliseconds,d:e._days,M:e._months}}else if(s(e)){a={};if(t){a[t]=e}else{a.milliseconds=e}}else if(!!(o=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/.exec(e))){i="-"===o[1]?-1:1;a={y:0,d:D(o[ia])*i,h:D(o[na])*i,m:D(o[ra])*i,s:D(o[la])*i,ms:D(Xe(1e3*o[sa]))*i}}else if(!!(o=/^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/.exec(e))){i="-"===o[1]?-1:1;a={y:tt(o[2],i),M:tt(o[3],i),w:tt(o[4],i),d:tt(o[5],i),h:tt(o[6],i),m:tt(o[7],i),s:tt(o[8],i)}}else if(null==a){a={}}else if("object"===_typeof(a)&&("from"in a||"to"in a)){l=ot(Ne(a.from),Ne(a.to));a={};a.ms=l.milliseconds;a.M=l.months}n=new qe(a);if(Ge(e)&&h(e,"_locale")){n._locale=e._locale}return n}et.fn=qe.prototype;et.invalid=function(){return et(NaN)};function tt(e,t){var a=e&&parseFloat(e.replace(",","."));return(isNaN(a)?0:a)*t}function at(e,t){var a={milliseconds:0,months:0,months:t.month()-e.month()+12*(t.year()-e.year())};if(e.clone().add(a.months,"M").isAfter(t)){--a.months}a.milliseconds=+t-+e.clone().add(a.months,"M");return a}function ot(e,t){var a;if(!(e.isValid()&&t.isValid())){return{milliseconds:0,months:0}}t=Je(t,e);if(e.isBefore(t)){a=at(e,t)}else{a=at(t,e);a.milliseconds=-a.milliseconds;a.months=-a.months}return a}function it(e,t){return function(a,o){var i,n;if(null!==o&&!isNaN(+o)){O(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.");n=a;a=o;o=n}a="string"==typeof a?+a:a;i=et(a,o);nt(this,i,e);return this}}function nt(t,a,o,i){var n=a._milliseconds,l=Xe(a._days),s=Xe(a._months);if(!t.isValid()){return}i=null==i?!0:i;if(n){t._d.setTime(t._d.valueOf()+n*o)}if(l){B(t,"Date",H(t,"Date")+l*o)}if(s){oe(t,H(t,"Month")+s*o)}if(i){e.updateOffset(t,l||s)}}var Sa=it(1,"add"),wa=it(-1,"subtract");function rt(e,t){var a=12*(t.year()-e.year())+(t.month()-e.month()),o=e.clone().add(a,"months"),i,n;if(0>t-o){i=e.clone().add(a-1,"months");n=(t-o)/(o-i)}else{i=e.clone().add(a+1,"months");n=(t-o)/(i-o)}return-(a+n)||0}e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ";e.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";function lt(e){var t;if(e===void 0){return this._locale._abbr}else{t=Ce(e);if(null!=t){this._locale=t}return this}}var Da=T("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){if(e===void 0){return this.localeData()}else{return this.locale(e)}});function st(){return this._locale}N(0,["gg",2],0,function(){return this.weekYear()%100});N(0,["GG",2],0,function(){return this.isoWeekYear()%100});function dt(e,t){N(0,[e,e.length],0,t)}dt("gggg","weekYear");dt("ggggg","weekYear");dt("GGGG","isoWeekYear");dt("GGGGG","isoWeekYear");R("weekYear","gg");R("isoWeekYear","GG");W("weekYear",1);W("isoWeekYear",1);X("G",Qt);X("g",Qt);X("GG",qt,Vt);X("gg",qt,Vt);X("GGGG",Kt,Ut);X("gggg",Kt,Ut);X("GGGGG",Jt,jt);X("ggggg",Jt,jt);$(["gggg","ggggg","GGGG","GGGGG"],function(e,t,a,o){t[o.substr(0,2)]=D(e)});$(["gg","GG"],function(t,a,o,i){a[i]=e.parseTwoDigitYear(t)});function ct(e,t,a,o,i){var n;if(null==e){return ue(this,o,i).year}else{n=ge(e,o,i);if(t>n){t=n}return ht.call(this,e,t,a,o,i)}}function ht(e,t,a,o,i){var n=he(e,t,a,o,i),l=de(n.year,0,n.dayOfYear);this.year(l.getUTCFullYear());this.month(l.getUTCMonth());this.date(l.getUTCDate());return this}N("Q",0,"Qo","quarter");R("quarter","Q");W("quarter",7);X("Q",Et);Q("Q",function(e,t){t[oa]=3*(D(e)-1)});N("D",["DD",2],"Do","date");R("date","D");W("date",9);X("D",qt);X("DD",qt,Vt);X("Do",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient});Q(["D","DD"],ia);Q("Do",function(e,t){t[ia]=D(e.match(qt)[0],10)});var Ca=z("Date",!0);N("DDD",["DDDD",3],"DDDo","dayOfYear");R("dayOfYear","DDD");W("dayOfYear",4);X("DDD",Zt);X("DDDD",Nt);Q(["DDD","DDDD"],function(e,t,a){a._dayOfYear=D(e)});N("m",["mm",2],0,"minute");R("minute","m");W("minute",14);X("m",qt);X("mm",qt,Vt);Q(["m","mm"],ra);var Pa=z("Minutes",!1);N("s",["ss",2],0,"second");R("second","s");W("second",15);X("s",qt);X("ss",qt,Vt);Q(["s","ss"],la);var Ta=z("Seconds",!1);N("S",0,0,function(){return~~(this.millisecond()/100)});N(0,["SS",2],0,function(){return~~(this.millisecond()/10)});N(0,["SSS",3],0,"millisecond");N(0,["SSSS",4],0,function(){return 10*this.millisecond()});N(0,["SSSSS",5],0,function(){return 100*this.millisecond()});N(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()});N(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()});N(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()});N(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()});R("millisecond","ms");W("millisecond",16);X("S",Zt,Et);X("SS",Zt,Vt);X("SSS",Zt,Nt);var Oa;for(Oa="SSSS";9>=Oa.length;Oa+="S"){X(Oa,/\d+/)}function ut(e,t){t[sa]=D(1e3*("0."+e))}for(Oa="S";9>=Oa.length;Oa+="S"){Q(Oa,ut)}var Ia=z("Milliseconds",!1);N("z",0,0,"zoneAbbr");N("zz",0,0,"zoneName");var Aa=v.prototype;Aa.add=Sa;Aa.calendar=function(t,a){var o=t||Ne(),i=Je(o,this).startOf("day"),n=e.calendarFormat(this,i)||"sameElse",l=a&&(I(a[n])?a[n].call(this,o):a[n]);return this.format(l||this.localeData().calendar(n,this,Ne(o)))};Aa.clone=function(){return new v(this)};Aa.diff=function(e,t,a){var o,i,n,l;if(!this.isValid()){return NaN}o=Je(e,this);if(!o.isValid()){return NaN}i=6e4*(o.utcOffset()-this.utcOffset());t=F(t);if("year"===t||"month"===t||"quarter"===t){l=rt(this,o);if("quarter"===t){l=l/3}else if("year"===t){l=l/12}}else{n=this-o;l="second"===t?n/1e3:"minute"===t?n/6e4:"hour"===t?n/36e5:"day"===t?(n-i)/864e5:"week"===t?(n-i)/6048e5:n}return a?l:w(l)};Aa.endOf=function(e){e=F(e);if(e===void 0||"millisecond"===e){return this}if("date"===e){e="day"}return this.startOf(e).add(1,"isoWeek"===e?"week":e).subtract(1,"ms")};Aa.format=function(t){if(!t){t=this.isUtc()?e.defaultFormatUtc:e.defaultFormat}var a=q(this,t);return this.localeData().postformat(a)};Aa.from=function(e,t){if(this.isValid()&&(S(e)&&e.isValid()||Ne(e).isValid())){return et({to:this,from:e}).locale(this.locale()).humanize(!t)}else{return this.localeData().invalidDate()}};Aa.fromNow=function(e){return this.from(Ne(),e)};Aa.to=function(e,t){if(this.isValid()&&(S(e)&&e.isValid()||Ne(e).isValid())){return et({from:this,to:e}).locale(this.locale()).humanize(!t)}else{return this.localeData().invalidDate()}};Aa.toNow=function(e){return this.to(Ne(),e)};Aa.get=function(e){e=F(e);if(I(this[e])){return this[e]()}return this};Aa.invalidAt=function(){return y(this).overflow};Aa.isAfter=function(e,t){var a=S(e)?e:Ne(e);if(!(this.isValid()&&a.isValid())){return!1}t=F(!l(t)?t:"millisecond");if("millisecond"===t){return this.valueOf()>a.valueOf()}else{return a.valueOf()e.year()||9999=this.year()?"YYYY":"YYYYYY",i=t+"[\")]";return this.format(a+o+"-MM-DD[T]HH:mm:ss.SSS"+i)};Aa.toJSON=function(){return this.isValid()?this.toISOString():null};Aa.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")};Aa.unix=function(){return Math.floor(this.valueOf()/1e3)};Aa.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)};Aa.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}};Aa.year=ua;Aa.isLeapYear=function(){return le(this.year())};Aa.weekYear=function(e){return ct.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)};Aa.isoWeekYear=function(e){return ct.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)};Aa.quarter=Aa.quarters=function(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)};Aa.month=ie;Aa.daysInMonth=function(){return te(this.year(),this.month())};Aa.week=Aa.weeks=function(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")};Aa.isoWeek=Aa.isoWeeks=function(e){var t=ue(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")};Aa.weeksInYear=function(){var e=this.localeData()._week;return ge(this.year(),e.dow,e.doy)};Aa.isoWeeksInYear=function(){return ge(this.year(),1,4)};Aa.date=Ca;Aa.day=Aa.days=function(e){if(!this.isValid()){return null!=e?this:NaN}var t=this._isUTC?this._d.getUTCDay():this._d.getDay();if(null!=e){e=me(e,this.localeData());return this.add(e-t,"d")}else{return t}};Aa.weekday=function(e){if(!this.isValid()){return null!=e?this:NaN}var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")};Aa.isoWeekday=function(e){if(!this.isValid()){return null!=e?this:NaN}if(null!=e){var t=pe(e,this.localeData());return this.day(this.day()%7?t:t-7)}else{return this.day()||7}};Aa.dayOfYear=function(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")};Aa.hour=Aa.hours=ga;Aa.minute=Aa.minutes=Pa;Aa.second=Aa.seconds=Ta;Aa.millisecond=Aa.milliseconds=Ia;Aa.utcOffset=function(t,a,o){var i=this._offset||0,n;if(!this.isValid()){return null!=t?this:NaN}if(null!=t){if("string"==typeof t){t=Ke($t,t);if(null===t){return this}}else if(16>Math.abs(t)&&!o){t=60*t}if(!this._isUTC&&a){n=Qe(this)}this._offset=t;this._isUTC=!0;if(null!=n){this.add(n,"m")}if(i!==t){if(!a||this._changeInProgress){nt(this,et(t-i,"m"),1,!1)}else if(!this._changeInProgress){this._changeInProgress=!0;e.updateOffset(this,!0);this._changeInProgress=null}}return this}else{return this._isUTC?i:Qe(this)}};Aa.utc=function(e){return this.utcOffset(0,e)};Aa.local=function(e){if(this._isUTC){this.utcOffset(0,e);this._isUTC=!1;if(e){this.subtract(Qe(this),"m")}}return this};Aa.parseZone=function(){if(null!=this._tzm){this.utcOffset(this._tzm,!1,!0)}else if("string"==typeof this._i){var e=Ke(/Z|[+-]\d\d:?\d\d/gi,this._i);if(null!=e){this.utcOffset(e)}else{this.utcOffset(0,!0)}}return this};Aa.hasAlignedHourOffset=function(e){if(!this.isValid()){return!1}e=e?Ne(e).utcOffset():0;return 0==(this.utcOffset()-e)%60};Aa.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()};Aa.isLocal=function(){return this.isValid()?!this._isUTC:!1};Aa.isUtcOffset=function(){return this.isValid()?this._isUTC:!1};Aa.isUtc=$e;Aa.isUTC=$e;Aa.zoneAbbr=function(){return this._isUTC?"UTC":""};Aa.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""};Aa.dates=T("dates accessor is deprecated. Use date instead.",Ca);Aa.months=T("months accessor is deprecated. Use month instead",ie);Aa.years=T("years accessor is deprecated. Use year instead",ua);Aa.zone=T("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(e,t){if(null!=e){if("string"!=typeof e){e=-e}this.utcOffset(e,t);return this}else{return-this.utcOffset()}});Aa.isDSTShifted=T("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!l(this._isDSTShifted)){return this._isDSTShifted}var e={};_(e,this);e=Be(e);if(e._a){var t=e._isUTC?p(e._a):Ne(e._a);this._isDSTShifted=this.isValid()&&0o;o++){n=p([2e3,o]);if(a&&!this._longMonthsParse[o]){this._longMonthsParse[o]=new RegExp("^"+this.months(n,"").replace(".","")+"$","i");this._shortMonthsParse[o]=new RegExp("^"+this.monthsShort(n,"").replace(".","")+"$","i")}if(!a&&!this._monthsParse[o]){l="^"+this.months(n,"")+"|^"+this.monthsShort(n,"");this._monthsParse[o]=new RegExp(l.replace(".",""),"i")}if(a&&"MMMM"===t&&this._longMonthsParse[o].test(e)){return o}else if(a&&"MMM"===t&&this._shortMonthsParse[o].test(e)){return o}else if(!a&&this._monthsParse[o].test(e)){return o}}};Ma.monthsRegex=function(e){if(this._monthsParseExact){if(!h(this,"_monthsRegex")){ne.call(this)}if(e){return this._monthsStrictRegex}else{return this._monthsRegex}}else{if(!h(this,"_monthsRegex")){this._monthsRegex=ea}return this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex}};Ma.monthsShortRegex=function(e){if(this._monthsParseExact){if(!h(this,"_monthsRegex")){ne.call(this)}if(e){return this._monthsShortStrictRegex}else{return this._monthsShortRegex}}else{if(!h(this,"_monthsShortRegex")){this._monthsShortRegex=ea}return this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex}};Ma.week=function(e){return ue(e,this._week.dow,this._week.doy).week};Ma.firstDayOfYear=function(){return this._week.doy};Ma.firstDayOfWeek=function(){return this._week.dow};Ma.weekdays=function(e,t){if(!e){return o(this._weekdays)?this._weekdays:this._weekdays.standalone}return o(this._weekdays)?this._weekdays[e.day()]:this._weekdays[this._weekdays.isFormat.test(t)?"format":"standalone"][e.day()]};Ma.weekdaysMin=function(e){return e?this._weekdaysMin[e.day()]:this._weekdaysMin};Ma.weekdaysShort=function(e){return e?this._weekdaysShort[e.day()]:this._weekdaysShort};Ma.weekdaysParse=function(e,t,a){var o,n,l;if(this._weekdaysParseExact){return fe.call(this,e,t,a)}if(!this._weekdaysParse){this._weekdaysParse=[];this._minWeekdaysParse=[];this._shortWeekdaysParse=[];this._fullWeekdaysParse=[]}for(o=0;7>o;o++){n=p([2e3,1]).day(o);if(a&&!this._fullWeekdaysParse[o]){this._fullWeekdaysParse[o]=new RegExp("^"+this.weekdays(n,"").replace(".",".?")+"$","i");this._shortWeekdaysParse[o]=new RegExp("^"+this.weekdaysShort(n,"").replace(".",".?")+"$","i");this._minWeekdaysParse[o]=new RegExp("^"+this.weekdaysMin(n,"").replace(".",".?")+"$","i")}if(!this._weekdaysParse[o]){l="^"+this.weekdays(n,"")+"|^"+this.weekdaysShort(n,"")+"|^"+this.weekdaysMin(n,"");this._weekdaysParse[o]=new RegExp(l.replace(".",""),"i")}if(a&&"dddd"===t&&this._fullWeekdaysParse[o].test(e)){return o}else if(a&&"ddd"===t&&this._shortWeekdaysParse[o].test(e)){return o}else if(a&&"dd"===t&&this._minWeekdaysParse[o].test(e)){return o}else if(!a&&this._weekdaysParse[o].test(e)){return o}}};Ma.weekdaysRegex=function(e){if(this._weekdaysParseExact){if(!h(this,"_weekdaysRegex")){ye.call(this)}if(e){return this._weekdaysStrictRegex}else{return this._weekdaysRegex}}else{if(!h(this,"_weekdaysRegex")){this._weekdaysRegex=ea}return this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex}};Ma.weekdaysShortRegex=function(e){if(this._weekdaysParseExact){if(!h(this,"_weekdaysRegex")){ye.call(this)}if(e){return this._weekdaysShortStrictRegex}else{return this._weekdaysShortRegex}}else{if(!h(this,"_weekdaysShortRegex")){this._weekdaysShortRegex=ea}return this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex}};Ma.weekdaysMinRegex=function(e){if(this._weekdaysParseExact){if(!h(this,"_weekdaysRegex")){ye.call(this)}if(e){return this._weekdaysMinStrictRegex}else{return this._weekdaysMinRegex}}else{if(!h(this,"_weekdaysMinRegex")){this._weekdaysMinRegex=ea}return this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex}};Ma.isPM=function(e){return"p"===(e+"").toLowerCase().charAt(0)};Ma.meridiem=function(e,t,a){if(11o;o++){n[o]=mt(e,o,a,"month")}return n}function ft(e,t,a,o){if("boolean"==typeof e){if(s(t)){a=t;t=void 0}t=t||""}else{t=e;a=t;e=!1;if(s(t)){a=t;t=void 0}t=t||""}var n=Ce(),l=e?n._week.dow:0;if(null!=a){return mt(t,(a+l)%7,o,"day")}var d,c=[];for(d=0;7>d;d++){c[d]=mt(t,(d+l)%7,o,"day")}return c}we("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function ordinal(e){var t=e%10,a=1===D(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th";return e+a}});e.lang=T("moment.lang is deprecated. Use moment.locale instead.",we);e.langData=T("moment.langData is deprecated. Use moment.localeData instead.",Ce);var Ra=Math.abs;function yt(e,t,a,o){var i=et(t,a);e._milliseconds+=o*i._milliseconds;e._days+=o*i._days;e._months+=o*i._months;return e._bubble()}function bt(e){if(0>e){return Math.floor(e)}else{return Math.ceil(e)}}function xt(e){return 4800*e/146097}function kt(e){return 146097*e/4800}function _t(e){return function(){return this.as(e)}}var Fa=_t("ms"),La=_t("s"),Wa=_t("m"),Ya=_t("h"),za=_t("d"),Ha=_t("w"),Ba=_t("M"),Ea=_t("y");function vt(e){return function(){return this.isValid()?this._data[e]:NaN}}var Va=vt("milliseconds"),Na=vt("seconds"),Ua=vt("minutes"),ja=vt("hours"),qa=vt("days"),Ga=vt("months"),Xa=vt("years");var Za=Math.round,Ka={ss:44,s:45,m:45,h:22,d:26,M:11};function St(e,t,a,o,i){return i.relativeTime(t||1,!!a,e,o)}function wt(e,t,o){var i=et(e).abs(),n=Za(i.as("s")),l=Za(i.as("m")),s=Za(i.as("h")),d=Za(i.as("d")),c=Za(i.as("M")),h=Za(i.as("y")),u=n<=Ka.ss&&["s",n]||n=l&&["m"]||l=s&&["h"]||s=d&&["d"]||d=c&&["M"]||c=h&&["y"]||["yy",h];u[2]=t;u[3]=0<+e;u[4]=o;return St.apply(null,u)}function Dt(e){if(e===void 0){return Za}if("function"==typeof e){Za=e;return!0}return!1}var Ja=Math.abs;function Ct(){if(!this.isValid()){return this.localeData().invalidDate()}var e=Ja(this._milliseconds)/1e3,t=Ja(this._days),a=Ja(this._months),o,i,n;o=w(e/60);i=w(o/60);e%=60;o%=60;n=w(a/12);a%=12;var l=n,d=a,c=t,u=i,h=o,m=e,s=this.asSeconds();if(!s){return"P0D"}return(0>s?"-":"")+"P"+(l?l+"Y":"")+(d?d+"M":"")+(c?c+"D":"")+(u||h||m?"T":"")+(u?u+"H":"")+(h?h+"M":"")+(m?m+"S":"")}var Qa=qe.prototype;Qa.isValid=function(){return this._isValid};Qa.abs=function(){var e=this._data;this._milliseconds=Ra(this._milliseconds);this._days=Ra(this._days);this._months=Ra(this._months);e.milliseconds=Ra(e.milliseconds);e.seconds=Ra(e.seconds);e.minutes=Ra(e.minutes);e.hours=Ra(e.hours);e.months=Ra(e.months);e.years=Ra(e.years);return this};Qa.add=function(e,t){return yt(this,e,t,1)};Qa.subtract=function(e,t){return yt(this,e,t,-1)};Qa.as=function(e){if(!this.isValid()){return NaN}var t,a,o=this._milliseconds;e=F(e);if("month"===e||"year"===e){t=this._days+o/864e5;a=this._months+xt(t);return"month"===e?a:a/12}else{t=this._days+Math.round(kt(this._months));switch(e){case"week":return t/7+o/6048e5;case"day":return t+o/864e5;case"hour":return 24*t+o/36e5;case"minute":return 1440*t+o/6e4;case"second":return 86400*t+o/1e3;case"millisecond":return Math.floor(864e5*t)+o;default:throw new Error("Unknown unit "+e);}}};Qa.asMilliseconds=Fa;Qa.asSeconds=La;Qa.asMinutes=Wa;Qa.asHours=Ya;Qa.asDays=za;Qa.asWeeks=Ha;Qa.asMonths=Ba;Qa.asYears=Ea;Qa.valueOf=function(){if(!this.isValid()){return NaN}return this._milliseconds+864e5*this._days+2592e6*(this._months%12)+31536e6*D(this._months/12)};Qa._bubble=function(){var e=this._milliseconds,t=this._days,a=this._months,o=this._data,i,n,l,s,d;if(!(0<=e&&0<=t&&0<=a||0>=e&&0>=t&&0>=a)){e+=864e5*bt(kt(a)+t);t=0;a=0}o.milliseconds=e%1e3;i=w(e/1e3);o.seconds=i%60;n=w(i/60);o.minutes=n%60;l=w(n/60);o.hours=l%24;t+=w(l/24);d=w(xt(t));a+=d;t-=bt(kt(d));s=w(a/12);a%=12;o.days=t;o.months=a;o.years=s;return this};Qa.get=function(e){e=F(e);return this.isValid()?this[e+"s"]():NaN};Qa.milliseconds=Va;Qa.seconds=Na;Qa.minutes=Ua;Qa.hours=ja;Qa.days=qa;Qa.weeks=function(){return w(this.days()/7)};Qa.months=Ga;Qa.years=Xa;Qa.humanize=function(e){if(!this.isValid()){return this.localeData().invalidDate()}var t=this.localeData(),a=wt(this,!e,t);if(e){a=t.pastFuture(+this,a)}return t.postformat(a)};Qa.toISOString=Ct;Qa.toString=Ct;Qa.toJSON=Ct;Qa.locale=lt;Qa.localeData=st;Qa.toIsoString=T("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Ct);Qa.lang=Da;N("X",0,0,"unix");N("x",0,0,"valueOf");X("x",Qt);X("X",/[+-]?\d+(\.\d{1,3})?/);Q("X",function(e,t,a){a._d=new Date(1e3*parseFloat(e,10))});Q("x",function(e,t,a){a._d=new Date(D(e))});e.version="2.18.1";(function(e){Pt=e})(Ne);e.fn=Aa;e.min=function(){var e=[].slice.call(arguments,0);return Ue("isBefore",e)};e.max=function(){var e=[].slice.call(arguments,0);return Ue("isAfter",e)};e.now=function now(){return Date.now?Date.now():+new Date};e.utc=p;e.unix=function(e){return Ne(1e3*e)};e.months=function(e,t){return pt(e,t,"months")};e.isDate=d;e.locale=we;e.invalid=k;e.duration=et;e.isMoment=S;e.weekdays=function(e,t,a){return ft(e,t,a,"weekdays")};e.parseZone=function(){return Ne.apply(null,arguments).parseZone()};e.localeData=Ce;e.isDuration=Ge;e.monthsShort=function(e,t){return pt(e,t,"monthsShort")};e.weekdaysMin=function(e,t,a){return ft(e,t,a,"weekdaysMin")};e.defineLocale=De;e.updateLocale=function(e,t){if(null!=t){var a,o=ma;if(null!=pa[e]){o=pa[e]._config}t=A(o,t);a=new M(t);a.parentLocale=pa[e];pa[e]=a;we(e)}else{if(null!=pa[e]){if(null!=pa[e].parentLocale){pa[e]=pa[e].parentLocale}else if(null!=pa[e]){delete pa[e]}}}return pa[e]};e.locales=function(){return Ft(pa)};e.weekdaysShort=function(e,t,a){return ft(e,t,a,"weekdaysShort")};e.normalizeUnits=F;e.relativeTimeRounding=Dt;e.relativeTimeThreshold=function(e,t){if(Ka[e]===void 0){return!1}if(t===void 0){return Ka[e]}Ka[e]=t;if("s"===e){Ka.ss=t-1}return!0};e.calendarFormat=function(e,t){var a=e.diff(t,"days",!0);return-6>a?"sameElse":-1>a?"lastWeek":0>a?"lastDay":1>a?"sameDay":2>a?"nextDay":7>a?"nextWeek":"sameElse"};e.prototype=Aa;return e})},{}],7:[function(e,t){var a=e(29)();a.helpers=e(45);e(27)(a);a.defaults=e(25);a.Element=e(26);a.elements=e(40);a.Interaction=e(28);a.platform=e(48);e(31)(a);e(22)(a);e(23)(a);e(24)(a);e(30)(a);e(33)(a);e(32)(a);e(35)(a);e(54)(a);e(52)(a);e(53)(a);e(55)(a);e(56)(a);e(57)(a);e(15)(a);e(16)(a);e(17)(a);e(18)(a);e(19)(a);e(20)(a);e(21)(a);e(8)(a);e(9)(a);e(10)(a);e(11)(a);e(12)(a);e(13)(a);e(14)(a);var o=[e(49)(a),e(50)(a),e(51)(a)];a.plugins.register(o);a.platform.initialize();t.exports=a;if("undefined"!=typeof window){window.Chart=a}a.canvasHelpers=a.helpers.canvas},{10:10,11:11,12:12,13:13,14:14,15:15,16:16,17:17,18:18,19:19,20:20,21:21,22:22,23:23,24:24,25:25,26:26,27:27,28:28,29:29,30:30,31:31,32:32,33:33,35:35,40:40,45:45,48:48,49:49,50:50,51:51,52:52,53:53,54:54,55:55,56:56,57:57,8:8,9:9}],8:[function(e,t){'use strict';t.exports=function(e){e.Bar=function(t,a){a.type="bar";return new e(t,a)}}},{}],9:[function(e,t){'use strict';t.exports=function(e){e.Bubble=function(t,a){a.type="bubble";return new e(t,a)}}},{}],10:[function(e,t){'use strict';t.exports=function(e){e.Doughnut=function(t,a){a.type="doughnut";return new e(t,a)}}},{}],11:[function(e,t){'use strict';t.exports=function(e){e.Line=function(t,a){a.type="line";return new e(t,a)}}},{}],12:[function(e,t){'use strict';t.exports=function(e){e.PolarArea=function(t,a){a.type="polarArea";return new e(t,a)}}},{}],13:[function(e,t){'use strict';t.exports=function(e){e.Radar=function(t,a){a.type="radar";return new e(t,a)}}},{}],14:[function(e,t){'use strict';t.exports=function(e){e.Scatter=function(t,a){a.type="scatter";return new e(t,a)}}},{}],15:[function(e,t){'use strict';var a=e(25),o=e(40),n=e(45);a._set("bar",{hover:{mode:"label"},scales:{xAxes:[{type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}],yAxes:[{type:"linear"}]}});a._set("horizontalBar",{hover:{mode:"index",axis:"y"},scales:{xAxes:[{type:"linear",position:"bottom"}],yAxes:[{position:"left",type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}]},elements:{rectangle:{borderSkipped:"left"}},tooltips:{callbacks:{title:function(e,t){var a="";if(0d&&0>f||0<=d&&0h?d-h:u-d;p=d"],a=e.data,o=a.datasets,n=a.labels;if(o.length){for(var l=0;l");if(n[l]){t.push(n[l])}t.push("")}}t.push("");return t.join("")},legend:{labels:{generateLabels:function generateLabels(e){var t=e.data;if(t.labels.length&&t.datasets.length){return t.labels.map(function(a,o){var i=e.getDatasetMeta(0),l=t.datasets[0],s=i.data[o],d=s&&s.custom||{},c=n.valueAtIndexOrDefault,h=e.options.elements.arc,u=d.backgroundColor?d.backgroundColor:c(l.backgroundColor,o,h.backgroundColor),m=d.borderColor?d.borderColor:c(l.borderColor,o,h.borderColor),p=d.borderWidth?d.borderWidth:c(l.borderWidth,o,h.borderWidth);return{text:a,fillStyle:u,strokeStyle:m,lineWidth:p,hidden:isNaN(l.data[o])||i.data[o].hidden,index:o}})}return[]}},onClick:function onClick(t,e){var a=e.index,o=this.chart,n,l,s;for(n=0,l=(o.data.datasets||[]).length;n=Math.PI?-1:f<-Math.PI?1:0);var y=f+p,x={x:Math.cos(f),y:Math.sin(f)},k={x:Math.cos(y),y:Math.sin(y)},_=0>=f&&0<=y||f<=2*Math.PI&&2*Math.PI<=y,v=f<=.5*Math.PI&&.5*Math.PI<=y||f<=2.5*Math.PI&&2.5*Math.PI<=y,S=f<=-Math.PI&&-Math.PI<=y||f<=Math.PI&&Math.PI<=y,w=f<=.5*-Math.PI&&.5*-Math.PI<=y||f<=1.5*Math.PI&&1.5*Math.PI<=y,D=m/100,C={x:S?-1:Math.min(x.x*(0>x.x?1:D),k.x*(0>k.x?1:D)),y:w?-1:Math.min(x.y*(0>x.y?1:D),k.y*(0>k.y?1:D))},P={x:_?1:Math.max(x.x*(0t?n:t;t=l>t?l:t}return t}})}},{25:25,40:40,45:45}],18:[function(e,t){'use strict';var a=e(25),o=e(40),n=e(45);a._set("line",{showLines:!0,spanGaps:!1,hover:{mode:"label"},scales:{xAxes:[{type:"category",id:"x-axis-0"}],yAxes:[{type:"linear",id:"y-axis-0"}]}});t.exports=function(e){function t(e,t){return n.valueOrDefault(e.showLine,t.showLines)}e.controllers.line=e.DatasetController.extend({datasetElementType:o.Line,dataElementType:o.Point,update:function update(e){var a=this,o=a.getMeta(),l=o.dataset,s=o.data||[],d=a.chart.options,c=d.elements.line,h=a.getScaleForId(o.yAxisID),u,m,p,f=a.getDataset(),y=t(f,d);if(y){p=l.custom||{};if(f.tension!==void 0&&f.lineTension===void 0){f.lineTension=f.tension}l._scale=h;l._datasetIndex=a.index;l._children=s;l._model={spanGaps:f.spanGaps?f.spanGaps:d.spanGaps,tension:p.tension?p.tension:n.valueOrDefault(f.lineTension,c.tension),backgroundColor:p.backgroundColor?p.backgroundColor:f.backgroundColor||c.backgroundColor,borderWidth:p.borderWidth?p.borderWidth:f.borderWidth||c.borderWidth,borderColor:p.borderColor?p.borderColor:f.borderColor||c.borderColor,borderCapStyle:p.borderCapStyle?p.borderCapStyle:f.borderCapStyle||c.borderCapStyle,borderDash:p.borderDash?p.borderDash:f.borderDash||c.borderDash,borderDashOffset:p.borderDashOffset?p.borderDashOffset:f.borderDashOffset||c.borderDashOffset,borderJoinStyle:p.borderJoinStyle?p.borderJoinStyle:f.borderJoinStyle||c.borderJoinStyle,fill:p.fill?p.fill:f.fill!==void 0?f.fill:c.fill,steppedLine:p.steppedLine?p.steppedLine:n.valueOrDefault(f.steppedLine,c.stepped),cubicInterpolationMode:p.cubicInterpolationMode?p.cubicInterpolationMode:n.valueOrDefault(f.cubicInterpolationMode,c.cubicInterpolationMode)};l.pivot()}for(u=0,m=s.length;up){c+=p||0}else{d+=p||0}}}var f=+s.getRightValue(e);if(0>f){return s.getPixelForValue(c+f)}return s.getPixelForValue(d+f)}return s.getPixelForValue(e)},updateBezierControlPoints:function updateBezierControlPoints(){var t=this,a=t.getMeta(),o=t.chart.chartArea,l=a.data||[],s,d,c,h,u;if(a.dataset._model.spanGaps){l=l.filter(function(e){return!e._model.skip})}function e(e,t,a){return Math.max(Math.min(e,a),t)}if("monotone"===a.dataset._model.cubicInterpolationMode){n.splineCurveMonotone(l)}else{for(s=0,d=l.length;s"],a=e.data,o=a.datasets,n=a.labels;if(o.length){for(var l=0;l");if(n[l]){t.push(n[l])}t.push("")}}t.push("");return t.join("")},legend:{labels:{generateLabels:function generateLabels(e){var t=e.data;if(t.labels.length&&t.datasets.length){return t.labels.map(function(a,o){var i=e.getDatasetMeta(0),l=t.datasets[0],s=i.data[o],d=s.custom||{},c=n.valueAtIndexOrDefault,h=e.options.elements.arc,u=d.backgroundColor?d.backgroundColor:c(l.backgroundColor,o,h.backgroundColor),m=d.borderColor?d.borderColor:c(l.borderColor,o,h.borderColor),p=d.borderWidth?d.borderWidth:c(l.borderWidth,o,h.borderWidth);return{text:a,fillStyle:u,strokeStyle:m,lineWidth:p,hidden:isNaN(l.data[o])||i.data[o].hidden,index:o}})}return[]}},onClick:function onClick(t,e){var a=e.index,o=this.chart,n,l,s;for(n=0,l=(o.data.datasets||[]).length;n=a.numSteps){n.callback(a.onAnimationComplete,[a],o);o.animating=!1;t.splice(l,1)}else{++l}}}};Object.defineProperty(e.Animation.prototype,"animationObject",{get:function get(){return this}});Object.defineProperty(e.Animation.prototype,"chartInstance",{get:function get(){return this.chart},set:function set(e){this.chart=e}})}},{25:25,26:26,45:45}],23:[function(e,t){'use strict';var a=e(25),o=e(45),i=e(28),n=e(48);t.exports=function(e){var d=e.plugins;e.types={};e.instances={};e.controllers={};function t(e){e=e||{};var t=e.data=e.data||{};t.datasets=t.datasets||[];t.labels=t.labels||[];e.options=o.configMerge(a.global,a[e.type],e.options||{});return e}function l(e){var t=e.options;if(t.scale){e.scale.options=t.scale}else if(t.scales){t.scales.xAxes.concat(t.scales.yAxes).forEach(function(t){e.scales[t.id].options=t})}e.tooltip._options=t.tooltips}function s(e){return"top"===e||"bottom"===e}o.extend(e.prototype,{construct:function construct(a,i){var l=this;i=t(i);var s=n.acquireContext(a,i),d=s&&s.canvas,c=d&&d.height,h=d&&d.width;l.id=o.uid();l.ctx=s;l.canvas=d;l.config=i;l.width=h;l.height=c;l.aspectRatio=c?h/c:null;l.options=i.options;l._bufferedRender=!1;l.chart=l;l.controller=l;e.instances[l.id]=l;Object.defineProperty(l,"data",{get:function get(){return l.config.data},set:function set(e){l.config.data=e}});if(!s||!d){console.error("Failed to create chart: can't acquire context from the given item");return}l.initialize();l.update()},initialize:function initialize(){var e=this;d.notify(e,"beforeInit");o.retinaScale(e,e.options.devicePixelRatio);e.bindEvents();if(e.options.responsive){e.resize(!0)}e.ensureScalesHaveIDs();e.buildScales();e.initToolTip();d.notify(e,"afterInit");return e},clear:function clear(){o.canvas.clear(this);return this},stop:function stop(){e.animationService.cancelAnimation(this);return this},resize:function resize(e){var t=this,a=t.options,i=t.canvas,n=a.maintainAspectRatio&&t.aspectRatio||null,l=Math.max(0,Math.floor(o.getMaximumWidth(i))),s=Math.max(0,Math.floor(n?l/n:o.getMaximumHeight(i)));if(t.width===l&&t.height===s){return}i.width=t.width=l;i.height=t.height=s;i.style.width=l+"px";i.style.height=s+"px";o.retinaScale(t,a.devicePixelRatio);if(!e){var c={width:l,height:s};d.notify(t,"resize",[c]);if(t.options.onResize){t.options.onResize(t,c)}t.stop();t.update(t.options.responsiveAnimationDuration)}},ensureScalesHaveIDs:function ensureScalesHaveIDs(){var e=this.options,t=e.scales||{},a=e.scale;o.each(t.xAxes,function(e,t){e.id=e.id||"x-axis-"+t});o.each(t.yAxes,function(e,t){e.id=e.id||"y-axis-"+t});if(a){a.id=a.id||"scale"}},buildScales:function buildScales(){var t=this,a=t.options,i=t.scales={},n=[];if(a.scales){n=n.concat((a.scales.xAxes||[]).map(function(e){return{options:e,dtype:"category",dposition:"bottom"}}),(a.scales.yAxes||[]).map(function(e){return{options:e,dtype:"linear",dposition:"left"}}))}if(a.scale){n.push({options:a.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"})}o.each(n,function(a){var n=a.options,l=o.valueOrDefault(n.type,a.dtype),d=e.scaleService.getScaleConstructor(l);if(!d){return}if(s(n.position)!==s(a.dposition)){n.position=a.dposition}var c=new d({id:n.id,options:n,ctx:t.ctx,chart:t});i[c.id]=c;c.mergeTicksOptions();if(a.isDefault){t.scale=c}});e.scaleService.addScalesToLayout(this)},buildOrUpdateControllers:function buildOrUpdateControllers(){var t=this,a=[],i=[];o.each(t.data.datasets,function(o,n){var l=t.getDatasetMeta(n),s=o.type||t.config.type;if(l.type&&l.type!==s){t.destroyDatasetMeta(n);l=t.getDatasetMeta(n)}l.type=s;a.push(l.type);if(l.controller){l.controller.updateIndex(n)}else{var d=e.controllers[l.type];if(d===void 0){throw new Error("\""+l.type+"\" is not a chart type.")}l.controller=new d(t,n);i.push(l.controller)}},t);return i},resetElements:function resetElements(){var e=this;o.each(e.data.datasets,function(t,a){e.getDatasetMeta(a).controller.reset()},e)},reset:function reset(){this.resetElements();this.tooltip.initialize()},update:function update(e){var t=this;if(!e||"object"!==_typeof(e)){e={duration:e,lazy:arguments[1]}}l(t);if(!1===d.notify(t,"beforeUpdate")){return}t.tooltip._data=t.data;var a=t.buildOrUpdateControllers();o.each(t.data.datasets,function(e,a){t.getDatasetMeta(a).controller.buildOrUpdateElements()},t);t.updateLayout();o.each(a,function(e){e.reset()});t.updateDatasets();d.notify(t,"afterUpdate");if(t._bufferedRender){t._bufferedRequest={duration:e.duration,easing:e.easing,lazy:e.lazy}}else{t.render(e)}},updateLayout:function updateLayout(){var t=this;if(!1===d.notify(t,"beforeLayout")){return}e.layoutService.update(this,this.width,this.height);d.notify(t,"afterScaleUpdate");d.notify(t,"afterLayout")},updateDatasets:function updateDatasets(){var e=this;if(!1===d.notify(e,"beforeDatasetsUpdate")){return}for(var t=0,a=e.data.datasets.length;to){e.insertElements(o,i-o)}},insertElements:function insertElements(e,t){for(var a=0;a=a[t].length){a[t].push({})}if(!a[t][d].type||h.type&&h.type!==a[t][d].type){n.merge(a[t][d],[e.scaleService.getScaleDefaults(c),h])}else{n.merge(a[t][d],h)}}}else{n._merger(t,a,o,l)}}})};n.where=function(e,t){if(n.isArray(e)&&Array.prototype.filter){return e.filter(t)}var a=[];n.each(e,function(e){if(t(e)){a.push(e)}});return a};n.findIndex=Array.prototype.findIndex?function(e,t,a){return e.findIndex(t,a)}:function(e,t,a){a=a===void 0?e:a;for(var o=0,n=e.length;oe};n.max=function(e){return e.reduce(function(e,t){if(!isNaN(t)){return Math.max(e,t)}return e},Number.NEGATIVE_INFINITY)};n.min=function(e){return e.reduce(function(e,t){if(!isNaN(t)){return Math.min(e,t)}return e},Number.POSITIVE_INFINITY)};n.sign=Math.sign?function(e){return Math.sign(e)}:function(e){e=+e;if(0===e||isNaN(e)){return e}return 0=p){continue}m=3/Math.sqrt(p);s.mK=h*m*s.deltaK;d.mK=u*m*s.deltaK}var f;for(o=0;o=e.length-1?e[0]:e[t+1]}return t>=e.length-1?e[e.length-1]:e[t+1]};n.previousItem=function(e,t,a){if(a){return 0>=t?e[e.length-1]:e[t-1]}return 0>=t?e[0]:e[t-1]};n.niceNum=function(e,t){var a=Math.floor(n.log10(e)),o=e/Math.pow(10,a),i;if(t){if(1.5>o){i=1}else if(3>o){i=2}else if(7>o){i=5}else{i=10}}else if(1>=o){i=1}else if(2>=o){i=2}else if(5>=o){i=5}else{i=10}return i*Math.pow(10,a)};n.requestAnimFrame=function(){if("undefined"==typeof window){return function(e){e()}}return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(e){return window.setTimeout(e,1e3/60)}}();n.getRelativePosition=function(t,a){var o,i,l=t.originalEvent||t,e=t.currentTarget||t.srcElement,s=e.getBoundingClientRect(),d=l.touches;if(d&&0a.length){for(var h=0;ho){o=n}return o};n.numberOfLabelLines=function(e){var t=1;n.each(e,function(e){if(n.isArray(e)){if(e.length>t){t=e.length}}});return t};n.color=!a?function(e){console.error("Color.js not found!");return e}:function(e){if(e instanceof CanvasGradient){e=o.global.defaultColor}return a(e)};n.getHoverColor=function(e){return e instanceof CanvasPattern?e:n.color(e).saturate(.5).darken(.1).rgbString()}}},{2:2,25:25,45:45}],28:[function(e,t){'use strict';var d=e(45);function a(t,e){if(t.native){return{x:t.x,y:t.y}}return d.getRelativePosition(t,e)}function o(e,t){var a=e.data.datasets,o,n,l,s,d;for(n=0,s=a.length;np&&de.maxHeight){d--;break}d++;h=u*c}}e.labelRotation=d},afterCalculateTickRotation:function afterCalculateTickRotation(){l.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function beforeFit(){l.callback(this.options.beforeFit,[this])},fit:function fit(){var e=this,o=e.minSize={width:0,height:0},i=a(e._ticks),n=e.options,c=n.ticks,h=n.scaleLabel,u=n.gridLines,m=n.display,p=e.isHorizontal(),f=s(c),y=n.gridLines.tickMarkLength;if(p){o.width=e.isFullWidth()?e.maxWidth-e.margins.left-e.margins.right:e.maxWidth}else{o.width=m&&u.drawTicks?y:0}if(p){o.height=m&&u.drawTicks?y:0}else{o.height=e.maxHeight}if(h.display&&m){var x=d(h),k=l.options.toPadding(h.padding),_=x+k.height;if(p){o.height+=_}else{o.width+=_}}if(c.display&&m){var v=l.longestText(e.ctx,f.font,i,e.longestTextCache),S=l.numberOfLabelLines(i),w=.5*f.size,D=e.options.ticks.padding;if(p){e.longestLabelWidth=v;var C=l.toRadians(e.labelRotation),P=Math.cos(C),T=Math.sin(C),O=T*v+f.size*S+w*(S-1)+w;o.height=Math.min(e.maxHeight,o.height+O+D);e.ctx.font=f.font;var I=t(e.ctx,i[0],f.font),A=t(e.ctx,i[i.length-1],f.font);if(0!==e.labelRotation){e.paddingLeft="bottom"===n.position?P*I+3:P*w+3;e.paddingRight="bottom"===n.position?P*w+3:P*A+3}else{e.paddingLeft=I/2+3;e.paddingRight=A/2+3}}else{if(c.mirror){v=0}else{v+=D+w}o.width=Math.min(e.maxWidth,o.width+v);e.paddingTop=f.size/2;e.paddingBottom=f.size/2}}e.handleMargins();e.width=o.width;e.height=o.height},handleMargins:function handleMargins(){var e=this;if(e.margins){e.paddingLeft=Math.max(e.paddingLeft-e.margins.left,0);e.paddingTop=Math.max(e.paddingTop-e.margins.top,0);e.paddingRight=Math.max(e.paddingRight-e.margins.right,0);e.paddingBottom=Math.max(e.paddingBottom-e.margins.bottom,0)}},afterFit:function afterFit(){l.callback(this.options.afterFit,[this])},isHorizontal:function isHorizontal(){return"top"===this.options.position||"bottom"===this.options.position},isFullWidth:function isFullWidth(){return this.options.fullWidth},getRightValue:function getRightValue(e){if(l.isNullOrUndef(e)){return NaN}if("number"==typeof e&&!isFinite(e)){return NaN}if(e){if(this.isHorizontal()){if(e.x!==void 0){return this.getRightValue(e.x)}}else if(e.y!==void 0){return this.getRightValue(e.y)}}return e},getLabelForIndex:l.noop,getPixelForValue:l.noop,getValueForPixel:l.noop,getPixelForTick:function getPixelForTick(e){var t=this,a=t.options.offset;if(t.isHorizontal()){var o=t.width-(t.paddingLeft+t.paddingRight),i=o/Math.max(t._ticks.length-(a?0:1),1),n=i*e+t.paddingLeft;if(a){n+=i/2}var l=t.left+Math.round(n);l+=t.isFullWidth()?t.margins.left:0;return l}var s=t.height-(t.paddingTop+t.paddingBottom);return t.top+e*(s/(t._ticks.length-1))},getPixelForDecimal:function getPixelForDecimal(e){var t=this;if(t.isHorizontal()){var a=t.width-(t.paddingLeft+t.paddingRight),o=a*e+t.paddingLeft,i=t.left+Math.round(o);i+=t.isFullWidth()?t.margins.left:0;return i}return t.top+e*t.height},getBasePixel:function getBasePixel(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function getBaseValue(){var e=this,t=e.min,a=e.max;return e.beginAtZero?0:0>t&&0>a?a:0a.width-(a.paddingLeft+a.paddingRight)){t=1+Math.floor((h+n.autoSkipPadding)*s/(a.width-(a.paddingLeft+a.paddingRight)))}if(y&&s>y){t=Math.max(t,Math.floor(s/y))}}for(m=0;m=s;if(f&&m!==s-1||l.isNullOrUndef(p.label)){delete p.label}u.push(p)}return u},draw:function draw(e){var t=this,a=t.options;if(!a.display){return}var n=t.ctx,c=i.global,h=a.ticks.minor,u=a.ticks.major||h,m=a.gridLines,p=a.scaleLabel,f=0!==t.labelRotation,y=t.isHorizontal(),x=h.autoSkip?t._autoSkip(t.getTicks()):t.getTicks(),k=l.valueOrDefault(h.fontColor,c.defaultFontColor),_=s(h),v=l.valueOrDefault(u.fontColor,c.defaultFontColor),S=s(u),w=m.drawTicks?m.tickMarkLength:0,D=l.valueOrDefault(p.fontColor,c.defaultFontColor),C=s(p),P=l.options.toPadding(p.padding),T=l.toRadians(t.labelRotation),O=[],I="right"===a.position?t.left:t.right-w,A="right"===a.position?t.left+w:t.right,M="bottom"===a.position?t.top:t.bottom-w,R="bottom"===a.position?t.top+w:t.bottom;l.each(x,function(i,n){if(i.label===void 0){return}var s=i.label,d,u,p,k;if(n===t.zeroLineIndex&&a.offset===m.offsetGridLines){d=m.zeroLineWidth;u=m.zeroLineColor;p=m.zeroLineBorderDash;k=m.zeroLineBorderDashOffset}else{d=l.valueAtIndexOrDefault(m.lineWidth,n);u=l.valueAtIndexOrDefault(m.color,n);p=l.valueOrDefault(m.borderDash,c.borderDash);k=l.valueOrDefault(m.borderDashOffset,c.borderDashOffset)}var _,v,S,D,C,P,F,L,W,Y,z="middle",H="middle",B=h.padding;if(y){var E=w+B;if("bottom"===a.position){H=!f?"top":"middle";z=!f?"center":"right";Y=t.top+E}else{H=!f?"bottom":"middle";z=!f?"center":"left";Y=t.bottom-E}var V=o(t,n,m.offsetGridLines&&1o.height-t.height){l="bottom"}var s,d,c,h,u,m=(i.left+i.right)/2,p=(i.top+i.bottom)/2;if("center"===l){s=function(e){return e<=m};d=function(e){return e>m}}else{s=function(e){return e<=t.width/2};d=function(e){return e>=o.width-t.width/2}}c=function(e){return e+t.width>o.width};h=function(e){return 0>e-t.width};u=function(e){return e<=p?"top":"bottom"};if(s(a.x)){n="left";if(c(a.x)){n="center";l=u(a.y)}}else if(d(a.x)){n="right";if(h(a.x)){n="center";l=u(a.y)}}var f=e._options;return{xAlign:f.xAlign?f.xAlign:n,yAlign:f.yAlign?f.yAlign:l}}function h(e,t,a){var o=e.x,i=e.y,n=e.caretSize,l=e.caretPadding,s=e.cornerRadius,d=a.xAlign,c=a.yAlign,h=n+l,u=s+l;if("right"===d){o-=t.width}else if("center"===d){o-=t.width/2}if("top"===c){i+=h}else if("bottom"===c){i-=t.height+h}else{i-=t.height/2}if("center"===c){if("left"===d){o+=h}else if("right"===d){o-=h}}else if("left"===d){o-=u}else if("right"===d){o+=u}return{x:o,y:i}}e.Tooltip=o.extend({initialize:function initialize(){this._model=s(this._options)},getTitle:function getTitle(){var e=this,t=e._options,a=t.callbacks,o=a.beforeTitle.apply(e,arguments),n=a.title.apply(e,arguments),l=a.afterTitle.apply(e,arguments),s=[];s=i(s,o);s=i(s,n);s=i(s,l);return s},getBeforeBody:function getBeforeBody(){var e=this._options.callbacks.beforeBody.apply(this,arguments);return n.isArray(e)?e:e!==void 0?[e]:[]},getBody:function getBody(e,t){var a=this,o=a._options.callbacks,l=[];n.each(e,function(e){var n={before:[],lines:[],after:[]};i(n.before,o.beforeLabel.call(a,e,t));i(n.lines,o.label.call(a,e,t));i(n.after,o.afterLabel.call(a,e,t));l.push(n)});return l},getAfterBody:function getAfterBody(){var e=this._options.callbacks.afterBody.apply(this,arguments);return n.isArray(e)?e:e!==void 0?[e]:[]},getFooter:function getFooter(){var e=this,t=e._options.callbacks,a=t.beforeFooter.apply(e,arguments),o=t.footer.apply(e,arguments),n=t.afterFooter.apply(e,arguments),l=[];l=i(l,a);l=i(l,o);l=i(l,n);return l},update:function update(t){var a=this,o=a._options,u=a._model,m=a._model=s(o),p=a._active,f=a._data,y={xAlign:u.xAlign,yAlign:u.yAlign},x={x:u.x,y:u.y},k={width:u.width,height:u.height},_={x:u.caretX,y:u.caretY},v,S;if(p.length){m.opacity=1;var w=[],D=[];_=e.Tooltip.positioners[o.position](p,a._eventPosition);var C=[];for(v=0,S=p.length;vt.opacity)?0:t.opacity,n=t.title.length||t.beforeBody.length||t.body.length||t.afterBody.length||t.footer.length;if(this._options.enabled&&n){this.drawBackground(o,t,e,a,i);o.x+=t.xPadding;o.y+=t.yPadding;this.drawTitle(o,t,e,i);this.drawBody(o,t,e,i);this.drawFooter(o,t,e,i)}},handleEvent:function handleEvent(t){var e=this,a=e._options,o=!1;e._lastActive=e._lastActive||[];if("mouseout"===t.type){e._active=[]}else{e._active=e._chart.getElementsAtEventForMode(t,a.mode,a)}o=!n.arrayEquals(e._active,e._lastActive);if(!o){return!1}e._lastActive=e._active;if(a.enabled||a.custom){e._eventPosition={x:t.x,y:t.y};var i=e._model;e.update(!0);e.pivot();o|=i.x!==e._model.x||i.y!==e._model.y}return o}});e.Tooltip.positioners={average:function average(e){if(!e.length){return!1}var t,a,o=0,n=0,l=0;for(t=0,a=e.length;td){n-=2*Math.PI}while(n=s&&n<=d,h=l>=a.innerRadius&&l<=a.outerRadius;return c&&h}return!1},getCenterPoint:function getCenterPoint(){var e=this._view,t=(e.startAngle+e.endAngle)/2,a=(e.innerRadius+e.outerRadius)/2;return{x:e.x+Math.cos(t)*a,y:e.y+Math.sin(t)*a}},getArea:function getArea(){var e=this._view;return Math.PI*((e.endAngle-e.startAngle)/(2*Math.PI))*(Math.pow(e.outerRadius,2)-Math.pow(e.innerRadius,2))},tooltipPosition:function tooltipPosition(){var e=this._view,t=e.startAngle+(e.endAngle-e.startAngle)/2,a=(e.outerRadius-e.innerRadius)/2+e.innerRadius;return{x:e.x+Math.cos(t)*a,y:e.y+Math.sin(t)*a}},draw:function draw(){var e=this._chart.ctx,t=this._view,a=t.startAngle,o=t.endAngle;e.beginPath();e.arc(t.x,t.y,t.outerRadius,a,o);e.arc(t.x,t.y,t.innerRadius,o,a,!0);e.closePath();e.strokeStyle=t.borderColor;e.lineWidth=t.borderWidth;e.fillStyle=t.backgroundColor;e.fill();e.lineJoin="bevel";if(t.borderWidth){e.stroke()}}})},{25:25,26:26,45:45}],37:[function(e,t){'use strict';var a=e(25),o=e(26),i=e(45),n=a.global;a._set("global",{elements:{line:{tension:.4,backgroundColor:n.defaultColor,borderWidth:3,borderColor:n.defaultColor,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",capBezierPoints:!0,fill:!0}}});t.exports=o.extend({draw:function draw(){var e=this,t=e._view,a=e._chart.ctx,o=t.spanGaps,l=e._children.slice(),s=n.elements.line,d=-1,c,h,u,m;if(e._loop&&l.length){l.push(l[0])}a.save();a.lineCap=t.borderCapStyle||s.borderCapStyle;if(a.setLineDash){a.setLineDash(t.borderDash||s.borderDash)}a.lineDashOffset=t.borderDashOffset||s.borderDashOffset;a.lineJoin=t.borderJoinStyle||s.borderJoinStyle;a.lineWidth=t.borderWidth||s.borderWidth;a.strokeStyle=t.borderColor||n.defaultColor;a.beginPath();d=-1;for(c=0;cl?1:-1;h=a.borderSkipped||"bottom"}else{o=a.base;n=a.x;l=a.y-a.height/2;s=a.y+a.height/2;d=n>o?1:-1;c=1;h=a.borderSkipped||"left"}if(u){var m=Math.min(Math.abs(o-n),Math.abs(l-s));u=u>m?m:u;var p=u/2,f=o+("left"!==h?p*d:0),y=n+("right"!==h?-p*d:0),x=l+("top"!==h?p*c:0),k=s+("bottom"!==h?-p*c:0);if(f!==y){l=x;s=k}if(x!==k){o=f;n=y}}t.beginPath();t.fillStyle=a.backgroundColor;t.strokeStyle=a.borderColor;t.lineWidth=u;var _=[[o,s],[o,l],[n,l],[n,s]],v=["bottom","left","top","right"].indexOf(h,0);if(-1===v){v=0}function e(e){return _[(v+e)%4]}var S=e(0);t.moveTo(S[0],S[1]);for(var w=1;4>w;w++){S=e(w);t.lineTo(S[0],S[1])}t.fill();if(u){t.stroke()}},height:function height(){var e=this._view;return e.base-e.y},inRange:function(e,t){var a=!1;if(this._view){var i=o(this);a=e>=i.left&&e<=i.right&&t>=i.top&&t<=i.bottom}return a},inLabelRange:function inLabelRange(e,t){var i=this;if(!i._view){return!1}var n=!1,l=o(i);if(a(i)){n=e>=l.left&&e<=l.right}else{n=t>=l.top&&t<=l.bottom}return n},inXRange:function inXRange(e){var t=o(this);return e>=t.left&&e<=t.right},inYRange:function inYRange(e){var t=o(this);return e>=t.top&&e<=t.bottom},getCenterPoint:function getCenterPoint(){var e=this._view,t,o;if(a(this)){t=e.x;o=(e.y+e.base)/2}else{t=(e.x+e.base)/2;o=e.y}return{x:t,y:o}},getArea:function getArea(){var e=this._view;return e.width*Math.abs(e.y-e.base)},tooltipPosition:function tooltipPosition(){var e=this._view;return{x:e.x,y:e.y}}})},{25:25,26:26}],40:[function(e,t){'use strict';t.exports={};t.exports.Arc=e(36);t.exports.Line=e(37);t.exports.Point=e(38);t.exports.Rectangle=e(39)},{36:36,37:37,38:38,39:39}],41:[function(e,t,a){'use strict';var o=e(42),a=t.exports={clear:function clear(e){e.ctx.clearRect(0,0,e.width,e.height)},roundedRect:function roundedRect(e,t,a,o,i,n){if(n){var l=Math.min(n,o/2),s=Math.min(n,i/2);e.moveTo(t+l,a);e.lineTo(t+o-l,a);e.quadraticCurveTo(t+o,a,t+o,a+s);e.lineTo(t+o,a+i-s);e.quadraticCurveTo(t+o,a+i,t+o-l,a+i);e.lineTo(t+l,a+i);e.quadraticCurveTo(t,a+i,t,a+i-s);e.lineTo(t,a+s);e.quadraticCurveTo(t,a,t+l,a)}else{e.rect(t,a,o,i)}},drawPoint:function drawPoint(e,t,a,o,i){var n,l,s,d,c,h;if("object"===_typeof(t)){n=t.toString();if("[object HTMLImageElement]"===n||"[object HTMLCanvasElement]"===n){e.drawImage(t,o-t.width/2,i-t.height/2,t.width,t.height);return}}if(isNaN(a)||0>=a){return}switch(t){default:e.beginPath();e.arc(o,i,a,0,2*Math.PI);e.closePath();e.fill();break;case"triangle":e.beginPath();l=3*a/Math.sqrt(3);c=l*Math.sqrt(3)/2;e.moveTo(o-l/2,i+c/3);e.lineTo(o+l/2,i+c/3);e.lineTo(o,i-2*c/3);e.closePath();e.fill();break;case"rect":h=1/Math.SQRT2*a;e.beginPath();e.fillRect(o-h,i-h,2*h,2*h);e.strokeRect(o-h,i-h,2*h,2*h);break;case"rectRounded":var u=a/Math.SQRT2,m=Math.SQRT2*a;e.beginPath();this.roundedRect(e,o-u,i-u,m,m,a/2);e.closePath();e.fill();break;case"rectRot":h=1/Math.SQRT2*a;e.beginPath();e.moveTo(o-h,i);e.lineTo(o,i+h);e.lineTo(o+h,i);e.lineTo(o,i-h);e.closePath();e.fill();break;case"cross":e.beginPath();e.moveTo(o,i+a);e.lineTo(o,i-a);e.moveTo(o-a,i);e.lineTo(o+a,i);e.closePath();break;case"crossRot":e.beginPath();s=Math.cos(Math.PI/4)*a;d=Math.sin(Math.PI/4)*a;e.moveTo(o-s,i-d);e.lineTo(o+s,i+d);e.moveTo(o-s,i+d);e.lineTo(o+s,i-d);e.closePath();break;case"star":e.beginPath();e.moveTo(o,i+a);e.lineTo(o,i-a);e.moveTo(o-a,i);e.lineTo(o+a,i);s=Math.cos(Math.PI/4)*a;d=Math.sin(Math.PI/4)*a;e.moveTo(o-s,i-d);e.lineTo(o+s,i+d);e.moveTo(o-s,i+d);e.lineTo(o+s,i-d);e.closePath();break;case"line":e.beginPath();e.moveTo(o-a,i);e.lineTo(o+a,i);e.closePath();break;case"dash":e.beginPath();e.moveTo(o,i);e.lineTo(o+a,i);e.closePath();break;}e.stroke()},clipArea:function clipArea(e,t){e.save();e.beginPath();e.rect(t.left,t.top,t.right-t.left,t.bottom-t.top);e.clip()},unclipArea:function unclipArea(e){e.restore()},lineTo:function lineTo(e,t,a,o){if(a.steppedLine){if("after"===a.steppedLine&&!o||"after"!==a.steppedLine&&o){e.lineTo(t.x,a.y)}else{e.lineTo(a.x,t.y)}e.lineTo(a.x,a.y);return}if(!a.tension){e.lineTo(a.x,a.y);return}e.bezierCurveTo(o?t.controlPointPreviousX:t.controlPointNextX,o?t.controlPointPreviousY:t.controlPointNextY,o?a.controlPointNextX:a.controlPointPreviousX,o?a.controlPointNextY:a.controlPointPreviousY,a.x,a.y)}};o.clear=a.clear;o.drawRoundedRectangle=function(e){e.beginPath();a.roundedRect.apply(a,arguments);e.closePath()}},{42:42}],42:[function(e,t){'use strict';var a={noop:function noop(){},uid:function(){var e=0;return function(){return e++}}(),isNullOrUndef:function isNullOrUndef(e){return null===e||"undefined"==typeof e},isArray:Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)},isObject:function isObject(e){return null!==e&&"[object Object]"===Object.prototype.toString.call(e)},valueOrDefault:function valueOrDefault(e,t){return"undefined"==typeof e?t:e},valueAtIndexOrDefault:function valueAtIndexOrDefault(e,t,o){return a.valueOrDefault(a.isArray(e)?e[t]:e,o)},callback:function callback(e,t,a){if(e&&"function"==typeof e.call){return e.apply(a,t)}},each:function each(e,t,o,n){var l,s,d;if(a.isArray(e)){s=e.length;if(n){for(l=s-1;0<=l;l--){t.call(o,e[l],l)}}else{for(l=0;l(e/=.5)){return .5*e*e}return-.5*(--e*(e-2)-1)},easeInCubic:function easeInCubic(e){return e*e*e},easeOutCubic:function easeOutCubic(e){return(e=e-1)*e*e+1},easeInOutCubic:function easeInOutCubic(e){if(1>(e/=.5)){return .5*e*e*e}return .5*((e-=2)*e*e+2)},easeInQuart:function easeInQuart(e){return e*e*e*e},easeOutQuart:function easeOutQuart(e){return-((e=e-1)*e*e*e-1)},easeInOutQuart:function easeInOutQuart(e){if(1>(e/=.5)){return .5*e*e*e*e}return-.5*((e-=2)*e*e*e-2)},easeInQuint:function easeInQuint(e){return e*e*e*e*e},easeOutQuint:function easeOutQuint(e){return(e=e-1)*e*e*e*e+1},easeInOutQuint:function easeInOutQuint(e){if(1>(e/=.5)){return .5*e*e*e*e*e}return .5*((e-=2)*e*e*e*e+2)},easeInSine:function easeInSine(e){return-Math.cos(e*(Math.PI/2))+1},easeOutSine:function easeOutSine(e){return Math.sin(e*(Math.PI/2))},easeInOutSine:function easeInOutSine(e){return-.5*(Math.cos(Math.PI*e)-1)},easeInExpo:function easeInExpo(e){return 0===e?0:Math.pow(2,10*(e-1))},easeOutExpo:function easeOutExpo(e){return 1===e?1:-Math.pow(2,-10*e)+1},easeInOutExpo:function easeInOutExpo(e){if(0===e){return 0}if(1===e){return 1}if(1>(e/=.5)){return .5*Math.pow(2,10*(e-1))}return .5*(-Math.pow(2,-10*--e)+2)},easeInCirc:function easeInCirc(e){if(1<=e){return e}return-(Math.sqrt(1-e*e)-1)},easeOutCirc:function easeOutCirc(e){return Math.sqrt(1-(e=e-1)*e)},easeInOutCirc:function easeInOutCirc(e){if(1>(e/=.5)){return-.5*(Math.sqrt(1-e*e)-1)}return .5*(Math.sqrt(1-(e-=2)*e)+1)},easeInElastic:function easeInElastic(e){var o=1.70158,i=0,n=1;if(0===e){return 0}if(1===e){return 1}if(!i){i=.3}if(1>n){n=1;o=i/4}else{o=i/(2*Math.PI)*Math.asin(1/n)}return-(n*Math.pow(2,10*(e-=1))*Math.sin((e-o)*(2*Math.PI)/i))},easeOutElastic:function easeOutElastic(e){var t=1.70158,o=0,i=1;if(0===e){return 0}if(1===e){return 1}if(!o){o=.3}if(1>i){i=1;t=o/4}else{t=o/(2*Math.PI)*Math.asin(1/i)}return i*Math.pow(2,-10*e)*Math.sin((e-t)*(2*Math.PI)/o)+1},easeInOutElastic:function easeInOutElastic(e){var o=1.70158,i=0,n=1;if(0===e){return 0}if(2==(e/=.5)){return 1}if(!i){i=.45}if(1>n){n=1;o=i/4}else{o=i/(2*Math.PI)*Math.asin(1/n)}if(1>e){return-.5*(n*Math.pow(2,10*(e-=1))*Math.sin((e-o)*(2*Math.PI)/i))}return .5*(n*Math.pow(2,-10*(e-=1))*Math.sin((e-o)*(2*Math.PI)/i))+1},easeInBack:function easeInBack(e){var t=1.70158;return e*e*((t+1)*e-t)},easeOutBack:function easeOutBack(e){var a=1.70158;return(e=e-1)*e*((a+1)*e+a)+1},easeInOutBack:function easeInOutBack(e){var a=1.70158;if(1>(e/=.5)){return .5*(e*e*(((a*=1.525)+1)*e-a))}return .5*((e-=2)*e*(((a*=1.525)+1)*e+a)+2)},easeInBounce:function easeInBounce(e){return 1-o.easeOutBounce(1-e)},easeOutBounce:function easeOutBounce(e){if(e<1/2.75){return 7.5625*e*e}if(e<2/2.75){return 7.5625*(e-=1.5/2.75)*e+.75}if(e<2.5/2.75){return 7.5625*(e-=2.25/2.75)*e+.9375}return 7.5625*(e-=2.625/2.75)*e+.984375},easeInOutBounce:function easeInOutBounce(e){if(.5>e){return .5*o.easeInBounce(2*e)}return .5*o.easeOutBounce(2*e-1)+.5}};t.exports={effects:o};a.easingEffects=o},{42:42}],44:[function(e,t){'use strict';var a=e(42);t.exports={toLineHeight:function toLineHeight(e,t){var a=(""+e).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/);if(!a||"normal"===a[1]){return 1.2*t}e=+a[2];switch(a[3]){case"px":return e;case"%":e/=100;break;default:break;}return t*e},toPadding:function toPadding(e){var o,i,n,s;if(a.isObject(e)){o=+e.top||0;i=+e.right||0;n=+e.bottom||0;s=+e.left||0}else{o=i=n=s=+e||0}return{top:o,right:i,bottom:n,left:s,height:o+n,width:s+i}},resolve:function resolve(e,t,o){var n,l,s;for(n=0,l=e.length;n
";var l=t.childNodes[0],s=t.childNodes[1];t._reset=function(){l.scrollLeft=o;l.scrollTop=o;s.scrollLeft=o;s.scrollTop=o};var d=function(){t._reset();e()};i(l,"scroll",d.bind(l,"expand"));i(s,"scroll",d.bind(s,"shrink"));return t}function h(e,t){var a=e[x]||(e[x]={}),o=a.renderProxy=function(a){if(a.animationName===v){t()}};y.each(S,function(t){i(e,t,o)});e.classList.add(_)}function u(e){var t=e[x]||{},a=t.renderProxy;if(a){y.each(S,function(t){n(e,t,a)});delete t.renderProxy}e.classList.remove(_)}function m(e,t,a){var o=e[x]||(e[x]={}),i=o.resizer=c(d(function(){if(o.resizer){return t(l("resize",a))}}));h(e,function(){if(o.resizer){var t=e.parentNode;if(t&&t!==i.parentNode){t.insertBefore(i,t.firstChild)}i._reset()}})}function p(e){var t=e[x]||{},a=t.resizer;delete t.resizer;u(e);if(a&&a.parentNode){a.parentNode.removeChild(a)}}function f(e,t){var a=e._style||document.createElement("style");if(!e._style){e._style=a;t="/* Chart.js */\n"+t;a.setAttribute("type","text/css");document.getElementsByTagName("head")[0].appendChild(a)}a.appendChild(document.createTextNode(t))}t.exports={_enabled:"undefined"!=typeof window&&"undefined"!=typeof document,initialize:function initialize(){f(this,"@-webkit-keyframes "+v+"{"+"from{opacity:0.99}to{opacity:1}"+"}@keyframes "+v+"{"+"from{opacity:0.99}to{opacity:1}"+"}."+_+"{-webkit-animation:"+v+" 0.001s;animation:"+v+" 0.001s;}")},acquireContext:function acquireContext(e,t){if("string"==typeof e){e=document.getElementById(e)}else if(e.length){e=e[0]}if(e&&e.canvas){e=e.canvas}var a=e&&e.getContext&&e.getContext("2d");if(a&&a.canvas===e){o(e,t);return a}return null},releaseContext:function releaseContext(e){var t=e.canvas;if(!t[x]){return}var a=t[x].initial;["height","width"].forEach(function(e){var o=a[e];if(y.isNullOrUndef(o)){t.removeAttribute(e)}else{t.setAttribute(e,o)}});y.each(a.style||{},function(e,a){t.style[a]=e});t.width=t.width;delete t[x]},addEventListener:function addEventListener(e,t,a){var o=e.canvas;if("resize"===t){m(o,a,e);return}var n=a[x]||(a[x]={}),l=n.proxies||(n.proxies={}),d=l[e.id+"_"+t]=function(t){a(s(t,e))};i(o,t,d)},removeEventListener:function removeEventListener(e,t,a){var o=e.canvas;if("resize"===t){p(o,a);return}var i=a[x]||{},l=i.proxies||{},s=l[e.id+"_"+t];if(!s){return}n(o,t,s)}};y.addEvent=i;y.removeEvent=n},{45:45}],48:[function(e,t){'use strict';var a=e(45),o=e(46),i=e(47),n=i._enabled?i:o;t.exports=a.extend({initialize:function initialize(){},acquireContext:function acquireContext(){},releaseContext:function releaseContext(){},addEventListener:function addEventListener(){},removeEventListener:function removeEventListener(){}},n)},{45:45,46:46,47:47}],49:[function(e,t){'use strict';var a=e(25),o=e(40),n=e(45);a._set("global",{plugins:{filler:{propagate:!0}}});t.exports=function(){var u={dataset:function dataset(e){var t=e.fill,a=e.chart,o=a.getDatasetMeta(t),i=o&&a.isDatasetVisible(t),n=i&&o.dataset._children||[],l=n.length||0;return!l?null:function(e,t){return tn||n>=a){return!1}return n}switch(i){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return i;default:return!1;}}function t(e){var t=e.el._model||{},a=e.el._scale||{},o=e.fill,i=null,n;if(isFinite(o)){return null}if("start"===o){i=t.scaleBottom===void 0?a.bottom:t.scaleBottom}else if("end"===o){i=t.scaleTop===void 0?a.top:t.scaleTop}else if(t.scaleZero!==void 0){i=t.scaleZero}else if(a.getBasePosition){i=a.getBasePosition()}else if(a.getBasePixel){i=a.getBasePixel()}if(i!==void 0&&null!==i){if(i.x!==void 0&&i.y!==void 0){return i}if("number"==typeof i&&isFinite(i)){n=a.isHorizontal();return{x:n?i:null,y:n?null:i}}}return null}function l(e,t,a){var o=e[t],i=o.fill,n=[t],l;if(!a){return i}while(!1!==i&&-1===n.indexOf(i)){if(!isFinite(i)){return i}l=e[i];if(!l){return!1}if(l.visible){return i}n.push(i);i=l.fill}return!1}function s(e){var t=e.fill,a="dataset";if(!1===t){return null}if(!isFinite(t)){a="boundary"}return u[a](e)}function d(e){return e&&!e.skip}function c(e,t,a,o,l){var s;if(!o||!l){return}e.moveTo(t[0].x,t[0].y);for(s=1;s"],a=0;a");if(e.data.datasets[a].label){t.push(e.data.datasets[a].label)}t.push("")}t.push("");return t.join("")}});t.exports=function(e){var l=e.layoutService,s=n.noop;function t(e,t){return e.usePointStyle?t*Math.SQRT2:e.boxWidth}e.Legend=o.extend({initialize:function initialize(e){n.extend(this,e);this.legendHitBoxes=[];this.doughnutMode=!1},beforeUpdate:s,update:function update(e,t,a){var o=this;o.beforeUpdate();o.maxWidth=e;o.maxHeight=t;o.margins=a;o.beforeSetDimensions();o.setDimensions();o.afterSetDimensions();o.beforeBuildLabels();o.buildLabels();o.afterBuildLabels();o.beforeFit();o.fit();o.afterFit();o.afterUpdate();return o.minSize},afterUpdate:s,beforeSetDimensions:s,setDimensions:function setDimensions(){var e=this;if(e.isHorizontal()){e.width=e.maxWidth;e.left=0;e.right=e.width}else{e.height=e.maxHeight;e.top=0;e.bottom=e.height}e.paddingLeft=0;e.paddingTop=0;e.paddingRight=0;e.paddingBottom=0;e.minSize={width:0,height:0}},afterSetDimensions:s,beforeBuildLabels:s,buildLabels:function buildLabels(){var e=this,t=e.options.labels||{},a=n.callback(t.generateLabels,[e.chart],e)||[];if(t.filter){a=a.filter(function(a){return t.filter(a,e.chart.data)})}if(e.options.reverse){a.reverse()}e.legendItems=a},afterBuildLabels:s,beforeFit:s,fit:function fit(){var e=this,o=e.options,l=o.labels,s=o.display,d=e.ctx,c=a.global,h=n.valueOrDefault,u=h(l.fontSize,c.defaultFontSize),m=h(l.fontStyle,c.defaultFontStyle),p=h(l.fontFamily,c.defaultFontFamily),f=n.fontString(u,m,p),y=e.legendHitBoxes=[],x=e.minSize,k=e.isHorizontal();if(k){x.width=e.maxWidth;x.height=s?10:0}else{x.width=s?10:0;x.height=e.maxHeight}if(s){d.font=f;if(k){var _=e.lineWidths=[0],v=e.legendItems.length?u+l.padding:0;d.textAlign="left";d.textBaseline="top";n.each(e.legendItems,function(a,o){var i=t(l,u),n=i+u/2+d.measureText(a.text).width;if(_[_.length-1]+n+l.padding>=e.width){v+=u+l.padding;_[_.length]=e.left}y[o]={left:0,top:0,width:n,height:u};_[_.length-1]+=n+l.padding});x.height+=v}else{var S=l.padding,w=e.columnWidths=[],D=l.padding,C=0,P=0,T=u+S;n.each(e.legendItems,function(e,a){var o=t(l,u),i=o+u/2+d.measureText(e.text).width;if(P+T>x.height){D+=C+l.padding;w.push(C);C=0;P=0}C=Math.max(C,i);P+=T;y[a]={left:0,top:0,width:i,height:u}});D+=C;w.push(C);x.width+=D}}e.width=x.width;e.height=x.height},afterFit:s,isHorizontal:function isHorizontal(){return"top"===this.options.position||"bottom"===this.options.position},draw:function draw(){var e=this,o=e.options,i=o.labels,l=a.global,s=l.elements.line,d=e.width,c=e.lineWidths;if(o.display){var h=e.ctx,u=n.valueOrDefault,m=u(i.fontColor,l.defaultFontColor),p=u(i.fontSize,l.defaultFontSize),f=u(i.fontStyle,l.defaultFontStyle),y=u(i.fontFamily,l.defaultFontFamily),x=n.fontString(p,f,y),k;h.textAlign="left";h.textBaseline="middle";h.lineWidth=.5;h.strokeStyle=m;h.fillStyle=m;h.font=x;var _=t(i,p),v=e.legendHitBoxes,S=function(e,t,a){if(isNaN(_)||0>=_){return}h.save();h.fillStyle=u(a.fillStyle,l.defaultColor);h.lineCap=u(a.lineCap,s.borderCapStyle);h.lineDashOffset=u(a.lineDashOffset,s.borderDashOffset);h.lineJoin=u(a.lineJoin,s.borderJoinStyle);h.lineWidth=u(a.lineWidth,s.borderWidth);h.strokeStyle=u(a.strokeStyle,l.defaultColor);var i=0===u(a.lineWidth,s.borderWidth);if(h.setLineDash){h.setLineDash(u(a.lineDash,s.borderDash))}if(o.labels&&o.labels.usePointStyle){var d=p*Math.SQRT2/2,c=d/Math.SQRT2;n.canvas.drawPoint(h,a.pointStyle,d,e+c,t+c)}else{if(!i){h.strokeRect(e,t,_,p)}h.fillRect(e,t,_,p)}h.restore()},w=function(e,t,a,o){var i=p/2,n=_+i+e,l=t+i;h.fillText(a.text,n,l);if(a.hidden){h.beginPath();h.lineWidth=2;h.moveTo(n,l);h.lineTo(n+o,l);h.stroke()}},D=e.isHorizontal();if(D){k={x:e.left+(d-c[0])/2,y:e.top+i.padding,line:0}}else{k={x:e.left+i.padding,y:e.top+i.padding,line:0}}var C=p+i.padding;n.each(e.legendItems,function(t,a){var o=h.measureText(t.text).width,n=_+p/2+o,l=k.x,s=k.y;if(D){if(l+n>=d){s=k.y+=C;k.line++;l=k.x=e.left+(d-c[k.line])/2}}else if(s+C>e.bottom){l=k.x=l+e.columnWidths[k.line]+i.padding;s=k.y=e.top+i.padding;k.line++}S(l,s,t);v[a].left=l;v[a].top=s;w(l,s,t,o);if(D){k.x+=n+i.padding}else{k.y+=C}})}},handleEvent:function handleEvent(t){var e=this,a=e.options,o="mouseup"===t.type?"click":t.type,n=!1;if("mousemove"===o){if(!a.onHover){return}}else if("click"===o){if(!a.onClick){return}}else{return}var l=t.x,s=t.y;if(l>=e.left&&l<=e.right&&s>=e.top&&s<=e.bottom){for(var d=e.legendHitBoxes,c=0,h;c=h.left&&l<=h.left+h.width&&s>=h.top&&s<=h.top+h.height){if("click"===o){a.onClick.call(e,t.native,e.legendItems[c]);n=!0;break}else if("mousemove"===o){a.onHover.call(e,t.native,e.legendItems[c]);n=!0;break}}}}return n}});function i(t,a){var o=new e.Legend({ctx:t.ctx,options:a,chart:t});l.configure(t,o,a);l.addBox(t,o);t.legend=o}return{id:"legend",beforeInit:function beforeInit(e){var t=e.options.legend;if(t){i(e,t)}},beforeUpdate:function beforeUpdate(e){var t=e.options.legend,o=e.legend;if(t){n.mergeIf(t,a.global.legend);if(o){l.configure(e,o,t);o.options=t}else{i(e,t)}}else if(o){l.removeBox(e,o);delete e.legend}},afterEvent:function afterEvent(t,a){var e=t.legend;if(e){e.handleEvent(a)}}}}},{25:25,26:26,45:45}],51:[function(e,t){'use strict';var a=e(25),o=e(26),n=e(45);a._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,lineHeight:1.2,padding:10,position:"top",text:"",weight:2e3}});t.exports=function(e){var i=e.layoutService,l=n.noop;e.Title=o.extend({initialize:function initialize(e){var t=this;n.extend(t,e);t.legendHitBoxes=[]},beforeUpdate:l,update:function update(e,t,a){var o=this;o.beforeUpdate();o.maxWidth=e;o.maxHeight=t;o.margins=a;o.beforeSetDimensions();o.setDimensions();o.afterSetDimensions();o.beforeBuildLabels();o.buildLabels();o.afterBuildLabels();o.beforeFit();o.fit();o.afterFit();o.afterUpdate();return o.minSize},afterUpdate:l,beforeSetDimensions:l,setDimensions:function setDimensions(){var e=this;if(e.isHorizontal()){e.width=e.maxWidth;e.left=0;e.right=e.width}else{e.height=e.maxHeight;e.top=0;e.bottom=e.height}e.paddingLeft=0;e.paddingTop=0;e.paddingRight=0;e.paddingBottom=0;e.minSize={width:0,height:0}},afterSetDimensions:l,beforeBuildLabels:l,buildLabels:l,afterBuildLabels:l,beforeFit:l,fit:function fit(){var e=this,t=n.valueOrDefault,o=e.options,i=o.display,l=t(o.fontSize,a.global.defaultFontSize),s=e.minSize,d=n.isArray(o.text)?o.text.length:1,c=n.options.toLineHeight(o.lineHeight,l),h=i?d*c+2*o.padding:0;if(e.isHorizontal()){s.width=e.maxWidth;s.height=h}else{s.width=h;s.height=e.maxHeight}e.width=s.width;e.height=s.height},afterFit:l,isHorizontal:function isHorizontal(){var e=this.options.position;return"top"===e||"bottom"===e},draw:function draw(){var e=this,t=e.ctx,o=n.valueOrDefault,l=e.options,s=a.global;if(l.display){var d=o(l.fontSize,s.defaultFontSize),c=o(l.fontStyle,s.defaultFontStyle),h=o(l.fontFamily,s.defaultFontFamily),u=n.fontString(d,c,h),m=n.options.toLineHeight(l.lineHeight,d),p=m/2+l.padding,f=0,x=e.top,k=e.left,_=e.bottom,v=e.right,S,w,D;t.fillStyle=o(l.fontColor,s.defaultFontColor);t.font=u;if(e.isHorizontal()){w=k+(v-k)/2;D=x+p;S=v-k}else{w="left"===l.position?k+p:v-p;D=x+(_-x)/2;S=_-x;f=Math.PI*("left"===l.position?-.5:.5)}t.save();t.translate(w,D);t.rotate(f);t.textAlign="center";t.textBaseline="middle";var C=l.text;if(n.isArray(C)){for(var P=0,T=0;T=e){o=0}else{o=Math.round(e/l)}return o+t.minIndex},getBasePixel:function getBasePixel(){return this.bottom}});e.scaleService.registerScaleType("category",t,{position:"bottom"})}},{}],53:[function(e,t){'use strict';var a=e(25),o=e(45),i=e(34);t.exports=function(e){var t={position:"left",ticks:{callback:i.formatters.linear}},n=e.LinearScaleBase.extend({determineDataLimits:function determineDataLimits(){var t=this,a=t.options,i=t.chart,n=i.data,l=n.datasets,s=t.isHorizontal();function e(e){return s?e.xAxisID===t.id:e.yAxisID===t.id}t.min=null;t.max=null;var d=a.stacked;if(d===void 0){o.each(l,function(t,a){if(d){return}var o=i.getDatasetMeta(a);if(i.isDatasetVisible(a)&&e(o)&&o.stack!==void 0){d=!0}})}if(a.stacked||d){var c={};o.each(l,function(n,l){var s=i.getDatasetMeta(l),d=[s.type,a.stacked===void 0&&s.stack===void 0?l:"",s.stack].join(".");if(c[d]===void 0){c[d]={positiveValues:[],negativeValues:[]}}var h=c[d].positiveValues,u=c[d].negativeValues;if(i.isDatasetVisible(l)&&e(s)){o.each(n.data,function(e,o){var i=+t.getRightValue(e);if(isNaN(i)||s.data[o].hidden){return}h[o]=h[o]||0;u[o]=u[o]||0;if(a.relativePoints){h[o]=100}else if(0>i){u[o]+=i}else{h[o]+=i}})}});o.each(c,function(e){var a=e.positiveValues.concat(e.negativeValues),i=o.min(a),n=o.max(a);t.min=null===t.min?i:Math.min(t.min,i);t.max=null===t.max?n:Math.max(t.max,n)})}else{o.each(l,function(a,n){var l=i.getDatasetMeta(n);if(i.isDatasetVisible(n)&&e(l)){o.each(a.data,function(e,a){var o=+t.getRightValue(e);if(isNaN(o)||l.data[a].hidden){return}if(null===t.min){t.min=o}else if(ot.max){t.max=o}})}})}t.min=isFinite(t.min)&&!isNaN(t.min)?t.min:0;t.max=isFinite(t.max)&&!isNaN(t.max)?t.max:1;this.handleTickRangeOptions()},getTickLimit:function getTickLimit(){var e,t=this,i=t.options.ticks;if(t.isHorizontal()){e=Math.min(i.maxTicksLimit?i.maxTicksLimit:11,Math.ceil(t.width/50))}else{var n=o.valueOrDefault(i.fontSize,a.global.defaultFontSize);e=Math.min(i.maxTicksLimit?i.maxTicksLimit:11,Math.ceil(t.height/(2*n)))}return e},handleDirectionalChanges:function handleDirectionalChanges(){if(!this.isHorizontal()){this.ticks.reverse()}},getLabelForIndex:function getLabelForIndex(e,t){return+this.getRightValue(this.chart.data.datasets[t].data[e])},getPixelForValue:function getPixelForValue(e){var t=this,a=t.start,o=+t.getRightValue(e),i,n=t.end-a;if(t.isHorizontal()){i=t.left+t.width/n*(o-a);return Math.round(i)}i=t.bottom-t.height/n*(o-a);return Math.round(i)},getValueForPixel:function getValueForPixel(e){var t=this,a=t.isHorizontal(),o=a?t.width:t.height,i=(a?e-t.left:t.bottom-e)/o;return t.start+(t.end-t.start)*i},getPixelForTick:function getPixelForTick(e){return this.getPixelForValue(this.ticksAsNumbers[e])}});e.scaleService.registerScaleType("linear",n,t)}},{25:25,34:34,45:45}],54:[function(e,t){'use strict';var a=e(45),o=e(34);t.exports=function(e){var t=a.noop;e.LinearScaleBase=e.Scale.extend({getRightValue:function getRightValue(t){if("string"==typeof t){return+t}return e.Scale.prototype.getRightValue.call(this,t)},handleTickRangeOptions:function handleTickRangeOptions(){var e=this,t=e.options,o=t.ticks;if(o.beginAtZero){var i=a.sign(e.min),n=a.sign(e.max);if(0>i&&0>n){e.max=0}else if(0=e.max){if(l){e.max=e.min+1}else{e.min=e.max-1}}}if(e.min===e.max){e.max++;if(!o.beginAtZero){e.min--}}},getTickLimit:t,handleDirectionalChanges:t,buildTicks:function buildTicks(){var e=this,t=e.options,i=t.ticks,n=e.getTickLimit();n=Math.max(2,n);var l={maxTicks:n,min:i.min,max:i.max,stepSize:a.valueOrDefault(i.fixedStepSize,i.stepSize)},s=e.ticks=o.generators.linear(l,e);e.handleDirectionalChanges();e.max=a.max(s);e.min=a.min(s);if(i.reverse){s.reverse();e.start=e.max;e.end=e.min}else{e.start=e.min;e.end=e.max}},convertTicksToLabels:function convertTicksToLabels(){var t=this;t.ticksAsNumbers=t.ticks.slice();t.zeroLineIndex=t.ticks.indexOf(0);e.Scale.prototype.convertTicksToLabels.call(t)}})}},{34:34,45:45}],55:[function(e,t){'use strict';var a=e(45),o=e(34);t.exports=function(e){var t={position:"left",ticks:{callback:o.formatters.logarithmic}},i=e.Scale.extend({determineDataLimits:function determineDataLimits(){var t=this,o=t.options,i=o.ticks,n=t.chart,l=n.data,s=l.datasets,d=a.valueOrDefault,c=t.isHorizontal();function e(e){return c?e.xAxisID===t.id:e.yAxisID===t.id}t.min=null;t.max=null;t.minNotZero=null;var h=o.stacked;if(h===void 0){a.each(s,function(t,a){if(h){return}var o=n.getDatasetMeta(a);if(n.isDatasetVisible(a)&&e(o)&&o.stack!==void 0){h=!0}})}if(o.stacked||h){var u={};a.each(s,function(i,l){var s=n.getDatasetMeta(l),d=[s.type,o.stacked===void 0&&s.stack===void 0?l:"",s.stack].join(".");if(n.isDatasetVisible(l)&&e(s)){if(u[d]===void 0){u[d]=[]}a.each(i.data,function(e,a){var i=u[d],n=+t.getRightValue(e);if(isNaN(n)||s.data[a].hidden){return}i[a]=i[a]||0;if(o.relativePoints){i[a]=100}else{i[a]+=n}})}});a.each(u,function(e){var o=a.min(e),i=a.max(e);t.min=null===t.min?o:Math.min(t.min,o);t.max=null===t.max?i:Math.max(t.max,i)})}else{a.each(s,function(o,i){var l=n.getDatasetMeta(i);if(n.isDatasetVisible(i)&&e(l)){a.each(o.data,function(e,a){var o=+t.getRightValue(e);if(isNaN(o)||l.data[a].hidden){return}if(null===t.min){t.min=o}else if(ot.max){t.max=o}if(0!=o&&(null===t.minNotZero||oi){return{start:t-a-5,end:t}}return{start:t,end:t+a+5}}function d(e){var a=n(e),d=Math.min(e.height/2,e.width/2),c={r:e.width,l:0,t:e.height,b:0},h={},u,m,p;e.ctx.font=a.font;e._pointLabelSizes=[];var f=t(e);for(u=0;uc.r){c.r=k.end;h.r=y}if(_.startc.b){c.b=_.end;h.b=y}}e.setReductions(d,c,h)}function c(e){var t=Math.min(e.height/2,e.width/2);e.drawingArea=Math.round(t);e.setCenterPoint(0,0,0,0)}function h(e){if(0===e||180===e){return"center"}else if(180>e){return"left"}return"right"}function u(e,t,a,n){if(o.isArray(t)){for(var l=a.y,s=0;se){a.y-=t.h}}function p(e){var a=e.ctx,l=o.valueOrDefault,s=e.options,d=s.angleLines,c=s.pointLabels;a.lineWidth=d.lineWidth;a.strokeStyle=d.color;var p=e.getDistanceFromCenterForValue(s.ticks.reverse?e.min:e.max),f=n(e);a.textBaseline="top";for(var y=t(e)-1;0<=y;y--){if(d.display){var k=e.getPointPosition(y,p);a.beginPath();a.moveTo(e.xCenter,e.yCenter);a.lineTo(k.x,k.y);a.stroke();a.closePath()}if(c.display){var _=e.getPointPosition(y,p+5),v=l(c.fontColor,x.defaultFontColor);a.font=f.font;a.fillStyle=v;var S=e.getIndexAngle(y),w=o.toDegrees(S);a.textAlign=h(w);m(w,e._pointLabelSizes[y],_);u(a,e.pointLabels[y]||"",_,f.size)}}}function f(e,a,n,l){var s=e.ctx;s.strokeStyle=o.valueAtIndexOrDefault(a.color,l-1);s.lineWidth=o.valueAtIndexOrDefault(a.lineWidth,l-1);if(e.options.gridLines.circular){s.beginPath();s.arc(e.xCenter,e.yCenter,n,0,2*Math.PI);s.closePath();s.stroke()}else{var d=t(e);if(0===d){return}s.beginPath();var c=e.getPointPosition(0,n);s.moveTo(c.x,c.y);for(var h=1;ht&&0>a?a:0t&&h>1;l=e[n-1]||null;s=e[n];if(!l){return{lo:null,hi:s}}else if(s[t]a){i=n-1}else{return{lo:l,hi:s}}}return{lo:s,hi:null}}function s(e,t,a,o){var i=l(e,t,a),n=!i.lo?e[0]:!i.hi?e[e.length-2]:i.lo,s=!i.lo?e[1]:!i.hi?e[e.length-1]:i.hi,d=s[t]-n[t],c=d?(a-n[t])/d:0,h=(s[o]-n[o])*c;return n[o]+h}function d(e,t){var a=t.parser,o=t.parser||t.format;if("function"==typeof a){return a(e)}if("string"==typeof e&&"string"==typeof o){return x(e,o)}if(!(e instanceof x)){e=x(e)}if(e.isValid()){return e}if("function"==typeof o){return o(e)}return e}function c(e,t){if(_.isNullOrUndef(e)){return null}var a=t.options.time,o=d(t.getRightValue(e),a);if(!o.isValid()){return null}if(a.round){o.startOf(a.round)}return o.valueOf()}function h(e,t,a,o){var n=t-e,l=w[a],s=l.size,d=l.steps,c,h,u;if(!d){return Math.ceil(n/((o||1)*s))}for(c=0,h=d.length;c=t&&w<=a){_.push(w)}}e.min=t;e.max=a;e._unit=h;e._majorUnit=x;e._minorFormat=s[h];e._majorFormat=s[x];e._table=n(e._timestamps.data,t,a,o.distribution);e._offsets=f(e._table,_,t,a,o);return y(_,x)},getLabelForIndex:function getLabelForIndex(e,t){var a=this,o=a.chart.data,i=a.options.time,n=o.labels&&ed){d+=360}g=(o+n)/2;if(n===o){c=0}else if(.5>=g){c=r/(n+o)}else{c=r/(2-n-o)}return[d,100*c,100*g]};o.rgb.hsv=function(e){var t,a,i,o,n,l=e[0]/255,r=e[1]/255,d=e[2]/255,g=Math.max(l,r,d),m=g-Math.min(l,r,d),u=function(e){return(g-e)/6/m+1/2};if(0===m){o=n=0}else{n=m/g;t=u(l);a=u(r);i=u(d);if(l===g){o=i-a}else if(r===g){o=1/3+t-i}else if(d===g){o=2/3+a-t}if(0>o){o+=1}else if(1o){r=o*(1+a)}else{r=o+a-o*a}n=2*o-r;s=[0,0,0];for(var c=0;3>c;c++){l=t+1/3*-(c-1);if(0>l){l++}if(16*l){d=n+6*(r-n)*l}else if(1>2*l){d=r}else if(2>3*l){d=n+6*((r-n)*(2/3-l))}else{d=n}s[c]=255*d}return s};o.hsl.hsv=function(e){var t=e[0],a=e[1]/100,i=e[2]/100,o=a,n=Math.max(i,.01),r,d;i*=2;a*=1>=i?i:2-i;o*=1>=n?n:2-n;d=(i+a)/2;r=0===i?2*o/(n+o):2*a/(i+a);return[t,100*r,100*d]};o.hsv.rgb=function(e){var a=e[0]/60,i=e[1]/100,o=e[2]/100,n=Math.floor(a)%6,r=a-Math.floor(a),l=255*o*(1-i),s=255*o*(1-i*r),d=255*o*(1-i*(1-r));o*=255;switch(n){case 0:return[o,d,l];case 1:return[s,o,l];case 2:return[l,o,d];case 3:return[l,s,o];case 4:return[d,l,o];case 5:return[o,l,s];}};o.hsv.hsl=function(e){var t=e[0],a=e[1]/100,i=e[2]/100,o=Math.max(i,.01),n,r,s;s=(2-a)*i;n=(2-a)*o;r=a*o;r/=1>=n?n:2-n;r=r||0;s/=2;return[t,100*r,100*s]};o.hwb.rgb=function(e){var t=e[0]/360,a=e[1]/100,o=e[2]/100,l=a+o,s,d,c,h;if(1n){n+=360}r=Math.sqrt(i*i+a*a);return[t,r,n]};o.lch.lab=function(e){var t=e[0],i=e[1],o=e[2],n,r,l;l=2*(o/360)*Math.PI;n=i*Math.cos(l);r=i*Math.sin(l);return[t,n,r]};o.rgb.ansi16=function(e){var t=e[0],a=e[1],i=e[2],n=1 in arguments?arguments[1]:o.rgb.hsv(e)[2];n=Math.round(n/50);if(0===n){return 30}var r=30+(Math.round(i/255)<<2|Math.round(a/255)<<1|Math.round(t/255));if(2===n){r+=60}return r};o.hsv.ansi16=function(e){return o.rgb.ansi16(o.hsv.rgb(e),e[2])};o.rgb.ansi256=function(e){var t=e[0],a=e[1],i=e[2];if(t===a&&a===i){if(8>t){return 16}if(248>1)*a),n=255*((1&t>>2)*a);return[i,o,n]};o.ansi256.rgb=function(e){if(232<=e){var t=10*(e-232)+8;return[t,t,t]}e-=16;var a,i=255*(Math.floor(e/36)/5),o=255*(Math.floor((a=e%36)/6)/5),n=255*(a%6/5);return[i,o,n]};o.rgb.hex=function(e){var t=((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2])),a=t.toString(16).toUpperCase();return"000000".substring(a.length)+a};o.hex.rgb=function(e){var t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t){return[0,0,0]}var a=t[0];if(3===t[0].length){a=a.split("").map(function(e){return e+e}).join("")}var i=parseInt(a,16);return[255&i>>16,255&i>>8,255&i]};o.rgb.hcg=function(e){var t=e[0]/255,a=e[1]/255,i=e[2]/255,o=Math.max(Math.max(t,a),i),n=Math.min(Math.min(t,a),i),r=o-n,l,s;if(1>r){l=n/(1-r)}else{l=0}if(0>=r){s=0}else if(o===t){s=(a-i)/r%6}else if(o===a){s=2+(i-t)/r}else{s=4+(t-a)/r+4}s/=6;s%=1;return[360*s,100*r,100*l]};o.hsl.hcg=function(e){var t=e[1]/100,a=e[2]/100,i=1,o=0;if(.5>a){i=2*t*a}else{i=2*t*(1-a)}if(1>i){o=(a-.5*i)/(1-i)}return[e[0],100*i,100*o]};o.hsv.hcg=function(e){var t=e[1]/100,a=e[2]/100,i=t*a,o=0;if(1>i){o=(a-i)/(1-i)}return[e[0],100*i,100*o]};o.hcg.rgb=function(e){var t=e[0]/360,a=e[1]/100,i=e[2]/100;if(0===a){return[255*i,255*i,255*i]}var o=[0,0,0],n=6*(t%1),r=n%1,l=1-r,s=0;switch(Math.floor(n)){case 0:o[0]=1;o[1]=r;o[2]=0;break;case 1:o[0]=l;o[1]=1;o[2]=0;break;case 2:o[0]=0;o[1]=1;o[2]=r;break;case 3:o[0]=0;o[1]=l;o[2]=1;break;case 4:o[0]=r;o[1]=0;o[2]=1;break;default:o[0]=1;o[1]=0;o[2]=l;}s=(1-a)*i;return[255*(a*o[0]+s),255*(a*o[1]+s),255*(a*o[2]+s)]};o.hcg.hsv=function(e){var t=e[1]/100,a=e[2]/100,i=t+a*(1-t),o=0;if(0i){o=t/(2*i)}else if(.5<=i&&1>i){o=t/(2*(1-i))}return[e[0],100*o,100*i]};o.hcg.hwb=function(e){var t=e[1]/100,a=e[2]/100,i=t+a*(1-t);return[e[0],100*(i-t),100*(1-i)]};o.hwb.hcg=function(e){var t=e[1]/100,a=e[2]/100,i=1-a,o=i-t,n=0;if(1>o){n=(i-o)/(1-o)}return[e[0],100*o,100*n]};o.apple.rgb=function(e){return[255*(e[0]/65535),255*(e[1]/65535),255*(e[2]/65535)]};o.rgb.apple=function(e){return[65535*(e[0]/255),65535*(e[1]/255),65535*(e[2]/255)]};o.gray.rgb=function(e){return[255*(e[0]/100),255*(e[0]/100),255*(e[0]/100)]};o.gray.hsl=o.gray.hsv=function(e){return[0,0,e[0]]};o.gray.hwb=function(e){return[0,100,e[0]]};o.gray.cmyk=function(e){return[0,0,0,e[0]]};o.gray.lab=function(e){return[e[0],0,0]};o.gray.hex=function(e){var t=255&Math.round(255*(e[0]/100)),a=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(a.length)+a};o.rgb.gray=function(e){var t=(e[0]+e[1]+e[2])/3;return[100*(t/255)]}}),Bt=Ht.rgb,Nt=Ht.hsl,Ut=Ht.hsv,jt=Ht.hwb,Gt=Ht.cmyk,qt=Ht.xyz,Kt=Ht.lab,Xt=Ht.lch,Zt=Ht.hex,Jt=Ht.keyword,Qt=Ht.ansi16,$t=Ht.ansi256,ea=Ht.hcg,ta=Ht.apple,aa=Ht.gray;function a(){for(var e={},t=Object.keys(Ht),a=t.length,o=0;ot?f(Math.round(255*t)):"")},rgbString:function(e,t){if(1>t||e[3]&&1>e[3]){return g(e,t)}return"rgb("+e[0]+", "+e[1]+", "+e[2]+")"},rgbaString:g,percentString:function(e,t){if(1>t||e[3]&&1>e[3]){return m(e,t)}var a=Math.round(100*(e[0]/255)),i=Math.round(100*(e[1]/255)),o=Math.round(100*(e[2]/255));return"rgb("+a+"%, "+i+"%, "+o+"%)"},percentaString:m,hslString:function(e,t){if(1>t||e[3]&&1>e[3]){return u(e,t)}return"hsl("+e[0]+", "+e[1]+"%, "+e[2]+"%)"},hslaString:u,hwbString:function(e,t){if(t===void 0){t=e[3]!==void 0?e[3]:1}return"hwb("+e[0]+", "+e[1]+"%, "+e[2]+"%"+(t!==void 0&&1!==t?", "+t:"")+")"},keyword:function(e){return sa[e.slice(0,3)]}};function d(e){if(!e){return}var t=[0,0,0],o=1,n=e.match(/^#([a-fA-F0-9]{3,4})$/i),r="";if(n){n=n[1];r=n[3];for(var l=0;lt.length?"0"+t:t}var sa={};for(var da in ra){sa[ra[da]]=da}var ca=function(e){if(e instanceof ca){return e}if(!(this instanceof ca)){return new ca(e)}this.valid=!1;this.values={rgb:[0,0,0],hsl:[0,0,0],hsv:[0,0,0],hwb:[0,0,0],cmyk:[0,0,0,0],alpha:1};var t;if("string"==typeof e){t=la.getRgba(e);if(t){this.setValues("rgb",t)}else if(t=la.getHsla(e)){this.setValues("hsl",t)}else if(t=la.getHwb(e)){this.setValues("hwb",t)}}else if("object"===_typeof(e)){t=e;if(t.r!==void 0||t.red!==void 0){this.setValues("rgb",t)}else if(t.l!==void 0||t.lightness!==void 0){this.setValues("hsl",t)}else if(t.v!==void 0||t.value!==void 0){this.setValues("hsv",t)}else if(t.w!==void 0||t.whiteness!==void 0){this.setValues("hwb",t)}else if(t.c!==void 0||t.cyan!==void 0){this.setValues("cmyk",t)}}};ca.prototype={isValid:function isValid(){return this.valid},rgb:function rgb(){return this.setSpace("rgb",arguments)},hsl:function hsl(){return this.setSpace("hsl",arguments)},hsv:function hsv(){return this.setSpace("hsv",arguments)},hwb:function hwb(){return this.setSpace("hwb",arguments)},cmyk:function cmyk(){return this.setSpace("cmyk",arguments)},rgbArray:function rgbArray(){return this.values.rgb},hslArray:function hslArray(){return this.values.hsl},hsvArray:function hsvArray(){return this.values.hsv},hwbArray:function hwbArray(){var e=this.values;if(1!==e.alpha){return e.hwb.concat([e.alpha])}return e.hwb},cmykArray:function cmykArray(){return this.values.cmyk},rgbaArray:function rgbaArray(){var e=this.values;return e.rgb.concat([e.alpha])},hslaArray:function hslaArray(){var e=this.values;return e.hsl.concat([e.alpha])},alpha:function alpha(e){if(e===void 0){return this.values.alpha}this.setValues("alpha",e);return this},red:function red(e){return this.setChannel("rgb",0,e)},green:function green(e){return this.setChannel("rgb",1,e)},blue:function blue(e){return this.setChannel("rgb",2,e)},hue:function hue(e){if(e){e%=360;e=0>e?360+e:e}return this.setChannel("hsl",0,e)},saturation:function saturation(e){return this.setChannel("hsl",1,e)},lightness:function lightness(e){return this.setChannel("hsl",2,e)},saturationv:function saturationv(e){return this.setChannel("hsv",1,e)},whiteness:function whiteness(e){return this.setChannel("hwb",1,e)},blackness:function blackness(e){return this.setChannel("hwb",2,e)},value:function value(e){return this.setChannel("hsv",2,e)},cyan:function cyan(e){return this.setChannel("cmyk",0,e)},magenta:function magenta(e){return this.setChannel("cmyk",1,e)},yellow:function yellow(e){return this.setChannel("cmyk",2,e)},black:function black(e){return this.setChannel("cmyk",3,e)},hexString:function hexString(){return la.hexString(this.values.rgb)},rgbString:function rgbString(){return la.rgbString(this.values.rgb,this.values.alpha)},rgbaString:function(){return la.rgbaString(this.values.rgb,this.values.alpha)},percentString:function percentString(){return la.percentString(this.values.rgb,this.values.alpha)},hslString:function hslString(){return la.hslString(this.values.hsl,this.values.alpha)},hslaString:function(){return la.hslaString(this.values.hsl,this.values.alpha)},hwbString:function hwbString(){return la.hwbString(this.values.hwb,this.values.alpha)},keyword:function keyword(){return la.keyword(this.values.rgb,this.values.alpha)},rgbNumber:function rgbNumber(){var e=this.values.rgb;return e[0]<<16|e[1]<<8|e[2]},luminosity:function luminosity(){for(var e=this.values.rgb,t=[],a=0,o;a=o?o/12.92:Math.pow((o+.055)/1.055,2.4)}return .2126*t[0]+.7152*t[1]+.0722*t[2]},contrast:function contrast(e){var t=this.luminosity(),a=e.luminosity();if(t>a){return(t+.05)/(a+.05)}return(a+.05)/(t+.05)},level:function level(e){var t=this.contrast(e);if(7.1<=t){return"AAA"}return 4.5<=t?"AA":""},dark:function dark(){var e=this.values.rgb,t=(299*e[0]+587*e[1]+114*e[2])/1e3;return 128>t},light:function light(){return!this.dark()},negate:function negate(){for(var e=[],t=0;3>t;t++){e[t]=255-this.values.rgb[t]}this.setValues("rgb",e);return this},lighten:function lighten(e){var t=this.values.hsl;t[2]+=t[2]*e;this.setValues("hsl",t);return this},darken:function darken(e){var t=this.values.hsl;t[2]-=t[2]*e;this.setValues("hsl",t);return this},saturate:function saturate(e){var t=this.values.hsl;t[1]+=t[1]*e;this.setValues("hsl",t);return this},desaturate:function desaturate(e){var t=this.values.hsl;t[1]-=t[1]*e;this.setValues("hsl",t);return this},whiten:function whiten(e){var t=this.values.hwb;t[1]+=t[1]*e;this.setValues("hwb",t);return this},blacken:function blacken(e){var t=this.values.hwb;t[2]+=t[2]*e;this.setValues("hwb",t);return this},greyscale:function greyscale(){var e=this.values.rgb,t=.3*e[0]+.59*e[1]+.11*e[2];this.setValues("rgb",[t,t,t]);return this},clearer:function clearer(e){var t=this.values.alpha;this.setValues("alpha",t-t*e);return this},opaquer:function opaquer(e){var t=this.values.alpha;this.setValues("alpha",t+t*e);return this},rotate:function rotate(e){var t=this.values.hsl,a=(t[0]+e)%360;t[0]=0>a?360+a:a;this.setValues("hsl",t);return this},mix:function mix(e,t){var i=this,o=e,n=t===void 0?.5:t,r=2*n-1,l=i.alpha()-o.alpha(),a=((-1==r*l?r:(r+l)/(1+r*l))+1)/2,s=1-a;return this.rgb(a*i.red()+s*o.red(),a*i.green()+s*o.green(),a*i.blue()+s*o.blue()).alpha(i.alpha()*n+o.alpha()*(1-n))},toJSON:function toJSON(){return this.rgb()},clone:function clone(){var e=new ca,t=this.values,a=e.values,i,o;for(var n in t){if(t.hasOwnProperty(n)){i=t[n];o={}.toString.call(i);if("[object Array]"===o){a[n]=i.slice(0)}else if("[object Number]"===o){a[n]=i}else{console.error("unexpected color value:",i)}}}return e}};ca.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]};ca.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]};ca.prototype.getValues=function(e){for(var t=this.values,a={},o=0;o(e/=.5)){return .5*e*e}return-.5*(--e*(e-2)-1)},easeInCubic:function easeInCubic(e){return e*e*e},easeOutCubic:function easeOutCubic(e){return(e=e-1)*e*e+1},easeInOutCubic:function easeInOutCubic(e){if(1>(e/=.5)){return .5*e*e*e}return .5*((e-=2)*e*e+2)},easeInQuart:function easeInQuart(e){return e*e*e*e},easeOutQuart:function easeOutQuart(e){return-((e=e-1)*e*e*e-1)},easeInOutQuart:function easeInOutQuart(e){if(1>(e/=.5)){return .5*e*e*e*e}return-.5*((e-=2)*e*e*e-2)},easeInQuint:function easeInQuint(e){return e*e*e*e*e},easeOutQuint:function easeOutQuint(e){return(e=e-1)*e*e*e*e+1},easeInOutQuint:function easeInOutQuint(e){if(1>(e/=.5)){return .5*e*e*e*e*e}return .5*((e-=2)*e*e*e*e+2)},easeInSine:function easeInSine(e){return-Math.cos(e*(Math.PI/2))+1},easeOutSine:function easeOutSine(e){return Math.sin(e*(Math.PI/2))},easeInOutSine:function easeInOutSine(e){return-.5*(Math.cos(Math.PI*e)-1)},easeInExpo:function easeInExpo(e){return 0===e?0:Math.pow(2,10*(e-1))},easeOutExpo:function easeOutExpo(e){return 1===e?1:-Math.pow(2,-10*e)+1},easeInOutExpo:function easeInOutExpo(e){if(0===e){return 0}if(1===e){return 1}if(1>(e/=.5)){return .5*Math.pow(2,10*(e-1))}return .5*(-Math.pow(2,-10*--e)+2)},easeInCirc:function easeInCirc(e){if(1<=e){return e}return-(Math.sqrt(1-e*e)-1)},easeOutCirc:function easeOutCirc(e){return Math.sqrt(1-(e=e-1)*e)},easeInOutCirc:function easeInOutCirc(e){if(1>(e/=.5)){return-.5*(Math.sqrt(1-e*e)-1)}return .5*(Math.sqrt(1-(e-=2)*e)+1)},easeInElastic:function easeInElastic(e){var i=1.70158,o=0,n=1;if(0===e){return 0}if(1===e){return 1}if(!o){o=.3}if(1>n){n=1;i=o/4}else{i=o/(2*Math.PI)*Math.asin(1/n)}return-(n*Math.pow(2,10*(e-=1))*Math.sin((e-i)*(2*Math.PI)/o))},easeOutElastic:function easeOutElastic(e){var t=1.70158,i=0,o=1;if(0===e){return 0}if(1===e){return 1}if(!i){i=.3}if(1>o){o=1;t=i/4}else{t=i/(2*Math.PI)*Math.asin(1/o)}return o*Math.pow(2,-10*e)*Math.sin((e-t)*(2*Math.PI)/i)+1},easeInOutElastic:function easeInOutElastic(e){var i=1.70158,o=0,n=1;if(0===e){return 0}if(2==(e/=.5)){return 1}if(!o){o=.45}if(1>n){n=1;i=o/4}else{i=o/(2*Math.PI)*Math.asin(1/n)}if(1>e){return-.5*(n*Math.pow(2,10*(e-=1))*Math.sin((e-i)*(2*Math.PI)/o))}return .5*(n*Math.pow(2,-10*(e-=1))*Math.sin((e-i)*(2*Math.PI)/o))+1},easeInBack:function easeInBack(e){var t=1.70158;return e*e*((t+1)*e-t)},easeOutBack:function easeOutBack(e){var a=1.70158;return(e=e-1)*e*((a+1)*e+a)+1},easeInOutBack:function easeInOutBack(e){var a=1.70158;if(1>(e/=.5)){return .5*(e*e*(((a*=1.525)+1)*e-a))}return .5*((e-=2)*e*(((a*=1.525)+1)*e+a)+2)},easeInBounce:function easeInBounce(e){return 1-ua.easeOutBounce(1-e)},easeOutBounce:function easeOutBounce(e){if(e<1/2.75){return 7.5625*e*e}if(e<2/2.75){return 7.5625*(e-=1.5/2.75)*e+.75}if(e<2.5/2.75){return 7.5625*(e-=2.25/2.75)*e+.9375}return 7.5625*(e-=2.625/2.75)*e+.984375},easeInOutBounce:function easeInOutBounce(e){if(.5>e){return .5*ua.easeInBounce(2*e)}return .5*ua.easeOutBounce(2*e-1)+.5}};ma.easingEffects=ua;var pa=Math.PI,i=pa/2,fa=pa/4,ya=2*pa/3,ba={clear:function clear(e){e.ctx.clearRect(0,0,e.width,e.height)},roundedRect:function roundedRect(e,t,a,o,n,l){if(l){var s=Math.min(l,n/2,o/2),r=t+s,d=a+s,c=t+o-s,h=a+n-s;e.moveTo(t,d);if(r=a){return}e.beginPath();switch(t){default:e.arc(o,n,a,0,2*pa);e.closePath();break;case"triangle":e.moveTo(o+Math.sin(g)*a,n-Math.cos(g)*a);g+=ya;e.lineTo(o+Math.sin(g)*a,n-Math.cos(g)*a);g+=ya;e.lineTo(o+Math.sin(g)*a,n-Math.cos(g)*a);e.closePath();break;case"rectRounded":h=.516*a;c=a-h;s=Math.cos(g+fa)*c;d=Math.sin(g+fa)*c;e.arc(o-s,n-d,h,g-pa,g-i);e.arc(o+d,n-s,h,g-i,g);e.arc(o+s,n+d,h,g,g+i);e.arc(o-d,n+s,h,g+i,g+pa);e.closePath();break;case"rect":if(!r){c=Math.SQRT1_2*a;e.rect(o-c,n-c,2*c,2*c);break}g+=fa;case"rectRot":s=Math.cos(g)*a;d=Math.sin(g)*a;e.moveTo(o-s,n-d);e.lineTo(o+d,n-s);e.lineTo(o+s,n+d);e.lineTo(o-d,n+s);e.closePath();break;case"crossRot":g+=fa;case"cross":s=Math.cos(g)*a;d=Math.sin(g)*a;e.moveTo(o-s,n-d);e.lineTo(o+s,n+d);e.moveTo(o+d,n-s);e.lineTo(o-d,n+s);break;case"star":s=Math.cos(g)*a;d=Math.sin(g)*a;e.moveTo(o-s,n-d);e.lineTo(o+s,n+d);e.moveTo(o+d,n-s);e.lineTo(o-d,n+s);g+=fa;s=Math.cos(g)*a;d=Math.sin(g)*a;e.moveTo(o-s,n-d);e.lineTo(o+s,n+d);e.moveTo(o+d,n-s);e.lineTo(o-d,n+s);break;case"line":s=Math.cos(g)*a;d=Math.sin(g)*a;e.moveTo(o-s,n-d);e.lineTo(o+s,n+d);break;case"dash":e.moveTo(o,n);e.lineTo(o+Math.cos(g)*a,n+Math.sin(g)*a);break;}e.fill();e.stroke()},_isPointInArea:function _isPointInArea(e,t){var a=1e-6;return e.x>t.left-a&&e.xt.top-a&&e.y=o){Da.callback(t.onAnimationComplete,[t],a);a.animating=!1;e.splice(r,1)}else{++r}}}},Ma=Da.options.resolve,Ia=["push","pop","shift","splice","unshift"];function _(e,t){if(e._chartjs){e._chartjs.listeners.push(t);return}Object.defineProperty(e,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[t]}});Ia.forEach(function(t){var a="onData"+t.charAt(0).toUpperCase()+t.slice(1),i=e[t];Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:function value(){var t=Array.prototype.slice.call(arguments),o=i.apply(this,t);Da.each(e._chartjs.listeners,function(e){if("function"==typeof e[a]){e[a].apply(e,t)}});return o}})})}function v(e,t){var a=e._chartjs;if(!a){return}var i=a.listeners,o=i.indexOf(t);if(-1!==o){i.splice(o,1)}if(0i){e.insertElements(i,o-i)}},insertElements:function insertElements(e,t){for(var a=0;ao){n=o/t.innerRadius;e.arc(r,l,t.innerRadius-o,i+n,a-n,!0)}else{e.arc(r,l,o,i+Math.PI/2,a-Math.PI/2)}e.closePath();e.clip()}function S(e,t,a,o){var n=a.endAngle,r;if(o){a.endAngle=a.startAngle+Ra;w(e,a);a.endAngle=n;if(a.endAngle===a.startAngle&&a.fullCircles){a.endAngle+=Ra;a.fullCircles--}}e.beginPath();e.arc(a.x,a.y,a.innerRadius,a.startAngle+Ra,a.startAngle,!0);for(r=0;rl){o-=Ra}while(o=r&&o<=l,d=n>=a.innerRadius&&n<=a.outerRadius;return s&&d}return!1},getCenterPoint:function getCenterPoint(){var e=this._view,t=(e.startAngle+e.endAngle)/2,a=(e.innerRadius+e.outerRadius)/2;return{x:e.x+Math.cos(t)*a,y:e.y+Math.sin(t)*a}},getArea:function getArea(){var e=this._view;return Math.PI*((e.endAngle-e.startAngle)/(2*Math.PI))*(Math.pow(e.outerRadius,2)-Math.pow(e.innerRadius,2))},tooltipPosition:function tooltipPosition(){var e=this._view,t=e.startAngle+(e.endAngle-e.startAngle)/2,a=(e.outerRadius-e.innerRadius)/2+e.innerRadius;return{x:e.x+Math.cos(t)*a,y:e.y+Math.sin(t)*a}},draw:function draw(){var e=this._chart.ctx,t=this._view,a="inner"===t.borderAlign?.33:0,o={x:t.x,y:t.y,innerRadius:t.innerRadius,outerRadius:Math.max(t.outerRadius-a,0),pixelMargin:a,startAngle:t.startAngle,endAngle:t.endAngle,fullCircles:Math.floor(t.circumference/Ra)},n;e.save();e.fillStyle=t.backgroundColor;e.strokeStyle=t.borderColor;if(o.fullCircles){o.endAngle=o.startAngle+Ra;e.beginPath();e.arc(o.x,o.y,o.outerRadius,o.startAngle,o.endAngle);e.arc(o.x,o.y,o.innerRadius,o.endAngle,o.startAngle,!0);e.closePath();for(n=0;ne.x){t=O(t,"left","right")}}else if(e.bases?0:s>i?i:s,r:n.right||0>d?0:d>a?a:d,b:n.bottom||0>c?0:c>i?i:c,l:n.left||0>h?0:h>a?a:h}}function I(e){var t=T(e),a=t.right-t.left,i=t.bottom-t.top,o=M(e,a/2,i/2);return{outer:{x:t.left,y:t.top,w:a,h:i},inner:{x:t.left+o.l,y:t.top+o.t,w:a-o.l-o.r,h:i-o.t-o.b}}}function L(e,t,a){var i=null===t,o=null===a,n=!e||i&&o?!1:T(e);return n&&(i||t>=n.left&&t<=n.right)&&(o||a>=n.top&&a<=n.bottom)}var Ua=Pa.extend({_type:"rectangle",draw:function draw(){var e=this._chart.ctx,t=this._view,a=I(t),i=a.outer,o=a.inner;e.fillStyle=t.backgroundColor;e.fillRect(i.x,i.y,i.w,i.h);if(i.w===o.w&&i.h===o.h){return}e.save();e.beginPath();e.rect(i.x,i.y,i.w,i.h);e.clip();e.fillStyle=t.borderColor;e.rect(o.x,o.y,o.w,o.h);e.fill("evenodd");e.restore()},height:function height(){var e=this._view;return e.base-e.y},inRange:function inRange(e,t){return L(this._view,e,t)},inLabelRange:function inLabelRange(e,t){var a=this._view;return P(a)?L(a,e,null):L(a,null,t)},inXRange:function inXRange(e){return L(this._view,e,null)},inYRange:function inYRange(e){return L(this._view,null,e)},getCenterPoint:function getCenterPoint(){var e=this._view,t,a;if(P(e)){t=e.x;a=(e.y+e.base)/2}else{t=(e.x+e.base)/2;a=e.y}return{x:t,y:a}},getArea:function getArea(){var e=this._view;return P(e)?e.width*Math.abs(e.y-e.base):e.height*Math.abs(e.x-e.base)},tooltipPosition:function tooltipPosition(){var e=this._view;return{x:e.x,y:e.y}}}),ja={};ja.Arc=Ea;ja.Line=za;ja.Point=Ba;ja.Rectangle=Ua;var Ga=Da._deprecated,qa=Da.valueOrDefault;_a._set("bar",{hover:{mode:"label"},scales:{xAxes:[{type:"category",offset:!0,gridLines:{offsetGridLines:!0}}],yAxes:[{type:"linear"}]}});_a._set("global",{datasets:{bar:{categoryPercentage:.8,barPercentage:.9}}});function F(e,t){var a=e._length,o,n,r,l;for(r=1,l=t.length;rc.min&&0>x||0<=c.max&&0p&&l){k=_-h}else{k=_+h}}return{size:v,base:_,head:k,center:k+v/2}},calculateBarIndexPixels:function calculateBarIndexPixels(e,t,a,i){var o=this,n="flex"===i.barThickness?E(t,a,i):R(t,a,i),r=o.getStackIndex(e,o.getMeta().stack),l=n.start+n.chunk*r+n.chunk/2,s=Math.min(qa(i.maxBarThickness,1/0),n.chunk*n.ratio);return{base:l-s/2,head:l+s/2,center:l,size:s}},draw:function draw(){var e=this,t=e.chart,a=e._getValueScale(),o=e.getMeta().data,n=e.getDataset(),r=o.length,l=0;Da.canvas.clipArea(t.ctx,t.chartArea);for(;l=$a?-ei:x<-$a?ei:0;var _=x+m,k=Math.cos(x),v=Math.sin(x),w=Math.cos(_),S=Math.sin(_),D=0>=x&&0<=_||_>=ei,C=x<=ti&&_>=ti||_>=ei+ti,P=x===-$a||_>=$a,T=x<=-ti&&_>=-ti||_>=$a+ti,O=P?-1:Math.min(k,k*g,w,w*g),A=T?-1:Math.min(v,v*g,S,S*g),M=D?1:Math.max(k,k*g,w,w*g),I=C?1:Math.max(v,v*g,S,S*g);r=(M-O)/2;l=(I-A)/2;s=-(M+O)/2;d=-(I+A)/2}for(y=0,b=h.length;ya?h:a;a=g>a?g:a}}return a},setHoverStyle:function setHoverStyle(e){var t=e._model,a=e._options,i=Da.getHoverColor;e.$previousStyle={backgroundColor:t.backgroundColor,borderColor:t.borderColor,borderWidth:t.borderWidth};t.backgroundColor=Qa(a.hoverBackgroundColor,i(a.backgroundColor));t.borderColor=Qa(a.hoverBorderColor,i(a.borderColor));t.borderWidth=Qa(a.hoverBorderWidth,a.borderWidth)},_getRingWeightOffset:function _getRingWeightOffset(e){for(var t=0,a=0;ag){s+=g||0}else{l+=g||0}}}if(0>m){return r.getPixelForValue(s+m)}return r.getPixelForValue(l+m)}return r.getPixelForValue(e)},updateBezierControlPoints:function updateBezierControlPoints(){var t=this,a=t.chart,o=t.getMeta(),n=o.dataset._model,r=a.chartArea,l=o.data||[],s,d,c,h;if(n.spanGaps){l=l.filter(function(e){return!e._model.skip})}function e(e,t,a){return Math.max(Math.min(e,a),t)}if("monotone"===n.cubicInterpolationMode){Da.splineCurveMonotone(l)}else{for(s=0,d=l.length;s div {\r\n\tposition: absolute;\r\n\twidth: 1000000px;\r\n\theight: 1000000px;\r\n\tleft: 0;\r\n\ttop: 0;\r\n}\r\n\r\n.chartjs-size-monitor-shrink > div {\r\n\tposition: absolute;\r\n\twidth: 200%;\r\n\theight: 200%;\r\n\tleft: 0;\r\n\ttop: 0;\r\n}\r\n"}),yi=function(e){return e&&e["default"]||e}(fi),bi="$chartjs",xi="chartjs-",_i=xi+"size-monitor",ki=xi+"render-monitor",vi=["animationstart","webkitAnimationStart"],wi={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"};function ie(e,t){var a=Da.getStyle(e,t),i=a&&a.match(/^(\d+)(\.\d+)?px$/);return i?+i[1]:void 0}function oe(e,t){var a=e.style,i=e.getAttribute("height"),o=e.getAttribute("width");e[bi]={initial:{height:i,width:o,style:{display:a.display,height:a.height,width:a.width}}};a.display=a.display||"block";if(null===o||""===o){var n=ie(e,"width");if(n!==void 0){e.width=n}}if(null===i||""===i){if(""===e.style.height){e.height=e.width/(t.options.aspectRatio||2)}else{var r=ie(e,"height");if(n!==void 0){e.height=r}}}return e}var Si=function(){var e=!1;try{var t=Object.defineProperty({},"passive",{get:function get(){e=!0}});window.addEventListener("e",null,t)}catch(t){}return e}(),Di=Si?{passive:!0}:!1;function ne(e,t,a){e.addEventListener(t,a,Di)}function re(e,t,a){e.removeEventListener(t,a,Di)}function le(e,t,a,i,o){return{type:e,chart:t,native:o||null,x:a!==void 0?a:null,y:i!==void 0?i:null}}function se(e,t){var a=wi[e.type]||e.type,i=Da.getRelativePosition(e,t);return le(a,t,i.x,i.y,e)}function de(e,t){var a=!1,i=[];return function(){i=Array.prototype.slice.call(arguments);t=t||this;if(!a){a=!0;Da.requestAnimFrame.call(window,function(){a=!1;e.apply(t,i)})}}}function ce(e){var t=document.createElement("div");t.className=e||"";return t}function he(e){var t=ce(_i),a=ce(_i+"-expand"),i=ce(_i+"-shrink");a.appendChild(ce());i.appendChild(ce());t.appendChild(a);t.appendChild(i);t._reset=function(){a.scrollLeft=1000000;a.scrollTop=1000000;i.scrollLeft=1000000;i.scrollTop=1000000};var o=function(){t._reset();e()};ne(a,"scroll",o.bind(a,"expand"));ne(i,"scroll",o.bind(i,"shrink"));return t}function ge(e,t){var a=e[bi]||(e[bi]={}),i=a.renderProxy=function(a){if(a.animationName===xi+"render-animation"){t()}};Da.each(vi,function(t){ne(e,t,i)});a.reflow=!!e.offsetParent;e.classList.add(ki)}function me(e){var t=e[bi]||{},a=t.renderProxy;if(a){Da.each(vi,function(t){re(e,t,a)});delete t.renderProxy}e.classList.remove(ki)}function ue(e,t,a){var i=e[bi]||(e[bi]={}),o=i.resizer=he(de(function(){if(i.resizer){var o=a.options.maintainAspectRatio&&e.parentNode,n=o?o.clientWidth:0;t(le("resize",a));if(o&&o.clientWidthi.height-t.height){r="bottom"}var l,s,d,c,h,g=(o.left+o.right)/2,m=(o.top+o.bottom)/2;if("center"===r){l=function(e){return e<=g};s=function(e){return e>g}}else{l=function(e){return e<=t.width/2};s=function(e){return e>=i.width-t.width/2}}d=function(e){return e+t.width+a.caretSize+a.caretPadding>i.width};c=function(e){return 0>e-t.width-a.caretSize-a.caretPadding};h=function(e){return e<=m?"top":"bottom"};if(l(a.x)){n="left";if(d(a.x)){n="center";r=h(a.y)}}else if(s(a.x)){n="right";if(c(a.x)){n="center";r=h(a.y)}}var u=e._options;return{xAlign:u.xAlign?u.xAlign:n,yAlign:u.yAlign?u.yAlign:r}}function we(e,t,a,i){var o=e.x,n=e.y,r=e.caretSize,l=e.caretPadding,s=e.cornerRadius,d=a.xAlign,c=a.yAlign,h=r+l,g=s+l;if("right"===d){o-=t.width}else if("center"===d){o-=t.width/2;if(o+t.width>i.width){o=i.width-t.width}if(0>o){o=0}}if("top"===c){n+=h}else if("bottom"===c){n-=t.height+h}else{n-=t.height/2}if("center"===c){if("left"===d){o+=h}else if("right"===d){o-=h}}else if("left"===d){o-=g}else if("right"===d){o+=g}return{x:o,y:n}}function Se(e,t){return"center"===t?e.x+e.width/2:"right"===t?e.x+e.width-e.xPadding:e.x+e.xPadding}function De(e){return ye([],be(e))}var Fi=Pa.extend({initialize:function initialize(){this._model=_e(this._options);this._lastActive=[]},getTitle:function getTitle(){var e=this,t=e._options,a=t.callbacks,i=a.beforeTitle.apply(e,arguments),o=a.title.apply(e,arguments),n=a.afterTitle.apply(e,arguments),r=[];r=ye(r,be(i));r=ye(r,be(o));r=ye(r,be(n));return r},getBeforeBody:function getBeforeBody(){return De(this._options.callbacks.beforeBody.apply(this,arguments))},getBody:function getBody(e,t){var a=this,i=a._options.callbacks,o=[];Da.each(e,function(e){var n={before:[],lines:[],after:[]};ye(n.before,be(i.beforeLabel.call(a,e,t)));ye(n.lines,i.label.call(a,e,t));ye(n.after,be(i.afterLabel.call(a,e,t)));o.push(n)});return o},getAfterBody:function getAfterBody(){return De(this._options.callbacks.afterBody.apply(this,arguments))},getFooter:function getFooter(){var e=this,t=e._options.callbacks,a=t.beforeFooter.apply(e,arguments),i=t.footer.apply(e,arguments),o=t.afterFooter.apply(e,arguments),n=[];n=ye(n,be(a));n=ye(n,be(i));n=ye(n,be(o));return n},update:function update(e){var t=this,o=t._options,n=t._model,r=t._model=_e(o),l=t._active,s=t._data,d={xAlign:n.xAlign,yAlign:n.yAlign},c={x:n.x,y:n.y},h={width:n.width,height:n.height},g={x:n.caretX,y:n.caretY},m,a;if(l.length){r.opacity=1;var u=[],p=[];g=Li[o.position].call(t,l,t._eventPosition);var f=[];for(m=0,a=l.length;mt.opacity)?0:t.opacity,n=t.title.length||t.beforeBody.length||t.body.length||t.afterBody.length||t.footer.length;if(this._options.enabled&&n){e.save();e.globalAlpha=o;this.drawBackground(i,t,e,a);i.y+=t.yPadding;Da.rtl.overrideTextDirection(e,t.textDirection);this.drawTitle(i,t,e);this.drawBody(i,t,e);this.drawFooter(i,t,e);Da.rtl.restoreTextDirection(e,t.textDirection);e.restore()}},handleEvent:function handleEvent(t){var e=this,a=e._options,i=!1;e._lastActive=e._lastActive||[];if("mouseout"===t.type){e._active=[]}else{e._active=e._chart.getElementsAtEventForMode(t,a.mode,a);if(a.reverse){e._active.reverse()}}i=!Da.arrayEquals(e._active,e._lastActive);if(i){e._lastActive=e._active;if(a.enabled||a.custom){e._eventPosition={x:t.x,y:t.y};e.update(!0);e.pivot()}}return i}}),Ri=Fi;Ri.positioners=Li;var Ei=Da.valueOrDefault;_a._set("global",{elements:{},events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,maintainAspectRatio:!0,responsive:!0,responsiveAnimationDuration:0});function Ce(){return Da.merge(Object.create(null),[].slice.call(arguments),{merger:function merger(e,t,a,o){if("xAxes"===e||"yAxes"===e){var n=a[e].length,r,l,s;if(!t[e]){t[e]=[]}for(r=0;r=t[e].length){t[e].push({})}if(!t[e][r].type||s.type&&s.type!==t[e][r].type){Da.merge(t[e][r],[Ai.getScaleDefaults(l),s])}else{Da.merge(t[e][r],s)}}}else{Da._merger(e,t,a,o)}}})}function Pe(){return Da.merge(Object.create(null),[].slice.call(arguments),{merger:function merger(e,t,a,i){var o=t[e]||Object.create(null),n=a[e];if("scales"===e){t[e]=Ce(o,n)}else if("scale"===e){t[e]=Da.merge(o,[Ai.getScaleDefaults(n.type),n])}else{Da._merger(e,t,a,i)}}})}function Te(e){e=e||Object.create(null);var t=e.data=e.data||{};t.datasets=t.datasets||[];t.labels=t.labels||[];e.options=Pe(_a.global,_a[e.type],e.options||{});return e}function Oe(e){var t=e.options;Da.each(e.scales,function(t){pi.removeBox(e,t)});t=Pe(_a.global,_a[e.config.type],t);e.options=e.config.options=t;e.ensureScalesHaveIDs();e.buildOrUpdateScales();e.tooltip._options=t.tooltips;e.tooltip.initialize()}function Ae(e,t,a){var i,o=function(e){return e.id===i};do{i=t+a++}while(0<=Da.findIndex(e,o));return i}function Me(e){return"top"===e||"bottom"===e}function Ie(e,t){return function(i,a){return i[e]===a[e]?i[t]-a[t]:i[e]-a[e]}}var Yi=function(e,t){this.construct(e,t);return this};Da.extend(Yi.prototype,{construct:function construct(e,t){var a=this;t=Te(t);var i=Ti.acquireContext(e,t),o=i&&i.canvas,n=o&&o.height,r=o&&o.width;a.id=Da.uid();a.ctx=i;a.canvas=o;a.config=t;a.width=r;a.height=n;a.aspectRatio=n?r/n:null;a.options=t.options;a._bufferedRender=!1;a._layers=[];a.chart=a;a.controller=a;Yi.instances[a.id]=a;Object.defineProperty(a,"data",{get:function get(){return a.config.data},set:function set(e){a.config.data=e}});if(!i||!o){console.error("Failed to create chart: can't acquire context from the given item");return}a.initialize();a.update()},initialize:function initialize(){var e=this;Oi.notify(e,"beforeInit");Da.retinaScale(e,e.options.devicePixelRatio);e.bindEvents();if(e.options.responsive){e.resize(!0)}e.initToolTip();Oi.notify(e,"afterInit");return e},clear:function clear(){Da.canvas.clear(this);return this},stop:function stop(){Aa.cancelAnimation(this);return this},resize:function resize(e){var t=this,a=t.options,i=t.canvas,o=a.maintainAspectRatio&&t.aspectRatio||null,n=Math.max(0,Math.floor(Da.getMaximumWidth(i))),r=Math.max(0,Math.floor(o?n/o:Da.getMaximumHeight(i)));if(t.width===n&&t.height===r){return}i.width=t.width=n;i.height=t.height=r;i.style.width=n+"px";i.style.height=r+"px";Da.retinaScale(t,a.devicePixelRatio);if(!e){var l={width:n,height:r};Oi.notify(t,"resize",[l]);if(a.onResize){a.onResize(t,l)}t.stop();t.update({duration:a.responsiveAnimationDuration})}},ensureScalesHaveIDs:function ensureScalesHaveIDs(){var e=this.options,t=e.scales||{},a=e.scale;Da.each(t.xAxes,function(e,a){if(!e.id){e.id=Ae(t.xAxes,"x-axis-",a)}});Da.each(t.yAxes,function(e,a){if(!e.id){e.id=Ae(t.yAxes,"y-axis-",a)}});if(a){a.id=a.id||"scale"}},buildOrUpdateScales:function buildOrUpdateScales(){var e=this,t=e.options,a=e.scales||{},i=[],o=Object.keys(a).reduce(function(e,t){e[t]=!1;return e},{});if(t.scales){i=i.concat((t.scales.xAxes||[]).map(function(e){return{options:e,dtype:"category",dposition:"bottom"}}),(t.scales.yAxes||[]).map(function(e){return{options:e,dtype:"linear",dposition:"left"}}))}if(t.scale){i.push({options:t.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"})}Da.each(i,function(t){var i=t.options,n=i.id,r=Ei(i.type,t.dtype);if(Me(i.position)!==Me(t.dposition)){i.position=t.dposition}o[n]=!0;var l=null;if(n in a&&a[n].type===r){l=a[n];l.options=i;l.ctx=e.ctx;l.chart=e}else{var s=Ai.getScaleConstructor(r);if(!s){return}l=new s({id:n,type:r,options:i,ctx:e.ctx,chart:e});a[l.id]=l}l.mergeTicksOptions();if(t.isDefault){e.scale=l}});Da.each(o,function(e,t){if(!e){delete a[t]}});e.scales=a;Ai.addScalesToLayout(this)},buildOrUpdateControllers:function buildOrUpdateControllers(){var e=this,t=[],a=e.data.datasets,o,n;for(o=0,n=a.length;o=t.width||0>=t.height){return}if(!1===Oi.notify(t,"beforeDraw",[e])){return}o=t._layers;for(a=0;a=o[a].z;++a){o[a].draw(t.chartArea)}t.drawDatasets(e);for(;ar){var l=Da.log10(Math.abs(e)),s=Math.floor(l)-Math.floor(o);s=Math.max(Math.min(s,20),0);n=e.toExponential(s)}else{var d=-1*Math.floor(o);d=Math.max(Math.min(d,20),0);n=e.toFixed(d)}}else{n="0"}return n},logarithmic:function logarithmic(e,t,a){var i=e/Math.pow(10,Math.floor(Da.log10(e)));if(0===e){return"0"}else if(1===i||2===i||5===i||0===t||t===a.length-1){return e.toExponential()}return""}}},Hi=Da.isArray,Bi=Da.isNullOrUndef,Ni=Da.valueOrDefault,Ui=Da.valueAtIndexOrDefault;_a._set("scale",{display:!0,position:"left",offset:!1,gridLines:{display:!0,color:"rgba(0,0,0,0.1)",lineWidth:1,drawBorder:!0,drawOnChartArea:!0,drawTicks:!0,tickMarkLength:10,zeroLineWidth:1,zeroLineColor:"rgba(0,0,0,0.25)",zeroLineBorderDash:[],zeroLineBorderDashOffset:0,offsetGridLines:!1,borderDash:[],borderDashOffset:0},scaleLabel:{display:!1,labelString:"",padding:{top:4,bottom:4}},ticks:{beginAtZero:!1,minRotation:0,maxRotation:50,mirror:!1,padding:0,reverse:!1,display:!0,autoSkip:!0,autoSkipPadding:0,labelOffset:0,callback:Vi.formatters.values,minor:{},major:{}}});function Re(e,t){var a=[],o=e.length/t,n=0,r=e.length;for(;nl+s){return}}return n}function Ye(e,t){Da.each(e,function(e){var a=e.gc,o=a.length/2,n;if(o>t){for(n=0;nt){return!1}for(o=e[0],a=1;ar){return s}}return Math.max(r,1)}function Ge(e){var t=[],a,o;for(a=0,o=e.length;ah){l++;h=Math.round(n+l*t)}for(d=Math.max(n,0);d=n||1>=i||!e.isHorizontal()){e.labelRotation=o;return}l=e._getLabelSizes();s=l.widest.width;d=l.highest.height-l.highest.offset;c=Math.min(e.maxWidth,e.chart.width-s);h=t.offset?e.maxWidth/i:c/(i-1);if(s+6>h){h=c/(i-(t.offset?.5:1));g=e.maxHeight-ze(t.gridLines)-a.padding-Ve(t.scaleLabel);m=Math.sqrt(s*s+d*d);r=Da.toDegrees(Math.min(Math.asin(Math.min((l.highest.height+6)/h,1)),Math.asin(Math.min(g/m,1))-Math.asin(d/m)));r=Math.max(o,Math.min(n,r))}e.labelRotation=r},afterCalculateTickRotation:function afterCalculateTickRotation(){Da.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function beforeFit(){Da.callback(this.options.beforeFit,[this])},fit:function fit(){var e=this,t=e.minSize={width:0,height:0},a=e.chart,i=e.options,o=i.ticks,n=i.scaleLabel,r=i.gridLines,l=e._isVisible(),s="bottom"===i.position,d=e.isHorizontal();if(d){t.width=e.maxWidth}else if(l){t.width=ze(r)+Ve(n)}if(!d){t.height=e.maxHeight}else if(l){t.height=ze(r)+Ve(n)}if(o.display&&l){var c=Be(o),h=e._getLabelSizes(),g=h.first,m=h.last,u=h.widest,p=h.highest,f=.4*c.minor.lineHeight,y=o.padding;if(d){var b=0!==e.labelRotation,x=Da.toRadians(e.labelRotation),_=Math.cos(x),k=Math.sin(x),v=k*u.width+_*(p.height-(b?p.offset:0))+(b?0:f);t.height=Math.min(e.maxHeight,t.height+v+y);var w=e.getPixelForTick(0)-e.left,S=e.right-e.getPixelForTick(e.getTicks().length-1),D,C;if(b){D=s?_*g.width+k*g.offset:k*(g.height-g.offset);C=s?k*(m.height-m.offset):_*m.width+k*m.offset}else{D=g.width/2;C=m.width/2}e.paddingLeft=Math.max((D-w)*e.width/(e.width-w),0)+3;e.paddingRight=Math.max((C-S)*e.width/(e.width-S),0)+3}else{var P=o.mirror?0:u.width+y+f;t.width=Math.min(e.maxWidth,t.width+P);e.paddingTop=g.height/2;e.paddingBottom=m.height/2}}e.handleMargins();if(d){e.width=e._length=a.width-e.margins.left-e.margins.right;e.height=t.height}else{e.width=t.width;e.height=e._length=a.height-e.margins.top-e.margins.bottom}},handleMargins:function handleMargins(){var e=this;if(e.margins){e.margins.left=Math.max(e.paddingLeft,e.margins.left);e.margins.top=Math.max(e.paddingTop,e.margins.top);e.margins.right=Math.max(e.paddingRight,e.margins.right);e.margins.bottom=Math.max(e.paddingBottom,e.margins.bottom)}},afterFit:function afterFit(){Da.callback(this.options.afterFit,[this])},isHorizontal:function isHorizontal(){var e=this.options.position;return"top"===e||"bottom"===e},isFullWidth:function isFullWidth(){return this.options.fullWidth},getRightValue:function getRightValue(e){if(Bi(e)){return NaN}if(("number"==typeof e||e instanceof Number)&&!isFinite(e)){return NaN}if(e){if(this.isHorizontal()){if(e.x!==void 0){return this.getRightValue(e.x)}}else if(e.y!==void 0){return this.getRightValue(e.y)}}return e},_convertTicksToLabels:function _convertTicksToLabels(e){var t=this,a,o,n;t.ticks=e.map(function(e){return e.value});t.beforeTickToLabelConversion();a=t.convertTicksToLabels(e)||t.ticks;t.afterTickToLabelConversion();for(o=0,n=e.length;oe||e>i-1?null:t.getPixelForDecimal(e*o+(a?o/2:0))},getPixelForDecimal:function getPixelForDecimal(e){var t=this;if(t._reversePixels){e=1-e}return t._startPixel+e*t._length},getDecimalForPixel:function getDecimalForPixel(e){var t=(e-this._startPixel)/this._length;return this._reversePixels?1-t:t},getBasePixel:function getBasePixel(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function getBaseValue(){var e=this,t=e.min,a=e.max;return e.beginAtZero?0:0>t&&0>a?a:0n){qe(e,r,l/n);return Ne(e)}g=je(r,e,o,n);if(0l*o?l/i:s/o:s*oe||e>t.length-1?null:this.getPixelForValue(t[e],e+this.minIndex)},getValueForPixel:function getValueForPixel(e){var t=this,a=Math.round(t._startValue+t.getDecimalForPixel(e)*t._valueRange);return Math.min(Math.max(a,0),t.ticks.length-1)},getBasePixel:function getBasePixel(){return this.bottom}});Ki._defaults={position:"bottom"};var Xi=Da.noop,Zi=Da.isNullOrUndef;function Xe(e,t){var a=[],i=e.stepSize,o=i||1,n=e.maxTicks-1,r=e.min,l=e.max,s=e.precision,d=t.min,c=t.max,h=Da.niceNum((c-d)/n/o)*o,g,m,u,p;if(h<1e-14&&Zi(r)&&Zi(l)){return[d,c]}p=Math.ceil(c/h)-Math.floor(d/h);if(p>n){h=Da.niceNum(p*h/n/o)*o}if(i||Zi(s)){g=Math.pow(10,Da._decimalPlaces(h))}else{g=Math.pow(10,s);h=Math.ceil(h*g)/g}m=Math.floor(d/h)*h;u=Math.ceil(c/h)*h;if(i){if(!Zi(r)&&Da.almostWhole(r/h,h/1e3)){m=r}if(!Zi(l)&&Da.almostWhole(l/h,h/1e3)){u=l}}p=(u-m)/h;if(Da.almostEquals(p,Math.round(p),h/1e3)){p=Math.round(p)}else{p=Math.ceil(p)}m=Math.round(m*g)/g;u=Math.round(u*g)/g;a.push(Zi(r)?m:r);for(var f=1;fi&&0>o){e.max=0}else if(0=e.max){if(n){e.max=e.min+1}else{e.min=e.max-1}}}if(e.min===e.max){e.max++;if(!a.beginAtZero){e.min--}}},getTickLimit:function getTickLimit(){var e=this,t=e.options.ticks,a=t.stepSize,i=t.maxTicksLimit,o;if(a){o=Math.ceil(e.max/a)-Math.floor(e.min/a)+1}else{o=e._computeTickLimit();i=i||11}if(i){o=Math.min(i,o)}return o},_computeTickLimit:function _computeTickLimit(){return Number.POSITIVE_INFINITY},handleDirectionalChanges:Xi,buildTicks:function buildTicks(){var e=this,t=e.options,a=t.ticks,i=e.getTickLimit();i=Math.max(2,i);var o={maxTicks:i,min:a.min,max:a.max,precision:a.precision,stepSize:Da.valueOrDefault(a.fixedStepSize,a.stepSize)},n=e.ticks=Xe(o,e);e.handleDirectionalChanges();e.max=Da.max(n);e.min=Da.min(n);if(a.reverse){n.reverse();e.start=e.max;e.end=e.min}else{e.start=e.min;e.end=e.max}},convertTicksToLabels:function convertTicksToLabels(){var e=this;e.ticksAsNumbers=e.ticks.slice();e.zeroLineIndex=e.ticks.indexOf(0);Gi.prototype.convertTicksToLabels.call(e)},_configure:function _configure(){var e=this,t=e.getTicks(),a=e.min,i=e.max,o;Gi.prototype._configure.call(e);if(e.options.offset&&t.length){o=(i-a)/Math.max(t.length-1,1)/2;a-=o;i+=o}e._startValue=a;e._endValue=i;e._valueRange=i-a}}),Qi={position:"left",ticks:{callback:Vi.formatters.linear}};function Ze(e,t,a){var i=[a.type,t===void 0&&a.stack===void 0?a.index:"",a.stack].join(".");if(e[i]===void 0){e[i]={pos:[],neg:[]}}return e[i]}function Je(e,t,a,o){var n=e.options,r=n.stacked,l=Ze(t,r,a),s=l.pos,d=l.neg,c=o.length,h,g;for(h=0;hg.min||0>g.max){d[h]+=g.min}else{s[h]+=g.max}}}function Qe(e,t,a){var o=a.length,n,r;for(n=0;ne||e>t.length-1){return null}return this.getPixelForValue(t[e])}});$i._defaults=Qi;var eo=Da.valueOrDefault,to=Da.math.log10;function $e(e,t){var a=[],i=eo(e.min,Math.pow(10,Math.floor(to(t.min)))),o=Math.floor(to(t.max)),n=Math.ceil(t.max/Math.pow(10,o)),r,l;if(0===i){r=Math.floor(to(t.minNotZero));l=Math.floor(t.minNotZero/Math.pow(10,r));a.push(i);i=l*Math.pow(10,r)}else{r=Math.floor(to(i));l=Math.floor(i/Math.pow(10,r))}var s=0>r?Math.pow(10,Math.abs(r)):1;do{a.push(i);++l;if(10===l){l=1;++r;s=0<=r?1:s}i=Math.round(l*Math.pow(10,r)*s)/s}while(rd.min||0>d.max){continue}f[h]=f[h]||0;f[h]+=d.max}}}Da.each(u,function(e){if(0d.min||0>d.max){continue}t.min=Math.min(d.min,t.min);t.max=Math.max(d.max,t.max);if(0!==d.min){t.minNotZero=Math.min(d.min,t.minNotZero)}}}}}t.min=Da.isFinite(t.min)?t.min:null;t.max=Da.isFinite(t.max)?t.max:null;t.minNotZero=Da.isFinite(t.minNotZero)?t.minNotZero:null;this.handleTickRangeOptions()},handleTickRangeOptions:function handleTickRangeOptions(){var e=this,t=e.options.ticks,a=1,i=10;e.min=et(t.min,e.min);e.max=et(t.max,e.max);if(e.min===e.max){if(0!==e.min&&null!==e.min){e.min=Math.pow(10,Math.floor(to(e.min))-1);e.max=Math.pow(10,Math.floor(to(e.max))+1)}else{e.min=a;e.max=i}}if(null===e.min){e.min=Math.pow(10,Math.floor(to(e.max))-1)}if(null===e.max){e.max=0!==e.min?Math.pow(10,Math.floor(to(e.min))+1):i}if(null===e.minNotZero){if(0e.max){e.minNotZero=Math.pow(10,Math.floor(to(e.max)))}else{e.minNotZero=a}}},buildTicks:function buildTicks(){var e=this,t=e.options.ticks,a=!e.isHorizontal(),i={min:et(t.min),max:et(t.max)},o=e.ticks=$e(i,e);e.max=Da.max(o);e.min=Da.min(o);if(t.reverse){a=!a;e.start=e.max;e.end=e.min}else{e.start=e.min;e.end=e.max}if(a){o.reverse()}},convertTicksToLabels:function convertTicksToLabels(){this.tickValues=this.ticks.slice();Gi.prototype.convertTicksToLabels.call(this)},getLabelForIndex:function getLabelForIndex(e,t){return this._getScaleLabel(this.chart.data.datasets[t].data[e])},getPixelForTick:function getPixelForTick(e){var t=this.tickValues;if(0>e||e>t.length-1){return null}return this.getPixelForValue(t[e])},_getFirstTickValue:function _getFirstTickValue(e){var t=Math.floor(to(e)),a=Math.floor(e/Math.pow(10,t));return a*Math.pow(10,t)},_configure:function _configure(){var e=this,t=e.min,a=0;Gi.prototype._configure.call(e);if(0===t){t=e._getFirstTickValue(e.minNotZero);a=eo(e.options.ticks.fontSize,_a.global.defaultFontSize)/e._length}e._startValue=to(t);e._valueOffset=a;e._valueRange=(to(e.max)-to(t))/(1-a)},getPixelForValue:function getPixelForValue(e){var t=this,a=0;e=+t.getRightValue(e);if(e>t.min&&0o){return{start:t-a,end:t}}return{start:t,end:t+a}}function ot(e){var t=Da.options._parseFont(e.options.pointLabels),a={l:0,r:e.width,t:0,b:e.height-e.paddingTop},o={},n,r,l;e.ctx.font=t.string;e._pointLabelSizes=[];var s=e.chart.data.labels.length;for(n=0;na.r){a.r=h.end;o.r=d}if(g.starta.b){a.b=g.end;o.b=d}}e.setReductions(e.drawingArea,a,o)}function nt(e){if(0===e||180===e){return"center"}else if(180>e){return"left"}return"right"}function rt(e,t,a,o){var n=a.y+o/2,r,l;if(Da.isArray(t)){for(r=0,l=t.length;re){a.y-=t.h}}function st(e){var t=e.ctx,a=e.options,o=a.pointLabels,n=tt(a),r=e.getDistanceFromCenterForValue(a.ticks.reverse?e.min:e.max),l=Da.options._parseFont(o);t.save();t.font=l.string;t.textBaseline="middle";for(var s=e.chart.data.labels.length-1;0<=s;s--){var d=0==s?n/2:0,c=e.getPointPosition(s,r+d+5),h=no(o.fontColor,s,_a.global.defaultFontColor);t.fillStyle=h;var g=e.getIndexAngle(s),m=Da.toDegrees(g);t.textAlign=nt(m);lt(m,e._pointLabelSizes[s],c);rt(t,e.pointLabels[s],c,l.lineHeight)}t.restore()}function dt(e,t,a,o){var n=e.ctx,r=t.circular,l=e.chart.data.labels.length,s=no(t.color,o-1),d=no(t.lineWidth,o-1),c;if(!r&&!l||!s||!d){return}n.save();n.strokeStyle=s;n.lineWidth=d;if(n.setLineDash){n.setLineDash(t.borderDash||[]);n.lineDashOffset=t.borderDashOffset||0}n.beginPath();if(r){n.arc(e.xCenter,e.yCenter,a,0,2*Math.PI)}else{c=e.getPointPosition(0,a);n.moveTo(c.x,c.y);for(var h=1;hn?n+360:n)*Math.PI)/360},getDistanceFromCenterForValue:function getDistanceFromCenterForValue(e){var t=this;if(Da.isNullOrUndef(e)){return NaN}var a=t.drawingArea/(t.max-t.min);if(t.options.ticks.reverse){return(t.max-e)*a}return(e-t.min)*a},getPointPosition:function getPointPosition(e,t){var a=this,i=a.getIndexAngle(e)-Math.PI/2;return{x:Math.cos(i)*t+a.xCenter,y:Math.sin(i)*t+a.yCenter}},getPointPositionForValue:function getPointPositionForValue(e,t){return this.getPointPosition(e,this.getDistanceFromCenterForValue(t))},getBasePosition:function getBasePosition(e){var t=this,a=t.min,i=t.max;return t.getPointPositionForValue(e||0,t.beginAtZero?0:0>a&&0>i?i:0t&&c>1;r=e[n-1]||null;l=e[n];if(!r){return{lo:null,hi:l}}else if(l[t]a){o=n-1}else{return{lo:r,hi:l}}}return{lo:l,hi:null}}function yt(e,t,a,i){var o=ft(e,t,a),n=!o.lo?e[0]:!o.hi?e[e.length-2]:o.lo,r=!o.lo?e[1]:!o.hi?e[e.length-1]:o.hi,l=r[t]-n[t],s=l?(a-n[t])/l:0,d=(r[i]-n[i])*s;return n[i]+d}function bt(e,t){var a=e._adapter,i=e.options.time,o=i.parser,n=o||i.format,r=t;if("function"==typeof o){r=o(r)}if(!Da.isFinite(r)){r="string"==typeof n?a.parse(r,n):a.parse(r)}if(null!==r){return+r}if(!o&&"function"==typeof n){r=n(t);if(!Da.isFinite(r)){r=a.parse(r)}}return r}function xt(e,t){if(Da.isNullOrUndef(t)){return null}var a=e.options.time,i=bt(e,e.getRightValue(t));if(null===i){return i}if(a.round){i=+e._adapter.startOf(i,a.round)}return i}function _t(e,t,a,o){var n=fo.length,r,l,s;for(r=fo.indexOf(e);r=fo.indexOf(a);r--){l=fo[r];if(po[l].common&&e._adapter.diff(n,o,l)>=t-1){return l}}return fo[a?fo.indexOf(a):0]}function vt(e){for(var t=fo.indexOf(e)+1,a=fo.length;t1e5*s){throw t+" and "+a+" are too far apart with stepSize of "+s+" "+l}for(g=c;g=t&&u<=a){s.push(u)}}e.min=t;e.max=a;e._unit=r.unit||(n.autoSkip?_t(r.minUnit,e.min,e.max,d):kt(e,s.length,r.minUnit,e.min,e.max));e._majorUnit=!n.major.enabled||"year"===e._unit?void 0:vt(e._unit);e._table=pt(e._timestamps.data,t,a,h);e._offsets=St(e._table,s,t,a,o);if(n.reverse){s.reverse()}return Ct(e,s,e._majorUnit)},getLabelForIndex:function getLabelForIndex(e,t){var a=this,i=a._adapter,o=a.chart.data,n=a.options.time,r=o.labels&&e>>0,o=0;ot.overflow&&!t.empty&&!t.invalidMonth&&!t.invalidWeekday&&!t.weekdayMismatch&&!t.nullInput&&!t.invalidFormat&&!t.userInvalidated&&(!t.meridiem||t.meridiem&&a);if(e._strict){i=i&&0===t.charsLeftOver&&0===t.unusedTokens.length&&t.bigHour===void 0}if(null==Object.isFrozen||!Object.isFrozen(e)){e._isValid=i}else{return i}}return e._isValid}function b(e){var t=u(NaN);if(null!=e){g(f(t),e)}else{f(t).userInvalidated=!0}return t}var zt=a.momentProperties=[];function x(e,t){var a,o,n;if(!l(t._isAMomentObject)){e._isAMomentObject=t._isAMomentObject}if(!l(t._i)){e._i=t._i}if(!l(t._f)){e._f=t._f}if(!l(t._l)){e._l=t._l}if(!l(t._strict)){e._strict=t._strict}if(!l(t._tzm)){e._tzm=t._tzm}if(!l(t._isUTC)){e._isUTC=t._isUTC}if(!l(t._offset)){e._offset=t._offset}if(!l(t._pf)){e._pf=f(t)}if(!l(t._locale)){e._locale=t._locale}if(0e){return Math.ceil(e)||0}else{return Math.floor(e)}}function w(e){var t=+e,a=0;if(0!=t&&isFinite(t)){a=v(t)}return a}function S(e,t,a){var o=Math.min(e.length,t.length),n=Math.abs(e.length-t.length),r=0,l;for(l=0;l=e?""+e:"+"+e});Y(0,["YY",2],0,function(){return this.year()%100});Y(0,["YYYY",4],0,"year");Y(0,["YYYYY",5],0,"year");Y(0,["YYYYYY",6,!0],0,"year");M("year","y");F("year",1);B("Y",ra);B("YY",ea,Zt);B("YYYY",oa,Qt);B("YYYYY",na,$t);B("YYYYYY",na,$t);G(["YYYYY","YYYYYY"],0);G("YYYY",function(e,t){t[0]=2===e.length?a.parseTwoDigitYear(e):w(e)});G("YY",function(e,t){t[0]=a.parseTwoDigitYear(e)});G("Y",function(e,t){t[0]=parseInt(e,10)});function X(e){return Z(e)?366:365}function Z(e){return 0==e%4&&0!=e%100||0==e%400}a.parseTwoDigitYear=function(e){return w(e)+(68o;++o){r=u([2e3,o]);this._shortMonthsParse[o]=this.monthsShort(r,"").toLocaleLowerCase();this._longMonthsParse[o]=this.months(r,"").toLocaleLowerCase()}}if(a){if("MMM"===t){n=ba.call(this._shortMonthsParse,l);return-1!==n?n:null}else{n=ba.call(this._longMonthsParse,l);return-1!==n?n:null}}else{if("MMM"===t){n=ba.call(this._shortMonthsParse,l);if(-1!==n){return n}n=ba.call(this._longMonthsParse,l);return-1!==n?n:null}else{n=ba.call(this._longMonthsParse,l);if(-1!==n){return n}n=ba.call(this._shortMonthsParse,l);return-1!==n?n:null}}}function oe(e,t){var a;if(!e.isValid()){return e}if("string"==typeof t){if(/^\d+$/.test(t)){t=w(t)}else{t=e.localeData().monthsParse(t);if(!s(t)){return e}}}a=Math.min(e.date(),ae(e.year(),t));e._d["set"+(e._isUTC?"UTC":"")+"Month"](t,a);return e}function ne(e){if(null!=e){oe(this,e);a.updateOffset(this,!0);return this}else{return Q(this,"Month")}}function re(){function e(e,t){return t.length-e.length}var t=[],a=[],o=[],n,r;for(n=0;12>n;n++){r=u([2e3,n]);t.push(this.monthsShort(r,""));a.push(this.months(r,""));o.push(this.months(r,""));o.push(this.monthsShort(r,""))}t.sort(e);a.sort(e);o.sort(e);for(n=0;12>n;n++){t[n]=j(t[n]);a[n]=j(a[n])}for(n=0;24>n;n++){o[n]=j(o[n])}this._monthsRegex=new RegExp("^("+o.join("|")+")","i");this._monthsShortRegex=this._monthsRegex;this._monthsStrictRegex=new RegExp("^("+a.join("|")+")","i");this._monthsShortStrictRegex=new RegExp("^("+t.join("|")+")","i")}function le(e,t,a,i,o,n,r){var l;if(100>e&&0<=e){l=new Date(e+400,t,a,i,o,n,r);if(isFinite(l.getFullYear())){l.setFullYear(e)}}else{l=new Date(e,t,a,i,o,n,r)}return l}function se(e){var t;if(100>e&&0<=e){var a=Array.prototype.slice.call(arguments);a[0]=e+400;t=new Date(Date.UTC.apply(null,a));if(isFinite(t.getUTCFullYear())){t.setUTCFullYear(e)}}else{t=new Date(Date.UTC.apply(null,arguments))}return t}function de(e,t,a){var i=7+t-a,o=(7+se(e,0,i).getUTCDay()-t)%7;return-o+i-1}function ce(e,t,a,i,o){var n=de(e,i,o),r=1+7*(t-1)+(7+a-i)%7+n,l,s;if(0>=r){l=e-1;s=X(l)+r}else if(r>X(e)){l=e+1;s=r-X(e)}else{l=e;s=r}return{year:l,dayOfYear:s}}function he(e,t,a){var i=de(e.year(),t,a),o=Math.floor((e.dayOfYear()-i-1)/7)+1,n,r;if(1>o){r=e.year()-1;n=o+ge(r,t,a)}else if(o>ge(e.year(),t,a)){n=o-ge(e.year(),t,a);r=e.year()+1}else{r=e.year();n=o}return{week:n,year:r}}function ge(e,t,a){var i=de(e,t,a),o=de(e+1,t,a);return(X(e)-i+o)/7}Y("w",["ww",2],"wo","week");Y("W",["WW",2],"Wo","isoWeek");M("week","w");M("isoWeek","W");F("week",5);F("isoWeek",5);B("w",ea);B("ww",ea,Zt);B("W",ea);B("WW",ea,Zt);q(["w","ww","W","WW"],function(e,t,a,i){t[i.substr(0,1)]=w(e)});Y("d",0,"do","day");Y("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)});Y("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)});Y("dddd",0,0,function(e){return this.localeData().weekdays(this,e)});Y("e",0,0,"weekday");Y("E",0,0,"isoWeekday");M("day","d");M("weekday","e");M("isoWeekday","E");F("day",11);F("weekday",11);F("isoWeekday",11);B("d",ea);B("e",ea);B("E",ea);B("dd",function(e,t){return t.weekdaysMinRegex(e)});B("ddd",function(e,t){return t.weekdaysShortRegex(e)});B("dddd",function(e,t){return t.weekdaysRegex(e)});q(["dd","ddd","dddd"],function(e,t,a,i){var o=a._locale.weekdaysParse(e,i,a._strict);if(null!=o){t.d=o}else{f(a).invalidWeekday=e}});q(["d","e","E"],function(e,t,a,i){t[i]=w(e)});function me(e,t){if("string"!=typeof e){return e}if(!isNaN(e)){return parseInt(e,10)}e=t.weekdaysParse(e);if("number"==typeof e){return e}return null}function ue(e,t){if("string"==typeof e){return t.weekdaysParse(e)%7||7}return isNaN(e)?null:e}function pe(e,t){return e.slice(t,7).concat(e.slice(0,t))}var ka=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];function fe(e,t,a){var o,n,r,l=e.toLocaleLowerCase();if(!this._weekdaysParse){this._weekdaysParse=[];this._shortWeekdaysParse=[];this._minWeekdaysParse=[];for(o=0;7>o;++o){r=u([2e3,1]).day(o);this._minWeekdaysParse[o]=this.weekdaysMin(r,"").toLocaleLowerCase();this._shortWeekdaysParse[o]=this.weekdaysShort(r,"").toLocaleLowerCase();this._weekdaysParse[o]=this.weekdays(r,"").toLocaleLowerCase()}}if(a){if("dddd"===t){n=ba.call(this._weekdaysParse,l);return-1!==n?n:null}else if("ddd"===t){n=ba.call(this._shortWeekdaysParse,l);return-1!==n?n:null}else{n=ba.call(this._minWeekdaysParse,l);return-1!==n?n:null}}else{if("dddd"===t){n=ba.call(this._weekdaysParse,l);if(-1!==n){return n}n=ba.call(this._shortWeekdaysParse,l);if(-1!==n){return n}n=ba.call(this._minWeekdaysParse,l);return-1!==n?n:null}else if("ddd"===t){n=ba.call(this._shortWeekdaysParse,l);if(-1!==n){return n}n=ba.call(this._weekdaysParse,l);if(-1!==n){return n}n=ba.call(this._minWeekdaysParse,l);return-1!==n?n:null}else{n=ba.call(this._minWeekdaysParse,l);if(-1!==n){return n}n=ba.call(this._weekdaysParse,l);if(-1!==n){return n}n=ba.call(this._shortWeekdaysParse,l);return-1!==n?n:null}}}function ye(){function e(e,t){return t.length-e.length}var t=[],a=[],o=[],n=[],r,l,s,d,c;for(r=0;7>r;r++){l=u([2e3,1]).day(r);s=this.weekdaysMin(l,"");d=this.weekdaysShort(l,"");c=this.weekdays(l,"");t.push(s);a.push(d);o.push(c);n.push(s);n.push(d);n.push(c)}t.sort(e);a.sort(e);o.sort(e);n.sort(e);for(r=0;7>r;r++){a[r]=j(a[r]);o[r]=j(o[r]);n[r]=j(n[r])}this._weekdaysRegex=new RegExp("^("+n.join("|")+")","i");this._weekdaysShortRegex=this._weekdaysRegex;this._weekdaysMinRegex=this._weekdaysRegex;this._weekdaysStrictRegex=new RegExp("^("+o.join("|")+")","i");this._weekdaysShortStrictRegex=new RegExp("^("+a.join("|")+")","i");this._weekdaysMinStrictRegex=new RegExp("^("+t.join("|")+")","i")}function be(){return this.hours()%12||12}Y("H",["HH",2],0,"hour");Y("h",["hh",2],0,be);Y("k",["kk",2],0,function(){return this.hours()||24});Y("hmm",0,0,function(){return""+be.apply(this)+E(this.minutes(),2)});Y("hmmss",0,0,function(){return""+be.apply(this)+E(this.minutes(),2)+E(this.seconds(),2)});Y("Hmm",0,0,function(){return""+this.hours()+E(this.minutes(),2)});Y("Hmmss",0,0,function(){return""+this.hours()+E(this.minutes(),2)+E(this.seconds(),2)});function xe(e,t){Y(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}xe("a",!0);xe("A",!1);M("hour","h");F("hour",13);function _e(e,t){return t._meridiemParse}B("a",_e);B("A",_e);B("H",ea);B("h",ea);B("k",ea);B("HH",ea,Zt);B("hh",ea,Zt);B("kk",ea,Zt);B("hmm",ta);B("hmmss",aa);B("Hmm",ta);B("Hmmss",aa);G(["H","HH"],ma);G(["k","kk"],function(e,t){var a=w(e);t[ma]=24===a?0:a});G(["a","A"],function(e,t,a){a._isPm=a._locale.isPM(e);a._meridiem=e});G(["h","hh"],function(e,t,a){t[ma]=w(e);f(a).bigHour=!0});G("hmm",function(e,t,a){var i=e.length-2;t[ma]=w(e.substr(0,i));t[ua]=w(e.substr(i));f(a).bigHour=!0});G("hmmss",function(e,t,a){var i=e.length-4,o=e.length-2;t[ma]=w(e.substr(0,i));t[ua]=w(e.substr(i,2));t[pa]=w(e.substr(o));f(a).bigHour=!0});G("Hmm",function(e,t){var a=e.length-2;t[ma]=w(e.substr(0,a));t[ua]=w(e.substr(a))});G("Hmmss",function(e,t){var a=e.length-4,i=e.length-2;t[ma]=w(e.substr(0,a));t[ua]=w(e.substr(a,2));t[pa]=w(e.substr(i))});var va=J("Hours",!0),wa={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:_a,week:{dow:0,doy:6},weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],weekdaysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekdaysShort:ka,meridiemParse:/[ap]\.?m?\.?/i},Sa={},Da={},Ca;function ke(e){return e?e.toLowerCase().replace("_","-"):e}function ve(e){var t=0,a,o,n,r;while(t=a&&S(r,o,!0)>=a-1){break}a--}t++}return Ca}function we(a){var i=null;if(!Sa[a]&&!0&&t&&t.exports){try{i=Ca._abbr;e("./locale/"+a);Se(i)}catch(t){}}return Sa[a]}function Se(e,t){var a;if(e){if(l(t)){a=Ce(e)}else{a=De(e,t)}if(a){Ca=a}else{if("undefined"!=typeof console&&console.warn){console.warn("Locale "+e+" not found. Did you forget to load it?")}}}return Ca._abbr}function De(e,t){if(null!==t){var a,i=wa;t.abbr=e;if(null!=Sa[e]){P("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info.");i=Sa[e]._config}else if(null!=t.parentLocale){if(null!=Sa[t.parentLocale]){i=Sa[t.parentLocale]._config}else{a=we(t.parentLocale);if(null!=a){i=a._config}else{if(!Da[t.parentLocale]){Da[t.parentLocale]=[]}Da[t.parentLocale].push({name:e,config:t});return null}}}Sa[e]=new A(O(i,t));if(Da[e]){Da[e].forEach(function(e){De(e.name,e.config)})}Se(e);return Sa[e]}else{delete Sa[e];return null}}function Ce(e){var t;if(e&&e._locale&&e._locale._abbr){e=e._locale._abbr}if(!e){return Ca}if(!o(e)){t=we(e);if(t){return t}e=[e]}return ve(e)}function Pe(){return Bt(Sa)}function Te(e){var t,i=e._a;if(i&&-2===f(e).overflow){t=0>i[ha]||11i[ga]||i[ga]>ae(i[0],i[ha])?ga:0>i[ma]||24i[ua]||59i[pa]||59i[fa]||999ga)){t=ga}if(f(e)._overflowWeeks&&-1===t){t=7}if(f(e)._overflowWeekday&&-1===t){t=8}f(e).overflow=t}return e}function Oe(e,t,a){if(null!=e){return e}if(null!=t){return t}return a}function Ae(e){var t=new Date(a.now());if(e._useUTC){return[t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()]}return[t.getFullYear(),t.getMonth(),t.getDate()]}function Me(e){var t,a,o=[],n,r,l;if(e._d){return}n=Ae(e);if(e._w&&null==e._a[ga]&&null==e._a[ha]){Ie(e)}if(null!=e._dayOfYear){l=Oe(e._a[0],n[0]);if(e._dayOfYear>X(l)||0===e._dayOfYear){f(e)._overflowDayOfYear=!0}a=se(l,0,e._dayOfYear);e._a[ha]=a.getUTCMonth();e._a[ga]=a.getUTCDate()}for(t=0;3>t&&null==e._a[t];++t){e._a[t]=o[t]=n[t]}for(;7>t;t++){e._a[t]=o[t]=null==e._a[t]?2===t?1:0:e._a[t]}if(24===e._a[ma]&&0===e._a[ua]&&0===e._a[pa]&&0===e._a[fa]){e._nextDay=!0;e._a[ma]=0}e._d=(e._useUTC?se:le).apply(null,o);r=e._useUTC?e._d.getUTCDay():e._d.getDay();if(null!=e._tzm){e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm)}if(e._nextDay){e._a[ma]=24}if(e._w&&"undefined"!=typeof e._w.d&&e._w.d!==r){f(e).weekdayMismatch=!0}}function Ie(e){var t,a,i,o,n,r,l,s;t=e._w;if(null!=t.GG||null!=t.W||null!=t.E){n=1;r=4;a=Oe(t.GG,e._a[0],he(Xe(),1,4).year);i=Oe(t.W,1);o=Oe(t.E,1);if(1>o||7o||6t.e||6i||i>ge(a,n,r)){f(e)._overflowWeeks=!0}else if(null!=s){f(e)._overflowWeekday=!0}else{l=ce(a,i,o,n,r);e._a[0]=l.year;e._dayOfYear=l.dayOfYear}}var Pa=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],Ta=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]];function Le(e){var t,a,o=e._i,n=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/.exec(o)||/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/.exec(o),r,s,d,c;if(n){f(e).iso=!0;for(t=0,a=Pa.length;t=t){return 2e3+t}else if(999>=t){return 1900+t}return t}function Ee(e){return e.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,"")}function Ye(e,t,a){if(e){var i=ka.indexOf(e),o=new Date(t[0],t[1],t[2]).getDay();if(i!==o){f(a).weekdayMismatch=!0;a._isValid=!1;return!1}}return!0}var Oa={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function We(e,t,a){if(e){return Oa[e]}else if(t){return 0}else{var i=parseInt(a,10),o=i%100;return 60*((i-o)/100)+o}}function ze(e){var t=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/.exec(Ee(e._i));if(t){var a=Fe(t[4],t[3],t[2],t[5],t[6],t[7]);if(!Ye(t[1],a,e)){return}e._a=a;e._tzm=We(t[8],t[9],t[10]);e._d=se.apply(null,e._a);e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm);f(e).rfc2822=!0}else{e._isValid=!1}}function Ve(e){var t=/^\/?Date\((\-?\d+)/i.exec(e._i);if(null!==t){e._d=new Date(+t[1]);return}Le(e);if(!1===e._isValid){delete e._isValid}else{return}ze(e);if(!1===e._isValid){delete e._isValid}else{return}a.createFromInputFallback(e)}a.createFromInputFallback=C("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))});a.ISO_8601=function(){};a.RFC_2822=function(){};function He(e){if(e._f===a.ISO_8601){Le(e);return}if(e._f===a.RFC_2822){ze(e);return}e._a=[];f(e).empty=!0;var t=""+e._i,o,n,r,l,s,d=t.length,c=0;r=H(e._f,e._locale).match(jt)||[];for(o=0;o=e._a[ma]&&!0===f(e).bigHour&&0t){t+=12}if(!i&&12===t){t=0}return t}else{return t}}function Ne(e){var t,a,o,n,r;if(0===e._f.length){f(e).invalidFormat=!0;e._d=new Date(NaN);return}for(n=0;nthis?this:e}else{return b()}});function Ze(e,t){var a,n;if(1===t.length&&o(t[0])){t=t[0]}if(!t.length){return Xe()}a=t[0];for(n=1;ne){return-1*Math.round(-1*e)}else{return Math.round(e)}}function tt(e,t){Y(e,0,0,function(){var e=this.utcOffset(),a="+";if(0>e){e=-e;a="-"}return a+E(~~(e/60),2)+t+E(~~e%60,2)})}tt("Z",":");tt("ZZ","");B("Z",la);B("ZZ",la);G(["Z","ZZ"],function(e,t,a){a._useUTC=!0;a._tzm=at(la,e)});function at(e,t){var a=(t||"").match(e);if(null===a){return null}var i=a[a.length-1]||[],o=(i+"").match(/([\+\-]|\d\d)/gi)||["-",0,0],n=+(60*o[1])+w(o[2]);return 0===n?0:"+"===o[0]?n:-n}function it(e,t){var i,o;if(t._isUTC){i=t.clone();o=(k(e)||d(e)?e.valueOf():Xe(e).valueOf())-i.valueOf();i._d.setTime(i._d.valueOf()+o);a.updateOffset(i,!1);return i}else{return Xe(e).local()}}function ot(e){return 15*-Math.round(e._d.getTimezoneOffset()/15)}a.updateOffset=function(){};function nt(){return this.isValid()?this._isUTC&&0===this._offset:!1}function rt(e,t){var a=e,i=null,o,n,r;if($e(e)){a={ms:e._milliseconds,d:e._days,M:e._months}}else if(s(e)){a={};if(t){a[t]=e}else{a.milliseconds=e}}else if(!!(i=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/.exec(e))){o="-"===i[1]?-1:1;a={y:0,d:w(i[ga])*o,h:w(i[ma])*o,m:w(i[ua])*o,s:w(i[pa])*o,ms:w(et(1e3*i[fa]))*o}}else if(!!(i=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/.exec(e))){o="-"===i[1]?-1:1;a={y:lt(i[2],o),M:lt(i[3],o),w:lt(i[4],o),d:lt(i[5],o),h:lt(i[6],o),m:lt(i[7],o),s:lt(i[8],o)}}else if(null==a){a={}}else if("object"===_typeof(a)&&("from"in a||"to"in a)){r=dt(Xe(a.from),Xe(a.to));a={};a.ms=r.milliseconds;a.M=r.months}n=new Qe(a);if($e(e)&&h(e,"_locale")){n._locale=e._locale}return n}rt.fn=Qe.prototype;rt.invalid=function(){return rt(NaN)};function lt(e,t){var a=e&&parseFloat(e.replace(",","."));return(isNaN(a)?0:a)*t}function st(e,t){var a={months:t.month()-e.month()+12*(t.year()-e.year())};if(e.clone().add(a.months,"M").isAfter(t)){--a.months}a.milliseconds=+t-+e.clone().add(a.months,"M");return a}function dt(e,t){var a;if(!(e.isValid()&&t.isValid())){return{milliseconds:0,months:0}}t=it(t,e);if(e.isBefore(t)){a=st(e,t)}else{a=st(t,e);a.milliseconds=-a.milliseconds;a.months=-a.months}return a}function ct(e,t){return function(a,i){var o,n;if(null!==i&&!isNaN(+i)){P(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.");n=a;a=i;i=n}a="string"==typeof a?+a:a;o=rt(a,i);ht(this,o,e);return this}}function ht(e,t,i,o){var n=t._milliseconds,r=et(t._days),l=et(t._months);if(!e.isValid()){return}o=null==o?!0:o;if(l){oe(e,Q(e,"Month")+l*i)}if(r){$(e,"Date",Q(e,"Date")+r*i)}if(n){e._d.setTime(e._d.valueOf()+n*i)}if(o){a.updateOffset(e,r||l)}}var La=ct(1,"add"),Fa=ct(-1,"subtract");function gt(e,t){var a=12*(t.year()-e.year())+(t.month()-e.month()),i=e.clone().add(a,"months"),o,n;if(0>t-i){o=e.clone().add(a-1,"months");n=(t-i)/(i-o)}else{o=e.clone().add(a+1,"months");n=(t-i)/(o-i)}return-(a+n)||0}a.defaultFormat="YYYY-MM-DDTHH:mm:ssZ";a.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";function mt(e){var t;if(e===void 0){return this._locale._abbr}else{t=Ce(e);if(null!=t){this._locale=t}return this}}var Ra=C("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){if(e===void 0){return this.localeData()}else{return this.locale(e)}});function ut(){return this._locale}var Ea=60000,Ya=60*Ea,Wa=3506328*Ya;function pt(e,t){return(e%t+t)%t}function ft(e,t,a){if(100>e&&0<=e){return new Date(e+400,t,a)-Wa}else{return new Date(e,t,a).valueOf()}}function yt(e,t,a){if(100>e&&0<=e){return Date.UTC(e+400,t,a)-Wa}else{return Date.UTC(e,t,a)}}Y(0,["gg",2],0,function(){return this.weekYear()%100});Y(0,["GG",2],0,function(){return this.isoWeekYear()%100});function bt(e,t){Y(0,[e,e.length],0,t)}bt("gggg","weekYear");bt("ggggg","weekYear");bt("GGGG","isoWeekYear");bt("GGGGG","isoWeekYear");M("weekYear","gg");M("isoWeekYear","GG");F("weekYear",1);F("isoWeekYear",1);B("G",ra);B("g",ra);B("GG",ea,Zt);B("gg",ea,Zt);B("GGGG",oa,Qt);B("gggg",oa,Qt);B("GGGGG",na,$t);B("ggggg",na,$t);q(["gggg","ggggg","GGGG","GGGGG"],function(e,t,a,i){t[i.substr(0,2)]=w(e)});q(["gg","GG"],function(e,t,i,o){t[o]=a.parseTwoDigitYear(e)});function xt(e,t,a,i,o){var n;if(null==e){return he(this,i,o).year}else{n=ge(e,i,o);if(t>n){t=n}return _t.call(this,e,t,a,i,o)}}function _t(e,t,a,i,o){var n=ce(e,t,a,i,o),r=se(n.year,0,n.dayOfYear);this.year(r.getUTCFullYear());this.month(r.getUTCMonth());this.date(r.getUTCDate());return this}Y("Q",0,"Qo","quarter");M("quarter","Q");F("quarter",7);B("Q",Xt);G("Q",function(e,t){t[ha]=3*(w(e)-1)});Y("D",["DD",2],"Do","date");M("date","D");F("date",9);B("D",ea);B("DD",ea,Zt);B("Do",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient});G(["D","DD"],ga);G("Do",function(e,t){t[ga]=w(e.match(ea)[0])});var za=J("Date",!0);Y("DDD",["DDDD",3],"DDDo","dayOfYear");M("dayOfYear","DDD");F("dayOfYear",4);B("DDD",ia);B("DDDD",Jt);G(["DDD","DDDD"],function(e,t,a){a._dayOfYear=w(e)});Y("m",["mm",2],0,"minute");M("minute","m");F("minute",14);B("m",ea);B("mm",ea,Zt);G(["m","mm"],ua);var Va=J("Minutes",!1);Y("s",["ss",2],0,"second");M("second","s");F("second",15);B("s",ea);B("ss",ea,Zt);G(["s","ss"],pa);var Ha=J("Seconds",!1);Y("S",0,0,function(){return~~(this.millisecond()/100)});Y(0,["SS",2],0,function(){return~~(this.millisecond()/10)});Y(0,["SSS",3],0,"millisecond");Y(0,["SSSS",4],0,function(){return 10*this.millisecond()});Y(0,["SSSSS",5],0,function(){return 100*this.millisecond()});Y(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()});Y(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()});Y(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()});Y(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()});M("millisecond","ms");F("millisecond",16);B("S",ia,Xt);B("SS",ia,Zt);B("SSS",ia,Jt);var Ba;for(Ba="SSSS";9>=Ba.length;Ba+="S"){B(Ba,/\d+/)}function kt(e,t){t[fa]=w(1e3*("0."+e))}for(Ba="S";9>=Ba.length;Ba+="S"){G(Ba,kt)}var Na=J("Milliseconds",!1);Y("z",0,0,"zoneAbbr");Y("zz",0,0,"zoneName");var Ua=_.prototype;Ua.add=La;Ua.calendar=function(e,t){var i=e||Xe(),o=it(i,this).startOf("day"),n=a.calendarFormat(this,o)||"sameElse",r=t&&(T(t[n])?t[n].call(this,i):t[n]);return this.format(r||this.localeData().calendar(n,this,Xe(i)))};Ua.clone=function(){return new _(this)};Ua.diff=function(e,t,a){var i,o,n;if(!this.isValid()){return NaN}i=it(e,this);if(!i.isValid()){return NaN}o=6e4*(i.utcOffset()-this.utcOffset());t=I(t);switch(t){case"year":n=gt(this,i)/12;break;case"month":n=gt(this,i);break;case"quarter":n=gt(this,i)/3;break;case"second":n=(this-i)/1e3;break;case"minute":n=(this-i)/6e4;break;case"hour":n=(this-i)/36e5;break;case"day":n=(this-i-o)/864e5;break;case"week":n=(this-i-o)/6048e5;break;default:n=this-i;}return a?n:v(n)};Ua.endOf=function(e){var t;e=I(e);if(e===void 0||"millisecond"===e||!this.isValid()){return this}var i=this._isUTC?yt:ft;switch(e){case"year":t=i(this.year()+1,0,1)-1;break;case"quarter":t=i(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=i(this.year(),this.month()+1,1)-1;break;case"week":t=i(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=i(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=i(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf();t+=Ya-pt(t+(this._isUTC?0:this.utcOffset()*Ea),Ya)-1;break;case"minute":t=this._d.valueOf();t+=Ea-pt(t,Ea)-1;break;case"second":t=this._d.valueOf();t+=1000-pt(t,1000)-1;break;}this._d.setTime(t);a.updateOffset(this,!0);return this};Ua.format=function(e){if(!e){e=this.isUtc()?a.defaultFormatUtc:a.defaultFormat}var t=V(this,e);return this.localeData().postformat(t)};Ua.from=function(e,t){if(this.isValid()&&(k(e)&&e.isValid()||Xe(e).isValid())){return rt({to:this,from:e}).locale(this.locale()).humanize(!t)}else{return this.localeData().invalidDate()}};Ua.fromNow=function(e){return this.from(Xe(),e)};Ua.to=function(e,t){if(this.isValid()&&(k(e)&&e.isValid()||Xe(e).isValid())){return rt({from:this,to:e}).locale(this.locale()).humanize(!t)}else{return this.localeData().invalidDate()}};Ua.toNow=function(e){return this.to(Xe(),e)};Ua.get=function(e){e=I(e);if(T(this[e])){return this[e]()}return this};Ua.invalidAt=function(){return f(this).overflow};Ua.isAfter=function(e,t){var a=k(e)?e:Xe(e);if(!(this.isValid()&&a.isValid())){return!1}t=I(t)||"millisecond";if("millisecond"===t){return this.valueOf()>a.valueOf()}else{return a.valueOf()a.year()||9999=this.year()?"YYYY":"YYYYYY",o=t+"[\")]";return this.format(a+i+"-MM-DD[T]HH:mm:ss.SSS"+o)};Ua.toJSON=function(){return this.isValid()?this.toISOString():null};Ua.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")};Ua.unix=function(){return Math.floor(this.valueOf()/1e3)};Ua.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)};Ua.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}};Ua.year=ya;Ua.isLeapYear=function(){return Z(this.year())};Ua.weekYear=function(e){return xt.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)};Ua.isoWeekYear=function(e){return xt.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)};Ua.quarter=Ua.quarters=function(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)};Ua.month=ne;Ua.daysInMonth=function(){return ae(this.year(),this.month())};Ua.week=Ua.weeks=function(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")};Ua.isoWeek=Ua.isoWeeks=function(e){var t=he(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")};Ua.weeksInYear=function(){var e=this.localeData()._week;return ge(this.year(),e.dow,e.doy)};Ua.isoWeeksInYear=function(){return ge(this.year(),1,4)};Ua.date=za;Ua.day=Ua.days=function(e){if(!this.isValid()){return null!=e?this:NaN}var t=this._isUTC?this._d.getUTCDay():this._d.getDay();if(null!=e){e=me(e,this.localeData());return this.add(e-t,"d")}else{return t}};Ua.weekday=function(e){if(!this.isValid()){return null!=e?this:NaN}var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")};Ua.isoWeekday=function(e){if(!this.isValid()){return null!=e?this:NaN}if(null!=e){var t=ue(e,this.localeData());return this.day(this.day()%7?t:t-7)}else{return this.day()||7}};Ua.dayOfYear=function(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")};Ua.hour=Ua.hours=va;Ua.minute=Ua.minutes=Va;Ua.second=Ua.seconds=Ha;Ua.millisecond=Ua.milliseconds=Na;Ua.utcOffset=function(e,t,i){var o=this._offset||0,n;if(!this.isValid()){return null!=e?this:NaN}if(null!=e){if("string"==typeof e){e=at(la,e);if(null===e){return this}}else if(16>Math.abs(e)&&!i){e=60*e}if(!this._isUTC&&t){n=ot(this)}this._offset=e;this._isUTC=!0;if(null!=n){this.add(n,"m")}if(o!==e){if(!t||this._changeInProgress){ht(this,rt(e-o,"m"),1,!1)}else if(!this._changeInProgress){this._changeInProgress=!0;a.updateOffset(this,!0);this._changeInProgress=null}}return this}else{return this._isUTC?o:ot(this)}};Ua.utc=function(e){return this.utcOffset(0,e)};Ua.local=function(e){if(this._isUTC){this.utcOffset(0,e);this._isUTC=!1;if(e){this.subtract(ot(this),"m")}}return this};Ua.parseZone=function(){if(null!=this._tzm){this.utcOffset(this._tzm,!1,!0)}else if("string"==typeof this._i){var e=at(/Z|[+-]\d\d:?\d\d/gi,this._i);if(null!=e){this.utcOffset(e)}else{this.utcOffset(0,!0)}}return this};Ua.hasAlignedHourOffset=function(e){if(!this.isValid()){return!1}e=e?Xe(e).utcOffset():0;return 0==(this.utcOffset()-e)%60};Ua.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()};Ua.isLocal=function(){return this.isValid()?!this._isUTC:!1};Ua.isUtcOffset=function(){return this.isValid()?this._isUTC:!1};Ua.isUtc=nt;Ua.isUTC=nt;Ua.zoneAbbr=function(){return this._isUTC?"UTC":""};Ua.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""};Ua.dates=C("dates accessor is deprecated. Use date instead.",za);Ua.months=C("months accessor is deprecated. Use month instead",ne);Ua.years=C("years accessor is deprecated. Use year instead",ya);Ua.zone=C("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(e,t){if(null!=e){if("string"!=typeof e){e=-e}this.utcOffset(e,t);return this}else{return-this.utcOffset()}});Ua.isDSTShifted=C("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!l(this._isDSTShifted)){return this._isDSTShifted}var e={};x(e,this);e=Ge(e);if(e._a){var t=e._isUTC?u(e._a):Xe(e._a);this._isDSTShifted=this.isValid()&&0o;o++){n=u([2e3,o]);if(a&&!this._longMonthsParse[o]){this._longMonthsParse[o]=new RegExp("^"+this.months(n,"").replace(".","")+"$","i");this._shortMonthsParse[o]=new RegExp("^"+this.monthsShort(n,"").replace(".","")+"$","i")}if(!a&&!this._monthsParse[o]){r="^"+this.months(n,"")+"|^"+this.monthsShort(n,"");this._monthsParse[o]=new RegExp(r.replace(".",""),"i")}if(a&&"MMMM"===t&&this._longMonthsParse[o].test(e)){return o}else if(a&&"MMM"===t&&this._shortMonthsParse[o].test(e)){return o}else if(!a&&this._monthsParse[o].test(e)){return o}}};ja.monthsRegex=function(e){if(this._monthsParseExact){if(!h(this,"_monthsRegex")){re.call(this)}if(e){return this._monthsStrictRegex}else{return this._monthsRegex}}else{if(!h(this,"_monthsRegex")){this._monthsRegex=sa}return this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex}};ja.monthsShortRegex=function(e){if(this._monthsParseExact){if(!h(this,"_monthsRegex")){re.call(this)}if(e){return this._monthsShortStrictRegex}else{return this._monthsShortRegex}}else{if(!h(this,"_monthsShortRegex")){this._monthsShortRegex=sa}return this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex}};ja.week=function(e){return he(e,this._week.dow,this._week.doy).week};ja.firstDayOfYear=function(){return this._week.doy};ja.firstDayOfWeek=function(){return this._week.dow};ja.weekdays=function(e,t){var a=o(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?"format":"standalone"];return!0===e?pe(a,this._week.dow):e?a[e.day()]:a};ja.weekdaysMin=function(e){return!0===e?pe(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin};ja.weekdaysShort=function(e){return!0===e?pe(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort};ja.weekdaysParse=function(e,t,a){var o,n,r;if(this._weekdaysParseExact){return fe.call(this,e,t,a)}if(!this._weekdaysParse){this._weekdaysParse=[];this._minWeekdaysParse=[];this._shortWeekdaysParse=[];this._fullWeekdaysParse=[]}for(o=0;7>o;o++){n=u([2e3,1]).day(o);if(a&&!this._fullWeekdaysParse[o]){this._fullWeekdaysParse[o]=new RegExp("^"+this.weekdays(n,"").replace(".","\\.?")+"$","i");this._shortWeekdaysParse[o]=new RegExp("^"+this.weekdaysShort(n,"").replace(".","\\.?")+"$","i");this._minWeekdaysParse[o]=new RegExp("^"+this.weekdaysMin(n,"").replace(".","\\.?")+"$","i")}if(!this._weekdaysParse[o]){r="^"+this.weekdays(n,"")+"|^"+this.weekdaysShort(n,"")+"|^"+this.weekdaysMin(n,"");this._weekdaysParse[o]=new RegExp(r.replace(".",""),"i")}if(a&&"dddd"===t&&this._fullWeekdaysParse[o].test(e)){return o}else if(a&&"ddd"===t&&this._shortWeekdaysParse[o].test(e)){return o}else if(a&&"dd"===t&&this._minWeekdaysParse[o].test(e)){return o}else if(!a&&this._weekdaysParse[o].test(e)){return o}}};ja.weekdaysRegex=function(e){if(this._weekdaysParseExact){if(!h(this,"_weekdaysRegex")){ye.call(this)}if(e){return this._weekdaysStrictRegex}else{return this._weekdaysRegex}}else{if(!h(this,"_weekdaysRegex")){this._weekdaysRegex=sa}return this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex}};ja.weekdaysShortRegex=function(e){if(this._weekdaysParseExact){if(!h(this,"_weekdaysRegex")){ye.call(this)}if(e){return this._weekdaysShortStrictRegex}else{return this._weekdaysShortRegex}}else{if(!h(this,"_weekdaysShortRegex")){this._weekdaysShortRegex=sa}return this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex}};ja.weekdaysMinRegex=function(e){if(this._weekdaysParseExact){if(!h(this,"_weekdaysRegex")){ye.call(this)}if(e){return this._weekdaysMinStrictRegex}else{return this._weekdaysMinRegex}}else{if(!h(this,"_weekdaysMinRegex")){this._weekdaysMinRegex=sa}return this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex}};ja.isPM=function(e){return"p"===(e+"").toLowerCase().charAt(0)};ja.meridiem=function(e,t,a){if(11o;o++){n[o]=wt(e,o,a,"month")}return n}function Dt(e,t,a,o){if("boolean"==typeof e){if(s(t)){a=t;t=void 0}t=t||""}else{t=e;a=t;e=!1;if(s(t)){a=t;t=void 0}t=t||""}var n=Ce(),r=e?n._week.dow:0;if(null!=a){return wt(t,(a+r)%7,o,"day")}var l,d=[];for(l=0;7>l;l++){d[l]=wt(t,(l+r)%7,o,"day")}return d}Se("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function ordinal(e){var t=e%10,a=1===w(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th";return e+a}});a.lang=C("moment.lang is deprecated. Use moment.locale instead.",Se);a.langData=C("moment.langData is deprecated. Use moment.localeData instead.",Ce);var Ga=Math.abs;function Ct(e,t,a,i){var o=rt(t,a);e._milliseconds+=i*o._milliseconds;e._days+=i*o._days;e._months+=i*o._months;return e._bubble()}function Pt(e){if(0>e){return Math.floor(e)}else{return Math.ceil(e)}}function Tt(e){return 4800*e/146097}function Ot(e){return 146097*e/4800}function At(e){return function(){return this.as(e)}}var qa=At("ms"),Ka=At("s"),Xa=At("m"),Za=At("h"),Ja=At("d"),Qa=At("w"),$a=At("M"),ei=At("Q"),ti=At("y");function Mt(e){return function(){return this.isValid()?this._data[e]:NaN}}var ai=Mt("milliseconds"),ii=Mt("seconds"),oi=Mt("minutes"),ni=Mt("hours"),ri=Mt("days"),li=Mt("months"),si=Mt("years");var di=Math.round,ci={ss:44,s:45,m:45,h:22,d:26,M:11};function It(e,t,a,i,o){return o.relativeTime(t||1,!!a,e,i)}function Lt(e,t,i){var o=rt(e).abs(),n=di(o.as("s")),r=di(o.as("m")),l=di(o.as("h")),s=di(o.as("d")),d=di(o.as("M")),c=di(o.as("y")),h=n<=ci.ss&&["s",n]||n=r&&["m"]||r=l&&["h"]||l=s&&["d"]||s=d&&["M"]||d=c&&["y"]||["yy",c];h[2]=t;h[3]=0<+e;h[4]=i;return It.apply(null,h)}function Ft(e){if(e===void 0){return di}if("function"==typeof e){di=e;return!0}return!1}var hi=Math.abs;function Rt(e){return(0e)||+e}function Et(){if(!this.isValid()){return this.localeData().invalidDate()}var e=hi(this._milliseconds)/1e3,t=hi(this._days),a=hi(this._months),i,o,n;i=v(e/60);o=v(i/60);e%=60;i%=60;n=v(a/12);a%=12;var r=n,l=a,d=t,c=o,h=i,g=e?e.toFixed(3).replace(/\.?0+$/,""):"",s=this.asSeconds();if(!s){return"P0D"}var m=0>s?"-":"",u=Rt(this._months)!==Rt(s)?"-":"",p=Rt(this._days)!==Rt(s)?"-":"",f=Rt(this._milliseconds)!==Rt(s)?"-":"";return m+"P"+(r?u+r+"Y":"")+(l?u+l+"M":"")+(d?p+d+"D":"")+(c||h||g?"T":"")+(c?f+c+"H":"")+(h?f+h+"M":"")+(g?f+g+"S":"")}var gi=Qe.prototype;gi.isValid=function(){return this._isValid};gi.abs=function(){var e=this._data;this._milliseconds=Ga(this._milliseconds);this._days=Ga(this._days);this._months=Ga(this._months);e.milliseconds=Ga(e.milliseconds);e.seconds=Ga(e.seconds);e.minutes=Ga(e.minutes);e.hours=Ga(e.hours);e.months=Ga(e.months);e.years=Ga(e.years);return this};gi.add=function(e,t){return Ct(this,e,t,1)};gi.subtract=function(e,t){return Ct(this,e,t,-1)};gi.as=function(e){if(!this.isValid()){return NaN}var t,a,i=this._milliseconds;e=I(e);if("month"===e||"quarter"===e||"year"===e){t=this._days+i/864e5;a=this._months+Tt(t);switch(e){case"month":return a;case"quarter":return a/3;case"year":return a/12;}}else{t=this._days+Math.round(Ot(this._months));switch(e){case"week":return t/7+i/6048e5;case"day":return t+i/864e5;case"hour":return 24*t+i/36e5;case"minute":return 1440*t+i/6e4;case"second":return 86400*t+i/1e3;case"millisecond":return Math.floor(864e5*t)+i;default:throw new Error("Unknown unit "+e);}}};gi.asMilliseconds=qa;gi.asSeconds=Ka;gi.asMinutes=Xa;gi.asHours=Za;gi.asDays=Ja;gi.asWeeks=Qa;gi.asMonths=$a;gi.asQuarters=ei;gi.asYears=ti;gi.valueOf=function(){if(!this.isValid()){return NaN}return this._milliseconds+864e5*this._days+2592e6*(this._months%12)+31536e6*w(this._months/12)};gi._bubble=function(){var e=this._milliseconds,t=this._days,a=this._months,i=this._data,o,n,r,l,s;if(!(0<=e&&0<=t&&0<=a||0>=e&&0>=t&&0>=a)){e+=864e5*Pt(Ot(a)+t);t=0;a=0}i.milliseconds=e%1e3;o=v(e/1e3);i.seconds=o%60;n=v(o/60);i.minutes=n%60;r=v(n/60);i.hours=r%24;t+=v(r/24);s=v(Tt(t));a+=s;t-=Pt(Ot(s));l=v(a/12);a%=12;i.days=t;i.months=a;i.years=l;return this};gi.clone=function(){return rt(this)};gi.get=function(e){e=I(e);return this.isValid()?this[e+"s"]():NaN};gi.milliseconds=ai;gi.seconds=ii;gi.minutes=oi;gi.hours=ni;gi.days=ri;gi.weeks=function(){return v(this.days()/7)};gi.months=li;gi.years=si;gi.humanize=function(e){if(!this.isValid()){return this.localeData().invalidDate()}var t=this.localeData(),a=Lt(this,!e,t);if(e){a=t.pastFuture(+this,a)}return t.postformat(a)};gi.toISOString=Et;gi.toString=Et;gi.toJSON=Et;gi.locale=mt;gi.localeData=ut;gi.toIsoString=C("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Et);gi.lang=Ra;Y("X",0,0,"unix");Y("x",0,0,"valueOf");B("x",ra);B("X",/[+-]?\d+(\.\d{1,3})?/);G("X",function(e,t,a){a._d=new Date(1e3*parseFloat(e,10))});G("x",function(e,t,a){a._d=new Date(w(e))});a.version="2.24.0";(function(e){Yt=e})(Xe);a.fn=Ua;a.min=function(){var e=[].slice.call(arguments,0);return Ze("isBefore",e)};a.max=function(){var e=[].slice.call(arguments,0);return Ze("isAfter",e)};a.now=function now(){return Date.now?Date.now():+new Date};a.utc=u;a.unix=function(e){return Xe(1e3*e)};a.months=function(e,t){return St(e,t,"months")};a.isDate=d;a.locale=Se;a.invalid=b;a.duration=rt;a.isMoment=k;a.weekdays=function(e,t,a){return Dt(e,t,a,"weekdays")};a.parseZone=function(){return Xe.apply(null,arguments).parseZone()};a.localeData=Ce;a.isDuration=$e;a.monthsShort=function(e,t){return St(e,t,"monthsShort")};a.weekdaysMin=function(e,t,a){return Dt(e,t,a,"weekdaysMin")};a.defineLocale=De;a.updateLocale=function(e,t){if(null!=t){var a,i,o=wa;i=we(e);if(null!=i){o=i._config}t=O(o,t);a=new A(t);a.parentLocale=Sa[e];Sa[e]=a;Se(e)}else{if(null!=Sa[e]){if(null!=Sa[e].parentLocale){Sa[e]=Sa[e].parentLocale}else if(null!=Sa[e]){delete Sa[e]}}}return Sa[e]};a.locales=Pe;a.weekdaysShort=function(e,t,a){return Dt(e,t,a,"weekdaysShort")};a.normalizeUnits=I;a.relativeTimeRounding=Ft;a.relativeTimeThreshold=function(e,t){if(ci[e]===void 0){return!1}if(t===void 0){return ci[e]}ci[e]=t;if("s"===e){ci.ss=t-1}return!0};a.calendarFormat=function(e,t){var a=e.diff(t,"days",!0);return-6>a?"sameElse":-1>a?"lastWeek":0>a?"lastDay":1>a?"sameDay":2>a?"nextDay":7>a?"nextWeek":"sameElse"};a.prototype=Ua;a.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"};return a})}),xo={datetime:"MMM D, YYYY, h:mm:ss a",millisecond:"h:mm:ss.SSS a",second:"h:mm:ss a",minute:"h:mm a",hour:"hA",day:"MMM D",week:"ll",month:"MMM YYYY",quarter:"[Q]Q - YYYY",year:"YYYY"};zi._date.override("function"==typeof bo?{_id:"moment",formats:function formats(){return xo},parse:function(e,t){if("string"==typeof e&&"string"==typeof t){e=bo(e,t)}else if(!(e instanceof bo)){e=bo(e)}return e.isValid()?e.valueOf():null},format:function format(e,t){return bo(e).format(t)},add:function add(e,t,a){return bo(e).add(t,a).valueOf()},diff:function diff(e,t,a){return bo(e).diff(bo(t),a)},startOf:function startOf(e,t,a){e=bo(e);if("isoWeek"===t){return e.isoWeekday(a).valueOf()}return e.startOf(t).valueOf()},endOf:function endOf(e,t){return bo(e).endOf(t).valueOf()},_create:function _create(e){return bo(e)}}:{});_a._set("global",{plugins:{filler:{propagate:!0}}});var _o={dataset:function dataset(e){var t=e.fill,a=e.chart,i=a.getDatasetMeta(t),o=i&&a.isDatasetVisible(t),n=o&&i.dataset._children||[],r=n.length||0;return!r?null:function(e,t){return tn||n>=a){return!1}return n}switch(o){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return o;default:return!1;}}function Tt(e){var t=e.el._model||{},a=e.el._scale||{},i=e.fill,o=null,n;if(isFinite(i)){return null}if("start"===i){o=t.scaleBottom===void 0?a.bottom:t.scaleBottom}else if("end"===i){o=t.scaleTop===void 0?a.top:t.scaleTop}else if(t.scaleZero!==void 0){o=t.scaleZero}else if(a.getBasePixel){o=a.getBasePixel()}if(o!==void 0&&null!==o){if(o.x!==void 0&&o.y!==void 0){return o}if(Da.isFinite(o)){n=a.isHorizontal();return{x:n?o:null,y:n?null:o}}}return null}function Ot(e){var t=e.el._scale,a=t.options,o=t.chart.data.labels.length,n=e.fill,r=[],l,s,d,c,h;if(!o){return null}l=a.ticks.reverse?t.max:t.min;s=a.ticks.reverse?t.min:t.max;d=t.getPointPositionForValue(0,l);for(c=0;ct?t:e.boxWidth}var So=Pa.extend({initialize:function initialize(e){var t=this;Da.extend(t,e);t.legendHitBoxes=[];t._hoveredItem=null;t.doughnutMode=!1},beforeUpdate:vo,update:function update(e,t,a){var i=this;i.beforeUpdate();i.maxWidth=e;i.maxHeight=t;i.margins=a;i.beforeSetDimensions();i.setDimensions();i.afterSetDimensions();i.beforeBuildLabels();i.buildLabels();i.afterBuildLabels();i.beforeFit();i.fit();i.afterFit();i.afterUpdate();return i.minSize},afterUpdate:vo,beforeSetDimensions:vo,setDimensions:function setDimensions(){var e=this;if(e.isHorizontal()){e.width=e.maxWidth;e.left=0;e.right=e.width}else{e.height=e.maxHeight;e.top=0;e.bottom=e.height}e.paddingLeft=0;e.paddingTop=0;e.paddingRight=0;e.paddingBottom=0;e.minSize={width:0,height:0}},afterSetDimensions:vo,beforeBuildLabels:vo,buildLabels:function buildLabels(){var e=this,t=e.options.labels||{},a=Da.callback(t.generateLabels,[e.chart],e)||[];if(t.filter){a=a.filter(function(a){return t.filter(a,e.chart.data)})}if(e.options.reverse){a.reverse()}e.legendItems=a},afterBuildLabels:vo,beforeFit:vo,fit:function fit(){var e=this,t=e.options,a=t.labels,i=t.display,o=e.ctx,n=Da.options._parseFont(a),r=n.size,l=e.legendHitBoxes=[],s=e.minSize,d=e.isHorizontal();if(d){s.width=e.maxWidth;s.height=i?10:0}else{s.width=i?10:0;s.height=e.maxHeight}if(!i){e.width=s.width=e.height=s.height=0;return}o.font=n.string;if(d){var c=e.lineWidths=[0],h=0;o.textAlign="left";o.textBaseline="middle";Da.each(e.legendItems,function(e,t){var i=Et(a,r),n=i+r/2+o.measureText(e.text).width;if(0===t||c[c.length-1]+n+2*a.padding>s.width){h+=r+a.padding;c[c.length-(0s.height){p+=f+a.padding;m.push(f);u.push(y);f=0;y=0}f=Math.max(f,n);y+=r+g;l[t]={left:0,top:0,width:n,height:r}});p+=f;m.push(f);u.push(y);s.width+=p}e.width=s.width;e.height=s.height},afterFit:vo,isHorizontal:function isHorizontal(){return"top"===this.options.position||"bottom"===this.options.position},draw:function draw(){var e=this,t=e.options,a=t.labels,i=_a.global,o=i.defaultColor,n=i.elements.line,r=e.height,l=e.columnHeights,s=e.width,d=e.lineWidths;if(!t.display){return}var c=ko(t.rtl,e.left,e.minSize.width),h=e.ctx,g=wo(a.fontColor,i.defaultFontColor),m=Da.options._parseFont(a),u=m.size,p;h.textAlign=c.textAlign("left");h.textBaseline="middle";h.lineWidth=.5;h.strokeStyle=g;h.fillStyle=g;h.font=m.string;var f=Et(a,u),b=e.legendHitBoxes,_=function(e,t,i){if(isNaN(f)||0>=f){return}h.save();var r=wo(i.lineWidth,n.borderWidth);h.fillStyle=wo(i.fillStyle,o);h.lineCap=wo(i.lineCap,n.borderCapStyle);h.lineDashOffset=wo(i.lineDashOffset,n.borderDashOffset);h.lineJoin=wo(i.lineJoin,n.borderJoinStyle);h.lineWidth=r;h.strokeStyle=wo(i.strokeStyle,o);if(h.setLineDash){h.setLineDash(wo(i.lineDash,n.borderDash))}if(a&&a.usePointStyle){var l=f*Math.SQRT2/2,s=c.xPlus(e,f/2);Da.canvas.drawPoint(h,i.pointStyle,l,s,t+u/2,i.rotation)}else{h.fillRect(c.leftForLtr(e,f),t,f,u);if(0!==r){h.strokeRect(c.leftForLtr(e,f),t,f,u)}}h.restore()},k=function(e,t,a,i){var o=u/2,n=c.xPlus(e,f+o),r=t+o;h.fillText(a.text,n,r);if(a.hidden){h.beginPath();h.lineWidth=2;h.moveTo(n,r);h.lineTo(c.xPlus(n,i),r);h.stroke()}},v=function(e,i){switch(t.align){case"start":return a.padding;case"end":return e-i;default:return(e-i+a.padding)/2;}},w=e.isHorizontal();if(w){p={x:e.left+v(s,d[0]),y:e.top+a.padding,line:0}}else{p={x:e.left+a.padding,y:e.top+v(r,l[0]),line:0}}Da.rtl.overrideTextDirection(e.ctx,t.textDirection);var S=u+a.padding;Da.each(e.legendItems,function(t,o){var i=h.measureText(t.text).width,n=f+u/2+i,g=p.x,m=p.y;c.setWidth(e.minSize.width);if(w){if(0e.left+e.minSize.width){m=p.y+=S;p.line++;g=p.x=e.left+v(s,d[p.line])}}else if(0e.top+e.minSize.height){g=p.x=g+e.columnWidths[p.line]+a.padding;p.line++;m=p.y=e.top+v(r,l[p.line])}var D=c.x(g);_(D,m,t);b[o].left=c.leftForLtr(D,b[o].width);b[o].top=m;k(D,m,t,i);if(w){p.x+=n+a.padding}else{p.y+=S}});Da.rtl.restoreTextDirection(e.ctx,t.textDirection)},_getLegendItemAt:function _getLegendItemAt(e,t){var a=this,o,n,r;if(e>=a.left&&e<=a.right&&t>=a.top&&t<=a.bottom){r=a.legendHitBoxes;for(o=0;o=n.left&&e<=n.left+n.width&&t>=n.top&&t<=n.top+n.height){return a.legendItems[o]}}}return null},handleEvent:function handleEvent(t){var e=this,a=e.options,i="mouseup"===t.type?"click":t.type,o;if("mousemove"===i){if(!a.onHover&&!a.onLeave){return}}else if("click"===i){if(!a.onClick){return}}else{return}o=e._getLegendItemAt(t.x,t.y);if("click"===i){if(o&&a.onClick){a.onClick.call(e,t.native,o)}}else{if(a.onLeave&&o!==e._hoveredItem){if(e._hoveredItem){a.onLeave.call(e,t.native,e._hoveredItem)}e._hoveredItem=o}if(a.onHover&&o){a.onHover.call(e,t.native,o)}}}});function Yt(e,t){var a=new So({ctx:e.ctx,options:t,chart:e});pi.configure(e,a,t);pi.addBox(e,a);e.legend=a}var Do=Da.noop;_a._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,padding:10,position:"top",text:"",weight:2e3}});var Co=Pa.extend({initialize:function initialize(e){var t=this;Da.extend(t,e);t.legendHitBoxes=[]},beforeUpdate:Do,update:function update(e,t,a){var i=this;i.beforeUpdate();i.maxWidth=e;i.maxHeight=t;i.margins=a;i.beforeSetDimensions();i.setDimensions();i.afterSetDimensions();i.beforeBuildLabels();i.buildLabels();i.afterBuildLabels();i.beforeFit();i.fit();i.afterFit();i.afterUpdate();return i.minSize},afterUpdate:Do,beforeSetDimensions:Do,setDimensions:function setDimensions(){var e=this;if(e.isHorizontal()){e.width=e.maxWidth;e.left=0;e.right=e.width}else{e.height=e.maxHeight;e.top=0;e.bottom=e.height}e.paddingLeft=0;e.paddingTop=0;e.paddingRight=0;e.paddingBottom=0;e.minSize={width:0,height:0}},afterSetDimensions:Do,beforeBuildLabels:Do,buildLabels:Do,afterBuildLabels:Do,beforeFit:Do,fit:function fit(){var e=this,t=e.options,a=e.minSize={},i=e.isHorizontal(),o,n;if(!t.display){e.width=a.width=e.height=a.height=0;return}o=Da.isArray(t.text)?t.text.length:1;n=o*Da.options._parseFont(t).lineHeight+2*t.padding;e.width=a.width=i?e.maxWidth:n;e.height=a.height=i?n:e.maxHeight},afterFit:Do,isHorizontal:function isHorizontal(){var e=this.options.position;return"top"===e||"bottom"===e},draw:function draw(){var e=this,t=e.ctx,a=e.options;if(!a.display){return}var o=Da.options._parseFont(a),n=o.lineHeight,r=n/2+a.padding,l=0,s=e.top,d=e.left,c=e.bottom,h=e.right,g,m,u;t.fillStyle=Da.valueOrDefault(a.fontColor,_a.global.defaultFontColor);t.font=o.string;if(e.isHorizontal()){m=d+(h-d)/2;u=s+r;g=h-d}else{m="left"===a.position?d+r:h-r;u=s+(c-s)/2;g=c-s;l=Math.PI*("left"===a.position?-.5:.5)}t.save();t.translate(m,u);t.rotate(l);t.textAlign="center";t.textBaseline="middle";var p=a.text;if(Da.isArray(p)){for(var f=0,b=0;b=e};Da.max=function(e){return e.reduce(function(e,t){if(!isNaN(t)){return Math.max(e,t)}return e},Number.NEGATIVE_INFINITY)};Da.min=function(e){return e.reduce(function(e,t){if(!isNaN(t)){return Math.min(e,t)}return e},Number.POSITIVE_INFINITY)};Da.sign=Math.sign?function(e){return Math.sign(e)}:function(e){e=+e;if(0===e||isNaN(e)){return e}return 0=g){continue}h=3/Math.sqrt(g);r.mK=d*h*r.deltaK;l.mK=c*h*r.deltaK}var m;for(o=0;o=e.length-1?e[0]:e[t+1]}return t>=e.length-1?e[e.length-1]:e[t+1]};Da.previousItem=function(e,t,a){if(a){return 0>=t?e[e.length-1]:e[t-1]}return 0>=t?e[0]:e[t-1]};Da.niceNum=function(e,t){var a=Math.floor(Da.log10(e)),i=e/Math.pow(10,a),o;if(t){if(1.5>i){o=1}else if(3>i){o=2}else if(7>i){o=5}else{o=10}}else if(1>=i){o=1}else if(2>=i){o=2}else if(5>=i){o=5}else{o=10}return o*Math.pow(10,a)};Da.requestAnimFrame=function(){if("undefined"==typeof window){return function(e){e()}}return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(e){return window.setTimeout(e,1e3/60)}}();Da.getRelativePosition=function(t,a){var i,o,n=t.originalEvent||t,e=t.target||t.srcElement,r=e.getBoundingClientRect(),l=n.touches;if(l&&0a.length){for(d=0;di){i=n}return i};Da.numberOfLabelLines=function(e){var t=1;Da.each(e,function(e){if(Da.isArray(e)){if(e.length>t){t=e.length}}});return t};Da.color=!ha?function(e){console.error("Color.js not found!");return e}:function(e){if(e instanceof CanvasGradient){e=_a.global.defaultColor}return ha(e)};Da.getHoverColor=function(e){return e instanceof CanvasPattern||e instanceof CanvasGradient?e:Da.color(e).saturate(.5).darken(.1).rgbString()}})();Wi._adapters=zi;Wi.Animation=Oa;Wi.animationService=Aa;Wi.controllers=gi;Wi.DatasetController=Fa;Wi.defaults=_a;Wi.Element=Pa;Wi.elements=ja;Wi.Interaction=mi;Wi.layouts=pi;Wi.platform=Ti;Wi.plugins=Oi;Wi.Scale=Gi;Wi.scaleService=Ai;Wi.Ticks=Vi;Wi.Tooltip=Ri;Wi.helpers.each({category:Ki,linear:$i,logarithmic:io,radialLinear:so,time:yo},function(e,t){Wi.scaleService.registerScaleType(t,e,e._defaults)});for(var To in Po){if(Po.hasOwnProperty(To)){Wi.plugins.register(Po[To])}}Wi.platform.initialize();if("undefined"!=typeof window){window.Chart=Wi}Wi.Chart=Wi;Wi.Legend=Po.legend._element;Wi.Title=Po.title._element;Wi.pluginService=Wi.plugins;Wi.PluginBase=Wi.Element.extend({});Wi.canvasHelpers=Wi.helpers.canvas;Wi.layoutService=Wi.layouts;Wi.LinearScaleBase=Ji;Wi.helpers.each(["Bar","Bubble","Doughnut","Line","PolarArea","Radar","Scatter"],function(e){Wi[e]=function(t,a){return new Wi(t,Wi.helpers.merge(a||{},{type:e.charAt(0).toLowerCase()+e.slice(1)}))}});return Wi}); //# sourceMappingURL=chartjs-lazy.min.js.map diff --git a/lib/amd/build/chartjs-lazy.min.js.map b/lib/amd/build/chartjs-lazy.min.js.map index 3a18a5e91bd..a0447e0648c 100644 --- a/lib/amd/build/chartjs-lazy.min.js.map +++ b/lib/amd/build/chartjs-lazy.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/chartjs-lazy.js"],"names":["f","exports","module","define","amd","g","window","global","self","Chart","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length","colorNames","getRgba","getHsla","getRgb","string","rgba","slice","getHsl","hsla","getHwb","getAlpha","vals","hexString","rgb","hexDouble","rgbString","alpha","rgbaString","percentString","percentaString","Math","round","b","hslString","hslaString","hwbString","hwb","keyword","reverseNames","match","parseInt","parseFloat","scale","h","isNaN","w","num","min","max","str","toString","toUpperCase","name","convert","Color","obj","valid","values","hsl","hsv","cmyk","setValues","red","lightness","v","value","whiteness","c","cyan","prototype","isValid","setSpace","arguments","rgbArray","hslArray","hsvArray","hwbArray","concat","cmykArray","rgbaArray","hslaArray","val","setChannel","green","blue","hue","saturation","saturationv","blackness","magenta","yellow","black","rgbNumber","luminosity","lum","chan","pow","contrast","color2","lum1","lum2","level","contrastRatio","dark","yiq","light","negate","lighten","ratio","darken","saturate","desaturate","whiten","blacken","greyscale","clearer","opaquer","rotate","degrees","mix","mixinColor","weight","color1","p","w1","w2","toJSON","clone","result","source","target","type","prop","hasOwnProperty","console","error","spaces","maxes","getValues","space","charAt","chans","capped","sname","args","Array","index","svalues","rgb2hsl","rgb2hsv","rgb2hwb","rgb2cmyk","rgb2keyword","rgb2xyz","rgb2lab","rgb2lch","lab2lch","hsl2rgb","hsl2hsv","sv","hsl2hwb","hsl2cmyk","hsl2keyword","hsv2rgb","hsv2hsl","sl","hsv2hwb","hsv2cmyk","hsv2keyword","hwb2rgb","hwb2hsl","hwb2hsv","hwb2cmyk","hwb2keyword","cmyk2rgb","cmyk2hsl","cmyk2hsv","cmyk2hwb","cmyk2keyword","keyword2rgb","keyword2hsl","keyword2hsv","keyword2hwb","keyword2cmyk","keyword2lab","keyword2xyz","xyz2rgb","xyz2lab","xyz2lch","lab2xyz","lab2rgb","lch2lab","lch2xyz","lch2rgb","delta","m","y","k","reverseKeywords","JSON","stringify","x","z","xyz","t1","t2","t3","hi","floor","q","wh","bl","lab","y2","hr","atan2","PI","sqrt","lch","cos","sin","cssKeywords","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellowgreen","key","conversions","Converter","func","arg","pair","exec","from","to","convs","routeSpace","fspace","forEach","factory","moment","hookCallback","hooks","apply","isArray","input","Object","isObject","isObjectEmpty","isUndefined","isNumber","isDate","Date","map","arr","fn","res","push","hasOwnProp","extend","valueOf","createUTC","format","locale","strict","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","meridiem","rfc2822","weekdayMismatch","getParsingFlags","_pf","some","fun","len","some$1","_isValid","flags","parsedParts","isNowValid","_d","getTime","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","NaN","momentProperties","copyConfig","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","updateInProgress","Moment","config","updateOffset","isMoment","absFloor","number","ceil","toInt","argumentForCoercion","coercedNumber","isFinite","compareArrays","array1","array2","dontConvert","lengthDiff","abs","diffs","warn","msg","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","join","stack","deprecations","deprecateSimple","isFunction","Function","mergeConfigs","parentConfig","childConfig","Locale","set","keys","keys$1","aliases","addUnitAlias","unit","shorthand","lowerCase","toLowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedInput","normalizedProp","priorities","addUnitPriority","priority","getPrioritizedUnits","unitsObj","sort","makeGetSet","keepTime","set$1","get","mom","stringSet","prioritized","zeroFill","targetLength","forceSign","absNumber","zerosToFill","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","callback","localeData","removeFormattingTokens","replace","makeFormatFunction","array","output","formatMoment","invalidDate","expandFormat","replaceLongDateFormatTokens","longDateFormat","lastIndex","test","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchSigned","matchShortOffset","matchWord","regexes","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","RegExp","unescapeFormat","regexEscape","matched","p1","p2","p3","p4","tokens","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","_a","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","indexOf","indexOf$1","daysInMonth","year","month","UTC","getUTCDate","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","MONTHS_IN_FORMAT","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","setMonth","dayOfMonth","date","getSetMonth","computeMonthsParse","cmpLenRev","shortPieces","longPieces","mixedPieces","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","parseTwoDigitYear","daysInYear","isLeapYear","getSetYear","createDate","d","M","ms","getFullYear","setFullYear","createUTCDate","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","fwdlw","getUTCDay","dayOfYearFromWeeks","week","weekday","weekOffset","dayOfYear","resYear","resDayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","parseWeekday","parseIsoWeekday","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","day","computeWeekdaysParse","minPieces","minp","shortp","longp","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","hours","minutes","seconds","lowercase","matchMeridiem","_meridiemParse","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","getSetHour","baseConfig","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","LTS","LT","L","LL","LLL","LLLL","dayOfMonthOrdinalParse","relativeTime","future","past","ss","mm","hh","dd","MM","yy","meridiemParse","locales","localeFamilies","globalLocale","normalizeLocale","chooseLocale","names","j","next","split","loadLocale","oldLocale","_abbr","getSetGlobalLocale","data","getLocale","defineLocale","abbr","_config","parentLocale","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","isoDates","isoTimes","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","configFromStringAndFormat","configFromRFC2822","dayFormat","timezones","timezone","timezoneIndex","momentDate","momentDay","getDay","splice","configFromString","createFromInputFallback","_useUTC","defaults","currentDateArray","nowValue","now","getUTCMonth","getMonth","getDate","configFromArray","currentDate","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","setUTCMinutes","getUTCMinutes","weekYear","temp","weekdayOverflow","GG","W","E","createLocal","_week","curWeek","gg","ISO_8601","RFC_2822","parsedInput","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","hour","isPm","meridiemHour","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","score","configFromObject","minute","second","millisecond","createFromConfig","prepareConfig","add","preparse","configFromInput","isUTC","prototypeMin","other","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","Duration","duration","years","quarters","quarter","weeks","days","milliseconds","_milliseconds","_days","_months","_data","_bubble","isDuration","absRound","offset","separator","utcOffset","sign","offsetFromString","matcher","matches","chunk","parts","cloneWithOffset","model","diff","setTime","local","getDateOffset","getTimezoneOffset","isUtc","createDuration","ret","diffRes","parseIso","momentsDifference","invalid","inp","positiveMomentsDifference","base","isAfter","isBefore","createAdder","direction","period","dur","tmp","addSubtract","isAdding","subtract","monthDiff","wholeMonthDiff","anchor","anchor2","adjust","defaultFormat","defaultFormatUtc","newLocaleData","lang","isoWeekYear","addWeekYearFormatToken","getter","getSetWeekYearHelper","weeksTarget","setWeekAll","dayOfYearData","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetSecond","parseMs","getSetMillisecond","proto","time","formats","sod","startOf","calendarFormat","asFloat","that","zoneDelta","endOf","inputString","postformat","withoutSuffix","humanize","fromNow","toNow","invalidAt","localInput","isBetween","inclusivity","isSame","inputMs","isSameOrAfter","isSameOrBefore","parsingFlags","isoWeekday","toArray","toObject","toDate","toISOString","inspect","zone","isLocal","prefix","suffix","unix","creationData","isoWeek","isoWeeks","weekInfo","isoWeeksInYear","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","parseZone","tZone","hasAlignedHourOffset","isDST","isUtcOffset","zoneAbbr","zoneName","dates","isDSTShifted","_isDSTShifted","preParsePostFormat","proto$1","_calendar","_longDateFormat","formatUpper","_invalidDate","_ordinal","isFuture","_relativeTime","pastFuture","isFormat","_monthsShort","_monthsParseExact","firstDayOfYear","firstDayOfWeek","_weekdays","_weekdaysMin","_weekdaysShort","_weekdaysParseExact","_fullWeekdaysParse","isLower","get$1","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","alias","as","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asYears","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","abs$1","toISOString$1","Y","D","total","proto$2","monthsFromDays","withSuffix","toIsoString","version","updateLocale","relativeTimeRounding","relativeTimeThreshold","threshold","limit","myMoment","helpers","Element","elements","Interaction","platform","plugins","register","initialize","canvasHelpers","canvas","Bar","context","Bubble","Doughnut","Line","PolarArea","Radar","Scatter","_set","hover","mode","scales","xAxes","categoryPercentage","barPercentage","gridLines","offsetGridLines","yAxes","axis","position","rectangle","borderSkipped","tooltips","callbacks","title","item","yLabel","labels","label","datasetLabel","datasets","datasetIndex","xLabel","controllers","bar","DatasetController","dataElementType","Rectangle","me","meta","getMeta","getDataset","update","reset","rects","ilen","_ruler","getRuler","updateElement","chart","dataset","custom","rectangleOptions","options","_xScale","getScaleForId","xAxisID","_yScale","yAxisID","_datasetIndex","_index","_model","backgroundColor","valueAtIndexOrDefault","borderColor","borderWidth","updateElementGeometry","pivot","vscale","getValueScale","getBasePixel","horizontal","isHorizontal","ruler","vpixels","calculateBarValuePixels","ipixels","calculateBarIndexPixels","head","center","height","size","width","getValueScaleId","getIndexScaleId","getIndexScale","getStackCount","last","stacked","stacks","getDatasetMeta","isDatasetVisible","getStackIndex","stackCount","pixels","start","left","top","end","getPixelForValue","getRightValue","imeta","ivalue","controller","id","stackIndex","leftSampleSize","rightSampleSize","leftCategorySize","rightCategorySize","fullBarSize","valueOrDefault","barThickness","maxBarThickness","draw","clipArea","ctx","chartArea","unclipArea","setHoverStyle","hoverBackgroundColor","getHoverColor","hoverBorderColor","hoverBorderWidth","removeHoverStyle","rectangleElementOptions","horizontalBar","dataPoint","bubble","Point","points","each","point","xScale","yScale","_resolveElementOptions","dsIndex","getPixelForDecimal","_options","hitRadius","pointStyle","radius","skip","hoverRadius","resolve","dataIndex","animation","animateRotate","animateScale","legendCallback","text","legend","generateLabels","ds","arc","arcOpts","fill","stroke","bw","fillStyle","strokeStyle","lineWidth","hidden","onClick","legendItem","cutoutPercentage","rotation","circumference","tooltipItem","dataLabel","doughnut","pie","Arc","linkScales","noop","getRingIndex","ringIndex","opts","availableWidth","right","availableHeight","bottom","minSize","startAngle","endAngle","contains0","contains90","contains180","contains270","cutout","getMaxBorderWidth","outerRadius","innerRadius","radiusLength","getVisibleDatasetCount","offsetX","offsetY","calculateTotal","animationOpts","centerX","centerY","calculateCircumference","element","arcs","hoverWidth","_chart","showLines","spanGaps","lineEnabled","showLine","line","datasetElementType","lineElementOptions","tension","lineTension","_scale","_children","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","steppedLine","stepped","cubicInterpolationMode","updateBezierControlPoints","getPointBackgroundColor","pointBackgroundColor","getPointBorderColor","pointBorderColor","getPointBorderWidth","pointBorderWidth","pointOptions","pointRadius","pointHitRadius","calculatePointY","sumPos","sumNeg","dsMeta","stackedRightValue","rightValue","area","controlPoints","filter","pt","capControlPoint","splineCurveMonotone","splineCurve","previousItem","nextItem","controlPointPreviousX","previous","controlPointPreviousY","controlPointNextX","controlPointNextY","capBezierPoints","pointHoverRadius","pointHoverBackgroundColor","pointHoverBorderColor","pointHoverBorderWidth","angleLines","display","circular","pointLabels","ticks","beginAtZero","polarArea","count","countVisibleElements","xCenter","yCenter","visibleCount","datasetStartAngle","distance","getDistanceFromCenterForValue","resetRadius","radar","_loop","pointElementOptions","pointPosition","getPointPositionForValue","scatter","easing","onProgress","onComplete","Animation","currentStep","numSteps","render","onAnimationProgress","onAnimationComplete","animationService","frameDuration","animations","dropFrames","request","addAnimation","lazy","animating","requestAnimationFrame","cancelAnimation","findIndex","requestAnimFrame","startDigest","startTime","framesToDrop","advance","endTime","defineProperty","types","instances","initConfig","configMerge","updateConfig","newOptions","scaleOptions","tooltip","positionIsHorizontal","construct","acquireContext","uid","aspectRatio","_bufferedRender","notify","retinaScale","devicePixelRatio","bindEvents","responsive","resize","ensureScalesHaveIDs","buildScales","initToolTip","clear","stop","silent","maintainAspectRatio","newWidth","getMaximumWidth","newHeight","getMaximumHeight","style","newSize","onResize","responsiveAnimationDuration","scalesOptions","xAxisOptions","yAxisOptions","items","dtype","dposition","isDefault","scaleType","scaleClass","scaleService","getScaleConstructor","mergeTicksOptions","addScalesToLayout","buildOrUpdateControllers","newControllers","destroyDatasetMeta","updateIndex","ControllerClass","resetElements","buildOrUpdateElements","updateLayout","updateDatasets","_bufferedRequest","layoutService","updateDataset","animationOptions","animationObject","easingFunction","effects","stepDecimal","easingValue","isNullOrUndef","transition","boxes","box","drawDatasets","drawDataset","getElementAtEvent","modes","single","getElementsAtEvent","intersect","getElementsAtXAxis","getElementsAtEventForMode","method","getDatasetAtEvent","_meta","generateLegend","destroy","unbindEvents","releaseContext","toBase64Image","toDataURL","Tooltip","_chartInstance","listeners","_listeners","listener","eventHandler","events","addEventListener","removeEventListener","updateHoverStyle","enabled","changed","handleEvent","bufferedRequest","animationDuration","hoverOptions","lastActive","active","onHover","native","arrayEquals","Controller","arrayEvents","listenArrayEvents","_chartjs","configurable","enumerable","object","unlistenArrayEvents","stub","addElements","scaleID","createMetaDataset","createMetaData","metaData","addElementAndReset","resyncElements","elementOpts","numMeta","numData","insertElements","onDataPush","onDataPop","pop","onDataShift","onDataSplice","onDataUnshift","inherits","scope","merge","color","interpolate","view","ease","actual","origin","c0","c1","configuration","_view","_start","tooltipPosition","hasValue","setFn","merger","tval","sval","scaleMerge","getScaleDefaults","_merger","slen","where","collection","filterCallback","filtered","findNextWhere","arrayToSearch","startIndex","currentItem","findPreviousWhere","extensions","ChartElement","constructor","Surrogate","__super__","almostEquals","epsilon","almostWhole","rounded","reduce","Number","NEGATIVE_INFINITY","POSITIVE_INFINITY","log10","log","LN10","toRadians","toDegrees","radians","getAngleFromPoint","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","angle","distanceBetweenPoints","pt1","pt2","aliasPixel","pixelWidth","firstPoint","middlePoint","afterPoint","current","d01","d12","s01","s12","fa","fb","EPSILON","pointsWithTangents","deltaK","mK","pointsLen","pointBefore","pointCurrent","pointAfter","slopeDeltaX","alphaK","betaK","tauK","squaredMagnitude","deltaX","loop","niceNum","range","exponent","fraction","niceFraction","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","setTimeout","getRelativePosition","evt","mouseX","mouseY","originalEvent","currentTarget","srcElement","boundingRect","getBoundingClientRect","touches","clientX","clientY","paddingLeft","getStyle","paddingTop","paddingRight","paddingBottom","currentDevicePixelRatio","parseMaxStyle","styleValue","node","parentProperty","valueInPixels","parentNode","isConstrainedValue","getConstraintDimension","domNode","maxStyle","percentageProperty","document","defaultView","constrainedNode","getComputedStyle","constrainedContainer","hasCNode","hasCContainer","infinity","getConstraintWidth","getConstraintHeight","container","clientWidth","cw","clientHeight","ch","el","property","currentStyle","getPropertyValue","forceRatio","pixelRatio","fontString","pixelSize","fontStyle","fontFamily","longestText","font","arrayOfThings","cache","gc","garbageCollect","longest","thing","measureText","nestedThing","gcLen","textWidth","numberOfLabelLines","numberOfLines","CanvasGradient","defaultColor","colorValue","CanvasPattern","parseVisibleItems","handler","jlen","getIntersectItems","inRange","getNearestItems","distanceMetric","minDistance","nearestItems","getCenterPoint","getDistanceMetricForAxis","useX","useY","deltaY","indexMode","nearest","sizeA","getArea","sizeB","intersectsItem","inXRange","inYRange","defaultFontColor","defaultFontFamily","defaultFontSize","defaultFontStyle","layout","padding","filterByPosition","sortByWeight","reverse","_tmpIndex_","v0","v1","addBox","fullWidth","removeBox","layoutItem","configure","props","layoutOptions","toPadding","leftPadding","rightPadding","topPadding","bottomPadding","leftBoxes","rightBoxes","topBoxes","bottomBoxes","chartAreaBoxes","chartWidth","chartHeight","chartAreaHeight","verticalBoxWidth","horizontalBoxHeight","maxChartAreaWidth","maxChartAreaHeight","minBoxSizes","getMinimumBoxSize","maxHorizontalLeftPadding","maxHorizontalRightPadding","maxVerticalTopPadding","maxVerticalBottomPadding","horizontalBox","getPadding","boxPadding","verticalBox","totalLeftBoxesWidth","totalRightBoxesWidth","totalTopBoxesHeight","totalBottomBoxesHeight","fitBox","minBoxSize","minBox","scaleMargin","finalFitVerticalBox","leftPaddingAddition","topPaddingAddition","newMaxChartAreaHeight","newMaxChartAreaWidth","placeBox","_plugins","_cacheId","plugin","unregister","idx","getAll","hook","descriptors","descriptor","params","pluginService","PluginBase","Ticks","drawBorder","drawOnChartArea","drawTicks","tickMarkLength","zeroLineWidth","zeroLineColor","zeroLineBorderDash","zeroLineBorderDashOffset","scaleLabel","labelString","lineHeight","minRotation","maxRotation","mirror","autoSkip","autoSkipPadding","labelOffset","formatters","minor","major","labelsFromTicks","getLineValue","lineValue","getPixelForTick","computeTextSize","tick","parseFontOptions","globalDefaults","fontSize","family","parseLineHeight","toLineHeight","Scale","getTicks","_ticks","beforeUpdate","maxWidth","maxHeight","margins","longestTextCache","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","beforeBuildTicks","buildTicks","afterBuildTicks","beforeTickToLabelConversion","convertTicksToLabels","afterTickToLabelConversion","beforeCalculateTickRotation","calculateTickRotation","afterCalculateTickRotation","beforeFit","fit","afterFit","afterUpdate","tickOpts","userCallback","tickFont","labelRotation","originalLabelWidth","labelWidth","cosRotation","sinRotation","tickWidth","angleRadians","scaleLabelOpts","gridLineOpts","isFullWidth","scaleLabelLineHeight","scaleLabelPadding","deltaHeight","largestTextWidth","tallestLabelHeightInLines","lineSpace","tickPadding","longestLabelWidth","labelHeight","firstLabelWidth","lastLabelWidth","handleMargins","rawValue","getLabelForIndex","getValueForPixel","innerWidth","pixel","finalVal","innerHeight","decimal","valueOffset","getBaseValue","_autoSkip","skipRatio","optionTicks","tickCount","labelRotationRadians","longestRotatedLabel","shouldSkip","maxTicks","maxTicksLimit","optionMajorTicks","isRotated","tickFontColor","fontColor","majorTickFontColor","majorTickFont","tl","scaleLabelFontColor","scaleLabelFont","itemsToDraw","xTickStart","xTickEnd","yTickStart","yTickEnd","lineColor","zeroLineIndex","tx1","ty1","tx2","ty2","x1","y1","x2","labelX","labelY","textAlign","textBaseline","labelYOffset","xLineValue","isLeft","labelXOffset","yLineValue","glWidth","glColor","glBorderDash","glBorderDashOffset","itemToDraw","save","setLineDash","lineDashOffset","beginPath","moveTo","lineTo","restore","translate","fillText","scaleLabelX","scaleLabelY","halfLineHeight","constructors","registerScaleType","scaleConstructor","scaleDefaults","updateScaleDefaults","additions","generators","linear","generationOptions","dataRange","spacing","stepSize","niceRange","niceMin","niceMax","numSpaces","logarithmic","tickVal","endExp","endSignificand","exp","significand","minNotZero","lastTick","tickValue","logDelta","tickString","numDecimal","toFixed","remain","toExponential","titleFontStyle","titleSpacing","titleMarginBottom","titleFontColor","titleAlign","bodySpacing","bodyFontColor","bodyAlign","footerFontStyle","footerSpacing","footerMarginTop","footerFontColor","footerAlign","yPadding","xPadding","caretPadding","caretSize","cornerRadius","multiKeyBackground","displayColors","beforeTitle","tooltipItems","labelCount","afterTitle","beforeBody","beforeLabel","labelColor","activeElement","labelTextColor","afterLabel","afterBody","beforeFooter","footer","afterFooter","mergeOpacity","colorString","opacity","pushOrConcat","toPush","createTooltipItem","getBaseModel","tooltipOpts","xAlign","yAlign","_bodyFontFamily","bodyFontFamily","_bodyFontStyle","bodyFontStyle","_bodyAlign","bodyFontSize","_titleFontFamily","titleFontFamily","_titleFontStyle","titleFontSize","_titleAlign","_footerFontFamily","footerFontFamily","_footerFontStyle","footerFontSize","_footerAlign","legendColorBackground","getTooltipSize","body","combinedBodyLength","bodyItem","before","lines","after","titleLineCount","footerLineCount","widthPadding","maxLineWidth","determineAlignment","lf","rf","olf","orf","yf","midX","midY","getBackgroundPoint","vm","alignment","paddingAndSize","radiusAndPadding","getTitle","getBeforeBody","getBody","bodyItems","getAfterBody","getFooter","existingModel","_active","backgroundPoint","tooltipSize","caretX","caretY","labelColors","labelTextColors","positioners","_eventPosition","itemSort","dataPoints","drawCaret","tooltipPoint","caretPosition","getCaretPosition","x3","y3","ptX","ptY","drawTitle","drawBody","xLinePadding","fillLineOfText","drawColorBoxes","fillRect","strokeRect","textColor","drawFooter","drawBackground","quadraticCurveTo","closePath","hasTooltipContent","_lastActive","average","eventPosition","nearestElement","tp","inLabelRange","chartX","chartY","pointRelativePosition","betweenAngles","withinRadius","halfAngle","halfRadius","centreAngle","rangeFromCentre","sA","eA","lineJoin","globalOptionLineElements","lastDrawnIndex","currentVM","lineCap","xRange","errMargin","drawPoint","isVertical","getBarBounds","halfWidth","halfHeight","signX","signY","barSize","halfStroke","borderLeft","borderRight","borderTop","borderBottom","corners","startCorner","cornerAt","corner","bounds","clearRect","roundedRect","rx","ry","rect","edgeLength","xOffset","yOffset","drawImage","SQRT2","sideSize","clip","flip","bezierCurveTo","drawRoundedRectangle","defaultValue","thisArg","loopable","a0","a1","klen","_mergerIf","mergeIf","sources","callCallback","fromIndex","getValueOrDefault","getValueAtIndexOrDefault","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","asin","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","easeInOutBounce","easingEffects","inputs","getContext","EXPANDO_KEY","CSS_PREFIX","CSS_RENDER_MONITOR","CSS_RENDER_ANIMATION","ANIMATION_START_EVENTS","EVENT_TYPES","touchstart","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","readUsedSize","initCanvas","renderHeight","getAttribute","renderWidth","initial","displayWidth","displayHeight","supportsEventListenerOptions","supports","eventListenerOptions","passive","createEvent","nativeEvent","fromNativeEvent","event","throttled","ticking","createResizer","resizer","createElement","cls","maxSize","cssText","className","innerHTML","expand","childNodes","shrink","_reset","scrollLeft","scrollTop","onScroll","bind","watchForRender","expando","proxy","renderProxy","animationName","classList","unwatchForRender","remove","addResizeListener","insertBefore","firstChild","removeResizeListener","removeChild","injectCSS","css","_style","setAttribute","getElementsByTagName","appendChild","createTextNode","_enabled","getElementById","removeAttribute","proxies","addEvent","removeEvent","basic","dom","implementation","filler","propagate","mappers","visible","boundary","decodeFill","computeBoundary","scaleBottom","scaleTop","scaleZero","getBasePosition","resolveTarget","visited","createMapper","isDrawable","drawArea","curve0","curve1","len0","len1","doFill","mapper","span","p0","d0","d1","afterDatasetsUpdate","$filler","beforeDatasetDraw","ci","boxWidth","lineDash","getBoxWidth","labelOpts","usePointStyle","Legend","legendHitBoxes","doughnutMode","beforeBuildLabels","buildLabels","afterBuildLabels","legendItems","globalDefault","labelFont","hitboxes","lineWidths","totalHeight","vPadding","columnWidths","totalWidth","currentColWidth","currentColHeight","itemHeight","itemWidth","lineDefault","legendWidth","cursor","drawLegendBox","isLineWidthZero","offSet","halfFontSize","xLeft","yMiddle","lh","hitBox","createNewLegendAndAttach","legendOpts","beforeInit","afterEvent","Title","lineCount","textSize","titleFont","titleX","titleY","createNewTitleBlockAndAttach","titleOpts","titleBlock","DatasetScale","getLabels","xLabels","yLabels","minIndex","maxIndex","offsetAmt","valueCategory","valueWidth","widthOffset","valueHeight","heightOffset","horz","valueDimension","defaultConfig","LinearScale","LinearScaleBase","IDMatches","hasStacks","valuesPerStack","positiveValues","negativeValues","relativePoints","valuesForType","minVal","maxVal","handleTickRangeOptions","getTickLimit","tickFontSize","handleDirectionalChanges","innerDimension","ticksAsNumbers","minSign","maxSign","setMin","suggestedMin","setMax","suggestedMax","numericGeneratorOptions","fixedStepSize","LogarithmicScale","tickValues","newVal","animate","showLabelBackdrop","backdropColor","backdropPaddingY","backdropPaddingX","getValueCount","getPointLabelFontOptions","pointLabelOptions","measureLabelSize","determineLimits","fitWithPointLabels","plFont","largestPossibleRadius","furthestLimits","furthestAngles","_pointLabelSizes","valueCount","getPointPosition","getIndexAngle","hLimits","vLimits","setReductions","drawingArea","setCenterPoint","getTextAlignForAngle","adjustPointPositionForLabelHeight","drawPointLabels","angleLineOpts","pointLabelOpts","outerDistance","outerPosition","pointLabelPosition","pointLabelFontColor","drawRadiusLine","numberOrZero","param","LinearRadialScale","radiusReductionLeft","radiusReductionRight","radiusReductionTop","radiusReductionBottom","leftMovement","rightMovement","topMovement","bottomMovement","maxRight","maxLeft","maxTop","maxBottom","angleMultiplier","startAngleRadians","scalingFactor","distanceFromCenter","thisAngle","tickFontStyle","tickFontFamily","tickLabelFont","yCenterOffset","MIN_INTEGER","MIN_SAFE_INTEGER","MAX_INTEGER","MAX_SAFE_INTEGER","INTERVALS","steps","UNITS","sorter","arrayUnique","hash","buildLookupTable","timestamps","distribution","table","prev","curr","lookup","lo","mid","i0","i1","skey","tkey","momentify","parser","parse","determineStepSize","capacity","interval","factor","determineUnit","minUnit","determineMajorUnit","generate","timeOpts","unitStepSize","majorTicksEnabled","first","computeOffsets","upper","lower","ticksFromTimestamps","majorUnit","TimeScale","timestamp","_horizontal","_table","_timestamps","displayFormats","getLabelCapacity","_unit","_majorUnit","_minorFormat","_majorFormat","_offsets","tooltipFormat","tickFormatFunction","majorFormat","majorTime","majorTickOpts","formatter","getPixelForOffset","getLabelWidth","ticksOpts","tickLabelWidth","exampleTime","exampleLabel","displayFormat"],"mappings":"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","sourcesContent":["/*!\n * Chart.js\n * http://chartjs.org/\n * Version: 2.2.2\n *\n * Copyright 2016 Nick Downie\n * Released under the MIT license\n * https://github.com/chartjs/Chart.js/blob/master/LICENSE.md\n */\n\n/**\n * Description of import into Moodle:\n *\n * - Download Chart.bundle.js from https://github.com/chartjs/Chart.js/releases.\n * - Copy Chart.bundle.js content to lib/amd/src/chartjs-lazy.js.\n * - Convert line endings to LF-Unix format.\n * - Keep these instructions to the file.\n * - Visit lib/tests/other/chartjstestpage.php to see if the library still works after the update.\n */\n\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.Chart = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o lum2) {\n return (lum1 + 0.05) / (lum2 + 0.05);\n }\n return (lum2 + 0.05) / (lum1 + 0.05);\n },\n\n level: function (color2) {\n var contrastRatio = this.contrast(color2);\n if (contrastRatio >= 7.1) {\n return 'AAA';\n }\n\n return (contrastRatio >= 4.5) ? 'AA' : '';\n },\n\n dark: function () {\n // YIQ equation from http://24ways.org/2010/calculating-color-contrast\n var rgb = this.values.rgb;\n var yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n return yiq < 128;\n },\n\n light: function () {\n return !this.dark();\n },\n\n negate: function () {\n var rgb = [];\n for (var i = 0; i < 3; i++) {\n rgb[i] = 255 - this.values.rgb[i];\n }\n this.setValues('rgb', rgb);\n return this;\n },\n\n lighten: function (ratio) {\n var hsl = this.values.hsl;\n hsl[2] += hsl[2] * ratio;\n this.setValues('hsl', hsl);\n return this;\n },\n\n darken: function (ratio) {\n var hsl = this.values.hsl;\n hsl[2] -= hsl[2] * ratio;\n this.setValues('hsl', hsl);\n return this;\n },\n\n saturate: function (ratio) {\n var hsl = this.values.hsl;\n hsl[1] += hsl[1] * ratio;\n this.setValues('hsl', hsl);\n return this;\n },\n\n desaturate: function (ratio) {\n var hsl = this.values.hsl;\n hsl[1] -= hsl[1] * ratio;\n this.setValues('hsl', hsl);\n return this;\n },\n\n whiten: function (ratio) {\n var hwb = this.values.hwb;\n hwb[1] += hwb[1] * ratio;\n this.setValues('hwb', hwb);\n return this;\n },\n\n blacken: function (ratio) {\n var hwb = this.values.hwb;\n hwb[2] += hwb[2] * ratio;\n this.setValues('hwb', hwb);\n return this;\n },\n\n greyscale: function () {\n var rgb = this.values.rgb;\n // http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n var val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n this.setValues('rgb', [val, val, val]);\n return this;\n },\n\n clearer: function (ratio) {\n var alpha = this.values.alpha;\n this.setValues('alpha', alpha - (alpha * ratio));\n return this;\n },\n\n opaquer: function (ratio) {\n var alpha = this.values.alpha;\n this.setValues('alpha', alpha + (alpha * ratio));\n return this;\n },\n\n rotate: function (degrees) {\n var hsl = this.values.hsl;\n var hue = (hsl[0] + degrees) % 360;\n hsl[0] = hue < 0 ? 360 + hue : hue;\n this.setValues('hsl', hsl);\n return this;\n },\n\n /**\n * Ported from sass implementation in C\n * https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n */\n mix: function (mixinColor, weight) {\n var color1 = this;\n var color2 = mixinColor;\n var p = weight === undefined ? 0.5 : weight;\n\n var w = 2 * p - 1;\n var a = color1.alpha() - color2.alpha();\n\n var w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n var w2 = 1 - w1;\n\n return this\n .rgb(\n w1 * color1.red() + w2 * color2.red(),\n w1 * color1.green() + w2 * color2.green(),\n w1 * color1.blue() + w2 * color2.blue()\n )\n .alpha(color1.alpha() * p + color2.alpha() * (1 - p));\n },\n\n toJSON: function () {\n return this.rgb();\n },\n\n clone: function () {\n // NOTE(SB): using node-clone creates a dependency to Buffer when using browserify,\n // making the final build way to big to embed in Chart.js. So let's do it manually,\n // assuming that values to clone are 1 dimension arrays containing only numbers,\n // except 'alpha' which is a number.\n var result = new Color();\n var source = this.values;\n var target = result.values;\n var value, type;\n\n for (var prop in source) {\n if (source.hasOwnProperty(prop)) {\n value = source[prop];\n type = ({}).toString.call(value);\n if (type === '[object Array]') {\n target[prop] = value.slice(0);\n } else if (type === '[object Number]') {\n target[prop] = value;\n } else {\n console.error('unexpected color value:', value);\n }\n }\n }\n\n return result;\n }\n };\n\n Color.prototype.spaces = {\n rgb: ['red', 'green', 'blue'],\n hsl: ['hue', 'saturation', 'lightness'],\n hsv: ['hue', 'saturation', 'value'],\n hwb: ['hue', 'whiteness', 'blackness'],\n cmyk: ['cyan', 'magenta', 'yellow', 'black']\n };\n\n Color.prototype.maxes = {\n rgb: [255, 255, 255],\n hsl: [360, 100, 100],\n hsv: [360, 100, 100],\n hwb: [360, 100, 100],\n cmyk: [100, 100, 100, 100]\n };\n\n Color.prototype.getValues = function (space) {\n var values = this.values;\n var vals = {};\n\n for (var i = 0; i < space.length; i++) {\n vals[space.charAt(i)] = values[space][i];\n }\n\n if (values.alpha !== 1) {\n vals.a = values.alpha;\n }\n\n // {r: 255, g: 255, b: 255, a: 0.4}\n return vals;\n };\n\n Color.prototype.setValues = function (space, vals) {\n var values = this.values;\n var spaces = this.spaces;\n var maxes = this.maxes;\n var alpha = 1;\n var i;\n\n this.valid = true;\n\n if (space === 'alpha') {\n alpha = vals;\n } else if (vals.length) {\n // [10, 10, 10]\n values[space] = vals.slice(0, space.length);\n alpha = vals[space.length];\n } else if (vals[space.charAt(0)] !== undefined) {\n // {r: 10, g: 10, b: 10}\n for (i = 0; i < space.length; i++) {\n values[space][i] = vals[space.charAt(i)];\n }\n\n alpha = vals.a;\n } else if (vals[spaces[space][0]] !== undefined) {\n // {red: 10, green: 10, blue: 10}\n var chans = spaces[space];\n\n for (i = 0; i < space.length; i++) {\n values[space][i] = vals[chans[i]];\n }\n\n alpha = vals.alpha;\n }\n\n values.alpha = Math.max(0, Math.min(1, (alpha === undefined ? values.alpha : alpha)));\n\n if (space === 'alpha') {\n return false;\n }\n\n var capped;\n\n // cap values of the space prior converting all values\n for (i = 0; i < space.length; i++) {\n capped = Math.max(0, Math.min(maxes[space][i], values[space][i]));\n values[space][i] = Math.round(capped);\n }\n\n // convert to all the other color spaces\n for (var sname in spaces) {\n if (sname !== space) {\n values[sname] = convert[space][sname](values[space]);\n }\n }\n\n return true;\n };\n\n Color.prototype.setSpace = function (space, args) {\n var vals = args[0];\n\n if (vals === undefined) {\n // color.rgb()\n return this.getValues(space);\n }\n\n // color.rgb(10, 10, 10)\n if (typeof vals === 'number') {\n vals = Array.prototype.slice.call(args);\n }\n\n this.setValues(space, vals);\n return this;\n };\n\n Color.prototype.setChannel = function (space, index, val) {\n var svalues = this.values[space];\n if (val === undefined) {\n // color.red()\n return svalues[index];\n } else if (val === svalues[index]) {\n // color.red(color.red())\n return this;\n }\n\n // color.red(100)\n svalues[index] = val;\n this.setValues(space, svalues);\n\n return this;\n };\n\n if (typeof window !== 'undefined') {\n window.Color = Color;\n }\n\n module.exports = Color;\n\n},{\"1\":1,\"4\":4}],3:[function(require,module,exports){\n\t/* MIT license */\n\n module.exports = {\n rgb2hsl: rgb2hsl,\n rgb2hsv: rgb2hsv,\n rgb2hwb: rgb2hwb,\n rgb2cmyk: rgb2cmyk,\n rgb2keyword: rgb2keyword,\n rgb2xyz: rgb2xyz,\n rgb2lab: rgb2lab,\n rgb2lch: rgb2lch,\n\n hsl2rgb: hsl2rgb,\n hsl2hsv: hsl2hsv,\n hsl2hwb: hsl2hwb,\n hsl2cmyk: hsl2cmyk,\n hsl2keyword: hsl2keyword,\n\n hsv2rgb: hsv2rgb,\n hsv2hsl: hsv2hsl,\n hsv2hwb: hsv2hwb,\n hsv2cmyk: hsv2cmyk,\n hsv2keyword: hsv2keyword,\n\n hwb2rgb: hwb2rgb,\n hwb2hsl: hwb2hsl,\n hwb2hsv: hwb2hsv,\n hwb2cmyk: hwb2cmyk,\n hwb2keyword: hwb2keyword,\n\n cmyk2rgb: cmyk2rgb,\n cmyk2hsl: cmyk2hsl,\n cmyk2hsv: cmyk2hsv,\n cmyk2hwb: cmyk2hwb,\n cmyk2keyword: cmyk2keyword,\n\n keyword2rgb: keyword2rgb,\n keyword2hsl: keyword2hsl,\n keyword2hsv: keyword2hsv,\n keyword2hwb: keyword2hwb,\n keyword2cmyk: keyword2cmyk,\n keyword2lab: keyword2lab,\n keyword2xyz: keyword2xyz,\n\n xyz2rgb: xyz2rgb,\n xyz2lab: xyz2lab,\n xyz2lch: xyz2lch,\n\n lab2xyz: lab2xyz,\n lab2rgb: lab2rgb,\n lab2lch: lab2lch,\n\n lch2lab: lch2lab,\n lch2xyz: lch2xyz,\n lch2rgb: lch2rgb\n }\n\n\n function rgb2hsl(rgb) {\n var r = rgb[0]/255,\n g = rgb[1]/255,\n b = rgb[2]/255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n delta = max - min,\n h, s, l;\n\n if (max == min)\n h = 0;\n else if (r == max)\n h = (g - b) / delta;\n else if (g == max)\n h = 2 + (b - r) / delta;\n else if (b == max)\n h = 4 + (r - g)/ delta;\n\n h = Math.min(h * 60, 360);\n\n if (h < 0)\n h += 360;\n\n l = (min + max) / 2;\n\n if (max == min)\n s = 0;\n else if (l <= 0.5)\n s = delta / (max + min);\n else\n s = delta / (2 - max - min);\n\n return [h, s * 100, l * 100];\n }\n\n function rgb2hsv(rgb) {\n var r = rgb[0],\n g = rgb[1],\n b = rgb[2],\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n delta = max - min,\n h, s, v;\n\n if (max == 0)\n s = 0;\n else\n s = (delta/max * 1000)/10;\n\n if (max == min)\n h = 0;\n else if (r == max)\n h = (g - b) / delta;\n else if (g == max)\n h = 2 + (b - r) / delta;\n else if (b == max)\n h = 4 + (r - g) / delta;\n\n h = Math.min(h * 60, 360);\n\n if (h < 0)\n h += 360;\n\n v = ((max / 255) * 1000) / 10;\n\n return [h, s, v];\n }\n\n function rgb2hwb(rgb) {\n var r = rgb[0],\n g = rgb[1],\n b = rgb[2],\n h = rgb2hsl(rgb)[0],\n w = 1/255 * Math.min(r, Math.min(g, b)),\n b = 1 - 1/255 * Math.max(r, Math.max(g, b));\n\n return [h, w * 100, b * 100];\n }\n\n function rgb2cmyk(rgb) {\n var r = rgb[0] / 255,\n g = rgb[1] / 255,\n b = rgb[2] / 255,\n c, m, y, k;\n\n k = Math.min(1 - r, 1 - g, 1 - b);\n c = (1 - r - k) / (1 - k) || 0;\n m = (1 - g - k) / (1 - k) || 0;\n y = (1 - b - k) / (1 - k) || 0;\n return [c * 100, m * 100, y * 100, k * 100];\n }\n\n function rgb2keyword(rgb) {\n return reverseKeywords[JSON.stringify(rgb)];\n }\n\n function rgb2xyz(rgb) {\n var r = rgb[0] / 255,\n g = rgb[1] / 255,\n b = rgb[2] / 255;\n\n // assume sRGB\n r = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n g = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n b = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n var x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n var y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n var z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n return [x * 100, y *100, z * 100];\n }\n\n function rgb2lab(rgb) {\n var xyz = rgb2xyz(rgb),\n x = xyz[0],\n y = xyz[1],\n z = xyz[2],\n l, a, b;\n\n x /= 95.047;\n y /= 100;\n z /= 108.883;\n\n x = x > 0.008856 ? Math.pow(x, 1/3) : (7.787 * x) + (16 / 116);\n y = y > 0.008856 ? Math.pow(y, 1/3) : (7.787 * y) + (16 / 116);\n z = z > 0.008856 ? Math.pow(z, 1/3) : (7.787 * z) + (16 / 116);\n\n l = (116 * y) - 16;\n a = 500 * (x - y);\n b = 200 * (y - z);\n\n return [l, a, b];\n }\n\n function rgb2lch(args) {\n return lab2lch(rgb2lab(args));\n }\n\n function hsl2rgb(hsl) {\n var h = hsl[0] / 360,\n s = hsl[1] / 100,\n l = hsl[2] / 100,\n t1, t2, t3, rgb, val;\n\n if (s == 0) {\n val = l * 255;\n return [val, val, val];\n }\n\n if (l < 0.5)\n t2 = l * (1 + s);\n else\n t2 = l + s - l * s;\n t1 = 2 * l - t2;\n\n rgb = [0, 0, 0];\n for (var i = 0; i < 3; i++) {\n t3 = h + 1 / 3 * - (i - 1);\n t3 < 0 && t3++;\n t3 > 1 && t3--;\n\n if (6 * t3 < 1)\n val = t1 + (t2 - t1) * 6 * t3;\n else if (2 * t3 < 1)\n val = t2;\n else if (3 * t3 < 2)\n val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n else\n val = t1;\n\n rgb[i] = val * 255;\n }\n\n return rgb;\n }\n\n function hsl2hsv(hsl) {\n var h = hsl[0],\n s = hsl[1] / 100,\n l = hsl[2] / 100,\n sv, v;\n\n if(l === 0) {\n // no need to do calc on black\n // also avoids divide by 0 error\n return [0, 0, 0];\n }\n\n l *= 2;\n s *= (l <= 1) ? l : 2 - l;\n v = (l + s) / 2;\n sv = (2 * s) / (l + s);\n return [h, sv * 100, v * 100];\n }\n\n function hsl2hwb(args) {\n return rgb2hwb(hsl2rgb(args));\n }\n\n function hsl2cmyk(args) {\n return rgb2cmyk(hsl2rgb(args));\n }\n\n function hsl2keyword(args) {\n return rgb2keyword(hsl2rgb(args));\n }\n\n\n function hsv2rgb(hsv) {\n var h = hsv[0] / 60,\n s = hsv[1] / 100,\n v = hsv[2] / 100,\n hi = Math.floor(h) % 6;\n\n var f = h - Math.floor(h),\n p = 255 * v * (1 - s),\n q = 255 * v * (1 - (s * f)),\n t = 255 * v * (1 - (s * (1 - f))),\n v = 255 * v;\n\n switch(hi) {\n case 0:\n return [v, t, p];\n case 1:\n return [q, v, p];\n case 2:\n return [p, v, t];\n case 3:\n return [p, q, v];\n case 4:\n return [t, p, v];\n case 5:\n return [v, p, q];\n }\n }\n\n function hsv2hsl(hsv) {\n var h = hsv[0],\n s = hsv[1] / 100,\n v = hsv[2] / 100,\n sl, l;\n\n l = (2 - s) * v;\n sl = s * v;\n sl /= (l <= 1) ? l : 2 - l;\n sl = sl || 0;\n l /= 2;\n return [h, sl * 100, l * 100];\n }\n\n function hsv2hwb(args) {\n return rgb2hwb(hsv2rgb(args))\n }\n\n function hsv2cmyk(args) {\n return rgb2cmyk(hsv2rgb(args));\n }\n\n function hsv2keyword(args) {\n return rgb2keyword(hsv2rgb(args));\n }\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\n function hwb2rgb(hwb) {\n var h = hwb[0] / 360,\n wh = hwb[1] / 100,\n bl = hwb[2] / 100,\n ratio = wh + bl,\n i, v, f, n;\n\n // wh + bl cant be > 1\n if (ratio > 1) {\n wh /= ratio;\n bl /= ratio;\n }\n\n i = Math.floor(6 * h);\n v = 1 - bl;\n f = 6 * h - i;\n if ((i & 0x01) != 0) {\n f = 1 - f;\n }\n n = wh + f * (v - wh); // linear interpolation\n\n switch (i) {\n default:\n case 6:\n case 0: r = v; g = n; b = wh; break;\n case 1: r = n; g = v; b = wh; break;\n case 2: r = wh; g = v; b = n; break;\n case 3: r = wh; g = n; b = v; break;\n case 4: r = n; g = wh; b = v; break;\n case 5: r = v; g = wh; b = n; break;\n }\n\n return [r * 255, g * 255, b * 255];\n }\n\n function hwb2hsl(args) {\n return rgb2hsl(hwb2rgb(args));\n }\n\n function hwb2hsv(args) {\n return rgb2hsv(hwb2rgb(args));\n }\n\n function hwb2cmyk(args) {\n return rgb2cmyk(hwb2rgb(args));\n }\n\n function hwb2keyword(args) {\n return rgb2keyword(hwb2rgb(args));\n }\n\n function cmyk2rgb(cmyk) {\n var c = cmyk[0] / 100,\n m = cmyk[1] / 100,\n y = cmyk[2] / 100,\n k = cmyk[3] / 100,\n r, g, b;\n\n r = 1 - Math.min(1, c * (1 - k) + k);\n g = 1 - Math.min(1, m * (1 - k) + k);\n b = 1 - Math.min(1, y * (1 - k) + k);\n return [r * 255, g * 255, b * 255];\n }\n\n function cmyk2hsl(args) {\n return rgb2hsl(cmyk2rgb(args));\n }\n\n function cmyk2hsv(args) {\n return rgb2hsv(cmyk2rgb(args));\n }\n\n function cmyk2hwb(args) {\n return rgb2hwb(cmyk2rgb(args));\n }\n\n function cmyk2keyword(args) {\n return rgb2keyword(cmyk2rgb(args));\n }\n\n\n function xyz2rgb(xyz) {\n var x = xyz[0] / 100,\n y = xyz[1] / 100,\n z = xyz[2] / 100,\n r, g, b;\n\n r = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n g = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n b = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n // assume sRGB\n r = r > 0.0031308 ? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n : r = (r * 12.92);\n\n g = g > 0.0031308 ? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n : g = (g * 12.92);\n\n b = b > 0.0031308 ? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n : b = (b * 12.92);\n\n r = Math.min(Math.max(0, r), 1);\n g = Math.min(Math.max(0, g), 1);\n b = Math.min(Math.max(0, b), 1);\n\n return [r * 255, g * 255, b * 255];\n }\n\n function xyz2lab(xyz) {\n var x = xyz[0],\n y = xyz[1],\n z = xyz[2],\n l, a, b;\n\n x /= 95.047;\n y /= 100;\n z /= 108.883;\n\n x = x > 0.008856 ? Math.pow(x, 1/3) : (7.787 * x) + (16 / 116);\n y = y > 0.008856 ? Math.pow(y, 1/3) : (7.787 * y) + (16 / 116);\n z = z > 0.008856 ? Math.pow(z, 1/3) : (7.787 * z) + (16 / 116);\n\n l = (116 * y) - 16;\n a = 500 * (x - y);\n b = 200 * (y - z);\n\n return [l, a, b];\n }\n\n function xyz2lch(args) {\n return lab2lch(xyz2lab(args));\n }\n\n function lab2xyz(lab) {\n var l = lab[0],\n a = lab[1],\n b = lab[2],\n x, y, z, y2;\n\n if (l <= 8) {\n y = (l * 100) / 903.3;\n y2 = (7.787 * (y / 100)) + (16 / 116);\n } else {\n y = 100 * Math.pow((l + 16) / 116, 3);\n y2 = Math.pow(y / 100, 1/3);\n }\n\n x = x / 95.047 <= 0.008856 ? x = (95.047 * ((a / 500) + y2 - (16 / 116))) / 7.787 : 95.047 * Math.pow((a / 500) + y2, 3);\n\n z = z / 108.883 <= 0.008859 ? z = (108.883 * (y2 - (b / 200) - (16 / 116))) / 7.787 : 108.883 * Math.pow(y2 - (b / 200), 3);\n\n return [x, y, z];\n }\n\n function lab2lch(lab) {\n var l = lab[0],\n a = lab[1],\n b = lab[2],\n hr, h, c;\n\n hr = Math.atan2(b, a);\n h = hr * 360 / 2 / Math.PI;\n if (h < 0) {\n h += 360;\n }\n c = Math.sqrt(a * a + b * b);\n return [l, c, h];\n }\n\n function lab2rgb(args) {\n return xyz2rgb(lab2xyz(args));\n }\n\n function lch2lab(lch) {\n var l = lch[0],\n c = lch[1],\n h = lch[2],\n a, b, hr;\n\n hr = h / 360 * 2 * Math.PI;\n a = c * Math.cos(hr);\n b = c * Math.sin(hr);\n return [l, a, b];\n }\n\n function lch2xyz(args) {\n return lab2xyz(lch2lab(args));\n }\n\n function lch2rgb(args) {\n return lab2rgb(lch2lab(args));\n }\n\n function keyword2rgb(keyword) {\n return cssKeywords[keyword];\n }\n\n function keyword2hsl(args) {\n return rgb2hsl(keyword2rgb(args));\n }\n\n function keyword2hsv(args) {\n return rgb2hsv(keyword2rgb(args));\n }\n\n function keyword2hwb(args) {\n return rgb2hwb(keyword2rgb(args));\n }\n\n function keyword2cmyk(args) {\n return rgb2cmyk(keyword2rgb(args));\n }\n\n function keyword2lab(args) {\n return rgb2lab(keyword2rgb(args));\n }\n\n function keyword2xyz(args) {\n return rgb2xyz(keyword2rgb(args));\n }\n\n var cssKeywords = {\n aliceblue: [240,248,255],\n antiquewhite: [250,235,215],\n aqua: [0,255,255],\n aquamarine: [127,255,212],\n azure: [240,255,255],\n beige: [245,245,220],\n bisque: [255,228,196],\n black: [0,0,0],\n blanchedalmond: [255,235,205],\n blue: [0,0,255],\n blueviolet: [138,43,226],\n brown: [165,42,42],\n burlywood: [222,184,135],\n cadetblue: [95,158,160],\n chartreuse: [127,255,0],\n chocolate: [210,105,30],\n coral: [255,127,80],\n cornflowerblue: [100,149,237],\n cornsilk: [255,248,220],\n crimson: [220,20,60],\n cyan: [0,255,255],\n darkblue: [0,0,139],\n darkcyan: [0,139,139],\n darkgoldenrod: [184,134,11],\n darkgray: [169,169,169],\n darkgreen: [0,100,0],\n darkgrey: [169,169,169],\n darkkhaki: [189,183,107],\n darkmagenta: [139,0,139],\n darkolivegreen: [85,107,47],\n darkorange: [255,140,0],\n darkorchid: [153,50,204],\n darkred: [139,0,0],\n darksalmon: [233,150,122],\n darkseagreen: [143,188,143],\n darkslateblue: [72,61,139],\n darkslategray: [47,79,79],\n darkslategrey: [47,79,79],\n darkturquoise: [0,206,209],\n darkviolet: [148,0,211],\n deeppink: [255,20,147],\n deepskyblue: [0,191,255],\n dimgray: [105,105,105],\n dimgrey: [105,105,105],\n dodgerblue: [30,144,255],\n firebrick: [178,34,34],\n floralwhite: [255,250,240],\n forestgreen: [34,139,34],\n fuchsia: [255,0,255],\n gainsboro: [220,220,220],\n ghostwhite: [248,248,255],\n gold: [255,215,0],\n goldenrod: [218,165,32],\n gray: [128,128,128],\n green: [0,128,0],\n greenyellow: [173,255,47],\n grey: [128,128,128],\n honeydew: [240,255,240],\n hotpink: [255,105,180],\n indianred: [205,92,92],\n indigo: [75,0,130],\n ivory: [255,255,240],\n khaki: [240,230,140],\n lavender: [230,230,250],\n lavenderblush: [255,240,245],\n lawngreen: [124,252,0],\n lemonchiffon: [255,250,205],\n lightblue: [173,216,230],\n lightcoral: [240,128,128],\n lightcyan: [224,255,255],\n lightgoldenrodyellow: [250,250,210],\n lightgray: [211,211,211],\n lightgreen: [144,238,144],\n lightgrey: [211,211,211],\n lightpink: [255,182,193],\n lightsalmon: [255,160,122],\n lightseagreen: [32,178,170],\n lightskyblue: [135,206,250],\n lightslategray: [119,136,153],\n lightslategrey: [119,136,153],\n lightsteelblue: [176,196,222],\n lightyellow: [255,255,224],\n lime: [0,255,0],\n limegreen: [50,205,50],\n linen: [250,240,230],\n magenta: [255,0,255],\n maroon: [128,0,0],\n mediumaquamarine: [102,205,170],\n mediumblue: [0,0,205],\n mediumorchid: [186,85,211],\n mediumpurple: [147,112,219],\n mediumseagreen: [60,179,113],\n mediumslateblue: [123,104,238],\n mediumspringgreen: [0,250,154],\n mediumturquoise: [72,209,204],\n mediumvioletred: [199,21,133],\n midnightblue: [25,25,112],\n mintcream: [245,255,250],\n mistyrose: [255,228,225],\n moccasin: [255,228,181],\n navajowhite: [255,222,173],\n navy: [0,0,128],\n oldlace: [253,245,230],\n olive: [128,128,0],\n olivedrab: [107,142,35],\n orange: [255,165,0],\n orangered: [255,69,0],\n orchid: [218,112,214],\n palegoldenrod: [238,232,170],\n palegreen: [152,251,152],\n paleturquoise: [175,238,238],\n palevioletred: [219,112,147],\n papayawhip: [255,239,213],\n peachpuff: [255,218,185],\n peru: [205,133,63],\n pink: [255,192,203],\n plum: [221,160,221],\n powderblue: [176,224,230],\n purple: [128,0,128],\n rebeccapurple: [102, 51, 153],\n red: [255,0,0],\n rosybrown: [188,143,143],\n royalblue: [65,105,225],\n saddlebrown: [139,69,19],\n salmon: [250,128,114],\n sandybrown: [244,164,96],\n seagreen: [46,139,87],\n seashell: [255,245,238],\n sienna: [160,82,45],\n silver: [192,192,192],\n skyblue: [135,206,235],\n slateblue: [106,90,205],\n slategray: [112,128,144],\n slategrey: [112,128,144],\n snow: [255,250,250],\n springgreen: [0,255,127],\n steelblue: [70,130,180],\n tan: [210,180,140],\n teal: [0,128,128],\n thistle: [216,191,216],\n tomato: [255,99,71],\n turquoise: [64,224,208],\n violet: [238,130,238],\n wheat: [245,222,179],\n white: [255,255,255],\n whitesmoke: [245,245,245],\n yellow: [255,255,0],\n yellowgreen: [154,205,50]\n };\n\n var reverseKeywords = {};\n for (var key in cssKeywords) {\n reverseKeywords[JSON.stringify(cssKeywords[key])] = key;\n }\n\n},{}],4:[function(require,module,exports){\n var conversions = require(3);\n\n var convert = function() {\n return new Converter();\n }\n\n for (var func in conversions) {\n // export Raw versions\n convert[func + \"Raw\"] = (function(func) {\n // accept array or plain args\n return function(arg) {\n if (typeof arg == \"number\")\n arg = Array.prototype.slice.call(arguments);\n return conversions[func](arg);\n }\n })(func);\n\n var pair = /(\\w+)2(\\w+)/.exec(func),\n from = pair[1],\n to = pair[2];\n\n // export rgb2hsl and [\"rgb\"][\"hsl\"]\n convert[from] = convert[from] || {};\n\n convert[from][to] = convert[func] = (function(func) {\n return function(arg) {\n if (typeof arg == \"number\")\n arg = Array.prototype.slice.call(arguments);\n\n var val = conversions[func](arg);\n if (typeof val == \"string\" || val === undefined)\n return val; // keyword\n\n for (var i = 0; i < val.length; i++)\n val[i] = Math.round(val[i]);\n return val;\n }\n })(func);\n }\n\n\n\t/* Converter does lazy conversion and caching */\n var Converter = function() {\n this.convs = {};\n };\n\n\t/* Either get the values for a space or\n\t set the values for a space, depending on args */\n Converter.prototype.routeSpace = function(space, args) {\n var values = args[0];\n if (values === undefined) {\n // color.rgb()\n return this.getValues(space);\n }\n // color.rgb(10, 10, 10)\n if (typeof values == \"number\") {\n values = Array.prototype.slice.call(args);\n }\n\n return this.setValues(space, values);\n };\n\n\t/* Set the values for a space, invalidating cache */\n Converter.prototype.setValues = function(space, values) {\n this.space = space;\n this.convs = {};\n this.convs[space] = values;\n return this;\n };\n\n\t/* Get the values for a space. If there's already\n\t a conversion for the space, fetch it, otherwise\n\t compute it */\n Converter.prototype.getValues = function(space) {\n var vals = this.convs[space];\n if (!vals) {\n var fspace = this.space,\n from = this.convs[fspace];\n vals = convert[fspace][space](from);\n\n this.convs[space] = vals;\n }\n return vals;\n };\n\n [\"rgb\", \"hsl\", \"hsv\", \"cmyk\", \"keyword\"].forEach(function(space) {\n Converter.prototype[space] = function(vals) {\n return this.routeSpace(space, arguments);\n }\n });\n\n module.exports = convert;\n},{\"3\":3}],5:[function(require,module,exports){\n 'use strict'\n\n module.exports = {\n \"aliceblue\": [240, 248, 255],\n \"antiquewhite\": [250, 235, 215],\n \"aqua\": [0, 255, 255],\n \"aquamarine\": [127, 255, 212],\n \"azure\": [240, 255, 255],\n \"beige\": [245, 245, 220],\n \"bisque\": [255, 228, 196],\n \"black\": [0, 0, 0],\n \"blanchedalmond\": [255, 235, 205],\n \"blue\": [0, 0, 255],\n \"blueviolet\": [138, 43, 226],\n \"brown\": [165, 42, 42],\n \"burlywood\": [222, 184, 135],\n \"cadetblue\": [95, 158, 160],\n \"chartreuse\": [127, 255, 0],\n \"chocolate\": [210, 105, 30],\n \"coral\": [255, 127, 80],\n \"cornflowerblue\": [100, 149, 237],\n \"cornsilk\": [255, 248, 220],\n \"crimson\": [220, 20, 60],\n \"cyan\": [0, 255, 255],\n \"darkblue\": [0, 0, 139],\n \"darkcyan\": [0, 139, 139],\n \"darkgoldenrod\": [184, 134, 11],\n \"darkgray\": [169, 169, 169],\n \"darkgreen\": [0, 100, 0],\n \"darkgrey\": [169, 169, 169],\n \"darkkhaki\": [189, 183, 107],\n \"darkmagenta\": [139, 0, 139],\n \"darkolivegreen\": [85, 107, 47],\n \"darkorange\": [255, 140, 0],\n \"darkorchid\": [153, 50, 204],\n \"darkred\": [139, 0, 0],\n \"darksalmon\": [233, 150, 122],\n \"darkseagreen\": [143, 188, 143],\n \"darkslateblue\": [72, 61, 139],\n \"darkslategray\": [47, 79, 79],\n \"darkslategrey\": [47, 79, 79],\n \"darkturquoise\": [0, 206, 209],\n \"darkviolet\": [148, 0, 211],\n \"deeppink\": [255, 20, 147],\n \"deepskyblue\": [0, 191, 255],\n \"dimgray\": [105, 105, 105],\n \"dimgrey\": [105, 105, 105],\n \"dodgerblue\": [30, 144, 255],\n \"firebrick\": [178, 34, 34],\n \"floralwhite\": [255, 250, 240],\n \"forestgreen\": [34, 139, 34],\n \"fuchsia\": [255, 0, 255],\n \"gainsboro\": [220, 220, 220],\n \"ghostwhite\": [248, 248, 255],\n \"gold\": [255, 215, 0],\n \"goldenrod\": [218, 165, 32],\n \"gray\": [128, 128, 128],\n \"green\": [0, 128, 0],\n \"greenyellow\": [173, 255, 47],\n \"grey\": [128, 128, 128],\n \"honeydew\": [240, 255, 240],\n \"hotpink\": [255, 105, 180],\n \"indianred\": [205, 92, 92],\n \"indigo\": [75, 0, 130],\n \"ivory\": [255, 255, 240],\n \"khaki\": [240, 230, 140],\n \"lavender\": [230, 230, 250],\n \"lavenderblush\": [255, 240, 245],\n \"lawngreen\": [124, 252, 0],\n \"lemonchiffon\": [255, 250, 205],\n \"lightblue\": [173, 216, 230],\n \"lightcoral\": [240, 128, 128],\n \"lightcyan\": [224, 255, 255],\n \"lightgoldenrodyellow\": [250, 250, 210],\n \"lightgray\": [211, 211, 211],\n \"lightgreen\": [144, 238, 144],\n \"lightgrey\": [211, 211, 211],\n \"lightpink\": [255, 182, 193],\n \"lightsalmon\": [255, 160, 122],\n \"lightseagreen\": [32, 178, 170],\n \"lightskyblue\": [135, 206, 250],\n \"lightslategray\": [119, 136, 153],\n \"lightslategrey\": [119, 136, 153],\n \"lightsteelblue\": [176, 196, 222],\n \"lightyellow\": [255, 255, 224],\n \"lime\": [0, 255, 0],\n \"limegreen\": [50, 205, 50],\n \"linen\": [250, 240, 230],\n \"magenta\": [255, 0, 255],\n \"maroon\": [128, 0, 0],\n \"mediumaquamarine\": [102, 205, 170],\n \"mediumblue\": [0, 0, 205],\n \"mediumorchid\": [186, 85, 211],\n \"mediumpurple\": [147, 112, 219],\n \"mediumseagreen\": [60, 179, 113],\n \"mediumslateblue\": [123, 104, 238],\n \"mediumspringgreen\": [0, 250, 154],\n \"mediumturquoise\": [72, 209, 204],\n \"mediumvioletred\": [199, 21, 133],\n \"midnightblue\": [25, 25, 112],\n \"mintcream\": [245, 255, 250],\n \"mistyrose\": [255, 228, 225],\n \"moccasin\": [255, 228, 181],\n \"navajowhite\": [255, 222, 173],\n \"navy\": [0, 0, 128],\n \"oldlace\": [253, 245, 230],\n \"olive\": [128, 128, 0],\n \"olivedrab\": [107, 142, 35],\n \"orange\": [255, 165, 0],\n \"orangered\": [255, 69, 0],\n \"orchid\": [218, 112, 214],\n \"palegoldenrod\": [238, 232, 170],\n \"palegreen\": [152, 251, 152],\n \"paleturquoise\": [175, 238, 238],\n \"palevioletred\": [219, 112, 147],\n \"papayawhip\": [255, 239, 213],\n \"peachpuff\": [255, 218, 185],\n \"peru\": [205, 133, 63],\n \"pink\": [255, 192, 203],\n \"plum\": [221, 160, 221],\n \"powderblue\": [176, 224, 230],\n \"purple\": [128, 0, 128],\n \"rebeccapurple\": [102, 51, 153],\n \"red\": [255, 0, 0],\n \"rosybrown\": [188, 143, 143],\n \"royalblue\": [65, 105, 225],\n \"saddlebrown\": [139, 69, 19],\n \"salmon\": [250, 128, 114],\n \"sandybrown\": [244, 164, 96],\n \"seagreen\": [46, 139, 87],\n \"seashell\": [255, 245, 238],\n \"sienna\": [160, 82, 45],\n \"silver\": [192, 192, 192],\n \"skyblue\": [135, 206, 235],\n \"slateblue\": [106, 90, 205],\n \"slategray\": [112, 128, 144],\n \"slategrey\": [112, 128, 144],\n \"snow\": [255, 250, 250],\n \"springgreen\": [0, 255, 127],\n \"steelblue\": [70, 130, 180],\n \"tan\": [210, 180, 140],\n \"teal\": [0, 128, 128],\n \"thistle\": [216, 191, 216],\n \"tomato\": [255, 99, 71],\n \"turquoise\": [64, 224, 208],\n \"violet\": [238, 130, 238],\n \"wheat\": [245, 222, 179],\n \"white\": [255, 255, 255],\n \"whitesmoke\": [245, 245, 245],\n \"yellow\": [255, 255, 0],\n \"yellowgreen\": [154, 205, 50]\n };\n\n},{}],6:[function(require,module,exports){\n//! moment.js\n//! version : 2.18.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n ;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n }(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks () {\n return hookCallback.apply(null, arguments);\n }\n\n// This is done to register the method called with moment()\n// without creating circular dependencies.\n function setHookCallback (callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return input != null && Object.prototype.toString.call(input) === '[object Object]';\n }\n\n function isObjectEmpty(obj) {\n var k;\n for (k in obj) {\n // even if its not own property I'd still call it non-empty\n return false;\n }\n return true;\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';\n }\n\n function isDate(input) {\n return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';\n }\n\n function map(arr, fn) {\n var res = [], i;\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC (input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty : false,\n unusedTokens : [],\n unusedInput : [],\n overflow : -2,\n charsLeftOver : 0,\n nullInput : false,\n invalidMonth : null,\n invalidFormat : false,\n userInvalidated : false,\n iso : false,\n parsedDateParts : [],\n meridiem : null,\n rfc2822 : false,\n weekdayMismatch : false\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this);\n var len = t.length >>> 0;\n\n for (var i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n var some$1 = some;\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m);\n var parsedParts = some$1.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n var isNowValid = !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid = isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n }\n else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid (flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n }\n else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n// Plugins that add properties should also add the key here (null value),\n// so we can properly clone ourselves.\n var momentProperties = hooks.momentProperties = [];\n\n function copyConfig(to, from) {\n var i, prop, val;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n var updateInProgress = false;\n\n// Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment (obj) {\n return obj instanceof Moment || (obj != null && obj._isAMomentObject != null);\n }\n\n function absFloor (number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n// compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if ((dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n function warn(msg) {\n if (hooks.suppressDeprecationWarnings === false &&\n (typeof console !== 'undefined') && console.warn) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [];\n var arg;\n for (var i = 0; i < arguments.length; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (var key in arguments[0]) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(msg + '\\nArguments: ' + Array.prototype.slice.call(args).join('') + '\\n' + (new Error()).stack);\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n\n function set (config) {\n var prop, i;\n for (i in config) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' + (/\\d{1,2}/).source);\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig), prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i, res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var keys$1 = keys;\n\n var defaultCalendar = {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n };\n\n function calendar (key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n var defaultLongDateFormat = {\n LTS : 'h:mm:ss A',\n LT : 'h:mm A',\n L : 'MM/DD/YYYY',\n LL : 'MMMM D, YYYY',\n LLL : 'MMMM D, YYYY h:mm A',\n LLLL : 'dddd, MMMM D, YYYY h:mm A'\n };\n\n function longDateFormat (key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) {\n return val.slice(1);\n });\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate () {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d';\n var defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal (number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n };\n\n function relativeTime (number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return (isFunction(output)) ?\n output(number, withoutSuffix, string, isFuture) :\n output.replace(/%d/i, number);\n }\n\n function pastFuture (diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias (unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [];\n for (var u in unitsObj) {\n units.push({unit: u, priority: priorities[u]});\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function makeGetSet (unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get (mom, unit) {\n return mom.isValid() ?\n mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;\n }\n\n function set$1 (mom, unit, value) {\n if (mom.isValid()) {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n\n// MOMENTS\n\n function stringGet (units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n\n function stringSet (units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units);\n for (var i = 0; i < prioritized.length; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;\n\n var localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g;\n\n var formatFunctions = {};\n\n var formatTokenFunctions = {};\n\n// token: 'M'\n// padded: ['MM', 2]\n// ordinal: 'Mo'\n// callback: function () { this.month() + 1 }\n function addFormatToken (token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(func.apply(this, arguments), token);\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens), i, length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '', i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];\n }\n return output;\n };\n }\n\n// format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var match1 = /\\d/; // 0 - 9\n var match2 = /\\d\\d/; // 00 - 99\n var match3 = /\\d{3}/; // 000 - 999\n var match4 = /\\d{4}/; // 0000 - 9999\n var match6 = /[+-]?\\d{6}/; // -999999 - 999999\n var match1to2 = /\\d\\d?/; // 0 - 99\n var match3to4 = /\\d\\d\\d\\d?/; // 999 - 9999\n var match5to6 = /\\d\\d\\d\\d\\d\\d?/; // 99999 - 999999\n var match1to3 = /\\d{1,3}/; // 0 - 999\n var match1to4 = /\\d{1,4}/; // 0 - 9999\n var match1to6 = /[+-]?\\d{1,6}/; // -999999 - 999999\n\n var matchUnsigned = /\\d+/; // 0 - inf\n var matchSigned = /[+-]?\\d+/; // -inf - inf\n\n var matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi; // +00:00 -00:00 +0000 -0000 or Z\n var matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n\n var matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/; // 123456789 123456789.123\n\n// any word (or two) characters or numbers including two/three word month in arabic.\n// includes scottish gaelic two word and hyphenated months\n var matchWord = /[0-9]*['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+|[\\u0600-\\u06FF\\/]+(\\s*?[\\u0600-\\u06FF]+){1,2}/i;\n\n\n var regexes = {};\n\n function addRegexToken (token, regex, strictRegex) {\n regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {\n return (isStrict && strictRegex) ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken (token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(s.replace('\\\\', '').replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }));\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken (token, callback) {\n var i, func = callback;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken (token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0;\n var MONTH = 1;\n var DATE = 2;\n var HOUR = 3;\n var MINUTE = 4;\n var SECOND = 5;\n var MILLISECOND = 6;\n var WEEK = 7;\n var WEEKDAY = 8;\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n var indexOf$1 = indexOf;\n\n function daysInMonth(year, month) {\n return new Date(Date.UTC(year, month + 1, 0)).getUTCDate();\n }\n\n// FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n// ALIASES\n\n addUnitAlias('month', 'M');\n\n// PRIORITY\n\n addUnitPriority('month', 8);\n\n// PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n// LOCALES\n\n var MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/;\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_');\n function localeMonths (m, format) {\n if (!m) {\n return isArray(this._months) ? this._months :\n this._months['standalone'];\n }\n return isArray(this._months) ? this._months[m.month()] :\n this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');\n function localeMonthsShort (m, format) {\n if (!m) {\n return isArray(this._monthsShort) ? this._monthsShort :\n this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort) ? this._monthsShort[m.month()] :\n this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i, ii, mom, llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf$1.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf$1.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf$1.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf$1.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf$1.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf$1.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse (monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');\n this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');\n }\n if (!strict && !this._monthsParse[i]) {\n regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {\n return i;\n } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n// MOMENTS\n\n function setMonth (mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth (value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth () {\n return daysInMonth(this.year(), this.month());\n }\n\n var defaultMonthsShortRegex = matchWord;\n function monthsShortRegex (isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict ?\n this._monthsShortStrictRegex : this._monthsShortRegex;\n }\n }\n\n var defaultMonthsRegex = matchWord;\n function monthsRegex (isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict ?\n this._monthsStrictRegex : this._monthsRegex;\n }\n }\n\n function computeMonthsParse () {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [], longPieces = [], mixedPieces = [],\n i, mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n }\n\n// FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? '' + y : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n// ALIASES\n\n addUnitAlias('year', 'y');\n\n// PRIORITIES\n\n addUnitPriority('year', 1);\n\n// PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n// HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n// HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n// MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear () {\n return isLeapYear(this.year());\n }\n\n function createDate (y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date = new Date(y, m, d, h, M, s, ms);\n\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0 && isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n return date;\n }\n\n function createUTCDate (y) {\n var date = new Date(Date.UTC.apply(null, arguments));\n\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n return date;\n }\n\n// start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n// https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear, resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek, resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n// FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n// ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n// PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n// PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n });\n\n// HELPERS\n\n// LOCALES\n\n function localeWeek (mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 1st is the first week of the year.\n };\n\n function localeFirstDayOfWeek () {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear () {\n return this._week.doy;\n }\n\n// MOMENTS\n\n function getSetWeek (input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek (input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n// FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n// ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n// PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n// PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n// HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n// LOCALES\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');\n function localeWeekdays (m, format) {\n if (!m) {\n return isArray(this._weekdays) ? this._weekdays :\n this._weekdays['standalone'];\n }\n return isArray(this._weekdays) ? this._weekdays[m.day()] :\n this._weekdays[this._weekdays.isFormat.test(format) ? 'format' : 'standalone'][m.day()];\n }\n\n var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');\n function localeWeekdaysShort (m) {\n return (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort;\n }\n\n var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');\n function localeWeekdaysMin (m) {\n return (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i, ii, mom, llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf$1.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf$1.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf$1.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf$1.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf$1.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf$1.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf$1.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf$1.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf$1.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf$1.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf$1.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf$1.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse (weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\.?') + '$', 'i');\n this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$', 'i');\n this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$', 'i');\n }\n if (!this._weekdaysParse[i]) {\n regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n// MOMENTS\n\n function getSetDayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n var defaultWeekdaysRegex = matchWord;\n function weekdaysRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict ?\n this._weekdaysStrictRegex : this._weekdaysRegex;\n }\n }\n\n var defaultWeekdaysShortRegex = matchWord;\n function weekdaysShortRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict ?\n this._weekdaysShortStrictRegex : this._weekdaysShortRegex;\n }\n }\n\n var defaultWeekdaysMinRegex = matchWord;\n function weekdaysMinRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict ?\n this._weekdaysMinStrictRegex : this._weekdaysMinRegex;\n }\n }\n\n\n function computeWeekdaysParse () {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [],\n i, mom, minp, shortp, longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = this.weekdaysMin(mom, '');\n shortp = this.weekdaysShort(mom, '');\n longp = this.weekdays(mom, '');\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 7; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');\n }\n\n// FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2);\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2);\n });\n\n function meridiem (token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n// ALIASES\n\n addUnitAlias('hour', 'h');\n\n// PRIORITY\n addUnitPriority('hour', 13);\n\n// PARSING\n\n function matchMeridiem (isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4;\n var pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4;\n var pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n// LOCALES\n\n function localeIsPM (input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return ((input + '').toLowerCase().charAt(0) === 'p');\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i;\n function localeMeridiem (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n\n// MOMENTS\n\n// Setting the hour should keep the time, because the user explicitly\n// specified which hour he wants. So trying to maintain the same hour (in\n// a new timezone) makes sense. Adding/subtracting hours does not follow\n// this rule.\n var getSetHour = makeGetSet('Hours', true);\n\n// months\n// week\n// weekdays\n// meridiem\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse\n };\n\n// internal storage for locale config files\n var locales = {};\n var localeFamilies = {};\n var globalLocale;\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n// pick the locale from the array\n// try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n// substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0, j, next, locale, split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return null;\n }\n\n function loadLocale(name) {\n var oldLocale = null;\n // TODO: Find a better way to register and load all the locales in Node\n if (!locales[name] && (typeof module !== 'undefined') &&\n module && module.exports) {\n try {\n oldLocale = globalLocale._abbr;\n require('./locale/' + name);\n // because defineLocale currently also sets the global locale, we\n // want to undo that for lazy loaded locales\n getSetGlobalLocale(oldLocale);\n } catch (e) { }\n }\n return locales[name];\n }\n\n// This function will load locale and then set the global locale. If\n// no arguments are passed in, it will simply return the current global\n// locale key.\n function getSetGlobalLocale (key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n }\n else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale (name, config) {\n if (config !== null) {\n var parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple('defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config\n });\n return null;\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale, parentConfig = baseConfig;\n // MERGE\n if (locales[name] != null) {\n parentConfig = locales[name]._config;\n }\n config = mergeConfigs(parentConfig, config);\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n// returns locale data\n function getLocale (key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys$1(locales);\n }\n\n function checkOverflow (m) {\n var overflow;\n var a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11 ? MONTH :\n a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE :\n a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR :\n a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE :\n a[SECOND] < 0 || a[SECOND] > 59 ? SECOND :\n a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :\n -1;\n\n if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n// iso 8601 regex\n// 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\n var basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\n\n var tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/;\n\n var isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n // YYYYMM is NOT allowed by the standard\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/]\n ];\n\n// iso time formats and regexes\n var isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/]\n ];\n\n var aspNetJsonRegex = /^\\/?Date\\((\\-?\\d+)/i;\n\n// date from iso format\n function configFromISO(config) {\n var i, l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime, dateFormat, timeFormat, tzFormat;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n// RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n var basicRfcRegex = /^((?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d?\\d\\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(?:\\d\\d)?\\d\\d\\s)(\\d\\d:\\d\\d)(\\:\\d\\d)?(\\s(?:UT|GMT|[ECMP][SD]T|[A-IK-Za-ik-z]|[+-]\\d{4}))$/;\n\n// date and time from ref 2822 format\n function configFromRFC2822(config) {\n var string, match, dayFormat,\n dateFormat, timeFormat, tzFormat;\n var timezones = {\n ' GMT': ' +0000',\n ' EDT': ' -0400',\n ' EST': ' -0500',\n ' CDT': ' -0500',\n ' CST': ' -0600',\n ' MDT': ' -0600',\n ' MST': ' -0700',\n ' PDT': ' -0700',\n ' PST': ' -0800'\n };\n var military = 'YXWVUTSRQPONZABCDEFGHIKLM';\n var timezone, timezoneIndex;\n\n string = config._i\n .replace(/\\([^\\)]*\\)|[\\n\\t]/g, ' ') // Remove comments and folding whitespace\n .replace(/(\\s\\s+)/g, ' ') // Replace multiple-spaces with a single space\n .replace(/^\\s|\\s$/g, ''); // Remove leading and trailing spaces\n match = basicRfcRegex.exec(string);\n\n if (match) {\n dayFormat = match[1] ? 'ddd' + ((match[1].length === 5) ? ', ' : ' ') : '';\n dateFormat = 'D MMM ' + ((match[2].length > 10) ? 'YYYY ' : 'YY ');\n timeFormat = 'HH:mm' + (match[4] ? ':ss' : '');\n\n // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check.\n if (match[1]) { // day of week given\n var momentDate = new Date(match[2]);\n var momentDay = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'][momentDate.getDay()];\n\n if (match[1].substr(0,3) !== momentDay) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return;\n }\n }\n\n switch (match[5].length) {\n case 2: // military\n if (timezoneIndex === 0) {\n timezone = ' +0000';\n } else {\n timezoneIndex = military.indexOf(match[5][1].toUpperCase()) - 12;\n timezone = ((timezoneIndex < 0) ? ' -' : ' +') +\n (('' + timezoneIndex).replace(/^-?/, '0')).match(/..$/)[0] + '00';\n }\n break;\n case 4: // Zone\n timezone = timezones[match[5]];\n break;\n default: // UT or +/-9999\n timezone = timezones[' GMT'];\n }\n match[5] = timezone;\n config._i = match.splice(1).join('');\n tzFormat = ' ZZ';\n config._f = dayFormat + dateFormat + timeFormat + tzFormat;\n configFromStringAndFormat(config);\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n// date from iso format or fallback\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged and will be removed in an upcoming major release. Please refer to ' +\n 'http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n// Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n// convert an array to a date.\n// the array should mirror the parameters below\n// note: all values past the year are optional and will default to the lowest possible value.\n// [year, month, day , hour, minute, second, millisecond]\n function configFromArray (config) {\n var i, date, input = [], currentDate, yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n var curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from begining of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to begining of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n// constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n// constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n// date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i, parsedInput, tokens, token, skipped,\n stringLength = string.length,\n totalParsedInputLength = 0;\n\n tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];\n // console.log('token', token, 'parsedInput', parsedInput,\n // 'regex', getParseRegexForToken(token, config));\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(string.indexOf(parsedInput) + parsedInput.length);\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n }\n else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n }\n else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n\n function meridiemFixWrap (locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n// date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n\n scoreToBeat,\n i,\n currentScore;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (!isValid(tempConfig)) {\n continue;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (scoreToBeat == null || currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i);\n config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) {\n return obj && parseInt(obj, 10);\n });\n\n configFromArray(config);\n }\n\n function createFromConfig (config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig (config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({nullInput: true});\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC (input, format, locale, strict, isUTC) {\n var c = {};\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if ((isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal (input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n var prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n// Pick a moment m from moments so that m[fn](other) is true for all\n// other. This relies on the function fn to be transitive.\n//\n// moments should either be an array of moment objects or an array, whose\n// first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n// TODO: Use [].sort instead?\n function min () {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max () {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +(new Date());\n };\n\n var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];\n\n function isDurationValid(m) {\n for (var key in m) {\n if (!(ordering.indexOf(key) !== -1 && (m[key] == null || !isNaN(m[key])))) {\n return false;\n }\n }\n\n var unitHasDecimal = false;\n for (var i = 0; i < ordering.length; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration (duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds = +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days +\n weeks * 7;\n // It is impossible translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months +\n quarters * 3 +\n years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration (obj) {\n return obj instanceof Duration;\n }\n\n function absRound (number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n// FORMATTING\n\n function offset (token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset();\n var sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n// PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n// HELPERS\n\n// timezone chunker\n// '+10:00' > ['10', '00']\n// '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher);\n\n if (matches === null) {\n return null;\n }\n\n var chunk = matches[matches.length - 1] || [];\n var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n var minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ?\n 0 :\n parts[0] === '+' ? minutes : -minutes;\n }\n\n// Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset (m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset() / 15) * 15;\n }\n\n// HOOKS\n\n// This function will be called whenever a moment is mutated.\n// It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n// MOMENTS\n\n// keepLocalTime = true means only change the timezone, without\n// affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n// +0200, so we adjust the time as needed, to be valid.\n//\n// Keeping the time actually adds/subtracts (one hour)\n// from the actual represented time. That is why we call updateOffset\n// a second time. In case it wants us to change the offset again\n// _changeInProgress == true case, then we have to adjust, because\n// there is no such time in the given timezone.\n function getSetOffset (input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(this, createDuration(input - offset, 'm'), 1, false);\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone (input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC (keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal (keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset () {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n }\n else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset (input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime () {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted () {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {};\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n var other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted = this.isValid() &&\n compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal () {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset () {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc () {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n// ASP.NET json date format regex\n var aspNetRegex = /^(\\-)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$/;\n\n// from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n// somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n// and further modified to allow for strings containing both week and day\n var isoRegex = /^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;\n\n function createDuration (input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms : input._milliseconds,\n d : input._days,\n M : input._months\n };\n } else if (isNumber(input)) {\n duration = {};\n if (key) {\n duration[key] = input;\n } else {\n duration.milliseconds = input;\n }\n } else if (!!(match = aspNetRegex.exec(input))) {\n sign = (match[1] === '-') ? -1 : 1;\n duration = {\n y : 0,\n d : toInt(match[DATE]) * sign,\n h : toInt(match[HOUR]) * sign,\n m : toInt(match[MINUTE]) * sign,\n s : toInt(match[SECOND]) * sign,\n ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match\n };\n } else if (!!(match = isoRegex.exec(input))) {\n sign = (match[1] === '-') ? -1 : 1;\n duration = {\n y : parseIso(match[2], sign),\n M : parseIso(match[3], sign),\n w : parseIso(match[4], sign),\n d : parseIso(match[5], sign),\n h : parseIso(match[6], sign),\n m : parseIso(match[7], sign),\n s : parseIso(match[8], sign)\n };\n } else if (duration == null) {// checks for null or undefined\n duration = {};\n } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {\n diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso (inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {milliseconds: 0, months: 0};\n\n res.months = other.month() - base.month() +\n (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +(base.clone().add(res.months, 'M'));\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return {milliseconds: 0, months: 0};\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n// TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');\n tmp = val; val = period; period = tmp;\n }\n\n val = typeof val === 'string' ? +val : val;\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract (mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add');\n var subtract = createAdder(-1, 'subtract');\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6 ? 'sameElse' :\n diff < -1 ? 'lastWeek' :\n diff < 0 ? 'lastDay' :\n diff < 1 ? 'sameDay' :\n diff < 2 ? 'nextDay' :\n diff < 7 ? 'nextWeek' : 'sameElse';\n }\n\n function calendar$1 (time, formats) {\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse';\n\n var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);\n\n return this.format(output || this.localeData().calendar(format, this, createLocal(now)));\n }\n\n function clone () {\n return new Moment(this);\n }\n\n function isAfter (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween (from, to, units, inclusivity) {\n inclusivity = inclusivity || '()';\n return (inclusivity[0] === '(' ? this.isAfter(from, units) : !this.isBefore(from, units)) &&\n (inclusivity[1] === ')' ? this.isBefore(to, units) : !this.isAfter(to, units));\n }\n\n function isSame (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units || 'millisecond');\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();\n }\n }\n\n function isSameOrAfter (input, units) {\n return this.isSame(input, units) || this.isAfter(input,units);\n }\n\n function isSameOrBefore (input, units) {\n return this.isSame(input, units) || this.isBefore(input,units);\n }\n\n function diff (input, units, asFloat) {\n var that,\n zoneDelta,\n delta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n if (units === 'year' || units === 'month' || units === 'quarter') {\n output = monthDiff(this, that);\n if (units === 'quarter') {\n output = output / 3;\n } else if (units === 'year') {\n output = output / 12;\n }\n } else {\n delta = this - that;\n output = units === 'second' ? delta / 1e3 : // 1000\n units === 'minute' ? delta / 6e4 : // 1000 * 60\n units === 'hour' ? delta / 36e5 : // 1000 * 60 * 60\n units === 'day' ? (delta - zoneDelta) / 864e5 : // 1000 * 60 * 60 * 24, negate dst\n units === 'week' ? (delta - zoneDelta) / 6048e5 : // 1000 * 60 * 60 * 24 * 7, negate dst\n delta;\n }\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff (a, b) {\n // difference in months\n var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2, adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString () {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString() {\n if (!this.isValid()) {\n return null;\n }\n var m = this.clone().utc();\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]');\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n return this.toDate().toISOString();\n }\n return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]');\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect () {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment';\n var zone = '';\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n var prefix = '[' + func + '(\"]';\n var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY';\n var datetime = '-MM-DD[T]HH:mm:ss.SSS';\n var suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format (inputString) {\n if (!inputString) {\n inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from (time, withoutSuffix) {\n if (this.isValid() &&\n ((isMoment(time) && time.isValid()) ||\n createLocal(time).isValid())) {\n return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow (withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to (time, withoutSuffix) {\n if (this.isValid() &&\n ((isMoment(time) && time.isValid()) ||\n createLocal(time).isValid())) {\n return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow (withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n// If passed a locale key, it will set the locale for this\n// instance. Otherwise, it will return the locale configuration\n// variables for this instance.\n function locale (key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData () {\n return this._locale;\n }\n\n function startOf (units) {\n units = normalizeUnits(units);\n // the following switch intentionally omits break keywords\n // to utilize falling through the cases.\n switch (units) {\n case 'year':\n this.month(0);\n\t\t\t\t/* falls through */\n case 'quarter':\n case 'month':\n this.date(1);\n\t\t\t\t/* falls through */\n case 'week':\n case 'isoWeek':\n case 'day':\n case 'date':\n this.hours(0);\n\t\t\t\t/* falls through */\n case 'hour':\n this.minutes(0);\n\t\t\t\t/* falls through */\n case 'minute':\n this.seconds(0);\n\t\t\t\t/* falls through */\n case 'second':\n this.milliseconds(0);\n }\n\n // weeks are a special case\n if (units === 'week') {\n this.weekday(0);\n }\n if (units === 'isoWeek') {\n this.isoWeekday(1);\n }\n\n // quarters are also special\n if (units === 'quarter') {\n this.month(Math.floor(this.month() / 3) * 3);\n }\n\n return this;\n }\n\n function endOf (units) {\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond') {\n return this;\n }\n\n // 'date' is an alias for 'day', so it should be considered as such.\n if (units === 'date') {\n units = 'day';\n }\n\n return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms');\n }\n\n function valueOf () {\n return this._d.valueOf() - ((this._offset || 0) * 60000);\n }\n\n function unix () {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate () {\n return new Date(this.valueOf());\n }\n\n function toArray () {\n var m = this;\n return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];\n }\n\n function toObject () {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds()\n };\n }\n\n function toJSON () {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2 () {\n return isValid(this);\n }\n\n function parsingFlags () {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt () {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict\n };\n }\n\n// FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken (token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n// ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n// PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n\n// PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n });\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n// MOMENTS\n\n function getSetWeekYear (input) {\n return getSetWeekYearHelper.call(this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy);\n }\n\n function getSetISOWeekYear (input) {\n return getSetWeekYearHelper.call(this,\n input, this.isoWeek(), this.isoWeekday(), 1, 4);\n }\n\n function getISOWeeksInYear () {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getWeeksInYear () {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n// FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n// ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n// PRIORITY\n\n addUnitPriority('quarter', 7);\n\n// PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n// MOMENTS\n\n function getSetQuarter (input) {\n return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);\n }\n\n// FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n// ALIASES\n\n addUnitAlias('date', 'D');\n\n// PRIOROITY\n addUnitPriority('date', 9);\n\n// PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict ?\n (locale._dayOfMonthOrdinalParse || locale._ordinalParse) :\n locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0], 10);\n });\n\n// MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n// FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n// ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n// PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n// PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n// HELPERS\n\n// MOMENTS\n\n function getSetDayOfYear (input) {\n var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;\n return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');\n }\n\n// FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n// ALIASES\n\n addUnitAlias('minute', 'm');\n\n// PRIORITY\n\n addUnitPriority('minute', 14);\n\n// PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n// MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n// FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n// ALIASES\n\n addUnitAlias('second', 's');\n\n// PRIORITY\n\n addUnitPriority('second', 15);\n\n// PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n// MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n// FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n\n// ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n// PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n// PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n// MOMENTS\n\n var getSetMillisecond = makeGetSet('Milliseconds', false);\n\n// FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n// MOMENTS\n\n function getZoneAbbr () {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName () {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n\n// Year\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n\n// Week Year\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n\n// Quarter\n proto.quarter = proto.quarters = getSetQuarter;\n\n// Month\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n\n// Week\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n\n// Day\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n\n// Hour\n proto.hour = proto.hours = getSetHour;\n\n// Minute\n proto.minute = proto.minutes = getSetMinute;\n\n// Second\n proto.second = proto.seconds = getSetSecond;\n\n// Millisecond\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n\n// Offset\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n\n// Timezone\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n\n// Deprecations\n proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);\n proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);\n proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);\n proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);\n proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);\n\n function createUnix (input) {\n return createLocal(input * 1000);\n }\n\n function createInZone () {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat (string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n\n// Month\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n\n// Week\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n// Day of Week\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n// Hours\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1 (format, index, field, setter) {\n var locale = getLocale();\n var utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl (format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i;\n var out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n// ()\n// (5)\n// (fmt, 5)\n// (fmt)\n// (true)\n// (true, 5)\n// (true, fmt, 5)\n// (true, fmt)\n function listWeekdaysImpl (localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0;\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n var i;\n var out = [];\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths (format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort (format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (toInt(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n }\n });\n\n// Side effect imports\n hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);\n hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);\n\n var mathAbs = Math.abs;\n\n function abs () {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1 (duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n// supports only 2.0-style add(1, 's') or add(duration)\n function add$1 (input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n// supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1 (input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil (number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble () {\n var milliseconds = this._milliseconds;\n var days = this._days;\n var months = this._months;\n var data = this._data;\n var seconds, minutes, hours, years, monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (!((milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0))) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths (days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return days * 4800 / 146097;\n }\n\n function monthsToDays (months) {\n // the reverse of daysToMonths\n return months * 146097 / 4800;\n }\n\n function as (units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days;\n var months;\n var milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n return units === 'month' ? months : months / 12;\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week' : return days / 7 + milliseconds / 6048e5;\n case 'day' : return days + milliseconds / 864e5;\n case 'hour' : return days * 24 + milliseconds / 36e5;\n case 'minute' : return days * 1440 + milliseconds / 6e4;\n case 'second' : return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond': return Math.floor(days * 864e5) + milliseconds;\n default: throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n// TODO: Use this.as('ms')?\n function valueOf$1 () {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs (alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms');\n var asSeconds = makeAs('s');\n var asMinutes = makeAs('m');\n var asHours = makeAs('h');\n var asDays = makeAs('d');\n var asWeeks = makeAs('w');\n var asMonths = makeAs('M');\n var asYears = makeAs('y');\n\n function get$2 (units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds');\n var seconds = makeGetter('seconds');\n var minutes = makeGetter('minutes');\n var hours = makeGetter('hours');\n var days = makeGetter('days');\n var months = makeGetter('months');\n var years = makeGetter('years');\n\n function weeks () {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round;\n var thresholds = {\n ss: 44, // a few seconds to seconds\n s : 45, // seconds to minute\n m : 45, // minutes to hour\n h : 22, // hours to day\n d : 26, // days to month\n M : 11 // months to year\n };\n\n// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1 (posNegDuration, withoutSuffix, locale) {\n var duration = createDuration(posNegDuration).abs();\n var seconds = round(duration.as('s'));\n var minutes = round(duration.as('m'));\n var hours = round(duration.as('h'));\n var days = round(duration.as('d'));\n var months = round(duration.as('M'));\n var years = round(duration.as('y'));\n\n var a = seconds <= thresholds.ss && ['s', seconds] ||\n seconds < thresholds.s && ['ss', seconds] ||\n minutes <= 1 && ['m'] ||\n minutes < thresholds.m && ['mm', minutes] ||\n hours <= 1 && ['h'] ||\n hours < thresholds.h && ['hh', hours] ||\n days <= 1 && ['d'] ||\n days < thresholds.d && ['dd', days] ||\n months <= 1 && ['M'] ||\n months < thresholds.M && ['MM', months] ||\n years <= 1 && ['y'] || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n// This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding (roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof(roundingFunction) === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n// This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold (threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize (withSuffix) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var locale = this.localeData();\n var output = relativeTime$1(this, !withSuffix, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000;\n var days = abs$1(this._days);\n var months = abs$1(this._months);\n var minutes, hours, years;\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n var Y = years;\n var M = months;\n var D = days;\n var h = hours;\n var m = minutes;\n var s = seconds;\n var total = this.asSeconds();\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n return (total < 0 ? '-' : '') +\n 'P' +\n (Y ? Y + 'Y' : '') +\n (M ? M + 'M' : '') +\n (D ? D + 'D' : '') +\n ((h || m || s) ? 'T' : '') +\n (h ? h + 'H' : '') +\n (m ? m + 'M' : '') +\n (s ? s + 'S' : '');\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n// Deprecations\n proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);\n proto$2.lang = lang;\n\n// Side effect imports\n\n// FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n// PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input, 10) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n// Side effect imports\n\n\n hooks.version = '2.18.1';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n return hooks;\n\n })));\n\n},{}],7:[function(require,module,exports){\n /**\n * @namespace Chart\n */\n var Chart = require(29)();\n\n Chart.helpers = require(45);\n\n// @todo dispatch these helpers into appropriated helpers/helpers.* file and write unit tests!\n require(27)(Chart);\n\n Chart.defaults = require(25);\n Chart.Element = require(26);\n Chart.elements = require(40);\n Chart.Interaction = require(28);\n Chart.platform = require(48);\n\n require(31)(Chart);\n require(22)(Chart);\n require(23)(Chart);\n require(24)(Chart);\n require(30)(Chart);\n require(33)(Chart);\n require(32)(Chart);\n require(35)(Chart);\n\n require(54)(Chart);\n require(52)(Chart);\n require(53)(Chart);\n require(55)(Chart);\n require(56)(Chart);\n require(57)(Chart);\n\n// Controllers must be loaded after elements\n// See Chart.core.datasetController.dataElementType\n require(15)(Chart);\n require(16)(Chart);\n require(17)(Chart);\n require(18)(Chart);\n require(19)(Chart);\n require(20)(Chart);\n require(21)(Chart);\n\n require(8)(Chart);\n require(9)(Chart);\n require(10)(Chart);\n require(11)(Chart);\n require(12)(Chart);\n require(13)(Chart);\n require(14)(Chart);\n\n// Loading built-it plugins\n var plugins = [];\n\n plugins.push(\n require(49)(Chart),\n require(50)(Chart),\n require(51)(Chart)\n );\n\n Chart.plugins.register(plugins);\n\n Chart.platform.initialize();\n\n module.exports = Chart;\n if (typeof window !== 'undefined') {\n window.Chart = Chart;\n }\n\n// DEPRECATIONS\n\n /**\n * Provided for backward compatibility, use Chart.helpers.canvas instead.\n * @namespace Chart.canvasHelpers\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n * @private\n */\n Chart.canvasHelpers = Chart.helpers.canvas;\n\n},{\"10\":10,\"11\":11,\"12\":12,\"13\":13,\"14\":14,\"15\":15,\"16\":16,\"17\":17,\"18\":18,\"19\":19,\"20\":20,\"21\":21,\"22\":22,\"23\":23,\"24\":24,\"25\":25,\"26\":26,\"27\":27,\"28\":28,\"29\":29,\"30\":30,\"31\":31,\"32\":32,\"33\":33,\"35\":35,\"40\":40,\"45\":45,\"48\":48,\"49\":49,\"50\":50,\"51\":51,\"52\":52,\"53\":53,\"54\":54,\"55\":55,\"56\":56,\"57\":57,\"8\":8,\"9\":9}],8:[function(require,module,exports){\n 'use strict';\n\n module.exports = function(Chart) {\n\n Chart.Bar = function(context, config) {\n config.type = 'bar';\n\n return new Chart(context, config);\n };\n\n };\n\n},{}],9:[function(require,module,exports){\n 'use strict';\n\n module.exports = function(Chart) {\n\n Chart.Bubble = function(context, config) {\n config.type = 'bubble';\n return new Chart(context, config);\n };\n\n };\n\n},{}],10:[function(require,module,exports){\n 'use strict';\n\n module.exports = function(Chart) {\n\n Chart.Doughnut = function(context, config) {\n config.type = 'doughnut';\n\n return new Chart(context, config);\n };\n\n };\n\n},{}],11:[function(require,module,exports){\n 'use strict';\n\n module.exports = function(Chart) {\n\n Chart.Line = function(context, config) {\n config.type = 'line';\n\n return new Chart(context, config);\n };\n\n };\n\n},{}],12:[function(require,module,exports){\n 'use strict';\n\n module.exports = function(Chart) {\n\n Chart.PolarArea = function(context, config) {\n config.type = 'polarArea';\n\n return new Chart(context, config);\n };\n\n };\n\n},{}],13:[function(require,module,exports){\n 'use strict';\n\n module.exports = function(Chart) {\n\n Chart.Radar = function(context, config) {\n config.type = 'radar';\n\n return new Chart(context, config);\n };\n\n };\n\n},{}],14:[function(require,module,exports){\n 'use strict';\n\n module.exports = function(Chart) {\n Chart.Scatter = function(context, config) {\n config.type = 'scatter';\n return new Chart(context, config);\n };\n };\n\n},{}],15:[function(require,module,exports){\n 'use strict';\n\n var defaults = require(25);\n var elements = require(40);\n var helpers = require(45);\n\n defaults._set('bar', {\n hover: {\n mode: 'label'\n },\n\n scales: {\n xAxes: [{\n type: 'category',\n\n // Specific to Bar Controller\n categoryPercentage: 0.8,\n barPercentage: 0.9,\n\n // offset settings\n offset: true,\n\n // grid line settings\n gridLines: {\n offsetGridLines: true\n }\n }],\n\n yAxes: [{\n type: 'linear'\n }]\n }\n });\n\n defaults._set('horizontalBar', {\n hover: {\n mode: 'index',\n axis: 'y'\n },\n\n scales: {\n xAxes: [{\n type: 'linear',\n position: 'bottom'\n }],\n\n yAxes: [{\n position: 'left',\n type: 'category',\n\n // Specific to Horizontal Bar Controller\n categoryPercentage: 0.8,\n barPercentage: 0.9,\n\n // offset settings\n offset: true,\n\n // grid line settings\n gridLines: {\n offsetGridLines: true\n }\n }]\n },\n\n elements: {\n rectangle: {\n borderSkipped: 'left'\n }\n },\n\n tooltips: {\n callbacks: {\n title: function(item, data) {\n // Pick first xLabel for now\n var title = '';\n\n if (item.length > 0) {\n if (item[0].yLabel) {\n title = item[0].yLabel;\n } else if (data.labels.length > 0 && item[0].index < data.labels.length) {\n title = data.labels[item[0].index];\n }\n }\n\n return title;\n },\n\n label: function(item, data) {\n var datasetLabel = data.datasets[item.datasetIndex].label || '';\n return datasetLabel + ': ' + item.xLabel;\n }\n },\n mode: 'index',\n axis: 'y'\n }\n });\n\n module.exports = function(Chart) {\n\n Chart.controllers.bar = Chart.DatasetController.extend({\n\n dataElementType: elements.Rectangle,\n\n initialize: function() {\n var me = this;\n var meta;\n\n Chart.DatasetController.prototype.initialize.apply(me, arguments);\n\n meta = me.getMeta();\n meta.stack = me.getDataset().stack;\n meta.bar = true;\n },\n\n update: function(reset) {\n var me = this;\n var rects = me.getMeta().data;\n var i, ilen;\n\n me._ruler = me.getRuler();\n\n for (i = 0, ilen = rects.length; i < ilen; ++i) {\n me.updateElement(rects[i], i, reset);\n }\n },\n\n updateElement: function(rectangle, index, reset) {\n var me = this;\n var chart = me.chart;\n var meta = me.getMeta();\n var dataset = me.getDataset();\n var custom = rectangle.custom || {};\n var rectangleOptions = chart.options.elements.rectangle;\n\n rectangle._xScale = me.getScaleForId(meta.xAxisID);\n rectangle._yScale = me.getScaleForId(meta.yAxisID);\n rectangle._datasetIndex = me.index;\n rectangle._index = index;\n\n rectangle._model = {\n datasetLabel: dataset.label,\n label: chart.data.labels[index],\n borderSkipped: custom.borderSkipped ? custom.borderSkipped : rectangleOptions.borderSkipped,\n backgroundColor: custom.backgroundColor ? custom.backgroundColor : helpers.valueAtIndexOrDefault(dataset.backgroundColor, index, rectangleOptions.backgroundColor),\n borderColor: custom.borderColor ? custom.borderColor : helpers.valueAtIndexOrDefault(dataset.borderColor, index, rectangleOptions.borderColor),\n borderWidth: custom.borderWidth ? custom.borderWidth : helpers.valueAtIndexOrDefault(dataset.borderWidth, index, rectangleOptions.borderWidth)\n };\n\n me.updateElementGeometry(rectangle, index, reset);\n\n rectangle.pivot();\n },\n\n /**\n * @private\n */\n updateElementGeometry: function(rectangle, index, reset) {\n var me = this;\n var model = rectangle._model;\n var vscale = me.getValueScale();\n var base = vscale.getBasePixel();\n var horizontal = vscale.isHorizontal();\n var ruler = me._ruler || me.getRuler();\n var vpixels = me.calculateBarValuePixels(me.index, index);\n var ipixels = me.calculateBarIndexPixels(me.index, index, ruler);\n\n model.horizontal = horizontal;\n model.base = reset ? base : vpixels.base;\n model.x = horizontal ? reset ? base : vpixels.head : ipixels.center;\n model.y = horizontal ? ipixels.center : reset ? base : vpixels.head;\n model.height = horizontal ? ipixels.size : undefined;\n model.width = horizontal ? undefined : ipixels.size;\n },\n\n /**\n * @private\n */\n getValueScaleId: function() {\n return this.getMeta().yAxisID;\n },\n\n /**\n * @private\n */\n getIndexScaleId: function() {\n return this.getMeta().xAxisID;\n },\n\n /**\n * @private\n */\n getValueScale: function() {\n return this.getScaleForId(this.getValueScaleId());\n },\n\n /**\n * @private\n */\n getIndexScale: function() {\n return this.getScaleForId(this.getIndexScaleId());\n },\n\n /**\n * Returns the effective number of stacks based on groups and bar visibility.\n * @private\n */\n getStackCount: function(last) {\n var me = this;\n var chart = me.chart;\n var scale = me.getIndexScale();\n var stacked = scale.options.stacked;\n var ilen = last === undefined ? chart.data.datasets.length : last + 1;\n var stacks = [];\n var i, meta;\n\n for (i = 0; i < ilen; ++i) {\n meta = chart.getDatasetMeta(i);\n if (meta.bar && chart.isDatasetVisible(i) &&\n (stacked === false ||\n (stacked === true && stacks.indexOf(meta.stack) === -1) ||\n (stacked === undefined && (meta.stack === undefined || stacks.indexOf(meta.stack) === -1)))) {\n stacks.push(meta.stack);\n }\n }\n\n return stacks.length;\n },\n\n /**\n * Returns the stack index for the given dataset based on groups and bar visibility.\n * @private\n */\n getStackIndex: function(datasetIndex) {\n return this.getStackCount(datasetIndex) - 1;\n },\n\n /**\n * @private\n */\n getRuler: function() {\n var me = this;\n var scale = me.getIndexScale();\n var stackCount = me.getStackCount();\n var datasetIndex = me.index;\n var pixels = [];\n var isHorizontal = scale.isHorizontal();\n var start = isHorizontal ? scale.left : scale.top;\n var end = start + (isHorizontal ? scale.width : scale.height);\n var i, ilen;\n\n for (i = 0, ilen = me.getMeta().data.length; i < ilen; ++i) {\n pixels.push(scale.getPixelForValue(null, i, datasetIndex));\n }\n\n return {\n pixels: pixels,\n start: start,\n end: end,\n stackCount: stackCount,\n scale: scale\n };\n },\n\n /**\n * Note: pixel values are not clamped to the scale area.\n * @private\n */\n calculateBarValuePixels: function(datasetIndex, index) {\n var me = this;\n var chart = me.chart;\n var meta = me.getMeta();\n var scale = me.getValueScale();\n var datasets = chart.data.datasets;\n var value = scale.getRightValue(datasets[datasetIndex].data[index]);\n var stacked = scale.options.stacked;\n var stack = meta.stack;\n var start = 0;\n var i, imeta, ivalue, base, head, size;\n\n if (stacked || (stacked === undefined && stack !== undefined)) {\n for (i = 0; i < datasetIndex; ++i) {\n imeta = chart.getDatasetMeta(i);\n\n if (imeta.bar &&\n imeta.stack === stack &&\n imeta.controller.getValueScaleId() === scale.id &&\n chart.isDatasetVisible(i)) {\n\n ivalue = scale.getRightValue(datasets[i].data[index]);\n if ((value < 0 && ivalue < 0) || (value >= 0 && ivalue > 0)) {\n start += ivalue;\n }\n }\n }\n }\n\n base = scale.getPixelForValue(start);\n head = scale.getPixelForValue(start + value);\n size = (head - base) / 2;\n\n return {\n size: size,\n base: base,\n head: head,\n center: head + size / 2\n };\n },\n\n /**\n * @private\n */\n calculateBarIndexPixels: function(datasetIndex, index, ruler) {\n var me = this;\n var options = ruler.scale.options;\n var stackIndex = me.getStackIndex(datasetIndex);\n var pixels = ruler.pixels;\n var base = pixels[index];\n var length = pixels.length;\n var start = ruler.start;\n var end = ruler.end;\n var leftSampleSize, rightSampleSize, leftCategorySize, rightCategorySize, fullBarSize, size;\n\n if (length === 1) {\n leftSampleSize = base > start ? base - start : end - base;\n rightSampleSize = base < end ? end - base : base - start;\n } else {\n if (index > 0) {\n leftSampleSize = (base - pixels[index - 1]) / 2;\n if (index === length - 1) {\n rightSampleSize = leftSampleSize;\n }\n }\n if (index < length - 1) {\n rightSampleSize = (pixels[index + 1] - base) / 2;\n if (index === 0) {\n leftSampleSize = rightSampleSize;\n }\n }\n }\n\n leftCategorySize = leftSampleSize * options.categoryPercentage;\n rightCategorySize = rightSampleSize * options.categoryPercentage;\n fullBarSize = (leftCategorySize + rightCategorySize) / ruler.stackCount;\n size = fullBarSize * options.barPercentage;\n\n size = Math.min(\n helpers.valueOrDefault(options.barThickness, size),\n helpers.valueOrDefault(options.maxBarThickness, Infinity));\n\n base -= leftCategorySize;\n base += fullBarSize * stackIndex;\n base += (fullBarSize - size) / 2;\n\n return {\n size: size,\n base: base,\n head: base + size,\n center: base + size / 2\n };\n },\n\n draw: function() {\n var me = this;\n var chart = me.chart;\n var scale = me.getValueScale();\n var rects = me.getMeta().data;\n var dataset = me.getDataset();\n var ilen = rects.length;\n var i = 0;\n\n helpers.canvas.clipArea(chart.ctx, chart.chartArea);\n\n for (; i < ilen; ++i) {\n if (!isNaN(scale.getRightValue(dataset.data[i]))) {\n rects[i].draw();\n }\n }\n\n helpers.canvas.unclipArea(chart.ctx);\n },\n\n setHoverStyle: function(rectangle) {\n var dataset = this.chart.data.datasets[rectangle._datasetIndex];\n var index = rectangle._index;\n var custom = rectangle.custom || {};\n var model = rectangle._model;\n\n model.backgroundColor = custom.hoverBackgroundColor ? custom.hoverBackgroundColor : helpers.valueAtIndexOrDefault(dataset.hoverBackgroundColor, index, helpers.getHoverColor(model.backgroundColor));\n model.borderColor = custom.hoverBorderColor ? custom.hoverBorderColor : helpers.valueAtIndexOrDefault(dataset.hoverBorderColor, index, helpers.getHoverColor(model.borderColor));\n model.borderWidth = custom.hoverBorderWidth ? custom.hoverBorderWidth : helpers.valueAtIndexOrDefault(dataset.hoverBorderWidth, index, model.borderWidth);\n },\n\n removeHoverStyle: function(rectangle) {\n var dataset = this.chart.data.datasets[rectangle._datasetIndex];\n var index = rectangle._index;\n var custom = rectangle.custom || {};\n var model = rectangle._model;\n var rectangleElementOptions = this.chart.options.elements.rectangle;\n\n model.backgroundColor = custom.backgroundColor ? custom.backgroundColor : helpers.valueAtIndexOrDefault(dataset.backgroundColor, index, rectangleElementOptions.backgroundColor);\n model.borderColor = custom.borderColor ? custom.borderColor : helpers.valueAtIndexOrDefault(dataset.borderColor, index, rectangleElementOptions.borderColor);\n model.borderWidth = custom.borderWidth ? custom.borderWidth : helpers.valueAtIndexOrDefault(dataset.borderWidth, index, rectangleElementOptions.borderWidth);\n }\n });\n\n Chart.controllers.horizontalBar = Chart.controllers.bar.extend({\n /**\n * @private\n */\n getValueScaleId: function() {\n return this.getMeta().xAxisID;\n },\n\n /**\n * @private\n */\n getIndexScaleId: function() {\n return this.getMeta().yAxisID;\n }\n });\n };\n\n},{\"25\":25,\"40\":40,\"45\":45}],16:[function(require,module,exports){\n 'use strict';\n\n var defaults = require(25);\n var elements = require(40);\n var helpers = require(45);\n\n defaults._set('bubble', {\n hover: {\n mode: 'single'\n },\n\n scales: {\n xAxes: [{\n type: 'linear', // bubble should probably use a linear scale by default\n position: 'bottom',\n id: 'x-axis-0' // need an ID so datasets can reference the scale\n }],\n yAxes: [{\n type: 'linear',\n position: 'left',\n id: 'y-axis-0'\n }]\n },\n\n tooltips: {\n callbacks: {\n title: function() {\n // Title doesn't make sense for scatter since we format the data as a point\n return '';\n },\n label: function(item, data) {\n var datasetLabel = data.datasets[item.datasetIndex].label || '';\n var dataPoint = data.datasets[item.datasetIndex].data[item.index];\n return datasetLabel + ': (' + item.xLabel + ', ' + item.yLabel + ', ' + dataPoint.r + ')';\n }\n }\n }\n });\n\n\n module.exports = function(Chart) {\n\n Chart.controllers.bubble = Chart.DatasetController.extend({\n /**\n * @protected\n */\n dataElementType: elements.Point,\n\n /**\n * @protected\n */\n update: function(reset) {\n var me = this;\n var meta = me.getMeta();\n var points = meta.data;\n\n // Update Points\n helpers.each(points, function(point, index) {\n me.updateElement(point, index, reset);\n });\n },\n\n /**\n * @protected\n */\n updateElement: function(point, index, reset) {\n var me = this;\n var meta = me.getMeta();\n var custom = point.custom || {};\n var xScale = me.getScaleForId(meta.xAxisID);\n var yScale = me.getScaleForId(meta.yAxisID);\n var options = me._resolveElementOptions(point, index);\n var data = me.getDataset().data[index];\n var dsIndex = me.index;\n\n var x = reset ? xScale.getPixelForDecimal(0.5) : xScale.getPixelForValue(typeof data === 'object' ? data : NaN, index, dsIndex);\n var y = reset ? yScale.getBasePixel() : yScale.getPixelForValue(data, index, dsIndex);\n\n point._xScale = xScale;\n point._yScale = yScale;\n point._options = options;\n point._datasetIndex = dsIndex;\n point._index = index;\n point._model = {\n backgroundColor: options.backgroundColor,\n borderColor: options.borderColor,\n borderWidth: options.borderWidth,\n hitRadius: options.hitRadius,\n pointStyle: options.pointStyle,\n radius: reset ? 0 : options.radius,\n skip: custom.skip || isNaN(x) || isNaN(y),\n x: x,\n y: y,\n };\n\n point.pivot();\n },\n\n /**\n * @protected\n */\n setHoverStyle: function(point) {\n var model = point._model;\n var options = point._options;\n\n model.backgroundColor = helpers.valueOrDefault(options.hoverBackgroundColor, helpers.getHoverColor(options.backgroundColor));\n model.borderColor = helpers.valueOrDefault(options.hoverBorderColor, helpers.getHoverColor(options.borderColor));\n model.borderWidth = helpers.valueOrDefault(options.hoverBorderWidth, options.borderWidth);\n model.radius = options.radius + options.hoverRadius;\n },\n\n /**\n * @protected\n */\n removeHoverStyle: function(point) {\n var model = point._model;\n var options = point._options;\n\n model.backgroundColor = options.backgroundColor;\n model.borderColor = options.borderColor;\n model.borderWidth = options.borderWidth;\n model.radius = options.radius;\n },\n\n /**\n * @private\n */\n _resolveElementOptions: function(point, index) {\n var me = this;\n var chart = me.chart;\n var datasets = chart.data.datasets;\n var dataset = datasets[me.index];\n var custom = point.custom || {};\n var options = chart.options.elements.point;\n var resolve = helpers.options.resolve;\n var data = dataset.data[index];\n var values = {};\n var i, ilen, key;\n\n // Scriptable options\n var context = {\n chart: chart,\n dataIndex: index,\n dataset: dataset,\n datasetIndex: me.index\n };\n\n var keys = [\n 'backgroundColor',\n 'borderColor',\n 'borderWidth',\n 'hoverBackgroundColor',\n 'hoverBorderColor',\n 'hoverBorderWidth',\n 'hoverRadius',\n 'hitRadius',\n 'pointStyle'\n ];\n\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n key = keys[i];\n values[key] = resolve([\n custom[key],\n dataset[key],\n options[key]\n ], context, index);\n }\n\n // Custom radius resolution\n values.radius = resolve([\n custom.radius,\n data ? data.r : undefined,\n dataset.radius,\n options.radius\n ], context, index);\n\n return values;\n }\n });\n };\n\n},{\"25\":25,\"40\":40,\"45\":45}],17:[function(require,module,exports){\n 'use strict';\n\n var defaults = require(25);\n var elements = require(40);\n var helpers = require(45);\n\n defaults._set('doughnut', {\n animation: {\n // Boolean - Whether we animate the rotation of the Doughnut\n animateRotate: true,\n // Boolean - Whether we animate scaling the Doughnut from the centre\n animateScale: false\n },\n hover: {\n mode: 'single'\n },\n legendCallback: function(chart) {\n var text = [];\n text.push('
    ');\n\n var data = chart.data;\n var datasets = data.datasets;\n var labels = data.labels;\n\n if (datasets.length) {\n for (var i = 0; i < datasets[0].data.length; ++i) {\n text.push('
  • ');\n if (labels[i]) {\n text.push(labels[i]);\n }\n text.push('
  • ');\n }\n }\n\n text.push('
');\n return text.join('');\n },\n legend: {\n labels: {\n generateLabels: function(chart) {\n var data = chart.data;\n if (data.labels.length && data.datasets.length) {\n return data.labels.map(function(label, i) {\n var meta = chart.getDatasetMeta(0);\n var ds = data.datasets[0];\n var arc = meta.data[i];\n var custom = arc && arc.custom || {};\n var valueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\n var arcOpts = chart.options.elements.arc;\n var fill = custom.backgroundColor ? custom.backgroundColor : valueAtIndexOrDefault(ds.backgroundColor, i, arcOpts.backgroundColor);\n var stroke = custom.borderColor ? custom.borderColor : valueAtIndexOrDefault(ds.borderColor, i, arcOpts.borderColor);\n var bw = custom.borderWidth ? custom.borderWidth : valueAtIndexOrDefault(ds.borderWidth, i, arcOpts.borderWidth);\n\n return {\n text: label,\n fillStyle: fill,\n strokeStyle: stroke,\n lineWidth: bw,\n hidden: isNaN(ds.data[i]) || meta.data[i].hidden,\n\n // Extra data used for toggling the correct item\n index: i\n };\n });\n }\n return [];\n }\n },\n\n onClick: function(e, legendItem) {\n var index = legendItem.index;\n var chart = this.chart;\n var i, ilen, meta;\n\n for (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\n meta = chart.getDatasetMeta(i);\n // toggle visibility of index if exists\n if (meta.data[index]) {\n meta.data[index].hidden = !meta.data[index].hidden;\n }\n }\n\n chart.update();\n }\n },\n\n // The percentage of the chart that we cut out of the middle.\n cutoutPercentage: 50,\n\n // The rotation of the chart, where the first data arc begins.\n rotation: Math.PI * -0.5,\n\n // The total circumference of the chart.\n circumference: Math.PI * 2.0,\n\n // Need to override these to give a nice default\n tooltips: {\n callbacks: {\n title: function() {\n return '';\n },\n label: function(tooltipItem, data) {\n var dataLabel = data.labels[tooltipItem.index];\n var value = ': ' + data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];\n\n if (helpers.isArray(dataLabel)) {\n // show value on first line of multiline label\n // need to clone because we are changing the value\n dataLabel = dataLabel.slice();\n dataLabel[0] += value;\n } else {\n dataLabel += value;\n }\n\n return dataLabel;\n }\n }\n }\n });\n\n defaults._set('pie', helpers.clone(defaults.doughnut));\n defaults._set('pie', {\n cutoutPercentage: 0\n });\n\n module.exports = function(Chart) {\n\n Chart.controllers.doughnut = Chart.controllers.pie = Chart.DatasetController.extend({\n\n dataElementType: elements.Arc,\n\n linkScales: helpers.noop,\n\n // Get index of the dataset in relation to the visible datasets. This allows determining the inner and outer radius correctly\n getRingIndex: function(datasetIndex) {\n var ringIndex = 0;\n\n for (var j = 0; j < datasetIndex; ++j) {\n if (this.chart.isDatasetVisible(j)) {\n ++ringIndex;\n }\n }\n\n return ringIndex;\n },\n\n update: function(reset) {\n var me = this;\n var chart = me.chart;\n var chartArea = chart.chartArea;\n var opts = chart.options;\n var arcOpts = opts.elements.arc;\n var availableWidth = chartArea.right - chartArea.left - arcOpts.borderWidth;\n var availableHeight = chartArea.bottom - chartArea.top - arcOpts.borderWidth;\n var minSize = Math.min(availableWidth, availableHeight);\n var offset = {x: 0, y: 0};\n var meta = me.getMeta();\n var cutoutPercentage = opts.cutoutPercentage;\n var circumference = opts.circumference;\n\n // If the chart's circumference isn't a full circle, calculate minSize as a ratio of the width/height of the arc\n if (circumference < Math.PI * 2.0) {\n var startAngle = opts.rotation % (Math.PI * 2.0);\n startAngle += Math.PI * 2.0 * (startAngle >= Math.PI ? -1 : startAngle < -Math.PI ? 1 : 0);\n var endAngle = startAngle + circumference;\n var start = {x: Math.cos(startAngle), y: Math.sin(startAngle)};\n var end = {x: Math.cos(endAngle), y: Math.sin(endAngle)};\n var contains0 = (startAngle <= 0 && endAngle >= 0) || (startAngle <= Math.PI * 2.0 && Math.PI * 2.0 <= endAngle);\n var contains90 = (startAngle <= Math.PI * 0.5 && Math.PI * 0.5 <= endAngle) || (startAngle <= Math.PI * 2.5 && Math.PI * 2.5 <= endAngle);\n var contains180 = (startAngle <= -Math.PI && -Math.PI <= endAngle) || (startAngle <= Math.PI && Math.PI <= endAngle);\n var contains270 = (startAngle <= -Math.PI * 0.5 && -Math.PI * 0.5 <= endAngle) || (startAngle <= Math.PI * 1.5 && Math.PI * 1.5 <= endAngle);\n var cutout = cutoutPercentage / 100.0;\n var min = {x: contains180 ? -1 : Math.min(start.x * (start.x < 0 ? 1 : cutout), end.x * (end.x < 0 ? 1 : cutout)), y: contains270 ? -1 : Math.min(start.y * (start.y < 0 ? 1 : cutout), end.y * (end.y < 0 ? 1 : cutout))};\n var max = {x: contains0 ? 1 : Math.max(start.x * (start.x > 0 ? 1 : cutout), end.x * (end.x > 0 ? 1 : cutout)), y: contains90 ? 1 : Math.max(start.y * (start.y > 0 ? 1 : cutout), end.y * (end.y > 0 ? 1 : cutout))};\n var size = {width: (max.x - min.x) * 0.5, height: (max.y - min.y) * 0.5};\n minSize = Math.min(availableWidth / size.width, availableHeight / size.height);\n offset = {x: (max.x + min.x) * -0.5, y: (max.y + min.y) * -0.5};\n }\n\n chart.borderWidth = me.getMaxBorderWidth(meta.data);\n chart.outerRadius = Math.max((minSize - chart.borderWidth) / 2, 0);\n chart.innerRadius = Math.max(cutoutPercentage ? (chart.outerRadius / 100) * (cutoutPercentage) : 0, 0);\n chart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount();\n chart.offsetX = offset.x * chart.outerRadius;\n chart.offsetY = offset.y * chart.outerRadius;\n\n meta.total = me.calculateTotal();\n\n me.outerRadius = chart.outerRadius - (chart.radiusLength * me.getRingIndex(me.index));\n me.innerRadius = Math.max(me.outerRadius - chart.radiusLength, 0);\n\n helpers.each(meta.data, function(arc, index) {\n me.updateElement(arc, index, reset);\n });\n },\n\n updateElement: function(arc, index, reset) {\n var me = this;\n var chart = me.chart;\n var chartArea = chart.chartArea;\n var opts = chart.options;\n var animationOpts = opts.animation;\n var centerX = (chartArea.left + chartArea.right) / 2;\n var centerY = (chartArea.top + chartArea.bottom) / 2;\n var startAngle = opts.rotation; // non reset case handled later\n var endAngle = opts.rotation; // non reset case handled later\n var dataset = me.getDataset();\n var circumference = reset && animationOpts.animateRotate ? 0 : arc.hidden ? 0 : me.calculateCircumference(dataset.data[index]) * (opts.circumference / (2.0 * Math.PI));\n var innerRadius = reset && animationOpts.animateScale ? 0 : me.innerRadius;\n var outerRadius = reset && animationOpts.animateScale ? 0 : me.outerRadius;\n var valueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\n\n helpers.extend(arc, {\n // Utility\n _datasetIndex: me.index,\n _index: index,\n\n // Desired view properties\n _model: {\n x: centerX + chart.offsetX,\n y: centerY + chart.offsetY,\n startAngle: startAngle,\n endAngle: endAngle,\n circumference: circumference,\n outerRadius: outerRadius,\n innerRadius: innerRadius,\n label: valueAtIndexOrDefault(dataset.label, index, chart.data.labels[index])\n }\n });\n\n var model = arc._model;\n // Resets the visual styles\n this.removeHoverStyle(arc);\n\n // Set correct angles if not resetting\n if (!reset || !animationOpts.animateRotate) {\n if (index === 0) {\n model.startAngle = opts.rotation;\n } else {\n model.startAngle = me.getMeta().data[index - 1]._model.endAngle;\n }\n\n model.endAngle = model.startAngle + model.circumference;\n }\n\n arc.pivot();\n },\n\n removeHoverStyle: function(arc) {\n Chart.DatasetController.prototype.removeHoverStyle.call(this, arc, this.chart.options.elements.arc);\n },\n\n calculateTotal: function() {\n var dataset = this.getDataset();\n var meta = this.getMeta();\n var total = 0;\n var value;\n\n helpers.each(meta.data, function(element, index) {\n value = dataset.data[index];\n if (!isNaN(value) && !element.hidden) {\n total += Math.abs(value);\n }\n });\n\n\t\t\t\t/* if (total === 0) {\n\t\t\t\t total = NaN;\n\t\t\t\t }*/\n\n return total;\n },\n\n calculateCircumference: function(value) {\n var total = this.getMeta().total;\n if (total > 0 && !isNaN(value)) {\n return (Math.PI * 2.0) * (value / total);\n }\n return 0;\n },\n\n // gets the max border or hover width to properly scale pie charts\n getMaxBorderWidth: function(arcs) {\n var max = 0;\n var index = this.index;\n var length = arcs.length;\n var borderWidth;\n var hoverWidth;\n\n for (var i = 0; i < length; i++) {\n borderWidth = arcs[i]._model ? arcs[i]._model.borderWidth : 0;\n hoverWidth = arcs[i]._chart ? arcs[i]._chart.config.data.datasets[index].hoverBorderWidth : 0;\n\n max = borderWidth > max ? borderWidth : max;\n max = hoverWidth > max ? hoverWidth : max;\n }\n return max;\n }\n });\n };\n\n},{\"25\":25,\"40\":40,\"45\":45}],18:[function(require,module,exports){\n 'use strict';\n\n var defaults = require(25);\n var elements = require(40);\n var helpers = require(45);\n\n defaults._set('line', {\n showLines: true,\n spanGaps: false,\n\n hover: {\n mode: 'label'\n },\n\n scales: {\n xAxes: [{\n type: 'category',\n id: 'x-axis-0'\n }],\n yAxes: [{\n type: 'linear',\n id: 'y-axis-0'\n }]\n }\n });\n\n module.exports = function(Chart) {\n\n function lineEnabled(dataset, options) {\n return helpers.valueOrDefault(dataset.showLine, options.showLines);\n }\n\n Chart.controllers.line = Chart.DatasetController.extend({\n\n datasetElementType: elements.Line,\n\n dataElementType: elements.Point,\n\n update: function(reset) {\n var me = this;\n var meta = me.getMeta();\n var line = meta.dataset;\n var points = meta.data || [];\n var options = me.chart.options;\n var lineElementOptions = options.elements.line;\n var scale = me.getScaleForId(meta.yAxisID);\n var i, ilen, custom;\n var dataset = me.getDataset();\n var showLine = lineEnabled(dataset, options);\n\n // Update Line\n if (showLine) {\n custom = line.custom || {};\n\n // Compatibility: If the properties are defined with only the old name, use those values\n if ((dataset.tension !== undefined) && (dataset.lineTension === undefined)) {\n dataset.lineTension = dataset.tension;\n }\n\n // Utility\n line._scale = scale;\n line._datasetIndex = me.index;\n // Data\n line._children = points;\n // Model\n line._model = {\n // Appearance\n // The default behavior of lines is to break at null values, according\n // to https://github.com/chartjs/Chart.js/issues/2435#issuecomment-216718158\n // This option gives lines the ability to span gaps\n spanGaps: dataset.spanGaps ? dataset.spanGaps : options.spanGaps,\n tension: custom.tension ? custom.tension : helpers.valueOrDefault(dataset.lineTension, lineElementOptions.tension),\n backgroundColor: custom.backgroundColor ? custom.backgroundColor : (dataset.backgroundColor || lineElementOptions.backgroundColor),\n borderWidth: custom.borderWidth ? custom.borderWidth : (dataset.borderWidth || lineElementOptions.borderWidth),\n borderColor: custom.borderColor ? custom.borderColor : (dataset.borderColor || lineElementOptions.borderColor),\n borderCapStyle: custom.borderCapStyle ? custom.borderCapStyle : (dataset.borderCapStyle || lineElementOptions.borderCapStyle),\n borderDash: custom.borderDash ? custom.borderDash : (dataset.borderDash || lineElementOptions.borderDash),\n borderDashOffset: custom.borderDashOffset ? custom.borderDashOffset : (dataset.borderDashOffset || lineElementOptions.borderDashOffset),\n borderJoinStyle: custom.borderJoinStyle ? custom.borderJoinStyle : (dataset.borderJoinStyle || lineElementOptions.borderJoinStyle),\n fill: custom.fill ? custom.fill : (dataset.fill !== undefined ? dataset.fill : lineElementOptions.fill),\n steppedLine: custom.steppedLine ? custom.steppedLine : helpers.valueOrDefault(dataset.steppedLine, lineElementOptions.stepped),\n cubicInterpolationMode: custom.cubicInterpolationMode ? custom.cubicInterpolationMode : helpers.valueOrDefault(dataset.cubicInterpolationMode, lineElementOptions.cubicInterpolationMode),\n };\n\n line.pivot();\n }\n\n // Update Points\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n me.updateElement(points[i], i, reset);\n }\n\n if (showLine && line._model.tension !== 0) {\n me.updateBezierControlPoints();\n }\n\n // Now pivot the point for animation\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n points[i].pivot();\n }\n },\n\n getPointBackgroundColor: function(point, index) {\n var backgroundColor = this.chart.options.elements.point.backgroundColor;\n var dataset = this.getDataset();\n var custom = point.custom || {};\n\n if (custom.backgroundColor) {\n backgroundColor = custom.backgroundColor;\n } else if (dataset.pointBackgroundColor) {\n backgroundColor = helpers.valueAtIndexOrDefault(dataset.pointBackgroundColor, index, backgroundColor);\n } else if (dataset.backgroundColor) {\n backgroundColor = dataset.backgroundColor;\n }\n\n return backgroundColor;\n },\n\n getPointBorderColor: function(point, index) {\n var borderColor = this.chart.options.elements.point.borderColor;\n var dataset = this.getDataset();\n var custom = point.custom || {};\n\n if (custom.borderColor) {\n borderColor = custom.borderColor;\n } else if (dataset.pointBorderColor) {\n borderColor = helpers.valueAtIndexOrDefault(dataset.pointBorderColor, index, borderColor);\n } else if (dataset.borderColor) {\n borderColor = dataset.borderColor;\n }\n\n return borderColor;\n },\n\n getPointBorderWidth: function(point, index) {\n var borderWidth = this.chart.options.elements.point.borderWidth;\n var dataset = this.getDataset();\n var custom = point.custom || {};\n\n if (!isNaN(custom.borderWidth)) {\n borderWidth = custom.borderWidth;\n } else if (!isNaN(dataset.pointBorderWidth) || helpers.isArray(dataset.pointBorderWidth)) {\n borderWidth = helpers.valueAtIndexOrDefault(dataset.pointBorderWidth, index, borderWidth);\n } else if (!isNaN(dataset.borderWidth)) {\n borderWidth = dataset.borderWidth;\n }\n\n return borderWidth;\n },\n\n updateElement: function(point, index, reset) {\n var me = this;\n var meta = me.getMeta();\n var custom = point.custom || {};\n var dataset = me.getDataset();\n var datasetIndex = me.index;\n var value = dataset.data[index];\n var yScale = me.getScaleForId(meta.yAxisID);\n var xScale = me.getScaleForId(meta.xAxisID);\n var pointOptions = me.chart.options.elements.point;\n var x, y;\n\n // Compatibility: If the properties are defined with only the old name, use those values\n if ((dataset.radius !== undefined) && (dataset.pointRadius === undefined)) {\n dataset.pointRadius = dataset.radius;\n }\n if ((dataset.hitRadius !== undefined) && (dataset.pointHitRadius === undefined)) {\n dataset.pointHitRadius = dataset.hitRadius;\n }\n\n x = xScale.getPixelForValue(typeof value === 'object' ? value : NaN, index, datasetIndex);\n y = reset ? yScale.getBasePixel() : me.calculatePointY(value, index, datasetIndex);\n\n // Utility\n point._xScale = xScale;\n point._yScale = yScale;\n point._datasetIndex = datasetIndex;\n point._index = index;\n\n // Desired view properties\n point._model = {\n x: x,\n y: y,\n skip: custom.skip || isNaN(x) || isNaN(y),\n // Appearance\n radius: custom.radius || helpers.valueAtIndexOrDefault(dataset.pointRadius, index, pointOptions.radius),\n pointStyle: custom.pointStyle || helpers.valueAtIndexOrDefault(dataset.pointStyle, index, pointOptions.pointStyle),\n backgroundColor: me.getPointBackgroundColor(point, index),\n borderColor: me.getPointBorderColor(point, index),\n borderWidth: me.getPointBorderWidth(point, index),\n tension: meta.dataset._model ? meta.dataset._model.tension : 0,\n steppedLine: meta.dataset._model ? meta.dataset._model.steppedLine : false,\n // Tooltip\n hitRadius: custom.hitRadius || helpers.valueAtIndexOrDefault(dataset.pointHitRadius, index, pointOptions.hitRadius)\n };\n },\n\n calculatePointY: function(value, index, datasetIndex) {\n var me = this;\n var chart = me.chart;\n var meta = me.getMeta();\n var yScale = me.getScaleForId(meta.yAxisID);\n var sumPos = 0;\n var sumNeg = 0;\n var i, ds, dsMeta;\n\n if (yScale.options.stacked) {\n for (i = 0; i < datasetIndex; i++) {\n ds = chart.data.datasets[i];\n dsMeta = chart.getDatasetMeta(i);\n if (dsMeta.type === 'line' && dsMeta.yAxisID === yScale.id && chart.isDatasetVisible(i)) {\n var stackedRightValue = Number(yScale.getRightValue(ds.data[index]));\n if (stackedRightValue < 0) {\n sumNeg += stackedRightValue || 0;\n } else {\n sumPos += stackedRightValue || 0;\n }\n }\n }\n\n var rightValue = Number(yScale.getRightValue(value));\n if (rightValue < 0) {\n return yScale.getPixelForValue(sumNeg + rightValue);\n }\n return yScale.getPixelForValue(sumPos + rightValue);\n }\n\n return yScale.getPixelForValue(value);\n },\n\n updateBezierControlPoints: function() {\n var me = this;\n var meta = me.getMeta();\n var area = me.chart.chartArea;\n var points = (meta.data || []);\n var i, ilen, point, model, controlPoints;\n\n // Only consider points that are drawn in case the spanGaps option is used\n if (meta.dataset._model.spanGaps) {\n points = points.filter(function(pt) {\n return !pt._model.skip;\n });\n }\n\n function capControlPoint(pt, min, max) {\n return Math.max(Math.min(pt, max), min);\n }\n\n if (meta.dataset._model.cubicInterpolationMode === 'monotone') {\n helpers.splineCurveMonotone(points);\n } else {\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n point = points[i];\n model = point._model;\n controlPoints = helpers.splineCurve(\n helpers.previousItem(points, i)._model,\n model,\n helpers.nextItem(points, i)._model,\n meta.dataset._model.tension\n );\n model.controlPointPreviousX = controlPoints.previous.x;\n model.controlPointPreviousY = controlPoints.previous.y;\n model.controlPointNextX = controlPoints.next.x;\n model.controlPointNextY = controlPoints.next.y;\n }\n }\n\n if (me.chart.options.elements.line.capBezierPoints) {\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n model = points[i]._model;\n model.controlPointPreviousX = capControlPoint(model.controlPointPreviousX, area.left, area.right);\n model.controlPointPreviousY = capControlPoint(model.controlPointPreviousY, area.top, area.bottom);\n model.controlPointNextX = capControlPoint(model.controlPointNextX, area.left, area.right);\n model.controlPointNextY = capControlPoint(model.controlPointNextY, area.top, area.bottom);\n }\n }\n },\n\n draw: function() {\n var me = this;\n var chart = me.chart;\n var meta = me.getMeta();\n var points = meta.data || [];\n var area = chart.chartArea;\n var ilen = points.length;\n var i = 0;\n\n helpers.canvas.clipArea(chart.ctx, area);\n\n if (lineEnabled(me.getDataset(), chart.options)) {\n meta.dataset.draw();\n }\n\n helpers.canvas.unclipArea(chart.ctx);\n\n // Draw the points\n for (; i < ilen; ++i) {\n points[i].draw(area);\n }\n },\n\n setHoverStyle: function(point) {\n // Point\n var dataset = this.chart.data.datasets[point._datasetIndex];\n var index = point._index;\n var custom = point.custom || {};\n var model = point._model;\n\n model.radius = custom.hoverRadius || helpers.valueAtIndexOrDefault(dataset.pointHoverRadius, index, this.chart.options.elements.point.hoverRadius);\n model.backgroundColor = custom.hoverBackgroundColor || helpers.valueAtIndexOrDefault(dataset.pointHoverBackgroundColor, index, helpers.getHoverColor(model.backgroundColor));\n model.borderColor = custom.hoverBorderColor || helpers.valueAtIndexOrDefault(dataset.pointHoverBorderColor, index, helpers.getHoverColor(model.borderColor));\n model.borderWidth = custom.hoverBorderWidth || helpers.valueAtIndexOrDefault(dataset.pointHoverBorderWidth, index, model.borderWidth);\n },\n\n removeHoverStyle: function(point) {\n var me = this;\n var dataset = me.chart.data.datasets[point._datasetIndex];\n var index = point._index;\n var custom = point.custom || {};\n var model = point._model;\n\n // Compatibility: If the properties are defined with only the old name, use those values\n if ((dataset.radius !== undefined) && (dataset.pointRadius === undefined)) {\n dataset.pointRadius = dataset.radius;\n }\n\n model.radius = custom.radius || helpers.valueAtIndexOrDefault(dataset.pointRadius, index, me.chart.options.elements.point.radius);\n model.backgroundColor = me.getPointBackgroundColor(point, index);\n model.borderColor = me.getPointBorderColor(point, index);\n model.borderWidth = me.getPointBorderWidth(point, index);\n }\n });\n };\n\n},{\"25\":25,\"40\":40,\"45\":45}],19:[function(require,module,exports){\n 'use strict';\n\n var defaults = require(25);\n var elements = require(40);\n var helpers = require(45);\n\n defaults._set('polarArea', {\n scale: {\n type: 'radialLinear',\n angleLines: {\n display: false\n },\n gridLines: {\n circular: true\n },\n pointLabels: {\n display: false\n },\n ticks: {\n beginAtZero: true\n }\n },\n\n // Boolean - Whether to animate the rotation of the chart\n animation: {\n animateRotate: true,\n animateScale: true\n },\n\n startAngle: -0.5 * Math.PI,\n legendCallback: function(chart) {\n var text = [];\n text.push('
    ');\n\n var data = chart.data;\n var datasets = data.datasets;\n var labels = data.labels;\n\n if (datasets.length) {\n for (var i = 0; i < datasets[0].data.length; ++i) {\n text.push('
  • ');\n if (labels[i]) {\n text.push(labels[i]);\n }\n text.push('
  • ');\n }\n }\n\n text.push('
');\n return text.join('');\n },\n legend: {\n labels: {\n generateLabels: function(chart) {\n var data = chart.data;\n if (data.labels.length && data.datasets.length) {\n return data.labels.map(function(label, i) {\n var meta = chart.getDatasetMeta(0);\n var ds = data.datasets[0];\n var arc = meta.data[i];\n var custom = arc.custom || {};\n var valueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\n var arcOpts = chart.options.elements.arc;\n var fill = custom.backgroundColor ? custom.backgroundColor : valueAtIndexOrDefault(ds.backgroundColor, i, arcOpts.backgroundColor);\n var stroke = custom.borderColor ? custom.borderColor : valueAtIndexOrDefault(ds.borderColor, i, arcOpts.borderColor);\n var bw = custom.borderWidth ? custom.borderWidth : valueAtIndexOrDefault(ds.borderWidth, i, arcOpts.borderWidth);\n\n return {\n text: label,\n fillStyle: fill,\n strokeStyle: stroke,\n lineWidth: bw,\n hidden: isNaN(ds.data[i]) || meta.data[i].hidden,\n\n // Extra data used for toggling the correct item\n index: i\n };\n });\n }\n return [];\n }\n },\n\n onClick: function(e, legendItem) {\n var index = legendItem.index;\n var chart = this.chart;\n var i, ilen, meta;\n\n for (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\n meta = chart.getDatasetMeta(i);\n meta.data[index].hidden = !meta.data[index].hidden;\n }\n\n chart.update();\n }\n },\n\n // Need to override these to give a nice default\n tooltips: {\n callbacks: {\n title: function() {\n return '';\n },\n label: function(item, data) {\n return data.labels[item.index] + ': ' + item.yLabel;\n }\n }\n }\n });\n\n module.exports = function(Chart) {\n\n Chart.controllers.polarArea = Chart.DatasetController.extend({\n\n dataElementType: elements.Arc,\n\n linkScales: helpers.noop,\n\n update: function(reset) {\n var me = this;\n var chart = me.chart;\n var chartArea = chart.chartArea;\n var meta = me.getMeta();\n var opts = chart.options;\n var arcOpts = opts.elements.arc;\n var minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n chart.outerRadius = Math.max((minSize - arcOpts.borderWidth / 2) / 2, 0);\n chart.innerRadius = Math.max(opts.cutoutPercentage ? (chart.outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\n chart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount();\n\n me.outerRadius = chart.outerRadius - (chart.radiusLength * me.index);\n me.innerRadius = me.outerRadius - chart.radiusLength;\n\n meta.count = me.countVisibleElements();\n\n helpers.each(meta.data, function(arc, index) {\n me.updateElement(arc, index, reset);\n });\n },\n\n updateElement: function(arc, index, reset) {\n var me = this;\n var chart = me.chart;\n var dataset = me.getDataset();\n var opts = chart.options;\n var animationOpts = opts.animation;\n var scale = chart.scale;\n var labels = chart.data.labels;\n\n var circumference = me.calculateCircumference(dataset.data[index]);\n var centerX = scale.xCenter;\n var centerY = scale.yCenter;\n\n // If there is NaN data before us, we need to calculate the starting angle correctly.\n // We could be way more efficient here, but its unlikely that the polar area chart will have a lot of data\n var visibleCount = 0;\n var meta = me.getMeta();\n for (var i = 0; i < index; ++i) {\n if (!isNaN(dataset.data[i]) && !meta.data[i].hidden) {\n ++visibleCount;\n }\n }\n\n // var negHalfPI = -0.5 * Math.PI;\n var datasetStartAngle = opts.startAngle;\n var distance = arc.hidden ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\n var startAngle = datasetStartAngle + (circumference * visibleCount);\n var endAngle = startAngle + (arc.hidden ? 0 : circumference);\n\n var resetRadius = animationOpts.animateScale ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\n\n helpers.extend(arc, {\n // Utility\n _datasetIndex: me.index,\n _index: index,\n _scale: scale,\n\n // Desired view properties\n _model: {\n x: centerX,\n y: centerY,\n innerRadius: 0,\n outerRadius: reset ? resetRadius : distance,\n startAngle: reset && animationOpts.animateRotate ? datasetStartAngle : startAngle,\n endAngle: reset && animationOpts.animateRotate ? datasetStartAngle : endAngle,\n label: helpers.valueAtIndexOrDefault(labels, index, labels[index])\n }\n });\n\n // Apply border and fill style\n me.removeHoverStyle(arc);\n\n arc.pivot();\n },\n\n removeHoverStyle: function(arc) {\n Chart.DatasetController.prototype.removeHoverStyle.call(this, arc, this.chart.options.elements.arc);\n },\n\n countVisibleElements: function() {\n var dataset = this.getDataset();\n var meta = this.getMeta();\n var count = 0;\n\n helpers.each(meta.data, function(element, index) {\n if (!isNaN(dataset.data[index]) && !element.hidden) {\n count++;\n }\n });\n\n return count;\n },\n\n calculateCircumference: function(value) {\n var count = this.getMeta().count;\n if (count > 0 && !isNaN(value)) {\n return (2 * Math.PI) / count;\n }\n return 0;\n }\n });\n };\n\n},{\"25\":25,\"40\":40,\"45\":45}],20:[function(require,module,exports){\n 'use strict';\n\n var defaults = require(25);\n var elements = require(40);\n var helpers = require(45);\n\n defaults._set('radar', {\n scale: {\n type: 'radialLinear'\n },\n elements: {\n line: {\n tension: 0 // no bezier in radar\n }\n }\n });\n\n module.exports = function(Chart) {\n\n Chart.controllers.radar = Chart.DatasetController.extend({\n\n datasetElementType: elements.Line,\n\n dataElementType: elements.Point,\n\n linkScales: helpers.noop,\n\n update: function(reset) {\n var me = this;\n var meta = me.getMeta();\n var line = meta.dataset;\n var points = meta.data;\n var custom = line.custom || {};\n var dataset = me.getDataset();\n var lineElementOptions = me.chart.options.elements.line;\n var scale = me.chart.scale;\n\n // Compatibility: If the properties are defined with only the old name, use those values\n if ((dataset.tension !== undefined) && (dataset.lineTension === undefined)) {\n dataset.lineTension = dataset.tension;\n }\n\n helpers.extend(meta.dataset, {\n // Utility\n _datasetIndex: me.index,\n _scale: scale,\n // Data\n _children: points,\n _loop: true,\n // Model\n _model: {\n // Appearance\n tension: custom.tension ? custom.tension : helpers.valueOrDefault(dataset.lineTension, lineElementOptions.tension),\n backgroundColor: custom.backgroundColor ? custom.backgroundColor : (dataset.backgroundColor || lineElementOptions.backgroundColor),\n borderWidth: custom.borderWidth ? custom.borderWidth : (dataset.borderWidth || lineElementOptions.borderWidth),\n borderColor: custom.borderColor ? custom.borderColor : (dataset.borderColor || lineElementOptions.borderColor),\n fill: custom.fill ? custom.fill : (dataset.fill !== undefined ? dataset.fill : lineElementOptions.fill),\n borderCapStyle: custom.borderCapStyle ? custom.borderCapStyle : (dataset.borderCapStyle || lineElementOptions.borderCapStyle),\n borderDash: custom.borderDash ? custom.borderDash : (dataset.borderDash || lineElementOptions.borderDash),\n borderDashOffset: custom.borderDashOffset ? custom.borderDashOffset : (dataset.borderDashOffset || lineElementOptions.borderDashOffset),\n borderJoinStyle: custom.borderJoinStyle ? custom.borderJoinStyle : (dataset.borderJoinStyle || lineElementOptions.borderJoinStyle),\n }\n });\n\n meta.dataset.pivot();\n\n // Update Points\n helpers.each(points, function(point, index) {\n me.updateElement(point, index, reset);\n }, me);\n\n // Update bezier control points\n me.updateBezierControlPoints();\n },\n updateElement: function(point, index, reset) {\n var me = this;\n var custom = point.custom || {};\n var dataset = me.getDataset();\n var scale = me.chart.scale;\n var pointElementOptions = me.chart.options.elements.point;\n var pointPosition = scale.getPointPositionForValue(index, dataset.data[index]);\n\n // Compatibility: If the properties are defined with only the old name, use those values\n if ((dataset.radius !== undefined) && (dataset.pointRadius === undefined)) {\n dataset.pointRadius = dataset.radius;\n }\n if ((dataset.hitRadius !== undefined) && (dataset.pointHitRadius === undefined)) {\n dataset.pointHitRadius = dataset.hitRadius;\n }\n\n helpers.extend(point, {\n // Utility\n _datasetIndex: me.index,\n _index: index,\n _scale: scale,\n\n // Desired view properties\n _model: {\n x: reset ? scale.xCenter : pointPosition.x, // value not used in dataset scale, but we want a consistent API between scales\n y: reset ? scale.yCenter : pointPosition.y,\n\n // Appearance\n tension: custom.tension ? custom.tension : helpers.valueOrDefault(dataset.lineTension, me.chart.options.elements.line.tension),\n radius: custom.radius ? custom.radius : helpers.valueAtIndexOrDefault(dataset.pointRadius, index, pointElementOptions.radius),\n backgroundColor: custom.backgroundColor ? custom.backgroundColor : helpers.valueAtIndexOrDefault(dataset.pointBackgroundColor, index, pointElementOptions.backgroundColor),\n borderColor: custom.borderColor ? custom.borderColor : helpers.valueAtIndexOrDefault(dataset.pointBorderColor, index, pointElementOptions.borderColor),\n borderWidth: custom.borderWidth ? custom.borderWidth : helpers.valueAtIndexOrDefault(dataset.pointBorderWidth, index, pointElementOptions.borderWidth),\n pointStyle: custom.pointStyle ? custom.pointStyle : helpers.valueAtIndexOrDefault(dataset.pointStyle, index, pointElementOptions.pointStyle),\n\n // Tooltip\n hitRadius: custom.hitRadius ? custom.hitRadius : helpers.valueAtIndexOrDefault(dataset.pointHitRadius, index, pointElementOptions.hitRadius)\n }\n });\n\n point._model.skip = custom.skip ? custom.skip : (isNaN(point._model.x) || isNaN(point._model.y));\n },\n updateBezierControlPoints: function() {\n var chartArea = this.chart.chartArea;\n var meta = this.getMeta();\n\n helpers.each(meta.data, function(point, index) {\n var model = point._model;\n var controlPoints = helpers.splineCurve(\n helpers.previousItem(meta.data, index, true)._model,\n model,\n helpers.nextItem(meta.data, index, true)._model,\n model.tension\n );\n\n // Prevent the bezier going outside of the bounds of the graph\n model.controlPointPreviousX = Math.max(Math.min(controlPoints.previous.x, chartArea.right), chartArea.left);\n model.controlPointPreviousY = Math.max(Math.min(controlPoints.previous.y, chartArea.bottom), chartArea.top);\n\n model.controlPointNextX = Math.max(Math.min(controlPoints.next.x, chartArea.right), chartArea.left);\n model.controlPointNextY = Math.max(Math.min(controlPoints.next.y, chartArea.bottom), chartArea.top);\n\n // Now pivot the point for animation\n point.pivot();\n });\n },\n\n setHoverStyle: function(point) {\n // Point\n var dataset = this.chart.data.datasets[point._datasetIndex];\n var custom = point.custom || {};\n var index = point._index;\n var model = point._model;\n\n model.radius = custom.hoverRadius ? custom.hoverRadius : helpers.valueAtIndexOrDefault(dataset.pointHoverRadius, index, this.chart.options.elements.point.hoverRadius);\n model.backgroundColor = custom.hoverBackgroundColor ? custom.hoverBackgroundColor : helpers.valueAtIndexOrDefault(dataset.pointHoverBackgroundColor, index, helpers.getHoverColor(model.backgroundColor));\n model.borderColor = custom.hoverBorderColor ? custom.hoverBorderColor : helpers.valueAtIndexOrDefault(dataset.pointHoverBorderColor, index, helpers.getHoverColor(model.borderColor));\n model.borderWidth = custom.hoverBorderWidth ? custom.hoverBorderWidth : helpers.valueAtIndexOrDefault(dataset.pointHoverBorderWidth, index, model.borderWidth);\n },\n\n removeHoverStyle: function(point) {\n var dataset = this.chart.data.datasets[point._datasetIndex];\n var custom = point.custom || {};\n var index = point._index;\n var model = point._model;\n var pointElementOptions = this.chart.options.elements.point;\n\n model.radius = custom.radius ? custom.radius : helpers.valueAtIndexOrDefault(dataset.pointRadius, index, pointElementOptions.radius);\n model.backgroundColor = custom.backgroundColor ? custom.backgroundColor : helpers.valueAtIndexOrDefault(dataset.pointBackgroundColor, index, pointElementOptions.backgroundColor);\n model.borderColor = custom.borderColor ? custom.borderColor : helpers.valueAtIndexOrDefault(dataset.pointBorderColor, index, pointElementOptions.borderColor);\n model.borderWidth = custom.borderWidth ? custom.borderWidth : helpers.valueAtIndexOrDefault(dataset.pointBorderWidth, index, pointElementOptions.borderWidth);\n }\n });\n };\n\n},{\"25\":25,\"40\":40,\"45\":45}],21:[function(require,module,exports){\n 'use strict';\n\n var defaults = require(25);\n\n defaults._set('scatter', {\n hover: {\n mode: 'single'\n },\n\n scales: {\n xAxes: [{\n id: 'x-axis-1', // need an ID so datasets can reference the scale\n type: 'linear', // scatter should not use a category axis\n position: 'bottom'\n }],\n yAxes: [{\n id: 'y-axis-1',\n type: 'linear',\n position: 'left'\n }]\n },\n\n showLines: false,\n\n tooltips: {\n callbacks: {\n title: function() {\n return ''; // doesn't make sense for scatter since data are formatted as a point\n },\n label: function(item) {\n return '(' + item.xLabel + ', ' + item.yLabel + ')';\n }\n }\n }\n });\n\n module.exports = function(Chart) {\n\n // Scatter charts use line controllers\n Chart.controllers.scatter = Chart.controllers.line;\n\n };\n\n},{\"25\":25}],22:[function(require,module,exports){\n\t/* global window: false */\n 'use strict';\n\n var defaults = require(25);\n var Element = require(26);\n var helpers = require(45);\n\n defaults._set('global', {\n animation: {\n duration: 1000,\n easing: 'easeOutQuart',\n onProgress: helpers.noop,\n onComplete: helpers.noop\n }\n });\n\n module.exports = function(Chart) {\n\n Chart.Animation = Element.extend({\n chart: null, // the animation associated chart instance\n currentStep: 0, // the current animation step\n numSteps: 60, // default number of steps\n easing: '', // the easing to use for this animation\n render: null, // render function used by the animation service\n\n onAnimationProgress: null, // user specified callback to fire on each step of the animation\n onAnimationComplete: null, // user specified callback to fire when the animation finishes\n });\n\n Chart.animationService = {\n frameDuration: 17,\n animations: [],\n dropFrames: 0,\n request: null,\n\n /**\n * @param {Chart} chart - The chart to animate.\n * @param {Chart.Animation} animation - The animation that we will animate.\n * @param {Number} duration - The animation duration in ms.\n * @param {Boolean} lazy - if true, the chart is not marked as animating to enable more responsive interactions\n */\n addAnimation: function(chart, animation, duration, lazy) {\n var animations = this.animations;\n var i, ilen;\n\n animation.chart = chart;\n\n if (!lazy) {\n chart.animating = true;\n }\n\n for (i = 0, ilen = animations.length; i < ilen; ++i) {\n if (animations[i].chart === chart) {\n animations[i] = animation;\n return;\n }\n }\n\n animations.push(animation);\n\n // If there are no animations queued, manually kickstart a digest, for lack of a better word\n if (animations.length === 1) {\n this.requestAnimationFrame();\n }\n },\n\n cancelAnimation: function(chart) {\n var index = helpers.findIndex(this.animations, function(animation) {\n return animation.chart === chart;\n });\n\n if (index !== -1) {\n this.animations.splice(index, 1);\n chart.animating = false;\n }\n },\n\n requestAnimationFrame: function() {\n var me = this;\n if (me.request === null) {\n // Skip animation frame requests until the active one is executed.\n // This can happen when processing mouse events, e.g. 'mousemove'\n // and 'mouseout' events will trigger multiple renders.\n me.request = helpers.requestAnimFrame.call(window, function() {\n me.request = null;\n me.startDigest();\n });\n }\n },\n\n /**\n * @private\n */\n startDigest: function() {\n var me = this;\n var startTime = Date.now();\n var framesToDrop = 0;\n\n if (me.dropFrames > 1) {\n framesToDrop = Math.floor(me.dropFrames);\n me.dropFrames = me.dropFrames % 1;\n }\n\n me.advance(1 + framesToDrop);\n\n var endTime = Date.now();\n\n me.dropFrames += (endTime - startTime) / me.frameDuration;\n\n // Do we have more stuff to animate?\n if (me.animations.length > 0) {\n me.requestAnimationFrame();\n }\n },\n\n /**\n * @private\n */\n advance: function(count) {\n var animations = this.animations;\n var animation, chart;\n var i = 0;\n\n while (i < animations.length) {\n animation = animations[i];\n chart = animation.chart;\n\n animation.currentStep = (animation.currentStep || 0) + count;\n animation.currentStep = Math.min(animation.currentStep, animation.numSteps);\n\n helpers.callback(animation.render, [chart, animation], chart);\n helpers.callback(animation.onAnimationProgress, [animation], chart);\n\n if (animation.currentStep >= animation.numSteps) {\n helpers.callback(animation.onAnimationComplete, [animation], chart);\n chart.animating = false;\n animations.splice(i, 1);\n } else {\n ++i;\n }\n }\n }\n };\n\n /**\n * Provided for backward compatibility, use Chart.Animation instead\n * @prop Chart.Animation#animationObject\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n */\n Object.defineProperty(Chart.Animation.prototype, 'animationObject', {\n get: function() {\n return this;\n }\n });\n\n /**\n * Provided for backward compatibility, use Chart.Animation#chart instead\n * @prop Chart.Animation#chartInstance\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n */\n Object.defineProperty(Chart.Animation.prototype, 'chartInstance', {\n get: function() {\n return this.chart;\n },\n set: function(value) {\n this.chart = value;\n }\n });\n\n };\n\n},{\"25\":25,\"26\":26,\"45\":45}],23:[function(require,module,exports){\n 'use strict';\n\n var defaults = require(25);\n var helpers = require(45);\n var Interaction = require(28);\n var platform = require(48);\n\n module.exports = function(Chart) {\n var plugins = Chart.plugins;\n\n // Create a dictionary of chart types, to allow for extension of existing types\n Chart.types = {};\n\n // Store a reference to each instance - allowing us to globally resize chart instances on window resize.\n // Destroy method on the chart will remove the instance of the chart from this reference.\n Chart.instances = {};\n\n // Controllers available for dataset visualization eg. bar, line, slice, etc.\n Chart.controllers = {};\n\n /**\n * Initializes the given config with global and chart default values.\n */\n function initConfig(config) {\n config = config || {};\n\n // Do NOT use configMerge() for the data object because this method merges arrays\n // and so would change references to labels and datasets, preventing data updates.\n var data = config.data = config.data || {};\n data.datasets = data.datasets || [];\n data.labels = data.labels || [];\n\n config.options = helpers.configMerge(\n defaults.global,\n defaults[config.type],\n config.options || {});\n\n return config;\n }\n\n /**\n * Updates the config of the chart\n * @param chart {Chart} chart to update the options for\n */\n function updateConfig(chart) {\n var newOptions = chart.options;\n\n // Update Scale(s) with options\n if (newOptions.scale) {\n chart.scale.options = newOptions.scale;\n } else if (newOptions.scales) {\n newOptions.scales.xAxes.concat(newOptions.scales.yAxes).forEach(function(scaleOptions) {\n chart.scales[scaleOptions.id].options = scaleOptions;\n });\n }\n\n // Tooltip\n chart.tooltip._options = newOptions.tooltips;\n }\n\n function positionIsHorizontal(position) {\n return position === 'top' || position === 'bottom';\n }\n\n helpers.extend(Chart.prototype, /** @lends Chart */ {\n /**\n * @private\n */\n construct: function(item, config) {\n var me = this;\n\n config = initConfig(config);\n\n var context = platform.acquireContext(item, config);\n var canvas = context && context.canvas;\n var height = canvas && canvas.height;\n var width = canvas && canvas.width;\n\n me.id = helpers.uid();\n me.ctx = context;\n me.canvas = canvas;\n me.config = config;\n me.width = width;\n me.height = height;\n me.aspectRatio = height ? width / height : null;\n me.options = config.options;\n me._bufferedRender = false;\n\n /**\n * Provided for backward compatibility, Chart and Chart.Controller have been merged,\n * the \"instance\" still need to be defined since it might be called from plugins.\n * @prop Chart#chart\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n * @private\n */\n me.chart = me;\n me.controller = me; // chart.chart.controller #inception\n\n // Add the chart instance to the global namespace\n Chart.instances[me.id] = me;\n\n // Define alias to the config data: `chart.data === chart.config.data`\n Object.defineProperty(me, 'data', {\n get: function() {\n return me.config.data;\n },\n set: function(value) {\n me.config.data = value;\n }\n });\n\n if (!context || !canvas) {\n // The given item is not a compatible context2d element, let's return before finalizing\n // the chart initialization but after setting basic chart / controller properties that\n // can help to figure out that the chart is not valid (e.g chart.canvas !== null);\n // https://github.com/chartjs/Chart.js/issues/2807\n console.error(\"Failed to create chart: can't acquire context from the given item\");\n return;\n }\n\n me.initialize();\n me.update();\n },\n\n /**\n * @private\n */\n initialize: function() {\n var me = this;\n\n // Before init plugin notification\n plugins.notify(me, 'beforeInit');\n\n helpers.retinaScale(me, me.options.devicePixelRatio);\n\n me.bindEvents();\n\n if (me.options.responsive) {\n // Initial resize before chart draws (must be silent to preserve initial animations).\n me.resize(true);\n }\n\n // Make sure scales have IDs and are built before we build any controllers.\n me.ensureScalesHaveIDs();\n me.buildScales();\n me.initToolTip();\n\n // After init plugin notification\n plugins.notify(me, 'afterInit');\n\n return me;\n },\n\n clear: function() {\n helpers.canvas.clear(this);\n return this;\n },\n\n stop: function() {\n // Stops any current animation loop occurring\n Chart.animationService.cancelAnimation(this);\n return this;\n },\n\n resize: function(silent) {\n var me = this;\n var options = me.options;\n var canvas = me.canvas;\n var aspectRatio = (options.maintainAspectRatio && me.aspectRatio) || null;\n\n // the canvas render width and height will be casted to integers so make sure that\n // the canvas display style uses the same integer values to avoid blurring effect.\n\n // Set to 0 instead of canvas.size because the size defaults to 300x150 if the element is collased\n var newWidth = Math.max(0, Math.floor(helpers.getMaximumWidth(canvas)));\n var newHeight = Math.max(0, Math.floor(aspectRatio ? newWidth / aspectRatio : helpers.getMaximumHeight(canvas)));\n\n if (me.width === newWidth && me.height === newHeight) {\n return;\n }\n\n canvas.width = me.width = newWidth;\n canvas.height = me.height = newHeight;\n canvas.style.width = newWidth + 'px';\n canvas.style.height = newHeight + 'px';\n\n helpers.retinaScale(me, options.devicePixelRatio);\n\n if (!silent) {\n // Notify any plugins about the resize\n var newSize = {width: newWidth, height: newHeight};\n plugins.notify(me, 'resize', [newSize]);\n\n // Notify of resize\n if (me.options.onResize) {\n me.options.onResize(me, newSize);\n }\n\n me.stop();\n me.update(me.options.responsiveAnimationDuration);\n }\n },\n\n ensureScalesHaveIDs: function() {\n var options = this.options;\n var scalesOptions = options.scales || {};\n var scaleOptions = options.scale;\n\n helpers.each(scalesOptions.xAxes, function(xAxisOptions, index) {\n xAxisOptions.id = xAxisOptions.id || ('x-axis-' + index);\n });\n\n helpers.each(scalesOptions.yAxes, function(yAxisOptions, index) {\n yAxisOptions.id = yAxisOptions.id || ('y-axis-' + index);\n });\n\n if (scaleOptions) {\n scaleOptions.id = scaleOptions.id || 'scale';\n }\n },\n\n /**\n * Builds a map of scale ID to scale object for future lookup.\n */\n buildScales: function() {\n var me = this;\n var options = me.options;\n var scales = me.scales = {};\n var items = [];\n\n if (options.scales) {\n items = items.concat(\n (options.scales.xAxes || []).map(function(xAxisOptions) {\n return {options: xAxisOptions, dtype: 'category', dposition: 'bottom'};\n }),\n (options.scales.yAxes || []).map(function(yAxisOptions) {\n return {options: yAxisOptions, dtype: 'linear', dposition: 'left'};\n })\n );\n }\n\n if (options.scale) {\n items.push({\n options: options.scale,\n dtype: 'radialLinear',\n isDefault: true,\n dposition: 'chartArea'\n });\n }\n\n helpers.each(items, function(item) {\n var scaleOptions = item.options;\n var scaleType = helpers.valueOrDefault(scaleOptions.type, item.dtype);\n var scaleClass = Chart.scaleService.getScaleConstructor(scaleType);\n if (!scaleClass) {\n return;\n }\n\n if (positionIsHorizontal(scaleOptions.position) !== positionIsHorizontal(item.dposition)) {\n scaleOptions.position = item.dposition;\n }\n\n var scale = new scaleClass({\n id: scaleOptions.id,\n options: scaleOptions,\n ctx: me.ctx,\n chart: me\n });\n\n scales[scale.id] = scale;\n scale.mergeTicksOptions();\n\n // TODO(SB): I think we should be able to remove this custom case (options.scale)\n // and consider it as a regular scale part of the \"scales\"\" map only! This would\n // make the logic easier and remove some useless? custom code.\n if (item.isDefault) {\n me.scale = scale;\n }\n });\n\n Chart.scaleService.addScalesToLayout(this);\n },\n\n buildOrUpdateControllers: function() {\n var me = this;\n var types = [];\n var newControllers = [];\n\n helpers.each(me.data.datasets, function(dataset, datasetIndex) {\n var meta = me.getDatasetMeta(datasetIndex);\n var type = dataset.type || me.config.type;\n\n if (meta.type && meta.type !== type) {\n me.destroyDatasetMeta(datasetIndex);\n meta = me.getDatasetMeta(datasetIndex);\n }\n meta.type = type;\n\n types.push(meta.type);\n\n if (meta.controller) {\n meta.controller.updateIndex(datasetIndex);\n } else {\n var ControllerClass = Chart.controllers[meta.type];\n if (ControllerClass === undefined) {\n throw new Error('\"' + meta.type + '\" is not a chart type.');\n }\n\n meta.controller = new ControllerClass(me, datasetIndex);\n newControllers.push(meta.controller);\n }\n }, me);\n\n return newControllers;\n },\n\n /**\n * Reset the elements of all datasets\n * @private\n */\n resetElements: function() {\n var me = this;\n helpers.each(me.data.datasets, function(dataset, datasetIndex) {\n me.getDatasetMeta(datasetIndex).controller.reset();\n }, me);\n },\n\n /**\n * Resets the chart back to it's state before the initial animation\n */\n reset: function() {\n this.resetElements();\n this.tooltip.initialize();\n },\n\n update: function(config) {\n var me = this;\n\n if (!config || typeof config !== 'object') {\n // backwards compatibility\n config = {\n duration: config,\n lazy: arguments[1]\n };\n }\n\n updateConfig(me);\n\n if (plugins.notify(me, 'beforeUpdate') === false) {\n return;\n }\n\n // In case the entire data object changed\n me.tooltip._data = me.data;\n\n // Make sure dataset controllers are updated and new controllers are reset\n var newControllers = me.buildOrUpdateControllers();\n\n // Make sure all dataset controllers have correct meta data counts\n helpers.each(me.data.datasets, function(dataset, datasetIndex) {\n me.getDatasetMeta(datasetIndex).controller.buildOrUpdateElements();\n }, me);\n\n me.updateLayout();\n\n // Can only reset the new controllers after the scales have been updated\n helpers.each(newControllers, function(controller) {\n controller.reset();\n });\n\n me.updateDatasets();\n\n // Do this before render so that any plugins that need final scale updates can use it\n plugins.notify(me, 'afterUpdate');\n\n if (me._bufferedRender) {\n me._bufferedRequest = {\n duration: config.duration,\n easing: config.easing,\n lazy: config.lazy\n };\n } else {\n me.render(config);\n }\n },\n\n /**\n * Updates the chart layout unless a plugin returns `false` to the `beforeLayout`\n * hook, in which case, plugins will not be called on `afterLayout`.\n * @private\n */\n updateLayout: function() {\n var me = this;\n\n if (plugins.notify(me, 'beforeLayout') === false) {\n return;\n }\n\n Chart.layoutService.update(this, this.width, this.height);\n\n /**\n * Provided for backward compatibility, use `afterLayout` instead.\n * @method IPlugin#afterScaleUpdate\n * @deprecated since version 2.5.0\n * @todo remove at version 3\n * @private\n */\n plugins.notify(me, 'afterScaleUpdate');\n plugins.notify(me, 'afterLayout');\n },\n\n /**\n * Updates all datasets unless a plugin returns `false` to the `beforeDatasetsUpdate`\n * hook, in which case, plugins will not be called on `afterDatasetsUpdate`.\n * @private\n */\n updateDatasets: function() {\n var me = this;\n\n if (plugins.notify(me, 'beforeDatasetsUpdate') === false) {\n return;\n }\n\n for (var i = 0, ilen = me.data.datasets.length; i < ilen; ++i) {\n me.updateDataset(i);\n }\n\n plugins.notify(me, 'afterDatasetsUpdate');\n },\n\n /**\n * Updates dataset at index unless a plugin returns `false` to the `beforeDatasetUpdate`\n * hook, in which case, plugins will not be called on `afterDatasetUpdate`.\n * @private\n */\n updateDataset: function(index) {\n var me = this;\n var meta = me.getDatasetMeta(index);\n var args = {\n meta: meta,\n index: index\n };\n\n if (plugins.notify(me, 'beforeDatasetUpdate', [args]) === false) {\n return;\n }\n\n meta.controller.update();\n\n plugins.notify(me, 'afterDatasetUpdate', [args]);\n },\n\n render: function(config) {\n var me = this;\n\n if (!config || typeof config !== 'object') {\n // backwards compatibility\n config = {\n duration: config,\n lazy: arguments[1]\n };\n }\n\n var duration = config.duration;\n var lazy = config.lazy;\n\n if (plugins.notify(me, 'beforeRender') === false) {\n return;\n }\n\n var animationOptions = me.options.animation;\n var onComplete = function(animation) {\n plugins.notify(me, 'afterRender');\n helpers.callback(animationOptions && animationOptions.onComplete, [animation], me);\n };\n\n if (animationOptions && ((typeof duration !== 'undefined' && duration !== 0) || (typeof duration === 'undefined' && animationOptions.duration !== 0))) {\n var animation = new Chart.Animation({\n numSteps: (duration || animationOptions.duration) / 16.66, // 60 fps\n easing: config.easing || animationOptions.easing,\n\n render: function(chart, animationObject) {\n var easingFunction = helpers.easing.effects[animationObject.easing];\n var currentStep = animationObject.currentStep;\n var stepDecimal = currentStep / animationObject.numSteps;\n\n chart.draw(easingFunction(stepDecimal), stepDecimal, currentStep);\n },\n\n onAnimationProgress: animationOptions.onProgress,\n onAnimationComplete: onComplete\n });\n\n Chart.animationService.addAnimation(me, animation, duration, lazy);\n } else {\n me.draw();\n\n // See https://github.com/chartjs/Chart.js/issues/3781\n onComplete(new Chart.Animation({numSteps: 0, chart: me}));\n }\n\n return me;\n },\n\n draw: function(easingValue) {\n var me = this;\n\n me.clear();\n\n if (helpers.isNullOrUndef(easingValue)) {\n easingValue = 1;\n }\n\n me.transition(easingValue);\n\n if (plugins.notify(me, 'beforeDraw', [easingValue]) === false) {\n return;\n }\n\n // Draw all the scales\n helpers.each(me.boxes, function(box) {\n box.draw(me.chartArea);\n }, me);\n\n if (me.scale) {\n me.scale.draw();\n }\n\n me.drawDatasets(easingValue);\n\n // Finally draw the tooltip\n me.tooltip.draw();\n\n plugins.notify(me, 'afterDraw', [easingValue]);\n },\n\n /**\n * @private\n */\n transition: function(easingValue) {\n var me = this;\n\n for (var i = 0, ilen = (me.data.datasets || []).length; i < ilen; ++i) {\n if (me.isDatasetVisible(i)) {\n me.getDatasetMeta(i).controller.transition(easingValue);\n }\n }\n\n me.tooltip.transition(easingValue);\n },\n\n /**\n * Draws all datasets unless a plugin returns `false` to the `beforeDatasetsDraw`\n * hook, in which case, plugins will not be called on `afterDatasetsDraw`.\n * @private\n */\n drawDatasets: function(easingValue) {\n var me = this;\n\n if (plugins.notify(me, 'beforeDatasetsDraw', [easingValue]) === false) {\n return;\n }\n\n // Draw datasets reversed to support proper line stacking\n for (var i = (me.data.datasets || []).length - 1; i >= 0; --i) {\n if (me.isDatasetVisible(i)) {\n me.drawDataset(i, easingValue);\n }\n }\n\n plugins.notify(me, 'afterDatasetsDraw', [easingValue]);\n },\n\n /**\n * Draws dataset at index unless a plugin returns `false` to the `beforeDatasetDraw`\n * hook, in which case, plugins will not be called on `afterDatasetDraw`.\n * @private\n */\n drawDataset: function(index, easingValue) {\n var me = this;\n var meta = me.getDatasetMeta(index);\n var args = {\n meta: meta,\n index: index,\n easingValue: easingValue\n };\n\n if (plugins.notify(me, 'beforeDatasetDraw', [args]) === false) {\n return;\n }\n\n meta.controller.draw(easingValue);\n\n plugins.notify(me, 'afterDatasetDraw', [args]);\n },\n\n // Get the single element that was clicked on\n // @return : An object containing the dataset index and element index of the matching element. Also contains the rectangle that was draw\n getElementAtEvent: function(e) {\n return Interaction.modes.single(this, e);\n },\n\n getElementsAtEvent: function(e) {\n return Interaction.modes.label(this, e, {intersect: true});\n },\n\n getElementsAtXAxis: function(e) {\n return Interaction.modes['x-axis'](this, e, {intersect: true});\n },\n\n getElementsAtEventForMode: function(e, mode, options) {\n var method = Interaction.modes[mode];\n if (typeof method === 'function') {\n return method(this, e, options);\n }\n\n return [];\n },\n\n getDatasetAtEvent: function(e) {\n return Interaction.modes.dataset(this, e, {intersect: true});\n },\n\n getDatasetMeta: function(datasetIndex) {\n var me = this;\n var dataset = me.data.datasets[datasetIndex];\n if (!dataset._meta) {\n dataset._meta = {};\n }\n\n var meta = dataset._meta[me.id];\n if (!meta) {\n meta = dataset._meta[me.id] = {\n type: null,\n data: [],\n dataset: null,\n controller: null,\n hidden: null,\t\t\t// See isDatasetVisible() comment\n xAxisID: null,\n yAxisID: null\n };\n }\n\n return meta;\n },\n\n getVisibleDatasetCount: function() {\n var count = 0;\n for (var i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n if (this.isDatasetVisible(i)) {\n count++;\n }\n }\n return count;\n },\n\n isDatasetVisible: function(datasetIndex) {\n var meta = this.getDatasetMeta(datasetIndex);\n\n // meta.hidden is a per chart dataset hidden flag override with 3 states: if true or false,\n // the dataset.hidden value is ignored, else if null, the dataset hidden state is returned.\n return typeof meta.hidden === 'boolean' ? !meta.hidden : !this.data.datasets[datasetIndex].hidden;\n },\n\n generateLegend: function() {\n return this.options.legendCallback(this);\n },\n\n /**\n * @private\n */\n destroyDatasetMeta: function(datasetIndex) {\n var id = this.id;\n var dataset = this.data.datasets[datasetIndex];\n var meta = dataset._meta && dataset._meta[id];\n\n if (meta) {\n meta.controller.destroy();\n delete dataset._meta[id];\n }\n },\n\n destroy: function() {\n var me = this;\n var canvas = me.canvas;\n var i, ilen;\n\n me.stop();\n\n // dataset controllers need to cleanup associated data\n for (i = 0, ilen = me.data.datasets.length; i < ilen; ++i) {\n me.destroyDatasetMeta(i);\n }\n\n if (canvas) {\n me.unbindEvents();\n helpers.canvas.clear(me);\n platform.releaseContext(me.ctx);\n me.canvas = null;\n me.ctx = null;\n }\n\n plugins.notify(me, 'destroy');\n\n delete Chart.instances[me.id];\n },\n\n toBase64Image: function() {\n return this.canvas.toDataURL.apply(this.canvas, arguments);\n },\n\n initToolTip: function() {\n var me = this;\n me.tooltip = new Chart.Tooltip({\n _chart: me,\n _chartInstance: me, // deprecated, backward compatibility\n _data: me.data,\n _options: me.options.tooltips\n }, me);\n },\n\n /**\n * @private\n */\n bindEvents: function() {\n var me = this;\n var listeners = me._listeners = {};\n var listener = function() {\n me.eventHandler.apply(me, arguments);\n };\n\n helpers.each(me.options.events, function(type) {\n platform.addEventListener(me, type, listener);\n listeners[type] = listener;\n });\n\n // Elements used to detect size change should not be injected for non responsive charts.\n // See https://github.com/chartjs/Chart.js/issues/2210\n if (me.options.responsive) {\n listener = function() {\n me.resize();\n };\n\n platform.addEventListener(me, 'resize', listener);\n listeners.resize = listener;\n }\n },\n\n /**\n * @private\n */\n unbindEvents: function() {\n var me = this;\n var listeners = me._listeners;\n if (!listeners) {\n return;\n }\n\n delete me._listeners;\n helpers.each(listeners, function(listener, type) {\n platform.removeEventListener(me, type, listener);\n });\n },\n\n updateHoverStyle: function(elements, mode, enabled) {\n var method = enabled ? 'setHoverStyle' : 'removeHoverStyle';\n var element, i, ilen;\n\n for (i = 0, ilen = elements.length; i < ilen; ++i) {\n element = elements[i];\n if (element) {\n this.getDatasetMeta(element._datasetIndex).controller[method](element);\n }\n }\n },\n\n /**\n * @private\n */\n eventHandler: function(e) {\n var me = this;\n var tooltip = me.tooltip;\n\n if (plugins.notify(me, 'beforeEvent', [e]) === false) {\n return;\n }\n\n // Buffer any update calls so that renders do not occur\n me._bufferedRender = true;\n me._bufferedRequest = null;\n\n var changed = me.handleEvent(e);\n changed |= tooltip && tooltip.handleEvent(e);\n\n plugins.notify(me, 'afterEvent', [e]);\n\n var bufferedRequest = me._bufferedRequest;\n if (bufferedRequest) {\n // If we have an update that was triggered, we need to do a normal render\n me.render(bufferedRequest);\n } else if (changed && !me.animating) {\n // If entering, leaving, or changing elements, animate the change via pivot\n me.stop();\n\n // We only need to render at this point. Updating will cause scales to be\n // recomputed generating flicker & using more memory than necessary.\n me.render(me.options.hover.animationDuration, true);\n }\n\n me._bufferedRender = false;\n me._bufferedRequest = null;\n\n return me;\n },\n\n /**\n * Handle an event\n * @private\n * @param {IEvent} event the event to handle\n * @return {Boolean} true if the chart needs to re-render\n */\n handleEvent: function(e) {\n var me = this;\n var options = me.options || {};\n var hoverOptions = options.hover;\n var changed = false;\n\n me.lastActive = me.lastActive || [];\n\n // Find Active Elements for hover and tooltips\n if (e.type === 'mouseout') {\n me.active = [];\n } else {\n me.active = me.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions);\n }\n\n // Invoke onHover hook\n // Need to call with native event here to not break backwards compatibility\n helpers.callback(options.onHover || options.hover.onHover, [e.native, me.active], me);\n\n if (e.type === 'mouseup' || e.type === 'click') {\n if (options.onClick) {\n // Use e.native here for backwards compatibility\n options.onClick.call(me, e.native, me.active);\n }\n }\n\n // Remove styling for last active (even if it may still be active)\n if (me.lastActive.length) {\n me.updateHoverStyle(me.lastActive, hoverOptions.mode, false);\n }\n\n // Built in hover styling\n if (me.active.length && hoverOptions.mode) {\n me.updateHoverStyle(me.active, hoverOptions.mode, true);\n }\n\n changed = !helpers.arrayEquals(me.active, me.lastActive);\n\n // Remember Last Actives\n me.lastActive = me.active;\n\n return changed;\n }\n });\n\n /**\n * Provided for backward compatibility, use Chart instead.\n * @class Chart.Controller\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n * @private\n */\n Chart.Controller = Chart;\n };\n\n},{\"25\":25,\"28\":28,\"45\":45,\"48\":48}],24:[function(require,module,exports){\n 'use strict';\n\n var helpers = require(45);\n\n module.exports = function(Chart) {\n\n var arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\n\n /**\n * Hooks the array methods that add or remove values ('push', pop', 'shift', 'splice',\n * 'unshift') and notify the listener AFTER the array has been altered. Listeners are\n * called on the 'onData*' callbacks (e.g. onDataPush, etc.) with same arguments.\n */\n function listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n return;\n }\n\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [listener]\n }\n });\n\n arrayEvents.forEach(function(key) {\n var method = 'onData' + key.charAt(0).toUpperCase() + key.slice(1);\n var base = array[key];\n\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value: function() {\n var args = Array.prototype.slice.call(arguments);\n var res = base.apply(this, args);\n\n helpers.each(array._chartjs.listeners, function(object) {\n if (typeof object[method] === 'function') {\n object[method].apply(object, args);\n }\n });\n\n return res;\n }\n });\n });\n }\n\n /**\n * Removes the given array event listener and cleanup extra attached properties (such as\n * the _chartjs stub and overridden methods) if array doesn't have any more listeners.\n */\n function unlistenArrayEvents(array, listener) {\n var stub = array._chartjs;\n if (!stub) {\n return;\n }\n\n var listeners = stub.listeners;\n var index = listeners.indexOf(listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n\n if (listeners.length > 0) {\n return;\n }\n\n arrayEvents.forEach(function(key) {\n delete array[key];\n });\n\n delete array._chartjs;\n }\n\n // Base class for all dataset controllers (line, bar, etc)\n Chart.DatasetController = function(chart, datasetIndex) {\n this.initialize(chart, datasetIndex);\n };\n\n helpers.extend(Chart.DatasetController.prototype, {\n\n /**\n * Element type used to generate a meta dataset (e.g. Chart.element.Line).\n * @type {Chart.core.element}\n */\n datasetElementType: null,\n\n /**\n * Element type used to generate a meta data (e.g. Chart.element.Point).\n * @type {Chart.core.element}\n */\n dataElementType: null,\n\n initialize: function(chart, datasetIndex) {\n var me = this;\n me.chart = chart;\n me.index = datasetIndex;\n me.linkScales();\n me.addElements();\n },\n\n updateIndex: function(datasetIndex) {\n this.index = datasetIndex;\n },\n\n linkScales: function() {\n var me = this;\n var meta = me.getMeta();\n var dataset = me.getDataset();\n\n if (meta.xAxisID === null) {\n meta.xAxisID = dataset.xAxisID || me.chart.options.scales.xAxes[0].id;\n }\n if (meta.yAxisID === null) {\n meta.yAxisID = dataset.yAxisID || me.chart.options.scales.yAxes[0].id;\n }\n },\n\n getDataset: function() {\n return this.chart.data.datasets[this.index];\n },\n\n getMeta: function() {\n return this.chart.getDatasetMeta(this.index);\n },\n\n getScaleForId: function(scaleID) {\n return this.chart.scales[scaleID];\n },\n\n reset: function() {\n this.update(true);\n },\n\n /**\n * @private\n */\n destroy: function() {\n if (this._data) {\n unlistenArrayEvents(this._data, this);\n }\n },\n\n createMetaDataset: function() {\n var me = this;\n var type = me.datasetElementType;\n return type && new type({\n _chart: me.chart,\n _datasetIndex: me.index\n });\n },\n\n createMetaData: function(index) {\n var me = this;\n var type = me.dataElementType;\n return type && new type({\n _chart: me.chart,\n _datasetIndex: me.index,\n _index: index\n });\n },\n\n addElements: function() {\n var me = this;\n var meta = me.getMeta();\n var data = me.getDataset().data || [];\n var metaData = meta.data;\n var i, ilen;\n\n for (i = 0, ilen = data.length; i < ilen; ++i) {\n metaData[i] = metaData[i] || me.createMetaData(i);\n }\n\n meta.dataset = meta.dataset || me.createMetaDataset();\n },\n\n addElementAndReset: function(index) {\n var element = this.createMetaData(index);\n this.getMeta().data.splice(index, 0, element);\n this.updateElement(element, index, true);\n },\n\n buildOrUpdateElements: function() {\n var me = this;\n var dataset = me.getDataset();\n var data = dataset.data || (dataset.data = []);\n\n // In order to correctly handle data addition/deletion animation (an thus simulate\n // real-time charts), we need to monitor these data modifications and synchronize\n // the internal meta data accordingly.\n if (me._data !== data) {\n if (me._data) {\n // This case happens when the user replaced the data array instance.\n unlistenArrayEvents(me._data, me);\n }\n\n listenArrayEvents(data, me);\n me._data = data;\n }\n\n // Re-sync meta data in case the user replaced the data array or if we missed\n // any updates and so make sure that we handle number of datapoints changing.\n me.resyncElements();\n },\n\n update: helpers.noop,\n\n transition: function(easingValue) {\n var meta = this.getMeta();\n var elements = meta.data || [];\n var ilen = elements.length;\n var i = 0;\n\n for (; i < ilen; ++i) {\n elements[i].transition(easingValue);\n }\n\n if (meta.dataset) {\n meta.dataset.transition(easingValue);\n }\n },\n\n draw: function() {\n var meta = this.getMeta();\n var elements = meta.data || [];\n var ilen = elements.length;\n var i = 0;\n\n if (meta.dataset) {\n meta.dataset.draw();\n }\n\n for (; i < ilen; ++i) {\n elements[i].draw();\n }\n },\n\n removeHoverStyle: function(element, elementOpts) {\n var dataset = this.chart.data.datasets[element._datasetIndex];\n var index = element._index;\n var custom = element.custom || {};\n var valueOrDefault = helpers.valueAtIndexOrDefault;\n var model = element._model;\n\n model.backgroundColor = custom.backgroundColor ? custom.backgroundColor : valueOrDefault(dataset.backgroundColor, index, elementOpts.backgroundColor);\n model.borderColor = custom.borderColor ? custom.borderColor : valueOrDefault(dataset.borderColor, index, elementOpts.borderColor);\n model.borderWidth = custom.borderWidth ? custom.borderWidth : valueOrDefault(dataset.borderWidth, index, elementOpts.borderWidth);\n },\n\n setHoverStyle: function(element) {\n var dataset = this.chart.data.datasets[element._datasetIndex];\n var index = element._index;\n var custom = element.custom || {};\n var valueOrDefault = helpers.valueAtIndexOrDefault;\n var getHoverColor = helpers.getHoverColor;\n var model = element._model;\n\n model.backgroundColor = custom.hoverBackgroundColor ? custom.hoverBackgroundColor : valueOrDefault(dataset.hoverBackgroundColor, index, getHoverColor(model.backgroundColor));\n model.borderColor = custom.hoverBorderColor ? custom.hoverBorderColor : valueOrDefault(dataset.hoverBorderColor, index, getHoverColor(model.borderColor));\n model.borderWidth = custom.hoverBorderWidth ? custom.hoverBorderWidth : valueOrDefault(dataset.hoverBorderWidth, index, model.borderWidth);\n },\n\n /**\n * @private\n */\n resyncElements: function() {\n var me = this;\n var meta = me.getMeta();\n var data = me.getDataset().data;\n var numMeta = meta.data.length;\n var numData = data.length;\n\n if (numData < numMeta) {\n meta.data.splice(numData, numMeta - numData);\n } else if (numData > numMeta) {\n me.insertElements(numMeta, numData - numMeta);\n }\n },\n\n /**\n * @private\n */\n insertElements: function(start, count) {\n for (var i = 0; i < count; ++i) {\n this.addElementAndReset(start + i);\n }\n },\n\n /**\n * @private\n */\n onDataPush: function() {\n this.insertElements(this.getDataset().data.length - 1, arguments.length);\n },\n\n /**\n * @private\n */\n onDataPop: function() {\n this.getMeta().data.pop();\n },\n\n /**\n * @private\n */\n onDataShift: function() {\n this.getMeta().data.shift();\n },\n\n /**\n * @private\n */\n onDataSplice: function(start, count) {\n this.getMeta().data.splice(start, count);\n this.insertElements(start, arguments.length - 2);\n },\n\n /**\n * @private\n */\n onDataUnshift: function() {\n this.insertElements(0, arguments.length);\n }\n });\n\n Chart.DatasetController.extend = helpers.inherits;\n };\n\n},{\"45\":45}],25:[function(require,module,exports){\n 'use strict';\n\n var helpers = require(45);\n\n module.exports = {\n /**\n * @private\n */\n _set: function(scope, values) {\n return helpers.merge(this[scope] || (this[scope] = {}), values);\n }\n };\n\n},{\"45\":45}],26:[function(require,module,exports){\n 'use strict';\n\n var color = require(2);\n var helpers = require(45);\n\n function interpolate(start, view, model, ease) {\n var keys = Object.keys(model);\n var i, ilen, key, actual, origin, target, type, c0, c1;\n\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n key = keys[i];\n\n target = model[key];\n\n // if a value is added to the model after pivot() has been called, the view\n // doesn't contain it, so let's initialize the view to the target value.\n if (!view.hasOwnProperty(key)) {\n view[key] = target;\n }\n\n actual = view[key];\n\n if (actual === target || key[0] === '_') {\n continue;\n }\n\n if (!start.hasOwnProperty(key)) {\n start[key] = actual;\n }\n\n origin = start[key];\n\n type = typeof target;\n\n if (type === typeof origin) {\n if (type === 'string') {\n c0 = color(origin);\n if (c0.valid) {\n c1 = color(target);\n if (c1.valid) {\n view[key] = c1.mix(c0, ease).rgbString();\n continue;\n }\n }\n } else if (type === 'number' && isFinite(origin) && isFinite(target)) {\n view[key] = origin + (target - origin) * ease;\n continue;\n }\n }\n\n view[key] = target;\n }\n }\n\n var Element = function(configuration) {\n helpers.extend(this, configuration);\n this.initialize.apply(this, arguments);\n };\n\n helpers.extend(Element.prototype, {\n\n initialize: function() {\n this.hidden = false;\n },\n\n pivot: function() {\n var me = this;\n if (!me._view) {\n me._view = helpers.clone(me._model);\n }\n me._start = {};\n return me;\n },\n\n transition: function(ease) {\n var me = this;\n var model = me._model;\n var start = me._start;\n var view = me._view;\n\n // No animation -> No Transition\n if (!model || ease === 1) {\n me._view = model;\n me._start = null;\n return me;\n }\n\n if (!view) {\n view = me._view = {};\n }\n\n if (!start) {\n start = me._start = {};\n }\n\n interpolate(start, view, model, ease);\n\n return me;\n },\n\n tooltipPosition: function() {\n return {\n x: this._model.x,\n y: this._model.y\n };\n },\n\n hasValue: function() {\n return helpers.isNumber(this._model.x) && helpers.isNumber(this._model.y);\n }\n });\n\n Element.extend = helpers.inherits;\n\n module.exports = Element;\n\n},{\"2\":2,\"45\":45}],27:[function(require,module,exports){\n\t/* global window: false */\n\t/* global document: false */\n 'use strict';\n\n var color = require(2);\n var defaults = require(25);\n var helpers = require(45);\n\n module.exports = function(Chart) {\n\n // -- Basic js utility methods\n\n helpers.extend = function(base) {\n var setFn = function(value, key) {\n base[key] = value;\n };\n for (var i = 1, ilen = arguments.length; i < ilen; i++) {\n helpers.each(arguments[i], setFn);\n }\n return base;\n };\n\n helpers.configMerge = function(/* objects ... */) {\n return helpers.merge(helpers.clone(arguments[0]), [].slice.call(arguments, 1), {\n merger: function(key, target, source, options) {\n var tval = target[key] || {};\n var sval = source[key];\n\n if (key === 'scales') {\n // scale config merging is complex. Add our own function here for that\n target[key] = helpers.scaleMerge(tval, sval);\n } else if (key === 'scale') {\n // used in polar area & radar charts since there is only one scale\n target[key] = helpers.merge(tval, [Chart.scaleService.getScaleDefaults(sval.type), sval]);\n } else {\n helpers._merger(key, target, source, options);\n }\n }\n });\n };\n\n helpers.scaleMerge = function(/* objects ... */) {\n return helpers.merge(helpers.clone(arguments[0]), [].slice.call(arguments, 1), {\n merger: function(key, target, source, options) {\n if (key === 'xAxes' || key === 'yAxes') {\n var slen = source[key].length;\n var i, type, scale;\n\n if (!target[key]) {\n target[key] = [];\n }\n\n for (i = 0; i < slen; ++i) {\n scale = source[key][i];\n type = helpers.valueOrDefault(scale.type, key === 'xAxes' ? 'category' : 'linear');\n\n if (i >= target[key].length) {\n target[key].push({});\n }\n\n if (!target[key][i].type || (scale.type && scale.type !== target[key][i].type)) {\n // new/untyped scale or type changed: let's apply the new defaults\n // then merge source scale to correctly overwrite the defaults.\n helpers.merge(target[key][i], [Chart.scaleService.getScaleDefaults(type), scale]);\n } else {\n // scales type are the same\n helpers.merge(target[key][i], scale);\n }\n }\n } else {\n helpers._merger(key, target, source, options);\n }\n }\n });\n };\n\n helpers.where = function(collection, filterCallback) {\n if (helpers.isArray(collection) && Array.prototype.filter) {\n return collection.filter(filterCallback);\n }\n var filtered = [];\n\n helpers.each(collection, function(item) {\n if (filterCallback(item)) {\n filtered.push(item);\n }\n });\n\n return filtered;\n };\n helpers.findIndex = Array.prototype.findIndex ?\n function(array, callback, scope) {\n return array.findIndex(callback, scope);\n } :\n function(array, callback, scope) {\n scope = scope === undefined ? array : scope;\n for (var i = 0, ilen = array.length; i < ilen; ++i) {\n if (callback.call(scope, array[i], i, array)) {\n return i;\n }\n }\n return -1;\n };\n helpers.findNextWhere = function(arrayToSearch, filterCallback, startIndex) {\n // Default to start of the array\n if (helpers.isNullOrUndef(startIndex)) {\n startIndex = -1;\n }\n for (var i = startIndex + 1; i < arrayToSearch.length; i++) {\n var currentItem = arrayToSearch[i];\n if (filterCallback(currentItem)) {\n return currentItem;\n }\n }\n };\n helpers.findPreviousWhere = function(arrayToSearch, filterCallback, startIndex) {\n // Default to end of the array\n if (helpers.isNullOrUndef(startIndex)) {\n startIndex = arrayToSearch.length;\n }\n for (var i = startIndex - 1; i >= 0; i--) {\n var currentItem = arrayToSearch[i];\n if (filterCallback(currentItem)) {\n return currentItem;\n }\n }\n };\n helpers.inherits = function(extensions) {\n // Basic javascript inheritance based on the model created in Backbone.js\n var me = this;\n var ChartElement = (extensions && extensions.hasOwnProperty('constructor')) ? extensions.constructor : function() {\n return me.apply(this, arguments);\n };\n\n var Surrogate = function() {\n this.constructor = ChartElement;\n };\n Surrogate.prototype = me.prototype;\n ChartElement.prototype = new Surrogate();\n\n ChartElement.extend = helpers.inherits;\n\n if (extensions) {\n helpers.extend(ChartElement.prototype, extensions);\n }\n\n ChartElement.__super__ = me.prototype;\n\n return ChartElement;\n };\n // -- Math methods\n helpers.isNumber = function(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n };\n helpers.almostEquals = function(x, y, epsilon) {\n return Math.abs(x - y) < epsilon;\n };\n helpers.almostWhole = function(x, epsilon) {\n var rounded = Math.round(x);\n return (((rounded - epsilon) < x) && ((rounded + epsilon) > x));\n };\n helpers.max = function(array) {\n return array.reduce(function(max, value) {\n if (!isNaN(value)) {\n return Math.max(max, value);\n }\n return max;\n }, Number.NEGATIVE_INFINITY);\n };\n helpers.min = function(array) {\n return array.reduce(function(min, value) {\n if (!isNaN(value)) {\n return Math.min(min, value);\n }\n return min;\n }, Number.POSITIVE_INFINITY);\n };\n helpers.sign = Math.sign ?\n function(x) {\n return Math.sign(x);\n } :\n function(x) {\n x = +x; // convert to a number\n if (x === 0 || isNaN(x)) {\n return x;\n }\n return x > 0 ? 1 : -1;\n };\n helpers.log10 = Math.log10 ?\n function(x) {\n return Math.log10(x);\n } :\n function(x) {\n return Math.log(x) / Math.LN10;\n };\n helpers.toRadians = function(degrees) {\n return degrees * (Math.PI / 180);\n };\n helpers.toDegrees = function(radians) {\n return radians * (180 / Math.PI);\n };\n // Gets the angle from vertical upright to the point about a centre.\n helpers.getAngleFromPoint = function(centrePoint, anglePoint) {\n var distanceFromXCenter = anglePoint.x - centrePoint.x;\n var distanceFromYCenter = anglePoint.y - centrePoint.y;\n var radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n\n var angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n\n if (angle < (-0.5 * Math.PI)) {\n angle += 2.0 * Math.PI; // make sure the returned angle is in the range of (-PI/2, 3PI/2]\n }\n\n return {\n angle: angle,\n distance: radialDistanceFromCenter\n };\n };\n helpers.distanceBetweenPoints = function(pt1, pt2) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n };\n helpers.aliasPixel = function(pixelWidth) {\n return (pixelWidth % 2 === 0) ? 0 : 0.5;\n };\n helpers.splineCurve = function(firstPoint, middlePoint, afterPoint, t) {\n // Props to Rob Spencer at scaled innovation for his post on splining between points\n // http://scaledinnovation.com/analytics/splines/aboutSplines.html\n\n // This function must also respect \"skipped\" points\n\n var previous = firstPoint.skip ? middlePoint : firstPoint;\n var current = middlePoint;\n var next = afterPoint.skip ? middlePoint : afterPoint;\n\n var d01 = Math.sqrt(Math.pow(current.x - previous.x, 2) + Math.pow(current.y - previous.y, 2));\n var d12 = Math.sqrt(Math.pow(next.x - current.x, 2) + Math.pow(next.y - current.y, 2));\n\n var s01 = d01 / (d01 + d12);\n var s12 = d12 / (d01 + d12);\n\n // If all points are the same, s01 & s02 will be inf\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n\n var fa = t * s01; // scaling factor for triangle Ta\n var fb = t * s12;\n\n return {\n previous: {\n x: current.x - fa * (next.x - previous.x),\n y: current.y - fa * (next.y - previous.y)\n },\n next: {\n x: current.x + fb * (next.x - previous.x),\n y: current.y + fb * (next.y - previous.y)\n }\n };\n };\n helpers.EPSILON = Number.EPSILON || 1e-14;\n helpers.splineCurveMonotone = function(points) {\n // This function calculates Bézier control points in a similar way than |splineCurve|,\n // but preserves monotonicity of the provided data and ensures no local extremums are added\n // between the dataset discrete points due to the interpolation.\n // See : https://en.wikipedia.org/wiki/Monotone_cubic_interpolation\n\n var pointsWithTangents = (points || []).map(function(point) {\n return {\n model: point._model,\n deltaK: 0,\n mK: 0\n };\n });\n\n // Calculate slopes (deltaK) and initialize tangents (mK)\n var pointsLen = pointsWithTangents.length;\n var i, pointBefore, pointCurrent, pointAfter;\n for (i = 0; i < pointsLen; ++i) {\n pointCurrent = pointsWithTangents[i];\n if (pointCurrent.model.skip) {\n continue;\n }\n\n pointBefore = i > 0 ? pointsWithTangents[i - 1] : null;\n pointAfter = i < pointsLen - 1 ? pointsWithTangents[i + 1] : null;\n if (pointAfter && !pointAfter.model.skip) {\n var slopeDeltaX = (pointAfter.model.x - pointCurrent.model.x);\n\n // In the case of two points that appear at the same x pixel, slopeDeltaX is 0\n pointCurrent.deltaK = slopeDeltaX !== 0 ? (pointAfter.model.y - pointCurrent.model.y) / slopeDeltaX : 0;\n }\n\n if (!pointBefore || pointBefore.model.skip) {\n pointCurrent.mK = pointCurrent.deltaK;\n } else if (!pointAfter || pointAfter.model.skip) {\n pointCurrent.mK = pointBefore.deltaK;\n } else if (this.sign(pointBefore.deltaK) !== this.sign(pointCurrent.deltaK)) {\n pointCurrent.mK = 0;\n } else {\n pointCurrent.mK = (pointBefore.deltaK + pointCurrent.deltaK) / 2;\n }\n }\n\n // Adjust tangents to ensure monotonic properties\n var alphaK, betaK, tauK, squaredMagnitude;\n for (i = 0; i < pointsLen - 1; ++i) {\n pointCurrent = pointsWithTangents[i];\n pointAfter = pointsWithTangents[i + 1];\n if (pointCurrent.model.skip || pointAfter.model.skip) {\n continue;\n }\n\n if (helpers.almostEquals(pointCurrent.deltaK, 0, this.EPSILON)) {\n pointCurrent.mK = pointAfter.mK = 0;\n continue;\n }\n\n alphaK = pointCurrent.mK / pointCurrent.deltaK;\n betaK = pointAfter.mK / pointCurrent.deltaK;\n squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n if (squaredMagnitude <= 9) {\n continue;\n }\n\n tauK = 3 / Math.sqrt(squaredMagnitude);\n pointCurrent.mK = alphaK * tauK * pointCurrent.deltaK;\n pointAfter.mK = betaK * tauK * pointCurrent.deltaK;\n }\n\n // Compute control points\n var deltaX;\n for (i = 0; i < pointsLen; ++i) {\n pointCurrent = pointsWithTangents[i];\n if (pointCurrent.model.skip) {\n continue;\n }\n\n pointBefore = i > 0 ? pointsWithTangents[i - 1] : null;\n pointAfter = i < pointsLen - 1 ? pointsWithTangents[i + 1] : null;\n if (pointBefore && !pointBefore.model.skip) {\n deltaX = (pointCurrent.model.x - pointBefore.model.x) / 3;\n pointCurrent.model.controlPointPreviousX = pointCurrent.model.x - deltaX;\n pointCurrent.model.controlPointPreviousY = pointCurrent.model.y - deltaX * pointCurrent.mK;\n }\n if (pointAfter && !pointAfter.model.skip) {\n deltaX = (pointAfter.model.x - pointCurrent.model.x) / 3;\n pointCurrent.model.controlPointNextX = pointCurrent.model.x + deltaX;\n pointCurrent.model.controlPointNextY = pointCurrent.model.y + deltaX * pointCurrent.mK;\n }\n }\n };\n helpers.nextItem = function(collection, index, loop) {\n if (loop) {\n return index >= collection.length - 1 ? collection[0] : collection[index + 1];\n }\n return index >= collection.length - 1 ? collection[collection.length - 1] : collection[index + 1];\n };\n helpers.previousItem = function(collection, index, loop) {\n if (loop) {\n return index <= 0 ? collection[collection.length - 1] : collection[index - 1];\n }\n return index <= 0 ? collection[0] : collection[index - 1];\n };\n // Implementation of the nice number algorithm used in determining where axis labels will go\n helpers.niceNum = function(range, round) {\n var exponent = Math.floor(helpers.log10(range));\n var fraction = range / Math.pow(10, exponent);\n var niceFraction;\n\n if (round) {\n if (fraction < 1.5) {\n niceFraction = 1;\n } else if (fraction < 3) {\n niceFraction = 2;\n } else if (fraction < 7) {\n niceFraction = 5;\n } else {\n niceFraction = 10;\n }\n } else if (fraction <= 1.0) {\n niceFraction = 1;\n } else if (fraction <= 2) {\n niceFraction = 2;\n } else if (fraction <= 5) {\n niceFraction = 5;\n } else {\n niceFraction = 10;\n }\n\n return niceFraction * Math.pow(10, exponent);\n };\n // Request animation polyfill - http://www.paulirish.com/2011/requestanimationframe-for-smart-animating/\n helpers.requestAnimFrame = (function() {\n if (typeof window === 'undefined') {\n return function(callback) {\n callback();\n };\n }\n return window.requestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.oRequestAnimationFrame ||\n window.msRequestAnimationFrame ||\n function(callback) {\n return window.setTimeout(callback, 1000 / 60);\n };\n }());\n // -- DOM methods\n helpers.getRelativePosition = function(evt, chart) {\n var mouseX, mouseY;\n var e = evt.originalEvent || evt;\n var canvas = evt.currentTarget || evt.srcElement;\n var boundingRect = canvas.getBoundingClientRect();\n\n var touches = e.touches;\n if (touches && touches.length > 0) {\n mouseX = touches[0].clientX;\n mouseY = touches[0].clientY;\n\n } else {\n mouseX = e.clientX;\n mouseY = e.clientY;\n }\n\n // Scale mouse coordinates into canvas coordinates\n // by following the pattern laid out by 'jerryj' in the comments of\n // http://www.html5canvastutorials.com/advanced/html5-canvas-mouse-coordinates/\n var paddingLeft = parseFloat(helpers.getStyle(canvas, 'padding-left'));\n var paddingTop = parseFloat(helpers.getStyle(canvas, 'padding-top'));\n var paddingRight = parseFloat(helpers.getStyle(canvas, 'padding-right'));\n var paddingBottom = parseFloat(helpers.getStyle(canvas, 'padding-bottom'));\n var width = boundingRect.right - boundingRect.left - paddingLeft - paddingRight;\n var height = boundingRect.bottom - boundingRect.top - paddingTop - paddingBottom;\n\n // We divide by the current device pixel ratio, because the canvas is scaled up by that amount in each direction. However\n // the backend model is in unscaled coordinates. Since we are going to deal with our model coordinates, we go back here\n mouseX = Math.round((mouseX - boundingRect.left - paddingLeft) / (width) * canvas.width / chart.currentDevicePixelRatio);\n mouseY = Math.round((mouseY - boundingRect.top - paddingTop) / (height) * canvas.height / chart.currentDevicePixelRatio);\n\n return {\n x: mouseX,\n y: mouseY\n };\n\n };\n\n // Private helper function to convert max-width/max-height values that may be percentages into a number\n function parseMaxStyle(styleValue, node, parentProperty) {\n var valueInPixels;\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n\n if (styleValue.indexOf('%') !== -1) {\n // percentage * size in dimension\n valueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n\n return valueInPixels;\n }\n\n /**\n * Returns if the given value contains an effective constraint.\n * @private\n */\n function isConstrainedValue(value) {\n return value !== undefined && value !== null && value !== 'none';\n }\n\n // Private helper to get a constraint dimension\n // @param domNode : the node to check the constraint on\n // @param maxStyle : the style that defines the maximum for the direction we are using (maxWidth / maxHeight)\n // @param percentageProperty : property of parent to use when calculating width as a percentage\n // @see http://www.nathanaeljones.com/blog/2013/reading-max-width-cross-browser\n function getConstraintDimension(domNode, maxStyle, percentageProperty) {\n var view = document.defaultView;\n var parentNode = domNode.parentNode;\n var constrainedNode = view.getComputedStyle(domNode)[maxStyle];\n var constrainedContainer = view.getComputedStyle(parentNode)[maxStyle];\n var hasCNode = isConstrainedValue(constrainedNode);\n var hasCContainer = isConstrainedValue(constrainedContainer);\n var infinity = Number.POSITIVE_INFINITY;\n\n if (hasCNode || hasCContainer) {\n return Math.min(\n hasCNode ? parseMaxStyle(constrainedNode, domNode, percentageProperty) : infinity,\n hasCContainer ? parseMaxStyle(constrainedContainer, parentNode, percentageProperty) : infinity);\n }\n\n return 'none';\n }\n // returns Number or undefined if no constraint\n helpers.getConstraintWidth = function(domNode) {\n return getConstraintDimension(domNode, 'max-width', 'clientWidth');\n };\n // returns Number or undefined if no constraint\n helpers.getConstraintHeight = function(domNode) {\n return getConstraintDimension(domNode, 'max-height', 'clientHeight');\n };\n helpers.getMaximumWidth = function(domNode) {\n var container = domNode.parentNode;\n if (!container) {\n return domNode.clientWidth;\n }\n\n var paddingLeft = parseInt(helpers.getStyle(container, 'padding-left'), 10);\n var paddingRight = parseInt(helpers.getStyle(container, 'padding-right'), 10);\n var w = container.clientWidth - paddingLeft - paddingRight;\n var cw = helpers.getConstraintWidth(domNode);\n return isNaN(cw) ? w : Math.min(w, cw);\n };\n helpers.getMaximumHeight = function(domNode) {\n var container = domNode.parentNode;\n if (!container) {\n return domNode.clientHeight;\n }\n\n var paddingTop = parseInt(helpers.getStyle(container, 'padding-top'), 10);\n var paddingBottom = parseInt(helpers.getStyle(container, 'padding-bottom'), 10);\n var h = container.clientHeight - paddingTop - paddingBottom;\n var ch = helpers.getConstraintHeight(domNode);\n return isNaN(ch) ? h : Math.min(h, ch);\n };\n helpers.getStyle = function(el, property) {\n return el.currentStyle ?\n el.currentStyle[property] :\n document.defaultView.getComputedStyle(el, null).getPropertyValue(property);\n };\n helpers.retinaScale = function(chart, forceRatio) {\n var pixelRatio = chart.currentDevicePixelRatio = forceRatio || window.devicePixelRatio || 1;\n if (pixelRatio === 1) {\n return;\n }\n\n var canvas = chart.canvas;\n var height = chart.height;\n var width = chart.width;\n\n canvas.height = height * pixelRatio;\n canvas.width = width * pixelRatio;\n chart.ctx.scale(pixelRatio, pixelRatio);\n\n // If no style has been set on the canvas, the render size is used as display size,\n // making the chart visually bigger, so let's enforce it to the \"correct\" values.\n // See https://github.com/chartjs/Chart.js/issues/3575\n canvas.style.height = height + 'px';\n canvas.style.width = width + 'px';\n };\n // -- Canvas methods\n helpers.fontString = function(pixelSize, fontStyle, fontFamily) {\n return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n };\n helpers.longestText = function(ctx, font, arrayOfThings, cache) {\n cache = cache || {};\n var data = cache.data = cache.data || {};\n var gc = cache.garbageCollect = cache.garbageCollect || [];\n\n if (cache.font !== font) {\n data = cache.data = {};\n gc = cache.garbageCollect = [];\n cache.font = font;\n }\n\n ctx.font = font;\n var longest = 0;\n helpers.each(arrayOfThings, function(thing) {\n // Undefined strings and arrays should not be measured\n if (thing !== undefined && thing !== null && helpers.isArray(thing) !== true) {\n longest = helpers.measureText(ctx, data, gc, longest, thing);\n } else if (helpers.isArray(thing)) {\n // if it is an array lets measure each element\n // to do maybe simplify this function a bit so we can do this more recursively?\n helpers.each(thing, function(nestedThing) {\n // Undefined strings and arrays should not be measured\n if (nestedThing !== undefined && nestedThing !== null && !helpers.isArray(nestedThing)) {\n longest = helpers.measureText(ctx, data, gc, longest, nestedThing);\n }\n });\n }\n });\n\n var gcLen = gc.length / 2;\n if (gcLen > arrayOfThings.length) {\n for (var i = 0; i < gcLen; i++) {\n delete data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n return longest;\n };\n helpers.measureText = function(ctx, data, gc, longest, string) {\n var textWidth = data[string];\n if (!textWidth) {\n textWidth = data[string] = ctx.measureText(string).width;\n gc.push(string);\n }\n if (textWidth > longest) {\n longest = textWidth;\n }\n return longest;\n };\n helpers.numberOfLabelLines = function(arrayOfThings) {\n var numberOfLines = 1;\n helpers.each(arrayOfThings, function(thing) {\n if (helpers.isArray(thing)) {\n if (thing.length > numberOfLines) {\n numberOfLines = thing.length;\n }\n }\n });\n return numberOfLines;\n };\n\n helpers.color = !color ?\n function(value) {\n console.error('Color.js not found!');\n return value;\n } :\n function(value) {\n\t\t\t\t/* global CanvasGradient */\n if (value instanceof CanvasGradient) {\n value = defaults.global.defaultColor;\n }\n\n return color(value);\n };\n\n helpers.getHoverColor = function(colorValue) {\n\t\t\t/* global CanvasPattern */\n return (colorValue instanceof CanvasPattern) ?\n colorValue :\n helpers.color(colorValue).saturate(0.5).darken(0.1).rgbString();\n };\n };\n\n},{\"2\":2,\"25\":25,\"45\":45}],28:[function(require,module,exports){\n 'use strict';\n\n var helpers = require(45);\n\n /**\n * Helper function to get relative position for an event\n * @param {Event|IEvent} event - The event to get the position for\n * @param {Chart} chart - The chart\n * @returns {Point} the event position\n */\n function getRelativePosition(e, chart) {\n if (e.native) {\n return {\n x: e.x,\n y: e.y\n };\n }\n\n return helpers.getRelativePosition(e, chart);\n }\n\n /**\n * Helper function to traverse all of the visible elements in the chart\n * @param chart {chart} the chart\n * @param handler {Function} the callback to execute for each visible item\n */\n function parseVisibleItems(chart, handler) {\n var datasets = chart.data.datasets;\n var meta, i, j, ilen, jlen;\n\n for (i = 0, ilen = datasets.length; i < ilen; ++i) {\n if (!chart.isDatasetVisible(i)) {\n continue;\n }\n\n meta = chart.getDatasetMeta(i);\n for (j = 0, jlen = meta.data.length; j < jlen; ++j) {\n var element = meta.data[j];\n if (!element._view.skip) {\n handler(element);\n }\n }\n }\n }\n\n /**\n * Helper function to get the items that intersect the event position\n * @param items {ChartElement[]} elements to filter\n * @param position {Point} the point to be nearest to\n * @return {ChartElement[]} the nearest items\n */\n function getIntersectItems(chart, position) {\n var elements = [];\n\n parseVisibleItems(chart, function(element) {\n if (element.inRange(position.x, position.y)) {\n elements.push(element);\n }\n });\n\n return elements;\n }\n\n /**\n * Helper function to get the items nearest to the event position considering all visible items in teh chart\n * @param chart {Chart} the chart to look at elements from\n * @param position {Point} the point to be nearest to\n * @param intersect {Boolean} if true, only consider items that intersect the position\n * @param distanceMetric {Function} function to provide the distance between points\n * @return {ChartElement[]} the nearest items\n */\n function getNearestItems(chart, position, intersect, distanceMetric) {\n var minDistance = Number.POSITIVE_INFINITY;\n var nearestItems = [];\n\n parseVisibleItems(chart, function(element) {\n if (intersect && !element.inRange(position.x, position.y)) {\n return;\n }\n\n var center = element.getCenterPoint();\n var distance = distanceMetric(position, center);\n\n if (distance < minDistance) {\n nearestItems = [element];\n minDistance = distance;\n } else if (distance === minDistance) {\n // Can have multiple items at the same distance in which case we sort by size\n nearestItems.push(element);\n }\n });\n\n return nearestItems;\n }\n\n /**\n * Get a distance metric function for two points based on the\n * axis mode setting\n * @param {String} axis the axis mode. x|y|xy\n */\n function getDistanceMetricForAxis(axis) {\n var useX = axis.indexOf('x') !== -1;\n var useY = axis.indexOf('y') !== -1;\n\n return function(pt1, pt2) {\n var deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n var deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n };\n }\n\n function indexMode(chart, e, options) {\n var position = getRelativePosition(e, chart);\n // Default axis for index mode is 'x' to match old behaviour\n options.axis = options.axis || 'x';\n var distanceMetric = getDistanceMetricForAxis(options.axis);\n var items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\n var elements = [];\n\n if (!items.length) {\n return [];\n }\n\n chart.data.datasets.forEach(function(dataset, datasetIndex) {\n if (chart.isDatasetVisible(datasetIndex)) {\n var meta = chart.getDatasetMeta(datasetIndex);\n var element = meta.data[items[0]._index];\n\n // don't count items that are skipped (null data)\n if (element && !element._view.skip) {\n elements.push(element);\n }\n }\n });\n\n return elements;\n }\n\n /**\n * @interface IInteractionOptions\n */\n /**\n * If true, only consider items that intersect the point\n * @name IInterfaceOptions#boolean\n * @type Boolean\n */\n\n /**\n * Contains interaction related functions\n * @namespace Chart.Interaction\n */\n module.exports = {\n // Helper function for different modes\n modes: {\n single: function(chart, e) {\n var position = getRelativePosition(e, chart);\n var elements = [];\n\n parseVisibleItems(chart, function(element) {\n if (element.inRange(position.x, position.y)) {\n elements.push(element);\n return elements;\n }\n });\n\n return elements.slice(0, 1);\n },\n\n /**\n * @function Chart.Interaction.modes.label\n * @deprecated since version 2.4.0\n * @todo remove at version 3\n * @private\n */\n label: indexMode,\n\n /**\n * Returns items at the same index. If the options.intersect parameter is true, we only return items if we intersect something\n * If the options.intersect mode is false, we find the nearest item and return the items at the same index as that item\n * @function Chart.Interaction.modes.index\n * @since v2.4.0\n * @param chart {chart} the chart we are returning items from\n * @param e {Event} the event we are find things at\n * @param options {IInteractionOptions} options to use during interaction\n * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n */\n index: indexMode,\n\n /**\n * Returns items in the same dataset. If the options.intersect parameter is true, we only return items if we intersect something\n * If the options.intersect is false, we find the nearest item and return the items in that dataset\n * @function Chart.Interaction.modes.dataset\n * @param chart {chart} the chart we are returning items from\n * @param e {Event} the event we are find things at\n * @param options {IInteractionOptions} options to use during interaction\n * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n */\n dataset: function(chart, e, options) {\n var position = getRelativePosition(e, chart);\n options.axis = options.axis || 'xy';\n var distanceMetric = getDistanceMetricForAxis(options.axis);\n var items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\n\n if (items.length > 0) {\n items = chart.getDatasetMeta(items[0]._datasetIndex).data;\n }\n\n return items;\n },\n\n /**\n * @function Chart.Interaction.modes.x-axis\n * @deprecated since version 2.4.0. Use index mode and intersect == true\n * @todo remove at version 3\n * @private\n */\n 'x-axis': function(chart, e) {\n return indexMode(chart, e, {intersect: true});\n },\n\n /**\n * Point mode returns all elements that hit test based on the event position\n * of the event\n * @function Chart.Interaction.modes.intersect\n * @param chart {chart} the chart we are returning items from\n * @param e {Event} the event we are find things at\n * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n */\n point: function(chart, e) {\n var position = getRelativePosition(e, chart);\n return getIntersectItems(chart, position);\n },\n\n /**\n * nearest mode returns the element closest to the point\n * @function Chart.Interaction.modes.intersect\n * @param chart {chart} the chart we are returning items from\n * @param e {Event} the event we are find things at\n * @param options {IInteractionOptions} options to use\n * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n */\n nearest: function(chart, e, options) {\n var position = getRelativePosition(e, chart);\n options.axis = options.axis || 'xy';\n var distanceMetric = getDistanceMetricForAxis(options.axis);\n var nearestItems = getNearestItems(chart, position, options.intersect, distanceMetric);\n\n // We have multiple items at the same distance from the event. Now sort by smallest\n if (nearestItems.length > 1) {\n nearestItems.sort(function(a, b) {\n var sizeA = a.getArea();\n var sizeB = b.getArea();\n var ret = sizeA - sizeB;\n\n if (ret === 0) {\n // if equal sort by dataset index\n ret = a._datasetIndex - b._datasetIndex;\n }\n\n return ret;\n });\n }\n\n // Return only 1 item\n return nearestItems.slice(0, 1);\n },\n\n /**\n * x mode returns the elements that hit-test at the current x coordinate\n * @function Chart.Interaction.modes.x\n * @param chart {chart} the chart we are returning items from\n * @param e {Event} the event we are find things at\n * @param options {IInteractionOptions} options to use\n * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n */\n x: function(chart, e, options) {\n var position = getRelativePosition(e, chart);\n var items = [];\n var intersectsItem = false;\n\n parseVisibleItems(chart, function(element) {\n if (element.inXRange(position.x)) {\n items.push(element);\n }\n\n if (element.inRange(position.x, position.y)) {\n intersectsItem = true;\n }\n });\n\n // If we want to trigger on an intersect and we don't have any items\n // that intersect the position, return nothing\n if (options.intersect && !intersectsItem) {\n items = [];\n }\n return items;\n },\n\n /**\n * y mode returns the elements that hit-test at the current y coordinate\n * @function Chart.Interaction.modes.y\n * @param chart {chart} the chart we are returning items from\n * @param e {Event} the event we are find things at\n * @param options {IInteractionOptions} options to use\n * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n */\n y: function(chart, e, options) {\n var position = getRelativePosition(e, chart);\n var items = [];\n var intersectsItem = false;\n\n parseVisibleItems(chart, function(element) {\n if (element.inYRange(position.y)) {\n items.push(element);\n }\n\n if (element.inRange(position.x, position.y)) {\n intersectsItem = true;\n }\n });\n\n // If we want to trigger on an intersect and we don't have any items\n // that intersect the position, return nothing\n if (options.intersect && !intersectsItem) {\n items = [];\n }\n return items;\n }\n }\n };\n\n},{\"45\":45}],29:[function(require,module,exports){\n 'use strict';\n\n var defaults = require(25);\n\n defaults._set('global', {\n responsive: true,\n responsiveAnimationDuration: 0,\n maintainAspectRatio: true,\n events: ['mousemove', 'mouseout', 'click', 'touchstart', 'touchmove'],\n hover: {\n onHover: null,\n mode: 'nearest',\n intersect: true,\n animationDuration: 400\n },\n onClick: null,\n defaultColor: 'rgba(0,0,0,0.1)',\n defaultFontColor: '#666',\n defaultFontFamily: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n defaultFontSize: 12,\n defaultFontStyle: 'normal',\n showLines: true,\n\n // Element defaults defined in element extensions\n elements: {},\n\n // Layout options such as padding\n layout: {\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n }\n });\n\n module.exports = function() {\n\n // Occupy the global variable of Chart, and create a simple base class\n var Chart = function(item, config) {\n this.construct(item, config);\n return this;\n };\n\n Chart.Chart = Chart;\n\n return Chart;\n };\n\n},{\"25\":25}],30:[function(require,module,exports){\n 'use strict';\n\n var helpers = require(45);\n\n module.exports = function(Chart) {\n\n function filterByPosition(array, position) {\n return helpers.where(array, function(v) {\n return v.position === position;\n });\n }\n\n function sortByWeight(array, reverse) {\n array.forEach(function(v, i) {\n v._tmpIndex_ = i;\n return v;\n });\n array.sort(function(a, b) {\n var v0 = reverse ? b : a;\n var v1 = reverse ? a : b;\n return v0.weight === v1.weight ?\n v0._tmpIndex_ - v1._tmpIndex_ :\n v0.weight - v1.weight;\n });\n array.forEach(function(v) {\n delete v._tmpIndex_;\n });\n }\n\n /**\n * @interface ILayoutItem\n * @prop {String} position - The position of the item in the chart layout. Possible values are\n * 'left', 'top', 'right', 'bottom', and 'chartArea'\n * @prop {Number} weight - The weight used to sort the item. Higher weights are further away from the chart area\n * @prop {Boolean} fullWidth - if true, and the item is horizontal, then push vertical boxes down\n * @prop {Function} isHorizontal - returns true if the layout item is horizontal (ie. top or bottom)\n * @prop {Function} update - Takes two parameters: width and height. Returns size of item\n * @prop {Function} getPadding - Returns an object with padding on the edges\n * @prop {Number} width - Width of item. Must be valid after update()\n * @prop {Number} height - Height of item. Must be valid after update()\n * @prop {Number} left - Left edge of the item. Set by layout system and cannot be used in update\n * @prop {Number} top - Top edge of the item. Set by layout system and cannot be used in update\n * @prop {Number} right - Right edge of the item. Set by layout system and cannot be used in update\n * @prop {Number} bottom - Bottom edge of the item. Set by layout system and cannot be used in update\n */\n\n // The layout service is very self explanatory. It's responsible for the layout within a chart.\n // Scales, Legends and Plugins all rely on the layout service and can easily register to be placed anywhere they need\n // It is this service's responsibility of carrying out that layout.\n Chart.layoutService = {\n defaults: {},\n\n /**\n * Register a box to a chart.\n * A box is simply a reference to an object that requires layout. eg. Scales, Legend, Title.\n * @param {Chart} chart - the chart to use\n * @param {ILayoutItem} item - the item to add to be layed out\n */\n addBox: function(chart, item) {\n if (!chart.boxes) {\n chart.boxes = [];\n }\n\n // initialize item with default values\n item.fullWidth = item.fullWidth || false;\n item.position = item.position || 'top';\n item.weight = item.weight || 0;\n\n chart.boxes.push(item);\n },\n\n /**\n * Remove a layoutItem from a chart\n * @param {Chart} chart - the chart to remove the box from\n * @param {Object} layoutItem - the item to remove from the layout\n */\n removeBox: function(chart, layoutItem) {\n var index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n if (index !== -1) {\n chart.boxes.splice(index, 1);\n }\n },\n\n /**\n * Sets (or updates) options on the given `item`.\n * @param {Chart} chart - the chart in which the item lives (or will be added to)\n * @param {Object} item - the item to configure with the given options\n * @param {Object} options - the new item options.\n */\n configure: function(chart, item, options) {\n var props = ['fullWidth', 'position', 'weight'];\n var ilen = props.length;\n var i = 0;\n var prop;\n\n for (; i < ilen; ++i) {\n prop = props[i];\n if (options.hasOwnProperty(prop)) {\n item[prop] = options[prop];\n }\n }\n },\n\n /**\n * Fits boxes of the given chart into the given size by having each box measure itself\n * then running a fitting algorithm\n * @param {Chart} chart - the chart\n * @param {Number} width - the width to fit into\n * @param {Number} height - the height to fit into\n */\n update: function(chart, width, height) {\n if (!chart) {\n return;\n }\n\n var layoutOptions = chart.options.layout || {};\n var padding = helpers.options.toPadding(layoutOptions.padding);\n var leftPadding = padding.left;\n var rightPadding = padding.right;\n var topPadding = padding.top;\n var bottomPadding = padding.bottom;\n\n var leftBoxes = filterByPosition(chart.boxes, 'left');\n var rightBoxes = filterByPosition(chart.boxes, 'right');\n var topBoxes = filterByPosition(chart.boxes, 'top');\n var bottomBoxes = filterByPosition(chart.boxes, 'bottom');\n var chartAreaBoxes = filterByPosition(chart.boxes, 'chartArea');\n\n // Sort boxes by weight. A higher weight is further away from the chart area\n sortByWeight(leftBoxes, true);\n sortByWeight(rightBoxes, false);\n sortByWeight(topBoxes, true);\n sortByWeight(bottomBoxes, false);\n\n // Essentially we now have any number of boxes on each of the 4 sides.\n // Our canvas looks like the following.\n // The areas L1 and L2 are the left axes. R1 is the right axis, T1 is the top axis and\n // B1 is the bottom axis\n // There are also 4 quadrant-like locations (left to right instead of clockwise) reserved for chart overlays\n // These locations are single-box locations only, when trying to register a chartArea location that is already taken,\n // an error will be thrown.\n //\n // |----------------------------------------------------|\n // | T1 (Full Width) |\n // |----------------------------------------------------|\n // | | | T2 | |\n // | |----|-------------------------------------|----|\n // | | | C1 | | C2 | |\n // | | |----| |----| |\n // | | | | |\n // | L1 | L2 | ChartArea (C0) | R1 |\n // | | | | |\n // | | |----| |----| |\n // | | | C3 | | C4 | |\n // | |----|-------------------------------------|----|\n // | | | B1 | |\n // |----------------------------------------------------|\n // | B2 (Full Width) |\n // |----------------------------------------------------|\n //\n // What we do to find the best sizing, we do the following\n // 1. Determine the minimum size of the chart area.\n // 2. Split the remaining width equally between each vertical axis\n // 3. Split the remaining height equally between each horizontal axis\n // 4. Give each layout the maximum size it can be. The layout will return it's minimum size\n // 5. Adjust the sizes of each axis based on it's minimum reported size.\n // 6. Refit each axis\n // 7. Position each axis in the final location\n // 8. Tell the chart the final location of the chart area\n // 9. Tell any axes that overlay the chart area the positions of the chart area\n\n // Step 1\n var chartWidth = width - leftPadding - rightPadding;\n var chartHeight = height - topPadding - bottomPadding;\n var chartAreaWidth = chartWidth / 2; // min 50%\n var chartAreaHeight = chartHeight / 2; // min 50%\n\n // Step 2\n var verticalBoxWidth = (width - chartAreaWidth) / (leftBoxes.length + rightBoxes.length);\n\n // Step 3\n var horizontalBoxHeight = (height - chartAreaHeight) / (topBoxes.length + bottomBoxes.length);\n\n // Step 4\n var maxChartAreaWidth = chartWidth;\n var maxChartAreaHeight = chartHeight;\n var minBoxSizes = [];\n\n function getMinimumBoxSize(box) {\n var minSize;\n var isHorizontal = box.isHorizontal();\n\n if (isHorizontal) {\n minSize = box.update(box.fullWidth ? chartWidth : maxChartAreaWidth, horizontalBoxHeight);\n maxChartAreaHeight -= minSize.height;\n } else {\n minSize = box.update(verticalBoxWidth, chartAreaHeight);\n maxChartAreaWidth -= minSize.width;\n }\n\n minBoxSizes.push({\n horizontal: isHorizontal,\n minSize: minSize,\n box: box,\n });\n }\n\n helpers.each(leftBoxes.concat(rightBoxes, topBoxes, bottomBoxes), getMinimumBoxSize);\n\n // If a horizontal box has padding, we move the left boxes over to avoid ugly charts (see issue #2478)\n var maxHorizontalLeftPadding = 0;\n var maxHorizontalRightPadding = 0;\n var maxVerticalTopPadding = 0;\n var maxVerticalBottomPadding = 0;\n\n helpers.each(topBoxes.concat(bottomBoxes), function(horizontalBox) {\n if (horizontalBox.getPadding) {\n var boxPadding = horizontalBox.getPadding();\n maxHorizontalLeftPadding = Math.max(maxHorizontalLeftPadding, boxPadding.left);\n maxHorizontalRightPadding = Math.max(maxHorizontalRightPadding, boxPadding.right);\n }\n });\n\n helpers.each(leftBoxes.concat(rightBoxes), function(verticalBox) {\n if (verticalBox.getPadding) {\n var boxPadding = verticalBox.getPadding();\n maxVerticalTopPadding = Math.max(maxVerticalTopPadding, boxPadding.top);\n maxVerticalBottomPadding = Math.max(maxVerticalBottomPadding, boxPadding.bottom);\n }\n });\n\n // At this point, maxChartAreaHeight and maxChartAreaWidth are the size the chart area could\n // be if the axes are drawn at their minimum sizes.\n // Steps 5 & 6\n var totalLeftBoxesWidth = leftPadding;\n var totalRightBoxesWidth = rightPadding;\n var totalTopBoxesHeight = topPadding;\n var totalBottomBoxesHeight = bottomPadding;\n\n // Function to fit a box\n function fitBox(box) {\n var minBoxSize = helpers.findNextWhere(minBoxSizes, function(minBox) {\n return minBox.box === box;\n });\n\n if (minBoxSize) {\n if (box.isHorizontal()) {\n var scaleMargin = {\n left: Math.max(totalLeftBoxesWidth, maxHorizontalLeftPadding),\n right: Math.max(totalRightBoxesWidth, maxHorizontalRightPadding),\n top: 0,\n bottom: 0\n };\n\n // Don't use min size here because of label rotation. When the labels are rotated, their rotation highly depends\n // on the margin. Sometimes they need to increase in size slightly\n box.update(box.fullWidth ? chartWidth : maxChartAreaWidth, chartHeight / 2, scaleMargin);\n } else {\n box.update(minBoxSize.minSize.width, maxChartAreaHeight);\n }\n }\n }\n\n // Update, and calculate the left and right margins for the horizontal boxes\n helpers.each(leftBoxes.concat(rightBoxes), fitBox);\n\n helpers.each(leftBoxes, function(box) {\n totalLeftBoxesWidth += box.width;\n });\n\n helpers.each(rightBoxes, function(box) {\n totalRightBoxesWidth += box.width;\n });\n\n // Set the Left and Right margins for the horizontal boxes\n helpers.each(topBoxes.concat(bottomBoxes), fitBox);\n\n // Figure out how much margin is on the top and bottom of the vertical boxes\n helpers.each(topBoxes, function(box) {\n totalTopBoxesHeight += box.height;\n });\n\n helpers.each(bottomBoxes, function(box) {\n totalBottomBoxesHeight += box.height;\n });\n\n function finalFitVerticalBox(box) {\n var minBoxSize = helpers.findNextWhere(minBoxSizes, function(minSize) {\n return minSize.box === box;\n });\n\n var scaleMargin = {\n left: 0,\n right: 0,\n top: totalTopBoxesHeight,\n bottom: totalBottomBoxesHeight\n };\n\n if (minBoxSize) {\n box.update(minBoxSize.minSize.width, maxChartAreaHeight, scaleMargin);\n }\n }\n\n // Let the left layout know the final margin\n helpers.each(leftBoxes.concat(rightBoxes), finalFitVerticalBox);\n\n // Recalculate because the size of each layout might have changed slightly due to the margins (label rotation for instance)\n totalLeftBoxesWidth = leftPadding;\n totalRightBoxesWidth = rightPadding;\n totalTopBoxesHeight = topPadding;\n totalBottomBoxesHeight = bottomPadding;\n\n helpers.each(leftBoxes, function(box) {\n totalLeftBoxesWidth += box.width;\n });\n\n helpers.each(rightBoxes, function(box) {\n totalRightBoxesWidth += box.width;\n });\n\n helpers.each(topBoxes, function(box) {\n totalTopBoxesHeight += box.height;\n });\n helpers.each(bottomBoxes, function(box) {\n totalBottomBoxesHeight += box.height;\n });\n\n // We may be adding some padding to account for rotated x axis labels\n var leftPaddingAddition = Math.max(maxHorizontalLeftPadding - totalLeftBoxesWidth, 0);\n totalLeftBoxesWidth += leftPaddingAddition;\n totalRightBoxesWidth += Math.max(maxHorizontalRightPadding - totalRightBoxesWidth, 0);\n\n var topPaddingAddition = Math.max(maxVerticalTopPadding - totalTopBoxesHeight, 0);\n totalTopBoxesHeight += topPaddingAddition;\n totalBottomBoxesHeight += Math.max(maxVerticalBottomPadding - totalBottomBoxesHeight, 0);\n\n // Figure out if our chart area changed. This would occur if the dataset layout label rotation\n // changed due to the application of the margins in step 6. Since we can only get bigger, this is safe to do\n // without calling `fit` again\n var newMaxChartAreaHeight = height - totalTopBoxesHeight - totalBottomBoxesHeight;\n var newMaxChartAreaWidth = width - totalLeftBoxesWidth - totalRightBoxesWidth;\n\n if (newMaxChartAreaWidth !== maxChartAreaWidth || newMaxChartAreaHeight !== maxChartAreaHeight) {\n helpers.each(leftBoxes, function(box) {\n box.height = newMaxChartAreaHeight;\n });\n\n helpers.each(rightBoxes, function(box) {\n box.height = newMaxChartAreaHeight;\n });\n\n helpers.each(topBoxes, function(box) {\n if (!box.fullWidth) {\n box.width = newMaxChartAreaWidth;\n }\n });\n\n helpers.each(bottomBoxes, function(box) {\n if (!box.fullWidth) {\n box.width = newMaxChartAreaWidth;\n }\n });\n\n maxChartAreaHeight = newMaxChartAreaHeight;\n maxChartAreaWidth = newMaxChartAreaWidth;\n }\n\n // Step 7 - Position the boxes\n var left = leftPadding + leftPaddingAddition;\n var top = topPadding + topPaddingAddition;\n\n function placeBox(box) {\n if (box.isHorizontal()) {\n box.left = box.fullWidth ? leftPadding : totalLeftBoxesWidth;\n box.right = box.fullWidth ? width - rightPadding : totalLeftBoxesWidth + maxChartAreaWidth;\n box.top = top;\n box.bottom = top + box.height;\n\n // Move to next point\n top = box.bottom;\n\n } else {\n\n box.left = left;\n box.right = left + box.width;\n box.top = totalTopBoxesHeight;\n box.bottom = totalTopBoxesHeight + maxChartAreaHeight;\n\n // Move to next point\n left = box.right;\n }\n }\n\n helpers.each(leftBoxes.concat(topBoxes), placeBox);\n\n // Account for chart width and height\n left += maxChartAreaWidth;\n top += maxChartAreaHeight;\n\n helpers.each(rightBoxes, placeBox);\n helpers.each(bottomBoxes, placeBox);\n\n // Step 8\n chart.chartArea = {\n left: totalLeftBoxesWidth,\n top: totalTopBoxesHeight,\n right: totalLeftBoxesWidth + maxChartAreaWidth,\n bottom: totalTopBoxesHeight + maxChartAreaHeight\n };\n\n // Step 9\n helpers.each(chartAreaBoxes, function(box) {\n box.left = chart.chartArea.left;\n box.top = chart.chartArea.top;\n box.right = chart.chartArea.right;\n box.bottom = chart.chartArea.bottom;\n\n box.update(maxChartAreaWidth, maxChartAreaHeight);\n });\n }\n };\n };\n\n},{\"45\":45}],31:[function(require,module,exports){\n 'use strict';\n\n var defaults = require(25);\n var Element = require(26);\n var helpers = require(45);\n\n defaults._set('global', {\n plugins: {}\n });\n\n module.exports = function(Chart) {\n\n /**\n * The plugin service singleton\n * @namespace Chart.plugins\n * @since 2.1.0\n */\n Chart.plugins = {\n /**\n * Globally registered plugins.\n * @private\n */\n _plugins: [],\n\n /**\n * This identifier is used to invalidate the descriptors cache attached to each chart\n * when a global plugin is registered or unregistered. In this case, the cache ID is\n * incremented and descriptors are regenerated during following API calls.\n * @private\n */\n _cacheId: 0,\n\n /**\n * Registers the given plugin(s) if not already registered.\n * @param {Array|Object} plugins plugin instance(s).\n */\n register: function(plugins) {\n var p = this._plugins;\n ([]).concat(plugins).forEach(function(plugin) {\n if (p.indexOf(plugin) === -1) {\n p.push(plugin);\n }\n });\n\n this._cacheId++;\n },\n\n /**\n * Unregisters the given plugin(s) only if registered.\n * @param {Array|Object} plugins plugin instance(s).\n */\n unregister: function(plugins) {\n var p = this._plugins;\n ([]).concat(plugins).forEach(function(plugin) {\n var idx = p.indexOf(plugin);\n if (idx !== -1) {\n p.splice(idx, 1);\n }\n });\n\n this._cacheId++;\n },\n\n /**\n * Remove all registered plugins.\n * @since 2.1.5\n */\n clear: function() {\n this._plugins = [];\n this._cacheId++;\n },\n\n /**\n * Returns the number of registered plugins?\n * @returns {Number}\n * @since 2.1.5\n */\n count: function() {\n return this._plugins.length;\n },\n\n /**\n * Returns all registered plugin instances.\n * @returns {Array} array of plugin objects.\n * @since 2.1.5\n */\n getAll: function() {\n return this._plugins;\n },\n\n /**\n * Calls enabled plugins for `chart` on the specified hook and with the given args.\n * This method immediately returns as soon as a plugin explicitly returns false. The\n * returned value can be used, for instance, to interrupt the current action.\n * @param {Object} chart - The chart instance for which plugins should be called.\n * @param {String} hook - The name of the plugin method to call (e.g. 'beforeUpdate').\n * @param {Array} [args] - Extra arguments to apply to the hook call.\n * @returns {Boolean} false if any of the plugins return false, else returns true.\n */\n notify: function(chart, hook, args) {\n var descriptors = this.descriptors(chart);\n var ilen = descriptors.length;\n var i, descriptor, plugin, params, method;\n\n for (i = 0; i < ilen; ++i) {\n descriptor = descriptors[i];\n plugin = descriptor.plugin;\n method = plugin[hook];\n if (typeof method === 'function') {\n params = [chart].concat(args || []);\n params.push(descriptor.options);\n if (method.apply(plugin, params) === false) {\n return false;\n }\n }\n }\n\n return true;\n },\n\n /**\n * Returns descriptors of enabled plugins for the given chart.\n * @returns {Array} [{ plugin, options }]\n * @private\n */\n descriptors: function(chart) {\n var cache = chart._plugins || (chart._plugins = {});\n if (cache.id === this._cacheId) {\n return cache.descriptors;\n }\n\n var plugins = [];\n var descriptors = [];\n var config = (chart && chart.config) || {};\n var options = (config.options && config.options.plugins) || {};\n\n this._plugins.concat(config.plugins || []).forEach(function(plugin) {\n var idx = plugins.indexOf(plugin);\n if (idx !== -1) {\n return;\n }\n\n var id = plugin.id;\n var opts = options[id];\n if (opts === false) {\n return;\n }\n\n if (opts === true) {\n opts = helpers.clone(defaults.global.plugins[id]);\n }\n\n plugins.push(plugin);\n descriptors.push({\n plugin: plugin,\n options: opts || {}\n });\n });\n\n cache.descriptors = descriptors;\n cache.id = this._cacheId;\n return descriptors;\n }\n };\n\n /**\n * Plugin extension hooks.\n * @interface IPlugin\n * @since 2.1.0\n */\n /**\n * @method IPlugin#beforeInit\n * @desc Called before initializing `chart`.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n */\n /**\n * @method IPlugin#afterInit\n * @desc Called after `chart` has been initialized and before the first update.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n */\n /**\n * @method IPlugin#beforeUpdate\n * @desc Called before updating `chart`. If any plugin returns `false`, the update\n * is cancelled (and thus subsequent render(s)) until another `update` is triggered.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n * @returns {Boolean} `false` to cancel the chart update.\n */\n /**\n * @method IPlugin#afterUpdate\n * @desc Called after `chart` has been updated and before rendering. Note that this\n * hook will not be called if the chart update has been previously cancelled.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n */\n /**\n * @method IPlugin#beforeDatasetsUpdate\n * @desc Called before updating the `chart` datasets. If any plugin returns `false`,\n * the datasets update is cancelled until another `update` is triggered.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n * @returns {Boolean} false to cancel the datasets update.\n * @since version 2.1.5\n */\n /**\n * @method IPlugin#afterDatasetsUpdate\n * @desc Called after the `chart` datasets have been updated. Note that this hook\n * will not be called if the datasets update has been previously cancelled.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n * @since version 2.1.5\n */\n /**\n * @method IPlugin#beforeDatasetUpdate\n * @desc Called before updating the `chart` dataset at the given `args.index`. If any plugin\n * returns `false`, the datasets update is cancelled until another `update` is triggered.\n * @param {Chart} chart - The chart instance.\n * @param {Object} args - The call arguments.\n * @param {Number} args.index - The dataset index.\n * @param {Object} args.meta - The dataset metadata.\n * @param {Object} options - The plugin options.\n * @returns {Boolean} `false` to cancel the chart datasets drawing.\n */\n /**\n * @method IPlugin#afterDatasetUpdate\n * @desc Called after the `chart` datasets at the given `args.index` has been updated. Note\n * that this hook will not be called if the datasets update has been previously cancelled.\n * @param {Chart} chart - The chart instance.\n * @param {Object} args - The call arguments.\n * @param {Number} args.index - The dataset index.\n * @param {Object} args.meta - The dataset metadata.\n * @param {Object} options - The plugin options.\n */\n /**\n * @method IPlugin#beforeLayout\n * @desc Called before laying out `chart`. If any plugin returns `false`,\n * the layout update is cancelled until another `update` is triggered.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n * @returns {Boolean} `false` to cancel the chart layout.\n */\n /**\n * @method IPlugin#afterLayout\n * @desc Called after the `chart` has been layed out. Note that this hook will not\n * be called if the layout update has been previously cancelled.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n */\n /**\n * @method IPlugin#beforeRender\n * @desc Called before rendering `chart`. If any plugin returns `false`,\n * the rendering is cancelled until another `render` is triggered.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n * @returns {Boolean} `false` to cancel the chart rendering.\n */\n /**\n * @method IPlugin#afterRender\n * @desc Called after the `chart` has been fully rendered (and animation completed). Note\n * that this hook will not be called if the rendering has been previously cancelled.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n */\n /**\n * @method IPlugin#beforeDraw\n * @desc Called before drawing `chart` at every animation frame specified by the given\n * easing value. If any plugin returns `false`, the frame drawing is cancelled until\n * another `render` is triggered.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Number} easingValue - The current animation value, between 0.0 and 1.0.\n * @param {Object} options - The plugin options.\n * @returns {Boolean} `false` to cancel the chart drawing.\n */\n /**\n * @method IPlugin#afterDraw\n * @desc Called after the `chart` has been drawn for the specific easing value. Note\n * that this hook will not be called if the drawing has been previously cancelled.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Number} easingValue - The current animation value, between 0.0 and 1.0.\n * @param {Object} options - The plugin options.\n */\n /**\n * @method IPlugin#beforeDatasetsDraw\n * @desc Called before drawing the `chart` datasets. If any plugin returns `false`,\n * the datasets drawing is cancelled until another `render` is triggered.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Number} easingValue - The current animation value, between 0.0 and 1.0.\n * @param {Object} options - The plugin options.\n * @returns {Boolean} `false` to cancel the chart datasets drawing.\n */\n /**\n * @method IPlugin#afterDatasetsDraw\n * @desc Called after the `chart` datasets have been drawn. Note that this hook\n * will not be called if the datasets drawing has been previously cancelled.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Number} easingValue - The current animation value, between 0.0 and 1.0.\n * @param {Object} options - The plugin options.\n */\n /**\n * @method IPlugin#beforeDatasetDraw\n * @desc Called before drawing the `chart` dataset at the given `args.index` (datasets\n * are drawn in the reverse order). If any plugin returns `false`, the datasets drawing\n * is cancelled until another `render` is triggered.\n * @param {Chart} chart - The chart instance.\n * @param {Object} args - The call arguments.\n * @param {Number} args.index - The dataset index.\n * @param {Object} args.meta - The dataset metadata.\n * @param {Number} args.easingValue - The current animation value, between 0.0 and 1.0.\n * @param {Object} options - The plugin options.\n * @returns {Boolean} `false` to cancel the chart datasets drawing.\n */\n /**\n * @method IPlugin#afterDatasetDraw\n * @desc Called after the `chart` datasets at the given `args.index` have been drawn\n * (datasets are drawn in the reverse order). Note that this hook will not be called\n * if the datasets drawing has been previously cancelled.\n * @param {Chart} chart - The chart instance.\n * @param {Object} args - The call arguments.\n * @param {Number} args.index - The dataset index.\n * @param {Object} args.meta - The dataset metadata.\n * @param {Number} args.easingValue - The current animation value, between 0.0 and 1.0.\n * @param {Object} options - The plugin options.\n */\n /**\n * @method IPlugin#beforeEvent\n * @desc Called before processing the specified `event`. If any plugin returns `false`,\n * the event will be discarded.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {IEvent} event - The event object.\n * @param {Object} options - The plugin options.\n */\n /**\n * @method IPlugin#afterEvent\n * @desc Called after the `event` has been consumed. Note that this hook\n * will not be called if the `event` has been previously discarded.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {IEvent} event - The event object.\n * @param {Object} options - The plugin options.\n */\n /**\n * @method IPlugin#resize\n * @desc Called after the chart as been resized.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Number} size - The new canvas display size (eq. canvas.style width & height).\n * @param {Object} options - The plugin options.\n */\n /**\n * @method IPlugin#destroy\n * @desc Called after the chart as been destroyed.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n */\n\n /**\n * Provided for backward compatibility, use Chart.plugins instead\n * @namespace Chart.pluginService\n * @deprecated since version 2.1.5\n * @todo remove at version 3\n * @private\n */\n Chart.pluginService = Chart.plugins;\n\n /**\n * Provided for backward compatibility, inheriting from Chart.PlugingBase has no\n * effect, instead simply create/register plugins via plain JavaScript objects.\n * @interface Chart.PluginBase\n * @deprecated since version 2.5.0\n * @todo remove at version 3\n * @private\n */\n Chart.PluginBase = Element.extend({});\n };\n\n},{\"25\":25,\"26\":26,\"45\":45}],32:[function(require,module,exports){\n 'use strict';\n\n var defaults = require(25);\n var Element = require(26);\n var helpers = require(45);\n var Ticks = require(34);\n\n defaults._set('scale', {\n display: true,\n position: 'left',\n offset: false,\n\n // grid line settings\n gridLines: {\n display: true,\n color: 'rgba(0, 0, 0, 0.1)',\n lineWidth: 1,\n drawBorder: true,\n drawOnChartArea: true,\n drawTicks: true,\n tickMarkLength: 10,\n zeroLineWidth: 1,\n zeroLineColor: 'rgba(0,0,0,0.25)',\n zeroLineBorderDash: [],\n zeroLineBorderDashOffset: 0.0,\n offsetGridLines: false,\n borderDash: [],\n borderDashOffset: 0.0\n },\n\n // scale label\n scaleLabel: {\n // display property\n display: false,\n\n // actual label\n labelString: '',\n\n // line height\n lineHeight: 1.2,\n\n // top/bottom padding\n padding: {\n top: 4,\n bottom: 4\n }\n },\n\n // label settings\n ticks: {\n beginAtZero: false,\n minRotation: 0,\n maxRotation: 50,\n mirror: false,\n padding: 0,\n reverse: false,\n display: true,\n autoSkip: true,\n autoSkipPadding: 0,\n labelOffset: 0,\n // We pass through arrays to be rendered as multiline labels, we convert Others to strings here.\n callback: Ticks.formatters.values,\n minor: {},\n major: {}\n }\n });\n\n function labelsFromTicks(ticks) {\n var labels = [];\n var i, ilen;\n\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n labels.push(ticks[i].label);\n }\n\n return labels;\n }\n\n function getLineValue(scale, index, offsetGridLines) {\n var lineValue = scale.getPixelForTick(index);\n\n if (offsetGridLines) {\n if (index === 0) {\n lineValue -= (scale.getPixelForTick(1) - lineValue) / 2;\n } else {\n lineValue -= (lineValue - scale.getPixelForTick(index - 1)) / 2;\n }\n }\n return lineValue;\n }\n\n module.exports = function(Chart) {\n\n function computeTextSize(context, tick, font) {\n return helpers.isArray(tick) ?\n helpers.longestText(context, font, tick) :\n context.measureText(tick).width;\n }\n\n function parseFontOptions(options) {\n var valueOrDefault = helpers.valueOrDefault;\n var globalDefaults = defaults.global;\n var size = valueOrDefault(options.fontSize, globalDefaults.defaultFontSize);\n var style = valueOrDefault(options.fontStyle, globalDefaults.defaultFontStyle);\n var family = valueOrDefault(options.fontFamily, globalDefaults.defaultFontFamily);\n\n return {\n size: size,\n style: style,\n family: family,\n font: helpers.fontString(size, style, family)\n };\n }\n\n function parseLineHeight(options) {\n return helpers.options.toLineHeight(\n helpers.valueOrDefault(options.lineHeight, 1.2),\n helpers.valueOrDefault(options.fontSize, defaults.global.defaultFontSize));\n }\n\n Chart.Scale = Element.extend({\n /**\n * Get the padding needed for the scale\n * @method getPadding\n * @private\n * @returns {Padding} the necessary padding\n */\n getPadding: function() {\n var me = this;\n return {\n left: me.paddingLeft || 0,\n top: me.paddingTop || 0,\n right: me.paddingRight || 0,\n bottom: me.paddingBottom || 0\n };\n },\n\n /**\n * Returns the scale tick objects ({label, major})\n * @since 2.7\n */\n getTicks: function() {\n return this._ticks;\n },\n\n // These methods are ordered by lifecyle. Utilities then follow.\n // Any function defined here is inherited by all scale types.\n // Any function can be extended by the scale type\n\n mergeTicksOptions: function() {\n var ticks = this.options.ticks;\n if (ticks.minor === false) {\n ticks.minor = {\n display: false\n };\n }\n if (ticks.major === false) {\n ticks.major = {\n display: false\n };\n }\n for (var key in ticks) {\n if (key !== 'major' && key !== 'minor') {\n if (typeof ticks.minor[key] === 'undefined') {\n ticks.minor[key] = ticks[key];\n }\n if (typeof ticks.major[key] === 'undefined') {\n ticks.major[key] = ticks[key];\n }\n }\n }\n },\n beforeUpdate: function() {\n helpers.callback(this.options.beforeUpdate, [this]);\n },\n update: function(maxWidth, maxHeight, margins) {\n var me = this;\n var i, ilen, labels, label, ticks, tick;\n\n // Update Lifecycle - Probably don't want to ever extend or overwrite this function ;)\n me.beforeUpdate();\n\n // Absorb the master measurements\n me.maxWidth = maxWidth;\n me.maxHeight = maxHeight;\n me.margins = helpers.extend({\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }, margins);\n me.longestTextCache = me.longestTextCache || {};\n\n // Dimensions\n me.beforeSetDimensions();\n me.setDimensions();\n me.afterSetDimensions();\n\n // Data min/max\n me.beforeDataLimits();\n me.determineDataLimits();\n me.afterDataLimits();\n\n // Ticks - `this.ticks` is now DEPRECATED!\n // Internal ticks are now stored as objects in the PRIVATE `this._ticks` member\n // and must not be accessed directly from outside this class. `this.ticks` being\n // around for long time and not marked as private, we can't change its structure\n // without unexpected breaking changes. If you need to access the scale ticks,\n // use scale.getTicks() instead.\n\n me.beforeBuildTicks();\n\n // New implementations should return an array of objects but for BACKWARD COMPAT,\n // we still support no return (`this.ticks` internally set by calling this method).\n ticks = me.buildTicks() || [];\n\n me.afterBuildTicks();\n\n me.beforeTickToLabelConversion();\n\n // New implementations should return the formatted tick labels but for BACKWARD\n // COMPAT, we still support no return (`this.ticks` internally changed by calling\n // this method and supposed to contain only string values).\n labels = me.convertTicksToLabels(ticks) || me.ticks;\n\n me.afterTickToLabelConversion();\n\n me.ticks = labels; // BACKWARD COMPATIBILITY\n\n // IMPORTANT: from this point, we consider that `this.ticks` will NEVER change!\n\n // BACKWARD COMPAT: synchronize `_ticks` with labels (so potentially `this.ticks`)\n for (i = 0, ilen = labels.length; i < ilen; ++i) {\n label = labels[i];\n tick = ticks[i];\n if (!tick) {\n ticks.push(tick = {\n label: label,\n major: false\n });\n } else {\n tick.label = label;\n }\n }\n\n me._ticks = ticks;\n\n // Tick Rotation\n me.beforeCalculateTickRotation();\n me.calculateTickRotation();\n me.afterCalculateTickRotation();\n // Fit\n me.beforeFit();\n me.fit();\n me.afterFit();\n //\n me.afterUpdate();\n\n return me.minSize;\n\n },\n afterUpdate: function() {\n helpers.callback(this.options.afterUpdate, [this]);\n },\n\n //\n\n beforeSetDimensions: function() {\n helpers.callback(this.options.beforeSetDimensions, [this]);\n },\n setDimensions: function() {\n var me = this;\n // Set the unconstrained dimension before label rotation\n if (me.isHorizontal()) {\n // Reset position before calculating rotation\n me.width = me.maxWidth;\n me.left = 0;\n me.right = me.width;\n } else {\n me.height = me.maxHeight;\n\n // Reset position before calculating rotation\n me.top = 0;\n me.bottom = me.height;\n }\n\n // Reset padding\n me.paddingLeft = 0;\n me.paddingTop = 0;\n me.paddingRight = 0;\n me.paddingBottom = 0;\n },\n afterSetDimensions: function() {\n helpers.callback(this.options.afterSetDimensions, [this]);\n },\n\n // Data limits\n beforeDataLimits: function() {\n helpers.callback(this.options.beforeDataLimits, [this]);\n },\n determineDataLimits: helpers.noop,\n afterDataLimits: function() {\n helpers.callback(this.options.afterDataLimits, [this]);\n },\n\n //\n beforeBuildTicks: function() {\n helpers.callback(this.options.beforeBuildTicks, [this]);\n },\n buildTicks: helpers.noop,\n afterBuildTicks: function() {\n helpers.callback(this.options.afterBuildTicks, [this]);\n },\n\n beforeTickToLabelConversion: function() {\n helpers.callback(this.options.beforeTickToLabelConversion, [this]);\n },\n convertTicksToLabels: function() {\n var me = this;\n // Convert ticks to strings\n var tickOpts = me.options.ticks;\n me.ticks = me.ticks.map(tickOpts.userCallback || tickOpts.callback, this);\n },\n afterTickToLabelConversion: function() {\n helpers.callback(this.options.afterTickToLabelConversion, [this]);\n },\n\n //\n\n beforeCalculateTickRotation: function() {\n helpers.callback(this.options.beforeCalculateTickRotation, [this]);\n },\n calculateTickRotation: function() {\n var me = this;\n var context = me.ctx;\n var tickOpts = me.options.ticks;\n var labels = labelsFromTicks(me._ticks);\n\n // Get the width of each grid by calculating the difference\n // between x offsets between 0 and 1.\n var tickFont = parseFontOptions(tickOpts);\n context.font = tickFont.font;\n\n var labelRotation = tickOpts.minRotation || 0;\n\n if (labels.length && me.options.display && me.isHorizontal()) {\n var originalLabelWidth = helpers.longestText(context, tickFont.font, labels, me.longestTextCache);\n var labelWidth = originalLabelWidth;\n var cosRotation, sinRotation;\n\n // Allow 3 pixels x2 padding either side for label readability\n var tickWidth = me.getPixelForTick(1) - me.getPixelForTick(0) - 6;\n\n // Max label rotation can be set or default to 90 - also act as a loop counter\n while (labelWidth > tickWidth && labelRotation < tickOpts.maxRotation) {\n var angleRadians = helpers.toRadians(labelRotation);\n cosRotation = Math.cos(angleRadians);\n sinRotation = Math.sin(angleRadians);\n\n if (sinRotation * originalLabelWidth > me.maxHeight) {\n // go back one step\n labelRotation--;\n break;\n }\n\n labelRotation++;\n labelWidth = cosRotation * originalLabelWidth;\n }\n }\n\n me.labelRotation = labelRotation;\n },\n afterCalculateTickRotation: function() {\n helpers.callback(this.options.afterCalculateTickRotation, [this]);\n },\n\n //\n\n beforeFit: function() {\n helpers.callback(this.options.beforeFit, [this]);\n },\n fit: function() {\n var me = this;\n // Reset\n var minSize = me.minSize = {\n width: 0,\n height: 0\n };\n\n var labels = labelsFromTicks(me._ticks);\n\n var opts = me.options;\n var tickOpts = opts.ticks;\n var scaleLabelOpts = opts.scaleLabel;\n var gridLineOpts = opts.gridLines;\n var display = opts.display;\n var isHorizontal = me.isHorizontal();\n\n var tickFont = parseFontOptions(tickOpts);\n var tickMarkLength = opts.gridLines.tickMarkLength;\n\n // Width\n if (isHorizontal) {\n // subtract the margins to line up with the chartArea if we are a full width scale\n minSize.width = me.isFullWidth() ? me.maxWidth - me.margins.left - me.margins.right : me.maxWidth;\n } else {\n minSize.width = display && gridLineOpts.drawTicks ? tickMarkLength : 0;\n }\n\n // height\n if (isHorizontal) {\n minSize.height = display && gridLineOpts.drawTicks ? tickMarkLength : 0;\n } else {\n minSize.height = me.maxHeight; // fill all the height\n }\n\n // Are we showing a title for the scale?\n if (scaleLabelOpts.display && display) {\n var scaleLabelLineHeight = parseLineHeight(scaleLabelOpts);\n var scaleLabelPadding = helpers.options.toPadding(scaleLabelOpts.padding);\n var deltaHeight = scaleLabelLineHeight + scaleLabelPadding.height;\n\n if (isHorizontal) {\n minSize.height += deltaHeight;\n } else {\n minSize.width += deltaHeight;\n }\n }\n\n // Don't bother fitting the ticks if we are not showing them\n if (tickOpts.display && display) {\n var largestTextWidth = helpers.longestText(me.ctx, tickFont.font, labels, me.longestTextCache);\n var tallestLabelHeightInLines = helpers.numberOfLabelLines(labels);\n var lineSpace = tickFont.size * 0.5;\n var tickPadding = me.options.ticks.padding;\n\n if (isHorizontal) {\n // A horizontal axis is more constrained by the height.\n me.longestLabelWidth = largestTextWidth;\n\n var angleRadians = helpers.toRadians(me.labelRotation);\n var cosRotation = Math.cos(angleRadians);\n var sinRotation = Math.sin(angleRadians);\n\n // TODO - improve this calculation\n var labelHeight = (sinRotation * largestTextWidth)\n + (tickFont.size * tallestLabelHeightInLines)\n + (lineSpace * (tallestLabelHeightInLines - 1))\n + lineSpace; // padding\n\n minSize.height = Math.min(me.maxHeight, minSize.height + labelHeight + tickPadding);\n\n me.ctx.font = tickFont.font;\n var firstLabelWidth = computeTextSize(me.ctx, labels[0], tickFont.font);\n var lastLabelWidth = computeTextSize(me.ctx, labels[labels.length - 1], tickFont.font);\n\n // Ensure that our ticks are always inside the canvas. When rotated, ticks are right aligned\n // which means that the right padding is dominated by the font height\n if (me.labelRotation !== 0) {\n me.paddingLeft = opts.position === 'bottom' ? (cosRotation * firstLabelWidth) + 3 : (cosRotation * lineSpace) + 3; // add 3 px to move away from canvas edges\n me.paddingRight = opts.position === 'bottom' ? (cosRotation * lineSpace) + 3 : (cosRotation * lastLabelWidth) + 3;\n } else {\n me.paddingLeft = firstLabelWidth / 2 + 3; // add 3 px to move away from canvas edges\n me.paddingRight = lastLabelWidth / 2 + 3;\n }\n } else {\n // A vertical axis is more constrained by the width. Labels are the\n // dominant factor here, so get that length first and account for padding\n if (tickOpts.mirror) {\n largestTextWidth = 0;\n } else {\n // use lineSpace for consistency with horizontal axis\n // tickPadding is not implemented for horizontal\n largestTextWidth += tickPadding + lineSpace;\n }\n\n minSize.width = Math.min(me.maxWidth, minSize.width + largestTextWidth);\n\n me.paddingTop = tickFont.size / 2;\n me.paddingBottom = tickFont.size / 2;\n }\n }\n\n me.handleMargins();\n\n me.width = minSize.width;\n me.height = minSize.height;\n },\n\n /**\n * Handle margins and padding interactions\n * @private\n */\n handleMargins: function() {\n var me = this;\n if (me.margins) {\n me.paddingLeft = Math.max(me.paddingLeft - me.margins.left, 0);\n me.paddingTop = Math.max(me.paddingTop - me.margins.top, 0);\n me.paddingRight = Math.max(me.paddingRight - me.margins.right, 0);\n me.paddingBottom = Math.max(me.paddingBottom - me.margins.bottom, 0);\n }\n },\n\n afterFit: function() {\n helpers.callback(this.options.afterFit, [this]);\n },\n\n // Shared Methods\n isHorizontal: function() {\n return this.options.position === 'top' || this.options.position === 'bottom';\n },\n isFullWidth: function() {\n return (this.options.fullWidth);\n },\n\n // Get the correct value. NaN bad inputs, If the value type is object get the x or y based on whether we are horizontal or not\n getRightValue: function(rawValue) {\n // Null and undefined values first\n if (helpers.isNullOrUndef(rawValue)) {\n return NaN;\n }\n // isNaN(object) returns true, so make sure NaN is checking for a number; Discard Infinite values\n if (typeof rawValue === 'number' && !isFinite(rawValue)) {\n return NaN;\n }\n // If it is in fact an object, dive in one more level\n if (rawValue) {\n if (this.isHorizontal()) {\n if (rawValue.x !== undefined) {\n return this.getRightValue(rawValue.x);\n }\n } else if (rawValue.y !== undefined) {\n return this.getRightValue(rawValue.y);\n }\n }\n\n // Value is good, return it\n return rawValue;\n },\n\n // Used to get the value to display in the tooltip for the data at the given index\n // function getLabelForIndex(index, datasetIndex)\n getLabelForIndex: helpers.noop,\n\n // Used to get data value locations. Value can either be an index or a numerical value\n getPixelForValue: helpers.noop,\n\n // Used to get the data value from a given pixel. This is the inverse of getPixelForValue\n getValueForPixel: helpers.noop,\n\n // Used for tick location, should\n getPixelForTick: function(index) {\n var me = this;\n var offset = me.options.offset;\n if (me.isHorizontal()) {\n var innerWidth = me.width - (me.paddingLeft + me.paddingRight);\n var tickWidth = innerWidth / Math.max((me._ticks.length - (offset ? 0 : 1)), 1);\n var pixel = (tickWidth * index) + me.paddingLeft;\n\n if (offset) {\n pixel += tickWidth / 2;\n }\n\n var finalVal = me.left + Math.round(pixel);\n finalVal += me.isFullWidth() ? me.margins.left : 0;\n return finalVal;\n }\n var innerHeight = me.height - (me.paddingTop + me.paddingBottom);\n return me.top + (index * (innerHeight / (me._ticks.length - 1)));\n },\n\n // Utility for getting the pixel location of a percentage of scale\n getPixelForDecimal: function(decimal) {\n var me = this;\n if (me.isHorizontal()) {\n var innerWidth = me.width - (me.paddingLeft + me.paddingRight);\n var valueOffset = (innerWidth * decimal) + me.paddingLeft;\n\n var finalVal = me.left + Math.round(valueOffset);\n finalVal += me.isFullWidth() ? me.margins.left : 0;\n return finalVal;\n }\n return me.top + (decimal * me.height);\n },\n\n getBasePixel: function() {\n return this.getPixelForValue(this.getBaseValue());\n },\n\n getBaseValue: function() {\n var me = this;\n var min = me.min;\n var max = me.max;\n\n return me.beginAtZero ? 0 :\n min < 0 && max < 0 ? max :\n min > 0 && max > 0 ? min :\n 0;\n },\n\n /**\n * Returns a subset of ticks to be plotted to avoid overlapping labels.\n * @private\n */\n _autoSkip: function(ticks) {\n var skipRatio;\n var me = this;\n var isHorizontal = me.isHorizontal();\n var optionTicks = me.options.ticks.minor;\n var tickCount = ticks.length;\n var labelRotationRadians = helpers.toRadians(me.labelRotation);\n var cosRotation = Math.cos(labelRotationRadians);\n var longestRotatedLabel = me.longestLabelWidth * cosRotation;\n var result = [];\n var i, tick, shouldSkip;\n\n // figure out the maximum number of gridlines to show\n var maxTicks;\n if (optionTicks.maxTicksLimit) {\n maxTicks = optionTicks.maxTicksLimit;\n }\n\n if (isHorizontal) {\n skipRatio = false;\n\n if ((longestRotatedLabel + optionTicks.autoSkipPadding) * tickCount > (me.width - (me.paddingLeft + me.paddingRight))) {\n skipRatio = 1 + Math.floor(((longestRotatedLabel + optionTicks.autoSkipPadding) * tickCount) / (me.width - (me.paddingLeft + me.paddingRight)));\n }\n\n // if they defined a max number of optionTicks,\n // increase skipRatio until that number is met\n if (maxTicks && tickCount > maxTicks) {\n skipRatio = Math.max(skipRatio, Math.floor(tickCount / maxTicks));\n }\n }\n\n for (i = 0; i < tickCount; i++) {\n tick = ticks[i];\n\n // Since we always show the last tick,we need may need to hide the last shown one before\n shouldSkip = (skipRatio > 1 && i % skipRatio > 0) || (i % skipRatio === 0 && i + skipRatio >= tickCount);\n if (shouldSkip && i !== tickCount - 1 || helpers.isNullOrUndef(tick.label)) {\n // leave tick in place but make sure it's not displayed (#4635)\n delete tick.label;\n }\n result.push(tick);\n }\n return result;\n },\n\n // Actually draw the scale on the canvas\n // @param {rectangle} chartArea : the area of the chart to draw full grid lines on\n draw: function(chartArea) {\n var me = this;\n var options = me.options;\n if (!options.display) {\n return;\n }\n\n var context = me.ctx;\n var globalDefaults = defaults.global;\n var optionTicks = options.ticks.minor;\n var optionMajorTicks = options.ticks.major || optionTicks;\n var gridLines = options.gridLines;\n var scaleLabel = options.scaleLabel;\n\n var isRotated = me.labelRotation !== 0;\n var isHorizontal = me.isHorizontal();\n\n var ticks = optionTicks.autoSkip ? me._autoSkip(me.getTicks()) : me.getTicks();\n var tickFontColor = helpers.valueOrDefault(optionTicks.fontColor, globalDefaults.defaultFontColor);\n var tickFont = parseFontOptions(optionTicks);\n var majorTickFontColor = helpers.valueOrDefault(optionMajorTicks.fontColor, globalDefaults.defaultFontColor);\n var majorTickFont = parseFontOptions(optionMajorTicks);\n\n var tl = gridLines.drawTicks ? gridLines.tickMarkLength : 0;\n\n var scaleLabelFontColor = helpers.valueOrDefault(scaleLabel.fontColor, globalDefaults.defaultFontColor);\n var scaleLabelFont = parseFontOptions(scaleLabel);\n var scaleLabelPadding = helpers.options.toPadding(scaleLabel.padding);\n var labelRotationRadians = helpers.toRadians(me.labelRotation);\n\n var itemsToDraw = [];\n\n var xTickStart = options.position === 'right' ? me.left : me.right - tl;\n var xTickEnd = options.position === 'right' ? me.left + tl : me.right;\n var yTickStart = options.position === 'bottom' ? me.top : me.bottom - tl;\n var yTickEnd = options.position === 'bottom' ? me.top + tl : me.bottom;\n\n helpers.each(ticks, function(tick, index) {\n // autoskipper skipped this tick (#4635)\n if (tick.label === undefined) {\n return;\n }\n\n var label = tick.label;\n var lineWidth, lineColor, borderDash, borderDashOffset;\n if (index === me.zeroLineIndex && options.offset === gridLines.offsetGridLines) {\n // Draw the first index specially\n lineWidth = gridLines.zeroLineWidth;\n lineColor = gridLines.zeroLineColor;\n borderDash = gridLines.zeroLineBorderDash;\n borderDashOffset = gridLines.zeroLineBorderDashOffset;\n } else {\n lineWidth = helpers.valueAtIndexOrDefault(gridLines.lineWidth, index);\n lineColor = helpers.valueAtIndexOrDefault(gridLines.color, index);\n borderDash = helpers.valueOrDefault(gridLines.borderDash, globalDefaults.borderDash);\n borderDashOffset = helpers.valueOrDefault(gridLines.borderDashOffset, globalDefaults.borderDashOffset);\n }\n\n // Common properties\n var tx1, ty1, tx2, ty2, x1, y1, x2, y2, labelX, labelY;\n var textAlign = 'middle';\n var textBaseline = 'middle';\n var tickPadding = optionTicks.padding;\n\n if (isHorizontal) {\n var labelYOffset = tl + tickPadding;\n\n if (options.position === 'bottom') {\n // bottom\n textBaseline = !isRotated ? 'top' : 'middle';\n textAlign = !isRotated ? 'center' : 'right';\n labelY = me.top + labelYOffset;\n } else {\n // top\n textBaseline = !isRotated ? 'bottom' : 'middle';\n textAlign = !isRotated ? 'center' : 'left';\n labelY = me.bottom - labelYOffset;\n }\n\n var xLineValue = getLineValue(me, index, gridLines.offsetGridLines && ticks.length > 1);\n if (xLineValue < me.left) {\n lineColor = 'rgba(0,0,0,0)';\n }\n xLineValue += helpers.aliasPixel(lineWidth);\n\n labelX = me.getPixelForTick(index) + optionTicks.labelOffset; // x values for optionTicks (need to consider offsetLabel option)\n\n tx1 = tx2 = x1 = x2 = xLineValue;\n ty1 = yTickStart;\n ty2 = yTickEnd;\n y1 = chartArea.top;\n y2 = chartArea.bottom;\n } else {\n var isLeft = options.position === 'left';\n var labelXOffset;\n\n if (optionTicks.mirror) {\n textAlign = isLeft ? 'left' : 'right';\n labelXOffset = tickPadding;\n } else {\n textAlign = isLeft ? 'right' : 'left';\n labelXOffset = tl + tickPadding;\n }\n\n labelX = isLeft ? me.right - labelXOffset : me.left + labelXOffset;\n\n var yLineValue = getLineValue(me, index, gridLines.offsetGridLines && ticks.length > 1);\n if (yLineValue < me.top) {\n lineColor = 'rgba(0,0,0,0)';\n }\n yLineValue += helpers.aliasPixel(lineWidth);\n\n labelY = me.getPixelForTick(index) + optionTicks.labelOffset;\n\n tx1 = xTickStart;\n tx2 = xTickEnd;\n x1 = chartArea.left;\n x2 = chartArea.right;\n ty1 = ty2 = y1 = y2 = yLineValue;\n }\n\n itemsToDraw.push({\n tx1: tx1,\n ty1: ty1,\n tx2: tx2,\n ty2: ty2,\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2,\n labelX: labelX,\n labelY: labelY,\n glWidth: lineWidth,\n glColor: lineColor,\n glBorderDash: borderDash,\n glBorderDashOffset: borderDashOffset,\n rotation: -1 * labelRotationRadians,\n label: label,\n major: tick.major,\n textBaseline: textBaseline,\n textAlign: textAlign\n });\n });\n\n // Draw all of the tick labels, tick marks, and grid lines at the correct places\n helpers.each(itemsToDraw, function(itemToDraw) {\n if (gridLines.display) {\n context.save();\n context.lineWidth = itemToDraw.glWidth;\n context.strokeStyle = itemToDraw.glColor;\n if (context.setLineDash) {\n context.setLineDash(itemToDraw.glBorderDash);\n context.lineDashOffset = itemToDraw.glBorderDashOffset;\n }\n\n context.beginPath();\n\n if (gridLines.drawTicks) {\n context.moveTo(itemToDraw.tx1, itemToDraw.ty1);\n context.lineTo(itemToDraw.tx2, itemToDraw.ty2);\n }\n\n if (gridLines.drawOnChartArea) {\n context.moveTo(itemToDraw.x1, itemToDraw.y1);\n context.lineTo(itemToDraw.x2, itemToDraw.y2);\n }\n\n context.stroke();\n context.restore();\n }\n\n if (optionTicks.display) {\n // Make sure we draw text in the correct color and font\n context.save();\n context.translate(itemToDraw.labelX, itemToDraw.labelY);\n context.rotate(itemToDraw.rotation);\n context.font = itemToDraw.major ? majorTickFont.font : tickFont.font;\n context.fillStyle = itemToDraw.major ? majorTickFontColor : tickFontColor;\n context.textBaseline = itemToDraw.textBaseline;\n context.textAlign = itemToDraw.textAlign;\n\n var label = itemToDraw.label;\n if (helpers.isArray(label)) {\n for (var i = 0, y = 0; i < label.length; ++i) {\n // We just make sure the multiline element is a string here..\n context.fillText('' + label[i], 0, y);\n // apply same lineSpacing as calculated @ L#320\n y += (tickFont.size * 1.5);\n }\n } else {\n context.fillText(label, 0, 0);\n }\n context.restore();\n }\n });\n\n if (scaleLabel.display) {\n // Draw the scale label\n var scaleLabelX;\n var scaleLabelY;\n var rotation = 0;\n var halfLineHeight = parseLineHeight(scaleLabel) / 2;\n\n if (isHorizontal) {\n scaleLabelX = me.left + ((me.right - me.left) / 2); // midpoint of the width\n scaleLabelY = options.position === 'bottom'\n ? me.bottom - halfLineHeight - scaleLabelPadding.bottom\n : me.top + halfLineHeight + scaleLabelPadding.top;\n } else {\n var isLeft = options.position === 'left';\n scaleLabelX = isLeft\n ? me.left + halfLineHeight + scaleLabelPadding.top\n : me.right - halfLineHeight - scaleLabelPadding.top;\n scaleLabelY = me.top + ((me.bottom - me.top) / 2);\n rotation = isLeft ? -0.5 * Math.PI : 0.5 * Math.PI;\n }\n\n context.save();\n context.translate(scaleLabelX, scaleLabelY);\n context.rotate(rotation);\n context.textAlign = 'center';\n context.textBaseline = 'middle';\n context.fillStyle = scaleLabelFontColor; // render in correct colour\n context.font = scaleLabelFont.font;\n context.fillText(scaleLabel.labelString, 0, 0);\n context.restore();\n }\n\n if (gridLines.drawBorder) {\n // Draw the line at the edge of the axis\n context.lineWidth = helpers.valueAtIndexOrDefault(gridLines.lineWidth, 0);\n context.strokeStyle = helpers.valueAtIndexOrDefault(gridLines.color, 0);\n var x1 = me.left;\n var x2 = me.right;\n var y1 = me.top;\n var y2 = me.bottom;\n\n var aliasPixel = helpers.aliasPixel(context.lineWidth);\n if (isHorizontal) {\n y1 = y2 = options.position === 'top' ? me.bottom : me.top;\n y1 += aliasPixel;\n y2 += aliasPixel;\n } else {\n x1 = x2 = options.position === 'left' ? me.right : me.left;\n x1 += aliasPixel;\n x2 += aliasPixel;\n }\n\n context.beginPath();\n context.moveTo(x1, y1);\n context.lineTo(x2, y2);\n context.stroke();\n }\n }\n });\n };\n\n},{\"25\":25,\"26\":26,\"34\":34,\"45\":45}],33:[function(require,module,exports){\n 'use strict';\n\n var defaults = require(25);\n var helpers = require(45);\n\n module.exports = function(Chart) {\n\n Chart.scaleService = {\n // Scale registration object. Extensions can register new scale types (such as log or DB scales) and then\n // use the new chart options to grab the correct scale\n constructors: {},\n // Use a registration function so that we can move to an ES6 map when we no longer need to support\n // old browsers\n\n // Scale config defaults\n defaults: {},\n registerScaleType: function(type, scaleConstructor, scaleDefaults) {\n this.constructors[type] = scaleConstructor;\n this.defaults[type] = helpers.clone(scaleDefaults);\n },\n getScaleConstructor: function(type) {\n return this.constructors.hasOwnProperty(type) ? this.constructors[type] : undefined;\n },\n getScaleDefaults: function(type) {\n // Return the scale defaults merged with the global settings so that we always use the latest ones\n return this.defaults.hasOwnProperty(type) ? helpers.merge({}, [defaults.scale, this.defaults[type]]) : {};\n },\n updateScaleDefaults: function(type, additions) {\n var me = this;\n if (me.defaults.hasOwnProperty(type)) {\n me.defaults[type] = helpers.extend(me.defaults[type], additions);\n }\n },\n addScalesToLayout: function(chart) {\n // Adds each scale to the chart.boxes array to be sized accordingly\n helpers.each(chart.scales, function(scale) {\n // Set ILayoutItem parameters for backwards compatibility\n scale.fullWidth = scale.options.fullWidth;\n scale.position = scale.options.position;\n scale.weight = scale.options.weight;\n Chart.layoutService.addBox(chart, scale);\n });\n }\n };\n };\n\n},{\"25\":25,\"45\":45}],34:[function(require,module,exports){\n 'use strict';\n\n var helpers = require(45);\n\n /**\n * Namespace to hold static tick generation functions\n * @namespace Chart.Ticks\n */\n module.exports = {\n /**\n * Namespace to hold generators for different types of ticks\n * @namespace Chart.Ticks.generators\n */\n generators: {\n /**\n * Interface for the options provided to the numeric tick generator\n * @interface INumericTickGenerationOptions\n */\n /**\n * The maximum number of ticks to display\n * @name INumericTickGenerationOptions#maxTicks\n * @type Number\n */\n /**\n * The distance between each tick.\n * @name INumericTickGenerationOptions#stepSize\n * @type Number\n * @optional\n */\n /**\n * Forced minimum for the ticks. If not specified, the minimum of the data range is used to calculate the tick minimum\n * @name INumericTickGenerationOptions#min\n * @type Number\n * @optional\n */\n /**\n * The maximum value of the ticks. If not specified, the maximum of the data range is used to calculate the tick maximum\n * @name INumericTickGenerationOptions#max\n * @type Number\n * @optional\n */\n\n /**\n * Generate a set of linear ticks\n * @method Chart.Ticks.generators.linear\n * @param generationOptions {INumericTickGenerationOptions} the options used to generate the ticks\n * @param dataRange {IRange} the range of the data\n * @returns {Array} array of tick values\n */\n linear: function(generationOptions, dataRange) {\n var ticks = [];\n // To get a \"nice\" value for the tick spacing, we will use the appropriately named\n // \"nice number\" algorithm. See http://stackoverflow.com/questions/8506881/nice-label-algorithm-for-charts-with-minimum-ticks\n // for details.\n\n var spacing;\n if (generationOptions.stepSize && generationOptions.stepSize > 0) {\n spacing = generationOptions.stepSize;\n } else {\n var niceRange = helpers.niceNum(dataRange.max - dataRange.min, false);\n spacing = helpers.niceNum(niceRange / (generationOptions.maxTicks - 1), true);\n }\n var niceMin = Math.floor(dataRange.min / spacing) * spacing;\n var niceMax = Math.ceil(dataRange.max / spacing) * spacing;\n\n // If min, max and stepSize is set and they make an evenly spaced scale use it.\n if (generationOptions.min && generationOptions.max && generationOptions.stepSize) {\n // If very close to our whole number, use it.\n if (helpers.almostWhole((generationOptions.max - generationOptions.min) / generationOptions.stepSize, spacing / 1000)) {\n niceMin = generationOptions.min;\n niceMax = generationOptions.max;\n }\n }\n\n var numSpaces = (niceMax - niceMin) / spacing;\n // If very close to our rounded value, use it.\n if (helpers.almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n numSpaces = Math.round(numSpaces);\n } else {\n numSpaces = Math.ceil(numSpaces);\n }\n\n // Put the values into the ticks array\n ticks.push(generationOptions.min !== undefined ? generationOptions.min : niceMin);\n for (var j = 1; j < numSpaces; ++j) {\n ticks.push(niceMin + (j * spacing));\n }\n ticks.push(generationOptions.max !== undefined ? generationOptions.max : niceMax);\n\n return ticks;\n },\n\n /**\n * Generate a set of logarithmic ticks\n * @method Chart.Ticks.generators.logarithmic\n * @param generationOptions {INumericTickGenerationOptions} the options used to generate the ticks\n * @param dataRange {IRange} the range of the data\n * @returns {Array} array of tick values\n */\n logarithmic: function(generationOptions, dataRange) {\n var ticks = [];\n var valueOrDefault = helpers.valueOrDefault;\n\n // Figure out what the max number of ticks we can support it is based on the size of\n // the axis area. For now, we say that the minimum tick spacing in pixels must be 50\n // We also limit the maximum number of ticks to 11 which gives a nice 10 squares on\n // the graph\n var tickVal = valueOrDefault(generationOptions.min, Math.pow(10, Math.floor(helpers.log10(dataRange.min))));\n\n var endExp = Math.floor(helpers.log10(dataRange.max));\n var endSignificand = Math.ceil(dataRange.max / Math.pow(10, endExp));\n var exp, significand;\n\n if (tickVal === 0) {\n exp = Math.floor(helpers.log10(dataRange.minNotZero));\n significand = Math.floor(dataRange.minNotZero / Math.pow(10, exp));\n\n ticks.push(tickVal);\n tickVal = significand * Math.pow(10, exp);\n } else {\n exp = Math.floor(helpers.log10(tickVal));\n significand = Math.floor(tickVal / Math.pow(10, exp));\n }\n\n do {\n ticks.push(tickVal);\n\n ++significand;\n if (significand === 10) {\n significand = 1;\n ++exp;\n }\n\n tickVal = significand * Math.pow(10, exp);\n } while (exp < endExp || (exp === endExp && significand < endSignificand));\n\n var lastTick = valueOrDefault(generationOptions.max, tickVal);\n ticks.push(lastTick);\n\n return ticks;\n }\n },\n\n /**\n * Namespace to hold formatters for different types of ticks\n * @namespace Chart.Ticks.formatters\n */\n formatters: {\n /**\n * Formatter for value labels\n * @method Chart.Ticks.formatters.values\n * @param value the value to display\n * @return {String|Array} the label to display\n */\n values: function(value) {\n return helpers.isArray(value) ? value : '' + value;\n },\n\n /**\n * Formatter for linear numeric ticks\n * @method Chart.Ticks.formatters.linear\n * @param tickValue {Number} the value to be formatted\n * @param index {Number} the position of the tickValue parameter in the ticks array\n * @param ticks {Array} the list of ticks being converted\n * @return {String} string representation of the tickValue parameter\n */\n linear: function(tickValue, index, ticks) {\n // If we have lots of ticks, don't use the ones\n var delta = ticks.length > 3 ? ticks[2] - ticks[1] : ticks[1] - ticks[0];\n\n // If we have a number like 2.5 as the delta, figure out how many decimal places we need\n if (Math.abs(delta) > 1) {\n if (tickValue !== Math.floor(tickValue)) {\n // not an integer\n delta = tickValue - Math.floor(tickValue);\n }\n }\n\n var logDelta = helpers.log10(Math.abs(delta));\n var tickString = '';\n\n if (tickValue !== 0) {\n var numDecimal = -1 * Math.floor(logDelta);\n numDecimal = Math.max(Math.min(numDecimal, 20), 0); // toFixed has a max of 20 decimal places\n tickString = tickValue.toFixed(numDecimal);\n } else {\n tickString = '0'; // never show decimal places for 0\n }\n\n return tickString;\n },\n\n logarithmic: function(tickValue, index, ticks) {\n var remain = tickValue / (Math.pow(10, Math.floor(helpers.log10(tickValue))));\n\n if (tickValue === 0) {\n return '0';\n } else if (remain === 1 || remain === 2 || remain === 5 || index === 0 || index === ticks.length - 1) {\n return tickValue.toExponential();\n }\n return '';\n }\n }\n };\n\n},{\"45\":45}],35:[function(require,module,exports){\n 'use strict';\n\n var defaults = require(25);\n var Element = require(26);\n var helpers = require(45);\n\n defaults._set('global', {\n tooltips: {\n enabled: true,\n custom: null,\n mode: 'nearest',\n position: 'average',\n intersect: true,\n backgroundColor: 'rgba(0,0,0,0.8)',\n titleFontStyle: 'bold',\n titleSpacing: 2,\n titleMarginBottom: 6,\n titleFontColor: '#fff',\n titleAlign: 'left',\n bodySpacing: 2,\n bodyFontColor: '#fff',\n bodyAlign: 'left',\n footerFontStyle: 'bold',\n footerSpacing: 2,\n footerMarginTop: 6,\n footerFontColor: '#fff',\n footerAlign: 'left',\n yPadding: 6,\n xPadding: 6,\n caretPadding: 2,\n caretSize: 5,\n cornerRadius: 6,\n multiKeyBackground: '#fff',\n displayColors: true,\n borderColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n callbacks: {\n // Args are: (tooltipItems, data)\n beforeTitle: helpers.noop,\n title: function(tooltipItems, data) {\n // Pick first xLabel for now\n var title = '';\n var labels = data.labels;\n var labelCount = labels ? labels.length : 0;\n\n if (tooltipItems.length > 0) {\n var item = tooltipItems[0];\n\n if (item.xLabel) {\n title = item.xLabel;\n } else if (labelCount > 0 && item.index < labelCount) {\n title = labels[item.index];\n }\n }\n\n return title;\n },\n afterTitle: helpers.noop,\n\n // Args are: (tooltipItems, data)\n beforeBody: helpers.noop,\n\n // Args are: (tooltipItem, data)\n beforeLabel: helpers.noop,\n label: function(tooltipItem, data) {\n var label = data.datasets[tooltipItem.datasetIndex].label || '';\n\n if (label) {\n label += ': ';\n }\n label += tooltipItem.yLabel;\n return label;\n },\n labelColor: function(tooltipItem, chart) {\n var meta = chart.getDatasetMeta(tooltipItem.datasetIndex);\n var activeElement = meta.data[tooltipItem.index];\n var view = activeElement._view;\n return {\n borderColor: view.borderColor,\n backgroundColor: view.backgroundColor\n };\n },\n labelTextColor: function() {\n return this._options.bodyFontColor;\n },\n afterLabel: helpers.noop,\n\n // Args are: (tooltipItems, data)\n afterBody: helpers.noop,\n\n // Args are: (tooltipItems, data)\n beforeFooter: helpers.noop,\n footer: helpers.noop,\n afterFooter: helpers.noop\n }\n }\n });\n\n module.exports = function(Chart) {\n\n /**\n * Helper method to merge the opacity into a color\n */\n function mergeOpacity(colorString, opacity) {\n var color = helpers.color(colorString);\n return color.alpha(opacity * color.alpha()).rgbaString();\n }\n\n // Helper to push or concat based on if the 2nd parameter is an array or not\n function pushOrConcat(base, toPush) {\n if (toPush) {\n if (helpers.isArray(toPush)) {\n // base = base.concat(toPush);\n Array.prototype.push.apply(base, toPush);\n } else {\n base.push(toPush);\n }\n }\n\n return base;\n }\n\n // Private helper to create a tooltip item model\n // @param element : the chart element (point, arc, bar) to create the tooltip item for\n // @return : new tooltip item\n function createTooltipItem(element) {\n var xScale = element._xScale;\n var yScale = element._yScale || element._scale; // handle radar || polarArea charts\n var index = element._index;\n var datasetIndex = element._datasetIndex;\n\n return {\n xLabel: xScale ? xScale.getLabelForIndex(index, datasetIndex) : '',\n yLabel: yScale ? yScale.getLabelForIndex(index, datasetIndex) : '',\n index: index,\n datasetIndex: datasetIndex,\n x: element._model.x,\n y: element._model.y\n };\n }\n\n /**\n * Helper to get the reset model for the tooltip\n * @param tooltipOpts {Object} the tooltip options\n */\n function getBaseModel(tooltipOpts) {\n var globalDefaults = defaults.global;\n var valueOrDefault = helpers.valueOrDefault;\n\n return {\n // Positioning\n xPadding: tooltipOpts.xPadding,\n yPadding: tooltipOpts.yPadding,\n xAlign: tooltipOpts.xAlign,\n yAlign: tooltipOpts.yAlign,\n\n // Body\n bodyFontColor: tooltipOpts.bodyFontColor,\n _bodyFontFamily: valueOrDefault(tooltipOpts.bodyFontFamily, globalDefaults.defaultFontFamily),\n _bodyFontStyle: valueOrDefault(tooltipOpts.bodyFontStyle, globalDefaults.defaultFontStyle),\n _bodyAlign: tooltipOpts.bodyAlign,\n bodyFontSize: valueOrDefault(tooltipOpts.bodyFontSize, globalDefaults.defaultFontSize),\n bodySpacing: tooltipOpts.bodySpacing,\n\n // Title\n titleFontColor: tooltipOpts.titleFontColor,\n _titleFontFamily: valueOrDefault(tooltipOpts.titleFontFamily, globalDefaults.defaultFontFamily),\n _titleFontStyle: valueOrDefault(tooltipOpts.titleFontStyle, globalDefaults.defaultFontStyle),\n titleFontSize: valueOrDefault(tooltipOpts.titleFontSize, globalDefaults.defaultFontSize),\n _titleAlign: tooltipOpts.titleAlign,\n titleSpacing: tooltipOpts.titleSpacing,\n titleMarginBottom: tooltipOpts.titleMarginBottom,\n\n // Footer\n footerFontColor: tooltipOpts.footerFontColor,\n _footerFontFamily: valueOrDefault(tooltipOpts.footerFontFamily, globalDefaults.defaultFontFamily),\n _footerFontStyle: valueOrDefault(tooltipOpts.footerFontStyle, globalDefaults.defaultFontStyle),\n footerFontSize: valueOrDefault(tooltipOpts.footerFontSize, globalDefaults.defaultFontSize),\n _footerAlign: tooltipOpts.footerAlign,\n footerSpacing: tooltipOpts.footerSpacing,\n footerMarginTop: tooltipOpts.footerMarginTop,\n\n // Appearance\n caretSize: tooltipOpts.caretSize,\n cornerRadius: tooltipOpts.cornerRadius,\n backgroundColor: tooltipOpts.backgroundColor,\n opacity: 0,\n legendColorBackground: tooltipOpts.multiKeyBackground,\n displayColors: tooltipOpts.displayColors,\n borderColor: tooltipOpts.borderColor,\n borderWidth: tooltipOpts.borderWidth\n };\n }\n\n /**\n * Get the size of the tooltip\n */\n function getTooltipSize(tooltip, model) {\n var ctx = tooltip._chart.ctx;\n\n var height = model.yPadding * 2; // Tooltip Padding\n var width = 0;\n\n // Count of all lines in the body\n var body = model.body;\n var combinedBodyLength = body.reduce(function(count, bodyItem) {\n return count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length;\n }, 0);\n combinedBodyLength += model.beforeBody.length + model.afterBody.length;\n\n var titleLineCount = model.title.length;\n var footerLineCount = model.footer.length;\n var titleFontSize = model.titleFontSize;\n var bodyFontSize = model.bodyFontSize;\n var footerFontSize = model.footerFontSize;\n\n height += titleLineCount * titleFontSize; // Title Lines\n height += titleLineCount ? (titleLineCount - 1) * model.titleSpacing : 0; // Title Line Spacing\n height += titleLineCount ? model.titleMarginBottom : 0; // Title's bottom Margin\n height += combinedBodyLength * bodyFontSize; // Body Lines\n height += combinedBodyLength ? (combinedBodyLength - 1) * model.bodySpacing : 0; // Body Line Spacing\n height += footerLineCount ? model.footerMarginTop : 0; // Footer Margin\n height += footerLineCount * (footerFontSize); // Footer Lines\n height += footerLineCount ? (footerLineCount - 1) * model.footerSpacing : 0; // Footer Line Spacing\n\n // Title width\n var widthPadding = 0;\n var maxLineWidth = function(line) {\n width = Math.max(width, ctx.measureText(line).width + widthPadding);\n };\n\n ctx.font = helpers.fontString(titleFontSize, model._titleFontStyle, model._titleFontFamily);\n helpers.each(model.title, maxLineWidth);\n\n // Body width\n ctx.font = helpers.fontString(bodyFontSize, model._bodyFontStyle, model._bodyFontFamily);\n helpers.each(model.beforeBody.concat(model.afterBody), maxLineWidth);\n\n // Body lines may include some extra width due to the color box\n widthPadding = model.displayColors ? (bodyFontSize + 2) : 0;\n helpers.each(body, function(bodyItem) {\n helpers.each(bodyItem.before, maxLineWidth);\n helpers.each(bodyItem.lines, maxLineWidth);\n helpers.each(bodyItem.after, maxLineWidth);\n });\n\n // Reset back to 0\n widthPadding = 0;\n\n // Footer width\n ctx.font = helpers.fontString(footerFontSize, model._footerFontStyle, model._footerFontFamily);\n helpers.each(model.footer, maxLineWidth);\n\n // Add padding\n width += 2 * model.xPadding;\n\n return {\n width: width,\n height: height\n };\n }\n\n /**\n * Helper to get the alignment of a tooltip given the size\n */\n function determineAlignment(tooltip, size) {\n var model = tooltip._model;\n var chart = tooltip._chart;\n var chartArea = tooltip._chart.chartArea;\n var xAlign = 'center';\n var yAlign = 'center';\n\n if (model.y < size.height) {\n yAlign = 'top';\n } else if (model.y > (chart.height - size.height)) {\n yAlign = 'bottom';\n }\n\n var lf, rf; // functions to determine left, right alignment\n var olf, orf; // functions to determine if left/right alignment causes tooltip to go outside chart\n var yf; // function to get the y alignment if the tooltip goes outside of the left or right edges\n var midX = (chartArea.left + chartArea.right) / 2;\n var midY = (chartArea.top + chartArea.bottom) / 2;\n\n if (yAlign === 'center') {\n lf = function(x) {\n return x <= midX;\n };\n rf = function(x) {\n return x > midX;\n };\n } else {\n lf = function(x) {\n return x <= (size.width / 2);\n };\n rf = function(x) {\n return x >= (chart.width - (size.width / 2));\n };\n }\n\n olf = function(x) {\n return x + size.width > chart.width;\n };\n orf = function(x) {\n return x - size.width < 0;\n };\n yf = function(y) {\n return y <= midY ? 'top' : 'bottom';\n };\n\n if (lf(model.x)) {\n xAlign = 'left';\n\n // Is tooltip too wide and goes over the right side of the chart.?\n if (olf(model.x)) {\n xAlign = 'center';\n yAlign = yf(model.y);\n }\n } else if (rf(model.x)) {\n xAlign = 'right';\n\n // Is tooltip too wide and goes outside left edge of canvas?\n if (orf(model.x)) {\n xAlign = 'center';\n yAlign = yf(model.y);\n }\n }\n\n var opts = tooltip._options;\n return {\n xAlign: opts.xAlign ? opts.xAlign : xAlign,\n yAlign: opts.yAlign ? opts.yAlign : yAlign\n };\n }\n\n /**\n * @Helper to get the location a tooltip needs to be placed at given the initial position (via the vm) and the size and alignment\n */\n function getBackgroundPoint(vm, size, alignment) {\n // Background Position\n var x = vm.x;\n var y = vm.y;\n\n var caretSize = vm.caretSize;\n var caretPadding = vm.caretPadding;\n var cornerRadius = vm.cornerRadius;\n var xAlign = alignment.xAlign;\n var yAlign = alignment.yAlign;\n var paddingAndSize = caretSize + caretPadding;\n var radiusAndPadding = cornerRadius + caretPadding;\n\n if (xAlign === 'right') {\n x -= size.width;\n } else if (xAlign === 'center') {\n x -= (size.width / 2);\n }\n\n if (yAlign === 'top') {\n y += paddingAndSize;\n } else if (yAlign === 'bottom') {\n y -= size.height + paddingAndSize;\n } else {\n y -= (size.height / 2);\n }\n\n if (yAlign === 'center') {\n if (xAlign === 'left') {\n x += paddingAndSize;\n } else if (xAlign === 'right') {\n x -= paddingAndSize;\n }\n } else if (xAlign === 'left') {\n x -= radiusAndPadding;\n } else if (xAlign === 'right') {\n x += radiusAndPadding;\n }\n\n return {\n x: x,\n y: y\n };\n }\n\n Chart.Tooltip = Element.extend({\n initialize: function() {\n this._model = getBaseModel(this._options);\n },\n\n // Get the title\n // Args are: (tooltipItem, data)\n getTitle: function() {\n var me = this;\n var opts = me._options;\n var callbacks = opts.callbacks;\n\n var beforeTitle = callbacks.beforeTitle.apply(me, arguments);\n var title = callbacks.title.apply(me, arguments);\n var afterTitle = callbacks.afterTitle.apply(me, arguments);\n\n var lines = [];\n lines = pushOrConcat(lines, beforeTitle);\n lines = pushOrConcat(lines, title);\n lines = pushOrConcat(lines, afterTitle);\n\n return lines;\n },\n\n // Args are: (tooltipItem, data)\n getBeforeBody: function() {\n var lines = this._options.callbacks.beforeBody.apply(this, arguments);\n return helpers.isArray(lines) ? lines : lines !== undefined ? [lines] : [];\n },\n\n // Args are: (tooltipItem, data)\n getBody: function(tooltipItems, data) {\n var me = this;\n var callbacks = me._options.callbacks;\n var bodyItems = [];\n\n helpers.each(tooltipItems, function(tooltipItem) {\n var bodyItem = {\n before: [],\n lines: [],\n after: []\n };\n pushOrConcat(bodyItem.before, callbacks.beforeLabel.call(me, tooltipItem, data));\n pushOrConcat(bodyItem.lines, callbacks.label.call(me, tooltipItem, data));\n pushOrConcat(bodyItem.after, callbacks.afterLabel.call(me, tooltipItem, data));\n\n bodyItems.push(bodyItem);\n });\n\n return bodyItems;\n },\n\n // Args are: (tooltipItem, data)\n getAfterBody: function() {\n var lines = this._options.callbacks.afterBody.apply(this, arguments);\n return helpers.isArray(lines) ? lines : lines !== undefined ? [lines] : [];\n },\n\n // Get the footer and beforeFooter and afterFooter lines\n // Args are: (tooltipItem, data)\n getFooter: function() {\n var me = this;\n var callbacks = me._options.callbacks;\n\n var beforeFooter = callbacks.beforeFooter.apply(me, arguments);\n var footer = callbacks.footer.apply(me, arguments);\n var afterFooter = callbacks.afterFooter.apply(me, arguments);\n\n var lines = [];\n lines = pushOrConcat(lines, beforeFooter);\n lines = pushOrConcat(lines, footer);\n lines = pushOrConcat(lines, afterFooter);\n\n return lines;\n },\n\n update: function(changed) {\n var me = this;\n var opts = me._options;\n\n // Need to regenerate the model because its faster than using extend and it is necessary due to the optimization in Chart.Element.transition\n // that does _view = _model if ease === 1. This causes the 2nd tooltip update to set properties in both the view and model at the same time\n // which breaks any animations.\n var existingModel = me._model;\n var model = me._model = getBaseModel(opts);\n var active = me._active;\n\n var data = me._data;\n\n // In the case where active.length === 0 we need to keep these at existing values for good animations\n var alignment = {\n xAlign: existingModel.xAlign,\n yAlign: existingModel.yAlign\n };\n var backgroundPoint = {\n x: existingModel.x,\n y: existingModel.y\n };\n var tooltipSize = {\n width: existingModel.width,\n height: existingModel.height\n };\n var tooltipPosition = {\n x: existingModel.caretX,\n y: existingModel.caretY\n };\n\n var i, len;\n\n if (active.length) {\n model.opacity = 1;\n\n var labelColors = [];\n var labelTextColors = [];\n tooltipPosition = Chart.Tooltip.positioners[opts.position](active, me._eventPosition);\n\n var tooltipItems = [];\n for (i = 0, len = active.length; i < len; ++i) {\n tooltipItems.push(createTooltipItem(active[i]));\n }\n\n // If the user provided a filter function, use it to modify the tooltip items\n if (opts.filter) {\n tooltipItems = tooltipItems.filter(function(a) {\n return opts.filter(a, data);\n });\n }\n\n // If the user provided a sorting function, use it to modify the tooltip items\n if (opts.itemSort) {\n tooltipItems = tooltipItems.sort(function(a, b) {\n return opts.itemSort(a, b, data);\n });\n }\n\n // Determine colors for boxes\n helpers.each(tooltipItems, function(tooltipItem) {\n labelColors.push(opts.callbacks.labelColor.call(me, tooltipItem, me._chart));\n labelTextColors.push(opts.callbacks.labelTextColor.call(me, tooltipItem, me._chart));\n });\n\n\n // Build the Text Lines\n model.title = me.getTitle(tooltipItems, data);\n model.beforeBody = me.getBeforeBody(tooltipItems, data);\n model.body = me.getBody(tooltipItems, data);\n model.afterBody = me.getAfterBody(tooltipItems, data);\n model.footer = me.getFooter(tooltipItems, data);\n\n // Initial positioning and colors\n model.x = Math.round(tooltipPosition.x);\n model.y = Math.round(tooltipPosition.y);\n model.caretPadding = opts.caretPadding;\n model.labelColors = labelColors;\n model.labelTextColors = labelTextColors;\n\n // data points\n model.dataPoints = tooltipItems;\n\n // We need to determine alignment of the tooltip\n tooltipSize = getTooltipSize(this, model);\n alignment = determineAlignment(this, tooltipSize);\n // Final Size and Position\n backgroundPoint = getBackgroundPoint(model, tooltipSize, alignment);\n } else {\n model.opacity = 0;\n }\n\n model.xAlign = alignment.xAlign;\n model.yAlign = alignment.yAlign;\n model.x = backgroundPoint.x;\n model.y = backgroundPoint.y;\n model.width = tooltipSize.width;\n model.height = tooltipSize.height;\n\n // Point where the caret on the tooltip points to\n model.caretX = tooltipPosition.x;\n model.caretY = tooltipPosition.y;\n\n me._model = model;\n\n if (changed && opts.custom) {\n opts.custom.call(me, model);\n }\n\n return me;\n },\n drawCaret: function(tooltipPoint, size) {\n var ctx = this._chart.ctx;\n var vm = this._view;\n var caretPosition = this.getCaretPosition(tooltipPoint, size, vm);\n\n ctx.lineTo(caretPosition.x1, caretPosition.y1);\n ctx.lineTo(caretPosition.x2, caretPosition.y2);\n ctx.lineTo(caretPosition.x3, caretPosition.y3);\n },\n getCaretPosition: function(tooltipPoint, size, vm) {\n var x1, x2, x3, y1, y2, y3;\n var caretSize = vm.caretSize;\n var cornerRadius = vm.cornerRadius;\n var xAlign = vm.xAlign;\n var yAlign = vm.yAlign;\n var ptX = tooltipPoint.x;\n var ptY = tooltipPoint.y;\n var width = size.width;\n var height = size.height;\n\n if (yAlign === 'center') {\n y2 = ptY + (height / 2);\n\n if (xAlign === 'left') {\n x1 = ptX;\n x2 = x1 - caretSize;\n x3 = x1;\n\n y1 = y2 + caretSize;\n y3 = y2 - caretSize;\n } else {\n x1 = ptX + width;\n x2 = x1 + caretSize;\n x3 = x1;\n\n y1 = y2 - caretSize;\n y3 = y2 + caretSize;\n }\n } else {\n if (xAlign === 'left') {\n x2 = ptX + cornerRadius + (caretSize);\n x1 = x2 - caretSize;\n x3 = x2 + caretSize;\n } else if (xAlign === 'right') {\n x2 = ptX + width - cornerRadius - caretSize;\n x1 = x2 - caretSize;\n x3 = x2 + caretSize;\n } else {\n x2 = ptX + (width / 2);\n x1 = x2 - caretSize;\n x3 = x2 + caretSize;\n }\n if (yAlign === 'top') {\n y1 = ptY;\n y2 = y1 - caretSize;\n y3 = y1;\n } else {\n y1 = ptY + height;\n y2 = y1 + caretSize;\n y3 = y1;\n // invert drawing order\n var tmp = x3;\n x3 = x1;\n x1 = tmp;\n }\n }\n return {x1: x1, x2: x2, x3: x3, y1: y1, y2: y2, y3: y3};\n },\n drawTitle: function(pt, vm, ctx, opacity) {\n var title = vm.title;\n\n if (title.length) {\n ctx.textAlign = vm._titleAlign;\n ctx.textBaseline = 'top';\n\n var titleFontSize = vm.titleFontSize;\n var titleSpacing = vm.titleSpacing;\n\n ctx.fillStyle = mergeOpacity(vm.titleFontColor, opacity);\n ctx.font = helpers.fontString(titleFontSize, vm._titleFontStyle, vm._titleFontFamily);\n\n var i, len;\n for (i = 0, len = title.length; i < len; ++i) {\n ctx.fillText(title[i], pt.x, pt.y);\n pt.y += titleFontSize + titleSpacing; // Line Height and spacing\n\n if (i + 1 === title.length) {\n pt.y += vm.titleMarginBottom - titleSpacing; // If Last, add margin, remove spacing\n }\n }\n }\n },\n drawBody: function(pt, vm, ctx, opacity) {\n var bodyFontSize = vm.bodyFontSize;\n var bodySpacing = vm.bodySpacing;\n var body = vm.body;\n\n ctx.textAlign = vm._bodyAlign;\n ctx.textBaseline = 'top';\n ctx.font = helpers.fontString(bodyFontSize, vm._bodyFontStyle, vm._bodyFontFamily);\n\n // Before Body\n var xLinePadding = 0;\n var fillLineOfText = function(line) {\n ctx.fillText(line, pt.x + xLinePadding, pt.y);\n pt.y += bodyFontSize + bodySpacing;\n };\n\n // Before body lines\n helpers.each(vm.beforeBody, fillLineOfText);\n\n var drawColorBoxes = vm.displayColors;\n xLinePadding = drawColorBoxes ? (bodyFontSize + 2) : 0;\n\n // Draw body lines now\n helpers.each(body, function(bodyItem, i) {\n helpers.each(bodyItem.before, fillLineOfText);\n\n helpers.each(bodyItem.lines, function(line) {\n // Draw Legend-like boxes if needed\n if (drawColorBoxes) {\n // Fill a white rect so that colours merge nicely if the opacity is < 1\n ctx.fillStyle = mergeOpacity(vm.legendColorBackground, opacity);\n ctx.fillRect(pt.x, pt.y, bodyFontSize, bodyFontSize);\n\n // Border\n ctx.lineWidth = 1;\n ctx.strokeStyle = mergeOpacity(vm.labelColors[i].borderColor, opacity);\n ctx.strokeRect(pt.x, pt.y, bodyFontSize, bodyFontSize);\n\n // Inner square\n ctx.fillStyle = mergeOpacity(vm.labelColors[i].backgroundColor, opacity);\n ctx.fillRect(pt.x + 1, pt.y + 1, bodyFontSize - 2, bodyFontSize - 2);\n var textColor = mergeOpacity(vm.labelTextColors[i], opacity);\n ctx.fillStyle = textColor;\n }\n\n fillLineOfText(line);\n });\n\n helpers.each(bodyItem.after, fillLineOfText);\n });\n\n // Reset back to 0 for after body\n xLinePadding = 0;\n\n // After body lines\n helpers.each(vm.afterBody, fillLineOfText);\n pt.y -= bodySpacing; // Remove last body spacing\n },\n drawFooter: function(pt, vm, ctx, opacity) {\n var footer = vm.footer;\n\n if (footer.length) {\n pt.y += vm.footerMarginTop;\n\n ctx.textAlign = vm._footerAlign;\n ctx.textBaseline = 'top';\n\n ctx.fillStyle = mergeOpacity(vm.footerFontColor, opacity);\n ctx.font = helpers.fontString(vm.footerFontSize, vm._footerFontStyle, vm._footerFontFamily);\n\n helpers.each(footer, function(line) {\n ctx.fillText(line, pt.x, pt.y);\n pt.y += vm.footerFontSize + vm.footerSpacing;\n });\n }\n },\n drawBackground: function(pt, vm, ctx, tooltipSize, opacity) {\n ctx.fillStyle = mergeOpacity(vm.backgroundColor, opacity);\n ctx.strokeStyle = mergeOpacity(vm.borderColor, opacity);\n ctx.lineWidth = vm.borderWidth;\n var xAlign = vm.xAlign;\n var yAlign = vm.yAlign;\n var x = pt.x;\n var y = pt.y;\n var width = tooltipSize.width;\n var height = tooltipSize.height;\n var radius = vm.cornerRadius;\n\n ctx.beginPath();\n ctx.moveTo(x + radius, y);\n if (yAlign === 'top') {\n this.drawCaret(pt, tooltipSize);\n }\n ctx.lineTo(x + width - radius, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + radius);\n if (yAlign === 'center' && xAlign === 'right') {\n this.drawCaret(pt, tooltipSize);\n }\n ctx.lineTo(x + width, y + height - radius);\n ctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height);\n if (yAlign === 'bottom') {\n this.drawCaret(pt, tooltipSize);\n }\n ctx.lineTo(x + radius, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - radius);\n if (yAlign === 'center' && xAlign === 'left') {\n this.drawCaret(pt, tooltipSize);\n }\n ctx.lineTo(x, y + radius);\n ctx.quadraticCurveTo(x, y, x + radius, y);\n ctx.closePath();\n\n ctx.fill();\n\n if (vm.borderWidth > 0) {\n ctx.stroke();\n }\n },\n draw: function() {\n var ctx = this._chart.ctx;\n var vm = this._view;\n\n if (vm.opacity === 0) {\n return;\n }\n\n var tooltipSize = {\n width: vm.width,\n height: vm.height\n };\n var pt = {\n x: vm.x,\n y: vm.y\n };\n\n // IE11/Edge does not like very small opacities, so snap to 0\n var opacity = Math.abs(vm.opacity < 1e-3) ? 0 : vm.opacity;\n\n // Truthy/falsey value for empty tooltip\n var hasTooltipContent = vm.title.length || vm.beforeBody.length || vm.body.length || vm.afterBody.length || vm.footer.length;\n\n if (this._options.enabled && hasTooltipContent) {\n // Draw Background\n this.drawBackground(pt, vm, ctx, tooltipSize, opacity);\n\n // Draw Title, Body, and Footer\n pt.x += vm.xPadding;\n pt.y += vm.yPadding;\n\n // Titles\n this.drawTitle(pt, vm, ctx, opacity);\n\n // Body\n this.drawBody(pt, vm, ctx, opacity);\n\n // Footer\n this.drawFooter(pt, vm, ctx, opacity);\n }\n },\n\n /**\n * Handle an event\n * @private\n * @param {IEvent} event - The event to handle\n * @returns {Boolean} true if the tooltip changed\n */\n handleEvent: function(e) {\n var me = this;\n var options = me._options;\n var changed = false;\n\n me._lastActive = me._lastActive || [];\n\n // Find Active Elements for tooltips\n if (e.type === 'mouseout') {\n me._active = [];\n } else {\n me._active = me._chart.getElementsAtEventForMode(e, options.mode, options);\n }\n\n // Remember Last Actives\n changed = !helpers.arrayEquals(me._active, me._lastActive);\n\n // If tooltip didn't change, do not handle the target event\n if (!changed) {\n return false;\n }\n\n me._lastActive = me._active;\n\n if (options.enabled || options.custom) {\n me._eventPosition = {\n x: e.x,\n y: e.y\n };\n\n var model = me._model;\n me.update(true);\n me.pivot();\n\n // See if our tooltip position changed\n changed |= (model.x !== me._model.x) || (model.y !== me._model.y);\n }\n\n return changed;\n }\n });\n\n /**\n * @namespace Chart.Tooltip.positioners\n */\n Chart.Tooltip.positioners = {\n /**\n * Average mode places the tooltip at the average position of the elements shown\n * @function Chart.Tooltip.positioners.average\n * @param elements {ChartElement[]} the elements being displayed in the tooltip\n * @returns {Point} tooltip position\n */\n average: function(elements) {\n if (!elements.length) {\n return false;\n }\n\n var i, len;\n var x = 0;\n var y = 0;\n var count = 0;\n\n for (i = 0, len = elements.length; i < len; ++i) {\n var el = elements[i];\n if (el && el.hasValue()) {\n var pos = el.tooltipPosition();\n x += pos.x;\n y += pos.y;\n ++count;\n }\n }\n\n return {\n x: Math.round(x / count),\n y: Math.round(y / count)\n };\n },\n\n /**\n * Gets the tooltip position nearest of the item nearest to the event position\n * @function Chart.Tooltip.positioners.nearest\n * @param elements {Chart.Element[]} the tooltip elements\n * @param eventPosition {Point} the position of the event in canvas coordinates\n * @returns {Point} the tooltip position\n */\n nearest: function(elements, eventPosition) {\n var x = eventPosition.x;\n var y = eventPosition.y;\n var minDistance = Number.POSITIVE_INFINITY;\n var i, len, nearestElement;\n\n for (i = 0, len = elements.length; i < len; ++i) {\n var el = elements[i];\n if (el && el.hasValue()) {\n var center = el.getCenterPoint();\n var d = helpers.distanceBetweenPoints(eventPosition, center);\n\n if (d < minDistance) {\n minDistance = d;\n nearestElement = el;\n }\n }\n }\n\n if (nearestElement) {\n var tp = nearestElement.tooltipPosition();\n x = tp.x;\n y = tp.y;\n }\n\n return {\n x: x,\n y: y\n };\n }\n };\n };\n\n},{\"25\":25,\"26\":26,\"45\":45}],36:[function(require,module,exports){\n 'use strict';\n\n var defaults = require(25);\n var Element = require(26);\n var helpers = require(45);\n\n defaults._set('global', {\n elements: {\n arc: {\n backgroundColor: defaults.global.defaultColor,\n borderColor: '#fff',\n borderWidth: 2\n }\n }\n });\n\n module.exports = Element.extend({\n inLabelRange: function(mouseX) {\n var vm = this._view;\n\n if (vm) {\n return (Math.pow(mouseX - vm.x, 2) < Math.pow(vm.radius + vm.hoverRadius, 2));\n }\n return false;\n },\n\n inRange: function(chartX, chartY) {\n var vm = this._view;\n\n if (vm) {\n var pointRelativePosition = helpers.getAngleFromPoint(vm, {x: chartX, y: chartY});\n var\tangle = pointRelativePosition.angle;\n var distance = pointRelativePosition.distance;\n\n // Sanitise angle range\n var startAngle = vm.startAngle;\n var endAngle = vm.endAngle;\n while (endAngle < startAngle) {\n endAngle += 2.0 * Math.PI;\n }\n while (angle > endAngle) {\n angle -= 2.0 * Math.PI;\n }\n while (angle < startAngle) {\n angle += 2.0 * Math.PI;\n }\n\n // Check if within the range of the open/close angle\n var betweenAngles = (angle >= startAngle && angle <= endAngle);\n var withinRadius = (distance >= vm.innerRadius && distance <= vm.outerRadius);\n\n return (betweenAngles && withinRadius);\n }\n return false;\n },\n\n getCenterPoint: function() {\n var vm = this._view;\n var halfAngle = (vm.startAngle + vm.endAngle) / 2;\n var halfRadius = (vm.innerRadius + vm.outerRadius) / 2;\n return {\n x: vm.x + Math.cos(halfAngle) * halfRadius,\n y: vm.y + Math.sin(halfAngle) * halfRadius\n };\n },\n\n getArea: function() {\n var vm = this._view;\n return Math.PI * ((vm.endAngle - vm.startAngle) / (2 * Math.PI)) * (Math.pow(vm.outerRadius, 2) - Math.pow(vm.innerRadius, 2));\n },\n\n tooltipPosition: function() {\n var vm = this._view;\n var centreAngle = vm.startAngle + ((vm.endAngle - vm.startAngle) / 2);\n var rangeFromCentre = (vm.outerRadius - vm.innerRadius) / 2 + vm.innerRadius;\n\n return {\n x: vm.x + (Math.cos(centreAngle) * rangeFromCentre),\n y: vm.y + (Math.sin(centreAngle) * rangeFromCentre)\n };\n },\n\n draw: function() {\n var ctx = this._chart.ctx;\n var vm = this._view;\n var sA = vm.startAngle;\n var eA = vm.endAngle;\n\n ctx.beginPath();\n\n ctx.arc(vm.x, vm.y, vm.outerRadius, sA, eA);\n ctx.arc(vm.x, vm.y, vm.innerRadius, eA, sA, true);\n\n ctx.closePath();\n ctx.strokeStyle = vm.borderColor;\n ctx.lineWidth = vm.borderWidth;\n\n ctx.fillStyle = vm.backgroundColor;\n\n ctx.fill();\n ctx.lineJoin = 'bevel';\n\n if (vm.borderWidth) {\n ctx.stroke();\n }\n }\n });\n\n},{\"25\":25,\"26\":26,\"45\":45}],37:[function(require,module,exports){\n 'use strict';\n\n var defaults = require(25);\n var Element = require(26);\n var helpers = require(45);\n\n var globalDefaults = defaults.global;\n\n defaults._set('global', {\n elements: {\n line: {\n tension: 0.4,\n backgroundColor: globalDefaults.defaultColor,\n borderWidth: 3,\n borderColor: globalDefaults.defaultColor,\n borderCapStyle: 'butt',\n borderDash: [],\n borderDashOffset: 0.0,\n borderJoinStyle: 'miter',\n capBezierPoints: true,\n fill: true, // do we fill in the area between the line and its base axis\n }\n }\n });\n\n module.exports = Element.extend({\n draw: function() {\n var me = this;\n var vm = me._view;\n var ctx = me._chart.ctx;\n var spanGaps = vm.spanGaps;\n var points = me._children.slice(); // clone array\n var globalOptionLineElements = globalDefaults.elements.line;\n var lastDrawnIndex = -1;\n var index, current, previous, currentVM;\n\n // If we are looping, adding the first point again\n if (me._loop && points.length) {\n points.push(points[0]);\n }\n\n ctx.save();\n\n // Stroke Line Options\n ctx.lineCap = vm.borderCapStyle || globalOptionLineElements.borderCapStyle;\n\n // IE 9 and 10 do not support line dash\n if (ctx.setLineDash) {\n ctx.setLineDash(vm.borderDash || globalOptionLineElements.borderDash);\n }\n\n ctx.lineDashOffset = vm.borderDashOffset || globalOptionLineElements.borderDashOffset;\n ctx.lineJoin = vm.borderJoinStyle || globalOptionLineElements.borderJoinStyle;\n ctx.lineWidth = vm.borderWidth || globalOptionLineElements.borderWidth;\n ctx.strokeStyle = vm.borderColor || globalDefaults.defaultColor;\n\n // Stroke Line\n ctx.beginPath();\n lastDrawnIndex = -1;\n\n for (index = 0; index < points.length; ++index) {\n current = points[index];\n previous = helpers.previousItem(points, index);\n currentVM = current._view;\n\n // First point moves to it's starting position no matter what\n if (index === 0) {\n if (!currentVM.skip) {\n ctx.moveTo(currentVM.x, currentVM.y);\n lastDrawnIndex = index;\n }\n } else {\n previous = lastDrawnIndex === -1 ? previous : points[lastDrawnIndex];\n\n if (!currentVM.skip) {\n if ((lastDrawnIndex !== (index - 1) && !spanGaps) || lastDrawnIndex === -1) {\n // There was a gap and this is the first point after the gap\n ctx.moveTo(currentVM.x, currentVM.y);\n } else {\n // Line to next point\n helpers.canvas.lineTo(ctx, previous._view, current._view);\n }\n lastDrawnIndex = index;\n }\n }\n }\n\n ctx.stroke();\n ctx.restore();\n }\n });\n\n},{\"25\":25,\"26\":26,\"45\":45}],38:[function(require,module,exports){\n 'use strict';\n\n var defaults = require(25);\n var Element = require(26);\n var helpers = require(45);\n\n var defaultColor = defaults.global.defaultColor;\n\n defaults._set('global', {\n elements: {\n point: {\n radius: 3,\n pointStyle: 'circle',\n backgroundColor: defaultColor,\n borderColor: defaultColor,\n borderWidth: 1,\n // Hover\n hitRadius: 1,\n hoverRadius: 4,\n hoverBorderWidth: 1\n }\n }\n });\n\n function xRange(mouseX) {\n var vm = this._view;\n return vm ? (Math.pow(mouseX - vm.x, 2) < Math.pow(vm.radius + vm.hitRadius, 2)) : false;\n }\n\n function yRange(mouseY) {\n var vm = this._view;\n return vm ? (Math.pow(mouseY - vm.y, 2) < Math.pow(vm.radius + vm.hitRadius, 2)) : false;\n }\n\n module.exports = Element.extend({\n inRange: function(mouseX, mouseY) {\n var vm = this._view;\n return vm ? ((Math.pow(mouseX - vm.x, 2) + Math.pow(mouseY - vm.y, 2)) < Math.pow(vm.hitRadius + vm.radius, 2)) : false;\n },\n\n inLabelRange: xRange,\n inXRange: xRange,\n inYRange: yRange,\n\n getCenterPoint: function() {\n var vm = this._view;\n return {\n x: vm.x,\n y: vm.y\n };\n },\n\n getArea: function() {\n return Math.PI * Math.pow(this._view.radius, 2);\n },\n\n tooltipPosition: function() {\n var vm = this._view;\n return {\n x: vm.x,\n y: vm.y,\n padding: vm.radius + vm.borderWidth\n };\n },\n\n draw: function(chartArea) {\n var vm = this._view;\n var model = this._model;\n var ctx = this._chart.ctx;\n var pointStyle = vm.pointStyle;\n var radius = vm.radius;\n var x = vm.x;\n var y = vm.y;\n var color = helpers.color;\n var errMargin = 1.01; // 1.01 is margin for Accumulated error. (Especially Edge, IE.)\n var ratio = 0;\n\n if (vm.skip) {\n return;\n }\n\n ctx.strokeStyle = vm.borderColor || defaultColor;\n ctx.lineWidth = helpers.valueOrDefault(vm.borderWidth, defaults.global.elements.point.borderWidth);\n ctx.fillStyle = vm.backgroundColor || defaultColor;\n\n // Cliping for Points.\n // going out from inner charArea?\n if ((chartArea !== undefined) && ((model.x < chartArea.left) || (chartArea.right * errMargin < model.x) || (model.y < chartArea.top) || (chartArea.bottom * errMargin < model.y))) {\n // Point fade out\n if (model.x < chartArea.left) {\n ratio = (x - model.x) / (chartArea.left - model.x);\n } else if (chartArea.right * errMargin < model.x) {\n ratio = (model.x - x) / (model.x - chartArea.right);\n } else if (model.y < chartArea.top) {\n ratio = (y - model.y) / (chartArea.top - model.y);\n } else if (chartArea.bottom * errMargin < model.y) {\n ratio = (model.y - y) / (model.y - chartArea.bottom);\n }\n ratio = Math.round(ratio * 100) / 100;\n ctx.strokeStyle = color(ctx.strokeStyle).alpha(ratio).rgbString();\n ctx.fillStyle = color(ctx.fillStyle).alpha(ratio).rgbString();\n }\n\n helpers.canvas.drawPoint(ctx, pointStyle, radius, x, y);\n }\n });\n\n},{\"25\":25,\"26\":26,\"45\":45}],39:[function(require,module,exports){\n 'use strict';\n\n var defaults = require(25);\n var Element = require(26);\n\n defaults._set('global', {\n elements: {\n rectangle: {\n backgroundColor: defaults.global.defaultColor,\n borderColor: defaults.global.defaultColor,\n borderSkipped: 'bottom',\n borderWidth: 0\n }\n }\n });\n\n function isVertical(bar) {\n return bar._view.width !== undefined;\n }\n\n /**\n * Helper function to get the bounds of the bar regardless of the orientation\n * @param bar {Chart.Element.Rectangle} the bar\n * @return {Bounds} bounds of the bar\n * @private\n */\n function getBarBounds(bar) {\n var vm = bar._view;\n var x1, x2, y1, y2;\n\n if (isVertical(bar)) {\n // vertical\n var halfWidth = vm.width / 2;\n x1 = vm.x - halfWidth;\n x2 = vm.x + halfWidth;\n y1 = Math.min(vm.y, vm.base);\n y2 = Math.max(vm.y, vm.base);\n } else {\n // horizontal bar\n var halfHeight = vm.height / 2;\n x1 = Math.min(vm.x, vm.base);\n x2 = Math.max(vm.x, vm.base);\n y1 = vm.y - halfHeight;\n y2 = vm.y + halfHeight;\n }\n\n return {\n left: x1,\n top: y1,\n right: x2,\n bottom: y2\n };\n }\n\n module.exports = Element.extend({\n draw: function() {\n var ctx = this._chart.ctx;\n var vm = this._view;\n var left, right, top, bottom, signX, signY, borderSkipped;\n var borderWidth = vm.borderWidth;\n\n if (!vm.horizontal) {\n // bar\n left = vm.x - vm.width / 2;\n right = vm.x + vm.width / 2;\n top = vm.y;\n bottom = vm.base;\n signX = 1;\n signY = bottom > top ? 1 : -1;\n borderSkipped = vm.borderSkipped || 'bottom';\n } else {\n // horizontal bar\n left = vm.base;\n right = vm.x;\n top = vm.y - vm.height / 2;\n bottom = vm.y + vm.height / 2;\n signX = right > left ? 1 : -1;\n signY = 1;\n borderSkipped = vm.borderSkipped || 'left';\n }\n\n // Canvas doesn't allow us to stroke inside the width so we can\n // adjust the sizes to fit if we're setting a stroke on the line\n if (borderWidth) {\n // borderWidth shold be less than bar width and bar height.\n var barSize = Math.min(Math.abs(left - right), Math.abs(top - bottom));\n borderWidth = borderWidth > barSize ? barSize : borderWidth;\n var halfStroke = borderWidth / 2;\n // Adjust borderWidth when bar top position is near vm.base(zero).\n var borderLeft = left + (borderSkipped !== 'left' ? halfStroke * signX : 0);\n var borderRight = right + (borderSkipped !== 'right' ? -halfStroke * signX : 0);\n var borderTop = top + (borderSkipped !== 'top' ? halfStroke * signY : 0);\n var borderBottom = bottom + (borderSkipped !== 'bottom' ? -halfStroke * signY : 0);\n // not become a vertical line?\n if (borderLeft !== borderRight) {\n top = borderTop;\n bottom = borderBottom;\n }\n // not become a horizontal line?\n if (borderTop !== borderBottom) {\n left = borderLeft;\n right = borderRight;\n }\n }\n\n ctx.beginPath();\n ctx.fillStyle = vm.backgroundColor;\n ctx.strokeStyle = vm.borderColor;\n ctx.lineWidth = borderWidth;\n\n // Corner points, from bottom-left to bottom-right clockwise\n // | 1 2 |\n // | 0 3 |\n var corners = [\n [left, bottom],\n [left, top],\n [right, top],\n [right, bottom]\n ];\n\n // Find first (starting) corner with fallback to 'bottom'\n var borders = ['bottom', 'left', 'top', 'right'];\n var startCorner = borders.indexOf(borderSkipped, 0);\n if (startCorner === -1) {\n startCorner = 0;\n }\n\n function cornerAt(index) {\n return corners[(startCorner + index) % 4];\n }\n\n // Draw rectangle from 'startCorner'\n var corner = cornerAt(0);\n ctx.moveTo(corner[0], corner[1]);\n\n for (var i = 1; i < 4; i++) {\n corner = cornerAt(i);\n ctx.lineTo(corner[0], corner[1]);\n }\n\n ctx.fill();\n if (borderWidth) {\n ctx.stroke();\n }\n },\n\n height: function() {\n var vm = this._view;\n return vm.base - vm.y;\n },\n\n inRange: function(mouseX, mouseY) {\n var inRange = false;\n\n if (this._view) {\n var bounds = getBarBounds(this);\n inRange = mouseX >= bounds.left && mouseX <= bounds.right && mouseY >= bounds.top && mouseY <= bounds.bottom;\n }\n\n return inRange;\n },\n\n inLabelRange: function(mouseX, mouseY) {\n var me = this;\n if (!me._view) {\n return false;\n }\n\n var inRange = false;\n var bounds = getBarBounds(me);\n\n if (isVertical(me)) {\n inRange = mouseX >= bounds.left && mouseX <= bounds.right;\n } else {\n inRange = mouseY >= bounds.top && mouseY <= bounds.bottom;\n }\n\n return inRange;\n },\n\n inXRange: function(mouseX) {\n var bounds = getBarBounds(this);\n return mouseX >= bounds.left && mouseX <= bounds.right;\n },\n\n inYRange: function(mouseY) {\n var bounds = getBarBounds(this);\n return mouseY >= bounds.top && mouseY <= bounds.bottom;\n },\n\n getCenterPoint: function() {\n var vm = this._view;\n var x, y;\n if (isVertical(this)) {\n x = vm.x;\n y = (vm.y + vm.base) / 2;\n } else {\n x = (vm.x + vm.base) / 2;\n y = vm.y;\n }\n\n return {x: x, y: y};\n },\n\n getArea: function() {\n var vm = this._view;\n return vm.width * Math.abs(vm.y - vm.base);\n },\n\n tooltipPosition: function() {\n var vm = this._view;\n return {\n x: vm.x,\n y: vm.y\n };\n }\n });\n\n},{\"25\":25,\"26\":26}],40:[function(require,module,exports){\n 'use strict';\n\n module.exports = {};\n module.exports.Arc = require(36);\n module.exports.Line = require(37);\n module.exports.Point = require(38);\n module.exports.Rectangle = require(39);\n\n},{\"36\":36,\"37\":37,\"38\":38,\"39\":39}],41:[function(require,module,exports){\n 'use strict';\n\n var helpers = require(42);\n\n /**\n * @namespace Chart.helpers.canvas\n */\n var exports = module.exports = {\n /**\n * Clears the entire canvas associated to the given `chart`.\n * @param {Chart} chart - The chart for which to clear the canvas.\n */\n clear: function(chart) {\n chart.ctx.clearRect(0, 0, chart.width, chart.height);\n },\n\n /**\n * Creates a \"path\" for a rectangle with rounded corners at position (x, y) with a\n * given size (width, height) and the same `radius` for all corners.\n * @param {CanvasRenderingContext2D} ctx - The canvas 2D Context.\n * @param {Number} x - The x axis of the coordinate for the rectangle starting point.\n * @param {Number} y - The y axis of the coordinate for the rectangle starting point.\n * @param {Number} width - The rectangle's width.\n * @param {Number} height - The rectangle's height.\n * @param {Number} radius - The rounded amount (in pixels) for the four corners.\n * @todo handle `radius` as top-left, top-right, bottom-right, bottom-left array/object?\n */\n roundedRect: function(ctx, x, y, width, height, radius) {\n if (radius) {\n var rx = Math.min(radius, width / 2);\n var ry = Math.min(radius, height / 2);\n\n ctx.moveTo(x + rx, y);\n ctx.lineTo(x + width - rx, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + ry);\n ctx.lineTo(x + width, y + height - ry);\n ctx.quadraticCurveTo(x + width, y + height, x + width - rx, y + height);\n ctx.lineTo(x + rx, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - ry);\n ctx.lineTo(x, y + ry);\n ctx.quadraticCurveTo(x, y, x + rx, y);\n } else {\n ctx.rect(x, y, width, height);\n }\n },\n\n drawPoint: function(ctx, style, radius, x, y) {\n var type, edgeLength, xOffset, yOffset, height, size;\n\n if (typeof style === 'object') {\n type = style.toString();\n if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n ctx.drawImage(style, x - style.width / 2, y - style.height / 2, style.width, style.height);\n return;\n }\n }\n\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n\n switch (style) {\n // Default includes circle\n default:\n ctx.beginPath();\n ctx.arc(x, y, radius, 0, Math.PI * 2);\n ctx.closePath();\n ctx.fill();\n break;\n case 'triangle':\n ctx.beginPath();\n edgeLength = 3 * radius / Math.sqrt(3);\n height = edgeLength * Math.sqrt(3) / 2;\n ctx.moveTo(x - edgeLength / 2, y + height / 3);\n ctx.lineTo(x + edgeLength / 2, y + height / 3);\n ctx.lineTo(x, y - 2 * height / 3);\n ctx.closePath();\n ctx.fill();\n break;\n case 'rect':\n size = 1 / Math.SQRT2 * radius;\n ctx.beginPath();\n ctx.fillRect(x - size, y - size, 2 * size, 2 * size);\n ctx.strokeRect(x - size, y - size, 2 * size, 2 * size);\n break;\n case 'rectRounded':\n var offset = radius / Math.SQRT2;\n var leftX = x - offset;\n var topY = y - offset;\n var sideSize = Math.SQRT2 * radius;\n ctx.beginPath();\n this.roundedRect(ctx, leftX, topY, sideSize, sideSize, radius / 2);\n ctx.closePath();\n ctx.fill();\n break;\n case 'rectRot':\n size = 1 / Math.SQRT2 * radius;\n ctx.beginPath();\n ctx.moveTo(x - size, y);\n ctx.lineTo(x, y + size);\n ctx.lineTo(x + size, y);\n ctx.lineTo(x, y - size);\n ctx.closePath();\n ctx.fill();\n break;\n case 'cross':\n ctx.beginPath();\n ctx.moveTo(x, y + radius);\n ctx.lineTo(x, y - radius);\n ctx.moveTo(x - radius, y);\n ctx.lineTo(x + radius, y);\n ctx.closePath();\n break;\n case 'crossRot':\n ctx.beginPath();\n xOffset = Math.cos(Math.PI / 4) * radius;\n yOffset = Math.sin(Math.PI / 4) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x - xOffset, y + yOffset);\n ctx.lineTo(x + xOffset, y - yOffset);\n ctx.closePath();\n break;\n case 'star':\n ctx.beginPath();\n ctx.moveTo(x, y + radius);\n ctx.lineTo(x, y - radius);\n ctx.moveTo(x - radius, y);\n ctx.lineTo(x + radius, y);\n xOffset = Math.cos(Math.PI / 4) * radius;\n yOffset = Math.sin(Math.PI / 4) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x - xOffset, y + yOffset);\n ctx.lineTo(x + xOffset, y - yOffset);\n ctx.closePath();\n break;\n case 'line':\n ctx.beginPath();\n ctx.moveTo(x - radius, y);\n ctx.lineTo(x + radius, y);\n ctx.closePath();\n break;\n case 'dash':\n ctx.beginPath();\n ctx.moveTo(x, y);\n ctx.lineTo(x + radius, y);\n ctx.closePath();\n break;\n }\n\n ctx.stroke();\n },\n\n clipArea: function(ctx, area) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n ctx.clip();\n },\n\n unclipArea: function(ctx) {\n ctx.restore();\n },\n\n lineTo: function(ctx, previous, target, flip) {\n if (target.steppedLine) {\n if ((target.steppedLine === 'after' && !flip) || (target.steppedLine !== 'after' && flip)) {\n ctx.lineTo(previous.x, target.y);\n } else {\n ctx.lineTo(target.x, previous.y);\n }\n ctx.lineTo(target.x, target.y);\n return;\n }\n\n if (!target.tension) {\n ctx.lineTo(target.x, target.y);\n return;\n }\n\n ctx.bezierCurveTo(\n flip ? previous.controlPointPreviousX : previous.controlPointNextX,\n flip ? previous.controlPointPreviousY : previous.controlPointNextY,\n flip ? target.controlPointNextX : target.controlPointPreviousX,\n flip ? target.controlPointNextY : target.controlPointPreviousY,\n target.x,\n target.y);\n }\n };\n\n// DEPRECATIONS\n\n /**\n * Provided for backward compatibility, use Chart.helpers.canvas.clear instead.\n * @namespace Chart.helpers.clear\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\n helpers.clear = exports.clear;\n\n /**\n * Provided for backward compatibility, use Chart.helpers.canvas.roundedRect instead.\n * @namespace Chart.helpers.drawRoundedRectangle\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\n helpers.drawRoundedRectangle = function(ctx) {\n ctx.beginPath();\n exports.roundedRect.apply(exports, arguments);\n ctx.closePath();\n };\n\n},{\"42\":42}],42:[function(require,module,exports){\n 'use strict';\n\n /**\n * @namespace Chart.helpers\n */\n var helpers = {\n /**\n * An empty function that can be used, for example, for optional callback.\n */\n noop: function() {},\n\n /**\n * Returns a unique id, sequentially generated from a global variable.\n * @returns {Number}\n * @function\n */\n uid: (function() {\n var id = 0;\n return function() {\n return id++;\n };\n }()),\n\n /**\n * Returns true if `value` is neither null nor undefined, else returns false.\n * @param {*} value - The value to test.\n * @returns {Boolean}\n * @since 2.7.0\n */\n isNullOrUndef: function(value) {\n return value === null || typeof value === 'undefined';\n },\n\n /**\n * Returns true if `value` is an array, else returns false.\n * @param {*} value - The value to test.\n * @returns {Boolean}\n * @function\n */\n isArray: Array.isArray ? Array.isArray : function(value) {\n return Object.prototype.toString.call(value) === '[object Array]';\n },\n\n /**\n * Returns true if `value` is an object (excluding null), else returns false.\n * @param {*} value - The value to test.\n * @returns {Boolean}\n * @since 2.7.0\n */\n isObject: function(value) {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n },\n\n /**\n * Returns `value` if defined, else returns `defaultValue`.\n * @param {*} value - The value to return if defined.\n * @param {*} defaultValue - The value to return if `value` is undefined.\n * @returns {*}\n */\n valueOrDefault: function(value, defaultValue) {\n return typeof value === 'undefined' ? defaultValue : value;\n },\n\n /**\n * Returns value at the given `index` in array if defined, else returns `defaultValue`.\n * @param {Array} value - The array to lookup for value at `index`.\n * @param {Number} index - The index in `value` to lookup for value.\n * @param {*} defaultValue - The value to return if `value[index]` is undefined.\n * @returns {*}\n */\n valueAtIndexOrDefault: function(value, index, defaultValue) {\n return helpers.valueOrDefault(helpers.isArray(value) ? value[index] : value, defaultValue);\n },\n\n /**\n * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\n * value returned by `fn`. If `fn` is not a function, this method returns undefined.\n * @param {Function} fn - The function to call.\n * @param {Array|undefined|null} args - The arguments with which `fn` should be called.\n * @param {Object} [thisArg] - The value of `this` provided for the call to `fn`.\n * @returns {*}\n */\n callback: function(fn, args, thisArg) {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n },\n\n /**\n * Note(SB) for performance sake, this method should only be used when loopable type\n * is unknown or in none intensive code (not called often and small loopable). Else\n * it's preferable to use a regular for() loop and save extra function calls.\n * @param {Object|Array} loopable - The object or array to be iterated.\n * @param {Function} fn - The function to call for each item.\n * @param {Object} [thisArg] - The value of `this` provided for the call to `fn`.\n * @param {Boolean} [reverse] - If true, iterates backward on the loopable.\n */\n each: function(loopable, fn, thisArg, reverse) {\n var i, len, keys;\n if (helpers.isArray(loopable)) {\n len = loopable.length;\n if (reverse) {\n for (i = len - 1; i >= 0; i--) {\n fn.call(thisArg, loopable[i], i);\n }\n } else {\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[i], i);\n }\n }\n } else if (helpers.isObject(loopable)) {\n keys = Object.keys(loopable);\n len = keys.length;\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n },\n\n /**\n * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\n * @see http://stackoverflow.com/a/14853974\n * @param {Array} a0 - The array to compare\n * @param {Array} a1 - The array to compare\n * @returns {Boolean}\n */\n arrayEquals: function(a0, a1) {\n var i, ilen, v0, v1;\n\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n\n for (i = 0, ilen = a0.length; i < ilen; ++i) {\n v0 = a0[i];\n v1 = a1[i];\n\n if (v0 instanceof Array && v1 instanceof Array) {\n if (!helpers.arrayEquals(v0, v1)) {\n return false;\n }\n } else if (v0 !== v1) {\n // NOTE: two different object instances will never be equal: {x:20} != {x:20}\n return false;\n }\n }\n\n return true;\n },\n\n /**\n * Returns a deep copy of `source` without keeping references on objects and arrays.\n * @param {*} source - The value to clone.\n * @returns {*}\n */\n clone: function(source) {\n if (helpers.isArray(source)) {\n return source.map(helpers.clone);\n }\n\n if (helpers.isObject(source)) {\n var target = {};\n var keys = Object.keys(source);\n var klen = keys.length;\n var k = 0;\n\n for (; k < klen; ++k) {\n target[keys[k]] = helpers.clone(source[keys[k]]);\n }\n\n return target;\n }\n\n return source;\n },\n\n /**\n * The default merger when Chart.helpers.merge is called without merger option.\n * Note(SB): this method is also used by configMerge and scaleMerge as fallback.\n * @private\n */\n _merger: function(key, target, source, options) {\n var tval = target[key];\n var sval = source[key];\n\n if (helpers.isObject(tval) && helpers.isObject(sval)) {\n helpers.merge(tval, sval, options);\n } else {\n target[key] = helpers.clone(sval);\n }\n },\n\n /**\n * Merges source[key] in target[key] only if target[key] is undefined.\n * @private\n */\n _mergerIf: function(key, target, source) {\n var tval = target[key];\n var sval = source[key];\n\n if (helpers.isObject(tval) && helpers.isObject(sval)) {\n helpers.mergeIf(tval, sval);\n } else if (!target.hasOwnProperty(key)) {\n target[key] = helpers.clone(sval);\n }\n },\n\n /**\n * Recursively deep copies `source` properties into `target` with the given `options`.\n * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\n * @param {Object} target - The target object in which all sources are merged into.\n * @param {Object|Array(Object)} source - Object(s) to merge into `target`.\n * @param {Object} [options] - Merging options:\n * @param {Function} [options.merger] - The merge method (key, target, source, options)\n * @returns {Object} The `target` object.\n */\n merge: function(target, source, options) {\n var sources = helpers.isArray(source) ? source : [source];\n var ilen = sources.length;\n var merge, i, keys, klen, k;\n\n if (!helpers.isObject(target)) {\n return target;\n }\n\n options = options || {};\n merge = options.merger || helpers._merger;\n\n for (i = 0; i < ilen; ++i) {\n source = sources[i];\n if (!helpers.isObject(source)) {\n continue;\n }\n\n keys = Object.keys(source);\n for (k = 0, klen = keys.length; k < klen; ++k) {\n merge(keys[k], target, source, options);\n }\n }\n\n return target;\n },\n\n /**\n * Recursively deep copies `source` properties into `target` *only* if not defined in target.\n * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\n * @param {Object} target - The target object in which all sources are merged into.\n * @param {Object|Array(Object)} source - Object(s) to merge into `target`.\n * @returns {Object} The `target` object.\n */\n mergeIf: function(target, source) {\n return helpers.merge(target, source, {merger: helpers._mergerIf});\n }\n };\n\n module.exports = helpers;\n\n// DEPRECATIONS\n\n /**\n * Provided for backward compatibility, use Chart.helpers.callback instead.\n * @function Chart.helpers.callCallback\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n * @private\n */\n helpers.callCallback = helpers.callback;\n\n /**\n * Provided for backward compatibility, use Array.prototype.indexOf instead.\n * Array.prototype.indexOf compatibility: Chrome, Opera, Safari, FF1.5+, IE9+\n * @function Chart.helpers.indexOf\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\n helpers.indexOf = function(array, item, fromIndex) {\n return Array.prototype.indexOf.call(array, item, fromIndex);\n };\n\n /**\n * Provided for backward compatibility, use Chart.helpers.valueOrDefault instead.\n * @function Chart.helpers.getValueOrDefault\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\n helpers.getValueOrDefault = helpers.valueOrDefault;\n\n /**\n * Provided for backward compatibility, use Chart.helpers.valueAtIndexOrDefault instead.\n * @function Chart.helpers.getValueAtIndexOrDefault\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\n helpers.getValueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\n\n},{}],43:[function(require,module,exports){\n 'use strict';\n\n var helpers = require(42);\n\n /**\n * Easing functions adapted from Robert Penner's easing equations.\n * @namespace Chart.helpers.easingEffects\n * @see http://www.robertpenner.com/easing/\n */\n var effects = {\n linear: function(t) {\n return t;\n },\n\n easeInQuad: function(t) {\n return t * t;\n },\n\n easeOutQuad: function(t) {\n return -t * (t - 2);\n },\n\n easeInOutQuad: function(t) {\n if ((t /= 0.5) < 1) {\n return 0.5 * t * t;\n }\n return -0.5 * ((--t) * (t - 2) - 1);\n },\n\n easeInCubic: function(t) {\n return t * t * t;\n },\n\n easeOutCubic: function(t) {\n return (t = t - 1) * t * t + 1;\n },\n\n easeInOutCubic: function(t) {\n if ((t /= 0.5) < 1) {\n return 0.5 * t * t * t;\n }\n return 0.5 * ((t -= 2) * t * t + 2);\n },\n\n easeInQuart: function(t) {\n return t * t * t * t;\n },\n\n easeOutQuart: function(t) {\n return -((t = t - 1) * t * t * t - 1);\n },\n\n easeInOutQuart: function(t) {\n if ((t /= 0.5) < 1) {\n return 0.5 * t * t * t * t;\n }\n return -0.5 * ((t -= 2) * t * t * t - 2);\n },\n\n easeInQuint: function(t) {\n return t * t * t * t * t;\n },\n\n easeOutQuint: function(t) {\n return (t = t - 1) * t * t * t * t + 1;\n },\n\n easeInOutQuint: function(t) {\n if ((t /= 0.5) < 1) {\n return 0.5 * t * t * t * t * t;\n }\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n },\n\n easeInSine: function(t) {\n return -Math.cos(t * (Math.PI / 2)) + 1;\n },\n\n easeOutSine: function(t) {\n return Math.sin(t * (Math.PI / 2));\n },\n\n easeInOutSine: function(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n },\n\n easeInExpo: function(t) {\n return (t === 0) ? 0 : Math.pow(2, 10 * (t - 1));\n },\n\n easeOutExpo: function(t) {\n return (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1;\n },\n\n easeInOutExpo: function(t) {\n if (t === 0) {\n return 0;\n }\n if (t === 1) {\n return 1;\n }\n if ((t /= 0.5) < 1) {\n return 0.5 * Math.pow(2, 10 * (t - 1));\n }\n return 0.5 * (-Math.pow(2, -10 * --t) + 2);\n },\n\n easeInCirc: function(t) {\n if (t >= 1) {\n return t;\n }\n return -(Math.sqrt(1 - t * t) - 1);\n },\n\n easeOutCirc: function(t) {\n return Math.sqrt(1 - (t = t - 1) * t);\n },\n\n easeInOutCirc: function(t) {\n if ((t /= 0.5) < 1) {\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n }\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n },\n\n easeInElastic: function(t) {\n var s = 1.70158;\n var p = 0;\n var a = 1;\n if (t === 0) {\n return 0;\n }\n if (t === 1) {\n return 1;\n }\n if (!p) {\n p = 0.3;\n }\n if (a < 1) {\n a = 1;\n s = p / 4;\n } else {\n s = p / (2 * Math.PI) * Math.asin(1 / a);\n }\n return -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\n },\n\n easeOutElastic: function(t) {\n var s = 1.70158;\n var p = 0;\n var a = 1;\n if (t === 0) {\n return 0;\n }\n if (t === 1) {\n return 1;\n }\n if (!p) {\n p = 0.3;\n }\n if (a < 1) {\n a = 1;\n s = p / 4;\n } else {\n s = p / (2 * Math.PI) * Math.asin(1 / a);\n }\n return a * Math.pow(2, -10 * t) * Math.sin((t - s) * (2 * Math.PI) / p) + 1;\n },\n\n easeInOutElastic: function(t) {\n var s = 1.70158;\n var p = 0;\n var a = 1;\n if (t === 0) {\n return 0;\n }\n if ((t /= 0.5) === 2) {\n return 1;\n }\n if (!p) {\n p = 0.45;\n }\n if (a < 1) {\n a = 1;\n s = p / 4;\n } else {\n s = p / (2 * Math.PI) * Math.asin(1 / a);\n }\n if (t < 1) {\n return -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\n }\n return a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p) * 0.5 + 1;\n },\n easeInBack: function(t) {\n var s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n\n easeOutBack: function(t) {\n var s = 1.70158;\n return (t = t - 1) * t * ((s + 1) * t + s) + 1;\n },\n\n easeInOutBack: function(t) {\n var s = 1.70158;\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\n }\n return 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\n },\n\n easeInBounce: function(t) {\n return 1 - effects.easeOutBounce(1 - t);\n },\n\n easeOutBounce: function(t) {\n if (t < (1 / 2.75)) {\n return 7.5625 * t * t;\n }\n if (t < (2 / 2.75)) {\n return 7.5625 * (t -= (1.5 / 2.75)) * t + 0.75;\n }\n if (t < (2.5 / 2.75)) {\n return 7.5625 * (t -= (2.25 / 2.75)) * t + 0.9375;\n }\n return 7.5625 * (t -= (2.625 / 2.75)) * t + 0.984375;\n },\n\n easeInOutBounce: function(t) {\n if (t < 0.5) {\n return effects.easeInBounce(t * 2) * 0.5;\n }\n return effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5;\n }\n };\n\n module.exports = {\n effects: effects\n };\n\n// DEPRECATIONS\n\n /**\n * Provided for backward compatibility, use Chart.helpers.easing.effects instead.\n * @function Chart.helpers.easingEffects\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\n helpers.easingEffects = effects;\n\n},{\"42\":42}],44:[function(require,module,exports){\n 'use strict';\n\n var helpers = require(42);\n\n /**\n * @alias Chart.helpers.options\n * @namespace\n */\n module.exports = {\n /**\n * Converts the given line height `value` in pixels for a specific font `size`.\n * @param {Number|String} value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\n * @param {Number} size - The font size (in pixels) used to resolve relative `value`.\n * @returns {Number} The effective line height in pixels (size * 1.2 if value is invalid).\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\n * @since 2.7.0\n */\n toLineHeight: function(value, size) {\n var matches = ('' + value).match(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n\n value = +matches[2];\n\n switch (matches[3]) {\n case 'px':\n return value;\n case '%':\n value /= 100;\n break;\n default:\n break;\n }\n\n return size * value;\n },\n\n /**\n * Converts the given value into a padding object with pre-computed width/height.\n * @param {Number|Object} value - If a number, set the value to all TRBL component,\n * else, if and object, use defined properties and sets undefined ones to 0.\n * @returns {Object} The padding values (top, right, bottom, left, width, height)\n * @since 2.7.0\n */\n toPadding: function(value) {\n var t, r, b, l;\n\n if (helpers.isObject(value)) {\n t = +value.top || 0;\n r = +value.right || 0;\n b = +value.bottom || 0;\n l = +value.left || 0;\n } else {\n t = r = b = l = +value || 0;\n }\n\n return {\n top: t,\n right: r,\n bottom: b,\n left: l,\n height: t + b,\n width: l + r\n };\n },\n\n /**\n * Evaluates the given `inputs` sequentially and returns the first defined value.\n * @param {Array[]} inputs - An array of values, falling back to the last value.\n * @param {Object} [context] - If defined and the current value is a function, the value\n * is called with `context` as first argument and the result becomes the new input.\n * @param {Number} [index] - If defined and the current value is an array, the value\n * at `index` become the new input.\n * @since 2.7.0\n */\n resolve: function(inputs, context, index) {\n var i, ilen, value;\n\n for (i = 0, ilen = inputs.length; i < ilen; ++i) {\n value = inputs[i];\n if (value === undefined) {\n continue;\n }\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n }\n if (index !== undefined && helpers.isArray(value)) {\n value = value[index];\n }\n if (value !== undefined) {\n return value;\n }\n }\n }\n };\n\n},{\"42\":42}],45:[function(require,module,exports){\n 'use strict';\n\n module.exports = require(42);\n module.exports.easing = require(43);\n module.exports.canvas = require(41);\n module.exports.options = require(44);\n\n},{\"41\":41,\"42\":42,\"43\":43,\"44\":44}],46:[function(require,module,exports){\n /**\n * Platform fallback implementation (minimal).\n * @see https://github.com/chartjs/Chart.js/pull/4591#issuecomment-319575939\n */\n\n module.exports = {\n acquireContext: function(item) {\n if (item && item.canvas) {\n // Support for any object associated to a canvas (including a context2d)\n item = item.canvas;\n }\n\n return item && item.getContext('2d') || null;\n }\n };\n\n},{}],47:[function(require,module,exports){\n /**\n * Chart.Platform implementation for targeting a web browser\n */\n\n 'use strict';\n\n var helpers = require(45);\n\n var EXPANDO_KEY = '$chartjs';\n var CSS_PREFIX = 'chartjs-';\n var CSS_RENDER_MONITOR = CSS_PREFIX + 'render-monitor';\n var CSS_RENDER_ANIMATION = CSS_PREFIX + 'render-animation';\n var ANIMATION_START_EVENTS = ['animationstart', 'webkitAnimationStart'];\n\n /**\n * DOM event types -> Chart.js event types.\n * Note: only events with different types are mapped.\n * @see https://developer.mozilla.org/en-US/docs/Web/Events\n */\n var EVENT_TYPES = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup',\n pointerenter: 'mouseenter',\n pointerdown: 'mousedown',\n pointermove: 'mousemove',\n pointerup: 'mouseup',\n pointerleave: 'mouseout',\n pointerout: 'mouseout'\n };\n\n /**\n * The \"used\" size is the final value of a dimension property after all calculations have\n * been performed. This method uses the computed style of `element` but returns undefined\n * if the computed style is not expressed in pixels. That can happen in some cases where\n * `element` has a size relative to its parent and this last one is not yet displayed,\n * for example because of `display: none` on a parent node.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\n * @returns {Number} Size in pixels or undefined if unknown.\n */\n function readUsedSize(element, property) {\n var value = helpers.getStyle(element, property);\n var matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? Number(matches[1]) : undefined;\n }\n\n /**\n * Initializes the canvas style and render size without modifying the canvas display size,\n * since responsiveness is handled by the controller.resize() method. The config is used\n * to determine the aspect ratio to apply in case no explicit height has been specified.\n */\n function initCanvas(canvas, config) {\n var style = canvas.style;\n\n // NOTE(SB) canvas.getAttribute('width') !== canvas.width: in the first case it\n // returns null or '' if no explicit value has been set to the canvas attribute.\n var renderHeight = canvas.getAttribute('height');\n var renderWidth = canvas.getAttribute('width');\n\n // Chart.js modifies some canvas values that we want to restore on destroy\n canvas[EXPANDO_KEY] = {\n initial: {\n height: renderHeight,\n width: renderWidth,\n style: {\n display: style.display,\n height: style.height,\n width: style.width\n }\n }\n };\n\n // Force canvas to display as block to avoid extra space caused by inline\n // elements, which would interfere with the responsive resize process.\n // https://github.com/chartjs/Chart.js/issues/2538\n style.display = style.display || 'block';\n\n if (renderWidth === null || renderWidth === '') {\n var displayWidth = readUsedSize(canvas, 'width');\n if (displayWidth !== undefined) {\n canvas.width = displayWidth;\n }\n }\n\n if (renderHeight === null || renderHeight === '') {\n if (canvas.style.height === '') {\n // If no explicit render height and style height, let's apply the aspect ratio,\n // which one can be specified by the user but also by charts as default option\n // (i.e. options.aspectRatio). If not specified, use canvas aspect ratio of 2.\n canvas.height = canvas.width / (config.options.aspectRatio || 2);\n } else {\n var displayHeight = readUsedSize(canvas, 'height');\n if (displayWidth !== undefined) {\n canvas.height = displayHeight;\n }\n }\n }\n\n return canvas;\n }\n\n /**\n * Detects support for options object argument in addEventListener.\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n * @private\n */\n var supportsEventListenerOptions = (function() {\n var supports = false;\n try {\n var options = Object.defineProperty({}, 'passive', {\n get: function() {\n supports = true;\n }\n });\n window.addEventListener('e', null, options);\n } catch (e) {\n // continue regardless of error\n }\n return supports;\n }());\n\n// Default passive to true as expected by Chrome for 'touchstart' and 'touchend' events.\n// https://github.com/chartjs/Chart.js/issues/4287\n var eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\n\n function addEventListener(node, type, listener) {\n node.addEventListener(type, listener, eventListenerOptions);\n }\n\n function removeEventListener(node, type, listener) {\n node.removeEventListener(type, listener, eventListenerOptions);\n }\n\n function createEvent(type, chart, x, y, nativeEvent) {\n return {\n type: type,\n chart: chart,\n native: nativeEvent || null,\n x: x !== undefined ? x : null,\n y: y !== undefined ? y : null,\n };\n }\n\n function fromNativeEvent(event, chart) {\n var type = EVENT_TYPES[event.type] || event.type;\n var pos = helpers.getRelativePosition(event, chart);\n return createEvent(type, chart, pos.x, pos.y, event);\n }\n\n function throttled(fn, thisArg) {\n var ticking = false;\n var args = [];\n\n return function() {\n args = Array.prototype.slice.call(arguments);\n thisArg = thisArg || this;\n\n if (!ticking) {\n ticking = true;\n helpers.requestAnimFrame.call(window, function() {\n ticking = false;\n fn.apply(thisArg, args);\n });\n }\n };\n }\n\n// Implementation based on https://github.com/marcj/css-element-queries\n function createResizer(handler) {\n var resizer = document.createElement('div');\n var cls = CSS_PREFIX + 'size-monitor';\n var maxSize = 1000000;\n var style =\n 'position:absolute;' +\n 'left:0;' +\n 'top:0;' +\n 'right:0;' +\n 'bottom:0;' +\n 'overflow:hidden;' +\n 'pointer-events:none;' +\n 'visibility:hidden;' +\n 'z-index:-1;';\n\n resizer.style.cssText = style;\n resizer.className = cls;\n resizer.innerHTML =\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
';\n\n var expand = resizer.childNodes[0];\n var shrink = resizer.childNodes[1];\n\n resizer._reset = function() {\n expand.scrollLeft = maxSize;\n expand.scrollTop = maxSize;\n shrink.scrollLeft = maxSize;\n shrink.scrollTop = maxSize;\n };\n var onScroll = function() {\n resizer._reset();\n handler();\n };\n\n addEventListener(expand, 'scroll', onScroll.bind(expand, 'expand'));\n addEventListener(shrink, 'scroll', onScroll.bind(shrink, 'shrink'));\n\n return resizer;\n }\n\n// https://davidwalsh.name/detect-node-insertion\n function watchForRender(node, handler) {\n var expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\n var proxy = expando.renderProxy = function(e) {\n if (e.animationName === CSS_RENDER_ANIMATION) {\n handler();\n }\n };\n\n helpers.each(ANIMATION_START_EVENTS, function(type) {\n addEventListener(node, type, proxy);\n });\n\n node.classList.add(CSS_RENDER_MONITOR);\n }\n\n function unwatchForRender(node) {\n var expando = node[EXPANDO_KEY] || {};\n var proxy = expando.renderProxy;\n\n if (proxy) {\n helpers.each(ANIMATION_START_EVENTS, function(type) {\n removeEventListener(node, type, proxy);\n });\n\n delete expando.renderProxy;\n }\n\n node.classList.remove(CSS_RENDER_MONITOR);\n }\n\n function addResizeListener(node, listener, chart) {\n var expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\n\n // Let's keep track of this added resizer and thus avoid DOM query when removing it.\n var resizer = expando.resizer = createResizer(throttled(function() {\n if (expando.resizer) {\n return listener(createEvent('resize', chart));\n }\n }));\n\n // The resizer needs to be attached to the node parent, so we first need to be\n // sure that `node` is attached to the DOM before injecting the resizer element.\n watchForRender(node, function() {\n if (expando.resizer) {\n var container = node.parentNode;\n if (container && container !== resizer.parentNode) {\n container.insertBefore(resizer, container.firstChild);\n }\n\n // The container size might have changed, let's reset the resizer state.\n resizer._reset();\n }\n });\n }\n\n function removeResizeListener(node) {\n var expando = node[EXPANDO_KEY] || {};\n var resizer = expando.resizer;\n\n delete expando.resizer;\n unwatchForRender(node);\n\n if (resizer && resizer.parentNode) {\n resizer.parentNode.removeChild(resizer);\n }\n }\n\n function injectCSS(platform, css) {\n // http://stackoverflow.com/q/3922139\n var style = platform._style || document.createElement('style');\n if (!platform._style) {\n platform._style = style;\n css = '/* Chart.js */\\n' + css;\n style.setAttribute('type', 'text/css');\n document.getElementsByTagName('head')[0].appendChild(style);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n\n module.exports = {\n /**\n * This property holds whether this platform is enabled for the current environment.\n * Currently used by platform.js to select the proper implementation.\n * @private\n */\n _enabled: typeof window !== 'undefined' && typeof document !== 'undefined',\n\n initialize: function() {\n var keyframes = 'from{opacity:0.99}to{opacity:1}';\n\n injectCSS(this,\n // DOM rendering detection\n // https://davidwalsh.name/detect-node-insertion\n '@-webkit-keyframes ' + CSS_RENDER_ANIMATION + '{' + keyframes + '}' +\n '@keyframes ' + CSS_RENDER_ANIMATION + '{' + keyframes + '}' +\n '.' + CSS_RENDER_MONITOR + '{' +\n '-webkit-animation:' + CSS_RENDER_ANIMATION + ' 0.001s;' +\n 'animation:' + CSS_RENDER_ANIMATION + ' 0.001s;' +\n '}'\n );\n },\n\n acquireContext: function(item, config) {\n if (typeof item === 'string') {\n item = document.getElementById(item);\n } else if (item.length) {\n // Support for array based queries (such as jQuery)\n item = item[0];\n }\n\n if (item && item.canvas) {\n // Support for any object associated to a canvas (including a context2d)\n item = item.canvas;\n }\n\n // To prevent canvas fingerprinting, some add-ons undefine the getContext\n // method, for example: https://github.com/kkapsner/CanvasBlocker\n // https://github.com/chartjs/Chart.js/issues/2807\n var context = item && item.getContext && item.getContext('2d');\n\n // `instanceof HTMLCanvasElement/CanvasRenderingContext2D` fails when the item is\n // inside an iframe or when running in a protected environment. We could guess the\n // types from their toString() value but let's keep things flexible and assume it's\n // a sufficient condition if the item has a context2D which has item as `canvas`.\n // https://github.com/chartjs/Chart.js/issues/3887\n // https://github.com/chartjs/Chart.js/issues/4102\n // https://github.com/chartjs/Chart.js/issues/4152\n if (context && context.canvas === item) {\n initCanvas(item, config);\n return context;\n }\n\n return null;\n },\n\n releaseContext: function(context) {\n var canvas = context.canvas;\n if (!canvas[EXPANDO_KEY]) {\n return;\n }\n\n var initial = canvas[EXPANDO_KEY].initial;\n ['height', 'width'].forEach(function(prop) {\n var value = initial[prop];\n if (helpers.isNullOrUndef(value)) {\n canvas.removeAttribute(prop);\n } else {\n canvas.setAttribute(prop, value);\n }\n });\n\n helpers.each(initial.style || {}, function(value, key) {\n canvas.style[key] = value;\n });\n\n // The canvas render size might have been changed (and thus the state stack discarded),\n // we can't use save() and restore() to restore the initial state. So make sure that at\n // least the canvas context is reset to the default state by setting the canvas width.\n // https://www.w3.org/TR/2011/WD-html5-20110525/the-canvas-element.html\n canvas.width = canvas.width;\n\n delete canvas[EXPANDO_KEY];\n },\n\n addEventListener: function(chart, type, listener) {\n var canvas = chart.canvas;\n if (type === 'resize') {\n // Note: the resize event is not supported on all browsers.\n addResizeListener(canvas, listener, chart);\n return;\n }\n\n var expando = listener[EXPANDO_KEY] || (listener[EXPANDO_KEY] = {});\n var proxies = expando.proxies || (expando.proxies = {});\n var proxy = proxies[chart.id + '_' + type] = function(event) {\n listener(fromNativeEvent(event, chart));\n };\n\n addEventListener(canvas, type, proxy);\n },\n\n removeEventListener: function(chart, type, listener) {\n var canvas = chart.canvas;\n if (type === 'resize') {\n // Note: the resize event is not supported on all browsers.\n removeResizeListener(canvas, listener);\n return;\n }\n\n var expando = listener[EXPANDO_KEY] || {};\n var proxies = expando.proxies || {};\n var proxy = proxies[chart.id + '_' + type];\n if (!proxy) {\n return;\n }\n\n removeEventListener(canvas, type, proxy);\n }\n };\n\n// DEPRECATIONS\n\n /**\n * Provided for backward compatibility, use EventTarget.addEventListener instead.\n * EventTarget.addEventListener compatibility: Chrome, Opera 7, Safari, FF1.5+, IE9+\n * @see https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener\n * @function Chart.helpers.addEvent\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\n helpers.addEvent = addEventListener;\n\n /**\n * Provided for backward compatibility, use EventTarget.removeEventListener instead.\n * EventTarget.removeEventListener compatibility: Chrome, Opera 7, Safari, FF1.5+, IE9+\n * @see https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener\n * @function Chart.helpers.removeEvent\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\n helpers.removeEvent = removeEventListener;\n\n},{\"45\":45}],48:[function(require,module,exports){\n 'use strict';\n\n var helpers = require(45);\n var basic = require(46);\n var dom = require(47);\n\n// @TODO Make possible to select another platform at build time.\n var implementation = dom._enabled ? dom : basic;\n\n /**\n * @namespace Chart.platform\n * @see https://chartjs.gitbooks.io/proposals/content/Platform.html\n * @since 2.4.0\n */\n module.exports = helpers.extend({\n /**\n * @since 2.7.0\n */\n initialize: function() {},\n\n /**\n * Called at chart construction time, returns a context2d instance implementing\n * the [W3C Canvas 2D Context API standard]{@link https://www.w3.org/TR/2dcontext/}.\n * @param {*} item - The native item from which to acquire context (platform specific)\n * @param {Object} options - The chart options\n * @returns {CanvasRenderingContext2D} context2d instance\n */\n acquireContext: function() {},\n\n /**\n * Called at chart destruction time, releases any resources associated to the context\n * previously returned by the acquireContext() method.\n * @param {CanvasRenderingContext2D} context - The context2d instance\n * @returns {Boolean} true if the method succeeded, else false\n */\n releaseContext: function() {},\n\n /**\n * Registers the specified listener on the given chart.\n * @param {Chart} chart - Chart from which to listen for event\n * @param {String} type - The ({@link IEvent}) type to listen for\n * @param {Function} listener - Receives a notification (an object that implements\n * the {@link IEvent} interface) when an event of the specified type occurs.\n */\n addEventListener: function() {},\n\n /**\n * Removes the specified listener previously registered with addEventListener.\n * @param {Chart} chart -Chart from which to remove the listener\n * @param {String} type - The ({@link IEvent}) type to remove\n * @param {Function} listener - The listener function to remove from the event target.\n */\n removeEventListener: function() {}\n\n }, implementation);\n\n /**\n * @interface IPlatform\n * Allows abstracting platform dependencies away from the chart\n * @borrows Chart.platform.acquireContext as acquireContext\n * @borrows Chart.platform.releaseContext as releaseContext\n * @borrows Chart.platform.addEventListener as addEventListener\n * @borrows Chart.platform.removeEventListener as removeEventListener\n */\n\n /**\n * @interface IEvent\n * @prop {String} type - The event type name, possible values are:\n * 'contextmenu', 'mouseenter', 'mousedown', 'mousemove', 'mouseup', 'mouseout',\n * 'click', 'dblclick', 'keydown', 'keypress', 'keyup' and 'resize'\n * @prop {*} native - The original native event (null for emulated events, e.g. 'resize')\n * @prop {Number} x - The mouse x position, relative to the canvas (null for incompatible events)\n * @prop {Number} y - The mouse y position, relative to the canvas (null for incompatible events)\n */\n\n},{\"45\":45,\"46\":46,\"47\":47}],49:[function(require,module,exports){\n /**\n * Plugin based on discussion from the following Chart.js issues:\n * @see https://github.com/chartjs/Chart.js/issues/2380#issuecomment-279961569\n * @see https://github.com/chartjs/Chart.js/issues/2440#issuecomment-256461897\n */\n\n 'use strict';\n\n var defaults = require(25);\n var elements = require(40);\n var helpers = require(45);\n\n defaults._set('global', {\n plugins: {\n filler: {\n propagate: true\n }\n }\n });\n\n module.exports = function() {\n\n var mappers = {\n dataset: function(source) {\n var index = source.fill;\n var chart = source.chart;\n var meta = chart.getDatasetMeta(index);\n var visible = meta && chart.isDatasetVisible(index);\n var points = (visible && meta.dataset._children) || [];\n var length = points.length || 0;\n\n return !length ? null : function(point, i) {\n return (i < length && points[i]._view) || null;\n };\n },\n\n boundary: function(source) {\n var boundary = source.boundary;\n var x = boundary ? boundary.x : null;\n var y = boundary ? boundary.y : null;\n\n return function(point) {\n return {\n x: x === null ? point.x : x,\n y: y === null ? point.y : y,\n };\n };\n }\n };\n\n // @todo if (fill[0] === '#')\n function decodeFill(el, index, count) {\n var model = el._model || {};\n var fill = model.fill;\n var target;\n\n if (fill === undefined) {\n fill = !!model.backgroundColor;\n }\n\n if (fill === false || fill === null) {\n return false;\n }\n\n if (fill === true) {\n return 'origin';\n }\n\n target = parseFloat(fill, 10);\n if (isFinite(target) && Math.floor(target) === target) {\n if (fill[0] === '-' || fill[0] === '+') {\n target = index + target;\n }\n\n if (target === index || target < 0 || target >= count) {\n return false;\n }\n\n return target;\n }\n\n switch (fill) {\n // compatibility\n case 'bottom':\n return 'start';\n case 'top':\n return 'end';\n case 'zero':\n return 'origin';\n // supported boundaries\n case 'origin':\n case 'start':\n case 'end':\n return fill;\n // invalid fill values\n default:\n return false;\n }\n }\n\n function computeBoundary(source) {\n var model = source.el._model || {};\n var scale = source.el._scale || {};\n var fill = source.fill;\n var target = null;\n var horizontal;\n\n if (isFinite(fill)) {\n return null;\n }\n\n // Backward compatibility: until v3, we still need to support boundary values set on\n // the model (scaleTop, scaleBottom and scaleZero) because some external plugins and\n // controllers might still use it (e.g. the Smith chart).\n\n if (fill === 'start') {\n target = model.scaleBottom === undefined ? scale.bottom : model.scaleBottom;\n } else if (fill === 'end') {\n target = model.scaleTop === undefined ? scale.top : model.scaleTop;\n } else if (model.scaleZero !== undefined) {\n target = model.scaleZero;\n } else if (scale.getBasePosition) {\n target = scale.getBasePosition();\n } else if (scale.getBasePixel) {\n target = scale.getBasePixel();\n }\n\n if (target !== undefined && target !== null) {\n if (target.x !== undefined && target.y !== undefined) {\n return target;\n }\n\n if (typeof target === 'number' && isFinite(target)) {\n horizontal = scale.isHorizontal();\n return {\n x: horizontal ? target : null,\n y: horizontal ? null : target\n };\n }\n }\n\n return null;\n }\n\n function resolveTarget(sources, index, propagate) {\n var source = sources[index];\n var fill = source.fill;\n var visited = [index];\n var target;\n\n if (!propagate) {\n return fill;\n }\n\n while (fill !== false && visited.indexOf(fill) === -1) {\n if (!isFinite(fill)) {\n return fill;\n }\n\n target = sources[fill];\n if (!target) {\n return false;\n }\n\n if (target.visible) {\n return fill;\n }\n\n visited.push(fill);\n fill = target.fill;\n }\n\n return false;\n }\n\n function createMapper(source) {\n var fill = source.fill;\n var type = 'dataset';\n\n if (fill === false) {\n return null;\n }\n\n if (!isFinite(fill)) {\n type = 'boundary';\n }\n\n return mappers[type](source);\n }\n\n function isDrawable(point) {\n return point && !point.skip;\n }\n\n function drawArea(ctx, curve0, curve1, len0, len1) {\n var i;\n\n if (!len0 || !len1) {\n return;\n }\n\n // building first area curve (normal)\n ctx.moveTo(curve0[0].x, curve0[0].y);\n for (i = 1; i < len0; ++i) {\n helpers.canvas.lineTo(ctx, curve0[i - 1], curve0[i]);\n }\n\n // joining the two area curves\n ctx.lineTo(curve1[len1 - 1].x, curve1[len1 - 1].y);\n\n // building opposite area curve (reverse)\n for (i = len1 - 1; i > 0; --i) {\n helpers.canvas.lineTo(ctx, curve1[i], curve1[i - 1], true);\n }\n }\n\n function doFill(ctx, points, mapper, view, color, loop) {\n var count = points.length;\n var span = view.spanGaps;\n var curve0 = [];\n var curve1 = [];\n var len0 = 0;\n var len1 = 0;\n var i, ilen, index, p0, p1, d0, d1;\n\n ctx.beginPath();\n\n for (i = 0, ilen = (count + !!loop); i < ilen; ++i) {\n index = i % count;\n p0 = points[index]._view;\n p1 = mapper(p0, index, view);\n d0 = isDrawable(p0);\n d1 = isDrawable(p1);\n\n if (d0 && d1) {\n len0 = curve0.push(p0);\n len1 = curve1.push(p1);\n } else if (len0 && len1) {\n if (!span) {\n drawArea(ctx, curve0, curve1, len0, len1);\n len0 = len1 = 0;\n curve0 = [];\n curve1 = [];\n } else {\n if (d0) {\n curve0.push(p0);\n }\n if (d1) {\n curve1.push(p1);\n }\n }\n }\n }\n\n drawArea(ctx, curve0, curve1, len0, len1);\n\n ctx.closePath();\n ctx.fillStyle = color;\n ctx.fill();\n }\n\n return {\n id: 'filler',\n\n afterDatasetsUpdate: function(chart, options) {\n var count = (chart.data.datasets || []).length;\n var propagate = options.propagate;\n var sources = [];\n var meta, i, el, source;\n\n for (i = 0; i < count; ++i) {\n meta = chart.getDatasetMeta(i);\n el = meta.dataset;\n source = null;\n\n if (el && el._model && el instanceof elements.Line) {\n source = {\n visible: chart.isDatasetVisible(i),\n fill: decodeFill(el, i, count),\n chart: chart,\n el: el\n };\n }\n\n meta.$filler = source;\n sources.push(source);\n }\n\n for (i = 0; i < count; ++i) {\n source = sources[i];\n if (!source) {\n continue;\n }\n\n source.fill = resolveTarget(sources, i, propagate);\n source.boundary = computeBoundary(source);\n source.mapper = createMapper(source);\n }\n },\n\n beforeDatasetDraw: function(chart, args) {\n var meta = args.meta.$filler;\n if (!meta) {\n return;\n }\n\n var ctx = chart.ctx;\n var el = meta.el;\n var view = el._view;\n var points = el._children || [];\n var mapper = meta.mapper;\n var color = view.backgroundColor || defaults.global.defaultColor;\n\n if (mapper && color && points.length) {\n helpers.canvas.clipArea(ctx, chart.chartArea);\n doFill(ctx, points, mapper, view, color, el._loop);\n helpers.canvas.unclipArea(ctx);\n }\n }\n };\n };\n\n},{\"25\":25,\"40\":40,\"45\":45}],50:[function(require,module,exports){\n 'use strict';\n\n var defaults = require(25);\n var Element = require(26);\n var helpers = require(45);\n\n defaults._set('global', {\n legend: {\n display: true,\n position: 'top',\n fullWidth: true,\n reverse: false,\n weight: 1000,\n\n // a callback that will handle\n onClick: function(e, legendItem) {\n var index = legendItem.datasetIndex;\n var ci = this.chart;\n var meta = ci.getDatasetMeta(index);\n\n // See controller.isDatasetVisible comment\n meta.hidden = meta.hidden === null ? !ci.data.datasets[index].hidden : null;\n\n // We hid a dataset ... rerender the chart\n ci.update();\n },\n\n onHover: null,\n\n labels: {\n boxWidth: 40,\n padding: 10,\n // Generates labels shown in the legend\n // Valid properties to return:\n // text : text to display\n // fillStyle : fill of coloured box\n // strokeStyle: stroke of coloured box\n // hidden : if this legend item refers to a hidden item\n // lineCap : cap style for line\n // lineDash\n // lineDashOffset :\n // lineJoin :\n // lineWidth :\n generateLabels: function(chart) {\n var data = chart.data;\n return helpers.isArray(data.datasets) ? data.datasets.map(function(dataset, i) {\n return {\n text: dataset.label,\n fillStyle: (!helpers.isArray(dataset.backgroundColor) ? dataset.backgroundColor : dataset.backgroundColor[0]),\n hidden: !chart.isDatasetVisible(i),\n lineCap: dataset.borderCapStyle,\n lineDash: dataset.borderDash,\n lineDashOffset: dataset.borderDashOffset,\n lineJoin: dataset.borderJoinStyle,\n lineWidth: dataset.borderWidth,\n strokeStyle: dataset.borderColor,\n pointStyle: dataset.pointStyle,\n\n // Below is extra data used for toggling the datasets\n datasetIndex: i\n };\n }, this) : [];\n }\n }\n },\n\n legendCallback: function(chart) {\n var text = [];\n text.push('
    ');\n for (var i = 0; i < chart.data.datasets.length; i++) {\n text.push('
  • ');\n if (chart.data.datasets[i].label) {\n text.push(chart.data.datasets[i].label);\n }\n text.push('
  • ');\n }\n text.push('
');\n return text.join('');\n }\n });\n\n module.exports = function(Chart) {\n\n var layout = Chart.layoutService;\n var noop = helpers.noop;\n\n /**\n * Helper function to get the box width based on the usePointStyle option\n * @param labelopts {Object} the label options on the legend\n * @param fontSize {Number} the label font size\n * @return {Number} width of the color box area\n */\n function getBoxWidth(labelOpts, fontSize) {\n return labelOpts.usePointStyle ?\n fontSize * Math.SQRT2 :\n labelOpts.boxWidth;\n }\n\n Chart.Legend = Element.extend({\n\n initialize: function(config) {\n helpers.extend(this, config);\n\n // Contains hit boxes for each dataset (in dataset order)\n this.legendHitBoxes = [];\n\n // Are we in doughnut mode which has a different data type\n this.doughnutMode = false;\n },\n\n // These methods are ordered by lifecycle. Utilities then follow.\n // Any function defined here is inherited by all legend types.\n // Any function can be extended by the legend type\n\n beforeUpdate: noop,\n update: function(maxWidth, maxHeight, margins) {\n var me = this;\n\n // Update Lifecycle - Probably don't want to ever extend or overwrite this function ;)\n me.beforeUpdate();\n\n // Absorb the master measurements\n me.maxWidth = maxWidth;\n me.maxHeight = maxHeight;\n me.margins = margins;\n\n // Dimensions\n me.beforeSetDimensions();\n me.setDimensions();\n me.afterSetDimensions();\n // Labels\n me.beforeBuildLabels();\n me.buildLabels();\n me.afterBuildLabels();\n\n // Fit\n me.beforeFit();\n me.fit();\n me.afterFit();\n //\n me.afterUpdate();\n\n return me.minSize;\n },\n afterUpdate: noop,\n\n //\n\n beforeSetDimensions: noop,\n setDimensions: function() {\n var me = this;\n // Set the unconstrained dimension before label rotation\n if (me.isHorizontal()) {\n // Reset position before calculating rotation\n me.width = me.maxWidth;\n me.left = 0;\n me.right = me.width;\n } else {\n me.height = me.maxHeight;\n\n // Reset position before calculating rotation\n me.top = 0;\n me.bottom = me.height;\n }\n\n // Reset padding\n me.paddingLeft = 0;\n me.paddingTop = 0;\n me.paddingRight = 0;\n me.paddingBottom = 0;\n\n // Reset minSize\n me.minSize = {\n width: 0,\n height: 0\n };\n },\n afterSetDimensions: noop,\n\n //\n\n beforeBuildLabels: noop,\n buildLabels: function() {\n var me = this;\n var labelOpts = me.options.labels || {};\n var legendItems = helpers.callback(labelOpts.generateLabels, [me.chart], me) || [];\n\n if (labelOpts.filter) {\n legendItems = legendItems.filter(function(item) {\n return labelOpts.filter(item, me.chart.data);\n });\n }\n\n if (me.options.reverse) {\n legendItems.reverse();\n }\n\n me.legendItems = legendItems;\n },\n afterBuildLabels: noop,\n\n //\n\n beforeFit: noop,\n fit: function() {\n var me = this;\n var opts = me.options;\n var labelOpts = opts.labels;\n var display = opts.display;\n\n var ctx = me.ctx;\n\n var globalDefault = defaults.global;\n var valueOrDefault = helpers.valueOrDefault;\n var fontSize = valueOrDefault(labelOpts.fontSize, globalDefault.defaultFontSize);\n var fontStyle = valueOrDefault(labelOpts.fontStyle, globalDefault.defaultFontStyle);\n var fontFamily = valueOrDefault(labelOpts.fontFamily, globalDefault.defaultFontFamily);\n var labelFont = helpers.fontString(fontSize, fontStyle, fontFamily);\n\n // Reset hit boxes\n var hitboxes = me.legendHitBoxes = [];\n\n var minSize = me.minSize;\n var isHorizontal = me.isHorizontal();\n\n if (isHorizontal) {\n minSize.width = me.maxWidth; // fill all the width\n minSize.height = display ? 10 : 0;\n } else {\n minSize.width = display ? 10 : 0;\n minSize.height = me.maxHeight; // fill all the height\n }\n\n // Increase sizes here\n if (display) {\n ctx.font = labelFont;\n\n if (isHorizontal) {\n // Labels\n\n // Width of each line of legend boxes. Labels wrap onto multiple lines when there are too many to fit on one\n var lineWidths = me.lineWidths = [0];\n var totalHeight = me.legendItems.length ? fontSize + (labelOpts.padding) : 0;\n\n ctx.textAlign = 'left';\n ctx.textBaseline = 'top';\n\n helpers.each(me.legendItems, function(legendItem, i) {\n var boxWidth = getBoxWidth(labelOpts, fontSize);\n var width = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n\n if (lineWidths[lineWidths.length - 1] + width + labelOpts.padding >= me.width) {\n totalHeight += fontSize + (labelOpts.padding);\n lineWidths[lineWidths.length] = me.left;\n }\n\n // Store the hitbox width and height here. Final position will be updated in `draw`\n hitboxes[i] = {\n left: 0,\n top: 0,\n width: width,\n height: fontSize\n };\n\n lineWidths[lineWidths.length - 1] += width + labelOpts.padding;\n });\n\n minSize.height += totalHeight;\n\n } else {\n var vPadding = labelOpts.padding;\n var columnWidths = me.columnWidths = [];\n var totalWidth = labelOpts.padding;\n var currentColWidth = 0;\n var currentColHeight = 0;\n var itemHeight = fontSize + vPadding;\n\n helpers.each(me.legendItems, function(legendItem, i) {\n var boxWidth = getBoxWidth(labelOpts, fontSize);\n var itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n\n // If too tall, go to new column\n if (currentColHeight + itemHeight > minSize.height) {\n totalWidth += currentColWidth + labelOpts.padding;\n columnWidths.push(currentColWidth); // previous column width\n\n currentColWidth = 0;\n currentColHeight = 0;\n }\n\n // Get max width\n currentColWidth = Math.max(currentColWidth, itemWidth);\n currentColHeight += itemHeight;\n\n // Store the hitbox width and height here. Final position will be updated in `draw`\n hitboxes[i] = {\n left: 0,\n top: 0,\n width: itemWidth,\n height: fontSize\n };\n });\n\n totalWidth += currentColWidth;\n columnWidths.push(currentColWidth);\n minSize.width += totalWidth;\n }\n }\n\n me.width = minSize.width;\n me.height = minSize.height;\n },\n afterFit: noop,\n\n // Shared Methods\n isHorizontal: function() {\n return this.options.position === 'top' || this.options.position === 'bottom';\n },\n\n // Actually draw the legend on the canvas\n draw: function() {\n var me = this;\n var opts = me.options;\n var labelOpts = opts.labels;\n var globalDefault = defaults.global;\n var lineDefault = globalDefault.elements.line;\n var legendWidth = me.width;\n var lineWidths = me.lineWidths;\n\n if (opts.display) {\n var ctx = me.ctx;\n var valueOrDefault = helpers.valueOrDefault;\n var fontColor = valueOrDefault(labelOpts.fontColor, globalDefault.defaultFontColor);\n var fontSize = valueOrDefault(labelOpts.fontSize, globalDefault.defaultFontSize);\n var fontStyle = valueOrDefault(labelOpts.fontStyle, globalDefault.defaultFontStyle);\n var fontFamily = valueOrDefault(labelOpts.fontFamily, globalDefault.defaultFontFamily);\n var labelFont = helpers.fontString(fontSize, fontStyle, fontFamily);\n var cursor;\n\n // Canvas setup\n ctx.textAlign = 'left';\n ctx.textBaseline = 'middle';\n ctx.lineWidth = 0.5;\n ctx.strokeStyle = fontColor; // for strikethrough effect\n ctx.fillStyle = fontColor; // render in correct colour\n ctx.font = labelFont;\n\n var boxWidth = getBoxWidth(labelOpts, fontSize);\n var hitboxes = me.legendHitBoxes;\n\n // current position\n var drawLegendBox = function(x, y, legendItem) {\n if (isNaN(boxWidth) || boxWidth <= 0) {\n return;\n }\n\n // Set the ctx for the box\n ctx.save();\n\n ctx.fillStyle = valueOrDefault(legendItem.fillStyle, globalDefault.defaultColor);\n ctx.lineCap = valueOrDefault(legendItem.lineCap, lineDefault.borderCapStyle);\n ctx.lineDashOffset = valueOrDefault(legendItem.lineDashOffset, lineDefault.borderDashOffset);\n ctx.lineJoin = valueOrDefault(legendItem.lineJoin, lineDefault.borderJoinStyle);\n ctx.lineWidth = valueOrDefault(legendItem.lineWidth, lineDefault.borderWidth);\n ctx.strokeStyle = valueOrDefault(legendItem.strokeStyle, globalDefault.defaultColor);\n var isLineWidthZero = (valueOrDefault(legendItem.lineWidth, lineDefault.borderWidth) === 0);\n\n if (ctx.setLineDash) {\n // IE 9 and 10 do not support line dash\n ctx.setLineDash(valueOrDefault(legendItem.lineDash, lineDefault.borderDash));\n }\n\n if (opts.labels && opts.labels.usePointStyle) {\n // Recalculate x and y for drawPoint() because its expecting\n // x and y to be center of figure (instead of top left)\n var radius = fontSize * Math.SQRT2 / 2;\n var offSet = radius / Math.SQRT2;\n var centerX = x + offSet;\n var centerY = y + offSet;\n\n // Draw pointStyle as legend symbol\n helpers.canvas.drawPoint(ctx, legendItem.pointStyle, radius, centerX, centerY);\n } else {\n // Draw box as legend symbol\n if (!isLineWidthZero) {\n ctx.strokeRect(x, y, boxWidth, fontSize);\n }\n ctx.fillRect(x, y, boxWidth, fontSize);\n }\n\n ctx.restore();\n };\n var fillText = function(x, y, legendItem, textWidth) {\n var halfFontSize = fontSize / 2;\n var xLeft = boxWidth + halfFontSize + x;\n var yMiddle = y + halfFontSize;\n\n ctx.fillText(legendItem.text, xLeft, yMiddle);\n\n if (legendItem.hidden) {\n // Strikethrough the text if hidden\n ctx.beginPath();\n ctx.lineWidth = 2;\n ctx.moveTo(xLeft, yMiddle);\n ctx.lineTo(xLeft + textWidth, yMiddle);\n ctx.stroke();\n }\n };\n\n // Horizontal\n var isHorizontal = me.isHorizontal();\n if (isHorizontal) {\n cursor = {\n x: me.left + ((legendWidth - lineWidths[0]) / 2),\n y: me.top + labelOpts.padding,\n line: 0\n };\n } else {\n cursor = {\n x: me.left + labelOpts.padding,\n y: me.top + labelOpts.padding,\n line: 0\n };\n }\n\n var itemHeight = fontSize + labelOpts.padding;\n helpers.each(me.legendItems, function(legendItem, i) {\n var textWidth = ctx.measureText(legendItem.text).width;\n var width = boxWidth + (fontSize / 2) + textWidth;\n var x = cursor.x;\n var y = cursor.y;\n\n if (isHorizontal) {\n if (x + width >= legendWidth) {\n y = cursor.y += itemHeight;\n cursor.line++;\n x = cursor.x = me.left + ((legendWidth - lineWidths[cursor.line]) / 2);\n }\n } else if (y + itemHeight > me.bottom) {\n x = cursor.x = x + me.columnWidths[cursor.line] + labelOpts.padding;\n y = cursor.y = me.top + labelOpts.padding;\n cursor.line++;\n }\n\n drawLegendBox(x, y, legendItem);\n\n hitboxes[i].left = x;\n hitboxes[i].top = y;\n\n // Fill the actual label\n fillText(x, y, legendItem, textWidth);\n\n if (isHorizontal) {\n cursor.x += width + (labelOpts.padding);\n } else {\n cursor.y += itemHeight;\n }\n\n });\n }\n },\n\n /**\n * Handle an event\n * @private\n * @param {IEvent} event - The event to handle\n * @return {Boolean} true if a change occured\n */\n handleEvent: function(e) {\n var me = this;\n var opts = me.options;\n var type = e.type === 'mouseup' ? 'click' : e.type;\n var changed = false;\n\n if (type === 'mousemove') {\n if (!opts.onHover) {\n return;\n }\n } else if (type === 'click') {\n if (!opts.onClick) {\n return;\n }\n } else {\n return;\n }\n\n // Chart event already has relative position in it\n var x = e.x;\n var y = e.y;\n\n if (x >= me.left && x <= me.right && y >= me.top && y <= me.bottom) {\n // See if we are touching one of the dataset boxes\n var lh = me.legendHitBoxes;\n for (var i = 0; i < lh.length; ++i) {\n var hitBox = lh[i];\n\n if (x >= hitBox.left && x <= hitBox.left + hitBox.width && y >= hitBox.top && y <= hitBox.top + hitBox.height) {\n // Touching an element\n if (type === 'click') {\n // use e.native for backwards compatibility\n opts.onClick.call(me, e.native, me.legendItems[i]);\n changed = true;\n break;\n } else if (type === 'mousemove') {\n // use e.native for backwards compatibility\n opts.onHover.call(me, e.native, me.legendItems[i]);\n changed = true;\n break;\n }\n }\n }\n }\n\n return changed;\n }\n });\n\n function createNewLegendAndAttach(chart, legendOpts) {\n var legend = new Chart.Legend({\n ctx: chart.ctx,\n options: legendOpts,\n chart: chart\n });\n\n layout.configure(chart, legend, legendOpts);\n layout.addBox(chart, legend);\n chart.legend = legend;\n }\n\n return {\n id: 'legend',\n\n beforeInit: function(chart) {\n var legendOpts = chart.options.legend;\n\n if (legendOpts) {\n createNewLegendAndAttach(chart, legendOpts);\n }\n },\n\n beforeUpdate: function(chart) {\n var legendOpts = chart.options.legend;\n var legend = chart.legend;\n\n if (legendOpts) {\n helpers.mergeIf(legendOpts, defaults.global.legend);\n\n if (legend) {\n layout.configure(chart, legend, legendOpts);\n legend.options = legendOpts;\n } else {\n createNewLegendAndAttach(chart, legendOpts);\n }\n } else if (legend) {\n layout.removeBox(chart, legend);\n delete chart.legend;\n }\n },\n\n afterEvent: function(chart, e) {\n var legend = chart.legend;\n if (legend) {\n legend.handleEvent(e);\n }\n }\n };\n };\n\n},{\"25\":25,\"26\":26,\"45\":45}],51:[function(require,module,exports){\n 'use strict';\n\n var defaults = require(25);\n var Element = require(26);\n var helpers = require(45);\n\n defaults._set('global', {\n title: {\n display: false,\n fontStyle: 'bold',\n fullWidth: true,\n lineHeight: 1.2,\n padding: 10,\n position: 'top',\n text: '',\n weight: 2000 // by default greater than legend (1000) to be above\n }\n });\n\n module.exports = function(Chart) {\n\n var layout = Chart.layoutService;\n var noop = helpers.noop;\n\n Chart.Title = Element.extend({\n initialize: function(config) {\n var me = this;\n helpers.extend(me, config);\n\n // Contains hit boxes for each dataset (in dataset order)\n me.legendHitBoxes = [];\n },\n\n // These methods are ordered by lifecycle. Utilities then follow.\n\n beforeUpdate: noop,\n update: function(maxWidth, maxHeight, margins) {\n var me = this;\n\n // Update Lifecycle - Probably don't want to ever extend or overwrite this function ;)\n me.beforeUpdate();\n\n // Absorb the master measurements\n me.maxWidth = maxWidth;\n me.maxHeight = maxHeight;\n me.margins = margins;\n\n // Dimensions\n me.beforeSetDimensions();\n me.setDimensions();\n me.afterSetDimensions();\n // Labels\n me.beforeBuildLabels();\n me.buildLabels();\n me.afterBuildLabels();\n\n // Fit\n me.beforeFit();\n me.fit();\n me.afterFit();\n //\n me.afterUpdate();\n\n return me.minSize;\n\n },\n afterUpdate: noop,\n\n //\n\n beforeSetDimensions: noop,\n setDimensions: function() {\n var me = this;\n // Set the unconstrained dimension before label rotation\n if (me.isHorizontal()) {\n // Reset position before calculating rotation\n me.width = me.maxWidth;\n me.left = 0;\n me.right = me.width;\n } else {\n me.height = me.maxHeight;\n\n // Reset position before calculating rotation\n me.top = 0;\n me.bottom = me.height;\n }\n\n // Reset padding\n me.paddingLeft = 0;\n me.paddingTop = 0;\n me.paddingRight = 0;\n me.paddingBottom = 0;\n\n // Reset minSize\n me.minSize = {\n width: 0,\n height: 0\n };\n },\n afterSetDimensions: noop,\n\n //\n\n beforeBuildLabels: noop,\n buildLabels: noop,\n afterBuildLabels: noop,\n\n //\n\n beforeFit: noop,\n fit: function() {\n var me = this;\n var valueOrDefault = helpers.valueOrDefault;\n var opts = me.options;\n var display = opts.display;\n var fontSize = valueOrDefault(opts.fontSize, defaults.global.defaultFontSize);\n var minSize = me.minSize;\n var lineCount = helpers.isArray(opts.text) ? opts.text.length : 1;\n var lineHeight = helpers.options.toLineHeight(opts.lineHeight, fontSize);\n var textSize = display ? (lineCount * lineHeight) + (opts.padding * 2) : 0;\n\n if (me.isHorizontal()) {\n minSize.width = me.maxWidth; // fill all the width\n minSize.height = textSize;\n } else {\n minSize.width = textSize;\n minSize.height = me.maxHeight; // fill all the height\n }\n\n me.width = minSize.width;\n me.height = minSize.height;\n\n },\n afterFit: noop,\n\n // Shared Methods\n isHorizontal: function() {\n var pos = this.options.position;\n return pos === 'top' || pos === 'bottom';\n },\n\n // Actually draw the title block on the canvas\n draw: function() {\n var me = this;\n var ctx = me.ctx;\n var valueOrDefault = helpers.valueOrDefault;\n var opts = me.options;\n var globalDefaults = defaults.global;\n\n if (opts.display) {\n var fontSize = valueOrDefault(opts.fontSize, globalDefaults.defaultFontSize);\n var fontStyle = valueOrDefault(opts.fontStyle, globalDefaults.defaultFontStyle);\n var fontFamily = valueOrDefault(opts.fontFamily, globalDefaults.defaultFontFamily);\n var titleFont = helpers.fontString(fontSize, fontStyle, fontFamily);\n var lineHeight = helpers.options.toLineHeight(opts.lineHeight, fontSize);\n var offset = lineHeight / 2 + opts.padding;\n var rotation = 0;\n var top = me.top;\n var left = me.left;\n var bottom = me.bottom;\n var right = me.right;\n var maxWidth, titleX, titleY;\n\n ctx.fillStyle = valueOrDefault(opts.fontColor, globalDefaults.defaultFontColor); // render in correct colour\n ctx.font = titleFont;\n\n // Horizontal\n if (me.isHorizontal()) {\n titleX = left + ((right - left) / 2); // midpoint of the width\n titleY = top + offset;\n maxWidth = right - left;\n } else {\n titleX = opts.position === 'left' ? left + offset : right - offset;\n titleY = top + ((bottom - top) / 2);\n maxWidth = bottom - top;\n rotation = Math.PI * (opts.position === 'left' ? -0.5 : 0.5);\n }\n\n ctx.save();\n ctx.translate(titleX, titleY);\n ctx.rotate(rotation);\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n\n var text = opts.text;\n if (helpers.isArray(text)) {\n var y = 0;\n for (var i = 0; i < text.length; ++i) {\n ctx.fillText(text[i], 0, y, maxWidth);\n y += lineHeight;\n }\n } else {\n ctx.fillText(text, 0, 0, maxWidth);\n }\n\n ctx.restore();\n }\n }\n });\n\n function createNewTitleBlockAndAttach(chart, titleOpts) {\n var title = new Chart.Title({\n ctx: chart.ctx,\n options: titleOpts,\n chart: chart\n });\n\n layout.configure(chart, title, titleOpts);\n layout.addBox(chart, title);\n chart.titleBlock = title;\n }\n\n return {\n id: 'title',\n\n beforeInit: function(chart) {\n var titleOpts = chart.options.title;\n\n if (titleOpts) {\n createNewTitleBlockAndAttach(chart, titleOpts);\n }\n },\n\n beforeUpdate: function(chart) {\n var titleOpts = chart.options.title;\n var titleBlock = chart.titleBlock;\n\n if (titleOpts) {\n helpers.mergeIf(titleOpts, defaults.global.title);\n\n if (titleBlock) {\n layout.configure(chart, titleBlock, titleOpts);\n titleBlock.options = titleOpts;\n } else {\n createNewTitleBlockAndAttach(chart, titleOpts);\n }\n } else if (titleBlock) {\n Chart.layoutService.removeBox(chart, titleBlock);\n delete chart.titleBlock;\n }\n }\n };\n };\n\n},{\"25\":25,\"26\":26,\"45\":45}],52:[function(require,module,exports){\n 'use strict';\n\n module.exports = function(Chart) {\n\n // Default config for a category scale\n var defaultConfig = {\n position: 'bottom'\n };\n\n var DatasetScale = Chart.Scale.extend({\n /**\n * Internal function to get the correct labels. If data.xLabels or data.yLabels are defined, use those\n * else fall back to data.labels\n * @private\n */\n getLabels: function() {\n var data = this.chart.data;\n return this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels;\n },\n\n determineDataLimits: function() {\n var me = this;\n var labels = me.getLabels();\n me.minIndex = 0;\n me.maxIndex = labels.length - 1;\n var findIndex;\n\n if (me.options.ticks.min !== undefined) {\n // user specified min value\n findIndex = labels.indexOf(me.options.ticks.min);\n me.minIndex = findIndex !== -1 ? findIndex : me.minIndex;\n }\n\n if (me.options.ticks.max !== undefined) {\n // user specified max value\n findIndex = labels.indexOf(me.options.ticks.max);\n me.maxIndex = findIndex !== -1 ? findIndex : me.maxIndex;\n }\n\n me.min = labels[me.minIndex];\n me.max = labels[me.maxIndex];\n },\n\n buildTicks: function() {\n var me = this;\n var labels = me.getLabels();\n // If we are viewing some subset of labels, slice the original array\n me.ticks = (me.minIndex === 0 && me.maxIndex === labels.length - 1) ? labels : labels.slice(me.minIndex, me.maxIndex + 1);\n },\n\n getLabelForIndex: function(index, datasetIndex) {\n var me = this;\n var data = me.chart.data;\n var isHorizontal = me.isHorizontal();\n\n if (data.yLabels && !isHorizontal) {\n return me.getRightValue(data.datasets[datasetIndex].data[index]);\n }\n return me.ticks[index - me.minIndex];\n },\n\n // Used to get data value locations. Value can either be an index or a numerical value\n getPixelForValue: function(value, index) {\n var me = this;\n var offset = me.options.offset;\n // 1 is added because we need the length but we have the indexes\n var offsetAmt = Math.max((me.maxIndex + 1 - me.minIndex - (offset ? 0 : 1)), 1);\n\n // If value is a data object, then index is the index in the data array,\n // not the index of the scale. We need to change that.\n var valueCategory;\n if (value !== undefined && value !== null) {\n valueCategory = me.isHorizontal() ? value.x : value.y;\n }\n if (valueCategory !== undefined || (value !== undefined && isNaN(index))) {\n var labels = me.getLabels();\n value = valueCategory || value;\n var idx = labels.indexOf(value);\n index = idx !== -1 ? idx : index;\n }\n\n if (me.isHorizontal()) {\n var valueWidth = me.width / offsetAmt;\n var widthOffset = (valueWidth * (index - me.minIndex));\n\n if (offset) {\n widthOffset += (valueWidth / 2);\n }\n\n return me.left + Math.round(widthOffset);\n }\n var valueHeight = me.height / offsetAmt;\n var heightOffset = (valueHeight * (index - me.minIndex));\n\n if (offset) {\n heightOffset += (valueHeight / 2);\n }\n\n return me.top + Math.round(heightOffset);\n },\n getPixelForTick: function(index) {\n return this.getPixelForValue(this.ticks[index], index + this.minIndex, null);\n },\n getValueForPixel: function(pixel) {\n var me = this;\n var offset = me.options.offset;\n var value;\n var offsetAmt = Math.max((me._ticks.length - (offset ? 0 : 1)), 1);\n var horz = me.isHorizontal();\n var valueDimension = (horz ? me.width : me.height) / offsetAmt;\n\n pixel -= horz ? me.left : me.top;\n\n if (offset) {\n pixel -= (valueDimension / 2);\n }\n\n if (pixel <= 0) {\n value = 0;\n } else {\n value = Math.round(pixel / valueDimension);\n }\n\n return value + me.minIndex;\n },\n getBasePixel: function() {\n return this.bottom;\n }\n });\n\n Chart.scaleService.registerScaleType('category', DatasetScale, defaultConfig);\n\n };\n\n},{}],53:[function(require,module,exports){\n 'use strict';\n\n var defaults = require(25);\n var helpers = require(45);\n var Ticks = require(34);\n\n module.exports = function(Chart) {\n\n var defaultConfig = {\n position: 'left',\n ticks: {\n callback: Ticks.formatters.linear\n }\n };\n\n var LinearScale = Chart.LinearScaleBase.extend({\n\n determineDataLimits: function() {\n var me = this;\n var opts = me.options;\n var chart = me.chart;\n var data = chart.data;\n var datasets = data.datasets;\n var isHorizontal = me.isHorizontal();\n var DEFAULT_MIN = 0;\n var DEFAULT_MAX = 1;\n\n function IDMatches(meta) {\n return isHorizontal ? meta.xAxisID === me.id : meta.yAxisID === me.id;\n }\n\n // First Calculate the range\n me.min = null;\n me.max = null;\n\n var hasStacks = opts.stacked;\n if (hasStacks === undefined) {\n helpers.each(datasets, function(dataset, datasetIndex) {\n if (hasStacks) {\n return;\n }\n\n var meta = chart.getDatasetMeta(datasetIndex);\n if (chart.isDatasetVisible(datasetIndex) && IDMatches(meta) &&\n meta.stack !== undefined) {\n hasStacks = true;\n }\n });\n }\n\n if (opts.stacked || hasStacks) {\n var valuesPerStack = {};\n\n helpers.each(datasets, function(dataset, datasetIndex) {\n var meta = chart.getDatasetMeta(datasetIndex);\n var key = [\n meta.type,\n // we have a separate stack for stack=undefined datasets when the opts.stacked is undefined\n ((opts.stacked === undefined && meta.stack === undefined) ? datasetIndex : ''),\n meta.stack\n ].join('.');\n\n if (valuesPerStack[key] === undefined) {\n valuesPerStack[key] = {\n positiveValues: [],\n negativeValues: []\n };\n }\n\n // Store these per type\n var positiveValues = valuesPerStack[key].positiveValues;\n var negativeValues = valuesPerStack[key].negativeValues;\n\n if (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) {\n helpers.each(dataset.data, function(rawValue, index) {\n var value = +me.getRightValue(rawValue);\n if (isNaN(value) || meta.data[index].hidden) {\n return;\n }\n\n positiveValues[index] = positiveValues[index] || 0;\n negativeValues[index] = negativeValues[index] || 0;\n\n if (opts.relativePoints) {\n positiveValues[index] = 100;\n } else if (value < 0) {\n negativeValues[index] += value;\n } else {\n positiveValues[index] += value;\n }\n });\n }\n });\n\n helpers.each(valuesPerStack, function(valuesForType) {\n var values = valuesForType.positiveValues.concat(valuesForType.negativeValues);\n var minVal = helpers.min(values);\n var maxVal = helpers.max(values);\n me.min = me.min === null ? minVal : Math.min(me.min, minVal);\n me.max = me.max === null ? maxVal : Math.max(me.max, maxVal);\n });\n\n } else {\n helpers.each(datasets, function(dataset, datasetIndex) {\n var meta = chart.getDatasetMeta(datasetIndex);\n if (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) {\n helpers.each(dataset.data, function(rawValue, index) {\n var value = +me.getRightValue(rawValue);\n if (isNaN(value) || meta.data[index].hidden) {\n return;\n }\n\n if (me.min === null) {\n me.min = value;\n } else if (value < me.min) {\n me.min = value;\n }\n\n if (me.max === null) {\n me.max = value;\n } else if (value > me.max) {\n me.max = value;\n }\n });\n }\n });\n }\n\n me.min = isFinite(me.min) && !isNaN(me.min) ? me.min : DEFAULT_MIN;\n me.max = isFinite(me.max) && !isNaN(me.max) ? me.max : DEFAULT_MAX;\n\n // Common base implementation to handle ticks.min, ticks.max, ticks.beginAtZero\n this.handleTickRangeOptions();\n },\n getTickLimit: function() {\n var maxTicks;\n var me = this;\n var tickOpts = me.options.ticks;\n\n if (me.isHorizontal()) {\n maxTicks = Math.min(tickOpts.maxTicksLimit ? tickOpts.maxTicksLimit : 11, Math.ceil(me.width / 50));\n } else {\n // The factor of 2 used to scale the font size has been experimentally determined.\n var tickFontSize = helpers.valueOrDefault(tickOpts.fontSize, defaults.global.defaultFontSize);\n maxTicks = Math.min(tickOpts.maxTicksLimit ? tickOpts.maxTicksLimit : 11, Math.ceil(me.height / (2 * tickFontSize)));\n }\n\n return maxTicks;\n },\n // Called after the ticks are built. We need\n handleDirectionalChanges: function() {\n if (!this.isHorizontal()) {\n // We are in a vertical orientation. The top value is the highest. So reverse the array\n this.ticks.reverse();\n }\n },\n getLabelForIndex: function(index, datasetIndex) {\n return +this.getRightValue(this.chart.data.datasets[datasetIndex].data[index]);\n },\n // Utils\n getPixelForValue: function(value) {\n // This must be called after fit has been run so that\n // this.left, this.top, this.right, and this.bottom have been defined\n var me = this;\n var start = me.start;\n\n var rightValue = +me.getRightValue(value);\n var pixel;\n var range = me.end - start;\n\n if (me.isHorizontal()) {\n pixel = me.left + (me.width / range * (rightValue - start));\n return Math.round(pixel);\n }\n\n pixel = me.bottom - (me.height / range * (rightValue - start));\n return Math.round(pixel);\n },\n getValueForPixel: function(pixel) {\n var me = this;\n var isHorizontal = me.isHorizontal();\n var innerDimension = isHorizontal ? me.width : me.height;\n var offset = (isHorizontal ? pixel - me.left : me.bottom - pixel) / innerDimension;\n return me.start + ((me.end - me.start) * offset);\n },\n getPixelForTick: function(index) {\n return this.getPixelForValue(this.ticksAsNumbers[index]);\n }\n });\n Chart.scaleService.registerScaleType('linear', LinearScale, defaultConfig);\n\n };\n\n},{\"25\":25,\"34\":34,\"45\":45}],54:[function(require,module,exports){\n 'use strict';\n\n var helpers = require(45);\n var Ticks = require(34);\n\n module.exports = function(Chart) {\n\n var noop = helpers.noop;\n\n Chart.LinearScaleBase = Chart.Scale.extend({\n getRightValue: function(value) {\n if (typeof value === 'string') {\n return +value;\n }\n return Chart.Scale.prototype.getRightValue.call(this, value);\n },\n\n handleTickRangeOptions: function() {\n var me = this;\n var opts = me.options;\n var tickOpts = opts.ticks;\n\n // If we are forcing it to begin at 0, but 0 will already be rendered on the chart,\n // do nothing since that would make the chart weird. If the user really wants a weird chart\n // axis, they can manually override it\n if (tickOpts.beginAtZero) {\n var minSign = helpers.sign(me.min);\n var maxSign = helpers.sign(me.max);\n\n if (minSign < 0 && maxSign < 0) {\n // move the top up to 0\n me.max = 0;\n } else if (minSign > 0 && maxSign > 0) {\n // move the bottom down to 0\n me.min = 0;\n }\n }\n\n var setMin = tickOpts.min !== undefined || tickOpts.suggestedMin !== undefined;\n var setMax = tickOpts.max !== undefined || tickOpts.suggestedMax !== undefined;\n\n if (tickOpts.min !== undefined) {\n me.min = tickOpts.min;\n } else if (tickOpts.suggestedMin !== undefined) {\n if (me.min === null) {\n me.min = tickOpts.suggestedMin;\n } else {\n me.min = Math.min(me.min, tickOpts.suggestedMin);\n }\n }\n\n if (tickOpts.max !== undefined) {\n me.max = tickOpts.max;\n } else if (tickOpts.suggestedMax !== undefined) {\n if (me.max === null) {\n me.max = tickOpts.suggestedMax;\n } else {\n me.max = Math.max(me.max, tickOpts.suggestedMax);\n }\n }\n\n if (setMin !== setMax) {\n // We set the min or the max but not both.\n // So ensure that our range is good\n // Inverted or 0 length range can happen when\n // ticks.min is set, and no datasets are visible\n if (me.min >= me.max) {\n if (setMin) {\n me.max = me.min + 1;\n } else {\n me.min = me.max - 1;\n }\n }\n }\n\n if (me.min === me.max) {\n me.max++;\n\n if (!tickOpts.beginAtZero) {\n me.min--;\n }\n }\n },\n getTickLimit: noop,\n handleDirectionalChanges: noop,\n\n buildTicks: function() {\n var me = this;\n var opts = me.options;\n var tickOpts = opts.ticks;\n\n // Figure out what the max number of ticks we can support it is based on the size of\n // the axis area. For now, we say that the minimum tick spacing in pixels must be 50\n // We also limit the maximum number of ticks to 11 which gives a nice 10 squares on\n // the graph. Make sure we always have at least 2 ticks\n var maxTicks = me.getTickLimit();\n maxTicks = Math.max(2, maxTicks);\n\n var numericGeneratorOptions = {\n maxTicks: maxTicks,\n min: tickOpts.min,\n max: tickOpts.max,\n stepSize: helpers.valueOrDefault(tickOpts.fixedStepSize, tickOpts.stepSize)\n };\n var ticks = me.ticks = Ticks.generators.linear(numericGeneratorOptions, me);\n\n me.handleDirectionalChanges();\n\n // At this point, we need to update our max and min given the tick values since we have expanded the\n // range of the scale\n me.max = helpers.max(ticks);\n me.min = helpers.min(ticks);\n\n if (tickOpts.reverse) {\n ticks.reverse();\n\n me.start = me.max;\n me.end = me.min;\n } else {\n me.start = me.min;\n me.end = me.max;\n }\n },\n convertTicksToLabels: function() {\n var me = this;\n me.ticksAsNumbers = me.ticks.slice();\n me.zeroLineIndex = me.ticks.indexOf(0);\n\n Chart.Scale.prototype.convertTicksToLabels.call(me);\n }\n });\n };\n\n},{\"34\":34,\"45\":45}],55:[function(require,module,exports){\n 'use strict';\n\n var helpers = require(45);\n var Ticks = require(34);\n\n module.exports = function(Chart) {\n\n var defaultConfig = {\n position: 'left',\n\n // label settings\n ticks: {\n callback: Ticks.formatters.logarithmic\n }\n };\n\n var LogarithmicScale = Chart.Scale.extend({\n determineDataLimits: function() {\n var me = this;\n var opts = me.options;\n var tickOpts = opts.ticks;\n var chart = me.chart;\n var data = chart.data;\n var datasets = data.datasets;\n var valueOrDefault = helpers.valueOrDefault;\n var isHorizontal = me.isHorizontal();\n function IDMatches(meta) {\n return isHorizontal ? meta.xAxisID === me.id : meta.yAxisID === me.id;\n }\n\n // Calculate Range\n me.min = null;\n me.max = null;\n me.minNotZero = null;\n\n var hasStacks = opts.stacked;\n if (hasStacks === undefined) {\n helpers.each(datasets, function(dataset, datasetIndex) {\n if (hasStacks) {\n return;\n }\n\n var meta = chart.getDatasetMeta(datasetIndex);\n if (chart.isDatasetVisible(datasetIndex) && IDMatches(meta) &&\n meta.stack !== undefined) {\n hasStacks = true;\n }\n });\n }\n\n if (opts.stacked || hasStacks) {\n var valuesPerStack = {};\n\n helpers.each(datasets, function(dataset, datasetIndex) {\n var meta = chart.getDatasetMeta(datasetIndex);\n var key = [\n meta.type,\n // we have a separate stack for stack=undefined datasets when the opts.stacked is undefined\n ((opts.stacked === undefined && meta.stack === undefined) ? datasetIndex : ''),\n meta.stack\n ].join('.');\n\n if (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) {\n if (valuesPerStack[key] === undefined) {\n valuesPerStack[key] = [];\n }\n\n helpers.each(dataset.data, function(rawValue, index) {\n var values = valuesPerStack[key];\n var value = +me.getRightValue(rawValue);\n if (isNaN(value) || meta.data[index].hidden) {\n return;\n }\n\n values[index] = values[index] || 0;\n\n if (opts.relativePoints) {\n values[index] = 100;\n } else {\n // Don't need to split positive and negative since the log scale can't handle a 0 crossing\n values[index] += value;\n }\n });\n }\n });\n\n helpers.each(valuesPerStack, function(valuesForType) {\n var minVal = helpers.min(valuesForType);\n var maxVal = helpers.max(valuesForType);\n me.min = me.min === null ? minVal : Math.min(me.min, minVal);\n me.max = me.max === null ? maxVal : Math.max(me.max, maxVal);\n });\n\n } else {\n helpers.each(datasets, function(dataset, datasetIndex) {\n var meta = chart.getDatasetMeta(datasetIndex);\n if (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) {\n helpers.each(dataset.data, function(rawValue, index) {\n var value = +me.getRightValue(rawValue);\n if (isNaN(value) || meta.data[index].hidden) {\n return;\n }\n\n if (me.min === null) {\n me.min = value;\n } else if (value < me.min) {\n me.min = value;\n }\n\n if (me.max === null) {\n me.max = value;\n } else if (value > me.max) {\n me.max = value;\n }\n\n if (value !== 0 && (me.minNotZero === null || value < me.minNotZero)) {\n me.minNotZero = value;\n }\n });\n }\n });\n }\n\n me.min = valueOrDefault(tickOpts.min, me.min);\n me.max = valueOrDefault(tickOpts.max, me.max);\n\n if (me.min === me.max) {\n if (me.min !== 0 && me.min !== null) {\n me.min = Math.pow(10, Math.floor(helpers.log10(me.min)) - 1);\n me.max = Math.pow(10, Math.floor(helpers.log10(me.max)) + 1);\n } else {\n me.min = 1;\n me.max = 10;\n }\n }\n },\n buildTicks: function() {\n var me = this;\n var opts = me.options;\n var tickOpts = opts.ticks;\n\n var generationOptions = {\n min: tickOpts.min,\n max: tickOpts.max\n };\n var ticks = me.ticks = Ticks.generators.logarithmic(generationOptions, me);\n\n if (!me.isHorizontal()) {\n // We are in a vertical orientation. The top value is the highest. So reverse the array\n ticks.reverse();\n }\n\n // At this point, we need to update our max and min given the tick values since we have expanded the\n // range of the scale\n me.max = helpers.max(ticks);\n me.min = helpers.min(ticks);\n\n if (tickOpts.reverse) {\n ticks.reverse();\n\n me.start = me.max;\n me.end = me.min;\n } else {\n me.start = me.min;\n me.end = me.max;\n }\n },\n convertTicksToLabels: function() {\n this.tickValues = this.ticks.slice();\n\n Chart.Scale.prototype.convertTicksToLabels.call(this);\n },\n // Get the correct tooltip label\n getLabelForIndex: function(index, datasetIndex) {\n return +this.getRightValue(this.chart.data.datasets[datasetIndex].data[index]);\n },\n getPixelForTick: function(index) {\n return this.getPixelForValue(this.tickValues[index]);\n },\n getPixelForValue: function(value) {\n var me = this;\n var start = me.start;\n var newVal = +me.getRightValue(value);\n var opts = me.options;\n var tickOpts = opts.ticks;\n var innerDimension, pixel, range;\n\n if (me.isHorizontal()) {\n range = helpers.log10(me.end) - helpers.log10(start); // todo: if start === 0\n if (newVal === 0) {\n pixel = me.left;\n } else {\n innerDimension = me.width;\n pixel = me.left + (innerDimension / range * (helpers.log10(newVal) - helpers.log10(start)));\n }\n } else {\n // Bottom - top since pixels increase downward on a screen\n innerDimension = me.height;\n if (start === 0 && !tickOpts.reverse) {\n range = helpers.log10(me.end) - helpers.log10(me.minNotZero);\n if (newVal === start) {\n pixel = me.bottom;\n } else if (newVal === me.minNotZero) {\n pixel = me.bottom - innerDimension * 0.02;\n } else {\n pixel = me.bottom - innerDimension * 0.02 - (innerDimension * 0.98 / range * (helpers.log10(newVal) - helpers.log10(me.minNotZero)));\n }\n } else if (me.end === 0 && tickOpts.reverse) {\n range = helpers.log10(me.start) - helpers.log10(me.minNotZero);\n if (newVal === me.end) {\n pixel = me.top;\n } else if (newVal === me.minNotZero) {\n pixel = me.top + innerDimension * 0.02;\n } else {\n pixel = me.top + innerDimension * 0.02 + (innerDimension * 0.98 / range * (helpers.log10(newVal) - helpers.log10(me.minNotZero)));\n }\n } else if (newVal === 0) {\n pixel = tickOpts.reverse ? me.top : me.bottom;\n } else {\n range = helpers.log10(me.end) - helpers.log10(start);\n innerDimension = me.height;\n pixel = me.bottom - (innerDimension / range * (helpers.log10(newVal) - helpers.log10(start)));\n }\n }\n return pixel;\n },\n getValueForPixel: function(pixel) {\n var me = this;\n var range = helpers.log10(me.end) - helpers.log10(me.start);\n var value, innerDimension;\n\n if (me.isHorizontal()) {\n innerDimension = me.width;\n value = me.start * Math.pow(10, (pixel - me.left) * range / innerDimension);\n } else { // todo: if start === 0\n innerDimension = me.height;\n value = Math.pow(10, (me.bottom - pixel) * range / innerDimension) / me.start;\n }\n return value;\n }\n });\n Chart.scaleService.registerScaleType('logarithmic', LogarithmicScale, defaultConfig);\n\n };\n\n},{\"34\":34,\"45\":45}],56:[function(require,module,exports){\n 'use strict';\n\n var defaults = require(25);\n var helpers = require(45);\n var Ticks = require(34);\n\n module.exports = function(Chart) {\n\n var globalDefaults = defaults.global;\n\n var defaultConfig = {\n display: true,\n\n // Boolean - Whether to animate scaling the chart from the centre\n animate: true,\n position: 'chartArea',\n\n angleLines: {\n display: true,\n color: 'rgba(0, 0, 0, 0.1)',\n lineWidth: 1\n },\n\n gridLines: {\n circular: false\n },\n\n // label settings\n ticks: {\n // Boolean - Show a backdrop to the scale label\n showLabelBackdrop: true,\n\n // String - The colour of the label backdrop\n backdropColor: 'rgba(255,255,255,0.75)',\n\n // Number - The backdrop padding above & below the label in pixels\n backdropPaddingY: 2,\n\n // Number - The backdrop padding to the side of the label in pixels\n backdropPaddingX: 2,\n\n callback: Ticks.formatters.linear\n },\n\n pointLabels: {\n // Boolean - if true, show point labels\n display: true,\n\n // Number - Point label font size in pixels\n fontSize: 10,\n\n // Function - Used to convert point labels\n callback: function(label) {\n return label;\n }\n }\n };\n\n function getValueCount(scale) {\n var opts = scale.options;\n return opts.angleLines.display || opts.pointLabels.display ? scale.chart.data.labels.length : 0;\n }\n\n function getPointLabelFontOptions(scale) {\n var pointLabelOptions = scale.options.pointLabels;\n var fontSize = helpers.valueOrDefault(pointLabelOptions.fontSize, globalDefaults.defaultFontSize);\n var fontStyle = helpers.valueOrDefault(pointLabelOptions.fontStyle, globalDefaults.defaultFontStyle);\n var fontFamily = helpers.valueOrDefault(pointLabelOptions.fontFamily, globalDefaults.defaultFontFamily);\n var font = helpers.fontString(fontSize, fontStyle, fontFamily);\n\n return {\n size: fontSize,\n style: fontStyle,\n family: fontFamily,\n font: font\n };\n }\n\n function measureLabelSize(ctx, fontSize, label) {\n if (helpers.isArray(label)) {\n return {\n w: helpers.longestText(ctx, ctx.font, label),\n h: (label.length * fontSize) + ((label.length - 1) * 1.5 * fontSize)\n };\n }\n\n return {\n w: ctx.measureText(label).width,\n h: fontSize\n };\n }\n\n function determineLimits(angle, pos, size, min, max) {\n if (angle === min || angle === max) {\n return {\n start: pos - (size / 2),\n end: pos + (size / 2)\n };\n } else if (angle < min || angle > max) {\n return {\n start: pos - size - 5,\n end: pos\n };\n }\n\n return {\n start: pos,\n end: pos + size + 5\n };\n }\n\n /**\n * Helper function to fit a radial linear scale with point labels\n */\n function fitWithPointLabels(scale) {\n\t\t\t/*\n\t\t\t * Right, this is really confusing and there is a lot of maths going on here\n\t\t\t * The gist of the problem is here: https://gist.github.com/nnnick/696cc9c55f4b0beb8fe9\n\t\t\t *\n\t\t\t * Reaction: https://dl.dropboxusercontent.com/u/34601363/toomuchscience.gif\n\t\t\t *\n\t\t\t * Solution:\n\t\t\t *\n\t\t\t * We assume the radius of the polygon is half the size of the canvas at first\n\t\t\t * at each index we check if the text overlaps.\n\t\t\t *\n\t\t\t * Where it does, we store that angle and that index.\n\t\t\t *\n\t\t\t * After finding the largest index and angle we calculate how much we need to remove\n\t\t\t * from the shape radius to move the point inwards by that x.\n\t\t\t *\n\t\t\t * We average the left and right distances to get the maximum shape radius that can fit in the box\n\t\t\t * along with labels.\n\t\t\t *\n\t\t\t * Once we have that, we can find the centre point for the chart, by taking the x text protrusion\n\t\t\t * on each side, removing that from the size, halving it and adding the left x protrusion width.\n\t\t\t *\n\t\t\t * This will mean we have a shape fitted to the canvas, as large as it can be with the labels\n\t\t\t * and position it in the most space efficient manner\n\t\t\t *\n\t\t\t * https://dl.dropboxusercontent.com/u/34601363/yeahscience.gif\n\t\t\t */\n\n var plFont = getPointLabelFontOptions(scale);\n\n // Get maximum radius of the polygon. Either half the height (minus the text width) or half the width.\n // Use this to calculate the offset + change. - Make sure L/R protrusion is at least 0 to stop issues with centre points\n var largestPossibleRadius = Math.min(scale.height / 2, scale.width / 2);\n var furthestLimits = {\n r: scale.width,\n l: 0,\n t: scale.height,\n b: 0\n };\n var furthestAngles = {};\n var i, textSize, pointPosition;\n\n scale.ctx.font = plFont.font;\n scale._pointLabelSizes = [];\n\n var valueCount = getValueCount(scale);\n for (i = 0; i < valueCount; i++) {\n pointPosition = scale.getPointPosition(i, largestPossibleRadius);\n textSize = measureLabelSize(scale.ctx, plFont.size, scale.pointLabels[i] || '');\n scale._pointLabelSizes[i] = textSize;\n\n // Add quarter circle to make degree 0 mean top of circle\n var angleRadians = scale.getIndexAngle(i);\n var angle = helpers.toDegrees(angleRadians) % 360;\n var hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n var vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n\n if (hLimits.start < furthestLimits.l) {\n furthestLimits.l = hLimits.start;\n furthestAngles.l = angleRadians;\n }\n\n if (hLimits.end > furthestLimits.r) {\n furthestLimits.r = hLimits.end;\n furthestAngles.r = angleRadians;\n }\n\n if (vLimits.start < furthestLimits.t) {\n furthestLimits.t = vLimits.start;\n furthestAngles.t = angleRadians;\n }\n\n if (vLimits.end > furthestLimits.b) {\n furthestLimits.b = vLimits.end;\n furthestAngles.b = angleRadians;\n }\n }\n\n scale.setReductions(largestPossibleRadius, furthestLimits, furthestAngles);\n }\n\n /**\n * Helper function to fit a radial linear scale with no point labels\n */\n function fit(scale) {\n var largestPossibleRadius = Math.min(scale.height / 2, scale.width / 2);\n scale.drawingArea = Math.round(largestPossibleRadius);\n scale.setCenterPoint(0, 0, 0, 0);\n }\n\n function getTextAlignForAngle(angle) {\n if (angle === 0 || angle === 180) {\n return 'center';\n } else if (angle < 180) {\n return 'left';\n }\n\n return 'right';\n }\n\n function fillText(ctx, text, position, fontSize) {\n if (helpers.isArray(text)) {\n var y = position.y;\n var spacing = 1.5 * fontSize;\n\n for (var i = 0; i < text.length; ++i) {\n ctx.fillText(text[i], position.x, y);\n y += spacing;\n }\n } else {\n ctx.fillText(text, position.x, position.y);\n }\n }\n\n function adjustPointPositionForLabelHeight(angle, textSize, position) {\n if (angle === 90 || angle === 270) {\n position.y -= (textSize.h / 2);\n } else if (angle > 270 || angle < 90) {\n position.y -= textSize.h;\n }\n }\n\n function drawPointLabels(scale) {\n var ctx = scale.ctx;\n var valueOrDefault = helpers.valueOrDefault;\n var opts = scale.options;\n var angleLineOpts = opts.angleLines;\n var pointLabelOpts = opts.pointLabels;\n\n ctx.lineWidth = angleLineOpts.lineWidth;\n ctx.strokeStyle = angleLineOpts.color;\n\n var outerDistance = scale.getDistanceFromCenterForValue(opts.ticks.reverse ? scale.min : scale.max);\n\n // Point Label Font\n var plFont = getPointLabelFontOptions(scale);\n\n ctx.textBaseline = 'top';\n\n for (var i = getValueCount(scale) - 1; i >= 0; i--) {\n if (angleLineOpts.display) {\n var outerPosition = scale.getPointPosition(i, outerDistance);\n ctx.beginPath();\n ctx.moveTo(scale.xCenter, scale.yCenter);\n ctx.lineTo(outerPosition.x, outerPosition.y);\n ctx.stroke();\n ctx.closePath();\n }\n\n if (pointLabelOpts.display) {\n // Extra 3px out for some label spacing\n var pointLabelPosition = scale.getPointPosition(i, outerDistance + 5);\n\n // Keep this in loop since we may support array properties here\n var pointLabelFontColor = valueOrDefault(pointLabelOpts.fontColor, globalDefaults.defaultFontColor);\n ctx.font = plFont.font;\n ctx.fillStyle = pointLabelFontColor;\n\n var angleRadians = scale.getIndexAngle(i);\n var angle = helpers.toDegrees(angleRadians);\n ctx.textAlign = getTextAlignForAngle(angle);\n adjustPointPositionForLabelHeight(angle, scale._pointLabelSizes[i], pointLabelPosition);\n fillText(ctx, scale.pointLabels[i] || '', pointLabelPosition, plFont.size);\n }\n }\n }\n\n function drawRadiusLine(scale, gridLineOpts, radius, index) {\n var ctx = scale.ctx;\n ctx.strokeStyle = helpers.valueAtIndexOrDefault(gridLineOpts.color, index - 1);\n ctx.lineWidth = helpers.valueAtIndexOrDefault(gridLineOpts.lineWidth, index - 1);\n\n if (scale.options.gridLines.circular) {\n // Draw circular arcs between the points\n ctx.beginPath();\n ctx.arc(scale.xCenter, scale.yCenter, radius, 0, Math.PI * 2);\n ctx.closePath();\n ctx.stroke();\n } else {\n // Draw straight lines connecting each index\n var valueCount = getValueCount(scale);\n\n if (valueCount === 0) {\n return;\n }\n\n ctx.beginPath();\n var pointPosition = scale.getPointPosition(0, radius);\n ctx.moveTo(pointPosition.x, pointPosition.y);\n\n for (var i = 1; i < valueCount; i++) {\n pointPosition = scale.getPointPosition(i, radius);\n ctx.lineTo(pointPosition.x, pointPosition.y);\n }\n\n ctx.closePath();\n ctx.stroke();\n }\n }\n\n function numberOrZero(param) {\n return helpers.isNumber(param) ? param : 0;\n }\n\n var LinearRadialScale = Chart.LinearScaleBase.extend({\n setDimensions: function() {\n var me = this;\n var opts = me.options;\n var tickOpts = opts.ticks;\n // Set the unconstrained dimension before label rotation\n me.width = me.maxWidth;\n me.height = me.maxHeight;\n me.xCenter = Math.round(me.width / 2);\n me.yCenter = Math.round(me.height / 2);\n\n var minSize = helpers.min([me.height, me.width]);\n var tickFontSize = helpers.valueOrDefault(tickOpts.fontSize, globalDefaults.defaultFontSize);\n me.drawingArea = opts.display ? (minSize / 2) - (tickFontSize / 2 + tickOpts.backdropPaddingY) : (minSize / 2);\n },\n determineDataLimits: function() {\n var me = this;\n var chart = me.chart;\n var min = Number.POSITIVE_INFINITY;\n var max = Number.NEGATIVE_INFINITY;\n\n helpers.each(chart.data.datasets, function(dataset, datasetIndex) {\n if (chart.isDatasetVisible(datasetIndex)) {\n var meta = chart.getDatasetMeta(datasetIndex);\n\n helpers.each(dataset.data, function(rawValue, index) {\n var value = +me.getRightValue(rawValue);\n if (isNaN(value) || meta.data[index].hidden) {\n return;\n }\n\n min = Math.min(value, min);\n max = Math.max(value, max);\n });\n }\n });\n\n me.min = (min === Number.POSITIVE_INFINITY ? 0 : min);\n me.max = (max === Number.NEGATIVE_INFINITY ? 0 : max);\n\n // Common base implementation to handle ticks.min, ticks.max, ticks.beginAtZero\n me.handleTickRangeOptions();\n },\n getTickLimit: function() {\n var tickOpts = this.options.ticks;\n var tickFontSize = helpers.valueOrDefault(tickOpts.fontSize, globalDefaults.defaultFontSize);\n return Math.min(tickOpts.maxTicksLimit ? tickOpts.maxTicksLimit : 11, Math.ceil(this.drawingArea / (1.5 * tickFontSize)));\n },\n convertTicksToLabels: function() {\n var me = this;\n\n Chart.LinearScaleBase.prototype.convertTicksToLabels.call(me);\n\n // Point labels\n me.pointLabels = me.chart.data.labels.map(me.options.pointLabels.callback, me);\n },\n getLabelForIndex: function(index, datasetIndex) {\n return +this.getRightValue(this.chart.data.datasets[datasetIndex].data[index]);\n },\n fit: function() {\n if (this.options.pointLabels.display) {\n fitWithPointLabels(this);\n } else {\n fit(this);\n }\n },\n /**\n * Set radius reductions and determine new radius and center point\n * @private\n */\n setReductions: function(largestPossibleRadius, furthestLimits, furthestAngles) {\n var me = this;\n var radiusReductionLeft = furthestLimits.l / Math.sin(furthestAngles.l);\n var radiusReductionRight = Math.max(furthestLimits.r - me.width, 0) / Math.sin(furthestAngles.r);\n var radiusReductionTop = -furthestLimits.t / Math.cos(furthestAngles.t);\n var radiusReductionBottom = -Math.max(furthestLimits.b - me.height, 0) / Math.cos(furthestAngles.b);\n\n radiusReductionLeft = numberOrZero(radiusReductionLeft);\n radiusReductionRight = numberOrZero(radiusReductionRight);\n radiusReductionTop = numberOrZero(radiusReductionTop);\n radiusReductionBottom = numberOrZero(radiusReductionBottom);\n\n me.drawingArea = Math.min(\n Math.round(largestPossibleRadius - (radiusReductionLeft + radiusReductionRight) / 2),\n Math.round(largestPossibleRadius - (radiusReductionTop + radiusReductionBottom) / 2));\n me.setCenterPoint(radiusReductionLeft, radiusReductionRight, radiusReductionTop, radiusReductionBottom);\n },\n setCenterPoint: function(leftMovement, rightMovement, topMovement, bottomMovement) {\n var me = this;\n var maxRight = me.width - rightMovement - me.drawingArea;\n var maxLeft = leftMovement + me.drawingArea;\n var maxTop = topMovement + me.drawingArea;\n var maxBottom = me.height - bottomMovement - me.drawingArea;\n\n me.xCenter = Math.round(((maxLeft + maxRight) / 2) + me.left);\n me.yCenter = Math.round(((maxTop + maxBottom) / 2) + me.top);\n },\n\n getIndexAngle: function(index) {\n var angleMultiplier = (Math.PI * 2) / getValueCount(this);\n var startAngle = this.chart.options && this.chart.options.startAngle ?\n this.chart.options.startAngle :\n 0;\n\n var startAngleRadians = startAngle * Math.PI * 2 / 360;\n\n // Start from the top instead of right, so remove a quarter of the circle\n return index * angleMultiplier + startAngleRadians;\n },\n getDistanceFromCenterForValue: function(value) {\n var me = this;\n\n if (value === null) {\n return 0; // null always in center\n }\n\n // Take into account half font size + the yPadding of the top value\n var scalingFactor = me.drawingArea / (me.max - me.min);\n if (me.options.ticks.reverse) {\n return (me.max - value) * scalingFactor;\n }\n return (value - me.min) * scalingFactor;\n },\n getPointPosition: function(index, distanceFromCenter) {\n var me = this;\n var thisAngle = me.getIndexAngle(index) - (Math.PI / 2);\n return {\n x: Math.round(Math.cos(thisAngle) * distanceFromCenter) + me.xCenter,\n y: Math.round(Math.sin(thisAngle) * distanceFromCenter) + me.yCenter\n };\n },\n getPointPositionForValue: function(index, value) {\n return this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n },\n\n getBasePosition: function() {\n var me = this;\n var min = me.min;\n var max = me.max;\n\n return me.getPointPositionForValue(0,\n me.beginAtZero ? 0 :\n min < 0 && max < 0 ? max :\n min > 0 && max > 0 ? min :\n 0);\n },\n\n draw: function() {\n var me = this;\n var opts = me.options;\n var gridLineOpts = opts.gridLines;\n var tickOpts = opts.ticks;\n var valueOrDefault = helpers.valueOrDefault;\n\n if (opts.display) {\n var ctx = me.ctx;\n var startAngle = this.getIndexAngle(0);\n\n // Tick Font\n var tickFontSize = valueOrDefault(tickOpts.fontSize, globalDefaults.defaultFontSize);\n var tickFontStyle = valueOrDefault(tickOpts.fontStyle, globalDefaults.defaultFontStyle);\n var tickFontFamily = valueOrDefault(tickOpts.fontFamily, globalDefaults.defaultFontFamily);\n var tickLabelFont = helpers.fontString(tickFontSize, tickFontStyle, tickFontFamily);\n\n helpers.each(me.ticks, function(label, index) {\n // Don't draw a centre value (if it is minimum)\n if (index > 0 || tickOpts.reverse) {\n var yCenterOffset = me.getDistanceFromCenterForValue(me.ticksAsNumbers[index]);\n\n // Draw circular lines around the scale\n if (gridLineOpts.display && index !== 0) {\n drawRadiusLine(me, gridLineOpts, yCenterOffset, index);\n }\n\n if (tickOpts.display) {\n var tickFontColor = valueOrDefault(tickOpts.fontColor, globalDefaults.defaultFontColor);\n ctx.font = tickLabelFont;\n\n ctx.save();\n ctx.translate(me.xCenter, me.yCenter);\n ctx.rotate(startAngle);\n\n if (tickOpts.showLabelBackdrop) {\n var labelWidth = ctx.measureText(label).width;\n ctx.fillStyle = tickOpts.backdropColor;\n ctx.fillRect(\n -labelWidth / 2 - tickOpts.backdropPaddingX,\n -yCenterOffset - tickFontSize / 2 - tickOpts.backdropPaddingY,\n labelWidth + tickOpts.backdropPaddingX * 2,\n tickFontSize + tickOpts.backdropPaddingY * 2\n );\n }\n\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n ctx.fillStyle = tickFontColor;\n ctx.fillText(label, 0, -yCenterOffset);\n ctx.restore();\n }\n }\n });\n\n if (opts.angleLines.display || opts.pointLabels.display) {\n drawPointLabels(me);\n }\n }\n }\n });\n Chart.scaleService.registerScaleType('radialLinear', LinearRadialScale, defaultConfig);\n\n };\n\n},{\"25\":25,\"34\":34,\"45\":45}],57:[function(require,module,exports){\n\t/* global window: false */\n 'use strict';\n\n var moment = require(6);\n moment = typeof moment === 'function' ? moment : window.moment;\n\n var defaults = require(25);\n var helpers = require(45);\n\n// Integer constants are from the ES6 spec.\n var MIN_INTEGER = Number.MIN_SAFE_INTEGER || -9007199254740991;\n var MAX_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;\n\n var INTERVALS = {\n millisecond: {\n major: true,\n size: 1,\n steps: [1, 2, 5, 10, 20, 50, 100, 250, 500]\n },\n second: {\n major: true,\n size: 1000,\n steps: [1, 2, 5, 10, 30]\n },\n minute: {\n major: true,\n size: 60000,\n steps: [1, 2, 5, 10, 30]\n },\n hour: {\n major: true,\n size: 3600000,\n steps: [1, 2, 3, 6, 12]\n },\n day: {\n major: true,\n size: 86400000,\n steps: [1, 2, 5]\n },\n week: {\n major: false,\n size: 604800000,\n steps: [1, 2, 3, 4]\n },\n month: {\n major: true,\n size: 2.628e9,\n steps: [1, 2, 3]\n },\n quarter: {\n major: false,\n size: 7.884e9,\n steps: [1, 2, 3, 4]\n },\n year: {\n major: true,\n size: 3.154e10\n }\n };\n\n var UNITS = Object.keys(INTERVALS);\n\n function sorter(a, b) {\n return a - b;\n }\n\n function arrayUnique(items) {\n var hash = {};\n var out = [];\n var i, ilen, item;\n\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n item = items[i];\n if (!hash[item]) {\n hash[item] = true;\n out.push(item);\n }\n }\n\n return out;\n }\n\n /**\n * Returns an array of {time, pos} objects used to interpolate a specific `time` or position\n * (`pos`) on the scale, by searching entries before and after the requested value. `pos` is\n * a decimal between 0 and 1: 0 being the start of the scale (left or top) and 1 the other\n * extremity (left + width or top + height). Note that it would be more optimized to directly\n * store pre-computed pixels, but the scale dimensions are not guaranteed at the time we need\n * to create the lookup table. The table ALWAYS contains at least two items: min and max.\n *\n * @param {Number[]} timestamps - timestamps sorted from lowest to highest.\n * @param {String} distribution - If 'linear', timestamps will be spread linearly along the min\n * and max range, so basically, the table will contains only two items: {min, 0} and {max, 1}.\n * If 'series', timestamps will be positioned at the same distance from each other. In this\n * case, only timestamps that break the time linearity are registered, meaning that in the\n * best case, all timestamps are linear, the table contains only min and max.\n */\n function buildLookupTable(timestamps, min, max, distribution) {\n if (distribution === 'linear' || !timestamps.length) {\n return [\n {time: min, pos: 0},\n {time: max, pos: 1}\n ];\n }\n\n var table = [];\n var items = [min];\n var i, ilen, prev, curr, next;\n\n for (i = 0, ilen = timestamps.length; i < ilen; ++i) {\n curr = timestamps[i];\n if (curr > min && curr < max) {\n items.push(curr);\n }\n }\n\n items.push(max);\n\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n next = items[i + 1];\n prev = items[i - 1];\n curr = items[i];\n\n // only add points that breaks the scale linearity\n if (prev === undefined || next === undefined || Math.round((next + prev) / 2) !== curr) {\n table.push({time: curr, pos: i / (ilen - 1)});\n }\n }\n\n return table;\n }\n\n// @see adapted from http://www.anujgakhar.com/2014/03/01/binary-search-in-javascript/\n function lookup(table, key, value) {\n var lo = 0;\n var hi = table.length - 1;\n var mid, i0, i1;\n\n while (lo >= 0 && lo <= hi) {\n mid = (lo + hi) >> 1;\n i0 = table[mid - 1] || null;\n i1 = table[mid];\n\n if (!i0) {\n // given value is outside table (before first item)\n return {lo: null, hi: i1};\n } else if (i1[key] < value) {\n lo = mid + 1;\n } else if (i0[key] > value) {\n hi = mid - 1;\n } else {\n return {lo: i0, hi: i1};\n }\n }\n\n // given value is outside table (after last item)\n return {lo: i1, hi: null};\n }\n\n /**\n * Linearly interpolates the given source `value` using the table items `skey` values and\n * returns the associated `tkey` value. For example, interpolate(table, 'time', 42, 'pos')\n * returns the position for a timestamp equal to 42. If value is out of bounds, values at\n * index [0, 1] or [n - 1, n] are used for the interpolation.\n */\n function interpolate(table, skey, sval, tkey) {\n var range = lookup(table, skey, sval);\n\n // Note: the lookup table ALWAYS contains at least 2 items (min and max)\n var prev = !range.lo ? table[0] : !range.hi ? table[table.length - 2] : range.lo;\n var next = !range.lo ? table[1] : !range.hi ? table[table.length - 1] : range.hi;\n\n var span = next[skey] - prev[skey];\n var ratio = span ? (sval - prev[skey]) / span : 0;\n var offset = (next[tkey] - prev[tkey]) * ratio;\n\n return prev[tkey] + offset;\n }\n\n /**\n * Convert the given value to a moment object using the given time options.\n * @see http://momentjs.com/docs/#/parsing/\n */\n function momentify(value, options) {\n var parser = options.parser;\n var format = options.parser || options.format;\n\n if (typeof parser === 'function') {\n return parser(value);\n }\n\n if (typeof value === 'string' && typeof format === 'string') {\n return moment(value, format);\n }\n\n if (!(value instanceof moment)) {\n value = moment(value);\n }\n\n if (value.isValid()) {\n return value;\n }\n\n // Labels are in an incompatible moment format and no `parser` has been provided.\n // The user might still use the deprecated `format` option to convert his inputs.\n if (typeof format === 'function') {\n return format(value);\n }\n\n return value;\n }\n\n function parse(input, scale) {\n if (helpers.isNullOrUndef(input)) {\n return null;\n }\n\n var options = scale.options.time;\n var value = momentify(scale.getRightValue(input), options);\n if (!value.isValid()) {\n return null;\n }\n\n if (options.round) {\n value.startOf(options.round);\n }\n\n return value.valueOf();\n }\n\n /**\n * Returns the number of unit to skip to be able to display up to `capacity` number of ticks\n * in `unit` for the given `min` / `max` range and respecting the interval steps constraints.\n */\n function determineStepSize(min, max, unit, capacity) {\n var range = max - min;\n var interval = INTERVALS[unit];\n var milliseconds = interval.size;\n var steps = interval.steps;\n var i, ilen, factor;\n\n if (!steps) {\n return Math.ceil(range / ((capacity || 1) * milliseconds));\n }\n\n for (i = 0, ilen = steps.length; i < ilen; ++i) {\n factor = steps[i];\n if (Math.ceil(range / (milliseconds * factor)) <= capacity) {\n break;\n }\n }\n\n return factor;\n }\n\n function determineUnit(minUnit, min, max, capacity) {\n var ilen = UNITS.length;\n var i, interval, factor;\n\n for (i = UNITS.indexOf(minUnit); i < ilen - 1; ++i) {\n interval = INTERVALS[UNITS[i]];\n factor = interval.steps ? interval.steps[interval.steps.length - 1] : MAX_INTEGER;\n\n if (Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n return UNITS[i];\n }\n }\n\n return UNITS[ilen - 1];\n }\n\n function determineMajorUnit(unit) {\n for (var i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i) {\n if (INTERVALS[UNITS[i]].major) {\n return UNITS[i];\n }\n }\n }\n\n /**\n * Generates a maximum of `capacity` timestamps between min and max, rounded to the\n * `minor` unit, aligned on the `major` unit and using the given scale time `options`.\n * Important: this method can return ticks outside the min and max range, it's the\n * responsibility of the calling code to clamp values if needed.\n */\n function generate(min, max, minor, major, capacity, options) {\n var timeOpts = options.time;\n var stepSize = helpers.valueOrDefault(timeOpts.stepSize, timeOpts.unitStepSize);\n var weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n var majorTicksEnabled = options.ticks.major.enabled;\n var interval = INTERVALS[minor];\n var first = moment(min);\n var last = moment(max);\n var ticks = [];\n var time;\n\n if (!stepSize) {\n stepSize = determineStepSize(min, max, minor, capacity);\n }\n\n // For 'week' unit, handle the first day of week option\n if (weekday) {\n first = first.isoWeekday(weekday);\n last = last.isoWeekday(weekday);\n }\n\n // Align first/last ticks on unit\n first = first.startOf(weekday ? 'day' : minor);\n last = last.startOf(weekday ? 'day' : minor);\n\n // Make sure that the last tick include max\n if (last < max) {\n last.add(1, minor);\n }\n\n time = moment(first);\n\n if (majorTicksEnabled && major && !weekday && !timeOpts.round) {\n // Align the first tick on the previous `minor` unit aligned on the `major` unit:\n // we first aligned time on the previous `major` unit then add the number of full\n // stepSize there is between first and the previous major time.\n time.startOf(major);\n time.add(~~((first - time) / (interval.size * stepSize)) * stepSize, minor);\n }\n\n for (; time < last; time.add(stepSize, minor)) {\n ticks.push(+time);\n }\n\n ticks.push(+time);\n\n return ticks;\n }\n\n /**\n * Returns the right and left offsets from edges in the form of {left, right}.\n * Offsets are added when the `offset` option is true.\n */\n function computeOffsets(table, ticks, min, max, options) {\n var left = 0;\n var right = 0;\n var upper, lower;\n\n if (options.offset && ticks.length) {\n if (!options.time.min) {\n upper = ticks.length > 1 ? ticks[1] : max;\n lower = ticks[0];\n left = (\n interpolate(table, 'time', upper, 'pos') -\n interpolate(table, 'time', lower, 'pos')\n ) / 2;\n }\n if (!options.time.max) {\n upper = ticks[ticks.length - 1];\n lower = ticks.length > 1 ? ticks[ticks.length - 2] : min;\n right = (\n interpolate(table, 'time', upper, 'pos') -\n interpolate(table, 'time', lower, 'pos')\n ) / 2;\n }\n }\n\n return {left: left, right: right};\n }\n\n function ticksFromTimestamps(values, majorUnit) {\n var ticks = [];\n var i, ilen, value, major;\n\n for (i = 0, ilen = values.length; i < ilen; ++i) {\n value = values[i];\n major = majorUnit ? value === +moment(value).startOf(majorUnit) : false;\n\n ticks.push({\n value: value,\n major: major\n });\n }\n\n return ticks;\n }\n\n module.exports = function(Chart) {\n\n var defaultConfig = {\n position: 'bottom',\n\n /**\n * Data distribution along the scale:\n * - 'linear': data are spread according to their time (distances can vary),\n * - 'series': data are spread at the same distance from each other.\n * @see https://github.com/chartjs/Chart.js/pull/4507\n * @since 2.7.0\n */\n distribution: 'linear',\n\n /**\n * Scale boundary strategy (bypassed by min/max time options)\n * - `data`: make sure data are fully visible, ticks outside are removed\n * - `ticks`: make sure ticks are fully visible, data outside are truncated\n * @see https://github.com/chartjs/Chart.js/pull/4556\n * @since 2.7.0\n */\n bounds: 'data',\n\n time: {\n parser: false, // false == a pattern string from http://momentjs.com/docs/#/parsing/string-format/ or a custom callback that converts its argument to a moment\n format: false, // DEPRECATED false == date objects, moment object, callback or a pattern string from http://momentjs.com/docs/#/parsing/string-format/\n unit: false, // false == automatic or override with week, month, year, etc.\n round: false, // none, or override with week, month, year, etc.\n displayFormat: false, // DEPRECATED\n isoWeekday: false, // override week start day - see http://momentjs.com/docs/#/get-set/iso-weekday/\n minUnit: 'millisecond',\n\n // defaults to unit's corresponding unitFormat below or override using pattern string from http://momentjs.com/docs/#/displaying/format/\n displayFormats: {\n millisecond: 'h:mm:ss.SSS a', // 11:20:01.123 AM,\n second: 'h:mm:ss a', // 11:20:01 AM\n minute: 'h:mm a', // 11:20 AM\n hour: 'hA', // 5PM\n day: 'MMM D', // Sep 4\n week: 'll', // Week 46, or maybe \"[W]WW - YYYY\" ?\n month: 'MMM YYYY', // Sept 2015\n quarter: '[Q]Q - YYYY', // Q3\n year: 'YYYY' // 2015\n },\n },\n ticks: {\n autoSkip: false,\n\n /**\n * Ticks generation input values:\n * - 'auto': generates \"optimal\" ticks based on scale size and time options.\n * - 'data': generates ticks from data (including labels from data {t|x|y} objects).\n * - 'labels': generates ticks from user given `data.labels` values ONLY.\n * @see https://github.com/chartjs/Chart.js/pull/4507\n * @since 2.7.0\n */\n source: 'auto',\n\n major: {\n enabled: false\n }\n }\n };\n\n var TimeScale = Chart.Scale.extend({\n initialize: function() {\n if (!moment) {\n throw new Error('Chart.js - Moment.js could not be found! You must include it before Chart.js to use the time scale. Download at https://momentjs.com');\n }\n\n this.mergeTicksOptions();\n\n Chart.Scale.prototype.initialize.call(this);\n },\n\n update: function() {\n var me = this;\n var options = me.options;\n\n // DEPRECATIONS: output a message only one time per update\n if (options.time && options.time.format) {\n console.warn('options.time.format is deprecated and replaced by options.time.parser.');\n }\n\n return Chart.Scale.prototype.update.apply(me, arguments);\n },\n\n /**\n * Allows data to be referenced via 't' attribute\n */\n getRightValue: function(rawValue) {\n if (rawValue && rawValue.t !== undefined) {\n rawValue = rawValue.t;\n }\n return Chart.Scale.prototype.getRightValue.call(this, rawValue);\n },\n\n determineDataLimits: function() {\n var me = this;\n var chart = me.chart;\n var timeOpts = me.options.time;\n var min = parse(timeOpts.min, me) || MAX_INTEGER;\n var max = parse(timeOpts.max, me) || MIN_INTEGER;\n var timestamps = [];\n var datasets = [];\n var labels = [];\n var i, j, ilen, jlen, data, timestamp;\n\n // Convert labels to timestamps\n for (i = 0, ilen = chart.data.labels.length; i < ilen; ++i) {\n labels.push(parse(chart.data.labels[i], me));\n }\n\n // Convert data to timestamps\n for (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\n if (chart.isDatasetVisible(i)) {\n data = chart.data.datasets[i].data;\n\n // Let's consider that all data have the same format.\n if (helpers.isObject(data[0])) {\n datasets[i] = [];\n\n for (j = 0, jlen = data.length; j < jlen; ++j) {\n timestamp = parse(data[j], me);\n timestamps.push(timestamp);\n datasets[i][j] = timestamp;\n }\n } else {\n timestamps.push.apply(timestamps, labels);\n datasets[i] = labels.slice(0);\n }\n } else {\n datasets[i] = [];\n }\n }\n\n if (labels.length) {\n // Sort labels **after** data have been converted\n labels = arrayUnique(labels).sort(sorter);\n min = Math.min(min, labels[0]);\n max = Math.max(max, labels[labels.length - 1]);\n }\n\n if (timestamps.length) {\n timestamps = arrayUnique(timestamps).sort(sorter);\n min = Math.min(min, timestamps[0]);\n max = Math.max(max, timestamps[timestamps.length - 1]);\n }\n\n // In case there is no valid min/max, let's use today limits\n min = min === MAX_INTEGER ? +moment().startOf('day') : min;\n max = max === MIN_INTEGER ? +moment().endOf('day') + 1 : max;\n\n // Make sure that max is strictly higher than min (required by the lookup table)\n me.min = Math.min(min, max);\n me.max = Math.max(min + 1, max);\n\n // PRIVATE\n me._horizontal = me.isHorizontal();\n me._table = [];\n me._timestamps = {\n data: timestamps,\n datasets: datasets,\n labels: labels\n };\n },\n\n buildTicks: function() {\n var me = this;\n var min = me.min;\n var max = me.max;\n var options = me.options;\n var timeOpts = options.time;\n var formats = timeOpts.displayFormats;\n var capacity = me.getLabelCapacity(min);\n var unit = timeOpts.unit || determineUnit(timeOpts.minUnit, min, max, capacity);\n var majorUnit = determineMajorUnit(unit);\n var timestamps = [];\n var ticks = [];\n var i, ilen, timestamp;\n\n switch (options.ticks.source) {\n case 'data':\n timestamps = me._timestamps.data;\n break;\n case 'labels':\n timestamps = me._timestamps.labels;\n break;\n case 'auto':\n default:\n timestamps = generate(min, max, unit, majorUnit, capacity, options);\n }\n\n if (options.bounds === 'ticks' && timestamps.length) {\n min = timestamps[0];\n max = timestamps[timestamps.length - 1];\n }\n\n // Enforce limits with user min/max options\n min = parse(timeOpts.min, me) || min;\n max = parse(timeOpts.max, me) || max;\n\n // Remove ticks outside the min/max range\n for (i = 0, ilen = timestamps.length; i < ilen; ++i) {\n timestamp = timestamps[i];\n if (timestamp >= min && timestamp <= max) {\n ticks.push(timestamp);\n }\n }\n\n me.min = min;\n me.max = max;\n\n // PRIVATE\n me._unit = unit;\n me._majorUnit = majorUnit;\n me._minorFormat = formats[unit];\n me._majorFormat = formats[majorUnit];\n me._table = buildLookupTable(me._timestamps.data, min, max, options.distribution);\n me._offsets = computeOffsets(me._table, ticks, min, max, options);\n\n return ticksFromTimestamps(ticks, majorUnit);\n },\n\n getLabelForIndex: function(index, datasetIndex) {\n var me = this;\n var data = me.chart.data;\n var timeOpts = me.options.time;\n var label = data.labels && index < data.labels.length ? data.labels[index] : '';\n var value = data.datasets[datasetIndex].data[index];\n\n if (helpers.isObject(value)) {\n label = me.getRightValue(value);\n }\n if (timeOpts.tooltipFormat) {\n label = momentify(label, timeOpts).format(timeOpts.tooltipFormat);\n }\n\n return label;\n },\n\n /**\n * Function to format an individual tick mark\n * @private\n */\n tickFormatFunction: function(tick, index, ticks) {\n var me = this;\n var options = me.options;\n var time = tick.valueOf();\n var majorUnit = me._majorUnit;\n var majorFormat = me._majorFormat;\n var majorTime = tick.clone().startOf(me._majorUnit).valueOf();\n var majorTickOpts = options.ticks.major;\n var major = majorTickOpts.enabled && majorUnit && majorFormat && time === majorTime;\n var label = tick.format(major ? majorFormat : me._minorFormat);\n var tickOpts = major ? majorTickOpts : options.ticks.minor;\n var formatter = helpers.valueOrDefault(tickOpts.callback, tickOpts.userCallback);\n\n return formatter ? formatter(label, index, ticks) : label;\n },\n\n convertTicksToLabels: function(ticks) {\n var labels = [];\n var i, ilen;\n\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n labels.push(this.tickFormatFunction(moment(ticks[i].value), i, ticks));\n }\n\n return labels;\n },\n\n /**\n * @private\n */\n getPixelForOffset: function(time) {\n var me = this;\n var size = me._horizontal ? me.width : me.height;\n var start = me._horizontal ? me.left : me.top;\n var pos = interpolate(me._table, 'time', time, 'pos');\n\n return start + size * (me._offsets.left + pos) / (me._offsets.left + 1 + me._offsets.right);\n },\n\n getPixelForValue: function(value, index, datasetIndex) {\n var me = this;\n var time = null;\n\n if (index !== undefined && datasetIndex !== undefined) {\n time = me._timestamps.datasets[datasetIndex][index];\n }\n\n if (time === null) {\n time = parse(value, me);\n }\n\n if (time !== null) {\n return me.getPixelForOffset(time);\n }\n },\n\n getPixelForTick: function(index) {\n var ticks = this.getTicks();\n return index >= 0 && index < ticks.length ?\n this.getPixelForOffset(ticks[index].value) :\n null;\n },\n\n getValueForPixel: function(pixel) {\n var me = this;\n var size = me._horizontal ? me.width : me.height;\n var start = me._horizontal ? me.left : me.top;\n var pos = (size ? (pixel - start) / size : 0) * (me._offsets.left + 1 + me._offsets.left) - me._offsets.right;\n var time = interpolate(me._table, 'pos', pos, 'time');\n\n return moment(time);\n },\n\n /**\n * Crude approximation of what the label width might be\n * @private\n */\n getLabelWidth: function(label) {\n var me = this;\n var ticksOpts = me.options.ticks;\n var tickLabelWidth = me.ctx.measureText(label).width;\n var angle = helpers.toRadians(ticksOpts.maxRotation);\n var cosRotation = Math.cos(angle);\n var sinRotation = Math.sin(angle);\n var tickFontSize = helpers.valueOrDefault(ticksOpts.fontSize, defaults.global.defaultFontSize);\n\n return (tickLabelWidth * cosRotation) + (tickFontSize * sinRotation);\n },\n\n /**\n * @private\n */\n getLabelCapacity: function(exampleTime) {\n var me = this;\n\n me._minorFormat = me.options.time.displayFormats.millisecond;\t// Pick the longest format for guestimation\n\n var exampleLabel = me.tickFormatFunction(moment(exampleTime), 0, []);\n var tickLabelWidth = me.getLabelWidth(exampleLabel);\n var innerWidth = me.isHorizontal() ? me.width : me.height;\n\n return Math.floor(innerWidth / tickLabelWidth);\n }\n });\n\n Chart.scaleService.registerScaleType('time', TimeScale, defaultConfig);\n };\n\n},{\"25\":25,\"45\":45,\"6\":6}]},{},[7])(7)\n});"],"file":"chartjs-lazy.min.js"} \ No newline at end of file +{"version":3,"sources":["../src/chartjs-lazy.js"],"names":["global","factory","exports","module","define","amd","self","Chart","commonjsGlobal","globalThis","window","commonjsRequire","Error","createCommonjsModule","fn","colorName","conversions","reverseKeywords","key","hasOwnProperty","convert","rgb","channels","labels","hsl","hsv","hwb","cmyk","xyz","lab","lch","hex","keyword","ansi16","ansi256","hcg","apple","gray","model","length","Object","defineProperty","value","r","g","b","min","Math","max","delta","h","s","l","rdif","gdif","bdif","v","diff","diffc","c","w","m","y","k","comparativeDistance","x","pow","reversed","currentClosestDistance","currentClosestKeyword","distance","z","a","t1","t2","t3","val","i","smin","lmin","sv","hi","floor","f","p","q","t","vmin","sl","wh","bl","ratio","n","y2","x2","z2","hr","atan2","PI","sqrt","cos","sin","args","arguments","round","ansi","color","mult","rem","integer","string","toString","toUpperCase","substring","match","colorString","split","map","char","join","parseInt","chroma","grayscale","hue","pure","mg","conversions_1","conversions_2","conversions_3","conversions_4","conversions_5","conversions_6","conversions_7","conversions_8","conversions_9","conversions_10","conversions_11","conversions_12","conversions_13","conversions_14","conversions_15","buildGraph","graph","models","keys","len","parent","deriveBFS","fromModel","queue","current","pop","adjacents","adjacent","node","unshift","link","from","to","wrapConversion","toModel","path","cur","conversion","route","wrapRaw","wrappedFn","Array","prototype","slice","call","wrapRounded","result","forEach","routes","routeModels","raw","colorName$1","getRgba","getHsla","getRgb","rgba","getHsl","hsla","getHwb","getAlpha","vals","hexString","hexDouble","rgbString","alpha","rgbaString","percentString","percentaString","hslString","hslaString","hwbString","reverseNames","hexAlpha","parseFloat","scale","isNaN","num","str","name","Color","obj","valid","values","setValues","red","lightness","whiteness","cyan","isValid","setSpace","rgbArray","hslArray","hsvArray","hwbArray","concat","cmykArray","rgbaArray","hslaArray","setChannel","green","blue","saturation","saturationv","blackness","magenta","yellow","black","rgbNumber","luminosity","lum","chan","contrast","color2","lum1","lum2","level","contrastRatio","dark","yiq","light","negate","lighten","darken","saturate","desaturate","whiten","blacken","greyscale","clearer","opaquer","rotate","degrees","mix","mixinColor","weight","color1","w1","w2","toJSON","clone","source","target","type","prop","console","error","spaces","maxes","getValues","space","charAt","chans","capped","sname","index","svalues","chartjsColor","isValidKey","indexOf","helpers","noop","uid","id","isNullOrUndef","isArray","substr","isObject","isFinite","Number","valueOrDefault","defaultValue","valueAtIndexOrDefault","callback","thisArg","apply","each","loopable","reverse","arrayEquals","a0","a1","ilen","v0","v1","create","klen","_merger","options","tval","sval","merge","_mergerIf","mergeIf","sources","merger","extend","assign","dst","src","inherits","extensions","me","ChartElement","constructor","Surrogate","__super__","_deprecated","scope","previous","warn","helpers_core","callCallback","array","item","fromIndex","getValueOrDefault","getValueAtIndexOrDefault","effects","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","asin","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","easeInOutBounce","easingEffects","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","exports$1","clear","chart","ctx","clearRect","width","height","roundedRect","radius","left","top","right","bottom","moveTo","arc","closePath","rect","drawPoint","style","rotation","xOffset","yOffset","size","cornerRadius","rad","save","translate","drawImage","restore","beginPath","lineTo","SQRT1_2","fill","stroke","_isPointInArea","point","area","epsilon","clipArea","clip","unclipArea","flip","stepped","steppedLine","midpoint","tension","bezierCurveTo","controlPointPreviousX","controlPointNextX","controlPointPreviousY","controlPointNextY","drawRoundedRectangle","defaults","_set","defaultColor","defaultFontColor","defaultFontFamily","defaultFontSize","defaultFontStyle","defaultLineHeight","showLines","core_defaults","toFontString","font","family","exports$2","_factorize","push","sort","log10","exponent","log","LOG10E","powerOf10","isPowerOf10","getRtlAdapter","rectX","setWidth","textAlign","align","xPlus","leftForLtr","itemWidth","getLtrAdapter","helpers$1","easing","canvas","toLineHeight","matches","toPadding","_parseFont","globalDefaults","fontSize","fontFamily","lineHeight","fontStyle","resolve","inputs","context","info","cacheable","math","rtl","getAdapter","overrideTextDirection","direction","original","getPropertyValue","getPropertyPriority","setProperty","prevTextDirection","restoreTextDirection","interpolate","start","view","ease","actual","origin","c0","c1","Element","configuration","initialize","_type","hidden","pivot","_view","_model","_start","transition","tooltipPosition","hasValue","isNumber","core_element","exports$3","currentStep","numSteps","render","onAnimationProgress","onAnimationComplete","core_animation","get","set","animation","duration","onProgress","onComplete","core_animations","animations","request","addAnimation","lazy","startTime","Date","now","animating","requestAnimationFrame","cancelAnimation","findIndex","splice","requestAnimFrame","startDigest","advance","nextStep","arrayEvents","listenArrayEvents","listener","_chartjs","listeners","configurable","enumerable","method","base","res","object","unlistenArrayEvents","stub","DatasetController","datasetIndex","datasetElementType","dataElementType","_datasetElementOptions","_dataElementOptions","linkScales","addElements","getMeta","updateIndex","meta","scales","dataset","getDataset","scalesOpts","xAxisID","xAxes","yAxisID","yAxes","data","datasets","getDatasetMeta","getScaleForId","scaleID","_getValueScaleId","_getIndexScaleId","_getValueScale","_getIndexScale","reset","_update","destroy","_data","createMetaDataset","_chart","_datasetIndex","createMetaData","_index","metaData","addElementAndReset","element","updateElement","buildOrUpdateElements","isExtensible","resyncElements","_configure","_config","_cachedDataOpts","update","easingValue","elements","draw","getStyle","_resolveDatasetElementOptions","_resolveDataElementOptions","backgroundColor","borderColor","hover","datasetOpts","custom","elementOptions","readKey","cached","dataIndex","freeze","removeHoverStyle","$previousStyle","setHoverStyle","getHoverColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","_removeDatasetHoverStyle","_setDatasetHoverStyle","prev","hoverOptions","numMeta","numData","insertElements","count","onDataPush","onDataPop","onDataShift","shift","onDataSplice","onDataUnshift","core_datasetController","TAU","borderAlign","clipArc","startAngle","endAngle","pixelMargin","angleMargin","outerRadius","innerRadius","drawFullCircleBorders","vm","inner","fullCircles","drawBorder","lineWidth","lineJoin","element_arc","inLabelRange","mouseX","hoverRadius","inRange","chartX","chartY","pointRelativePosition","getAngleFromPoint","angle","betweenAngles","withinRadius","getCenterPoint","halfAngle","halfRadius","getArea","centreAngle","rangeFromCentre","circumference","fillStyle","strokeStyle","valueOrDefault$1","line","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","capBezierPoints","element_line","spanGaps","points","_children","globalOptionLineElements","lastDrawnIndex","_loop","currentVM","previousItem","skip","lineCap","setLineDash","lineDashOffset","valueOrDefault$2","defaultColor$1","pointStyle","hitRadius","xRange","abs","element_point","mouseY","inXRange","inYRange","padding","chartArea","defaultColor$2","rectangle","borderSkipped","isVertical","getBarBounds","x1","y1","half","swap","orig","v2","parseBorderSkipped","edge","horizontal","parseBorderWidth","maxW","maxH","boundingRects","bounds","border","outer","skipX","skipY","element_rectangle","rects","fillRect","Arc","Line","Point","Rectangle","deprecated","valueOrDefault$3","mode","offset","gridLines","offsetGridLines","bar","categoryPercentage","barPercentage","computeMinSampleSize","pixels","_length","curr","getTicks","getPixelForTick","computeFitCategoryTraits","ruler","thickness","barThickness","stackCount","chunk","computeFlexCategoryTraits","next","percent","end","controller_bar","scaleOpts","stack","minBarLength","maxBarThickness","_ruler","getRuler","_xScale","_yScale","datasetLabel","label","_updateElementGeometry","vscale","getBasePixel","isHorizontal","vpixels","calculateBarValuePixels","ipixels","calculateBarIndexPixels","head","center","_getStacks","last","metasets","_getMatchingVisibleMetas","stacked","stacks","getStackCount","getStackIndex","getPixelForValue","_startPixel","_endPixel","_parseValue","imeta","ivalue","stackLength","range","stackIndex","indexOpts","valueOpts","valueOrDefault$4","resolve$1","position","tooltips","callbacks","title","dataPoint","xLabel","yLabel","controller_bubble","xScale","yScale","dsIndex","getPixelForDecimal","NaN","_options","valueOrDefault$5","PI$1","DOUBLE_PI$1","HALF_PI$1","animateRotate","animateScale","legendCallback","list","document","createElement","listItem","listItemSpan","setAttribute","appendChild","createTextNode","outerHTML","legend","generateLabels","controller","text","onClick","e","legendItem","cutoutPercentage","tooltipItem","dataLabel","controller_doughnut","getRingIndex","ringIndex","j","isDatasetVisible","opts","ratioX","ratioY","offsetX","offsetY","arcs","cutout","chartWeight","_getRingWeight","maxWidth","maxHeight","startX","startY","endX","endY","contains0","contains90","contains180","contains270","minX","minY","maxX","maxY","getMaxBorderWidth","radiusLength","_getVisibleDatasetWeightTotal","total","calculateTotal","_getRingWeightOffset","animationOpts","centerX","centerY","calculateCircumference","hoverWidth","ringWeightOffset","dataSetIndex","axis","horizontalBar","controller_horizontalBar","valueOrDefault$6","resolve$2","isPointInArea","scaleClip","halfBorderWidth","tickOpts","ticks","defaultClip","toClip","controller_line","config","showLine","_showLine","lineTension","_scale","updateBezierControlPoints","lineModel","calculatePointY","lineOptions","sumPos","sumNeg","ds","dsMeta","stackedRightValue","rightValue","getRightValue","_getSortedVisibleDatasetMetas","controlPoints","filter","pt","capControlPoint","cubicInterpolationMode","splineCurveMonotone","splineCurve","nextItem","resolve$3","angleLines","display","circular","pointLabels","beginAtZero","controller_polarArea","starts","_starts","angles","_angles","_updateRadius","countVisibleElements","_computeAngle","minSize","getVisibleDatasetCount","xCenter","yCenter","datasetStartAngle","getDistanceFromCenterForValue","resetRadius","doughnut","valueOrDefault$7","controller_radar","pointPosition","getPointPositionForValue","scatter","controllers","bubble","polarArea","pie","radar","getRelativePosition","native","parseVisibleItems","handler","metadata","jlen","getIntersectItems","getNearestItems","intersect","distanceMetric","minDistance","POSITIVE_INFINITY","nearestItems","getDistanceMetricForAxis","useX","useY","pt1","pt2","deltaX","deltaY","indexMode","items","core_interaction","modes","single","nearest","intersectsItem","filterByPosition","where","pos","sortByWeight","wrapBoxes","boxes","layoutBoxes","box","setLayoutDims","layouts","params","layout","fullWidth","availableWidth","vBoxMaxWidth","hBoxMaxHeight","buildLayoutBoxes","leftAndTop","rightAndBottom","vertical","getCombinedMax","maxPadding","updateDims","newWidth","newHeight","getPadding","boxPadding","outerWidth","outerHeight","sizes","handleMaxPadding","updatePos","change","getMargins","marginForPositions","positions","margin","fitBoxes","refitBoxes","refit","changed","placeBoxes","userPadding","core_layouts","addBox","_layers","removeBox","layoutItem","configure","props","layoutOptions","availableHeight","verticalBoxes","horizontalBoxes","platform_dom$1","__proto__","stylesheet","EXPANDO_KEY","CSS_PREFIX","CSS_SIZE_MONITOR","CSS_RENDER_MONITOR","ANIMATION_START_EVENTS","EVENT_TYPES","touchstart","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","readUsedSize","property","initCanvas","renderHeight","getAttribute","renderWidth","initial","displayWidth","aspectRatio","displayHeight","supportsEventListenerOptions","supports","addEventListener","eventListenerOptions","passive","addListener","removeListener","removeEventListener","createEvent","nativeEvent","fromNativeEvent","event","throttled","ticking","createDiv","cls","el","className","createResizer","resizer","expand","shrink","_reset","scrollLeft","scrollTop","onScroll","bind","watchForRender","expando","proxy","renderProxy","animationName","reflow","offsetParent","classList","add","unwatchForRender","remove","addResizeListener","container","maintainAspectRatio","parentNode","clientWidth","insertBefore","firstChild","removeResizeListener","removeChild","injectCSS","rootNode","css","containsStyles","platform_dom$2","disableCSSInjection","_enabled","_ensureLoaded","root","getRootNode","targetNode","host","acquireContext","getElementById","getContext","releaseContext","removeAttribute","proxies","addEvent","removeEvent","implementation","platform","plugins","core_plugins","_plugins","_cacheId","register","plugin","unregister","idx","getAll","notify","hook","descriptors","descriptor","cache","$plugins","_invalidate","core_scaleService","constructors","registerScaleType","scaleConstructor","scaleDefaults","getScaleConstructor","getScaleDefaults","updateScaleDefaults","additions","addScalesToLayout","valueOrDefault$8","getRtlHelper","enabled","titleFontStyle","titleSpacing","titleMarginBottom","titleFontColor","titleAlign","bodySpacing","bodyFontColor","bodyAlign","footerFontStyle","footerSpacing","footerMarginTop","footerFontColor","footerAlign","yPadding","xPadding","caretPadding","caretSize","multiKeyBackground","displayColors","beforeTitle","tooltipItems","labelCount","afterTitle","beforeBody","beforeLabel","labelColor","activeElement","labelTextColor","afterLabel","afterBody","beforeFooter","footer","afterFooter","positioners","average","eventPosition","nearestElement","d","distanceBetweenPoints","tp","pushOrConcat","toPush","splitNewlines","String","createTooltipItem","indexScale","valueScale","getLabelForIndex","getBaseModel","tooltipOpts","xAlign","yAlign","textDirection","_bodyFontFamily","bodyFontFamily","_bodyFontStyle","bodyFontStyle","_bodyAlign","bodyFontSize","_titleFontFamily","titleFontFamily","_titleFontStyle","titleFontSize","_titleAlign","_footerFontFamily","footerFontFamily","_footerFontStyle","footerFontSize","_footerAlign","opacity","legendColorBackground","getTooltipSize","tooltip","body","combinedBodyLength","reduce","bodyItem","before","lines","after","titleLineCount","footerLineCount","widthPadding","maxLineWidth","measureText","fontString","determineAlignment","lf","rf","olf","orf","yf","midX","midY","getBackgroundPoint","alignment","paddingAndSize","radiusAndPadding","getAlignedX","getBeforeAfterBodyLines","exports$4","_lastActive","getTitle","getBeforeBody","getBody","bodyItems","getAfterBody","getFooter","existingModel","active","_active","backgroundPoint","tooltipSize","caretX","caretY","labelColors","labelTextColors","_eventPosition","itemSort","dataPoints","drawCaret","tooltipPoint","caretPosition","getCaretPosition","x3","y3","ptX","ptY","tmp","drawTitle","rtlHelper","textBaseline","fillText","drawBody","drawColorBoxes","xLinePadding","colorX","fillLineOfText","textColor","bodyAlignForCalculation","rtlColorX","strokeRect","drawFooter","drawBackground","quadraticCurveTo","hasTooltipContent","globalAlpha","handleEvent","getElementsAtEventForMode","core_tooltip","valueOrDefault$9","events","onHover","animationDuration","responsive","responsiveAnimationDuration","mergeScaleConfig","slen","mergeConfig","initConfig","updateConfig","newOptions","ensureScalesHaveIDs","buildOrUpdateScales","nextAvailableScaleId","axesOpts","prefix","hasId","positionIsHorizontal","compare2Level","l1","l2","construct","_bufferedRender","instances","retinaScale","devicePixelRatio","bindEvents","resize","initToolTip","stop","silent","getMaximumWidth","getMaximumHeight","newSize","onResize","scalesOptions","scaleOptions","xAxisOptions","yAxisOptions","updated","dtype","dposition","isDefault","scaleType","scaleClass","mergeTicksOptions","hasUpdated","buildOrUpdateControllers","newControllers","destroyDatasetMeta","order","ControllerClass","resetElements","updateLayout","updateDatasets","lastActive","_bufferedRequest","_idx","updateDataset","animationOptions","animationObject","easingFunction","stepDecimal","layers","drawDatasets","_drawTooltip","_getSortedDatasetMetas","filterVisible","drawDataset","getElementAtEvent","getElementsAtEvent","getElementsAtXAxis","getDatasetAtEvent","_meta","generateLegend","unbindEvents","toBase64Image","toDataURL","_chartInstance","_listeners","eventHandler","updateHoverStyle","bufferedRequest","core_controller","Controller","types","configMerge","scaleMerge","abstract","DateAdapter","formats","parse","format","startOf","endOf","_create","override","members","core_adapters","_date","core_ticks","formatters","tickValue","logDelta","tickString","maxTick","logTick","numExponential","toExponential","numDecimal","toFixed","logarithmic","remain","valueOrDefault$a","drawOnChartArea","drawTicks","tickMarkLength","zeroLineWidth","zeroLineColor","zeroLineBorderDash","zeroLineBorderDashOffset","scaleLabel","labelString","minRotation","maxRotation","mirror","autoSkip","autoSkipPadding","labelOffset","minor","major","sample","arr","numItems","increment","getPixelForGridLine","validIndex","lineValue","garbageCollect","caches","gc","gcLen","computeLabelSizes","tickFonts","widths","heights","offsets","widestLabelSize","highestLabelSize","tickFont","nestedLabel","widest","highest","valueAt","first","getTickMarkLength","getScaleLabelHeight","parseFontOptions","nestedOpts","fontColor","parseTickFontOptions","nonSkipped","ticksToFilter","filtered","getEvenSpacing","calculateSpacing","majorIndices","axisLength","ticksLimit","evenMajorSpacing","spacing","factors","factor","getMajorIndices","skipMajors","tick","ceil","majorStart","majorEnd","Scale","zeroLineIndex","paddingLeft","paddingTop","paddingRight","paddingBottom","_ticks","_getLabels","xLabels","yLabels","beforeUpdate","margins","sampleSize","samplingEnabled","_labelSizes","_maxLabelLines","longestLabelWidth","longestTextCache","_gridLineItems","_labelItems","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","beforeBuildTicks","buildTicks","afterBuildTicks","_convertTicksToLabels","beforeCalculateTickRotation","calculateTickRotation","afterCalculateTickRotation","beforeFit","fit","afterFit","_ticksToDraw","_autoSkip","afterUpdate","reversePixels","startPixel","endPixel","_reversePixels","beforeTickToLabelConversion","convertTicksToLabels","userCallback","afterTickToLabelConversion","numTicks","labelRotation","labelSizes","maxLabelWidth","maxLabelHeight","tickWidth","maxLabelDiagonal","_isVisible","_getLabelSizes","toDegrees","scaleLabelOpts","gridLineOpts","isBottom","firstLabelSize","lastLabelSize","lineSpace","tickPadding","isRotated","angleRadians","toRadians","cosRotation","sinRotation","labelHeight","offsetLeft","offsetRight","labelWidth","handleMargins","isFullWidth","rawValue","_getScaleLabel","getValueForPixel","decimal","getDecimalForPixel","pixel","getBaseValue","maxTicksLimit","_tickSize","numMajorIndices","avgMajorSpacing","optionTicks","rot","_computeGridLineItems","ticksLength","tl","axisWidth","axisHalfWidth","alignPixel","_alignPixel","alignBorderValue","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","lineColor","_computeLabelItems","isMirrored","fonts","lineCount","textOffset","_drawGrid","firstLineWidth","lastLineWidth","_drawLabels","_drawTitle","scaleLabelFontColor","scaleLabelFont","scaleLabelPadding","halfLineHeight","scaleLabelX","scaleLabelY","isLeft","tz","gz","_draw","core_scale","isNullOrUndef$1","scale_category","ticksOpts","minIndex","maxIndex","_startValue","_valueRange","valueCategory","_defaults","isNullOrUndef$2","generateTicks","generationOptions","dataRange","stepSize","unit","maxNumSpaces","maxTicks","precision","rmin","rmax","niceNum","niceMin","niceMax","numSpaces","_decimalPlaces","almostWhole","almostEquals","scale_linearbase","handleTickRangeOptions","minSign","sign","maxSign","setMin","suggestedMin","setMax","suggestedMax","getTickLimit","_computeTickLimit","handleDirectionalChanges","numericGeneratorOptions","fixedStepSize","ticksAsNumbers","_endValue","defaultConfig$1","getOrCreateStack","neg","stackData","relativePoints","updateMinMax","scale_linear","hasStacks","NEGATIVE_INFINITY","stackValues","valueOrDefault$b","generateTicks$1","tickVal","endExp","endSignificand","exp","significand","minNotZero","lastTick","defaultConfig$2","nonNegativeOrDefault","scale_logarithmic","IDMatches","valuesPerStack","valuesForType","minVal","maxVal","DEFAULT_MIN","DEFAULT_MAX","tickValues","_getFirstTickValue","_valueOffset","valueOrDefault$c","valueAtIndexOrDefault$1","resolve$4","defaultConfig$3","animate","showLabelBackdrop","backdropColor","backdropPaddingY","backdropPaddingX","getTickBackdropHeight","measureLabelSize","longestText","determineLimits","fitWithPointLabels","plFont","furthestLimits","furthestAngles","textSize","_pointLabelSizes","valueCount","getPointPosition","drawingArea","getIndexAngle","hLimits","vLimits","setReductions","getTextAlignForAngle","adjustPointPositionForLabelHeight","drawPointLabels","pointLabelOpts","tickBackdropHeight","outerDistance","extra","pointLabelPosition","pointLabelFontColor","drawRadiusLine","numberOrZero","param","scale_radialLinear","setCenterPoint","largestPossibleRadius","radiusReductionLeft","radiusReductionRight","radiusReductionTop","radiusReductionBottom","leftMovement","rightMovement","topMovement","bottomMovement","maxRight","maxLeft","maxTop","maxBottom","angleMultiplier","scalingFactor","distanceFromCenter","thisAngle","getBasePosition","angleLineOpts","tickFontColor","deprecated$1","resolve$5","valueOrDefault$d","MIN_INTEGER","MIN_SAFE_INTEGER","MAX_INTEGER","MAX_SAFE_INTEGER","INTERVALS","millisecond","common","steps","second","minute","hour","day","week","month","quarter","year","UNITS","sorter","arrayUnique","hash","out","getMin","time","getMax","buildLookupTable","timestamps","distribution","table","lookup","lo","mid","i0","i1","interpolate$1","skey","tkey","span","toTimestamp","input","adapter","_adapter","parser","determineUnitForAutoTicks","minUnit","capacity","interval","determineUnitForFormatting","determineMajorUnit","generate","timeOpts","unitStepSize","weekday","isoWeekday","computeOffsets","setMajorTicks","majorUnit","ticksFromTimestamps","scale_time","adapters","date","displayFormats","timestamp","labelsAdded","dataLabels","_table","_timestamps","getLabelCapacity","_unit","_majorUnit","_offsets","tooltipFormat","datetime","tickFormatFunction","minorFormat","majorFormat","nestedTickOpts","formatter","getPixelForOffset","_getLabelSize","tickLabelWidth","tickFontSize","getLabelWidth","exampleTime","exampleLabel","displayFormat","moment","hookCallback","hooks","isObjectEmpty","getOwnPropertyNames","isUndefined","isDate","hasOwnProp","valueOf","createUTC","locale","strict","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","meridiem","rfc2822","weekdayMismatch","getParsingFlags","_pf","some","fun","_isValid","flags","parsedParts","isNowValid","_d","getTime","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","momentProperties","copyConfig","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","updateInProgress","Moment","updateOffset","isMoment","absFloor","number","toInt","argumentForCoercion","coercedNumber","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","msg","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","arg","deprecations","deprecateSimple","isFunction","Function","mergeConfigs","parentConfig","childConfig","Locale","aliases","addUnitAlias","shorthand","lowerCase","toLowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedInput","normalizedProp","priorities","addUnitPriority","priority","getPrioritizedUnits","unitsObj","u","zeroFill","targetLength","forceSign","absNumber","zerosToFill","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","func","localeData","removeFormattingTokens","replace","makeFormatFunction","mom","output","formatMoment","invalidDate","expandFormat","replaceLongDateFormatTokens","longDateFormat","lastIndex","test","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchSigned","matchShortOffset","matchWord","regexes","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","RegExp","unescapeFormat","regexEscape","matched","p1","p2","p3","p4","tokens","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","_a","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","parseTwoDigitYear","daysInYear","isLeapYear","getSetYear","makeGetSet","keepTime","set$1","daysInMonth","stringSet","prioritized","mod","o","modMonth","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","MONTHS_IN_FORMAT","defaultLocaleMonthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","setMonth","dayOfMonth","getSetMonth","computeMonthsParse","cmpLenRev","shortPieces","longPieces","mixedPieces","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","createDate","M","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","fwdlw","getUTCDay","dayOfYearFromWeeks","weekOffset","dayOfYear","resYear","resDayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","parseWeekday","parseIsoWeekday","shiftWeekdays","ws","defaultLocaleWeekdaysShort","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","computeWeekdaysParse","minPieces","minp","shortp","longp","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","hours","minutes","seconds","lowercase","matchMeridiem","_meridiemParse","kInput","_isPm","isPM","_meridiem","pos1","pos2","getSetHour","baseConfig","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","LTS","LT","L","LL","LLL","LLLL","dayOfMonthOrdinalParse","relativeTime","future","past","ss","mm","hh","dd","MM","yy","meridiemParse","locales","localeFamilies","globalLocale","normalizeLocale","chooseLocale","names","loadLocale","oldLocale","_abbr","getSetGlobalLocale","getLocale","defineLocale","abbr","parentLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","currentDateArray","nowValue","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","getDay","setUTCMinutes","getUTCMinutes","weekYear","temp","weekdayOverflow","GG","W","E","createLocal","_week","curWeek","gg","isoDates","isoTimes","configFromISO","exec","allowTime","dateFormat","timeFormat","tzFormat","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","weekdayProvided","weekdayActual","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","configFromString","createFromInputFallback","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","isPm","meridiemHour","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","score","configFromObject","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","prototypeMin","other","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","Duration","years","quarters","weeks","isoWeek","days","milliseconds","_milliseconds","_days","_months","_bubble","isDuration","absRound","separator","utcOffset","offsetFromString","matcher","parts","cloneWithOffset","setTime","local","getDateOffset","getTimezoneOffset","isUtc","createDuration","ret","diffRes","parseIso","momentsDifference","invalid","inp","positiveMomentsDifference","isAfter","isBefore","createAdder","period","dur","addSubtract","isAdding","subtract","monthDiff","wholeMonthDiff","anchor","anchor2","adjust","defaultFormat","defaultFormatUtc","newLocaleData","lang","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","isoWeekYear","addWeekYearFormatToken","getter","getSetWeekYearHelper","weeksTarget","setWeekAll","dayOfYearData","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetSecond","parseMs","getSetMillisecond","proto","sod","calendarFormat","asFloat","that","zoneDelta","startOfDate","inputString","postformat","withoutSuffix","humanize","fromNow","toNow","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","parsingFlags","toArray","toObject","toDate","toISOString","keepOffset","inspect","zone","isLocal","suffix","unix","creationData","isoWeeks","weekInfo","isoWeeksInYear","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","parseZone","tZone","hasAlignedHourOffset","isDST","isUtcOffset","zoneAbbr","zoneName","dates","isDSTShifted","_isDSTShifted","preParsePostFormat","proto$1","_calendar","_longDateFormat","formatUpper","_invalidDate","_ordinal","isFuture","_relativeTime","pastFuture","isFormat","_monthsShort","_monthsParseExact","firstDayOfYear","firstDayOfWeek","_weekdays","_weekdaysMin","_weekdaysShort","_weekdaysParseExact","_fullWeekdaysParse","isLower","get$1","field","setter","listMonthsImpl","listWeekdaysImpl","localeSorted","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","alias","as","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","abs$1","toISOString$1","Y","D","totalSign","ymSign","daysSign","hmsSign","proto$2","monthsFromDays","withSuffix","toIsoString","version","updateLocale","tmpLocale","relativeTimeRounding","relativeTimeThreshold","threshold","limit","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","WEEK","FORMATS","_id","amount","filler","propagate","mappers","visible","boundary","decodeFill","computeLinearBoundary","scaleBottom","scaleTop","scaleZero","computeCircularBoundary","cx","cy","computeBoundary","resolveTarget","visited","createMapper","isDrawable","drawArea","curve0","curve1","len0","len1","doFill","mapper","loop","p0","d0","d1","loopOffset","getRtlHelper$1","noop$1","valueOrDefault$e","ci","onLeave","boxWidth","usePointStyle","lineDash","getBoxWidth","labelOpts","Legend","legendHitBoxes","_hoveredItem","doughnutMode","beforeBuildLabels","buildLabels","afterBuildLabels","legendItems","labelFont","hitboxes","lineWidths","totalHeight","vPadding","columnWidths","columnHeights","totalWidth","currentColWidth","currentColHeight","lineDefault","legendHeight","legendWidth","cursor","drawLegendBox","SQRT2","textWidth","halfFontSize","xLeft","yMiddle","alignmentOffset","dimension","blockSize","itemHeight","realX","_getLegendItemAt","hitBox","lh","hoveredItem","createNewLegendAndAttach","legendOpts","noop$2","Title","fontOpts","titleX","titleY","createNewTitleBlockAndAttach","titleOpts","titleBlock","afterDatasetsUpdate","$filler","beforeDatasetsDraw","_element","beforeInit","afterEvent","core_helpers","collection","filterCallback","findNextWhere","arrayToSearch","startIndex","currentItem","findPreviousWhere","rounded","radians","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","aliasPixel","pixelWidth","currentDevicePixelRatio","halfWidth","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","fa","fb","EPSILON","pointsWithTangents","deltaK","mK","pointsLen","pointBefore","pointCurrent","pointAfter","slopeDeltaX","alphaK","betaK","tauK","squaredMagnitude","fraction","niceFraction","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","setTimeout","evt","originalEvent","srcElement","boundingRect","getBoundingClientRect","touches","clientX","clientY","parseMaxStyle","styleValue","parentProperty","valueInPixels","isConstrainedValue","getConstraintDimension","domNode","maxStyle","percentageProperty","defaultView","_getParentNode","constrainedNode","getComputedStyle","constrainedContainer","hasCNode","hasCContainer","infinity","getConstraintWidth","getConstraintHeight","_calculatePadding","parentDimension","cw","clientHeight","ch","currentStyle","forceRatio","pixelRatio","pixelSize","arrayOfThings","longest","thing","nestedThing","numberOfLabelLines","numberOfLines","CanvasGradient","colorValue","CanvasPattern","_adapters","Animation","animationService","Interaction","scaleService","Ticks","Tooltip","category","radialLinear","pluginService","PluginBase","canvasHelpers","layoutService","LinearScaleBase","klass","cfg"],"mappings":"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","sourcesContent":["/*!\n * Chart.js v2.9.4\n * https://www.chartjs.org\n * (c) 2020 Chart.js Contributors\n * Released under the MIT License\n */\n(function (global, factory) {\ntypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\ntypeof define === 'function' && define.amd ? define(factory) :\n(global = global || self, global.Chart = factory());\n}(this, (function () { 'use strict';\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction commonjsRequire () {\n\tthrow new Error('Dynamic requires are not currently supported by rollup-plugin-commonjs');\n}\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nfunction getCjsExportFromNamespace (n) {\n\treturn n && n['default'] || n;\n}\n\nvar colorName = {\n\t\"aliceblue\": [240, 248, 255],\n\t\"antiquewhite\": [250, 235, 215],\n\t\"aqua\": [0, 255, 255],\n\t\"aquamarine\": [127, 255, 212],\n\t\"azure\": [240, 255, 255],\n\t\"beige\": [245, 245, 220],\n\t\"bisque\": [255, 228, 196],\n\t\"black\": [0, 0, 0],\n\t\"blanchedalmond\": [255, 235, 205],\n\t\"blue\": [0, 0, 255],\n\t\"blueviolet\": [138, 43, 226],\n\t\"brown\": [165, 42, 42],\n\t\"burlywood\": [222, 184, 135],\n\t\"cadetblue\": [95, 158, 160],\n\t\"chartreuse\": [127, 255, 0],\n\t\"chocolate\": [210, 105, 30],\n\t\"coral\": [255, 127, 80],\n\t\"cornflowerblue\": [100, 149, 237],\n\t\"cornsilk\": [255, 248, 220],\n\t\"crimson\": [220, 20, 60],\n\t\"cyan\": [0, 255, 255],\n\t\"darkblue\": [0, 0, 139],\n\t\"darkcyan\": [0, 139, 139],\n\t\"darkgoldenrod\": [184, 134, 11],\n\t\"darkgray\": [169, 169, 169],\n\t\"darkgreen\": [0, 100, 0],\n\t\"darkgrey\": [169, 169, 169],\n\t\"darkkhaki\": [189, 183, 107],\n\t\"darkmagenta\": [139, 0, 139],\n\t\"darkolivegreen\": [85, 107, 47],\n\t\"darkorange\": [255, 140, 0],\n\t\"darkorchid\": [153, 50, 204],\n\t\"darkred\": [139, 0, 0],\n\t\"darksalmon\": [233, 150, 122],\n\t\"darkseagreen\": [143, 188, 143],\n\t\"darkslateblue\": [72, 61, 139],\n\t\"darkslategray\": [47, 79, 79],\n\t\"darkslategrey\": [47, 79, 79],\n\t\"darkturquoise\": [0, 206, 209],\n\t\"darkviolet\": [148, 0, 211],\n\t\"deeppink\": [255, 20, 147],\n\t\"deepskyblue\": [0, 191, 255],\n\t\"dimgray\": [105, 105, 105],\n\t\"dimgrey\": [105, 105, 105],\n\t\"dodgerblue\": [30, 144, 255],\n\t\"firebrick\": [178, 34, 34],\n\t\"floralwhite\": [255, 250, 240],\n\t\"forestgreen\": [34, 139, 34],\n\t\"fuchsia\": [255, 0, 255],\n\t\"gainsboro\": [220, 220, 220],\n\t\"ghostwhite\": [248, 248, 255],\n\t\"gold\": [255, 215, 0],\n\t\"goldenrod\": [218, 165, 32],\n\t\"gray\": [128, 128, 128],\n\t\"green\": [0, 128, 0],\n\t\"greenyellow\": [173, 255, 47],\n\t\"grey\": [128, 128, 128],\n\t\"honeydew\": [240, 255, 240],\n\t\"hotpink\": [255, 105, 180],\n\t\"indianred\": [205, 92, 92],\n\t\"indigo\": [75, 0, 130],\n\t\"ivory\": [255, 255, 240],\n\t\"khaki\": [240, 230, 140],\n\t\"lavender\": [230, 230, 250],\n\t\"lavenderblush\": [255, 240, 245],\n\t\"lawngreen\": [124, 252, 0],\n\t\"lemonchiffon\": [255, 250, 205],\n\t\"lightblue\": [173, 216, 230],\n\t\"lightcoral\": [240, 128, 128],\n\t\"lightcyan\": [224, 255, 255],\n\t\"lightgoldenrodyellow\": [250, 250, 210],\n\t\"lightgray\": [211, 211, 211],\n\t\"lightgreen\": [144, 238, 144],\n\t\"lightgrey\": [211, 211, 211],\n\t\"lightpink\": [255, 182, 193],\n\t\"lightsalmon\": [255, 160, 122],\n\t\"lightseagreen\": [32, 178, 170],\n\t\"lightskyblue\": [135, 206, 250],\n\t\"lightslategray\": [119, 136, 153],\n\t\"lightslategrey\": [119, 136, 153],\n\t\"lightsteelblue\": [176, 196, 222],\n\t\"lightyellow\": [255, 255, 224],\n\t\"lime\": [0, 255, 0],\n\t\"limegreen\": [50, 205, 50],\n\t\"linen\": [250, 240, 230],\n\t\"magenta\": [255, 0, 255],\n\t\"maroon\": [128, 0, 0],\n\t\"mediumaquamarine\": [102, 205, 170],\n\t\"mediumblue\": [0, 0, 205],\n\t\"mediumorchid\": [186, 85, 211],\n\t\"mediumpurple\": [147, 112, 219],\n\t\"mediumseagreen\": [60, 179, 113],\n\t\"mediumslateblue\": [123, 104, 238],\n\t\"mediumspringgreen\": [0, 250, 154],\n\t\"mediumturquoise\": [72, 209, 204],\n\t\"mediumvioletred\": [199, 21, 133],\n\t\"midnightblue\": [25, 25, 112],\n\t\"mintcream\": [245, 255, 250],\n\t\"mistyrose\": [255, 228, 225],\n\t\"moccasin\": [255, 228, 181],\n\t\"navajowhite\": [255, 222, 173],\n\t\"navy\": [0, 0, 128],\n\t\"oldlace\": [253, 245, 230],\n\t\"olive\": [128, 128, 0],\n\t\"olivedrab\": [107, 142, 35],\n\t\"orange\": [255, 165, 0],\n\t\"orangered\": [255, 69, 0],\n\t\"orchid\": [218, 112, 214],\n\t\"palegoldenrod\": [238, 232, 170],\n\t\"palegreen\": [152, 251, 152],\n\t\"paleturquoise\": [175, 238, 238],\n\t\"palevioletred\": [219, 112, 147],\n\t\"papayawhip\": [255, 239, 213],\n\t\"peachpuff\": [255, 218, 185],\n\t\"peru\": [205, 133, 63],\n\t\"pink\": [255, 192, 203],\n\t\"plum\": [221, 160, 221],\n\t\"powderblue\": [176, 224, 230],\n\t\"purple\": [128, 0, 128],\n\t\"rebeccapurple\": [102, 51, 153],\n\t\"red\": [255, 0, 0],\n\t\"rosybrown\": [188, 143, 143],\n\t\"royalblue\": [65, 105, 225],\n\t\"saddlebrown\": [139, 69, 19],\n\t\"salmon\": [250, 128, 114],\n\t\"sandybrown\": [244, 164, 96],\n\t\"seagreen\": [46, 139, 87],\n\t\"seashell\": [255, 245, 238],\n\t\"sienna\": [160, 82, 45],\n\t\"silver\": [192, 192, 192],\n\t\"skyblue\": [135, 206, 235],\n\t\"slateblue\": [106, 90, 205],\n\t\"slategray\": [112, 128, 144],\n\t\"slategrey\": [112, 128, 144],\n\t\"snow\": [255, 250, 250],\n\t\"springgreen\": [0, 255, 127],\n\t\"steelblue\": [70, 130, 180],\n\t\"tan\": [210, 180, 140],\n\t\"teal\": [0, 128, 128],\n\t\"thistle\": [216, 191, 216],\n\t\"tomato\": [255, 99, 71],\n\t\"turquoise\": [64, 224, 208],\n\t\"violet\": [238, 130, 238],\n\t\"wheat\": [245, 222, 179],\n\t\"white\": [255, 255, 255],\n\t\"whitesmoke\": [245, 245, 245],\n\t\"yellow\": [255, 255, 0],\n\t\"yellowgreen\": [154, 205, 50]\n};\n\nvar conversions = createCommonjsModule(function (module) {\n/* MIT license */\n\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in colorName) {\n\tif (colorName.hasOwnProperty(key)) {\n\t\treverseKeywords[colorName[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in colorName) {\n\t\tif (colorName.hasOwnProperty(keyword)) {\n\t\t\tvar value = colorName[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn colorName[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n});\nvar conversions_1 = conversions.rgb;\nvar conversions_2 = conversions.hsl;\nvar conversions_3 = conversions.hsv;\nvar conversions_4 = conversions.hwb;\nvar conversions_5 = conversions.cmyk;\nvar conversions_6 = conversions.xyz;\nvar conversions_7 = conversions.lab;\nvar conversions_8 = conversions.lch;\nvar conversions_9 = conversions.hex;\nvar conversions_10 = conversions.keyword;\nvar conversions_11 = conversions.ansi16;\nvar conversions_12 = conversions.ansi256;\nvar conversions_13 = conversions.hcg;\nvar conversions_14 = conversions.apple;\nvar conversions_15 = conversions.gray;\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nvar route = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nvar colorConvert = convert;\n\nvar colorName$1 = {\n\t\"aliceblue\": [240, 248, 255],\n\t\"antiquewhite\": [250, 235, 215],\n\t\"aqua\": [0, 255, 255],\n\t\"aquamarine\": [127, 255, 212],\n\t\"azure\": [240, 255, 255],\n\t\"beige\": [245, 245, 220],\n\t\"bisque\": [255, 228, 196],\n\t\"black\": [0, 0, 0],\n\t\"blanchedalmond\": [255, 235, 205],\n\t\"blue\": [0, 0, 255],\n\t\"blueviolet\": [138, 43, 226],\n\t\"brown\": [165, 42, 42],\n\t\"burlywood\": [222, 184, 135],\n\t\"cadetblue\": [95, 158, 160],\n\t\"chartreuse\": [127, 255, 0],\n\t\"chocolate\": [210, 105, 30],\n\t\"coral\": [255, 127, 80],\n\t\"cornflowerblue\": [100, 149, 237],\n\t\"cornsilk\": [255, 248, 220],\n\t\"crimson\": [220, 20, 60],\n\t\"cyan\": [0, 255, 255],\n\t\"darkblue\": [0, 0, 139],\n\t\"darkcyan\": [0, 139, 139],\n\t\"darkgoldenrod\": [184, 134, 11],\n\t\"darkgray\": [169, 169, 169],\n\t\"darkgreen\": [0, 100, 0],\n\t\"darkgrey\": [169, 169, 169],\n\t\"darkkhaki\": [189, 183, 107],\n\t\"darkmagenta\": [139, 0, 139],\n\t\"darkolivegreen\": [85, 107, 47],\n\t\"darkorange\": [255, 140, 0],\n\t\"darkorchid\": [153, 50, 204],\n\t\"darkred\": [139, 0, 0],\n\t\"darksalmon\": [233, 150, 122],\n\t\"darkseagreen\": [143, 188, 143],\n\t\"darkslateblue\": [72, 61, 139],\n\t\"darkslategray\": [47, 79, 79],\n\t\"darkslategrey\": [47, 79, 79],\n\t\"darkturquoise\": [0, 206, 209],\n\t\"darkviolet\": [148, 0, 211],\n\t\"deeppink\": [255, 20, 147],\n\t\"deepskyblue\": [0, 191, 255],\n\t\"dimgray\": [105, 105, 105],\n\t\"dimgrey\": [105, 105, 105],\n\t\"dodgerblue\": [30, 144, 255],\n\t\"firebrick\": [178, 34, 34],\n\t\"floralwhite\": [255, 250, 240],\n\t\"forestgreen\": [34, 139, 34],\n\t\"fuchsia\": [255, 0, 255],\n\t\"gainsboro\": [220, 220, 220],\n\t\"ghostwhite\": [248, 248, 255],\n\t\"gold\": [255, 215, 0],\n\t\"goldenrod\": [218, 165, 32],\n\t\"gray\": [128, 128, 128],\n\t\"green\": [0, 128, 0],\n\t\"greenyellow\": [173, 255, 47],\n\t\"grey\": [128, 128, 128],\n\t\"honeydew\": [240, 255, 240],\n\t\"hotpink\": [255, 105, 180],\n\t\"indianred\": [205, 92, 92],\n\t\"indigo\": [75, 0, 130],\n\t\"ivory\": [255, 255, 240],\n\t\"khaki\": [240, 230, 140],\n\t\"lavender\": [230, 230, 250],\n\t\"lavenderblush\": [255, 240, 245],\n\t\"lawngreen\": [124, 252, 0],\n\t\"lemonchiffon\": [255, 250, 205],\n\t\"lightblue\": [173, 216, 230],\n\t\"lightcoral\": [240, 128, 128],\n\t\"lightcyan\": [224, 255, 255],\n\t\"lightgoldenrodyellow\": [250, 250, 210],\n\t\"lightgray\": [211, 211, 211],\n\t\"lightgreen\": [144, 238, 144],\n\t\"lightgrey\": [211, 211, 211],\n\t\"lightpink\": [255, 182, 193],\n\t\"lightsalmon\": [255, 160, 122],\n\t\"lightseagreen\": [32, 178, 170],\n\t\"lightskyblue\": [135, 206, 250],\n\t\"lightslategray\": [119, 136, 153],\n\t\"lightslategrey\": [119, 136, 153],\n\t\"lightsteelblue\": [176, 196, 222],\n\t\"lightyellow\": [255, 255, 224],\n\t\"lime\": [0, 255, 0],\n\t\"limegreen\": [50, 205, 50],\n\t\"linen\": [250, 240, 230],\n\t\"magenta\": [255, 0, 255],\n\t\"maroon\": [128, 0, 0],\n\t\"mediumaquamarine\": [102, 205, 170],\n\t\"mediumblue\": [0, 0, 205],\n\t\"mediumorchid\": [186, 85, 211],\n\t\"mediumpurple\": [147, 112, 219],\n\t\"mediumseagreen\": [60, 179, 113],\n\t\"mediumslateblue\": [123, 104, 238],\n\t\"mediumspringgreen\": [0, 250, 154],\n\t\"mediumturquoise\": [72, 209, 204],\n\t\"mediumvioletred\": [199, 21, 133],\n\t\"midnightblue\": [25, 25, 112],\n\t\"mintcream\": [245, 255, 250],\n\t\"mistyrose\": [255, 228, 225],\n\t\"moccasin\": [255, 228, 181],\n\t\"navajowhite\": [255, 222, 173],\n\t\"navy\": [0, 0, 128],\n\t\"oldlace\": [253, 245, 230],\n\t\"olive\": [128, 128, 0],\n\t\"olivedrab\": [107, 142, 35],\n\t\"orange\": [255, 165, 0],\n\t\"orangered\": [255, 69, 0],\n\t\"orchid\": [218, 112, 214],\n\t\"palegoldenrod\": [238, 232, 170],\n\t\"palegreen\": [152, 251, 152],\n\t\"paleturquoise\": [175, 238, 238],\n\t\"palevioletred\": [219, 112, 147],\n\t\"papayawhip\": [255, 239, 213],\n\t\"peachpuff\": [255, 218, 185],\n\t\"peru\": [205, 133, 63],\n\t\"pink\": [255, 192, 203],\n\t\"plum\": [221, 160, 221],\n\t\"powderblue\": [176, 224, 230],\n\t\"purple\": [128, 0, 128],\n\t\"rebeccapurple\": [102, 51, 153],\n\t\"red\": [255, 0, 0],\n\t\"rosybrown\": [188, 143, 143],\n\t\"royalblue\": [65, 105, 225],\n\t\"saddlebrown\": [139, 69, 19],\n\t\"salmon\": [250, 128, 114],\n\t\"sandybrown\": [244, 164, 96],\n\t\"seagreen\": [46, 139, 87],\n\t\"seashell\": [255, 245, 238],\n\t\"sienna\": [160, 82, 45],\n\t\"silver\": [192, 192, 192],\n\t\"skyblue\": [135, 206, 235],\n\t\"slateblue\": [106, 90, 205],\n\t\"slategray\": [112, 128, 144],\n\t\"slategrey\": [112, 128, 144],\n\t\"snow\": [255, 250, 250],\n\t\"springgreen\": [0, 255, 127],\n\t\"steelblue\": [70, 130, 180],\n\t\"tan\": [210, 180, 140],\n\t\"teal\": [0, 128, 128],\n\t\"thistle\": [216, 191, 216],\n\t\"tomato\": [255, 99, 71],\n\t\"turquoise\": [64, 224, 208],\n\t\"violet\": [238, 130, 238],\n\t\"wheat\": [245, 222, 179],\n\t\"white\": [255, 255, 255],\n\t\"whitesmoke\": [245, 245, 245],\n\t\"yellow\": [255, 255, 0],\n\t\"yellowgreen\": [154, 205, 50]\n};\n\n/* MIT license */\n\n\nvar colorString = {\n getRgba: getRgba,\n getHsla: getHsla,\n getRgb: getRgb,\n getHsl: getHsl,\n getHwb: getHwb,\n getAlpha: getAlpha,\n\n hexString: hexString,\n rgbString: rgbString,\n rgbaString: rgbaString,\n percentString: percentString,\n percentaString: percentaString,\n hslString: hslString,\n hslaString: hslaString,\n hwbString: hwbString,\n keyword: keyword\n};\n\nfunction getRgba(string) {\n if (!string) {\n return;\n }\n var abbr = /^#([a-fA-F0-9]{3,4})$/i,\n hex = /^#([a-fA-F0-9]{6}([a-fA-F0-9]{2})?)$/i,\n rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n keyword = /(\\w+)/;\n\n var rgb = [0, 0, 0],\n a = 1,\n match = string.match(abbr),\n hexAlpha = \"\";\n if (match) {\n match = match[1];\n hexAlpha = match[3];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i] + match[i], 16);\n }\n if (hexAlpha) {\n a = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;\n }\n }\n else if (match = string.match(hex)) {\n hexAlpha = match[2];\n match = match[1];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match.slice(i * 2, i * 2 + 2), 16);\n }\n if (hexAlpha) {\n a = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;\n }\n }\n else if (match = string.match(rgba)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i + 1]);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(per)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(keyword)) {\n if (match[1] == \"transparent\") {\n return [0, 0, 0, 0];\n }\n rgb = colorName$1[match[1]];\n if (!rgb) {\n return;\n }\n }\n\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = scale(rgb[i], 0, 255);\n }\n if (!a && a != 0) {\n a = 1;\n }\n else {\n a = scale(a, 0, 1);\n }\n rgb[3] = a;\n return rgb;\n}\n\nfunction getHsla(string) {\n if (!string) {\n return;\n }\n var hsl = /^hsla?\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hsl);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n s = scale(parseFloat(match[2]), 0, 100),\n l = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, s, l, a];\n }\n}\n\nfunction getHwb(string) {\n if (!string) {\n return;\n }\n var hwb = /^hwb\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hwb);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n w = scale(parseFloat(match[2]), 0, 100),\n b = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, w, b, a];\n }\n}\n\nfunction getRgb(string) {\n var rgba = getRgba(string);\n return rgba && rgba.slice(0, 3);\n}\n\nfunction getHsl(string) {\n var hsla = getHsla(string);\n return hsla && hsla.slice(0, 3);\n}\n\nfunction getAlpha(string) {\n var vals = getRgba(string);\n if (vals) {\n return vals[3];\n }\n else if (vals = getHsla(string)) {\n return vals[3];\n }\n else if (vals = getHwb(string)) {\n return vals[3];\n }\n}\n\n// generators\nfunction hexString(rgba, a) {\n var a = (a !== undefined && rgba.length === 3) ? a : rgba[3];\n return \"#\" + hexDouble(rgba[0]) \n + hexDouble(rgba[1])\n + hexDouble(rgba[2])\n + (\n (a >= 0 && a < 1)\n ? hexDouble(Math.round(a * 255))\n : \"\"\n );\n}\n\nfunction rgbString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return rgbaString(rgba, alpha);\n }\n return \"rgb(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2] + \")\";\n}\n\nfunction rgbaString(rgba, alpha) {\n if (alpha === undefined) {\n alpha = (rgba[3] !== undefined ? rgba[3] : 1);\n }\n return \"rgba(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2]\n + \", \" + alpha + \")\";\n}\n\nfunction percentString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return percentaString(rgba, alpha);\n }\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n\n return \"rgb(\" + r + \"%, \" + g + \"%, \" + b + \"%)\";\n}\n\nfunction percentaString(rgba, alpha) {\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n return \"rgba(\" + r + \"%, \" + g + \"%, \" + b + \"%, \" + (alpha || rgba[3] || 1) + \")\";\n}\n\nfunction hslString(hsla, alpha) {\n if (alpha < 1 || (hsla[3] && hsla[3] < 1)) {\n return hslaString(hsla, alpha);\n }\n return \"hsl(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%)\";\n}\n\nfunction hslaString(hsla, alpha) {\n if (alpha === undefined) {\n alpha = (hsla[3] !== undefined ? hsla[3] : 1);\n }\n return \"hsla(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%, \"\n + alpha + \")\";\n}\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\nfunction hwbString(hwb, alpha) {\n if (alpha === undefined) {\n alpha = (hwb[3] !== undefined ? hwb[3] : 1);\n }\n return \"hwb(\" + hwb[0] + \", \" + hwb[1] + \"%, \" + hwb[2] + \"%\"\n + (alpha !== undefined && alpha !== 1 ? \", \" + alpha : \"\") + \")\";\n}\n\nfunction keyword(rgb) {\n return reverseNames[rgb.slice(0, 3)];\n}\n\n// helpers\nfunction scale(num, min, max) {\n return Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n var str = num.toString(16).toUpperCase();\n return (str.length < 2) ? \"0\" + str : str;\n}\n\n\n//create a list of reverse color names\nvar reverseNames = {};\nfor (var name in colorName$1) {\n reverseNames[colorName$1[name]] = name;\n}\n\n/* MIT license */\n\n\n\nvar Color = function (obj) {\n\tif (obj instanceof Color) {\n\t\treturn obj;\n\t}\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj);\n\t}\n\n\tthis.valid = false;\n\tthis.values = {\n\t\trgb: [0, 0, 0],\n\t\thsl: [0, 0, 0],\n\t\thsv: [0, 0, 0],\n\t\thwb: [0, 0, 0],\n\t\tcmyk: [0, 0, 0, 0],\n\t\talpha: 1\n\t};\n\n\t// parse Color() argument\n\tvar vals;\n\tif (typeof obj === 'string') {\n\t\tvals = colorString.getRgba(obj);\n\t\tif (vals) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals = colorString.getHsla(obj)) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals = colorString.getHwb(obj)) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t}\n\t} else if (typeof obj === 'object') {\n\t\tvals = obj;\n\t\tif (vals.r !== undefined || vals.red !== undefined) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals.l !== undefined || vals.lightness !== undefined) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals.v !== undefined || vals.value !== undefined) {\n\t\t\tthis.setValues('hsv', vals);\n\t\t} else if (vals.w !== undefined || vals.whiteness !== undefined) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t} else if (vals.c !== undefined || vals.cyan !== undefined) {\n\t\t\tthis.setValues('cmyk', vals);\n\t\t}\n\t}\n};\n\nColor.prototype = {\n\tisValid: function () {\n\t\treturn this.valid;\n\t},\n\trgb: function () {\n\t\treturn this.setSpace('rgb', arguments);\n\t},\n\thsl: function () {\n\t\treturn this.setSpace('hsl', arguments);\n\t},\n\thsv: function () {\n\t\treturn this.setSpace('hsv', arguments);\n\t},\n\thwb: function () {\n\t\treturn this.setSpace('hwb', arguments);\n\t},\n\tcmyk: function () {\n\t\treturn this.setSpace('cmyk', arguments);\n\t},\n\n\trgbArray: function () {\n\t\treturn this.values.rgb;\n\t},\n\thslArray: function () {\n\t\treturn this.values.hsl;\n\t},\n\thsvArray: function () {\n\t\treturn this.values.hsv;\n\t},\n\thwbArray: function () {\n\t\tvar values = this.values;\n\t\tif (values.alpha !== 1) {\n\t\t\treturn values.hwb.concat([values.alpha]);\n\t\t}\n\t\treturn values.hwb;\n\t},\n\tcmykArray: function () {\n\t\treturn this.values.cmyk;\n\t},\n\trgbaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.rgb.concat([values.alpha]);\n\t},\n\thslaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.hsl.concat([values.alpha]);\n\t},\n\talpha: function (val) {\n\t\tif (val === undefined) {\n\t\t\treturn this.values.alpha;\n\t\t}\n\t\tthis.setValues('alpha', val);\n\t\treturn this;\n\t},\n\n\tred: function (val) {\n\t\treturn this.setChannel('rgb', 0, val);\n\t},\n\tgreen: function (val) {\n\t\treturn this.setChannel('rgb', 1, val);\n\t},\n\tblue: function (val) {\n\t\treturn this.setChannel('rgb', 2, val);\n\t},\n\thue: function (val) {\n\t\tif (val) {\n\t\t\tval %= 360;\n\t\t\tval = val < 0 ? 360 + val : val;\n\t\t}\n\t\treturn this.setChannel('hsl', 0, val);\n\t},\n\tsaturation: function (val) {\n\t\treturn this.setChannel('hsl', 1, val);\n\t},\n\tlightness: function (val) {\n\t\treturn this.setChannel('hsl', 2, val);\n\t},\n\tsaturationv: function (val) {\n\t\treturn this.setChannel('hsv', 1, val);\n\t},\n\twhiteness: function (val) {\n\t\treturn this.setChannel('hwb', 1, val);\n\t},\n\tblackness: function (val) {\n\t\treturn this.setChannel('hwb', 2, val);\n\t},\n\tvalue: function (val) {\n\t\treturn this.setChannel('hsv', 2, val);\n\t},\n\tcyan: function (val) {\n\t\treturn this.setChannel('cmyk', 0, val);\n\t},\n\tmagenta: function (val) {\n\t\treturn this.setChannel('cmyk', 1, val);\n\t},\n\tyellow: function (val) {\n\t\treturn this.setChannel('cmyk', 2, val);\n\t},\n\tblack: function (val) {\n\t\treturn this.setChannel('cmyk', 3, val);\n\t},\n\n\thexString: function () {\n\t\treturn colorString.hexString(this.values.rgb);\n\t},\n\trgbString: function () {\n\t\treturn colorString.rgbString(this.values.rgb, this.values.alpha);\n\t},\n\trgbaString: function () {\n\t\treturn colorString.rgbaString(this.values.rgb, this.values.alpha);\n\t},\n\tpercentString: function () {\n\t\treturn colorString.percentString(this.values.rgb, this.values.alpha);\n\t},\n\thslString: function () {\n\t\treturn colorString.hslString(this.values.hsl, this.values.alpha);\n\t},\n\thslaString: function () {\n\t\treturn colorString.hslaString(this.values.hsl, this.values.alpha);\n\t},\n\thwbString: function () {\n\t\treturn colorString.hwbString(this.values.hwb, this.values.alpha);\n\t},\n\tkeyword: function () {\n\t\treturn colorString.keyword(this.values.rgb, this.values.alpha);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.values.rgb;\n\t\treturn (rgb[0] << 16) | (rgb[1] << 8) | rgb[2];\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.values.rgb;\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tdark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.values.rgb;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tlight: function () {\n\t\treturn !this.dark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = [];\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb[i] = 255 - this.values.rgb[i];\n\t\t}\n\t\tthis.setValues('rgb', rgb);\n\t\treturn this;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] += hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] -= hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] += hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] -= hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[1] += hwb[1] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[2] += hwb[2] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tgreyscale: function () {\n\t\tvar rgb = this.values.rgb;\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\tthis.setValues('rgb', [val, val, val]);\n\t\treturn this;\n\t},\n\n\tclearer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha - (alpha * ratio));\n\t\treturn this;\n\t},\n\n\topaquer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha + (alpha * ratio));\n\t\treturn this;\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.values.hsl;\n\t\tvar hue = (hsl[0] + degrees) % 360;\n\t\thsl[0] = hue < 0 ? 360 + hue : hue;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\t/**\n\t * Ported from sass implementation in C\n\t * https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t */\n\tmix: function (mixinColor, weight) {\n\t\tvar color1 = this;\n\t\tvar color2 = mixinColor;\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn this\n\t\t\t.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue()\n\t\t\t)\n\t\t\t.alpha(color1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n\n\ttoJSON: function () {\n\t\treturn this.rgb();\n\t},\n\n\tclone: function () {\n\t\t// NOTE(SB): using node-clone creates a dependency to Buffer when using browserify,\n\t\t// making the final build way to big to embed in Chart.js. So let's do it manually,\n\t\t// assuming that values to clone are 1 dimension arrays containing only numbers,\n\t\t// except 'alpha' which is a number.\n\t\tvar result = new Color();\n\t\tvar source = this.values;\n\t\tvar target = result.values;\n\t\tvar value, type;\n\n\t\tfor (var prop in source) {\n\t\t\tif (source.hasOwnProperty(prop)) {\n\t\t\t\tvalue = source[prop];\n\t\t\t\ttype = ({}).toString.call(value);\n\t\t\t\tif (type === '[object Array]') {\n\t\t\t\t\ttarget[prop] = value.slice(0);\n\t\t\t\t} else if (type === '[object Number]') {\n\t\t\t\t\ttarget[prop] = value;\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error('unexpected color value:', value);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n};\n\nColor.prototype.spaces = {\n\trgb: ['red', 'green', 'blue'],\n\thsl: ['hue', 'saturation', 'lightness'],\n\thsv: ['hue', 'saturation', 'value'],\n\thwb: ['hue', 'whiteness', 'blackness'],\n\tcmyk: ['cyan', 'magenta', 'yellow', 'black']\n};\n\nColor.prototype.maxes = {\n\trgb: [255, 255, 255],\n\thsl: [360, 100, 100],\n\thsv: [360, 100, 100],\n\thwb: [360, 100, 100],\n\tcmyk: [100, 100, 100, 100]\n};\n\nColor.prototype.getValues = function (space) {\n\tvar values = this.values;\n\tvar vals = {};\n\n\tfor (var i = 0; i < space.length; i++) {\n\t\tvals[space.charAt(i)] = values[space][i];\n\t}\n\n\tif (values.alpha !== 1) {\n\t\tvals.a = values.alpha;\n\t}\n\n\t// {r: 255, g: 255, b: 255, a: 0.4}\n\treturn vals;\n};\n\nColor.prototype.setValues = function (space, vals) {\n\tvar values = this.values;\n\tvar spaces = this.spaces;\n\tvar maxes = this.maxes;\n\tvar alpha = 1;\n\tvar i;\n\n\tthis.valid = true;\n\n\tif (space === 'alpha') {\n\t\talpha = vals;\n\t} else if (vals.length) {\n\t\t// [10, 10, 10]\n\t\tvalues[space] = vals.slice(0, space.length);\n\t\talpha = vals[space.length];\n\t} else if (vals[space.charAt(0)] !== undefined) {\n\t\t// {r: 10, g: 10, b: 10}\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[space.charAt(i)];\n\t\t}\n\n\t\talpha = vals.a;\n\t} else if (vals[spaces[space][0]] !== undefined) {\n\t\t// {red: 10, green: 10, blue: 10}\n\t\tvar chans = spaces[space];\n\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[chans[i]];\n\t\t}\n\n\t\talpha = vals.alpha;\n\t}\n\n\tvalues.alpha = Math.max(0, Math.min(1, (alpha === undefined ? values.alpha : alpha)));\n\n\tif (space === 'alpha') {\n\t\treturn false;\n\t}\n\n\tvar capped;\n\n\t// cap values of the space prior converting all values\n\tfor (i = 0; i < space.length; i++) {\n\t\tcapped = Math.max(0, Math.min(maxes[space][i], values[space][i]));\n\t\tvalues[space][i] = Math.round(capped);\n\t}\n\n\t// convert to all the other color spaces\n\tfor (var sname in spaces) {\n\t\tif (sname !== space) {\n\t\t\tvalues[sname] = colorConvert[space][sname](values[space]);\n\t\t}\n\t}\n\n\treturn true;\n};\n\nColor.prototype.setSpace = function (space, args) {\n\tvar vals = args[0];\n\n\tif (vals === undefined) {\n\t\t// color.rgb()\n\t\treturn this.getValues(space);\n\t}\n\n\t// color.rgb(10, 10, 10)\n\tif (typeof vals === 'number') {\n\t\tvals = Array.prototype.slice.call(args);\n\t}\n\n\tthis.setValues(space, vals);\n\treturn this;\n};\n\nColor.prototype.setChannel = function (space, index, val) {\n\tvar svalues = this.values[space];\n\tif (val === undefined) {\n\t\t// color.red()\n\t\treturn svalues[index];\n\t} else if (val === svalues[index]) {\n\t\t// color.red(color.red())\n\t\treturn this;\n\t}\n\n\t// color.red(100)\n\tsvalues[index] = val;\n\tthis.setValues(space, svalues);\n\n\treturn this;\n};\n\nif (typeof window !== 'undefined') {\n\twindow.Color = Color;\n}\n\nvar chartjsColor = Color;\n\nfunction isValidKey(key) {\n\treturn ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\n}\n\n/**\n * @namespace Chart.helpers\n */\nvar helpers = {\n\t/**\n\t * An empty function that can be used, for example, for optional callback.\n\t */\n\tnoop: function() {},\n\n\t/**\n\t * Returns a unique id, sequentially generated from a global variable.\n\t * @returns {number}\n\t * @function\n\t */\n\tuid: (function() {\n\t\tvar id = 0;\n\t\treturn function() {\n\t\t\treturn id++;\n\t\t};\n\t}()),\n\n\t/**\n\t * Returns true if `value` is neither null nor undefined, else returns false.\n\t * @param {*} value - The value to test.\n\t * @returns {boolean}\n\t * @since 2.7.0\n\t */\n\tisNullOrUndef: function(value) {\n\t\treturn value === null || typeof value === 'undefined';\n\t},\n\n\t/**\n\t * Returns true if `value` is an array (including typed arrays), else returns false.\n\t * @param {*} value - The value to test.\n\t * @returns {boolean}\n\t * @function\n\t */\n\tisArray: function(value) {\n\t\tif (Array.isArray && Array.isArray(value)) {\n\t\t\treturn true;\n\t\t}\n\t\tvar type = Object.prototype.toString.call(value);\n\t\tif (type.substr(0, 7) === '[object' && type.substr(-6) === 'Array]') {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t},\n\n\t/**\n\t * Returns true if `value` is an object (excluding null), else returns false.\n\t * @param {*} value - The value to test.\n\t * @returns {boolean}\n\t * @since 2.7.0\n\t */\n\tisObject: function(value) {\n\t\treturn value !== null && Object.prototype.toString.call(value) === '[object Object]';\n\t},\n\n\t/**\n\t * Returns true if `value` is a finite number, else returns false\n\t * @param {*} value - The value to test.\n\t * @returns {boolean}\n\t */\n\tisFinite: function(value) {\n\t\treturn (typeof value === 'number' || value instanceof Number) && isFinite(value);\n\t},\n\n\t/**\n\t * Returns `value` if defined, else returns `defaultValue`.\n\t * @param {*} value - The value to return if defined.\n\t * @param {*} defaultValue - The value to return if `value` is undefined.\n\t * @returns {*}\n\t */\n\tvalueOrDefault: function(value, defaultValue) {\n\t\treturn typeof value === 'undefined' ? defaultValue : value;\n\t},\n\n\t/**\n\t * Returns value at the given `index` in array if defined, else returns `defaultValue`.\n\t * @param {Array} value - The array to lookup for value at `index`.\n\t * @param {number} index - The index in `value` to lookup for value.\n\t * @param {*} defaultValue - The value to return if `value[index]` is undefined.\n\t * @returns {*}\n\t */\n\tvalueAtIndexOrDefault: function(value, index, defaultValue) {\n\t\treturn helpers.valueOrDefault(helpers.isArray(value) ? value[index] : value, defaultValue);\n\t},\n\n\t/**\n\t * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\n\t * value returned by `fn`. If `fn` is not a function, this method returns undefined.\n\t * @param {function} fn - The function to call.\n\t * @param {Array|undefined|null} args - The arguments with which `fn` should be called.\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\n\t * @returns {*}\n\t */\n\tcallback: function(fn, args, thisArg) {\n\t\tif (fn && typeof fn.call === 'function') {\n\t\t\treturn fn.apply(thisArg, args);\n\t\t}\n\t},\n\n\t/**\n\t * Note(SB) for performance sake, this method should only be used when loopable type\n\t * is unknown or in none intensive code (not called often and small loopable). Else\n\t * it's preferable to use a regular for() loop and save extra function calls.\n\t * @param {object|Array} loopable - The object or array to be iterated.\n\t * @param {function} fn - The function to call for each item.\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\n\t * @param {boolean} [reverse] - If true, iterates backward on the loopable.\n\t */\n\teach: function(loopable, fn, thisArg, reverse) {\n\t\tvar i, len, keys;\n\t\tif (helpers.isArray(loopable)) {\n\t\t\tlen = loopable.length;\n\t\t\tif (reverse) {\n\t\t\t\tfor (i = len - 1; i >= 0; i--) {\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (helpers.isObject(loopable)) {\n\t\t\tkeys = Object.keys(loopable);\n\t\t\tlen = keys.length;\n\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\tfn.call(thisArg, loopable[keys[i]], keys[i]);\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\n\t * @see https://stackoverflow.com/a/14853974\n\t * @param {Array} a0 - The array to compare\n\t * @param {Array} a1 - The array to compare\n\t * @returns {boolean}\n\t */\n\tarrayEquals: function(a0, a1) {\n\t\tvar i, ilen, v0, v1;\n\n\t\tif (!a0 || !a1 || a0.length !== a1.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tfor (i = 0, ilen = a0.length; i < ilen; ++i) {\n\t\t\tv0 = a0[i];\n\t\t\tv1 = a1[i];\n\n\t\t\tif (v0 instanceof Array && v1 instanceof Array) {\n\t\t\t\tif (!helpers.arrayEquals(v0, v1)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t} else if (v0 !== v1) {\n\t\t\t\t// NOTE: two different object instances will never be equal: {x:20} != {x:20}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t},\n\n\t/**\n\t * Returns a deep copy of `source` without keeping references on objects and arrays.\n\t * @param {*} source - The value to clone.\n\t * @returns {*}\n\t */\n\tclone: function(source) {\n\t\tif (helpers.isArray(source)) {\n\t\t\treturn source.map(helpers.clone);\n\t\t}\n\n\t\tif (helpers.isObject(source)) {\n\t\t\tvar target = Object.create(source);\n\t\t\tvar keys = Object.keys(source);\n\t\t\tvar klen = keys.length;\n\t\t\tvar k = 0;\n\n\t\t\tfor (; k < klen; ++k) {\n\t\t\t\ttarget[keys[k]] = helpers.clone(source[keys[k]]);\n\t\t\t}\n\n\t\t\treturn target;\n\t\t}\n\n\t\treturn source;\n\t},\n\n\t/**\n\t * The default merger when Chart.helpers.merge is called without merger option.\n\t * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\n\t * @private\n\t */\n\t_merger: function(key, target, source, options) {\n\t\tif (!isValidKey(key)) {\n\t\t\t// We want to ensure we do not copy prototypes over\n\t\t\t// as this can pollute global namespaces\n\t\t\treturn;\n\t\t}\n\n\t\tvar tval = target[key];\n\t\tvar sval = source[key];\n\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\n\t\t\thelpers.merge(tval, sval, options);\n\t\t} else {\n\t\t\ttarget[key] = helpers.clone(sval);\n\t\t}\n\t},\n\n\t/**\n\t * Merges source[key] in target[key] only if target[key] is undefined.\n\t * @private\n\t */\n\t_mergerIf: function(key, target, source) {\n\t\tif (!isValidKey(key)) {\n\t\t\t// We want to ensure we do not copy prototypes over\n\t\t\t// as this can pollute global namespaces\n\t\t\treturn;\n\t\t}\n\n\t\tvar tval = target[key];\n\t\tvar sval = source[key];\n\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\n\t\t\thelpers.mergeIf(tval, sval);\n\t\t} else if (!target.hasOwnProperty(key)) {\n\t\t\ttarget[key] = helpers.clone(sval);\n\t\t}\n\t},\n\n\t/**\n\t * Recursively deep copies `source` properties into `target` with the given `options`.\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\n\t * @param {object} target - The target object in which all sources are merged into.\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\n\t * @param {object} [options] - Merging options:\n\t * @param {function} [options.merger] - The merge method (key, target, source, options)\n\t * @returns {object} The `target` object.\n\t */\n\tmerge: function(target, source, options) {\n\t\tvar sources = helpers.isArray(source) ? source : [source];\n\t\tvar ilen = sources.length;\n\t\tvar merge, i, keys, klen, k;\n\n\t\tif (!helpers.isObject(target)) {\n\t\t\treturn target;\n\t\t}\n\n\t\toptions = options || {};\n\t\tmerge = options.merger || helpers._merger;\n\n\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\tsource = sources[i];\n\t\t\tif (!helpers.isObject(source)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tkeys = Object.keys(source);\n\t\t\tfor (k = 0, klen = keys.length; k < klen; ++k) {\n\t\t\t\tmerge(keys[k], target, source, options);\n\t\t\t}\n\t\t}\n\n\t\treturn target;\n\t},\n\n\t/**\n\t * Recursively deep copies `source` properties into `target` *only* if not defined in target.\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\n\t * @param {object} target - The target object in which all sources are merged into.\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\n\t * @returns {object} The `target` object.\n\t */\n\tmergeIf: function(target, source) {\n\t\treturn helpers.merge(target, source, {merger: helpers._mergerIf});\n\t},\n\n\t/**\n\t * Applies the contents of two or more objects together into the first object.\n\t * @param {object} target - The target object in which all objects are merged into.\n\t * @param {object} arg1 - Object containing additional properties to merge in target.\n\t * @param {object} argN - Additional objects containing properties to merge in target.\n\t * @returns {object} The `target` object.\n\t */\n\textend: Object.assign || function(target) {\n\t\treturn helpers.merge(target, [].slice.call(arguments, 1), {\n\t\t\tmerger: function(key, dst, src) {\n\t\t\t\tdst[key] = src[key];\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n\t * Basic javascript inheritance based on the model created in Backbone.js\n\t */\n\tinherits: function(extensions) {\n\t\tvar me = this;\n\t\tvar ChartElement = (extensions && extensions.hasOwnProperty('constructor')) ? extensions.constructor : function() {\n\t\t\treturn me.apply(this, arguments);\n\t\t};\n\n\t\tvar Surrogate = function() {\n\t\t\tthis.constructor = ChartElement;\n\t\t};\n\n\t\tSurrogate.prototype = me.prototype;\n\t\tChartElement.prototype = new Surrogate();\n\t\tChartElement.extend = helpers.inherits;\n\n\t\tif (extensions) {\n\t\t\thelpers.extend(ChartElement.prototype, extensions);\n\t\t}\n\n\t\tChartElement.__super__ = me.prototype;\n\t\treturn ChartElement;\n\t},\n\n\t_deprecated: function(scope, value, previous, current) {\n\t\tif (value !== undefined) {\n\t\t\tconsole.warn(scope + ': \"' + previous +\n\t\t\t\t'\" is deprecated. Please use \"' + current + '\" instead');\n\t\t}\n\t}\n};\n\nvar helpers_core = helpers;\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.helpers.callback instead.\n * @function Chart.helpers.callCallback\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n * @private\n */\nhelpers.callCallback = helpers.callback;\n\n/**\n * Provided for backward compatibility, use Array.prototype.indexOf instead.\n * Array.prototype.indexOf compatibility: Chrome, Opera, Safari, FF1.5+, IE9+\n * @function Chart.helpers.indexOf\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers.indexOf = function(array, item, fromIndex) {\n\treturn Array.prototype.indexOf.call(array, item, fromIndex);\n};\n\n/**\n * Provided for backward compatibility, use Chart.helpers.valueOrDefault instead.\n * @function Chart.helpers.getValueOrDefault\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers.getValueOrDefault = helpers.valueOrDefault;\n\n/**\n * Provided for backward compatibility, use Chart.helpers.valueAtIndexOrDefault instead.\n * @function Chart.helpers.getValueAtIndexOrDefault\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers.getValueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\n\n/**\n * Easing functions adapted from Robert Penner's easing equations.\n * @namespace Chart.helpers.easingEffects\n * @see http://www.robertpenner.com/easing/\n */\nvar effects = {\n\tlinear: function(t) {\n\t\treturn t;\n\t},\n\n\teaseInQuad: function(t) {\n\t\treturn t * t;\n\t},\n\n\teaseOutQuad: function(t) {\n\t\treturn -t * (t - 2);\n\t},\n\n\teaseInOutQuad: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t;\n\t\t}\n\t\treturn -0.5 * ((--t) * (t - 2) - 1);\n\t},\n\n\teaseInCubic: function(t) {\n\t\treturn t * t * t;\n\t},\n\n\teaseOutCubic: function(t) {\n\t\treturn (t = t - 1) * t * t + 1;\n\t},\n\n\teaseInOutCubic: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t * t;\n\t\t}\n\t\treturn 0.5 * ((t -= 2) * t * t + 2);\n\t},\n\n\teaseInQuart: function(t) {\n\t\treturn t * t * t * t;\n\t},\n\n\teaseOutQuart: function(t) {\n\t\treturn -((t = t - 1) * t * t * t - 1);\n\t},\n\n\teaseInOutQuart: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t * t * t;\n\t\t}\n\t\treturn -0.5 * ((t -= 2) * t * t * t - 2);\n\t},\n\n\teaseInQuint: function(t) {\n\t\treturn t * t * t * t * t;\n\t},\n\n\teaseOutQuint: function(t) {\n\t\treturn (t = t - 1) * t * t * t * t + 1;\n\t},\n\n\teaseInOutQuint: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t * t * t * t;\n\t\t}\n\t\treturn 0.5 * ((t -= 2) * t * t * t * t + 2);\n\t},\n\n\teaseInSine: function(t) {\n\t\treturn -Math.cos(t * (Math.PI / 2)) + 1;\n\t},\n\n\teaseOutSine: function(t) {\n\t\treturn Math.sin(t * (Math.PI / 2));\n\t},\n\n\teaseInOutSine: function(t) {\n\t\treturn -0.5 * (Math.cos(Math.PI * t) - 1);\n\t},\n\n\teaseInExpo: function(t) {\n\t\treturn (t === 0) ? 0 : Math.pow(2, 10 * (t - 1));\n\t},\n\n\teaseOutExpo: function(t) {\n\t\treturn (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1;\n\t},\n\n\teaseInOutExpo: function(t) {\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif (t === 1) {\n\t\t\treturn 1;\n\t\t}\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * Math.pow(2, 10 * (t - 1));\n\t\t}\n\t\treturn 0.5 * (-Math.pow(2, -10 * --t) + 2);\n\t},\n\n\teaseInCirc: function(t) {\n\t\tif (t >= 1) {\n\t\t\treturn t;\n\t\t}\n\t\treturn -(Math.sqrt(1 - t * t) - 1);\n\t},\n\n\teaseOutCirc: function(t) {\n\t\treturn Math.sqrt(1 - (t = t - 1) * t);\n\t},\n\n\teaseInOutCirc: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn -0.5 * (Math.sqrt(1 - t * t) - 1);\n\t\t}\n\t\treturn 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n\t},\n\n\teaseInElastic: function(t) {\n\t\tvar s = 1.70158;\n\t\tvar p = 0;\n\t\tvar a = 1;\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif (t === 1) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (!p) {\n\t\t\tp = 0.3;\n\t\t}\n\t\tif (a < 1) {\n\t\t\ta = 1;\n\t\t\ts = p / 4;\n\t\t} else {\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\n\t\t}\n\t\treturn -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\n\t},\n\n\teaseOutElastic: function(t) {\n\t\tvar s = 1.70158;\n\t\tvar p = 0;\n\t\tvar a = 1;\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif (t === 1) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (!p) {\n\t\t\tp = 0.3;\n\t\t}\n\t\tif (a < 1) {\n\t\t\ta = 1;\n\t\t\ts = p / 4;\n\t\t} else {\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\n\t\t}\n\t\treturn a * Math.pow(2, -10 * t) * Math.sin((t - s) * (2 * Math.PI) / p) + 1;\n\t},\n\n\teaseInOutElastic: function(t) {\n\t\tvar s = 1.70158;\n\t\tvar p = 0;\n\t\tvar a = 1;\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif ((t /= 0.5) === 2) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (!p) {\n\t\t\tp = 0.45;\n\t\t}\n\t\tif (a < 1) {\n\t\t\ta = 1;\n\t\t\ts = p / 4;\n\t\t} else {\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\n\t\t}\n\t\tif (t < 1) {\n\t\t\treturn -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\n\t\t}\n\t\treturn a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p) * 0.5 + 1;\n\t},\n\teaseInBack: function(t) {\n\t\tvar s = 1.70158;\n\t\treturn t * t * ((s + 1) * t - s);\n\t},\n\n\teaseOutBack: function(t) {\n\t\tvar s = 1.70158;\n\t\treturn (t = t - 1) * t * ((s + 1) * t + s) + 1;\n\t},\n\n\teaseInOutBack: function(t) {\n\t\tvar s = 1.70158;\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\n\t\t}\n\t\treturn 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\n\t},\n\n\teaseInBounce: function(t) {\n\t\treturn 1 - effects.easeOutBounce(1 - t);\n\t},\n\n\teaseOutBounce: function(t) {\n\t\tif (t < (1 / 2.75)) {\n\t\t\treturn 7.5625 * t * t;\n\t\t}\n\t\tif (t < (2 / 2.75)) {\n\t\t\treturn 7.5625 * (t -= (1.5 / 2.75)) * t + 0.75;\n\t\t}\n\t\tif (t < (2.5 / 2.75)) {\n\t\t\treturn 7.5625 * (t -= (2.25 / 2.75)) * t + 0.9375;\n\t\t}\n\t\treturn 7.5625 * (t -= (2.625 / 2.75)) * t + 0.984375;\n\t},\n\n\teaseInOutBounce: function(t) {\n\t\tif (t < 0.5) {\n\t\t\treturn effects.easeInBounce(t * 2) * 0.5;\n\t\t}\n\t\treturn effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5;\n\t}\n};\n\nvar helpers_easing = {\n\teffects: effects\n};\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.helpers.easing.effects instead.\n * @function Chart.helpers.easingEffects\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers_core.easingEffects = effects;\n\nvar PI = Math.PI;\nvar RAD_PER_DEG = PI / 180;\nvar DOUBLE_PI = PI * 2;\nvar HALF_PI = PI / 2;\nvar QUARTER_PI = PI / 4;\nvar TWO_THIRDS_PI = PI * 2 / 3;\n\n/**\n * @namespace Chart.helpers.canvas\n */\nvar exports$1 = {\n\t/**\n\t * Clears the entire canvas associated to the given `chart`.\n\t * @param {Chart} chart - The chart for which to clear the canvas.\n\t */\n\tclear: function(chart) {\n\t\tchart.ctx.clearRect(0, 0, chart.width, chart.height);\n\t},\n\n\t/**\n\t * Creates a \"path\" for a rectangle with rounded corners at position (x, y) with a\n\t * given size (width, height) and the same `radius` for all corners.\n\t * @param {CanvasRenderingContext2D} ctx - The canvas 2D Context.\n\t * @param {number} x - The x axis of the coordinate for the rectangle starting point.\n\t * @param {number} y - The y axis of the coordinate for the rectangle starting point.\n\t * @param {number} width - The rectangle's width.\n\t * @param {number} height - The rectangle's height.\n\t * @param {number} radius - The rounded amount (in pixels) for the four corners.\n\t * @todo handle `radius` as top-left, top-right, bottom-right, bottom-left array/object?\n\t */\n\troundedRect: function(ctx, x, y, width, height, radius) {\n\t\tif (radius) {\n\t\t\tvar r = Math.min(radius, height / 2, width / 2);\n\t\t\tvar left = x + r;\n\t\t\tvar top = y + r;\n\t\t\tvar right = x + width - r;\n\t\t\tvar bottom = y + height - r;\n\n\t\t\tctx.moveTo(x, top);\n\t\t\tif (left < right && top < bottom) {\n\t\t\t\tctx.arc(left, top, r, -PI, -HALF_PI);\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, 0);\n\t\t\t\tctx.arc(right, bottom, r, 0, HALF_PI);\n\t\t\t\tctx.arc(left, bottom, r, HALF_PI, PI);\n\t\t\t} else if (left < right) {\n\t\t\t\tctx.moveTo(left, y);\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, HALF_PI);\n\t\t\t\tctx.arc(left, top, r, HALF_PI, PI + HALF_PI);\n\t\t\t} else if (top < bottom) {\n\t\t\t\tctx.arc(left, top, r, -PI, 0);\n\t\t\t\tctx.arc(left, bottom, r, 0, PI);\n\t\t\t} else {\n\t\t\t\tctx.arc(left, top, r, -PI, PI);\n\t\t\t}\n\t\t\tctx.closePath();\n\t\t\tctx.moveTo(x, y);\n\t\t} else {\n\t\t\tctx.rect(x, y, width, height);\n\t\t}\n\t},\n\n\tdrawPoint: function(ctx, style, radius, x, y, rotation) {\n\t\tvar type, xOffset, yOffset, size, cornerRadius;\n\t\tvar rad = (rotation || 0) * RAD_PER_DEG;\n\n\t\tif (style && typeof style === 'object') {\n\t\t\ttype = style.toString();\n\t\t\tif (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n\t\t\t\tctx.save();\n\t\t\t\tctx.translate(x, y);\n\t\t\t\tctx.rotate(rad);\n\t\t\t\tctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n\t\t\t\tctx.restore();\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (isNaN(radius) || radius <= 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tctx.beginPath();\n\n\t\tswitch (style) {\n\t\t// Default includes circle\n\t\tdefault:\n\t\t\tctx.arc(x, y, radius, 0, DOUBLE_PI);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'triangle':\n\t\t\tctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n\t\t\trad += TWO_THIRDS_PI;\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n\t\t\trad += TWO_THIRDS_PI;\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'rectRounded':\n\t\t\t// NOTE: the rounded rect implementation changed to use `arc` instead of\n\t\t\t// `quadraticCurveTo` since it generates better results when rect is\n\t\t\t// almost a circle. 0.516 (instead of 0.5) produces results with visually\n\t\t\t// closer proportion to the previous impl and it is inscribed in the\n\t\t\t// circle with `radius`. For more details, see the following PRs:\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5597\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5858\n\t\t\tcornerRadius = radius * 0.516;\n\t\t\tsize = radius - cornerRadius;\n\t\t\txOffset = Math.cos(rad + QUARTER_PI) * size;\n\t\t\tyOffset = Math.sin(rad + QUARTER_PI) * size;\n\t\t\tctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n\t\t\tctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n\t\t\tctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n\t\t\tctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'rect':\n\t\t\tif (!rotation) {\n\t\t\t\tsize = Math.SQRT1_2 * radius;\n\t\t\t\tctx.rect(x - size, y - size, 2 * size, 2 * size);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\trad += QUARTER_PI;\n\t\t\t/* falls through */\n\t\tcase 'rectRot':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'crossRot':\n\t\t\trad += QUARTER_PI;\n\t\t\t/* falls through */\n\t\tcase 'cross':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\tbreak;\n\t\tcase 'star':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\trad += QUARTER_PI;\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\tbreak;\n\t\tcase 'line':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tbreak;\n\t\tcase 'dash':\n\t\t\tctx.moveTo(x, y);\n\t\t\tctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\n\t\t\tbreak;\n\t\t}\n\n\t\tctx.fill();\n\t\tctx.stroke();\n\t},\n\n\t/**\n\t * Returns true if the point is inside the rectangle\n\t * @param {object} point - The point to test\n\t * @param {object} area - The rectangle\n\t * @returns {boolean}\n\t * @private\n\t */\n\t_isPointInArea: function(point, area) {\n\t\tvar epsilon = 1e-6; // 1e-6 is margin in pixels for accumulated error.\n\n\t\treturn point.x > area.left - epsilon && point.x < area.right + epsilon &&\n\t\t\tpoint.y > area.top - epsilon && point.y < area.bottom + epsilon;\n\t},\n\n\tclipArea: function(ctx, area) {\n\t\tctx.save();\n\t\tctx.beginPath();\n\t\tctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n\t\tctx.clip();\n\t},\n\n\tunclipArea: function(ctx) {\n\t\tctx.restore();\n\t},\n\n\tlineTo: function(ctx, previous, target, flip) {\n\t\tvar stepped = target.steppedLine;\n\t\tif (stepped) {\n\t\t\tif (stepped === 'middle') {\n\t\t\t\tvar midpoint = (previous.x + target.x) / 2.0;\n\t\t\t\tctx.lineTo(midpoint, flip ? target.y : previous.y);\n\t\t\t\tctx.lineTo(midpoint, flip ? previous.y : target.y);\n\t\t\t} else if ((stepped === 'after' && !flip) || (stepped !== 'after' && flip)) {\n\t\t\t\tctx.lineTo(previous.x, target.y);\n\t\t\t} else {\n\t\t\t\tctx.lineTo(target.x, previous.y);\n\t\t\t}\n\t\t\tctx.lineTo(target.x, target.y);\n\t\t\treturn;\n\t\t}\n\n\t\tif (!target.tension) {\n\t\t\tctx.lineTo(target.x, target.y);\n\t\t\treturn;\n\t\t}\n\n\t\tctx.bezierCurveTo(\n\t\t\tflip ? previous.controlPointPreviousX : previous.controlPointNextX,\n\t\t\tflip ? previous.controlPointPreviousY : previous.controlPointNextY,\n\t\t\tflip ? target.controlPointNextX : target.controlPointPreviousX,\n\t\t\tflip ? target.controlPointNextY : target.controlPointPreviousY,\n\t\t\ttarget.x,\n\t\t\ttarget.y);\n\t}\n};\n\nvar helpers_canvas = exports$1;\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.helpers.canvas.clear instead.\n * @namespace Chart.helpers.clear\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers_core.clear = exports$1.clear;\n\n/**\n * Provided for backward compatibility, use Chart.helpers.canvas.roundedRect instead.\n * @namespace Chart.helpers.drawRoundedRectangle\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers_core.drawRoundedRectangle = function(ctx) {\n\tctx.beginPath();\n\texports$1.roundedRect.apply(exports$1, arguments);\n};\n\nvar defaults = {\n\t/**\n\t * @private\n\t */\n\t_set: function(scope, values) {\n\t\treturn helpers_core.merge(this[scope] || (this[scope] = {}), values);\n\t}\n};\n\n// TODO(v3): remove 'global' from namespace. all default are global and\n// there's inconsistency around which options are under 'global'\ndefaults._set('global', {\n\tdefaultColor: 'rgba(0,0,0,0.1)',\n\tdefaultFontColor: '#666',\n\tdefaultFontFamily: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n\tdefaultFontSize: 12,\n\tdefaultFontStyle: 'normal',\n\tdefaultLineHeight: 1.2,\n\tshowLines: true\n});\n\nvar core_defaults = defaults;\n\nvar valueOrDefault = helpers_core.valueOrDefault;\n\n/**\n * Converts the given font object into a CSS font string.\n * @param {object} font - A font object.\n * @return {string} The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\n * @private\n */\nfunction toFontString(font) {\n\tif (!font || helpers_core.isNullOrUndef(font.size) || helpers_core.isNullOrUndef(font.family)) {\n\t\treturn null;\n\t}\n\n\treturn (font.style ? font.style + ' ' : '')\n\t\t+ (font.weight ? font.weight + ' ' : '')\n\t\t+ font.size + 'px '\n\t\t+ font.family;\n}\n\n/**\n * @alias Chart.helpers.options\n * @namespace\n */\nvar helpers_options = {\n\t/**\n\t * Converts the given line height `value` in pixels for a specific font `size`.\n\t * @param {number|string} value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\n\t * @param {number} size - The font size (in pixels) used to resolve relative `value`.\n\t * @returns {number} The effective line height in pixels (size * 1.2 if value is invalid).\n\t * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\n\t * @since 2.7.0\n\t */\n\ttoLineHeight: function(value, size) {\n\t\tvar matches = ('' + value).match(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\n\t\tif (!matches || matches[1] === 'normal') {\n\t\t\treturn size * 1.2;\n\t\t}\n\n\t\tvalue = +matches[2];\n\n\t\tswitch (matches[3]) {\n\t\tcase 'px':\n\t\t\treturn value;\n\t\tcase '%':\n\t\t\tvalue /= 100;\n\t\t\tbreak;\n\t\t}\n\n\t\treturn size * value;\n\t},\n\n\t/**\n\t * Converts the given value into a padding object with pre-computed width/height.\n\t * @param {number|object} value - If a number, set the value to all TRBL component,\n\t * else, if and object, use defined properties and sets undefined ones to 0.\n\t * @returns {object} The padding values (top, right, bottom, left, width, height)\n\t * @since 2.7.0\n\t */\n\ttoPadding: function(value) {\n\t\tvar t, r, b, l;\n\n\t\tif (helpers_core.isObject(value)) {\n\t\t\tt = +value.top || 0;\n\t\t\tr = +value.right || 0;\n\t\t\tb = +value.bottom || 0;\n\t\t\tl = +value.left || 0;\n\t\t} else {\n\t\t\tt = r = b = l = +value || 0;\n\t\t}\n\n\t\treturn {\n\t\t\ttop: t,\n\t\t\tright: r,\n\t\t\tbottom: b,\n\t\t\tleft: l,\n\t\t\theight: t + b,\n\t\t\twidth: l + r\n\t\t};\n\t},\n\n\t/**\n\t * Parses font options and returns the font object.\n\t * @param {object} options - A object that contains font options to be parsed.\n\t * @return {object} The font object.\n\t * @todo Support font.* options and renamed to toFont().\n\t * @private\n\t */\n\t_parseFont: function(options) {\n\t\tvar globalDefaults = core_defaults.global;\n\t\tvar size = valueOrDefault(options.fontSize, globalDefaults.defaultFontSize);\n\t\tvar font = {\n\t\t\tfamily: valueOrDefault(options.fontFamily, globalDefaults.defaultFontFamily),\n\t\t\tlineHeight: helpers_core.options.toLineHeight(valueOrDefault(options.lineHeight, globalDefaults.defaultLineHeight), size),\n\t\t\tsize: size,\n\t\t\tstyle: valueOrDefault(options.fontStyle, globalDefaults.defaultFontStyle),\n\t\t\tweight: null,\n\t\t\tstring: ''\n\t\t};\n\n\t\tfont.string = toFontString(font);\n\t\treturn font;\n\t},\n\n\t/**\n\t * Evaluates the given `inputs` sequentially and returns the first defined value.\n\t * @param {Array} inputs - An array of values, falling back to the last value.\n\t * @param {object} [context] - If defined and the current value is a function, the value\n\t * is called with `context` as first argument and the result becomes the new input.\n\t * @param {number} [index] - If defined and the current value is an array, the value\n\t * at `index` become the new input.\n\t * @param {object} [info] - object to return information about resolution in\n\t * @param {boolean} [info.cacheable] - Will be set to `false` if option is not cacheable.\n\t * @since 2.7.0\n\t */\n\tresolve: function(inputs, context, index, info) {\n\t\tvar cacheable = true;\n\t\tvar i, ilen, value;\n\n\t\tfor (i = 0, ilen = inputs.length; i < ilen; ++i) {\n\t\t\tvalue = inputs[i];\n\t\t\tif (value === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (context !== undefined && typeof value === 'function') {\n\t\t\t\tvalue = value(context);\n\t\t\t\tcacheable = false;\n\t\t\t}\n\t\t\tif (index !== undefined && helpers_core.isArray(value)) {\n\t\t\t\tvalue = value[index];\n\t\t\t\tcacheable = false;\n\t\t\t}\n\t\t\tif (value !== undefined) {\n\t\t\t\tif (info && !cacheable) {\n\t\t\t\t\tinfo.cacheable = false;\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t}\n\t}\n};\n\n/**\n * @alias Chart.helpers.math\n * @namespace\n */\nvar exports$2 = {\n\t/**\n\t * Returns an array of factors sorted from 1 to sqrt(value)\n\t * @private\n\t */\n\t_factorize: function(value) {\n\t\tvar result = [];\n\t\tvar sqrt = Math.sqrt(value);\n\t\tvar i;\n\n\t\tfor (i = 1; i < sqrt; i++) {\n\t\t\tif (value % i === 0) {\n\t\t\t\tresult.push(i);\n\t\t\t\tresult.push(value / i);\n\t\t\t}\n\t\t}\n\t\tif (sqrt === (sqrt | 0)) { // if value is a square number\n\t\t\tresult.push(sqrt);\n\t\t}\n\n\t\tresult.sort(function(a, b) {\n\t\t\treturn a - b;\n\t\t}).pop();\n\t\treturn result;\n\t},\n\n\tlog10: Math.log10 || function(x) {\n\t\tvar exponent = Math.log(x) * Math.LOG10E; // Math.LOG10E = 1 / Math.LN10.\n\t\t// Check for whole powers of 10,\n\t\t// which due to floating point rounding error should be corrected.\n\t\tvar powerOf10 = Math.round(exponent);\n\t\tvar isPowerOf10 = x === Math.pow(10, powerOf10);\n\n\t\treturn isPowerOf10 ? powerOf10 : exponent;\n\t}\n};\n\nvar helpers_math = exports$2;\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.helpers.math.log10 instead.\n * @namespace Chart.helpers.log10\n * @deprecated since version 2.9.0\n * @todo remove at version 3\n * @private\n */\nhelpers_core.log10 = exports$2.log10;\n\nvar getRtlAdapter = function(rectX, width) {\n\treturn {\n\t\tx: function(x) {\n\t\t\treturn rectX + rectX + width - x;\n\t\t},\n\t\tsetWidth: function(w) {\n\t\t\twidth = w;\n\t\t},\n\t\ttextAlign: function(align) {\n\t\t\tif (align === 'center') {\n\t\t\t\treturn align;\n\t\t\t}\n\t\t\treturn align === 'right' ? 'left' : 'right';\n\t\t},\n\t\txPlus: function(x, value) {\n\t\t\treturn x - value;\n\t\t},\n\t\tleftForLtr: function(x, itemWidth) {\n\t\t\treturn x - itemWidth;\n\t\t},\n\t};\n};\n\nvar getLtrAdapter = function() {\n\treturn {\n\t\tx: function(x) {\n\t\t\treturn x;\n\t\t},\n\t\tsetWidth: function(w) { // eslint-disable-line no-unused-vars\n\t\t},\n\t\ttextAlign: function(align) {\n\t\t\treturn align;\n\t\t},\n\t\txPlus: function(x, value) {\n\t\t\treturn x + value;\n\t\t},\n\t\tleftForLtr: function(x, _itemWidth) { // eslint-disable-line no-unused-vars\n\t\t\treturn x;\n\t\t},\n\t};\n};\n\nvar getAdapter = function(rtl, rectX, width) {\n\treturn rtl ? getRtlAdapter(rectX, width) : getLtrAdapter();\n};\n\nvar overrideTextDirection = function(ctx, direction) {\n\tvar style, original;\n\tif (direction === 'ltr' || direction === 'rtl') {\n\t\tstyle = ctx.canvas.style;\n\t\toriginal = [\n\t\t\tstyle.getPropertyValue('direction'),\n\t\t\tstyle.getPropertyPriority('direction'),\n\t\t];\n\n\t\tstyle.setProperty('direction', direction, 'important');\n\t\tctx.prevTextDirection = original;\n\t}\n};\n\nvar restoreTextDirection = function(ctx) {\n\tvar original = ctx.prevTextDirection;\n\tif (original !== undefined) {\n\t\tdelete ctx.prevTextDirection;\n\t\tctx.canvas.style.setProperty('direction', original[0], original[1]);\n\t}\n};\n\nvar helpers_rtl = {\n\tgetRtlAdapter: getAdapter,\n\toverrideTextDirection: overrideTextDirection,\n\trestoreTextDirection: restoreTextDirection,\n};\n\nvar helpers$1 = helpers_core;\nvar easing = helpers_easing;\nvar canvas = helpers_canvas;\nvar options = helpers_options;\nvar math = helpers_math;\nvar rtl = helpers_rtl;\nhelpers$1.easing = easing;\nhelpers$1.canvas = canvas;\nhelpers$1.options = options;\nhelpers$1.math = math;\nhelpers$1.rtl = rtl;\n\nfunction interpolate(start, view, model, ease) {\n\tvar keys = Object.keys(model);\n\tvar i, ilen, key, actual, origin, target, type, c0, c1;\n\n\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\n\t\tkey = keys[i];\n\n\t\ttarget = model[key];\n\n\t\t// if a value is added to the model after pivot() has been called, the view\n\t\t// doesn't contain it, so let's initialize the view to the target value.\n\t\tif (!view.hasOwnProperty(key)) {\n\t\t\tview[key] = target;\n\t\t}\n\n\t\tactual = view[key];\n\n\t\tif (actual === target || key[0] === '_') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!start.hasOwnProperty(key)) {\n\t\t\tstart[key] = actual;\n\t\t}\n\n\t\torigin = start[key];\n\n\t\ttype = typeof target;\n\n\t\tif (type === typeof origin) {\n\t\t\tif (type === 'string') {\n\t\t\t\tc0 = chartjsColor(origin);\n\t\t\t\tif (c0.valid) {\n\t\t\t\t\tc1 = chartjsColor(target);\n\t\t\t\t\tif (c1.valid) {\n\t\t\t\t\t\tview[key] = c1.mix(c0, ease).rgbString();\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (helpers$1.isFinite(origin) && helpers$1.isFinite(target)) {\n\t\t\t\tview[key] = origin + (target - origin) * ease;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\tview[key] = target;\n\t}\n}\n\nvar Element = function(configuration) {\n\thelpers$1.extend(this, configuration);\n\tthis.initialize.apply(this, arguments);\n};\n\nhelpers$1.extend(Element.prototype, {\n\t_type: undefined,\n\n\tinitialize: function() {\n\t\tthis.hidden = false;\n\t},\n\n\tpivot: function() {\n\t\tvar me = this;\n\t\tif (!me._view) {\n\t\t\tme._view = helpers$1.extend({}, me._model);\n\t\t}\n\t\tme._start = {};\n\t\treturn me;\n\t},\n\n\ttransition: function(ease) {\n\t\tvar me = this;\n\t\tvar model = me._model;\n\t\tvar start = me._start;\n\t\tvar view = me._view;\n\n\t\t// No animation -> No Transition\n\t\tif (!model || ease === 1) {\n\t\t\tme._view = helpers$1.extend({}, model);\n\t\t\tme._start = null;\n\t\t\treturn me;\n\t\t}\n\n\t\tif (!view) {\n\t\t\tview = me._view = {};\n\t\t}\n\n\t\tif (!start) {\n\t\t\tstart = me._start = {};\n\t\t}\n\n\t\tinterpolate(start, view, model, ease);\n\n\t\treturn me;\n\t},\n\n\ttooltipPosition: function() {\n\t\treturn {\n\t\t\tx: this._model.x,\n\t\t\ty: this._model.y\n\t\t};\n\t},\n\n\thasValue: function() {\n\t\treturn helpers$1.isNumber(this._model.x) && helpers$1.isNumber(this._model.y);\n\t}\n});\n\nElement.extend = helpers$1.inherits;\n\nvar core_element = Element;\n\nvar exports$3 = core_element.extend({\n\tchart: null, // the animation associated chart instance\n\tcurrentStep: 0, // the current animation step\n\tnumSteps: 60, // default number of steps\n\teasing: '', // the easing to use for this animation\n\trender: null, // render function used by the animation service\n\n\tonAnimationProgress: null, // user specified callback to fire on each step of the animation\n\tonAnimationComplete: null, // user specified callback to fire when the animation finishes\n});\n\nvar core_animation = exports$3;\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.Animation instead\n * @prop Chart.Animation#animationObject\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n */\nObject.defineProperty(exports$3.prototype, 'animationObject', {\n\tget: function() {\n\t\treturn this;\n\t}\n});\n\n/**\n * Provided for backward compatibility, use Chart.Animation#chart instead\n * @prop Chart.Animation#chartInstance\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n */\nObject.defineProperty(exports$3.prototype, 'chartInstance', {\n\tget: function() {\n\t\treturn this.chart;\n\t},\n\tset: function(value) {\n\t\tthis.chart = value;\n\t}\n});\n\ncore_defaults._set('global', {\n\tanimation: {\n\t\tduration: 1000,\n\t\teasing: 'easeOutQuart',\n\t\tonProgress: helpers$1.noop,\n\t\tonComplete: helpers$1.noop\n\t}\n});\n\nvar core_animations = {\n\tanimations: [],\n\trequest: null,\n\n\t/**\n\t * @param {Chart} chart - The chart to animate.\n\t * @param {Chart.Animation} animation - The animation that we will animate.\n\t * @param {number} duration - The animation duration in ms.\n\t * @param {boolean} lazy - if true, the chart is not marked as animating to enable more responsive interactions\n\t */\n\taddAnimation: function(chart, animation, duration, lazy) {\n\t\tvar animations = this.animations;\n\t\tvar i, ilen;\n\n\t\tanimation.chart = chart;\n\t\tanimation.startTime = Date.now();\n\t\tanimation.duration = duration;\n\n\t\tif (!lazy) {\n\t\t\tchart.animating = true;\n\t\t}\n\n\t\tfor (i = 0, ilen = animations.length; i < ilen; ++i) {\n\t\t\tif (animations[i].chart === chart) {\n\t\t\t\tanimations[i] = animation;\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tanimations.push(animation);\n\n\t\t// If there are no animations queued, manually kickstart a digest, for lack of a better word\n\t\tif (animations.length === 1) {\n\t\t\tthis.requestAnimationFrame();\n\t\t}\n\t},\n\n\tcancelAnimation: function(chart) {\n\t\tvar index = helpers$1.findIndex(this.animations, function(animation) {\n\t\t\treturn animation.chart === chart;\n\t\t});\n\n\t\tif (index !== -1) {\n\t\t\tthis.animations.splice(index, 1);\n\t\t\tchart.animating = false;\n\t\t}\n\t},\n\n\trequestAnimationFrame: function() {\n\t\tvar me = this;\n\t\tif (me.request === null) {\n\t\t\t// Skip animation frame requests until the active one is executed.\n\t\t\t// This can happen when processing mouse events, e.g. 'mousemove'\n\t\t\t// and 'mouseout' events will trigger multiple renders.\n\t\t\tme.request = helpers$1.requestAnimFrame.call(window, function() {\n\t\t\t\tme.request = null;\n\t\t\t\tme.startDigest();\n\t\t\t});\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tstartDigest: function() {\n\t\tvar me = this;\n\n\t\tme.advance();\n\n\t\t// Do we have more stuff to animate?\n\t\tif (me.animations.length > 0) {\n\t\t\tme.requestAnimationFrame();\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tadvance: function() {\n\t\tvar animations = this.animations;\n\t\tvar animation, chart, numSteps, nextStep;\n\t\tvar i = 0;\n\n\t\t// 1 animation per chart, so we are looping charts here\n\t\twhile (i < animations.length) {\n\t\t\tanimation = animations[i];\n\t\t\tchart = animation.chart;\n\t\t\tnumSteps = animation.numSteps;\n\n\t\t\t// Make sure that currentStep starts at 1\n\t\t\t// https://github.com/chartjs/Chart.js/issues/6104\n\t\t\tnextStep = Math.floor((Date.now() - animation.startTime) / animation.duration * numSteps) + 1;\n\t\t\tanimation.currentStep = Math.min(nextStep, numSteps);\n\n\t\t\thelpers$1.callback(animation.render, [chart, animation], chart);\n\t\t\thelpers$1.callback(animation.onAnimationProgress, [animation], chart);\n\n\t\t\tif (animation.currentStep >= numSteps) {\n\t\t\t\thelpers$1.callback(animation.onAnimationComplete, [animation], chart);\n\t\t\t\tchart.animating = false;\n\t\t\t\tanimations.splice(i, 1);\n\t\t\t} else {\n\t\t\t\t++i;\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar resolve = helpers$1.options.resolve;\n\nvar arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\n\n/**\n * Hooks the array methods that add or remove values ('push', pop', 'shift', 'splice',\n * 'unshift') and notify the listener AFTER the array has been altered. Listeners are\n * called on the 'onData*' callbacks (e.g. onDataPush, etc.) with same arguments.\n */\nfunction listenArrayEvents(array, listener) {\n\tif (array._chartjs) {\n\t\tarray._chartjs.listeners.push(listener);\n\t\treturn;\n\t}\n\n\tObject.defineProperty(array, '_chartjs', {\n\t\tconfigurable: true,\n\t\tenumerable: false,\n\t\tvalue: {\n\t\t\tlisteners: [listener]\n\t\t}\n\t});\n\n\tarrayEvents.forEach(function(key) {\n\t\tvar method = 'onData' + key.charAt(0).toUpperCase() + key.slice(1);\n\t\tvar base = array[key];\n\n\t\tObject.defineProperty(array, key, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: function() {\n\t\t\t\tvar args = Array.prototype.slice.call(arguments);\n\t\t\t\tvar res = base.apply(this, args);\n\n\t\t\t\thelpers$1.each(array._chartjs.listeners, function(object) {\n\t\t\t\t\tif (typeof object[method] === 'function') {\n\t\t\t\t\t\tobject[method].apply(object, args);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn res;\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Removes the given array event listener and cleanup extra attached properties (such as\n * the _chartjs stub and overridden methods) if array doesn't have any more listeners.\n */\nfunction unlistenArrayEvents(array, listener) {\n\tvar stub = array._chartjs;\n\tif (!stub) {\n\t\treturn;\n\t}\n\n\tvar listeners = stub.listeners;\n\tvar index = listeners.indexOf(listener);\n\tif (index !== -1) {\n\t\tlisteners.splice(index, 1);\n\t}\n\n\tif (listeners.length > 0) {\n\t\treturn;\n\t}\n\n\tarrayEvents.forEach(function(key) {\n\t\tdelete array[key];\n\t});\n\n\tdelete array._chartjs;\n}\n\n// Base class for all dataset controllers (line, bar, etc)\nvar DatasetController = function(chart, datasetIndex) {\n\tthis.initialize(chart, datasetIndex);\n};\n\nhelpers$1.extend(DatasetController.prototype, {\n\n\t/**\n\t * Element type used to generate a meta dataset (e.g. Chart.element.Line).\n\t * @type {Chart.core.element}\n\t */\n\tdatasetElementType: null,\n\n\t/**\n\t * Element type used to generate a meta data (e.g. Chart.element.Point).\n\t * @type {Chart.core.element}\n\t */\n\tdataElementType: null,\n\n\t/**\n\t * Dataset element option keys to be resolved in _resolveDatasetElementOptions.\n\t * A derived controller may override this to resolve controller-specific options.\n\t * The keys defined here are for backward compatibility for legend styles.\n\t * @private\n\t */\n\t_datasetElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderCapStyle',\n\t\t'borderColor',\n\t\t'borderDash',\n\t\t'borderDashOffset',\n\t\t'borderJoinStyle',\n\t\t'borderWidth'\n\t],\n\n\t/**\n\t * Data element option keys to be resolved in _resolveDataElementOptions.\n\t * A derived controller may override this to resolve controller-specific options.\n\t * The keys defined here are for backward compatibility for legend styles.\n\t * @private\n\t */\n\t_dataElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderColor',\n\t\t'borderWidth',\n\t\t'pointStyle'\n\t],\n\n\tinitialize: function(chart, datasetIndex) {\n\t\tvar me = this;\n\t\tme.chart = chart;\n\t\tme.index = datasetIndex;\n\t\tme.linkScales();\n\t\tme.addElements();\n\t\tme._type = me.getMeta().type;\n\t},\n\n\tupdateIndex: function(datasetIndex) {\n\t\tthis.index = datasetIndex;\n\t},\n\n\tlinkScales: function() {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar chart = me.chart;\n\t\tvar scales = chart.scales;\n\t\tvar dataset = me.getDataset();\n\t\tvar scalesOpts = chart.options.scales;\n\n\t\tif (meta.xAxisID === null || !(meta.xAxisID in scales) || dataset.xAxisID) {\n\t\t\tmeta.xAxisID = dataset.xAxisID || scalesOpts.xAxes[0].id;\n\t\t}\n\t\tif (meta.yAxisID === null || !(meta.yAxisID in scales) || dataset.yAxisID) {\n\t\t\tmeta.yAxisID = dataset.yAxisID || scalesOpts.yAxes[0].id;\n\t\t}\n\t},\n\n\tgetDataset: function() {\n\t\treturn this.chart.data.datasets[this.index];\n\t},\n\n\tgetMeta: function() {\n\t\treturn this.chart.getDatasetMeta(this.index);\n\t},\n\n\tgetScaleForId: function(scaleID) {\n\t\treturn this.chart.scales[scaleID];\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getValueScaleId: function() {\n\t\treturn this.getMeta().yAxisID;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScaleId: function() {\n\t\treturn this.getMeta().xAxisID;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getValueScale: function() {\n\t\treturn this.getScaleForId(this._getValueScaleId());\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScale: function() {\n\t\treturn this.getScaleForId(this._getIndexScaleId());\n\t},\n\n\treset: function() {\n\t\tthis._update(true);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tdestroy: function() {\n\t\tif (this._data) {\n\t\t\tunlistenArrayEvents(this._data, this);\n\t\t}\n\t},\n\n\tcreateMetaDataset: function() {\n\t\tvar me = this;\n\t\tvar type = me.datasetElementType;\n\t\treturn type && new type({\n\t\t\t_chart: me.chart,\n\t\t\t_datasetIndex: me.index\n\t\t});\n\t},\n\n\tcreateMetaData: function(index) {\n\t\tvar me = this;\n\t\tvar type = me.dataElementType;\n\t\treturn type && new type({\n\t\t\t_chart: me.chart,\n\t\t\t_datasetIndex: me.index,\n\t\t\t_index: index\n\t\t});\n\t},\n\n\taddElements: function() {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar data = me.getDataset().data || [];\n\t\tvar metaData = meta.data;\n\t\tvar i, ilen;\n\n\t\tfor (i = 0, ilen = data.length; i < ilen; ++i) {\n\t\t\tmetaData[i] = metaData[i] || me.createMetaData(i);\n\t\t}\n\n\t\tmeta.dataset = meta.dataset || me.createMetaDataset();\n\t},\n\n\taddElementAndReset: function(index) {\n\t\tvar element = this.createMetaData(index);\n\t\tthis.getMeta().data.splice(index, 0, element);\n\t\tthis.updateElement(element, index, true);\n\t},\n\n\tbuildOrUpdateElements: function() {\n\t\tvar me = this;\n\t\tvar dataset = me.getDataset();\n\t\tvar data = dataset.data || (dataset.data = []);\n\n\t\t// In order to correctly handle data addition/deletion animation (an thus simulate\n\t\t// real-time charts), we need to monitor these data modifications and synchronize\n\t\t// the internal meta data accordingly.\n\t\tif (me._data !== data) {\n\t\t\tif (me._data) {\n\t\t\t\t// This case happens when the user replaced the data array instance.\n\t\t\t\tunlistenArrayEvents(me._data, me);\n\t\t\t}\n\n\t\t\tif (data && Object.isExtensible(data)) {\n\t\t\t\tlistenArrayEvents(data, me);\n\t\t\t}\n\t\t\tme._data = data;\n\t\t}\n\n\t\t// Re-sync meta data in case the user replaced the data array or if we missed\n\t\t// any updates and so make sure that we handle number of datapoints changing.\n\t\tme.resyncElements();\n\t},\n\n\t/**\n\t * Returns the merged user-supplied and default dataset-level options\n\t * @private\n\t */\n\t_configure: function() {\n\t\tvar me = this;\n\t\tme._config = helpers$1.merge(Object.create(null), [\n\t\t\tme.chart.options.datasets[me._type],\n\t\t\tme.getDataset(),\n\t\t], {\n\t\t\tmerger: function(key, target, source) {\n\t\t\t\tif (key !== '_meta' && key !== 'data') {\n\t\t\t\t\thelpers$1._merger(key, target, source);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\n\t_update: function(reset) {\n\t\tvar me = this;\n\t\tme._configure();\n\t\tme._cachedDataOpts = null;\n\t\tme.update(reset);\n\t},\n\n\tupdate: helpers$1.noop,\n\n\ttransition: function(easingValue) {\n\t\tvar meta = this.getMeta();\n\t\tvar elements = meta.data || [];\n\t\tvar ilen = elements.length;\n\t\tvar i = 0;\n\n\t\tfor (; i < ilen; ++i) {\n\t\t\telements[i].transition(easingValue);\n\t\t}\n\n\t\tif (meta.dataset) {\n\t\t\tmeta.dataset.transition(easingValue);\n\t\t}\n\t},\n\n\tdraw: function() {\n\t\tvar meta = this.getMeta();\n\t\tvar elements = meta.data || [];\n\t\tvar ilen = elements.length;\n\t\tvar i = 0;\n\n\t\tif (meta.dataset) {\n\t\t\tmeta.dataset.draw();\n\t\t}\n\n\t\tfor (; i < ilen; ++i) {\n\t\t\telements[i].draw();\n\t\t}\n\t},\n\n\t/**\n\t * Returns a set of predefined style properties that should be used to represent the dataset\n\t * or the data if the index is specified\n\t * @param {number} index - data index\n\t * @return {IStyleInterface} style object\n\t */\n\tgetStyle: function(index) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar dataset = meta.dataset;\n\t\tvar style;\n\n\t\tme._configure();\n\t\tif (dataset && index === undefined) {\n\t\t\tstyle = me._resolveDatasetElementOptions(dataset || {});\n\t\t} else {\n\t\t\tindex = index || 0;\n\t\t\tstyle = me._resolveDataElementOptions(meta.data[index] || {}, index);\n\t\t}\n\n\t\tif (style.fill === false || style.fill === null) {\n\t\t\tstyle.backgroundColor = style.borderColor;\n\t\t}\n\n\t\treturn style;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDatasetElementOptions: function(element, hover) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar datasetOpts = me._config;\n\t\tvar custom = element.custom || {};\n\t\tvar options = chart.options.elements[me.datasetElementType.prototype._type] || {};\n\t\tvar elementOptions = me._datasetElementOptions;\n\t\tvar values = {};\n\t\tvar i, ilen, key, readKey;\n\n\t\t// Scriptable options\n\t\tvar context = {\n\t\t\tchart: chart,\n\t\t\tdataset: me.getDataset(),\n\t\t\tdatasetIndex: me.index,\n\t\t\thover: hover\n\t\t};\n\n\t\tfor (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\n\t\t\tkey = elementOptions[i];\n\t\t\treadKey = hover ? 'hover' + key.charAt(0).toUpperCase() + key.slice(1) : key;\n\t\t\tvalues[key] = resolve([\n\t\t\t\tcustom[readKey],\n\t\t\t\tdatasetOpts[readKey],\n\t\t\t\toptions[readKey]\n\t\t\t], context);\n\t\t}\n\n\t\treturn values;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDataElementOptions: function(element, index) {\n\t\tvar me = this;\n\t\tvar custom = element && element.custom;\n\t\tvar cached = me._cachedDataOpts;\n\t\tif (cached && !custom) {\n\t\t\treturn cached;\n\t\t}\n\t\tvar chart = me.chart;\n\t\tvar datasetOpts = me._config;\n\t\tvar options = chart.options.elements[me.dataElementType.prototype._type] || {};\n\t\tvar elementOptions = me._dataElementOptions;\n\t\tvar values = {};\n\n\t\t// Scriptable options\n\t\tvar context = {\n\t\t\tchart: chart,\n\t\t\tdataIndex: index,\n\t\t\tdataset: me.getDataset(),\n\t\t\tdatasetIndex: me.index\n\t\t};\n\n\t\t// `resolve` sets cacheable to `false` if any option is indexed or scripted\n\t\tvar info = {cacheable: !custom};\n\n\t\tvar keys, i, ilen, key;\n\n\t\tcustom = custom || {};\n\n\t\tif (helpers$1.isArray(elementOptions)) {\n\t\t\tfor (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\n\t\t\t\tkey = elementOptions[i];\n\t\t\t\tvalues[key] = resolve([\n\t\t\t\t\tcustom[key],\n\t\t\t\t\tdatasetOpts[key],\n\t\t\t\t\toptions[key]\n\t\t\t\t], context, index, info);\n\t\t\t}\n\t\t} else {\n\t\t\tkeys = Object.keys(elementOptions);\n\t\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\n\t\t\t\tkey = keys[i];\n\t\t\t\tvalues[key] = resolve([\n\t\t\t\t\tcustom[key],\n\t\t\t\t\tdatasetOpts[elementOptions[key]],\n\t\t\t\t\tdatasetOpts[key],\n\t\t\t\t\toptions[key]\n\t\t\t\t], context, index, info);\n\t\t\t}\n\t\t}\n\n\t\tif (info.cacheable) {\n\t\t\tme._cachedDataOpts = Object.freeze(values);\n\t\t}\n\n\t\treturn values;\n\t},\n\n\tremoveHoverStyle: function(element) {\n\t\thelpers$1.merge(element._model, element.$previousStyle || {});\n\t\tdelete element.$previousStyle;\n\t},\n\n\tsetHoverStyle: function(element) {\n\t\tvar dataset = this.chart.data.datasets[element._datasetIndex];\n\t\tvar index = element._index;\n\t\tvar custom = element.custom || {};\n\t\tvar model = element._model;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\telement.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth\n\t\t};\n\n\t\tmodel.backgroundColor = resolve([custom.hoverBackgroundColor, dataset.hoverBackgroundColor, getHoverColor(model.backgroundColor)], undefined, index);\n\t\tmodel.borderColor = resolve([custom.hoverBorderColor, dataset.hoverBorderColor, getHoverColor(model.borderColor)], undefined, index);\n\t\tmodel.borderWidth = resolve([custom.hoverBorderWidth, dataset.hoverBorderWidth, model.borderWidth], undefined, index);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_removeDatasetHoverStyle: function() {\n\t\tvar element = this.getMeta().dataset;\n\n\t\tif (element) {\n\t\t\tthis.removeHoverStyle(element);\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_setDatasetHoverStyle: function() {\n\t\tvar element = this.getMeta().dataset;\n\t\tvar prev = {};\n\t\tvar i, ilen, key, keys, hoverOptions, model;\n\n\t\tif (!element) {\n\t\t\treturn;\n\t\t}\n\n\t\tmodel = element._model;\n\t\thoverOptions = this._resolveDatasetElementOptions(element, true);\n\n\t\tkeys = Object.keys(hoverOptions);\n\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\n\t\t\tkey = keys[i];\n\t\t\tprev[key] = model[key];\n\t\t\tmodel[key] = hoverOptions[key];\n\t\t}\n\n\t\telement.$previousStyle = prev;\n\t},\n\n\t/**\n\t * @private\n\t */\n\tresyncElements: function() {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar data = me.getDataset().data;\n\t\tvar numMeta = meta.data.length;\n\t\tvar numData = data.length;\n\n\t\tif (numData < numMeta) {\n\t\t\tmeta.data.splice(numData, numMeta - numData);\n\t\t} else if (numData > numMeta) {\n\t\t\tme.insertElements(numMeta, numData - numMeta);\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tinsertElements: function(start, count) {\n\t\tfor (var i = 0; i < count; ++i) {\n\t\t\tthis.addElementAndReset(start + i);\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataPush: function() {\n\t\tvar count = arguments.length;\n\t\tthis.insertElements(this.getDataset().data.length - count, count);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataPop: function() {\n\t\tthis.getMeta().data.pop();\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataShift: function() {\n\t\tthis.getMeta().data.shift();\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataSplice: function(start, count) {\n\t\tthis.getMeta().data.splice(start, count);\n\t\tthis.insertElements(start, arguments.length - 2);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataUnshift: function() {\n\t\tthis.insertElements(0, arguments.length);\n\t}\n});\n\nDatasetController.extend = helpers$1.inherits;\n\nvar core_datasetController = DatasetController;\n\nvar TAU = Math.PI * 2;\n\ncore_defaults._set('global', {\n\telements: {\n\t\tarc: {\n\t\t\tbackgroundColor: core_defaults.global.defaultColor,\n\t\t\tborderColor: '#fff',\n\t\t\tborderWidth: 2,\n\t\t\tborderAlign: 'center'\n\t\t}\n\t}\n});\n\nfunction clipArc(ctx, arc) {\n\tvar startAngle = arc.startAngle;\n\tvar endAngle = arc.endAngle;\n\tvar pixelMargin = arc.pixelMargin;\n\tvar angleMargin = pixelMargin / arc.outerRadius;\n\tvar x = arc.x;\n\tvar y = arc.y;\n\n\t// Draw an inner border by cliping the arc and drawing a double-width border\n\t// Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders\n\tctx.beginPath();\n\tctx.arc(x, y, arc.outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n\tif (arc.innerRadius > pixelMargin) {\n\t\tangleMargin = pixelMargin / arc.innerRadius;\n\t\tctx.arc(x, y, arc.innerRadius - pixelMargin, endAngle + angleMargin, startAngle - angleMargin, true);\n\t} else {\n\t\tctx.arc(x, y, pixelMargin, endAngle + Math.PI / 2, startAngle - Math.PI / 2);\n\t}\n\tctx.closePath();\n\tctx.clip();\n}\n\nfunction drawFullCircleBorders(ctx, vm, arc, inner) {\n\tvar endAngle = arc.endAngle;\n\tvar i;\n\n\tif (inner) {\n\t\tarc.endAngle = arc.startAngle + TAU;\n\t\tclipArc(ctx, arc);\n\t\tarc.endAngle = endAngle;\n\t\tif (arc.endAngle === arc.startAngle && arc.fullCircles) {\n\t\t\tarc.endAngle += TAU;\n\t\t\tarc.fullCircles--;\n\t\t}\n\t}\n\n\tctx.beginPath();\n\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.startAngle + TAU, arc.startAngle, true);\n\tfor (i = 0; i < arc.fullCircles; ++i) {\n\t\tctx.stroke();\n\t}\n\n\tctx.beginPath();\n\tctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.startAngle + TAU);\n\tfor (i = 0; i < arc.fullCircles; ++i) {\n\t\tctx.stroke();\n\t}\n}\n\nfunction drawBorder(ctx, vm, arc) {\n\tvar inner = vm.borderAlign === 'inner';\n\n\tif (inner) {\n\t\tctx.lineWidth = vm.borderWidth * 2;\n\t\tctx.lineJoin = 'round';\n\t} else {\n\t\tctx.lineWidth = vm.borderWidth;\n\t\tctx.lineJoin = 'bevel';\n\t}\n\n\tif (arc.fullCircles) {\n\t\tdrawFullCircleBorders(ctx, vm, arc, inner);\n\t}\n\n\tif (inner) {\n\t\tclipArc(ctx, arc);\n\t}\n\n\tctx.beginPath();\n\tctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.endAngle);\n\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\n\tctx.closePath();\n\tctx.stroke();\n}\n\nvar element_arc = core_element.extend({\n\t_type: 'arc',\n\n\tinLabelRange: function(mouseX) {\n\t\tvar vm = this._view;\n\n\t\tif (vm) {\n\t\t\treturn (Math.pow(mouseX - vm.x, 2) < Math.pow(vm.radius + vm.hoverRadius, 2));\n\t\t}\n\t\treturn false;\n\t},\n\n\tinRange: function(chartX, chartY) {\n\t\tvar vm = this._view;\n\n\t\tif (vm) {\n\t\t\tvar pointRelativePosition = helpers$1.getAngleFromPoint(vm, {x: chartX, y: chartY});\n\t\t\tvar angle = pointRelativePosition.angle;\n\t\t\tvar distance = pointRelativePosition.distance;\n\n\t\t\t// Sanitise angle range\n\t\t\tvar startAngle = vm.startAngle;\n\t\t\tvar endAngle = vm.endAngle;\n\t\t\twhile (endAngle < startAngle) {\n\t\t\t\tendAngle += TAU;\n\t\t\t}\n\t\t\twhile (angle > endAngle) {\n\t\t\t\tangle -= TAU;\n\t\t\t}\n\t\t\twhile (angle < startAngle) {\n\t\t\t\tangle += TAU;\n\t\t\t}\n\n\t\t\t// Check if within the range of the open/close angle\n\t\t\tvar betweenAngles = (angle >= startAngle && angle <= endAngle);\n\t\t\tvar withinRadius = (distance >= vm.innerRadius && distance <= vm.outerRadius);\n\n\t\t\treturn (betweenAngles && withinRadius);\n\t\t}\n\t\treturn false;\n\t},\n\n\tgetCenterPoint: function() {\n\t\tvar vm = this._view;\n\t\tvar halfAngle = (vm.startAngle + vm.endAngle) / 2;\n\t\tvar halfRadius = (vm.innerRadius + vm.outerRadius) / 2;\n\t\treturn {\n\t\t\tx: vm.x + Math.cos(halfAngle) * halfRadius,\n\t\t\ty: vm.y + Math.sin(halfAngle) * halfRadius\n\t\t};\n\t},\n\n\tgetArea: function() {\n\t\tvar vm = this._view;\n\t\treturn Math.PI * ((vm.endAngle - vm.startAngle) / (2 * Math.PI)) * (Math.pow(vm.outerRadius, 2) - Math.pow(vm.innerRadius, 2));\n\t},\n\n\ttooltipPosition: function() {\n\t\tvar vm = this._view;\n\t\tvar centreAngle = vm.startAngle + ((vm.endAngle - vm.startAngle) / 2);\n\t\tvar rangeFromCentre = (vm.outerRadius - vm.innerRadius) / 2 + vm.innerRadius;\n\n\t\treturn {\n\t\t\tx: vm.x + (Math.cos(centreAngle) * rangeFromCentre),\n\t\t\ty: vm.y + (Math.sin(centreAngle) * rangeFromCentre)\n\t\t};\n\t},\n\n\tdraw: function() {\n\t\tvar ctx = this._chart.ctx;\n\t\tvar vm = this._view;\n\t\tvar pixelMargin = (vm.borderAlign === 'inner') ? 0.33 : 0;\n\t\tvar arc = {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y,\n\t\t\tinnerRadius: vm.innerRadius,\n\t\t\touterRadius: Math.max(vm.outerRadius - pixelMargin, 0),\n\t\t\tpixelMargin: pixelMargin,\n\t\t\tstartAngle: vm.startAngle,\n\t\t\tendAngle: vm.endAngle,\n\t\t\tfullCircles: Math.floor(vm.circumference / TAU)\n\t\t};\n\t\tvar i;\n\n\t\tctx.save();\n\n\t\tctx.fillStyle = vm.backgroundColor;\n\t\tctx.strokeStyle = vm.borderColor;\n\n\t\tif (arc.fullCircles) {\n\t\t\tarc.endAngle = arc.startAngle + TAU;\n\t\t\tctx.beginPath();\n\t\t\tctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\n\t\t\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\n\t\t\tctx.closePath();\n\t\t\tfor (i = 0; i < arc.fullCircles; ++i) {\n\t\t\t\tctx.fill();\n\t\t\t}\n\t\t\tarc.endAngle = arc.startAngle + vm.circumference % TAU;\n\t\t}\n\n\t\tctx.beginPath();\n\t\tctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\n\t\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\n\t\tctx.closePath();\n\t\tctx.fill();\n\n\t\tif (vm.borderWidth) {\n\t\t\tdrawBorder(ctx, vm, arc);\n\t\t}\n\n\t\tctx.restore();\n\t}\n});\n\nvar valueOrDefault$1 = helpers$1.valueOrDefault;\n\nvar defaultColor = core_defaults.global.defaultColor;\n\ncore_defaults._set('global', {\n\telements: {\n\t\tline: {\n\t\t\ttension: 0.4,\n\t\t\tbackgroundColor: defaultColor,\n\t\t\tborderWidth: 3,\n\t\t\tborderColor: defaultColor,\n\t\t\tborderCapStyle: 'butt',\n\t\t\tborderDash: [],\n\t\t\tborderDashOffset: 0.0,\n\t\t\tborderJoinStyle: 'miter',\n\t\t\tcapBezierPoints: true,\n\t\t\tfill: true, // do we fill in the area between the line and its base axis\n\t\t}\n\t}\n});\n\nvar element_line = core_element.extend({\n\t_type: 'line',\n\n\tdraw: function() {\n\t\tvar me = this;\n\t\tvar vm = me._view;\n\t\tvar ctx = me._chart.ctx;\n\t\tvar spanGaps = vm.spanGaps;\n\t\tvar points = me._children.slice(); // clone array\n\t\tvar globalDefaults = core_defaults.global;\n\t\tvar globalOptionLineElements = globalDefaults.elements.line;\n\t\tvar lastDrawnIndex = -1;\n\t\tvar closePath = me._loop;\n\t\tvar index, previous, currentVM;\n\n\t\tif (!points.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (me._loop) {\n\t\t\tfor (index = 0; index < points.length; ++index) {\n\t\t\t\tprevious = helpers$1.previousItem(points, index);\n\t\t\t\t// If the line has an open path, shift the point array\n\t\t\t\tif (!points[index]._view.skip && previous._view.skip) {\n\t\t\t\t\tpoints = points.slice(index).concat(points.slice(0, index));\n\t\t\t\t\tclosePath = spanGaps;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If the line has a close path, add the first point again\n\t\t\tif (closePath) {\n\t\t\t\tpoints.push(points[0]);\n\t\t\t}\n\t\t}\n\n\t\tctx.save();\n\n\t\t// Stroke Line Options\n\t\tctx.lineCap = vm.borderCapStyle || globalOptionLineElements.borderCapStyle;\n\n\t\t// IE 9 and 10 do not support line dash\n\t\tif (ctx.setLineDash) {\n\t\t\tctx.setLineDash(vm.borderDash || globalOptionLineElements.borderDash);\n\t\t}\n\n\t\tctx.lineDashOffset = valueOrDefault$1(vm.borderDashOffset, globalOptionLineElements.borderDashOffset);\n\t\tctx.lineJoin = vm.borderJoinStyle || globalOptionLineElements.borderJoinStyle;\n\t\tctx.lineWidth = valueOrDefault$1(vm.borderWidth, globalOptionLineElements.borderWidth);\n\t\tctx.strokeStyle = vm.borderColor || globalDefaults.defaultColor;\n\n\t\t// Stroke Line\n\t\tctx.beginPath();\n\n\t\t// First point moves to it's starting position no matter what\n\t\tcurrentVM = points[0]._view;\n\t\tif (!currentVM.skip) {\n\t\t\tctx.moveTo(currentVM.x, currentVM.y);\n\t\t\tlastDrawnIndex = 0;\n\t\t}\n\n\t\tfor (index = 1; index < points.length; ++index) {\n\t\t\tcurrentVM = points[index]._view;\n\t\t\tprevious = lastDrawnIndex === -1 ? helpers$1.previousItem(points, index) : points[lastDrawnIndex];\n\n\t\t\tif (!currentVM.skip) {\n\t\t\t\tif ((lastDrawnIndex !== (index - 1) && !spanGaps) || lastDrawnIndex === -1) {\n\t\t\t\t\t// There was a gap and this is the first point after the gap\n\t\t\t\t\tctx.moveTo(currentVM.x, currentVM.y);\n\t\t\t\t} else {\n\t\t\t\t\t// Line to next point\n\t\t\t\t\thelpers$1.canvas.lineTo(ctx, previous._view, currentVM);\n\t\t\t\t}\n\t\t\t\tlastDrawnIndex = index;\n\t\t\t}\n\t\t}\n\n\t\tif (closePath) {\n\t\t\tctx.closePath();\n\t\t}\n\n\t\tctx.stroke();\n\t\tctx.restore();\n\t}\n});\n\nvar valueOrDefault$2 = helpers$1.valueOrDefault;\n\nvar defaultColor$1 = core_defaults.global.defaultColor;\n\ncore_defaults._set('global', {\n\telements: {\n\t\tpoint: {\n\t\t\tradius: 3,\n\t\t\tpointStyle: 'circle',\n\t\t\tbackgroundColor: defaultColor$1,\n\t\t\tborderColor: defaultColor$1,\n\t\t\tborderWidth: 1,\n\t\t\t// Hover\n\t\t\thitRadius: 1,\n\t\t\thoverRadius: 4,\n\t\t\thoverBorderWidth: 1\n\t\t}\n\t}\n});\n\nfunction xRange(mouseX) {\n\tvar vm = this._view;\n\treturn vm ? (Math.abs(mouseX - vm.x) < vm.radius + vm.hitRadius) : false;\n}\n\nfunction yRange(mouseY) {\n\tvar vm = this._view;\n\treturn vm ? (Math.abs(mouseY - vm.y) < vm.radius + vm.hitRadius) : false;\n}\n\nvar element_point = core_element.extend({\n\t_type: 'point',\n\n\tinRange: function(mouseX, mouseY) {\n\t\tvar vm = this._view;\n\t\treturn vm ? ((Math.pow(mouseX - vm.x, 2) + Math.pow(mouseY - vm.y, 2)) < Math.pow(vm.hitRadius + vm.radius, 2)) : false;\n\t},\n\n\tinLabelRange: xRange,\n\tinXRange: xRange,\n\tinYRange: yRange,\n\n\tgetCenterPoint: function() {\n\t\tvar vm = this._view;\n\t\treturn {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y\n\t\t};\n\t},\n\n\tgetArea: function() {\n\t\treturn Math.PI * Math.pow(this._view.radius, 2);\n\t},\n\n\ttooltipPosition: function() {\n\t\tvar vm = this._view;\n\t\treturn {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y,\n\t\t\tpadding: vm.radius + vm.borderWidth\n\t\t};\n\t},\n\n\tdraw: function(chartArea) {\n\t\tvar vm = this._view;\n\t\tvar ctx = this._chart.ctx;\n\t\tvar pointStyle = vm.pointStyle;\n\t\tvar rotation = vm.rotation;\n\t\tvar radius = vm.radius;\n\t\tvar x = vm.x;\n\t\tvar y = vm.y;\n\t\tvar globalDefaults = core_defaults.global;\n\t\tvar defaultColor = globalDefaults.defaultColor; // eslint-disable-line no-shadow\n\n\t\tif (vm.skip) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Clipping for Points.\n\t\tif (chartArea === undefined || helpers$1.canvas._isPointInArea(vm, chartArea)) {\n\t\t\tctx.strokeStyle = vm.borderColor || defaultColor;\n\t\t\tctx.lineWidth = valueOrDefault$2(vm.borderWidth, globalDefaults.elements.point.borderWidth);\n\t\t\tctx.fillStyle = vm.backgroundColor || defaultColor;\n\t\t\thelpers$1.canvas.drawPoint(ctx, pointStyle, radius, x, y, rotation);\n\t\t}\n\t}\n});\n\nvar defaultColor$2 = core_defaults.global.defaultColor;\n\ncore_defaults._set('global', {\n\telements: {\n\t\trectangle: {\n\t\t\tbackgroundColor: defaultColor$2,\n\t\t\tborderColor: defaultColor$2,\n\t\t\tborderSkipped: 'bottom',\n\t\t\tborderWidth: 0\n\t\t}\n\t}\n});\n\nfunction isVertical(vm) {\n\treturn vm && vm.width !== undefined;\n}\n\n/**\n * Helper function to get the bounds of the bar regardless of the orientation\n * @param bar {Chart.Element.Rectangle} the bar\n * @return {Bounds} bounds of the bar\n * @private\n */\nfunction getBarBounds(vm) {\n\tvar x1, x2, y1, y2, half;\n\n\tif (isVertical(vm)) {\n\t\thalf = vm.width / 2;\n\t\tx1 = vm.x - half;\n\t\tx2 = vm.x + half;\n\t\ty1 = Math.min(vm.y, vm.base);\n\t\ty2 = Math.max(vm.y, vm.base);\n\t} else {\n\t\thalf = vm.height / 2;\n\t\tx1 = Math.min(vm.x, vm.base);\n\t\tx2 = Math.max(vm.x, vm.base);\n\t\ty1 = vm.y - half;\n\t\ty2 = vm.y + half;\n\t}\n\n\treturn {\n\t\tleft: x1,\n\t\ttop: y1,\n\t\tright: x2,\n\t\tbottom: y2\n\t};\n}\n\nfunction swap(orig, v1, v2) {\n\treturn orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\n\nfunction parseBorderSkipped(vm) {\n\tvar edge = vm.borderSkipped;\n\tvar res = {};\n\n\tif (!edge) {\n\t\treturn res;\n\t}\n\n\tif (vm.horizontal) {\n\t\tif (vm.base > vm.x) {\n\t\t\tedge = swap(edge, 'left', 'right');\n\t\t}\n\t} else if (vm.base < vm.y) {\n\t\tedge = swap(edge, 'bottom', 'top');\n\t}\n\n\tres[edge] = true;\n\treturn res;\n}\n\nfunction parseBorderWidth(vm, maxW, maxH) {\n\tvar value = vm.borderWidth;\n\tvar skip = parseBorderSkipped(vm);\n\tvar t, r, b, l;\n\n\tif (helpers$1.isObject(value)) {\n\t\tt = +value.top || 0;\n\t\tr = +value.right || 0;\n\t\tb = +value.bottom || 0;\n\t\tl = +value.left || 0;\n\t} else {\n\t\tt = r = b = l = +value || 0;\n\t}\n\n\treturn {\n\t\tt: skip.top || (t < 0) ? 0 : t > maxH ? maxH : t,\n\t\tr: skip.right || (r < 0) ? 0 : r > maxW ? maxW : r,\n\t\tb: skip.bottom || (b < 0) ? 0 : b > maxH ? maxH : b,\n\t\tl: skip.left || (l < 0) ? 0 : l > maxW ? maxW : l\n\t};\n}\n\nfunction boundingRects(vm) {\n\tvar bounds = getBarBounds(vm);\n\tvar width = bounds.right - bounds.left;\n\tvar height = bounds.bottom - bounds.top;\n\tvar border = parseBorderWidth(vm, width / 2, height / 2);\n\n\treturn {\n\t\touter: {\n\t\t\tx: bounds.left,\n\t\t\ty: bounds.top,\n\t\t\tw: width,\n\t\t\th: height\n\t\t},\n\t\tinner: {\n\t\t\tx: bounds.left + border.l,\n\t\t\ty: bounds.top + border.t,\n\t\t\tw: width - border.l - border.r,\n\t\t\th: height - border.t - border.b\n\t\t}\n\t};\n}\n\nfunction inRange(vm, x, y) {\n\tvar skipX = x === null;\n\tvar skipY = y === null;\n\tvar bounds = !vm || (skipX && skipY) ? false : getBarBounds(vm);\n\n\treturn bounds\n\t\t&& (skipX || x >= bounds.left && x <= bounds.right)\n\t\t&& (skipY || y >= bounds.top && y <= bounds.bottom);\n}\n\nvar element_rectangle = core_element.extend({\n\t_type: 'rectangle',\n\n\tdraw: function() {\n\t\tvar ctx = this._chart.ctx;\n\t\tvar vm = this._view;\n\t\tvar rects = boundingRects(vm);\n\t\tvar outer = rects.outer;\n\t\tvar inner = rects.inner;\n\n\t\tctx.fillStyle = vm.backgroundColor;\n\t\tctx.fillRect(outer.x, outer.y, outer.w, outer.h);\n\n\t\tif (outer.w === inner.w && outer.h === inner.h) {\n\t\t\treturn;\n\t\t}\n\n\t\tctx.save();\n\t\tctx.beginPath();\n\t\tctx.rect(outer.x, outer.y, outer.w, outer.h);\n\t\tctx.clip();\n\t\tctx.fillStyle = vm.borderColor;\n\t\tctx.rect(inner.x, inner.y, inner.w, inner.h);\n\t\tctx.fill('evenodd');\n\t\tctx.restore();\n\t},\n\n\theight: function() {\n\t\tvar vm = this._view;\n\t\treturn vm.base - vm.y;\n\t},\n\n\tinRange: function(mouseX, mouseY) {\n\t\treturn inRange(this._view, mouseX, mouseY);\n\t},\n\n\tinLabelRange: function(mouseX, mouseY) {\n\t\tvar vm = this._view;\n\t\treturn isVertical(vm)\n\t\t\t? inRange(vm, mouseX, null)\n\t\t\t: inRange(vm, null, mouseY);\n\t},\n\n\tinXRange: function(mouseX) {\n\t\treturn inRange(this._view, mouseX, null);\n\t},\n\n\tinYRange: function(mouseY) {\n\t\treturn inRange(this._view, null, mouseY);\n\t},\n\n\tgetCenterPoint: function() {\n\t\tvar vm = this._view;\n\t\tvar x, y;\n\t\tif (isVertical(vm)) {\n\t\t\tx = vm.x;\n\t\t\ty = (vm.y + vm.base) / 2;\n\t\t} else {\n\t\t\tx = (vm.x + vm.base) / 2;\n\t\t\ty = vm.y;\n\t\t}\n\n\t\treturn {x: x, y: y};\n\t},\n\n\tgetArea: function() {\n\t\tvar vm = this._view;\n\n\t\treturn isVertical(vm)\n\t\t\t? vm.width * Math.abs(vm.y - vm.base)\n\t\t\t: vm.height * Math.abs(vm.x - vm.base);\n\t},\n\n\ttooltipPosition: function() {\n\t\tvar vm = this._view;\n\t\treturn {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y\n\t\t};\n\t}\n});\n\nvar elements = {};\nvar Arc = element_arc;\nvar Line = element_line;\nvar Point = element_point;\nvar Rectangle = element_rectangle;\nelements.Arc = Arc;\nelements.Line = Line;\nelements.Point = Point;\nelements.Rectangle = Rectangle;\n\nvar deprecated = helpers$1._deprecated;\nvar valueOrDefault$3 = helpers$1.valueOrDefault;\n\ncore_defaults._set('bar', {\n\thover: {\n\t\tmode: 'label'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'category',\n\t\t\toffset: true,\n\t\t\tgridLines: {\n\t\t\t\toffsetGridLines: true\n\t\t\t}\n\t\t}],\n\n\t\tyAxes: [{\n\t\t\ttype: 'linear'\n\t\t}]\n\t}\n});\n\ncore_defaults._set('global', {\n\tdatasets: {\n\t\tbar: {\n\t\t\tcategoryPercentage: 0.8,\n\t\t\tbarPercentage: 0.9\n\t\t}\n\t}\n});\n\n/**\n * Computes the \"optimal\" sample size to maintain bars equally sized while preventing overlap.\n * @private\n */\nfunction computeMinSampleSize(scale, pixels) {\n\tvar min = scale._length;\n\tvar prev, curr, i, ilen;\n\n\tfor (i = 1, ilen = pixels.length; i < ilen; ++i) {\n\t\tmin = Math.min(min, Math.abs(pixels[i] - pixels[i - 1]));\n\t}\n\n\tfor (i = 0, ilen = scale.getTicks().length; i < ilen; ++i) {\n\t\tcurr = scale.getPixelForTick(i);\n\t\tmin = i > 0 ? Math.min(min, Math.abs(curr - prev)) : min;\n\t\tprev = curr;\n\t}\n\n\treturn min;\n}\n\n/**\n * Computes an \"ideal\" category based on the absolute bar thickness or, if undefined or null,\n * uses the smallest interval (see computeMinSampleSize) that prevents bar overlapping. This\n * mode currently always generates bars equally sized (until we introduce scriptable options?).\n * @private\n */\nfunction computeFitCategoryTraits(index, ruler, options) {\n\tvar thickness = options.barThickness;\n\tvar count = ruler.stackCount;\n\tvar curr = ruler.pixels[index];\n\tvar min = helpers$1.isNullOrUndef(thickness)\n\t\t? computeMinSampleSize(ruler.scale, ruler.pixels)\n\t\t: -1;\n\tvar size, ratio;\n\n\tif (helpers$1.isNullOrUndef(thickness)) {\n\t\tsize = min * options.categoryPercentage;\n\t\tratio = options.barPercentage;\n\t} else {\n\t\t// When bar thickness is enforced, category and bar percentages are ignored.\n\t\t// Note(SB): we could add support for relative bar thickness (e.g. barThickness: '50%')\n\t\t// and deprecate barPercentage since this value is ignored when thickness is absolute.\n\t\tsize = thickness * count;\n\t\tratio = 1;\n\t}\n\n\treturn {\n\t\tchunk: size / count,\n\t\tratio: ratio,\n\t\tstart: curr - (size / 2)\n\t};\n}\n\n/**\n * Computes an \"optimal\" category that globally arranges bars side by side (no gap when\n * percentage options are 1), based on the previous and following categories. This mode\n * generates bars with different widths when data are not evenly spaced.\n * @private\n */\nfunction computeFlexCategoryTraits(index, ruler, options) {\n\tvar pixels = ruler.pixels;\n\tvar curr = pixels[index];\n\tvar prev = index > 0 ? pixels[index - 1] : null;\n\tvar next = index < pixels.length - 1 ? pixels[index + 1] : null;\n\tvar percent = options.categoryPercentage;\n\tvar start, size;\n\n\tif (prev === null) {\n\t\t// first data: its size is double based on the next point or,\n\t\t// if it's also the last data, we use the scale size.\n\t\tprev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n\t}\n\n\tif (next === null) {\n\t\t// last data: its size is also double based on the previous point.\n\t\tnext = curr + curr - prev;\n\t}\n\n\tstart = curr - (curr - Math.min(prev, next)) / 2 * percent;\n\tsize = Math.abs(next - prev) / 2 * percent;\n\n\treturn {\n\t\tchunk: size / ruler.stackCount,\n\t\tratio: options.barPercentage,\n\t\tstart: start\n\t};\n}\n\nvar controller_bar = core_datasetController.extend({\n\n\tdataElementType: elements.Rectangle,\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderColor',\n\t\t'borderSkipped',\n\t\t'borderWidth',\n\t\t'barPercentage',\n\t\t'barThickness',\n\t\t'categoryPercentage',\n\t\t'maxBarThickness',\n\t\t'minBarLength'\n\t],\n\n\tinitialize: function() {\n\t\tvar me = this;\n\t\tvar meta, scaleOpts;\n\n\t\tcore_datasetController.prototype.initialize.apply(me, arguments);\n\n\t\tmeta = me.getMeta();\n\t\tmeta.stack = me.getDataset().stack;\n\t\tmeta.bar = true;\n\n\t\tscaleOpts = me._getIndexScale().options;\n\t\tdeprecated('bar chart', scaleOpts.barPercentage, 'scales.[x/y]Axes.barPercentage', 'dataset.barPercentage');\n\t\tdeprecated('bar chart', scaleOpts.barThickness, 'scales.[x/y]Axes.barThickness', 'dataset.barThickness');\n\t\tdeprecated('bar chart', scaleOpts.categoryPercentage, 'scales.[x/y]Axes.categoryPercentage', 'dataset.categoryPercentage');\n\t\tdeprecated('bar chart', me._getValueScale().options.minBarLength, 'scales.[x/y]Axes.minBarLength', 'dataset.minBarLength');\n\t\tdeprecated('bar chart', scaleOpts.maxBarThickness, 'scales.[x/y]Axes.maxBarThickness', 'dataset.maxBarThickness');\n\t},\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar rects = me.getMeta().data;\n\t\tvar i, ilen;\n\n\t\tme._ruler = me.getRuler();\n\n\t\tfor (i = 0, ilen = rects.length; i < ilen; ++i) {\n\t\t\tme.updateElement(rects[i], i, reset);\n\t\t}\n\t},\n\n\tupdateElement: function(rectangle, index, reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar dataset = me.getDataset();\n\t\tvar options = me._resolveDataElementOptions(rectangle, index);\n\n\t\trectangle._xScale = me.getScaleForId(meta.xAxisID);\n\t\trectangle._yScale = me.getScaleForId(meta.yAxisID);\n\t\trectangle._datasetIndex = me.index;\n\t\trectangle._index = index;\n\t\trectangle._model = {\n\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\tborderColor: options.borderColor,\n\t\t\tborderSkipped: options.borderSkipped,\n\t\t\tborderWidth: options.borderWidth,\n\t\t\tdatasetLabel: dataset.label,\n\t\t\tlabel: me.chart.data.labels[index]\n\t\t};\n\n\t\tif (helpers$1.isArray(dataset.data[index])) {\n\t\t\trectangle._model.borderSkipped = null;\n\t\t}\n\n\t\tme._updateElementGeometry(rectangle, index, reset, options);\n\n\t\trectangle.pivot();\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_updateElementGeometry: function(rectangle, index, reset, options) {\n\t\tvar me = this;\n\t\tvar model = rectangle._model;\n\t\tvar vscale = me._getValueScale();\n\t\tvar base = vscale.getBasePixel();\n\t\tvar horizontal = vscale.isHorizontal();\n\t\tvar ruler = me._ruler || me.getRuler();\n\t\tvar vpixels = me.calculateBarValuePixels(me.index, index, options);\n\t\tvar ipixels = me.calculateBarIndexPixels(me.index, index, ruler, options);\n\n\t\tmodel.horizontal = horizontal;\n\t\tmodel.base = reset ? base : vpixels.base;\n\t\tmodel.x = horizontal ? reset ? base : vpixels.head : ipixels.center;\n\t\tmodel.y = horizontal ? ipixels.center : reset ? base : vpixels.head;\n\t\tmodel.height = horizontal ? ipixels.size : undefined;\n\t\tmodel.width = horizontal ? undefined : ipixels.size;\n\t},\n\n\t/**\n\t * Returns the stacks based on groups and bar visibility.\n\t * @param {number} [last] - The dataset index\n\t * @returns {string[]} The list of stack IDs\n\t * @private\n\t */\n\t_getStacks: function(last) {\n\t\tvar me = this;\n\t\tvar scale = me._getIndexScale();\n\t\tvar metasets = scale._getMatchingVisibleMetas(me._type);\n\t\tvar stacked = scale.options.stacked;\n\t\tvar ilen = metasets.length;\n\t\tvar stacks = [];\n\t\tvar i, meta;\n\n\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\tmeta = metasets[i];\n\t\t\t// stacked | meta.stack\n\t\t\t// | found | not found | undefined\n\t\t\t// false | x | x | x\n\t\t\t// true | | x |\n\t\t\t// undefined | | x | x\n\t\t\tif (stacked === false || stacks.indexOf(meta.stack) === -1 ||\n\t\t\t\t(stacked === undefined && meta.stack === undefined)) {\n\t\t\t\tstacks.push(meta.stack);\n\t\t\t}\n\t\t\tif (meta.index === last) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn stacks;\n\t},\n\n\t/**\n\t * Returns the effective number of stacks based on groups and bar visibility.\n\t * @private\n\t */\n\tgetStackCount: function() {\n\t\treturn this._getStacks().length;\n\t},\n\n\t/**\n\t * Returns the stack index for the given dataset based on groups and bar visibility.\n\t * @param {number} [datasetIndex] - The dataset index\n\t * @param {string} [name] - The stack name to find\n\t * @returns {number} The stack index\n\t * @private\n\t */\n\tgetStackIndex: function(datasetIndex, name) {\n\t\tvar stacks = this._getStacks(datasetIndex);\n\t\tvar index = (name !== undefined)\n\t\t\t? stacks.indexOf(name)\n\t\t\t: -1; // indexOf returns -1 if element is not present\n\n\t\treturn (index === -1)\n\t\t\t? stacks.length - 1\n\t\t\t: index;\n\t},\n\n\t/**\n\t * @private\n\t */\n\tgetRuler: function() {\n\t\tvar me = this;\n\t\tvar scale = me._getIndexScale();\n\t\tvar pixels = [];\n\t\tvar i, ilen;\n\n\t\tfor (i = 0, ilen = me.getMeta().data.length; i < ilen; ++i) {\n\t\t\tpixels.push(scale.getPixelForValue(null, i, me.index));\n\t\t}\n\n\t\treturn {\n\t\t\tpixels: pixels,\n\t\t\tstart: scale._startPixel,\n\t\t\tend: scale._endPixel,\n\t\t\tstackCount: me.getStackCount(),\n\t\t\tscale: scale\n\t\t};\n\t},\n\n\t/**\n\t * Note: pixel values are not clamped to the scale area.\n\t * @private\n\t */\n\tcalculateBarValuePixels: function(datasetIndex, index, options) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar scale = me._getValueScale();\n\t\tvar isHorizontal = scale.isHorizontal();\n\t\tvar datasets = chart.data.datasets;\n\t\tvar metasets = scale._getMatchingVisibleMetas(me._type);\n\t\tvar value = scale._parseValue(datasets[datasetIndex].data[index]);\n\t\tvar minBarLength = options.minBarLength;\n\t\tvar stacked = scale.options.stacked;\n\t\tvar stack = me.getMeta().stack;\n\t\tvar start = value.start === undefined ? 0 : value.max >= 0 && value.min >= 0 ? value.min : value.max;\n\t\tvar length = value.start === undefined ? value.end : value.max >= 0 && value.min >= 0 ? value.max - value.min : value.min - value.max;\n\t\tvar ilen = metasets.length;\n\t\tvar i, imeta, ivalue, base, head, size, stackLength;\n\n\t\tif (stacked || (stacked === undefined && stack !== undefined)) {\n\t\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\t\timeta = metasets[i];\n\n\t\t\t\tif (imeta.index === datasetIndex) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (imeta.stack === stack) {\n\t\t\t\t\tstackLength = scale._parseValue(datasets[imeta.index].data[index]);\n\t\t\t\t\tivalue = stackLength.start === undefined ? stackLength.end : stackLength.min >= 0 && stackLength.max >= 0 ? stackLength.max : stackLength.min;\n\n\t\t\t\t\tif ((value.min < 0 && ivalue < 0) || (value.max >= 0 && ivalue > 0)) {\n\t\t\t\t\t\tstart += ivalue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tbase = scale.getPixelForValue(start);\n\t\thead = scale.getPixelForValue(start + length);\n\t\tsize = head - base;\n\n\t\tif (minBarLength !== undefined && Math.abs(size) < minBarLength) {\n\t\t\tsize = minBarLength;\n\t\t\tif (length >= 0 && !isHorizontal || length < 0 && isHorizontal) {\n\t\t\t\thead = base - minBarLength;\n\t\t\t} else {\n\t\t\t\thead = base + minBarLength;\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tsize: size,\n\t\t\tbase: base,\n\t\t\thead: head,\n\t\t\tcenter: head + size / 2\n\t\t};\n\t},\n\n\t/**\n\t * @private\n\t */\n\tcalculateBarIndexPixels: function(datasetIndex, index, ruler, options) {\n\t\tvar me = this;\n\t\tvar range = options.barThickness === 'flex'\n\t\t\t? computeFlexCategoryTraits(index, ruler, options)\n\t\t\t: computeFitCategoryTraits(index, ruler, options);\n\n\t\tvar stackIndex = me.getStackIndex(datasetIndex, me.getMeta().stack);\n\t\tvar center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\n\t\tvar size = Math.min(\n\t\t\tvalueOrDefault$3(options.maxBarThickness, Infinity),\n\t\t\trange.chunk * range.ratio);\n\n\t\treturn {\n\t\t\tbase: center - size / 2,\n\t\t\thead: center + size / 2,\n\t\t\tcenter: center,\n\t\t\tsize: size\n\t\t};\n\t},\n\n\tdraw: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar scale = me._getValueScale();\n\t\tvar rects = me.getMeta().data;\n\t\tvar dataset = me.getDataset();\n\t\tvar ilen = rects.length;\n\t\tvar i = 0;\n\n\t\thelpers$1.canvas.clipArea(chart.ctx, chart.chartArea);\n\n\t\tfor (; i < ilen; ++i) {\n\t\t\tvar val = scale._parseValue(dataset.data[i]);\n\t\t\tif (!isNaN(val.min) && !isNaN(val.max)) {\n\t\t\t\trects[i].draw();\n\t\t\t}\n\t\t}\n\n\t\thelpers$1.canvas.unclipArea(chart.ctx);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDataElementOptions: function() {\n\t\tvar me = this;\n\t\tvar values = helpers$1.extend({}, core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments));\n\t\tvar indexOpts = me._getIndexScale().options;\n\t\tvar valueOpts = me._getValueScale().options;\n\n\t\tvalues.barPercentage = valueOrDefault$3(indexOpts.barPercentage, values.barPercentage);\n\t\tvalues.barThickness = valueOrDefault$3(indexOpts.barThickness, values.barThickness);\n\t\tvalues.categoryPercentage = valueOrDefault$3(indexOpts.categoryPercentage, values.categoryPercentage);\n\t\tvalues.maxBarThickness = valueOrDefault$3(indexOpts.maxBarThickness, values.maxBarThickness);\n\t\tvalues.minBarLength = valueOrDefault$3(valueOpts.minBarLength, values.minBarLength);\n\n\t\treturn values;\n\t}\n\n});\n\nvar valueOrDefault$4 = helpers$1.valueOrDefault;\nvar resolve$1 = helpers$1.options.resolve;\n\ncore_defaults._set('bubble', {\n\thover: {\n\t\tmode: 'single'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'linear', // bubble should probably use a linear scale by default\n\t\t\tposition: 'bottom',\n\t\t\tid: 'x-axis-0' // need an ID so datasets can reference the scale\n\t\t}],\n\t\tyAxes: [{\n\t\t\ttype: 'linear',\n\t\t\tposition: 'left',\n\t\t\tid: 'y-axis-0'\n\t\t}]\n\t},\n\n\ttooltips: {\n\t\tcallbacks: {\n\t\t\ttitle: function() {\n\t\t\t\t// Title doesn't make sense for scatter since we format the data as a point\n\t\t\t\treturn '';\n\t\t\t},\n\t\t\tlabel: function(item, data) {\n\t\t\t\tvar datasetLabel = data.datasets[item.datasetIndex].label || '';\n\t\t\t\tvar dataPoint = data.datasets[item.datasetIndex].data[item.index];\n\t\t\t\treturn datasetLabel + ': (' + item.xLabel + ', ' + item.yLabel + ', ' + dataPoint.r + ')';\n\t\t\t}\n\t\t}\n\t}\n});\n\nvar controller_bubble = core_datasetController.extend({\n\t/**\n\t * @protected\n\t */\n\tdataElementType: elements.Point,\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderColor',\n\t\t'borderWidth',\n\t\t'hoverBackgroundColor',\n\t\t'hoverBorderColor',\n\t\t'hoverBorderWidth',\n\t\t'hoverRadius',\n\t\t'hitRadius',\n\t\t'pointStyle',\n\t\t'rotation'\n\t],\n\n\t/**\n\t * @protected\n\t */\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar points = meta.data;\n\n\t\t// Update Points\n\t\thelpers$1.each(points, function(point, index) {\n\t\t\tme.updateElement(point, index, reset);\n\t\t});\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tupdateElement: function(point, index, reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar custom = point.custom || {};\n\t\tvar xScale = me.getScaleForId(meta.xAxisID);\n\t\tvar yScale = me.getScaleForId(meta.yAxisID);\n\t\tvar options = me._resolveDataElementOptions(point, index);\n\t\tvar data = me.getDataset().data[index];\n\t\tvar dsIndex = me.index;\n\n\t\tvar x = reset ? xScale.getPixelForDecimal(0.5) : xScale.getPixelForValue(typeof data === 'object' ? data : NaN, index, dsIndex);\n\t\tvar y = reset ? yScale.getBasePixel() : yScale.getPixelForValue(data, index, dsIndex);\n\n\t\tpoint._xScale = xScale;\n\t\tpoint._yScale = yScale;\n\t\tpoint._options = options;\n\t\tpoint._datasetIndex = dsIndex;\n\t\tpoint._index = index;\n\t\tpoint._model = {\n\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\tborderColor: options.borderColor,\n\t\t\tborderWidth: options.borderWidth,\n\t\t\thitRadius: options.hitRadius,\n\t\t\tpointStyle: options.pointStyle,\n\t\t\trotation: options.rotation,\n\t\t\tradius: reset ? 0 : options.radius,\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\n\t\t\tx: x,\n\t\t\ty: y,\n\t\t};\n\n\t\tpoint.pivot();\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tsetHoverStyle: function(point) {\n\t\tvar model = point._model;\n\t\tvar options = point._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\tpoint.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t\tradius: model.radius\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault$4(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault$4(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault$4(options.hoverBorderWidth, options.borderWidth);\n\t\tmodel.radius = options.radius + options.hoverRadius;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDataElementOptions: function(point, index) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar dataset = me.getDataset();\n\t\tvar custom = point.custom || {};\n\t\tvar data = dataset.data[index] || {};\n\t\tvar values = core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments);\n\n\t\t// Scriptable options\n\t\tvar context = {\n\t\t\tchart: chart,\n\t\t\tdataIndex: index,\n\t\t\tdataset: dataset,\n\t\t\tdatasetIndex: me.index\n\t\t};\n\n\t\t// In case values were cached (and thus frozen), we need to clone the values\n\t\tif (me._cachedDataOpts === values) {\n\t\t\tvalues = helpers$1.extend({}, values);\n\t\t}\n\n\t\t// Custom radius resolution\n\t\tvalues.radius = resolve$1([\n\t\t\tcustom.radius,\n\t\t\tdata.r,\n\t\t\tme._config.radius,\n\t\t\tchart.options.elements.point.radius\n\t\t], context, index);\n\n\t\treturn values;\n\t}\n});\n\nvar valueOrDefault$5 = helpers$1.valueOrDefault;\n\nvar PI$1 = Math.PI;\nvar DOUBLE_PI$1 = PI$1 * 2;\nvar HALF_PI$1 = PI$1 / 2;\n\ncore_defaults._set('doughnut', {\n\tanimation: {\n\t\t// Boolean - Whether we animate the rotation of the Doughnut\n\t\tanimateRotate: true,\n\t\t// Boolean - Whether we animate scaling the Doughnut from the centre\n\t\tanimateScale: false\n\t},\n\thover: {\n\t\tmode: 'single'\n\t},\n\tlegendCallback: function(chart) {\n\t\tvar list = document.createElement('ul');\n\t\tvar data = chart.data;\n\t\tvar datasets = data.datasets;\n\t\tvar labels = data.labels;\n\t\tvar i, ilen, listItem, listItemSpan;\n\n\t\tlist.setAttribute('class', chart.id + '-legend');\n\t\tif (datasets.length) {\n\t\t\tfor (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\n\t\t\t\tlistItem = list.appendChild(document.createElement('li'));\n\t\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\n\t\t\t\tlistItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\n\t\t\t\tif (labels[i]) {\n\t\t\t\t\tlistItem.appendChild(document.createTextNode(labels[i]));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn list.outerHTML;\n\t},\n\tlegend: {\n\t\tlabels: {\n\t\t\tgenerateLabels: function(chart) {\n\t\t\t\tvar data = chart.data;\n\t\t\t\tif (data.labels.length && data.datasets.length) {\n\t\t\t\t\treturn data.labels.map(function(label, i) {\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\n\t\t\t\t\t\tvar style = meta.controller.getStyle(i);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttext: label,\n\t\t\t\t\t\t\tfillStyle: style.backgroundColor,\n\t\t\t\t\t\t\tstrokeStyle: style.borderColor,\n\t\t\t\t\t\t\tlineWidth: style.borderWidth,\n\t\t\t\t\t\t\thidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\n\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\n\t\t\t\t\t\t\tindex: i\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn [];\n\t\t\t}\n\t\t},\n\n\t\tonClick: function(e, legendItem) {\n\t\t\tvar index = legendItem.index;\n\t\t\tvar chart = this.chart;\n\t\t\tvar i, ilen, meta;\n\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\n\t\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\t\t// toggle visibility of index if exists\n\t\t\t\tif (meta.data[index]) {\n\t\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tchart.update();\n\t\t}\n\t},\n\n\t// The percentage of the chart that we cut out of the middle.\n\tcutoutPercentage: 50,\n\n\t// The rotation of the chart, where the first data arc begins.\n\trotation: -HALF_PI$1,\n\n\t// The total circumference of the chart.\n\tcircumference: DOUBLE_PI$1,\n\n\t// Need to override these to give a nice default\n\ttooltips: {\n\t\tcallbacks: {\n\t\t\ttitle: function() {\n\t\t\t\treturn '';\n\t\t\t},\n\t\t\tlabel: function(tooltipItem, data) {\n\t\t\t\tvar dataLabel = data.labels[tooltipItem.index];\n\t\t\t\tvar value = ': ' + data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];\n\n\t\t\t\tif (helpers$1.isArray(dataLabel)) {\n\t\t\t\t\t// show value on first line of multiline label\n\t\t\t\t\t// need to clone because we are changing the value\n\t\t\t\t\tdataLabel = dataLabel.slice();\n\t\t\t\t\tdataLabel[0] += value;\n\t\t\t\t} else {\n\t\t\t\t\tdataLabel += value;\n\t\t\t\t}\n\n\t\t\t\treturn dataLabel;\n\t\t\t}\n\t\t}\n\t}\n});\n\nvar controller_doughnut = core_datasetController.extend({\n\n\tdataElementType: elements.Arc,\n\n\tlinkScales: helpers$1.noop,\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderColor',\n\t\t'borderWidth',\n\t\t'borderAlign',\n\t\t'hoverBackgroundColor',\n\t\t'hoverBorderColor',\n\t\t'hoverBorderWidth',\n\t],\n\n\t// Get index of the dataset in relation to the visible datasets. This allows determining the inner and outer radius correctly\n\tgetRingIndex: function(datasetIndex) {\n\t\tvar ringIndex = 0;\n\n\t\tfor (var j = 0; j < datasetIndex; ++j) {\n\t\t\tif (this.chart.isDatasetVisible(j)) {\n\t\t\t\t++ringIndex;\n\t\t\t}\n\t\t}\n\n\t\treturn ringIndex;\n\t},\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar chartArea = chart.chartArea;\n\t\tvar opts = chart.options;\n\t\tvar ratioX = 1;\n\t\tvar ratioY = 1;\n\t\tvar offsetX = 0;\n\t\tvar offsetY = 0;\n\t\tvar meta = me.getMeta();\n\t\tvar arcs = meta.data;\n\t\tvar cutout = opts.cutoutPercentage / 100 || 0;\n\t\tvar circumference = opts.circumference;\n\t\tvar chartWeight = me._getRingWeight(me.index);\n\t\tvar maxWidth, maxHeight, i, ilen;\n\n\t\t// If the chart's circumference isn't a full circle, calculate size as a ratio of the width/height of the arc\n\t\tif (circumference < DOUBLE_PI$1) {\n\t\t\tvar startAngle = opts.rotation % DOUBLE_PI$1;\n\t\t\tstartAngle += startAngle >= PI$1 ? -DOUBLE_PI$1 : startAngle < -PI$1 ? DOUBLE_PI$1 : 0;\n\t\t\tvar endAngle = startAngle + circumference;\n\t\t\tvar startX = Math.cos(startAngle);\n\t\t\tvar startY = Math.sin(startAngle);\n\t\t\tvar endX = Math.cos(endAngle);\n\t\t\tvar endY = Math.sin(endAngle);\n\t\t\tvar contains0 = (startAngle <= 0 && endAngle >= 0) || endAngle >= DOUBLE_PI$1;\n\t\t\tvar contains90 = (startAngle <= HALF_PI$1 && endAngle >= HALF_PI$1) || endAngle >= DOUBLE_PI$1 + HALF_PI$1;\n\t\t\tvar contains180 = startAngle === -PI$1 || endAngle >= PI$1;\n\t\t\tvar contains270 = (startAngle <= -HALF_PI$1 && endAngle >= -HALF_PI$1) || endAngle >= PI$1 + HALF_PI$1;\n\t\t\tvar minX = contains180 ? -1 : Math.min(startX, startX * cutout, endX, endX * cutout);\n\t\t\tvar minY = contains270 ? -1 : Math.min(startY, startY * cutout, endY, endY * cutout);\n\t\t\tvar maxX = contains0 ? 1 : Math.max(startX, startX * cutout, endX, endX * cutout);\n\t\t\tvar maxY = contains90 ? 1 : Math.max(startY, startY * cutout, endY, endY * cutout);\n\t\t\tratioX = (maxX - minX) / 2;\n\t\t\tratioY = (maxY - minY) / 2;\n\t\t\toffsetX = -(maxX + minX) / 2;\n\t\t\toffsetY = -(maxY + minY) / 2;\n\t\t}\n\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\n\t\t\tarcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\n\t\t}\n\n\t\tchart.borderWidth = me.getMaxBorderWidth();\n\t\tmaxWidth = (chartArea.right - chartArea.left - chart.borderWidth) / ratioX;\n\t\tmaxHeight = (chartArea.bottom - chartArea.top - chart.borderWidth) / ratioY;\n\t\tchart.outerRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n\t\tchart.innerRadius = Math.max(chart.outerRadius * cutout, 0);\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / (me._getVisibleDatasetWeightTotal() || 1);\n\t\tchart.offsetX = offsetX * chart.outerRadius;\n\t\tchart.offsetY = offsetY * chart.outerRadius;\n\n\t\tmeta.total = me.calculateTotal();\n\n\t\tme.outerRadius = chart.outerRadius - chart.radiusLength * me._getRingWeightOffset(me.index);\n\t\tme.innerRadius = Math.max(me.outerRadius - chart.radiusLength * chartWeight, 0);\n\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\n\t\t\tme.updateElement(arcs[i], i, reset);\n\t\t}\n\t},\n\n\tupdateElement: function(arc, index, reset) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar chartArea = chart.chartArea;\n\t\tvar opts = chart.options;\n\t\tvar animationOpts = opts.animation;\n\t\tvar centerX = (chartArea.left + chartArea.right) / 2;\n\t\tvar centerY = (chartArea.top + chartArea.bottom) / 2;\n\t\tvar startAngle = opts.rotation; // non reset case handled later\n\t\tvar endAngle = opts.rotation; // non reset case handled later\n\t\tvar dataset = me.getDataset();\n\t\tvar circumference = reset && animationOpts.animateRotate ? 0 : arc.hidden ? 0 : me.calculateCircumference(dataset.data[index]) * (opts.circumference / DOUBLE_PI$1);\n\t\tvar innerRadius = reset && animationOpts.animateScale ? 0 : me.innerRadius;\n\t\tvar outerRadius = reset && animationOpts.animateScale ? 0 : me.outerRadius;\n\t\tvar options = arc._options || {};\n\n\t\thelpers$1.extend(arc, {\n\t\t\t// Utility\n\t\t\t_datasetIndex: me.index,\n\t\t\t_index: index,\n\n\t\t\t// Desired view properties\n\t\t\t_model: {\n\t\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\t\tborderColor: options.borderColor,\n\t\t\t\tborderWidth: options.borderWidth,\n\t\t\t\tborderAlign: options.borderAlign,\n\t\t\t\tx: centerX + chart.offsetX,\n\t\t\t\ty: centerY + chart.offsetY,\n\t\t\t\tstartAngle: startAngle,\n\t\t\t\tendAngle: endAngle,\n\t\t\t\tcircumference: circumference,\n\t\t\t\touterRadius: outerRadius,\n\t\t\t\tinnerRadius: innerRadius,\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(dataset.label, index, chart.data.labels[index])\n\t\t\t}\n\t\t});\n\n\t\tvar model = arc._model;\n\n\t\t// Set correct angles if not resetting\n\t\tif (!reset || !animationOpts.animateRotate) {\n\t\t\tif (index === 0) {\n\t\t\t\tmodel.startAngle = opts.rotation;\n\t\t\t} else {\n\t\t\t\tmodel.startAngle = me.getMeta().data[index - 1]._model.endAngle;\n\t\t\t}\n\n\t\t\tmodel.endAngle = model.startAngle + model.circumference;\n\t\t}\n\n\t\tarc.pivot();\n\t},\n\n\tcalculateTotal: function() {\n\t\tvar dataset = this.getDataset();\n\t\tvar meta = this.getMeta();\n\t\tvar total = 0;\n\t\tvar value;\n\n\t\thelpers$1.each(meta.data, function(element, index) {\n\t\t\tvalue = dataset.data[index];\n\t\t\tif (!isNaN(value) && !element.hidden) {\n\t\t\t\ttotal += Math.abs(value);\n\t\t\t}\n\t\t});\n\n\t\t/* if (total === 0) {\n\t\t\ttotal = NaN;\n\t\t}*/\n\n\t\treturn total;\n\t},\n\n\tcalculateCircumference: function(value) {\n\t\tvar total = this.getMeta().total;\n\t\tif (total > 0 && !isNaN(value)) {\n\t\t\treturn DOUBLE_PI$1 * (Math.abs(value) / total);\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// gets the max border or hover width to properly scale pie charts\n\tgetMaxBorderWidth: function(arcs) {\n\t\tvar me = this;\n\t\tvar max = 0;\n\t\tvar chart = me.chart;\n\t\tvar i, ilen, meta, arc, controller, options, borderWidth, hoverWidth;\n\n\t\tif (!arcs) {\n\t\t\t// Find the outmost visible dataset\n\t\t\tfor (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\n\t\t\t\tif (chart.isDatasetVisible(i)) {\n\t\t\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\t\t\tarcs = meta.data;\n\t\t\t\t\tif (i !== me.index) {\n\t\t\t\t\t\tcontroller = meta.controller;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (!arcs) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\n\t\t\tarc = arcs[i];\n\t\t\tif (controller) {\n\t\t\t\tcontroller._configure();\n\t\t\t\toptions = controller._resolveDataElementOptions(arc, i);\n\t\t\t} else {\n\t\t\t\toptions = arc._options;\n\t\t\t}\n\t\t\tif (options.borderAlign !== 'inner') {\n\t\t\t\tborderWidth = options.borderWidth;\n\t\t\t\thoverWidth = options.hoverBorderWidth;\n\n\t\t\t\tmax = borderWidth > max ? borderWidth : max;\n\t\t\t\tmax = hoverWidth > max ? hoverWidth : max;\n\t\t\t}\n\t\t}\n\t\treturn max;\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tsetHoverStyle: function(arc) {\n\t\tvar model = arc._model;\n\t\tvar options = arc._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\tarc.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault$5(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault$5(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault$5(options.hoverBorderWidth, options.borderWidth);\n\t},\n\n\t/**\n\t * Get radius length offset of the dataset in relation to the visible datasets weights. This allows determining the inner and outer radius correctly\n\t * @private\n\t */\n\t_getRingWeightOffset: function(datasetIndex) {\n\t\tvar ringWeightOffset = 0;\n\n\t\tfor (var i = 0; i < datasetIndex; ++i) {\n\t\t\tif (this.chart.isDatasetVisible(i)) {\n\t\t\t\tringWeightOffset += this._getRingWeight(i);\n\t\t\t}\n\t\t}\n\n\t\treturn ringWeightOffset;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getRingWeight: function(dataSetIndex) {\n\t\treturn Math.max(valueOrDefault$5(this.chart.data.datasets[dataSetIndex].weight, 1), 0);\n\t},\n\n\t/**\n\t * Returns the sum of all visibile data set weights. This value can be 0.\n\t * @private\n\t */\n\t_getVisibleDatasetWeightTotal: function() {\n\t\treturn this._getRingWeightOffset(this.chart.data.datasets.length);\n\t}\n});\n\ncore_defaults._set('horizontalBar', {\n\thover: {\n\t\tmode: 'index',\n\t\taxis: 'y'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'linear',\n\t\t\tposition: 'bottom'\n\t\t}],\n\n\t\tyAxes: [{\n\t\t\ttype: 'category',\n\t\t\tposition: 'left',\n\t\t\toffset: true,\n\t\t\tgridLines: {\n\t\t\t\toffsetGridLines: true\n\t\t\t}\n\t\t}]\n\t},\n\n\telements: {\n\t\trectangle: {\n\t\t\tborderSkipped: 'left'\n\t\t}\n\t},\n\n\ttooltips: {\n\t\tmode: 'index',\n\t\taxis: 'y'\n\t}\n});\n\ncore_defaults._set('global', {\n\tdatasets: {\n\t\thorizontalBar: {\n\t\t\tcategoryPercentage: 0.8,\n\t\t\tbarPercentage: 0.9\n\t\t}\n\t}\n});\n\nvar controller_horizontalBar = controller_bar.extend({\n\t/**\n\t * @private\n\t */\n\t_getValueScaleId: function() {\n\t\treturn this.getMeta().xAxisID;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScaleId: function() {\n\t\treturn this.getMeta().yAxisID;\n\t}\n});\n\nvar valueOrDefault$6 = helpers$1.valueOrDefault;\nvar resolve$2 = helpers$1.options.resolve;\nvar isPointInArea = helpers$1.canvas._isPointInArea;\n\ncore_defaults._set('line', {\n\tshowLines: true,\n\tspanGaps: false,\n\n\thover: {\n\t\tmode: 'label'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'category',\n\t\t\tid: 'x-axis-0'\n\t\t}],\n\t\tyAxes: [{\n\t\t\ttype: 'linear',\n\t\t\tid: 'y-axis-0'\n\t\t}]\n\t}\n});\n\nfunction scaleClip(scale, halfBorderWidth) {\n\tvar tickOpts = scale && scale.options.ticks || {};\n\tvar reverse = tickOpts.reverse;\n\tvar min = tickOpts.min === undefined ? halfBorderWidth : 0;\n\tvar max = tickOpts.max === undefined ? halfBorderWidth : 0;\n\treturn {\n\t\tstart: reverse ? max : min,\n\t\tend: reverse ? min : max\n\t};\n}\n\nfunction defaultClip(xScale, yScale, borderWidth) {\n\tvar halfBorderWidth = borderWidth / 2;\n\tvar x = scaleClip(xScale, halfBorderWidth);\n\tvar y = scaleClip(yScale, halfBorderWidth);\n\n\treturn {\n\t\ttop: y.end,\n\t\tright: x.end,\n\t\tbottom: y.start,\n\t\tleft: x.start\n\t};\n}\n\nfunction toClip(value) {\n\tvar t, r, b, l;\n\n\tif (helpers$1.isObject(value)) {\n\t\tt = value.top;\n\t\tr = value.right;\n\t\tb = value.bottom;\n\t\tl = value.left;\n\t} else {\n\t\tt = r = b = l = value;\n\t}\n\n\treturn {\n\t\ttop: t,\n\t\tright: r,\n\t\tbottom: b,\n\t\tleft: l\n\t};\n}\n\n\nvar controller_line = core_datasetController.extend({\n\n\tdatasetElementType: elements.Line,\n\n\tdataElementType: elements.Point,\n\n\t/**\n\t * @private\n\t */\n\t_datasetElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderCapStyle',\n\t\t'borderColor',\n\t\t'borderDash',\n\t\t'borderDashOffset',\n\t\t'borderJoinStyle',\n\t\t'borderWidth',\n\t\t'cubicInterpolationMode',\n\t\t'fill'\n\t],\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: {\n\t\tbackgroundColor: 'pointBackgroundColor',\n\t\tborderColor: 'pointBorderColor',\n\t\tborderWidth: 'pointBorderWidth',\n\t\thitRadius: 'pointHitRadius',\n\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\n\t\thoverBorderColor: 'pointHoverBorderColor',\n\t\thoverBorderWidth: 'pointHoverBorderWidth',\n\t\thoverRadius: 'pointHoverRadius',\n\t\tpointStyle: 'pointStyle',\n\t\tradius: 'pointRadius',\n\t\trotation: 'pointRotation'\n\t},\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar line = meta.dataset;\n\t\tvar points = meta.data || [];\n\t\tvar options = me.chart.options;\n\t\tvar config = me._config;\n\t\tvar showLine = me._showLine = valueOrDefault$6(config.showLine, options.showLines);\n\t\tvar i, ilen;\n\n\t\tme._xScale = me.getScaleForId(meta.xAxisID);\n\t\tme._yScale = me.getScaleForId(meta.yAxisID);\n\n\t\t// Update Line\n\t\tif (showLine) {\n\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\n\t\t\tif (config.tension !== undefined && config.lineTension === undefined) {\n\t\t\t\tconfig.lineTension = config.tension;\n\t\t\t}\n\n\t\t\t// Utility\n\t\t\tline._scale = me._yScale;\n\t\t\tline._datasetIndex = me.index;\n\t\t\t// Data\n\t\t\tline._children = points;\n\t\t\t// Model\n\t\t\tline._model = me._resolveDatasetElementOptions(line);\n\n\t\t\tline.pivot();\n\t\t}\n\n\t\t// Update Points\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tme.updateElement(points[i], i, reset);\n\t\t}\n\n\t\tif (showLine && line._model.tension !== 0) {\n\t\t\tme.updateBezierControlPoints();\n\t\t}\n\n\t\t// Now pivot the point for animation\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tpoints[i].pivot();\n\t\t}\n\t},\n\n\tupdateElement: function(point, index, reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar custom = point.custom || {};\n\t\tvar dataset = me.getDataset();\n\t\tvar datasetIndex = me.index;\n\t\tvar value = dataset.data[index];\n\t\tvar xScale = me._xScale;\n\t\tvar yScale = me._yScale;\n\t\tvar lineModel = meta.dataset._model;\n\t\tvar x, y;\n\n\t\tvar options = me._resolveDataElementOptions(point, index);\n\n\t\tx = xScale.getPixelForValue(typeof value === 'object' ? value : NaN, index, datasetIndex);\n\t\ty = reset ? yScale.getBasePixel() : me.calculatePointY(value, index, datasetIndex);\n\n\t\t// Utility\n\t\tpoint._xScale = xScale;\n\t\tpoint._yScale = yScale;\n\t\tpoint._options = options;\n\t\tpoint._datasetIndex = datasetIndex;\n\t\tpoint._index = index;\n\n\t\t// Desired view properties\n\t\tpoint._model = {\n\t\t\tx: x,\n\t\t\ty: y,\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\n\t\t\t// Appearance\n\t\t\tradius: options.radius,\n\t\t\tpointStyle: options.pointStyle,\n\t\t\trotation: options.rotation,\n\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\tborderColor: options.borderColor,\n\t\t\tborderWidth: options.borderWidth,\n\t\t\ttension: valueOrDefault$6(custom.tension, lineModel ? lineModel.tension : 0),\n\t\t\tsteppedLine: lineModel ? lineModel.steppedLine : false,\n\t\t\t// Tooltip\n\t\t\thitRadius: options.hitRadius\n\t\t};\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDatasetElementOptions: function(element) {\n\t\tvar me = this;\n\t\tvar config = me._config;\n\t\tvar custom = element.custom || {};\n\t\tvar options = me.chart.options;\n\t\tvar lineOptions = options.elements.line;\n\t\tvar values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments);\n\n\t\t// The default behavior of lines is to break at null values, according\n\t\t// to https://github.com/chartjs/Chart.js/issues/2435#issuecomment-216718158\n\t\t// This option gives lines the ability to span gaps\n\t\tvalues.spanGaps = valueOrDefault$6(config.spanGaps, options.spanGaps);\n\t\tvalues.tension = valueOrDefault$6(config.lineTension, lineOptions.tension);\n\t\tvalues.steppedLine = resolve$2([custom.steppedLine, config.steppedLine, lineOptions.stepped]);\n\t\tvalues.clip = toClip(valueOrDefault$6(config.clip, defaultClip(me._xScale, me._yScale, values.borderWidth)));\n\n\t\treturn values;\n\t},\n\n\tcalculatePointY: function(value, index, datasetIndex) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar yScale = me._yScale;\n\t\tvar sumPos = 0;\n\t\tvar sumNeg = 0;\n\t\tvar i, ds, dsMeta, stackedRightValue, rightValue, metasets, ilen;\n\n\t\tif (yScale.options.stacked) {\n\t\t\trightValue = +yScale.getRightValue(value);\n\t\t\tmetasets = chart._getSortedVisibleDatasetMetas();\n\t\t\tilen = metasets.length;\n\n\t\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\t\tdsMeta = metasets[i];\n\t\t\t\tif (dsMeta.index === datasetIndex) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tds = chart.data.datasets[dsMeta.index];\n\t\t\t\tif (dsMeta.type === 'line' && dsMeta.yAxisID === yScale.id) {\n\t\t\t\t\tstackedRightValue = +yScale.getRightValue(ds.data[index]);\n\t\t\t\t\tif (stackedRightValue < 0) {\n\t\t\t\t\t\tsumNeg += stackedRightValue || 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsumPos += stackedRightValue || 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (rightValue < 0) {\n\t\t\t\treturn yScale.getPixelForValue(sumNeg + rightValue);\n\t\t\t}\n\t\t\treturn yScale.getPixelForValue(sumPos + rightValue);\n\t\t}\n\t\treturn yScale.getPixelForValue(value);\n\t},\n\n\tupdateBezierControlPoints: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar meta = me.getMeta();\n\t\tvar lineModel = meta.dataset._model;\n\t\tvar area = chart.chartArea;\n\t\tvar points = meta.data || [];\n\t\tvar i, ilen, model, controlPoints;\n\n\t\t// Only consider points that are drawn in case the spanGaps option is used\n\t\tif (lineModel.spanGaps) {\n\t\t\tpoints = points.filter(function(pt) {\n\t\t\t\treturn !pt._model.skip;\n\t\t\t});\n\t\t}\n\n\t\tfunction capControlPoint(pt, min, max) {\n\t\t\treturn Math.max(Math.min(pt, max), min);\n\t\t}\n\n\t\tif (lineModel.cubicInterpolationMode === 'monotone') {\n\t\t\thelpers$1.splineCurveMonotone(points);\n\t\t} else {\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\t\tmodel = points[i]._model;\n\t\t\t\tcontrolPoints = helpers$1.splineCurve(\n\t\t\t\t\thelpers$1.previousItem(points, i)._model,\n\t\t\t\t\tmodel,\n\t\t\t\t\thelpers$1.nextItem(points, i)._model,\n\t\t\t\t\tlineModel.tension\n\t\t\t\t);\n\t\t\t\tmodel.controlPointPreviousX = controlPoints.previous.x;\n\t\t\t\tmodel.controlPointPreviousY = controlPoints.previous.y;\n\t\t\t\tmodel.controlPointNextX = controlPoints.next.x;\n\t\t\t\tmodel.controlPointNextY = controlPoints.next.y;\n\t\t\t}\n\t\t}\n\n\t\tif (chart.options.elements.line.capBezierPoints) {\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\t\tmodel = points[i]._model;\n\t\t\t\tif (isPointInArea(model, area)) {\n\t\t\t\t\tif (i > 0 && isPointInArea(points[i - 1]._model, area)) {\n\t\t\t\t\t\tmodel.controlPointPreviousX = capControlPoint(model.controlPointPreviousX, area.left, area.right);\n\t\t\t\t\t\tmodel.controlPointPreviousY = capControlPoint(model.controlPointPreviousY, area.top, area.bottom);\n\t\t\t\t\t}\n\t\t\t\t\tif (i < points.length - 1 && isPointInArea(points[i + 1]._model, area)) {\n\t\t\t\t\t\tmodel.controlPointNextX = capControlPoint(model.controlPointNextX, area.left, area.right);\n\t\t\t\t\t\tmodel.controlPointNextY = capControlPoint(model.controlPointNextY, area.top, area.bottom);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tdraw: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar meta = me.getMeta();\n\t\tvar points = meta.data || [];\n\t\tvar area = chart.chartArea;\n\t\tvar canvas = chart.canvas;\n\t\tvar i = 0;\n\t\tvar ilen = points.length;\n\t\tvar clip;\n\n\t\tif (me._showLine) {\n\t\t\tclip = meta.dataset._model.clip;\n\n\t\t\thelpers$1.canvas.clipArea(chart.ctx, {\n\t\t\t\tleft: clip.left === false ? 0 : area.left - clip.left,\n\t\t\t\tright: clip.right === false ? canvas.width : area.right + clip.right,\n\t\t\t\ttop: clip.top === false ? 0 : area.top - clip.top,\n\t\t\t\tbottom: clip.bottom === false ? canvas.height : area.bottom + clip.bottom\n\t\t\t});\n\n\t\t\tmeta.dataset.draw();\n\n\t\t\thelpers$1.canvas.unclipArea(chart.ctx);\n\t\t}\n\n\t\t// Draw the points\n\t\tfor (; i < ilen; ++i) {\n\t\t\tpoints[i].draw(area);\n\t\t}\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tsetHoverStyle: function(point) {\n\t\tvar model = point._model;\n\t\tvar options = point._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\tpoint.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t\tradius: model.radius\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault$6(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault$6(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault$6(options.hoverBorderWidth, options.borderWidth);\n\t\tmodel.radius = valueOrDefault$6(options.hoverRadius, options.radius);\n\t},\n});\n\nvar resolve$3 = helpers$1.options.resolve;\n\ncore_defaults._set('polarArea', {\n\tscale: {\n\t\ttype: 'radialLinear',\n\t\tangleLines: {\n\t\t\tdisplay: false\n\t\t},\n\t\tgridLines: {\n\t\t\tcircular: true\n\t\t},\n\t\tpointLabels: {\n\t\t\tdisplay: false\n\t\t},\n\t\tticks: {\n\t\t\tbeginAtZero: true\n\t\t}\n\t},\n\n\t// Boolean - Whether to animate the rotation of the chart\n\tanimation: {\n\t\tanimateRotate: true,\n\t\tanimateScale: true\n\t},\n\n\tstartAngle: -0.5 * Math.PI,\n\tlegendCallback: function(chart) {\n\t\tvar list = document.createElement('ul');\n\t\tvar data = chart.data;\n\t\tvar datasets = data.datasets;\n\t\tvar labels = data.labels;\n\t\tvar i, ilen, listItem, listItemSpan;\n\n\t\tlist.setAttribute('class', chart.id + '-legend');\n\t\tif (datasets.length) {\n\t\t\tfor (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\n\t\t\t\tlistItem = list.appendChild(document.createElement('li'));\n\t\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\n\t\t\t\tlistItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\n\t\t\t\tif (labels[i]) {\n\t\t\t\t\tlistItem.appendChild(document.createTextNode(labels[i]));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn list.outerHTML;\n\t},\n\tlegend: {\n\t\tlabels: {\n\t\t\tgenerateLabels: function(chart) {\n\t\t\t\tvar data = chart.data;\n\t\t\t\tif (data.labels.length && data.datasets.length) {\n\t\t\t\t\treturn data.labels.map(function(label, i) {\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\n\t\t\t\t\t\tvar style = meta.controller.getStyle(i);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttext: label,\n\t\t\t\t\t\t\tfillStyle: style.backgroundColor,\n\t\t\t\t\t\t\tstrokeStyle: style.borderColor,\n\t\t\t\t\t\t\tlineWidth: style.borderWidth,\n\t\t\t\t\t\t\thidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\n\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\n\t\t\t\t\t\t\tindex: i\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn [];\n\t\t\t}\n\t\t},\n\n\t\tonClick: function(e, legendItem) {\n\t\t\tvar index = legendItem.index;\n\t\t\tvar chart = this.chart;\n\t\t\tvar i, ilen, meta;\n\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\n\t\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\n\t\t\t}\n\n\t\t\tchart.update();\n\t\t}\n\t},\n\n\t// Need to override these to give a nice default\n\ttooltips: {\n\t\tcallbacks: {\n\t\t\ttitle: function() {\n\t\t\t\treturn '';\n\t\t\t},\n\t\t\tlabel: function(item, data) {\n\t\t\t\treturn data.labels[item.index] + ': ' + item.yLabel;\n\t\t\t}\n\t\t}\n\t}\n});\n\nvar controller_polarArea = core_datasetController.extend({\n\n\tdataElementType: elements.Arc,\n\n\tlinkScales: helpers$1.noop,\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderColor',\n\t\t'borderWidth',\n\t\t'borderAlign',\n\t\t'hoverBackgroundColor',\n\t\t'hoverBorderColor',\n\t\t'hoverBorderWidth',\n\t],\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScaleId: function() {\n\t\treturn this.chart.scale.id;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getValueScaleId: function() {\n\t\treturn this.chart.scale.id;\n\t},\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar dataset = me.getDataset();\n\t\tvar meta = me.getMeta();\n\t\tvar start = me.chart.options.startAngle || 0;\n\t\tvar starts = me._starts = [];\n\t\tvar angles = me._angles = [];\n\t\tvar arcs = meta.data;\n\t\tvar i, ilen, angle;\n\n\t\tme._updateRadius();\n\n\t\tmeta.count = me.countVisibleElements();\n\n\t\tfor (i = 0, ilen = dataset.data.length; i < ilen; i++) {\n\t\t\tstarts[i] = start;\n\t\t\tangle = me._computeAngle(i);\n\t\t\tangles[i] = angle;\n\t\t\tstart += angle;\n\t\t}\n\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\n\t\t\tarcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\n\t\t\tme.updateElement(arcs[i], i, reset);\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_updateRadius: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar chartArea = chart.chartArea;\n\t\tvar opts = chart.options;\n\t\tvar minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n\n\t\tchart.outerRadius = Math.max(minSize / 2, 0);\n\t\tchart.innerRadius = Math.max(opts.cutoutPercentage ? (chart.outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount();\n\n\t\tme.outerRadius = chart.outerRadius - (chart.radiusLength * me.index);\n\t\tme.innerRadius = me.outerRadius - chart.radiusLength;\n\t},\n\n\tupdateElement: function(arc, index, reset) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar dataset = me.getDataset();\n\t\tvar opts = chart.options;\n\t\tvar animationOpts = opts.animation;\n\t\tvar scale = chart.scale;\n\t\tvar labels = chart.data.labels;\n\n\t\tvar centerX = scale.xCenter;\n\t\tvar centerY = scale.yCenter;\n\n\t\t// var negHalfPI = -0.5 * Math.PI;\n\t\tvar datasetStartAngle = opts.startAngle;\n\t\tvar distance = arc.hidden ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\n\t\tvar startAngle = me._starts[index];\n\t\tvar endAngle = startAngle + (arc.hidden ? 0 : me._angles[index]);\n\n\t\tvar resetRadius = animationOpts.animateScale ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\n\t\tvar options = arc._options || {};\n\n\t\thelpers$1.extend(arc, {\n\t\t\t// Utility\n\t\t\t_datasetIndex: me.index,\n\t\t\t_index: index,\n\t\t\t_scale: scale,\n\n\t\t\t// Desired view properties\n\t\t\t_model: {\n\t\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\t\tborderColor: options.borderColor,\n\t\t\t\tborderWidth: options.borderWidth,\n\t\t\t\tborderAlign: options.borderAlign,\n\t\t\t\tx: centerX,\n\t\t\t\ty: centerY,\n\t\t\t\tinnerRadius: 0,\n\t\t\t\touterRadius: reset ? resetRadius : distance,\n\t\t\t\tstartAngle: reset && animationOpts.animateRotate ? datasetStartAngle : startAngle,\n\t\t\t\tendAngle: reset && animationOpts.animateRotate ? datasetStartAngle : endAngle,\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(labels, index, labels[index])\n\t\t\t}\n\t\t});\n\n\t\tarc.pivot();\n\t},\n\n\tcountVisibleElements: function() {\n\t\tvar dataset = this.getDataset();\n\t\tvar meta = this.getMeta();\n\t\tvar count = 0;\n\n\t\thelpers$1.each(meta.data, function(element, index) {\n\t\t\tif (!isNaN(dataset.data[index]) && !element.hidden) {\n\t\t\t\tcount++;\n\t\t\t}\n\t\t});\n\n\t\treturn count;\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tsetHoverStyle: function(arc) {\n\t\tvar model = arc._model;\n\t\tvar options = arc._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\t\tvar valueOrDefault = helpers$1.valueOrDefault;\n\n\t\tarc.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault(options.hoverBorderWidth, options.borderWidth);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_computeAngle: function(index) {\n\t\tvar me = this;\n\t\tvar count = this.getMeta().count;\n\t\tvar dataset = me.getDataset();\n\t\tvar meta = me.getMeta();\n\n\t\tif (isNaN(dataset.data[index]) || meta.data[index].hidden) {\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Scriptable options\n\t\tvar context = {\n\t\t\tchart: me.chart,\n\t\t\tdataIndex: index,\n\t\t\tdataset: dataset,\n\t\t\tdatasetIndex: me.index\n\t\t};\n\n\t\treturn resolve$3([\n\t\t\tme.chart.options.elements.arc.angle,\n\t\t\t(2 * Math.PI) / count\n\t\t], context, index);\n\t}\n});\n\ncore_defaults._set('pie', helpers$1.clone(core_defaults.doughnut));\ncore_defaults._set('pie', {\n\tcutoutPercentage: 0\n});\n\n// Pie charts are Doughnut chart with different defaults\nvar controller_pie = controller_doughnut;\n\nvar valueOrDefault$7 = helpers$1.valueOrDefault;\n\ncore_defaults._set('radar', {\n\tspanGaps: false,\n\tscale: {\n\t\ttype: 'radialLinear'\n\t},\n\telements: {\n\t\tline: {\n\t\t\tfill: 'start',\n\t\t\ttension: 0 // no bezier in radar\n\t\t}\n\t}\n});\n\nvar controller_radar = core_datasetController.extend({\n\tdatasetElementType: elements.Line,\n\n\tdataElementType: elements.Point,\n\n\tlinkScales: helpers$1.noop,\n\n\t/**\n\t * @private\n\t */\n\t_datasetElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderWidth',\n\t\t'borderColor',\n\t\t'borderCapStyle',\n\t\t'borderDash',\n\t\t'borderDashOffset',\n\t\t'borderJoinStyle',\n\t\t'fill'\n\t],\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: {\n\t\tbackgroundColor: 'pointBackgroundColor',\n\t\tborderColor: 'pointBorderColor',\n\t\tborderWidth: 'pointBorderWidth',\n\t\thitRadius: 'pointHitRadius',\n\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\n\t\thoverBorderColor: 'pointHoverBorderColor',\n\t\thoverBorderWidth: 'pointHoverBorderWidth',\n\t\thoverRadius: 'pointHoverRadius',\n\t\tpointStyle: 'pointStyle',\n\t\tradius: 'pointRadius',\n\t\trotation: 'pointRotation'\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScaleId: function() {\n\t\treturn this.chart.scale.id;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getValueScaleId: function() {\n\t\treturn this.chart.scale.id;\n\t},\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar line = meta.dataset;\n\t\tvar points = meta.data || [];\n\t\tvar scale = me.chart.scale;\n\t\tvar config = me._config;\n\t\tvar i, ilen;\n\n\t\t// Compatibility: If the properties are defined with only the old name, use those values\n\t\tif (config.tension !== undefined && config.lineTension === undefined) {\n\t\t\tconfig.lineTension = config.tension;\n\t\t}\n\n\t\t// Utility\n\t\tline._scale = scale;\n\t\tline._datasetIndex = me.index;\n\t\t// Data\n\t\tline._children = points;\n\t\tline._loop = true;\n\t\t// Model\n\t\tline._model = me._resolveDatasetElementOptions(line);\n\n\t\tline.pivot();\n\n\t\t// Update Points\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tme.updateElement(points[i], i, reset);\n\t\t}\n\n\t\t// Update bezier control points\n\t\tme.updateBezierControlPoints();\n\n\t\t// Now pivot the point for animation\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tpoints[i].pivot();\n\t\t}\n\t},\n\n\tupdateElement: function(point, index, reset) {\n\t\tvar me = this;\n\t\tvar custom = point.custom || {};\n\t\tvar dataset = me.getDataset();\n\t\tvar scale = me.chart.scale;\n\t\tvar pointPosition = scale.getPointPositionForValue(index, dataset.data[index]);\n\t\tvar options = me._resolveDataElementOptions(point, index);\n\t\tvar lineModel = me.getMeta().dataset._model;\n\t\tvar x = reset ? scale.xCenter : pointPosition.x;\n\t\tvar y = reset ? scale.yCenter : pointPosition.y;\n\n\t\t// Utility\n\t\tpoint._scale = scale;\n\t\tpoint._options = options;\n\t\tpoint._datasetIndex = me.index;\n\t\tpoint._index = index;\n\n\t\t// Desired view properties\n\t\tpoint._model = {\n\t\t\tx: x, // value not used in dataset scale, but we want a consistent API between scales\n\t\t\ty: y,\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\n\t\t\t// Appearance\n\t\t\tradius: options.radius,\n\t\t\tpointStyle: options.pointStyle,\n\t\t\trotation: options.rotation,\n\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\tborderColor: options.borderColor,\n\t\t\tborderWidth: options.borderWidth,\n\t\t\ttension: valueOrDefault$7(custom.tension, lineModel ? lineModel.tension : 0),\n\n\t\t\t// Tooltip\n\t\t\thitRadius: options.hitRadius\n\t\t};\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDatasetElementOptions: function() {\n\t\tvar me = this;\n\t\tvar config = me._config;\n\t\tvar options = me.chart.options;\n\t\tvar values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments);\n\n\t\tvalues.spanGaps = valueOrDefault$7(config.spanGaps, options.spanGaps);\n\t\tvalues.tension = valueOrDefault$7(config.lineTension, options.elements.line.tension);\n\n\t\treturn values;\n\t},\n\n\tupdateBezierControlPoints: function() {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar area = me.chart.chartArea;\n\t\tvar points = meta.data || [];\n\t\tvar i, ilen, model, controlPoints;\n\n\t\t// Only consider points that are drawn in case the spanGaps option is used\n\t\tif (meta.dataset._model.spanGaps) {\n\t\t\tpoints = points.filter(function(pt) {\n\t\t\t\treturn !pt._model.skip;\n\t\t\t});\n\t\t}\n\n\t\tfunction capControlPoint(pt, min, max) {\n\t\t\treturn Math.max(Math.min(pt, max), min);\n\t\t}\n\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tmodel = points[i]._model;\n\t\t\tcontrolPoints = helpers$1.splineCurve(\n\t\t\t\thelpers$1.previousItem(points, i, true)._model,\n\t\t\t\tmodel,\n\t\t\t\thelpers$1.nextItem(points, i, true)._model,\n\t\t\t\tmodel.tension\n\t\t\t);\n\n\t\t\t// Prevent the bezier going outside of the bounds of the graph\n\t\t\tmodel.controlPointPreviousX = capControlPoint(controlPoints.previous.x, area.left, area.right);\n\t\t\tmodel.controlPointPreviousY = capControlPoint(controlPoints.previous.y, area.top, area.bottom);\n\t\t\tmodel.controlPointNextX = capControlPoint(controlPoints.next.x, area.left, area.right);\n\t\t\tmodel.controlPointNextY = capControlPoint(controlPoints.next.y, area.top, area.bottom);\n\t\t}\n\t},\n\n\tsetHoverStyle: function(point) {\n\t\tvar model = point._model;\n\t\tvar options = point._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\tpoint.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t\tradius: model.radius\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault$7(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault$7(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault$7(options.hoverBorderWidth, options.borderWidth);\n\t\tmodel.radius = valueOrDefault$7(options.hoverRadius, options.radius);\n\t}\n});\n\ncore_defaults._set('scatter', {\n\thover: {\n\t\tmode: 'single'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\tid: 'x-axis-1', // need an ID so datasets can reference the scale\n\t\t\ttype: 'linear', // scatter should not use a category axis\n\t\t\tposition: 'bottom'\n\t\t}],\n\t\tyAxes: [{\n\t\t\tid: 'y-axis-1',\n\t\t\ttype: 'linear',\n\t\t\tposition: 'left'\n\t\t}]\n\t},\n\n\ttooltips: {\n\t\tcallbacks: {\n\t\t\ttitle: function() {\n\t\t\t\treturn ''; // doesn't make sense for scatter since data are formatted as a point\n\t\t\t},\n\t\t\tlabel: function(item) {\n\t\t\t\treturn '(' + item.xLabel + ', ' + item.yLabel + ')';\n\t\t\t}\n\t\t}\n\t}\n});\n\ncore_defaults._set('global', {\n\tdatasets: {\n\t\tscatter: {\n\t\t\tshowLine: false\n\t\t}\n\t}\n});\n\n// Scatter charts use line controllers\nvar controller_scatter = controller_line;\n\n// NOTE export a map in which the key represents the controller type, not\n// the class, and so must be CamelCase in order to be correctly retrieved\n// by the controller in core.controller.js (`controllers[meta.type]`).\n\nvar controllers = {\n\tbar: controller_bar,\n\tbubble: controller_bubble,\n\tdoughnut: controller_doughnut,\n\thorizontalBar: controller_horizontalBar,\n\tline: controller_line,\n\tpolarArea: controller_polarArea,\n\tpie: controller_pie,\n\tradar: controller_radar,\n\tscatter: controller_scatter\n};\n\n/**\n * Helper function to get relative position for an event\n * @param {Event|IEvent} event - The event to get the position for\n * @param {Chart} chart - The chart\n * @returns {object} the event position\n */\nfunction getRelativePosition(e, chart) {\n\tif (e.native) {\n\t\treturn {\n\t\t\tx: e.x,\n\t\t\ty: e.y\n\t\t};\n\t}\n\n\treturn helpers$1.getRelativePosition(e, chart);\n}\n\n/**\n * Helper function to traverse all of the visible elements in the chart\n * @param {Chart} chart - the chart\n * @param {function} handler - the callback to execute for each visible item\n */\nfunction parseVisibleItems(chart, handler) {\n\tvar metasets = chart._getSortedVisibleDatasetMetas();\n\tvar metadata, i, j, ilen, jlen, element;\n\n\tfor (i = 0, ilen = metasets.length; i < ilen; ++i) {\n\t\tmetadata = metasets[i].data;\n\t\tfor (j = 0, jlen = metadata.length; j < jlen; ++j) {\n\t\t\telement = metadata[j];\n\t\t\tif (!element._view.skip) {\n\t\t\t\thandler(element);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * Helper function to get the items that intersect the event position\n * @param {ChartElement[]} items - elements to filter\n * @param {object} position - the point to be nearest to\n * @return {ChartElement[]} the nearest items\n */\nfunction getIntersectItems(chart, position) {\n\tvar elements = [];\n\n\tparseVisibleItems(chart, function(element) {\n\t\tif (element.inRange(position.x, position.y)) {\n\t\t\telements.push(element);\n\t\t}\n\t});\n\n\treturn elements;\n}\n\n/**\n * Helper function to get the items nearest to the event position considering all visible items in teh chart\n * @param {Chart} chart - the chart to look at elements from\n * @param {object} position - the point to be nearest to\n * @param {boolean} intersect - if true, only consider items that intersect the position\n * @param {function} distanceMetric - function to provide the distance between points\n * @return {ChartElement[]} the nearest items\n */\nfunction getNearestItems(chart, position, intersect, distanceMetric) {\n\tvar minDistance = Number.POSITIVE_INFINITY;\n\tvar nearestItems = [];\n\n\tparseVisibleItems(chart, function(element) {\n\t\tif (intersect && !element.inRange(position.x, position.y)) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar center = element.getCenterPoint();\n\t\tvar distance = distanceMetric(position, center);\n\t\tif (distance < minDistance) {\n\t\t\tnearestItems = [element];\n\t\t\tminDistance = distance;\n\t\t} else if (distance === minDistance) {\n\t\t\t// Can have multiple items at the same distance in which case we sort by size\n\t\t\tnearestItems.push(element);\n\t\t}\n\t});\n\n\treturn nearestItems;\n}\n\n/**\n * Get a distance metric function for two points based on the\n * axis mode setting\n * @param {string} axis - the axis mode. x|y|xy\n */\nfunction getDistanceMetricForAxis(axis) {\n\tvar useX = axis.indexOf('x') !== -1;\n\tvar useY = axis.indexOf('y') !== -1;\n\n\treturn function(pt1, pt2) {\n\t\tvar deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n\t\tvar deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n\t\treturn Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n\t};\n}\n\nfunction indexMode(chart, e, options) {\n\tvar position = getRelativePosition(e, chart);\n\t// Default axis for index mode is 'x' to match old behaviour\n\toptions.axis = options.axis || 'x';\n\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\n\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\n\tvar elements = [];\n\n\tif (!items.length) {\n\t\treturn [];\n\t}\n\n\tchart._getSortedVisibleDatasetMetas().forEach(function(meta) {\n\t\tvar element = meta.data[items[0]._index];\n\n\t\t// don't count items that are skipped (null data)\n\t\tif (element && !element._view.skip) {\n\t\t\telements.push(element);\n\t\t}\n\t});\n\n\treturn elements;\n}\n\n/**\n * @interface IInteractionOptions\n */\n/**\n * If true, only consider items that intersect the point\n * @name IInterfaceOptions#boolean\n * @type Boolean\n */\n\n/**\n * Contains interaction related functions\n * @namespace Chart.Interaction\n */\nvar core_interaction = {\n\t// Helper function for different modes\n\tmodes: {\n\t\tsingle: function(chart, e) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\tvar elements = [];\n\n\t\t\tparseVisibleItems(chart, function(element) {\n\t\t\t\tif (element.inRange(position.x, position.y)) {\n\t\t\t\t\telements.push(element);\n\t\t\t\t\treturn elements;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn elements.slice(0, 1);\n\t\t},\n\n\t\t/**\n\t\t * @function Chart.Interaction.modes.label\n\t\t * @deprecated since version 2.4.0\n\t\t * @todo remove at version 3\n\t\t * @private\n\t\t */\n\t\tlabel: indexMode,\n\n\t\t/**\n\t\t * Returns items at the same index. If the options.intersect parameter is true, we only return items if we intersect something\n\t\t * If the options.intersect mode is false, we find the nearest item and return the items at the same index as that item\n\t\t * @function Chart.Interaction.modes.index\n\t\t * @since v2.4.0\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - options to use during interaction\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tindex: indexMode,\n\n\t\t/**\n\t\t * Returns items in the same dataset. If the options.intersect parameter is true, we only return items if we intersect something\n\t\t * If the options.intersect is false, we find the nearest item and return the items in that dataset\n\t\t * @function Chart.Interaction.modes.dataset\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - options to use during interaction\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tdataset: function(chart, e, options) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\toptions.axis = options.axis || 'xy';\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\n\t\t\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\n\n\t\t\tif (items.length > 0) {\n\t\t\t\titems = chart.getDatasetMeta(items[0]._datasetIndex).data;\n\t\t\t}\n\n\t\t\treturn items;\n\t\t},\n\n\t\t/**\n\t\t * @function Chart.Interaction.modes.x-axis\n\t\t * @deprecated since version 2.4.0. Use index mode and intersect == true\n\t\t * @todo remove at version 3\n\t\t * @private\n\t\t */\n\t\t'x-axis': function(chart, e) {\n\t\t\treturn indexMode(chart, e, {intersect: false});\n\t\t},\n\n\t\t/**\n\t\t * Point mode returns all elements that hit test based on the event position\n\t\t * of the event\n\t\t * @function Chart.Interaction.modes.intersect\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tpoint: function(chart, e) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\treturn getIntersectItems(chart, position);\n\t\t},\n\n\t\t/**\n\t\t * nearest mode returns the element closest to the point\n\t\t * @function Chart.Interaction.modes.intersect\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - options to use\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tnearest: function(chart, e, options) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\toptions.axis = options.axis || 'xy';\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\n\t\t\treturn getNearestItems(chart, position, options.intersect, distanceMetric);\n\t\t},\n\n\t\t/**\n\t\t * x mode returns the elements that hit-test at the current x coordinate\n\t\t * @function Chart.Interaction.modes.x\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - options to use\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tx: function(chart, e, options) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\tvar items = [];\n\t\t\tvar intersectsItem = false;\n\n\t\t\tparseVisibleItems(chart, function(element) {\n\t\t\t\tif (element.inXRange(position.x)) {\n\t\t\t\t\titems.push(element);\n\t\t\t\t}\n\n\t\t\t\tif (element.inRange(position.x, position.y)) {\n\t\t\t\t\tintersectsItem = true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// If we want to trigger on an intersect and we don't have any items\n\t\t\t// that intersect the position, return nothing\n\t\t\tif (options.intersect && !intersectsItem) {\n\t\t\t\titems = [];\n\t\t\t}\n\t\t\treturn items;\n\t\t},\n\n\t\t/**\n\t\t * y mode returns the elements that hit-test at the current y coordinate\n\t\t * @function Chart.Interaction.modes.y\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - options to use\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\ty: function(chart, e, options) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\tvar items = [];\n\t\t\tvar intersectsItem = false;\n\n\t\t\tparseVisibleItems(chart, function(element) {\n\t\t\t\tif (element.inYRange(position.y)) {\n\t\t\t\t\titems.push(element);\n\t\t\t\t}\n\n\t\t\t\tif (element.inRange(position.x, position.y)) {\n\t\t\t\t\tintersectsItem = true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// If we want to trigger on an intersect and we don't have any items\n\t\t\t// that intersect the position, return nothing\n\t\t\tif (options.intersect && !intersectsItem) {\n\t\t\t\titems = [];\n\t\t\t}\n\t\t\treturn items;\n\t\t}\n\t}\n};\n\nvar extend = helpers$1.extend;\n\nfunction filterByPosition(array, position) {\n\treturn helpers$1.where(array, function(v) {\n\t\treturn v.pos === position;\n\t});\n}\n\nfunction sortByWeight(array, reverse) {\n\treturn array.sort(function(a, b) {\n\t\tvar v0 = reverse ? b : a;\n\t\tvar v1 = reverse ? a : b;\n\t\treturn v0.weight === v1.weight ?\n\t\t\tv0.index - v1.index :\n\t\t\tv0.weight - v1.weight;\n\t});\n}\n\nfunction wrapBoxes(boxes) {\n\tvar layoutBoxes = [];\n\tvar i, ilen, box;\n\n\tfor (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\n\t\tbox = boxes[i];\n\t\tlayoutBoxes.push({\n\t\t\tindex: i,\n\t\t\tbox: box,\n\t\t\tpos: box.position,\n\t\t\thorizontal: box.isHorizontal(),\n\t\t\tweight: box.weight\n\t\t});\n\t}\n\treturn layoutBoxes;\n}\n\nfunction setLayoutDims(layouts, params) {\n\tvar i, ilen, layout;\n\tfor (i = 0, ilen = layouts.length; i < ilen; ++i) {\n\t\tlayout = layouts[i];\n\t\t// store width used instead of chartArea.w in fitBoxes\n\t\tlayout.width = layout.horizontal\n\t\t\t? layout.box.fullWidth && params.availableWidth\n\t\t\t: params.vBoxMaxWidth;\n\t\t// store height used instead of chartArea.h in fitBoxes\n\t\tlayout.height = layout.horizontal && params.hBoxMaxHeight;\n\t}\n}\n\nfunction buildLayoutBoxes(boxes) {\n\tvar layoutBoxes = wrapBoxes(boxes);\n\tvar left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n\tvar right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n\tvar top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n\tvar bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n\n\treturn {\n\t\tleftAndTop: left.concat(top),\n\t\trightAndBottom: right.concat(bottom),\n\t\tchartArea: filterByPosition(layoutBoxes, 'chartArea'),\n\t\tvertical: left.concat(right),\n\t\thorizontal: top.concat(bottom)\n\t};\n}\n\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n\treturn Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\n\nfunction updateDims(chartArea, params, layout) {\n\tvar box = layout.box;\n\tvar maxPadding = chartArea.maxPadding;\n\tvar newWidth, newHeight;\n\n\tif (layout.size) {\n\t\t// this layout was already counted for, lets first reduce old size\n\t\tchartArea[layout.pos] -= layout.size;\n\t}\n\tlayout.size = layout.horizontal ? box.height : box.width;\n\tchartArea[layout.pos] += layout.size;\n\n\tif (box.getPadding) {\n\t\tvar boxPadding = box.getPadding();\n\t\tmaxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n\t\tmaxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n\t\tmaxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n\t\tmaxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n\t}\n\n\tnewWidth = params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right');\n\tnewHeight = params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom');\n\n\tif (newWidth !== chartArea.w || newHeight !== chartArea.h) {\n\t\tchartArea.w = newWidth;\n\t\tchartArea.h = newHeight;\n\n\t\t// return true if chart area changed in layout's direction\n\t\tvar sizes = layout.horizontal ? [newWidth, chartArea.w] : [newHeight, chartArea.h];\n\t\treturn sizes[0] !== sizes[1] && (!isNaN(sizes[0]) || !isNaN(sizes[1]));\n\t}\n}\n\nfunction handleMaxPadding(chartArea) {\n\tvar maxPadding = chartArea.maxPadding;\n\n\tfunction updatePos(pos) {\n\t\tvar change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n\t\tchartArea[pos] += change;\n\t\treturn change;\n\t}\n\tchartArea.y += updatePos('top');\n\tchartArea.x += updatePos('left');\n\tupdatePos('right');\n\tupdatePos('bottom');\n}\n\nfunction getMargins(horizontal, chartArea) {\n\tvar maxPadding = chartArea.maxPadding;\n\n\tfunction marginForPositions(positions) {\n\t\tvar margin = {left: 0, top: 0, right: 0, bottom: 0};\n\t\tpositions.forEach(function(pos) {\n\t\t\tmargin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n\t\t});\n\t\treturn margin;\n\t}\n\n\treturn horizontal\n\t\t? marginForPositions(['left', 'right'])\n\t\t: marginForPositions(['top', 'bottom']);\n}\n\nfunction fitBoxes(boxes, chartArea, params) {\n\tvar refitBoxes = [];\n\tvar i, ilen, layout, box, refit, changed;\n\n\tfor (i = 0, ilen = boxes.length; i < ilen; ++i) {\n\t\tlayout = boxes[i];\n\t\tbox = layout.box;\n\n\t\tbox.update(\n\t\t\tlayout.width || chartArea.w,\n\t\t\tlayout.height || chartArea.h,\n\t\t\tgetMargins(layout.horizontal, chartArea)\n\t\t);\n\t\tif (updateDims(chartArea, params, layout)) {\n\t\t\tchanged = true;\n\t\t\tif (refitBoxes.length) {\n\t\t\t\t// Dimensions changed and there were non full width boxes before this\n\t\t\t\t// -> we have to refit those\n\t\t\t\trefit = true;\n\t\t\t}\n\t\t}\n\t\tif (!box.fullWidth) { // fullWidth boxes don't need to be re-fitted in any case\n\t\t\trefitBoxes.push(layout);\n\t\t}\n\t}\n\n\treturn refit ? fitBoxes(refitBoxes, chartArea, params) || changed : changed;\n}\n\nfunction placeBoxes(boxes, chartArea, params) {\n\tvar userPadding = params.padding;\n\tvar x = chartArea.x;\n\tvar y = chartArea.y;\n\tvar i, ilen, layout, box;\n\n\tfor (i = 0, ilen = boxes.length; i < ilen; ++i) {\n\t\tlayout = boxes[i];\n\t\tbox = layout.box;\n\t\tif (layout.horizontal) {\n\t\t\tbox.left = box.fullWidth ? userPadding.left : chartArea.left;\n\t\t\tbox.right = box.fullWidth ? params.outerWidth - userPadding.right : chartArea.left + chartArea.w;\n\t\t\tbox.top = y;\n\t\t\tbox.bottom = y + box.height;\n\t\t\tbox.width = box.right - box.left;\n\t\t\ty = box.bottom;\n\t\t} else {\n\t\t\tbox.left = x;\n\t\t\tbox.right = x + box.width;\n\t\t\tbox.top = chartArea.top;\n\t\t\tbox.bottom = chartArea.top + chartArea.h;\n\t\t\tbox.height = box.bottom - box.top;\n\t\t\tx = box.right;\n\t\t}\n\t}\n\n\tchartArea.x = x;\n\tchartArea.y = y;\n}\n\ncore_defaults._set('global', {\n\tlayout: {\n\t\tpadding: {\n\t\t\ttop: 0,\n\t\t\tright: 0,\n\t\t\tbottom: 0,\n\t\t\tleft: 0\n\t\t}\n\t}\n});\n\n/**\n * @interface ILayoutItem\n * @prop {string} position - The position of the item in the chart layout. Possible values are\n * 'left', 'top', 'right', 'bottom', and 'chartArea'\n * @prop {number} weight - The weight used to sort the item. Higher weights are further away from the chart area\n * @prop {boolean} fullWidth - if true, and the item is horizontal, then push vertical boxes down\n * @prop {function} isHorizontal - returns true if the layout item is horizontal (ie. top or bottom)\n * @prop {function} update - Takes two parameters: width and height. Returns size of item\n * @prop {function} getPadding - Returns an object with padding on the edges\n * @prop {number} width - Width of item. Must be valid after update()\n * @prop {number} height - Height of item. Must be valid after update()\n * @prop {number} left - Left edge of the item. Set by layout system and cannot be used in update\n * @prop {number} top - Top edge of the item. Set by layout system and cannot be used in update\n * @prop {number} right - Right edge of the item. Set by layout system and cannot be used in update\n * @prop {number} bottom - Bottom edge of the item. Set by layout system and cannot be used in update\n */\n\n// The layout service is very self explanatory. It's responsible for the layout within a chart.\n// Scales, Legends and Plugins all rely on the layout service and can easily register to be placed anywhere they need\n// It is this service's responsibility of carrying out that layout.\nvar core_layouts = {\n\tdefaults: {},\n\n\t/**\n\t * Register a box to a chart.\n\t * A box is simply a reference to an object that requires layout. eg. Scales, Legend, Title.\n\t * @param {Chart} chart - the chart to use\n\t * @param {ILayoutItem} item - the item to add to be layed out\n\t */\n\taddBox: function(chart, item) {\n\t\tif (!chart.boxes) {\n\t\t\tchart.boxes = [];\n\t\t}\n\n\t\t// initialize item with default values\n\t\titem.fullWidth = item.fullWidth || false;\n\t\titem.position = item.position || 'top';\n\t\titem.weight = item.weight || 0;\n\t\titem._layers = item._layers || function() {\n\t\t\treturn [{\n\t\t\t\tz: 0,\n\t\t\t\tdraw: function() {\n\t\t\t\t\titem.draw.apply(item, arguments);\n\t\t\t\t}\n\t\t\t}];\n\t\t};\n\n\t\tchart.boxes.push(item);\n\t},\n\n\t/**\n\t * Remove a layoutItem from a chart\n\t * @param {Chart} chart - the chart to remove the box from\n\t * @param {ILayoutItem} layoutItem - the item to remove from the layout\n\t */\n\tremoveBox: function(chart, layoutItem) {\n\t\tvar index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n\t\tif (index !== -1) {\n\t\t\tchart.boxes.splice(index, 1);\n\t\t}\n\t},\n\n\t/**\n\t * Sets (or updates) options on the given `item`.\n\t * @param {Chart} chart - the chart in which the item lives (or will be added to)\n\t * @param {ILayoutItem} item - the item to configure with the given options\n\t * @param {object} options - the new item options.\n\t */\n\tconfigure: function(chart, item, options) {\n\t\tvar props = ['fullWidth', 'position', 'weight'];\n\t\tvar ilen = props.length;\n\t\tvar i = 0;\n\t\tvar prop;\n\n\t\tfor (; i < ilen; ++i) {\n\t\t\tprop = props[i];\n\t\t\tif (options.hasOwnProperty(prop)) {\n\t\t\t\titem[prop] = options[prop];\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Fits boxes of the given chart into the given size by having each box measure itself\n\t * then running a fitting algorithm\n\t * @param {Chart} chart - the chart\n\t * @param {number} width - the width to fit into\n\t * @param {number} height - the height to fit into\n\t */\n\tupdate: function(chart, width, height) {\n\t\tif (!chart) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar layoutOptions = chart.options.layout || {};\n\t\tvar padding = helpers$1.options.toPadding(layoutOptions.padding);\n\n\t\tvar availableWidth = width - padding.width;\n\t\tvar availableHeight = height - padding.height;\n\t\tvar boxes = buildLayoutBoxes(chart.boxes);\n\t\tvar verticalBoxes = boxes.vertical;\n\t\tvar horizontalBoxes = boxes.horizontal;\n\n\t\t// Essentially we now have any number of boxes on each of the 4 sides.\n\t\t// Our canvas looks like the following.\n\t\t// The areas L1 and L2 are the left axes. R1 is the right axis, T1 is the top axis and\n\t\t// B1 is the bottom axis\n\t\t// There are also 4 quadrant-like locations (left to right instead of clockwise) reserved for chart overlays\n\t\t// These locations are single-box locations only, when trying to register a chartArea location that is already taken,\n\t\t// an error will be thrown.\n\t\t//\n\t\t// |----------------------------------------------------|\n\t\t// | T1 (Full Width) |\n\t\t// |----------------------------------------------------|\n\t\t// | | | T2 | |\n\t\t// | |----|-------------------------------------|----|\n\t\t// | | | C1 | | C2 | |\n\t\t// | | |----| |----| |\n\t\t// | | | | |\n\t\t// | L1 | L2 | ChartArea (C0) | R1 |\n\t\t// | | | | |\n\t\t// | | |----| |----| |\n\t\t// | | | C3 | | C4 | |\n\t\t// | |----|-------------------------------------|----|\n\t\t// | | | B1 | |\n\t\t// |----------------------------------------------------|\n\t\t// | B2 (Full Width) |\n\t\t// |----------------------------------------------------|\n\t\t//\n\n\t\tvar params = Object.freeze({\n\t\t\touterWidth: width,\n\t\t\touterHeight: height,\n\t\t\tpadding: padding,\n\t\t\tavailableWidth: availableWidth,\n\t\t\tvBoxMaxWidth: availableWidth / 2 / verticalBoxes.length,\n\t\t\thBoxMaxHeight: availableHeight / 2\n\t\t});\n\t\tvar chartArea = extend({\n\t\t\tmaxPadding: extend({}, padding),\n\t\t\tw: availableWidth,\n\t\t\th: availableHeight,\n\t\t\tx: padding.left,\n\t\t\ty: padding.top\n\t\t}, padding);\n\n\t\tsetLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n\n\t\t// First fit vertical boxes\n\t\tfitBoxes(verticalBoxes, chartArea, params);\n\n\t\t// Then fit horizontal boxes\n\t\tif (fitBoxes(horizontalBoxes, chartArea, params)) {\n\t\t\t// if the area changed, re-fit vertical boxes\n\t\t\tfitBoxes(verticalBoxes, chartArea, params);\n\t\t}\n\n\t\thandleMaxPadding(chartArea);\n\n\t\t// Finally place the boxes to correct coordinates\n\t\tplaceBoxes(boxes.leftAndTop, chartArea, params);\n\n\t\t// Move to opposite side of chart\n\t\tchartArea.x += chartArea.w;\n\t\tchartArea.y += chartArea.h;\n\n\t\tplaceBoxes(boxes.rightAndBottom, chartArea, params);\n\n\t\tchart.chartArea = {\n\t\t\tleft: chartArea.left,\n\t\t\ttop: chartArea.top,\n\t\t\tright: chartArea.left + chartArea.w,\n\t\t\tbottom: chartArea.top + chartArea.h\n\t\t};\n\n\t\t// Finally update boxes in chartArea (radial scale for example)\n\t\thelpers$1.each(boxes.chartArea, function(layout) {\n\t\t\tvar box = layout.box;\n\t\t\textend(box, chart.chartArea);\n\t\t\tbox.update(chartArea.w, chartArea.h);\n\t\t});\n\t}\n};\n\n/**\n * Platform fallback implementation (minimal).\n * @see https://github.com/chartjs/Chart.js/pull/4591#issuecomment-319575939\n */\n\nvar platform_basic = {\n\tacquireContext: function(item) {\n\t\tif (item && item.canvas) {\n\t\t\t// Support for any object associated to a canvas (including a context2d)\n\t\t\titem = item.canvas;\n\t\t}\n\n\t\treturn item && item.getContext('2d') || null;\n\t}\n};\n\nvar platform_dom = \"/*\\r\\n * DOM element rendering detection\\r\\n * https://davidwalsh.name/detect-node-insertion\\r\\n */\\r\\n@keyframes chartjs-render-animation {\\r\\n\\tfrom { opacity: 0.99; }\\r\\n\\tto { opacity: 1; }\\r\\n}\\r\\n\\r\\n.chartjs-render-monitor {\\r\\n\\tanimation: chartjs-render-animation 0.001s;\\r\\n}\\r\\n\\r\\n/*\\r\\n * DOM element resizing detection\\r\\n * https://github.com/marcj/css-element-queries\\r\\n */\\r\\n.chartjs-size-monitor,\\r\\n.chartjs-size-monitor-expand,\\r\\n.chartjs-size-monitor-shrink {\\r\\n\\tposition: absolute;\\r\\n\\tdirection: ltr;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n\\tright: 0;\\r\\n\\tbottom: 0;\\r\\n\\toverflow: hidden;\\r\\n\\tpointer-events: none;\\r\\n\\tvisibility: hidden;\\r\\n\\tz-index: -1;\\r\\n}\\r\\n\\r\\n.chartjs-size-monitor-expand > div {\\r\\n\\tposition: absolute;\\r\\n\\twidth: 1000000px;\\r\\n\\theight: 1000000px;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n}\\r\\n\\r\\n.chartjs-size-monitor-shrink > div {\\r\\n\\tposition: absolute;\\r\\n\\twidth: 200%;\\r\\n\\theight: 200%;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n}\\r\\n\";\n\nvar platform_dom$1 = /*#__PURE__*/Object.freeze({\n__proto__: null,\n'default': platform_dom\n});\n\nvar stylesheet = getCjsExportFromNamespace(platform_dom$1);\n\nvar EXPANDO_KEY = '$chartjs';\nvar CSS_PREFIX = 'chartjs-';\nvar CSS_SIZE_MONITOR = CSS_PREFIX + 'size-monitor';\nvar CSS_RENDER_MONITOR = CSS_PREFIX + 'render-monitor';\nvar CSS_RENDER_ANIMATION = CSS_PREFIX + 'render-animation';\nvar ANIMATION_START_EVENTS = ['animationstart', 'webkitAnimationStart'];\n\n/**\n * DOM event types -> Chart.js event types.\n * Note: only events with different types are mapped.\n * @see https://developer.mozilla.org/en-US/docs/Web/Events\n */\nvar EVENT_TYPES = {\n\ttouchstart: 'mousedown',\n\ttouchmove: 'mousemove',\n\ttouchend: 'mouseup',\n\tpointerenter: 'mouseenter',\n\tpointerdown: 'mousedown',\n\tpointermove: 'mousemove',\n\tpointerup: 'mouseup',\n\tpointerleave: 'mouseout',\n\tpointerout: 'mouseout'\n};\n\n/**\n * The \"used\" size is the final value of a dimension property after all calculations have\n * been performed. This method uses the computed style of `element` but returns undefined\n * if the computed style is not expressed in pixels. That can happen in some cases where\n * `element` has a size relative to its parent and this last one is not yet displayed,\n * for example because of `display: none` on a parent node.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\n * @returns {number} Size in pixels or undefined if unknown.\n */\nfunction readUsedSize(element, property) {\n\tvar value = helpers$1.getStyle(element, property);\n\tvar matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n\treturn matches ? Number(matches[1]) : undefined;\n}\n\n/**\n * Initializes the canvas style and render size without modifying the canvas display size,\n * since responsiveness is handled by the controller.resize() method. The config is used\n * to determine the aspect ratio to apply in case no explicit height has been specified.\n */\nfunction initCanvas(canvas, config) {\n\tvar style = canvas.style;\n\n\t// NOTE(SB) canvas.getAttribute('width') !== canvas.width: in the first case it\n\t// returns null or '' if no explicit value has been set to the canvas attribute.\n\tvar renderHeight = canvas.getAttribute('height');\n\tvar renderWidth = canvas.getAttribute('width');\n\n\t// Chart.js modifies some canvas values that we want to restore on destroy\n\tcanvas[EXPANDO_KEY] = {\n\t\tinitial: {\n\t\t\theight: renderHeight,\n\t\t\twidth: renderWidth,\n\t\t\tstyle: {\n\t\t\t\tdisplay: style.display,\n\t\t\t\theight: style.height,\n\t\t\t\twidth: style.width\n\t\t\t}\n\t\t}\n\t};\n\n\t// Force canvas to display as block to avoid extra space caused by inline\n\t// elements, which would interfere with the responsive resize process.\n\t// https://github.com/chartjs/Chart.js/issues/2538\n\tstyle.display = style.display || 'block';\n\n\tif (renderWidth === null || renderWidth === '') {\n\t\tvar displayWidth = readUsedSize(canvas, 'width');\n\t\tif (displayWidth !== undefined) {\n\t\t\tcanvas.width = displayWidth;\n\t\t}\n\t}\n\n\tif (renderHeight === null || renderHeight === '') {\n\t\tif (canvas.style.height === '') {\n\t\t\t// If no explicit render height and style height, let's apply the aspect ratio,\n\t\t\t// which one can be specified by the user but also by charts as default option\n\t\t\t// (i.e. options.aspectRatio). If not specified, use canvas aspect ratio of 2.\n\t\t\tcanvas.height = canvas.width / (config.options.aspectRatio || 2);\n\t\t} else {\n\t\t\tvar displayHeight = readUsedSize(canvas, 'height');\n\t\t\tif (displayWidth !== undefined) {\n\t\t\t\tcanvas.height = displayHeight;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn canvas;\n}\n\n/**\n * Detects support for options object argument in addEventListener.\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n * @private\n */\nvar supportsEventListenerOptions = (function() {\n\tvar supports = false;\n\ttry {\n\t\tvar options = Object.defineProperty({}, 'passive', {\n\t\t\t// eslint-disable-next-line getter-return\n\t\t\tget: function() {\n\t\t\t\tsupports = true;\n\t\t\t}\n\t\t});\n\t\twindow.addEventListener('e', null, options);\n\t} catch (e) {\n\t\t// continue regardless of error\n\t}\n\treturn supports;\n}());\n\n// Default passive to true as expected by Chrome for 'touchstart' and 'touchend' events.\n// https://github.com/chartjs/Chart.js/issues/4287\nvar eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\n\nfunction addListener(node, type, listener) {\n\tnode.addEventListener(type, listener, eventListenerOptions);\n}\n\nfunction removeListener(node, type, listener) {\n\tnode.removeEventListener(type, listener, eventListenerOptions);\n}\n\nfunction createEvent(type, chart, x, y, nativeEvent) {\n\treturn {\n\t\ttype: type,\n\t\tchart: chart,\n\t\tnative: nativeEvent || null,\n\t\tx: x !== undefined ? x : null,\n\t\ty: y !== undefined ? y : null,\n\t};\n}\n\nfunction fromNativeEvent(event, chart) {\n\tvar type = EVENT_TYPES[event.type] || event.type;\n\tvar pos = helpers$1.getRelativePosition(event, chart);\n\treturn createEvent(type, chart, pos.x, pos.y, event);\n}\n\nfunction throttled(fn, thisArg) {\n\tvar ticking = false;\n\tvar args = [];\n\n\treturn function() {\n\t\targs = Array.prototype.slice.call(arguments);\n\t\tthisArg = thisArg || this;\n\n\t\tif (!ticking) {\n\t\t\tticking = true;\n\t\t\thelpers$1.requestAnimFrame.call(window, function() {\n\t\t\t\tticking = false;\n\t\t\t\tfn.apply(thisArg, args);\n\t\t\t});\n\t\t}\n\t};\n}\n\nfunction createDiv(cls) {\n\tvar el = document.createElement('div');\n\tel.className = cls || '';\n\treturn el;\n}\n\n// Implementation based on https://github.com/marcj/css-element-queries\nfunction createResizer(handler) {\n\tvar maxSize = 1000000;\n\n\t// NOTE(SB) Don't use innerHTML because it could be considered unsafe.\n\t// https://github.com/chartjs/Chart.js/issues/5902\n\tvar resizer = createDiv(CSS_SIZE_MONITOR);\n\tvar expand = createDiv(CSS_SIZE_MONITOR + '-expand');\n\tvar shrink = createDiv(CSS_SIZE_MONITOR + '-shrink');\n\n\texpand.appendChild(createDiv());\n\tshrink.appendChild(createDiv());\n\n\tresizer.appendChild(expand);\n\tresizer.appendChild(shrink);\n\tresizer._reset = function() {\n\t\texpand.scrollLeft = maxSize;\n\t\texpand.scrollTop = maxSize;\n\t\tshrink.scrollLeft = maxSize;\n\t\tshrink.scrollTop = maxSize;\n\t};\n\n\tvar onScroll = function() {\n\t\tresizer._reset();\n\t\thandler();\n\t};\n\n\taddListener(expand, 'scroll', onScroll.bind(expand, 'expand'));\n\taddListener(shrink, 'scroll', onScroll.bind(shrink, 'shrink'));\n\n\treturn resizer;\n}\n\n// https://davidwalsh.name/detect-node-insertion\nfunction watchForRender(node, handler) {\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\n\tvar proxy = expando.renderProxy = function(e) {\n\t\tif (e.animationName === CSS_RENDER_ANIMATION) {\n\t\t\thandler();\n\t\t}\n\t};\n\n\thelpers$1.each(ANIMATION_START_EVENTS, function(type) {\n\t\taddListener(node, type, proxy);\n\t});\n\n\t// #4737: Chrome might skip the CSS animation when the CSS_RENDER_MONITOR class\n\t// is removed then added back immediately (same animation frame?). Accessing the\n\t// `offsetParent` property will force a reflow and re-evaluate the CSS animation.\n\t// https://gist.github.com/paulirish/5d52fb081b3570c81e3a#box-metrics\n\t// https://github.com/chartjs/Chart.js/issues/4737\n\texpando.reflow = !!node.offsetParent;\n\n\tnode.classList.add(CSS_RENDER_MONITOR);\n}\n\nfunction unwatchForRender(node) {\n\tvar expando = node[EXPANDO_KEY] || {};\n\tvar proxy = expando.renderProxy;\n\n\tif (proxy) {\n\t\thelpers$1.each(ANIMATION_START_EVENTS, function(type) {\n\t\t\tremoveListener(node, type, proxy);\n\t\t});\n\n\t\tdelete expando.renderProxy;\n\t}\n\n\tnode.classList.remove(CSS_RENDER_MONITOR);\n}\n\nfunction addResizeListener(node, listener, chart) {\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\n\n\t// Let's keep track of this added resizer and thus avoid DOM query when removing it.\n\tvar resizer = expando.resizer = createResizer(throttled(function() {\n\t\tif (expando.resizer) {\n\t\t\tvar container = chart.options.maintainAspectRatio && node.parentNode;\n\t\t\tvar w = container ? container.clientWidth : 0;\n\t\t\tlistener(createEvent('resize', chart));\n\t\t\tif (container && container.clientWidth < w && chart.canvas) {\n\t\t\t\t// If the container size shrank during chart resize, let's assume\n\t\t\t\t// scrollbar appeared. So we resize again with the scrollbar visible -\n\t\t\t\t// effectively making chart smaller and the scrollbar hidden again.\n\t\t\t\t// Because we are inside `throttled`, and currently `ticking`, scroll\n\t\t\t\t// events are ignored during this whole 2 resize process.\n\t\t\t\t// If we assumed wrong and something else happened, we are resizing\n\t\t\t\t// twice in a frame (potential performance issue)\n\t\t\t\tlistener(createEvent('resize', chart));\n\t\t\t}\n\t\t}\n\t}));\n\n\t// The resizer needs to be attached to the node parent, so we first need to be\n\t// sure that `node` is attached to the DOM before injecting the resizer element.\n\twatchForRender(node, function() {\n\t\tif (expando.resizer) {\n\t\t\tvar container = node.parentNode;\n\t\t\tif (container && container !== resizer.parentNode) {\n\t\t\t\tcontainer.insertBefore(resizer, container.firstChild);\n\t\t\t}\n\n\t\t\t// The container size might have changed, let's reset the resizer state.\n\t\t\tresizer._reset();\n\t\t}\n\t});\n}\n\nfunction removeResizeListener(node) {\n\tvar expando = node[EXPANDO_KEY] || {};\n\tvar resizer = expando.resizer;\n\n\tdelete expando.resizer;\n\tunwatchForRender(node);\n\n\tif (resizer && resizer.parentNode) {\n\t\tresizer.parentNode.removeChild(resizer);\n\t}\n}\n\n/**\n * Injects CSS styles inline if the styles are not already present.\n * @param {HTMLDocument|ShadowRoot} rootNode - the node to contain the