aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZarino Zappia <mail@zarino.co.uk>2017-12-12 12:10:28 +0000
committerMatthew Somerville <matthew-github@dracos.co.uk>2017-12-15 17:35:53 +0000
commitd89377c85b033f70cb421274884ca04846d671c0 (patch)
treea34271babb40163ef68af8ccc0b96bb4677d0b71
parent9931b8aac55df6baef69cee76f34d76bc08d293c (diff)
Add bar chart functionality, for area summary page
-rw-r--r--web/cobrands/sass/_dashboard.scss43
-rw-r--r--web/js/dashboard.js190
-rw-r--r--web/vendor/chart.min.js90
3 files changed, 179 insertions, 144 deletions
diff --git a/web/cobrands/sass/_dashboard.scss b/web/cobrands/sass/_dashboard.scss
index 648baec01..1d3066e7c 100644
--- a/web/cobrands/sass/_dashboard.scss
+++ b/web/cobrands/sass/_dashboard.scss
@@ -53,15 +53,20 @@
}
.labelled-line-chart,
-.labelled-sparkline {
+.labelled-sparkline,
+.responsive-bar-chart {
position: relative;
width: 100%;
- line-height: 1.2em;
canvas {
width: 100% !important;
height: auto !important;
}
+}
+
+.labelled-line-chart,
+.labelled-sparkline {
+ line-height: 1.2em;
.label {
strong {
@@ -184,37 +189,27 @@
}
}
-.dashboard-ranking-table,
-.dashboard-contacts-table {
+.dashboard-ranking-table {
width: 100%;
- td {
+ td, th {
padding: 0.4em 0.8em;
- }
- tbody tr:nth-child(odd) {
- td {
- background-color: mix($primary, #fff, 15%);
+ &:last-child {
+ text-align: $right;
}
}
- tfoot td {
- font-weight: bold;
+ th {
+ text-align: inherit;
}
-}
-.dashboard-ranking-table {
- td {
- &:last-child {
- text-align: $right;
- }
+ tbody tr:nth-child(odd) > * {
+ background-color: mix($primary, #fff, 15%);
}
-}
-.dashboard-contacts-table {
- th {
- text-align: $left;
- padding: 0.4em 0.8em;
+ tfoot tr > * {
+ font-weight: bold;
}
}
@@ -279,6 +274,10 @@
color: #999;
box-shadow: none;
}
+
+ .btn {
+ padding: 0.5em 0.75em;
+ }
}
.dashboard-options-tabs {
diff --git a/web/js/dashboard.js b/web/js/dashboard.js
index f436b8d18..3bac4f983 100644
--- a/web/js/dashboard.js
+++ b/web/js/dashboard.js
@@ -1,6 +1,26 @@
$(function(){
Chart.defaults.global.defaultFontSize = 16;
+ Chart.defaults.global.defaultFontFamily = $('body').css('font-family');
+
+ var colours = [
+ '#FF4343', // red
+ '#F4A140', // orange
+ '#FFD000', // yellow
+ '#62B356', // green
+ '#4D96E5', // blue
+ '#B446CA', // purple
+ '#7B8B98', // gunmetal
+ '#BCB590', // taupe
+ '#9C0101', // dark red
+ '#CA6D00', // dark orange
+ '#C2A526', // dark yellow
+ '#1D7710', // dark green
+ '#1D64B1', // dark blue
+ '#7A108F', // dark purple
+ '#3B576E', // dark gunmetal
+ '#655F3A' // dark taupe
+ ];
var setUpLabelsForChart = function(chart){
var $parent = $(chart.chart.canvas).parent();
@@ -89,54 +109,138 @@ $(function(){
);
});
- var $allReports = $('#chart-all-reports'),
- labels = $allReports.data('labels'),
- data0 = $allReports.data('values-reports'),
- data1 = $allReports.data('values-fixed');
- window.chartAllReports = new Chart($allReports, {
- type: 'line',
- data: {
- labels: labels,
- datasets: [{
- data: data0,
- pointRadius: pointRadiusFinalDot(data0.length, 4),
- pointBackgroundColor: '#F4A140',
- borderColor: '#F4A140'
- }, {
- data: data1,
- pointRadius: pointRadiusFinalDot(data1.length, 4),
- pointBackgroundColor: '#62B356',
- borderColor: '#62B356'
- }]
- },
- options: {
- animation: {
- onComplete: function(){
- setUpLabelsForChart(this);
- }
- },
- layout: {
- padding: {
- top: 4
- }
+ $('#chart-all-reports').each(function(){
+ var $allReports = $(this),
+ labels = $allReports.data('labels'),
+ data0 = $allReports.data('values-reports'),
+ data1 = $allReports.data('values-fixed');
+
+ window.chartAllReports = new Chart($allReports, {
+ type: 'line',
+ data: {
+ labels: labels,
+ datasets: [{
+ data: data0,
+ pointRadius: pointRadiusFinalDot(data0.length, 4),
+ pointBackgroundColor: colours[1],
+ borderColor: colours[1]
+ }, {
+ data: data1,
+ pointRadius: pointRadiusFinalDot(data1.length, 4),
+ pointBackgroundColor: colours[3],
+ borderColor: colours[3]
+ }]
},
- scales: {
- xAxes: [{
- type: 'category',
- gridLines: {
- display: false
+ options: {
+ animation: {
+ onComplete: function(){
+ setUpLabelsForChart(this);
}
- }],
- yAxes: [{
- type: "linear",
- ticks: {
- display: false
+ },
+ layout: {
+ padding: {
+ top: 4
}
+ },
+ scales: {
+ xAxes: [{
+ type: 'category',
+ gridLines: {
+ display: false
+ }
+ }],
+ yAxes: [{
+ type: "linear",
+ ticks: {
+ display: false
+ }
+ }]
+ },
+ onResize: function(chart, size){
+ setUpLabelsForChart(chart);
+ }
+ }
+ });
+ });
+
+ $('.js-make-bar-chart').each(function(){
+ var $table = $(this);
+ var $trs = $table.find('tr');
+ var $wrapper = $('<div>').addClass('responsive-bar-chart').insertBefore($table);
+ var $canvas = $('<canvas>').attr({
+ 'width': 600,
+ 'height': 30 * $trs.length
+ }).appendTo($wrapper);
+ var rowLabels = [];
+ var rowValues = [];
+
+ $trs.each(function(){
+ rowLabels.push( $(this).find('th').text() );
+ rowValues.push( parseInt($(this).find('td').text(), 10) );
+ });
+
+ var barChart = new Chart($canvas, {
+ type: 'horizontalBar',
+ data: {
+ labels: rowLabels,
+ datasets: [{
+ label: "",
+ data: rowValues,
+ backgroundColor: colours
}]
},
- onResize: function(chart, size){
- setUpLabelsForChart(chart);
+ options: {
+ animation: {
+ onComplete: function(){
+ // Label each bar with the numerical value.
+ var chartInstance = this.chart,
+ ctx = chartInstance.ctx;
+
+ ctx.font = Chart.helpers.fontString( Chart.defaults.global.defaultFontSize * 0.8, 'bold', Chart.defaults.global.defaultFontFamily);
+ ctx.textAlign = 'right';
+ ctx.textBaseline = 'middle';
+
+ this.data.datasets.forEach(function (dataset, i) {
+ var meta = chartInstance.controller.getDatasetMeta(i);
+ meta.data.forEach(function (bar, index) {
+ var dataValue = dataset.data[index];
+ var width_text = ctx.measureText(dataValue).width;
+ var width_bar = bar._model.x - bar._model.base;
+ var gutter = (bar._model.height - (Chart.defaults.global.defaultFontSize * 0.8)) / 2;
+ var textX;
+ if (width_text + 2 * gutter > width_bar) {
+ textX = bar._model.x + 2 * gutter;
+ ctx.fillStyle = bar._model.backgroundColor;
+ } else {
+ textX = bar._model.x - gutter;
+ ctx.fillStyle = '#fff';
+ }
+ ctx.fillText( dataValue, textX, bar._model.y );
+ });
+ });
+ }
+ },
+ scales: {
+ xAxes: [{
+ gridLines: {
+ drawBorder: false,
+ drawTicks: false
+ },
+ ticks: {
+ beginAtZero: true,
+ maxTicksLimit: 11,
+ display: false
+ }
+ }],
+ yAxes: [{
+ gridLines: {
+ display: false
+ }
+ }]
+ }
}
- }
+ });
+
+ $table.hide();
});
});
diff --git a/web/vendor/chart.min.js b/web/vendor/chart.min.js
index 899fbaf48..a92f536e6 100644
--- a/web/vendor/chart.min.js
+++ b/web/vendor/chart.min.js
@@ -1,79 +1,11 @@
-Chart=function(){return function p(m,n,g){function l(a,c){if(!n[a]){if(!m[a]){var e="function"==typeof require&&require;if(!c&&e)return e(a,!0);if(f)return f(a,!0);e=Error("Cannot find module '"+a+"'");throw e.code="MODULE_NOT_FOUND",e;}e=n[a]={exports:{}};m[a][0].call(e.exports,function(e){var c=m[a][1][e];return l(c?c:e)},e,e.exports,p,m,n,g)}return n[a].exports}for(var f="function"==typeof require&&require,b=0;b<g.length;b++)l(g[b]);return l}({7:[function(p,m,n){n=p(28)();p(26)(n);p(40)(n);p(22)(n);
-p(25)(n);p(23)(n);p(24)(n);p(29)(n);p(32)(n);p(33)(n);p(31)(n);p(36)(n);p(37)(n);p(46)(n);p(44)(n);p(45)(n);p(18)(n);m.exports=n;window.Chart=n},{18:18,22:22,23:23,24:24,25:25,26:26,28:28,29:29,31:31,32:32,33:33,36:36,37:37,40:40,44:44,45:45,46:46}],18:[function(p,m,n){m.exports=function(g){var l=g.helpers;g.defaults.line={showLines:!0,spanGaps:!1,scales:{xAxes:[{type:"category",id:"x-axis-0"}],yAxes:[{type:"linear",id:"y-axis-0"}]}};g.controllers.line=g.DatasetController.extend({datasetElementType:g.elements.Line,
-dataElementType:g.elements.Point,update:function(f){var b=this.getMeta(),a=b.dataset,c=b.data||[],e=this.chart.options,d=e.elements.line,k=this.getScaleForId(b.yAxisID),h=this.getDataset();if(b=l.getValueOrDefault(h.showLine,e.showLines))a._scale=k,a._datasetIndex=this.index,a._children=c,a._model={spanGaps:h.spanGaps?h.spanGaps:e.spanGaps,tension:l.getValueOrDefault(h.lineTension,d.tension),backgroundColor:h.backgroundColor||d.backgroundColor,borderWidth:h.borderWidth||d.borderWidth,borderColor:h.borderColor||
-d.borderColor,borderCapStyle:h.borderCapStyle||d.borderCapStyle,borderDash:h.borderDash||d.borderDash,borderDashOffset:h.borderDashOffset||d.borderDashOffset,borderJoinStyle:h.borderJoinStyle||d.borderJoinStyle,steppedLine:l.getValueOrDefault(h.steppedLine,d.stepped)},a.pivot();e=0;for(d=c.length;e<d;++e)this.updateElement(c[e],e,f);b&&0!==a._model.tension&&this.updateBezierControlPoints();e=0;for(d=c.length;e<d;++e)c[e].pivot()},updateElement:function(f,b,a){var c=this.getMeta(),e=this.getDataset(),
-d=this.index,k=e.data[b],h=this.getScaleForId(c.yAxisID),V=this.getScaleForId(c.xAxisID),g=this.chart.options.elements.point,q;q=V.getPixelForValue("object"===typeof k?k:NaN,b,d,1===(this.chart.data.labels||[]).length||1===e.data.length||this.chart.isCombo);a=a?h.getBasePixel():this.calculatePointY(k,b,d);f._xScale=V;f._yScale=h;f._datasetIndex=d;f._index=b;f._model={x:q,y:a,skip:isNaN(q)||isNaN(a),radius:l.getValueAtIndexOrDefault(e.pointRadius,b,g.radius),pointStyle:l.getValueAtIndexOrDefault(e.pointStyle,
-b,g.pointStyle),backgroundColor:e.pointBackgroundColor,borderColor:e.borderColor,borderWidth:e.pointBorderWidth,tension:c.dataset._model?c.dataset._model.tension:0,steppedLine:c.dataset._model?c.dataset._model.steppedLine:!1}},calculatePointY:function(f,b,a){b=this.getMeta();return this.getScaleForId(b.yAxisID).getPixelForValue(f)},updateBezierControlPoints:function(){var f=this.getMeta(),b=this.chart.chartArea,a=f.data||[],c,e,d,k;f.dataset._model.spanGaps&&(a=a.filter(function(a){return!a._model.skip}));
-c=0;for(e=a.length;c<e;++c)d=a[c],d=d._model,k=l.splineCurve(l.previousItem(a,c)._model,d,l.nextItem(a,c)._model,f.dataset._model.tension),d.controlPointPreviousX=k.previous.x,d.controlPointPreviousY=k.previous.y,d.controlPointNextX=k.next.x,d.controlPointNextY=k.next.y;if(this.chart.options.elements.line.capBezierPoints)for(c=0,e=a.length;c<e;++c)d=a[c]._model,d.controlPointPreviousX=Math.max(Math.min(d.controlPointPreviousX,b.right),b.left),d.controlPointPreviousY=Math.max(Math.min(d.controlPointPreviousY,
-b.bottom),b.top),d.controlPointNextX=Math.max(Math.min(d.controlPointNextX,b.right),b.left),d.controlPointNextY=Math.max(Math.min(d.controlPointNextY,b.bottom),b.top)},draw:function(){var f=this.chart,b=this.getMeta(),a=b.data||[],c=f.chartArea,e=a.length,d=0;g.canvasHelpers.clipArea(f.ctx,c);var k=this.getDataset();l.getValueOrDefault(k.showLine,f.options.showLines)&&b.dataset.draw();for(g.canvasHelpers.unclipArea(f.ctx);d<e;++d)a[d].draw(c)}})}},{}],22:[function(p,m,n){m.exports=function(g){var l=
-g.canvasHelpers={};l.drawPoint=function(f,b,a,c,e){isNaN(a)||0>=a||(f.beginPath(),f.arc(c,e,a,0,2*Math.PI),f.closePath(),f.fill(),f.stroke())};l.clipArea=function(f,b){f.save();f.beginPath();f.rect(b.left,b.top,b.right-b.left,b.bottom-b.top);f.clip()};l.unclipArea=function(f){f.restore()};l.lineTo=function(f,b,a,c){a.steppedLine?("after"===a.steppedLine?f.lineTo(b.x,a.y):f.lineTo(a.x,b.y),f.lineTo(a.x,a.y)):a.tension?f.bezierCurveTo(c?b.controlPointPreviousX:b.controlPointNextX,c?b.controlPointPreviousY:
-b.controlPointNextY,c?a.controlPointNextX:a.controlPointPreviousX,c?a.controlPointNextY:a.controlPointPreviousY,a.x,a.y):f.lineTo(a.x,a.y)};g.helpers.canvas=l}},{}],23:[function(p,m,n){m.exports=function(g){function l(e){e=e||{};var c=e.data=e.data||{};c.datasets=c.datasets||[];c.labels=c.labels||[];e.options=a.configMerge(g.defaults.global,g.defaults[e.type],e.options||{});return e}function f(a){var c=a.options;c.scale?a.scale.options=c.scale:c.scales&&c.scales.xAxes.concat(c.scales.yAxes).forEach(function(c){a.scales[c.id].options=
-c})}function b(a){return"top"===a||"bottom"===a}var a=g.helpers,c=g.platform;g.types={};g.instances={};g.controllers={};a.extend(g.prototype,{construct:function(e,d){var b=this;d=l(d);var h=c.acquireContext(e,d),f=h&&h.canvas,N=f&&f.height,q=f&&f.width;b.id=a.uid();b.ctx=h;b.canvas=f;b.config=d;b.width=q;b.height=N;b.aspectRatio=N?q/N:null;b.options=d.options;b._bufferedRender=!1;b.chart=b;b.controller=b;g.instances[b.id]=b;Object.defineProperty(b,"data",{get:function(){return b.config.data},set:function(a){b.config.data=
-a}});h&&f?(b.initialize(),b.update()):console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){a.retinaScale(this);this.bindEvents();this.resize(!0);this.ensureScalesHaveIDs();this.buildScales();return this},clear:function(){a.clear(this);return this},resize:function(c){var b=this.canvas,k=this.options.maintainAspectRatio&&this.aspectRatio||null,h=Math.floor(a.getMaximumWidth(b)),k=Math.floor(k?h/k:a.getMaximumHeight(b));if(this.width!==h||this.height!==
-k)if(b.width=this.width=h,b.height=this.height=k,b.style.width=h+"px",b.style.height=k+"px",a.retinaScale(this),!c){c={width:h,height:k};if(this.options.onResize)this.options.onResize(this,c);this.update(0)}},ensureScalesHaveIDs:function(){var c=this.options,b=c.scales||{},c=c.scale;a.each(b.xAxes,function(a,c){a.id=a.id||"x-axis-"+c});a.each(b.yAxes,function(a,c){a.id=a.id||"y-axis-"+c});c&&(c.id=c.id||"scale")},buildScales:function(){var c=this,d=c.options,k=c.scales={},h=[];d.scales&&(h=h.concat((d.scales.xAxes||
-[]).map(function(a){return{options:a,dtype:"category",dposition:"bottom"}}),(d.scales.yAxes||[]).map(function(a){return{options:a,dtype:"linear",dposition:"left"}})));d.scale&&h.push({options:d.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"});a.each(h,function(d){var h=d.options,f=a.getValueOrDefault(h.type,d.dtype);if(f=g.scaleService.getScaleConstructor(f))b(h.position)!==b(d.dposition)&&(h.position=d.dposition),h=new f({id:h.id,options:h,ctx:c.ctx,chart:c}),k[h.id]=h,d.isDefault&&
-(c.scale=h)});g.scaleService.addScalesToLayout(this)},buildOrUpdateControllers:function(){var c=this,b=[],k=[];a.each(c.data.datasets,function(a,h){var f=c.getDatasetMeta(h);f.type||(f.type=a.type||c.config.type);b.push(f.type);if(f.controller)f.controller.updateIndex(h);else{var l=g.controllers[f.type];if(void 0===l)throw Error('"'+f.type+'" is not a chart type.');f.controller=new l(c,h);k.push(f.controller)}},c);if(1<b.length)for(var h=1;h<b.length;h++)if(b[h]!==b[h-1]){c.isCombo=!0;break}return k},
-update:function(c,b){var k=this;f(k);var h=k.buildOrUpdateControllers();a.each(k.data.datasets,function(a,c){k.getDatasetMeta(c).controller.buildOrUpdateElements()},k);k.updateLayout();a.each(h,function(a){a.reset()});k.updateDatasets();k._bufferedRender?k._bufferedRequest={lazy:b,duration:c}:k.render(c,b)},updateLayout:function(){g.layoutService.update(this,this.width,this.height)},updateDatasets:function(){for(var a=0,c=this.data.datasets.length;a<c;++a)this.updateDataset(a)},updateDataset:function(a){this.getDatasetMeta(a).controller.update()},
-render:function(c,b){var k=this.options.animation;this.draw();a.callback(k&&k.onComplete,[void 0],this);return this},draw:function(){var c=this;c.clear();c.transition();a.each(c.boxes,function(a){a.draw(c.chartArea)},c);c.scale&&c.scale.draw();c.drawDatasets()},transition:function(){for(var a=0,c=(this.data.datasets||[]).length;a<c;++a)this.isDatasetVisible(a)&&this.getDatasetMeta(a).controller.transition()},drawDatasets:function(){for(var a=(this.data.datasets||[]).length-1;0<=a;--a)this.isDatasetVisible(a)&&
-this.drawDataset(a)},drawDataset:function(a){this.getDatasetMeta(a).controller.draw()},getDatasetMeta:function(a){a=this.data.datasets[a];a._meta||(a._meta={});var c=a._meta[this.id];c||(c=a._meta[this.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null});return c},getVisibleDatasetCount:function(){for(var a=0,c=0,b=this.data.datasets.length;c<b;++c)this.isDatasetVisible(c)&&a++;return a},isDatasetVisible:function(a){var c=this.getDatasetMeta(a);return"boolean"===
-typeof c.hidden?!c.hidden:!this.data.datasets[a].hidden},bindEvents:function(){var a=this,b=a._listeners={},k=function(){a.resize()};c.addEventListener(a,"resize",k);b.resize=k}});g.Controller=g}},{}],24:[function(p,m,n){m.exports=function(g){function l(c,e){c._chartjs?c._chartjs.listeners.push(e):(Object.defineProperty(c,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[e]}}),a.forEach(function(a){var e="onData"+a.charAt(0).toUpperCase()+a.slice(1),h=c[a];Object.defineProperty(c,a,{configurable:!0,
-enumerable:!1,value:function(){var a=Array.prototype.slice.call(arguments),d=h.apply(this,a);b.each(c._chartjs.listeners,function(c){"function"===typeof c[e]&&c[e].apply(c,a)});return d}})}))}function f(c,b){var d=c._chartjs;if(d){var d=d.listeners,k=d.indexOf(b);-1!==k&&d.splice(k,1);0<d.length||(a.forEach(function(a){delete c[a]}),delete c._chartjs)}}var b=g.helpers,a=["push","pop","shift","splice","unshift"];g.DatasetController=function(a,b){this.initialize(a,b)};b.extend(g.DatasetController.prototype,
-{datasetElementType:null,dataElementType:null,initialize:function(a,b){this.chart=a;this.index=b;this.linkScales();this.addElements()},updateIndex:function(a){this.index=a},linkScales:function(){var a=this.getMeta(),b=this.getDataset();null===a.xAxisID&&(a.xAxisID=b.xAxisID||this.chart.options.scales.xAxes[0].id);null===a.yAxisID&&(a.yAxisID=b.yAxisID||this.chart.options.scales.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},
-getScaleForId:function(a){return this.chart.scales[a]},reset:function(){this.update(!0)},createMetaDataset:function(){var a=this.datasetElementType;return a&&new a({_chart:this.chart,_datasetIndex:this.index})},createMetaData:function(a){var b=this.dataElementType;return b&&new b({_chart:this.chart,_datasetIndex:this.index,_index:a})},addElements:function(){var a=this.getMeta(),b=this.getDataset().data||[],d=a.data,k;k=0;for(b=b.length;k<b;++k)d[k]=d[k]||this.createMetaData(k);a.dataset=a.dataset||
-this.createMetaDataset()},addElementAndReset:function(a){var b=this.createMetaData(a);this.getMeta().data.splice(a,0,b);this.updateElement(b,a,!0)},buildOrUpdateElements:function(){var a=this.getDataset(),a=a.data||(a.data=[]);this._data!==a&&(this._data&&f(this._data,this),l(a,this),this._data=a);this.resyncElements()},update:b.noop,transition:function(){for(var a=this.getMeta(),b=a.data||[],d=b.length,k=0;k<d;++k)b[k].transition();a.dataset&&a.dataset.transition()},draw:function(){var a=this.getMeta(),
-b=a.data||[],d=b.length,k=0;for(a.dataset&&a.dataset.draw();k<d;++k)b[k].draw()},resyncElements:function(){var a=this.getMeta(),b=this.getDataset().data,d=a.data.length,b=b.length;b<d?a.data.splice(b,d-b):b>d&&this.insertElements(d,b-d)},insertElements:function(a,b){for(var d=0;d<b;++d)this.addElementAndReset(a+d)},onDataPush:function(){this.insertElements(this.getDataset().data.length-1,arguments.length)},onDataPop:function(){this.getMeta().data.pop()},onDataShift:function(){this.getMeta().data.shift()},
-onDataSplice:function(a,b){this.getMeta().data.splice(a,b);this.insertElements(a,arguments.length-2)},onDataUnshift:function(){this.insertElements(0,arguments.length)}});g.DatasetController.extend=b.inherits}},{}],25:[function(p,m,n){m.exports=function(g){var l=g.helpers;g.elements={};g.Element=function(f){l.extend(this,f);this.initialize.apply(this,arguments)};l.extend(g.Element.prototype,{initialize:function(){this.hidden=!1},pivot:function(){this._view||(this._view=l.clone(this._model));this._start=
-{};return this},transition:function(){this._view=this._model;this._start=null;return this},hasValue:function(){return l.isNumber(this._model.x)&&l.isNumber(this._model.y)}});g.Element.extend=l.inherits}},{}],26:[function(p,m,n){m.exports=function(g){function l(a,c,b){var d;"string"===typeof a?(d=parseInt(a,10),-1!==a.indexOf("%")&&(d=d/100*c.parentNode[b])):d=a;return d}function f(a,c,b){var d=document.defaultView,k=a.parentNode,h=d.getComputedStyle(a)[c];c=d.getComputedStyle(k)[c];var d=void 0!==
-h&&null!==h&&"none"!==h,f=void 0!==c&&null!==c&&"none"!==c,g=Number.POSITIVE_INFINITY;return d||f?Math.min(d?l(h,a,b):g,f?l(c,k,b):g):"none"}var b=g.helpers={};b.each=function(a,c,e,d){var k;if(b.isArray(a))if(k=a.length,d)for(d=k-1;0<=d;d--)c.call(e,a[d],d);else for(d=0;d<k;d++)c.call(e,a[d],d);else if("object"===typeof a){var h=Object.keys(a);k=h.length;for(d=0;d<k;d++)c.call(e,a[h[d]],h[d])}};b.clone=function(a){var c={};b.each(a,function(a,d){b.isArray(a)?c[d]=a.slice(0):c[d]="object"===typeof a&&
-null!==a?b.clone(a):a});return c};b.extend=function(a){for(var c=function(c,b){a[b]=c},e=1,d=arguments.length;e<d;e++)b.each(arguments[e],c);return a};b.configMerge=function(a){var c=b.clone(a);b.each(Array.prototype.slice.call(arguments,1),function(a){b.each(a,function(a,e){var h=c.hasOwnProperty(e),f=h?c[e]:{};"scales"===e?c[e]=b.scaleMerge(f,a):"scale"===e?c[e]=b.configMerge(f,g.scaleService.getScaleDefaults(a.type),a):!h||"object"!==typeof f||b.isArray(f)||null===f||"object"!==typeof a||b.isArray(a)?
-c[e]=a:c[e]=b.configMerge(f,a)})});return c};b.scaleMerge=function(a,c){var e=b.clone(a);b.each(c,function(a,c){"xAxes"===c||"yAxes"===c?e.hasOwnProperty(c)?b.each(a,function(a,d){var f=b.getValueOrDefault(a.type,"xAxes"===c?"category":"linear"),f=g.scaleService.getScaleDefaults(f);d>=e[c].length||!e[c][d].type?e[c].push(b.configMerge(f,a)):e[c][d]=a.type&&a.type!==e[c][d].type?b.configMerge(e[c][d],f,a):b.configMerge(e[c][d],a)}):(e[c]=[],b.each(a,function(a){var d=b.getValueOrDefault(a.type,"xAxes"===
-c?"category":"linear");e[c].push(b.configMerge(g.scaleService.getScaleDefaults(d),a))})):e.hasOwnProperty(c)&&"object"===typeof e[c]&&null!==e[c]&&"object"===typeof a?e[c]=b.configMerge(e[c],a):e[c]=a});return e};b.getValueAtIndexOrDefault=function(a,c,e){return void 0===a||null===a?e:b.isArray(a)?c<a.length?a[c]:e:a};b.getValueOrDefault=function(a,c){return void 0===a?c:a};b.indexOf=Array.prototype.indexOf?function(a,c){return a.indexOf(c)}:function(a,c){for(var b=0,d=a.length;b<d;++b)if(a[b]===
-c)return b;return-1};b.where=function(a,c){if(b.isArray(a)&&Array.prototype.filter)return a.filter(c);var e=[];b.each(a,function(a){c(a)&&e.push(a)});return e};b.findIndex=Array.prototype.findIndex?function(a,c,b){return a.findIndex(c,b)}:function(a,c,b){b=void 0===b?a:b;for(var d=0,k=a.length;d<k;++d)if(c.call(b,a[d],d,a))return d;return-1};b.findNextWhere=function(a,c,b){if(void 0===b||null===b)b=-1;for(b+=1;b<a.length;b++){var d=a[b];if(c(d))return d}};b.findPreviousWhere=function(a,c,b){if(void 0===
-b||null===b)b=a.length;for(--b;0<=b;b--){var d=a[b];if(c(d))return d}};b.inherits=function(a){var c=this,e=a&&a.hasOwnProperty("constructor")?a.constructor:function(){return c.apply(this,arguments)},d=function(){this.constructor=e};d.prototype=c.prototype;e.prototype=new d;e.extend=b.inherits;a&&b.extend(e.prototype,a);e.__super__=c.prototype;return e};b.noop=function(){};b.uid=function(){var a=0;return function(){return a++}}();b.isNumber=function(a){return!isNaN(parseFloat(a))&&isFinite(a)};b.almostEquals=
-function(a,c,b){return Math.abs(a-c)<b};b.almostWhole=function(a,c){var b=Math.round(a);return b-c<a&&b+c>a};b.max=function(a){return a.reduce(function(a,b){return isNaN(b)?a:Math.max(a,b)},Number.NEGATIVE_INFINITY)};b.min=function(a){return a.reduce(function(a,b){return isNaN(b)?a:Math.min(a,b)},Number.POSITIVE_INFINITY)};b.sign=Math.sign?function(a){return Math.sign(a)}:function(a){a=+a;return 0===a||isNaN(a)?a:0<a?1:-1};b.log10=Math.log10?function(a){return Math.log10(a)}:function(a){return Math.log(a)/
-Math.LN10};b.toRadians=function(a){return Math.PI/180*a};b.aliasPixel=function(a){return 0===a%2?0:.5};b.splineCurve=function(a,c,b,d){a=a.skip?c:a;b=b.skip?c:b;var k=Math.sqrt(Math.pow(c.x-a.x,2)+Math.pow(c.y-a.y,2)),f=Math.sqrt(Math.pow(b.x-c.x,2)+Math.pow(b.y-c.y,2)),g=k/(k+f),k=f/(k+f),g=isNaN(g)?0:g,k=isNaN(k)?0:k,g=d*g;d*=k;return{previous:{x:c.x-g*(b.x-a.x),y:c.y-g*(b.y-a.y)},next:{x:c.x+d*(b.x-a.x),y:c.y+d*(b.y-a.y)}}};b.nextItem=function(a,c,b){return b?c>=a.length-1?a[0]:a[c+1]:c>=a.length-
-1?a[a.length-1]:a[c+1]};b.previousItem=function(a,b,e){return e?0>=b?a[a.length-1]:a[b-1]:0>=b?a[0]:a[b-1]};b.niceNum=function(a,c){var e=Math.floor(b.log10(a)),d=a/Math.pow(10,e);return(c?1.5>d?1:3>d?2:7>d?5:10:1>=d?1:2>=d?2:5>=d?5:10)*Math.pow(10,e)};b.requestAnimFrame=function(){return"undefined"===typeof window?function(a){a()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(a){return window.setTimeout(a,
-1E3/60)}}();b.addEvent=function(a,b,e){a.addEventListener?a.addEventListener(b,e):a.attachEvent?a.attachEvent("on"+b,e):a["on"+b]=e};b.getConstraintWidth=function(a){return f(a,"max-width","clientWidth")};b.getConstraintHeight=function(a){return f(a,"max-height","clientHeight")};b.getMaximumWidth=function(a){var c=a.parentNode,e=parseInt(b.getStyle(c,"padding-left"),10),d=parseInt(b.getStyle(c,"padding-right"),10),c=c.clientWidth-e-d;a=b.getConstraintWidth(a);return isNaN(a)?c:Math.min(c,a)};b.getMaximumHeight=
-function(a){var c=a.parentNode,e=parseInt(b.getStyle(c,"padding-top"),10),d=parseInt(b.getStyle(c,"padding-bottom"),10),c=c.clientHeight-e-d;a=b.getConstraintHeight(a);return isNaN(a)?c:Math.min(c,a)};b.getStyle=function(a,b){return a.currentStyle?a.currentStyle[b]:document.defaultView.getComputedStyle(a,null).getPropertyValue(b)};b.retinaScale=function(a){var b=a.currentDevicePixelRatio=window.devicePixelRatio||1;if(1!==b){var e=a.canvas,d=a.height,f=a.width;e.height=d*b;e.width=f*b;a.ctx.scale(b,
-b);e.style.height=d+"px";e.style.width=f+"px"}};b.clear=function(a){a.ctx.clearRect(0,0,a.width,a.height)};b.fontString=function(a,b,e){return b+" "+a+"px "+e};b.longestText=function(a,c,e,d){d=d||{};var f=d.data=d.data||{},h=d.garbageCollect=d.garbageCollect||[];d.font!==c&&(f=d.data={},h=d.garbageCollect=[],d.font=c);a.font=c;var g=0;b.each(e,function(c){void 0!==c&&null!==c&&!0!==b.isArray(c)?g=b.measureText(a,f,h,g,c):b.isArray(c)&&b.each(c,function(c){void 0===c||null===c||b.isArray(c)||(g=b.measureText(a,
-f,h,g,c))})});c=h.length/2;if(c>e.length){for(e=0;e<c;e++)delete f[h[e]];h.splice(0,c)}return g};b.measureText=function(a,b,e,d,f){var h=b[f];h||(h=b[f]=a.measureText(f).width,e.push(f));h>d&&(d=h);return d};b.numberOfLabelLines=function(a){var c=1;b.each(a,function(a){b.isArray(a)&&a.length>c&&(c=a.length)});return c};b.isArray=Array.isArray?function(a){return Array.isArray(a)}:function(a){return"[object Array]"===Object.prototype.toString.call(a)};b.arrayEquals=function(a,c){var e,d,f,h;if(!a||
-!c||a.length!==c.length)return!1;e=0;for(d=a.length;e<d;++e)if(f=a[e],h=c[e],f instanceof Array&&h instanceof Array){if(!b.arrayEquals(f,h))return!1}else if(f!==h)return!1;return!0};b.callback=function(a,b,e){a&&"function"===typeof a.call&&a.apply(e,b)};b.callCallback=b.callback}},{}],28:[function(p,m,n){m.exports=function(){var g=function(g,f){this.construct(g,f);return this};g.defaults={global:{maintainAspectRatio:!0,defaultColor:"rgba(0,0,0,0.1)",defaultFontColor:"#666",defaultFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",
-defaultFontSize:12,defaultFontStyle:"normal",showLines:!0,elements:{}}};return g.Chart=g}},{}],29:[function(p,m,n){m.exports=function(g){function l(a,c){return b.where(a,function(a){return a.position===c})}function f(a,b){a.forEach(function(a,b){a._tmpIndex_=b;return a});a.sort(function(a,d){var f=b?d:a,h=b?a:d;return f.weight===h.weight?f._tmpIndex_-h._tmpIndex_:f.weight-h.weight});a.forEach(function(a){delete a._tmpIndex_})}var b=g.helpers;g.layoutService={defaults:{},addBox:function(a,b){a.boxes||
-(a.boxes=[]);b.fullWidth=b.fullWidth||!1;b.position=b.position||"top";b.weight=b.weight||0;a.boxes.push(b)},removeBox:function(a,b){var e=a.boxes?a.boxes.indexOf(b):-1;-1!==e&&a.boxes.splice(e,1)},configure:function(a,b,e){a=["fullWidth","position","weight"];for(var d=a.length,f=0,h;f<d;++f)h=a[f],e.hasOwnProperty(h)&&(b[h]=e[h])},update:function(a,c,e){function d(a){var b,c=a.isHorizontal();c?(b=a.update(a.fullWidth?z:B,Q),D-=b.height):(b=a.update(R,J),B-=b.width);S.push({horizontal:c,minSize:b,
-box:a})}function k(a){var c=b.findNextWhere(S,function(b){return b.box===a});c&&(a.isHorizontal()?a.update(a.fullWidth?z:B,I/2,{left:Math.max(r,K),right:Math.max(y,L),top:0,bottom:0}):a.update(c.minSize.width,D))}function h(a){var c=b.findNextWhere(S,function(b){return b.box===a}),d={left:0,right:0,top:v,bottom:E};c&&a.update(c.minSize.width,D,d)}function g(a){a.isHorizontal()?(a.left=a.fullWidth?n:r,a.right=a.fullWidth?c-p:r+B,a.top=A,a.bottom=A+a.height,A=a.bottom):(a.left=F,a.right=F+a.width,a.top=
-v,a.bottom=v+D,F=a.right)}if(a){var m=a.options.layout,q=m?m.padding:null,n=0,p=0,t=m=0;isNaN(q)?(n=q.left||0,p=q.right||0,m=q.top||0,t=q.bottom||0):t=m=p=n=q;var q=l(a.boxes,"left"),w=l(a.boxes,"right"),x=l(a.boxes,"top"),u=l(a.boxes,"bottom"),M=l(a.boxes,"chartArea");f(q,!0);f(w,!1);f(x,!0);f(u,!1);var z=c-n-p,I=e-m-t,J=I/2,R=(c-z/2)/(q.length+w.length),Q=(e-J)/(x.length+u.length),B=z,D=I,S=[];b.each(q.concat(w,x,u),d);var K=0,L=0,T=0,U=0;b.each(x.concat(u),function(a){a.getPadding&&(a=a.getPadding(),
-K=Math.max(K,a.left),L=Math.max(L,a.right))});b.each(q.concat(w),function(a){a.getPadding&&(a=a.getPadding(),T=Math.max(T,a.top),U=Math.max(U,a.bottom))});var r=n,y=p,v=m,E=t;b.each(q.concat(w),k);b.each(q,function(a){r+=a.width});b.each(w,function(a){y+=a.width});b.each(x.concat(u),k);b.each(x,function(a){v+=a.height});b.each(u,function(a){E+=a.height});b.each(q.concat(w),h);r=n;y=p;v=m;E=t;b.each(q,function(a){r+=a.width});b.each(w,function(a){y+=a.width});b.each(x,function(a){v+=a.height});b.each(u,
-function(a){E+=a.height});var t=Math.max(K-r,0),r=r+t,y=y+Math.max(L-y,0),X=Math.max(T-v,0),v=v+X,E=E+Math.max(U-E,0),G=e-v-E,H=c-r-y;if(H!==B||G!==D)b.each(q,function(a){a.height=G}),b.each(w,function(a){a.height=G}),b.each(x,function(a){a.fullWidth||(a.width=H)}),b.each(u,function(a){a.fullWidth||(a.width=H)}),D=G,B=H;var F=n+t,A=m+X;b.each(q.concat(x),g);F+=B;A+=D;b.each(w,g);b.each(u,g);a.chartArea={left:r,top:v,right:r+B,bottom:v+D};b.each(M,function(b){b.left=a.chartArea.left;b.top=a.chartArea.top;
-b.right=a.chartArea.right;b.bottom=a.chartArea.bottom;b.update(B,D)})}}}}},{}],31:[function(p,m,n){m.exports=function(g){function l(a,c,e){return b.isArray(c)?b.longestText(a,e,c):a.measureText(c).width}function f(a){var c=g.defaults.global;a=c.defaultFontSize;var e=c.defaultFontStyle,c=c.defaultFontFamily;return{size:a,style:e,family:c,font:b.fontString(a,e,c)}}var b=g.helpers;g.defaults.scale={display:!0,position:"left",gridLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1,drawOnChartArea:!0,
-drawTicks:!0,tickMarkLength:10,zeroLineWidth:1,zeroLineColor:"rgba(0,0,0,0.25)",zeroLineBorderDash:[],zeroLineBorderDashOffset:0,offsetGridLines:!1,borderDash:[],borderDashOffset:0},ticks:{minRotation:0,maxRotation:50,mirror:!1,padding:0,reverse:!1,display:!0,autoSkip:!0,autoSkipPadding:0,labelOffset:0,callback:g.Ticks.formatters.values}};g.Scale=g.Element.extend({getPadding:function(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}},
-update:function(a,c,e){this.maxWidth=a;this.maxHeight=c;this.margins=b.extend({left:0,right:0,top:0,bottom:0},e);this.longestTextCache=this.longestTextCache||{};this.setDimensions();this.determineDataLimits();this.buildTicks();this.convertTicksToLabels();this.calculateTickRotation();this.fit();return this.minSize},setDimensions:function(){this.isHorizontal()?(this.width=this.maxWidth,this.left=0,this.right=this.width):(this.height=this.maxHeight,this.top=0,this.bottom=this.height);this.paddingBottom=
-this.paddingRight=this.paddingTop=this.paddingLeft=0},determineDataLimits:b.noop,buildTicks:b.noop,convertTicksToLabels:function(){var a=this.options.ticks;this.ticks=this.ticks.map(a.userCallback||a.callback)},calculateTickRotation:function(){var a=this.ctx,c=this.options.ticks,e=f(c);a.font=e.font;var d=c.minRotation||0;if(this.options.display&&this.isHorizontal())for(var k=a=b.longestText(a,e.font,this.ticks,this.longestTextCache),h,e=this.getPixelForTick(1)-this.getPixelForTick(0)-6;k>e&&d<c.maxRotation;){h=
-b.toRadians(d);k=Math.cos(h);h=Math.sin(h);if(h*a>this.maxHeight){d--;break}d++;k*=a}this.labelRotation=d},fit:function(){var a=this.minSize={width:0,height:0},c=this.options,e=c.ticks,d=c.gridLines,k=c.display,h=this.isHorizontal(),g=f(e),m=c.gridLines.tickMarkLength;a.width=h?this.isFullWidth()?this.maxWidth-this.margins.left-this.margins.right:this.maxWidth:k&&d.drawTicks?m:0;a.height=h?k&&d.drawTicks?m:0:this.maxHeight;e.display&&k&&(k=b.longestText(this.ctx,g.font,this.ticks,this.longestTextCache),
-m=b.numberOfLabelLines(this.ticks),d=.5*g.size,h?(this.longestLabelWidth=k,h=b.toRadians(this.labelRotation),e=Math.cos(h),a.height=Math.min(this.maxHeight,a.height+(Math.sin(h)*k+g.size*m+d*m)),this.ctx.font=g.font,h=l(this.ctx,this.ticks[0],g.font),g=l(this.ctx,this.ticks[this.ticks.length-1],g.font),0!==this.labelRotation?(this.paddingLeft="bottom"===c.position?e*h+3:e*d+3,this.paddingRight="bottom"===c.position?e*d+3:e*g+3):(this.paddingLeft=h/2+3,this.paddingRight=g/2+3)):(k=e.mirror?0:k+this.options.ticks.padding,
-a.width=Math.min(this.maxWidth,a.width+k),this.paddingTop=g.size/2,this.paddingBottom=g.size/2));this.handleMargins();this.width=a.width;this.height=a.height},handleMargins:function(){this.margins&&(this.paddingLeft=Math.max(this.paddingLeft-this.margins.left,0),this.paddingTop=Math.max(this.paddingTop-this.margins.top,0),this.paddingRight=Math.max(this.paddingRight-this.margins.right,0),this.paddingBottom=Math.max(this.paddingBottom-this.margins.bottom,0))},isHorizontal:function(){return"top"===
-this.options.position||"bottom"===this.options.position},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(a){return null===a||"undefined"===typeof a||"number"===typeof a&&!isFinite(a)?NaN:"object"===typeof a?a instanceof Date||a.isValid?a:this.getRightValue(this.isHorizontal()?a.x:a.y):a},getPixelForValue:b.noop,getValueForPixel:b.noop,getPixelForTick:function(a,b){if(this.isHorizontal()){var e=(this.width-(this.paddingLeft+this.paddingRight))/Math.max(this.ticks.length-
-(this.options.gridLines.offsetGridLines?0:1),1),d=e*a+this.paddingLeft;b&&(d+=e/2);e=this.left+Math.round(d);return e+=this.isFullWidth()?this.margins.left:0}return this.top+(this.height-(this.paddingTop+this.paddingBottom))/(this.ticks.length-1)*a},getPixelForDecimal:function(a){return this.isHorizontal()?(a=this.left+Math.round((this.width-(this.paddingLeft+this.paddingRight))*a+this.paddingLeft),a+=this.isFullWidth()?this.margins.left:0):this.top+a*this.height},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},
-getBaseValue:function(){var a=this.min,b=this.max;return 0>a&&0>b?b:0<a&&0<b?a:0},draw:function(a){var c=this,e=c.options;if(e.display){var d=c.ctx,k=g.defaults.global,h=e.ticks,l=e.gridLines,m=0!==c.labelRotation,n,p=h.autoSkip,W=c.isHorizontal(),t;h.maxTicksLimit&&(t=h.maxTicksLimit);var w=b.getValueOrDefault(h.fontColor,k.defaultFontColor),x=f(h),u=l.drawTicks?l.tickMarkLength:0,M=b.toRadians(c.labelRotation),z=c.longestLabelWidth*Math.cos(M);d.fillStyle=w;var I=[];if(W){n=!1;(z+h.autoSkipPadding)*
-c.ticks.length>c.width-(c.paddingLeft+c.paddingRight)&&(n=1+Math.floor((z+h.autoSkipPadding)*c.ticks.length/(c.width-(c.paddingLeft+c.paddingRight))));if(t&&c.ticks.length>t)for(;!n||c.ticks.length/(n||1)>t;)n||(n=1),n+=1;p||(n=!1)}var J="right"===e.position?c.left:c.right-u,R="right"===e.position?c.left+u:c.right,Q="bottom"===e.position?c.top:c.bottom-u,B="bottom"===e.position?c.top+u:c.bottom;b.each(c.ticks,function(d,f){if(void 0!==d&&null!==d){var g=c.ticks.length===f+1;if((!(1<n&&0<f%n||0===
-f%n&&f+n>=c.ticks.length)||g)&&void 0!==d&&null!==d){var p,t,w;f===("undefined"!==typeof c.zeroLineIndex?c.zeroLineIndex:0)?(g=l.zeroLineWidth,p=l.zeroLineColor,t=l.zeroLineBorderDash,w=l.zeroLineBorderDashOffset):(g=b.getValueAtIndexOrDefault(l.lineWidth,f),p=b.getValueAtIndexOrDefault(l.color,f),t=b.getValueOrDefault(l.borderDash,k.borderDash),w=b.getValueOrDefault(l.borderDashOffset,k.borderDashOffset));var r,y,v,x,O,G,H,F,A,C,z,P="middle";W?("bottom"===e.position?(P=m?"middle":"top",z=m?"right":
-"center",C=c.top+u):(P=m?"middle":"bottom",z=m?"left":"center",C=c.bottom-u),r=c.getPixelForTick(f)+b.aliasPixel(g),A=c.getPixelForTick(f,l.offsetGridLines)+h.labelOffset,r=v=O=H=r,y=Q,x=B,G=a.top,F=a.bottom):(A="left"===e.position,C=h.padding,h.mirror?z=A?"left":"right":(z=A?"right":"left",C=u+C),A=A?c.right-C:c.left+C,y=c.getPixelForTick(f),y+=b.aliasPixel(g),C=c.getPixelForTick(f,l.offsetGridLines),r=J,v=R,O=a.left,H=a.right,y=x=G=F=y);I.push({tx1:r,ty1:y,tx2:v,ty2:x,x1:O,y1:G,x2:H,y2:F,labelX:A,
-labelY:C,glWidth:g,glColor:p,glBorderDash:t,glBorderDashOffset:w,rotation:-1*M,label:d,textBaseline:P,textAlign:z})}}});b.each(I,function(a){l.display&&(d.save(),d.lineWidth=a.glWidth,d.strokeStyle=a.glColor,d.setLineDash&&(d.setLineDash(a.glBorderDash),d.lineDashOffset=a.glBorderDashOffset),d.beginPath(),l.drawTicks&&(d.moveTo(a.tx1,a.ty1),d.lineTo(a.tx2,a.ty2)),l.drawOnChartArea&&(d.moveTo(a.x1,a.y1),d.lineTo(a.x2,a.y2)),d.stroke(),d.restore());if(h.display){d.save();d.translate(a.labelX,a.labelY);
-d.rotate(a.rotation);d.font=x.font;d.textBaseline=a.textBaseline;d.textAlign=a.textAlign;a=a.label;if(b.isArray(a))for(var c=0,e=0;c<a.length;++c)d.fillText(""+a[c],0,e),e+=1.5*x.size;else d.fillText(a,0,0);d.restore()}})}}})}},{}],32:[function(p,m,n){m.exports=function(g){var l=g.helpers;g.scaleService={constructors:{},defaults:{},registerScaleType:function(f,b,a){this.constructors[f]=b;this.defaults[f]=l.clone(a)},getScaleConstructor:function(f){return this.constructors.hasOwnProperty(f)?this.constructors[f]:
-void 0},getScaleDefaults:function(f){return this.defaults.hasOwnProperty(f)?l.scaleMerge(g.defaults.scale,this.defaults[f]):{}},updateScaleDefaults:function(f,b){var a=this.defaults;a.hasOwnProperty(f)&&(a[f]=l.extend(a[f],b))},addScalesToLayout:function(f){l.each(f.scales,function(b){b.fullWidth=b.options.fullWidth;b.position=b.options.position;b.weight=b.options.weight;g.layoutService.addBox(f,b)})}}}},{}],33:[function(p,m,n){m.exports=function(g){var l=g.helpers;g.Ticks={generators:{linear:function(f,
-b){var a=[],c;f.stepSize&&0<f.stepSize?c=f.stepSize:(c=l.niceNum(b.max-b.min,!1),c=l.niceNum(c/(f.maxTicks-1),!0));var e=Math.floor(b.min/c)*c,d=Math.ceil(b.max/c)*c;f.min&&f.max&&f.stepSize&&l.almostWhole((f.max-f.min)/f.stepSize,c/1E3)&&(e=f.min,d=f.max);var g=(d-e)/c,g=l.almostEquals(g,Math.round(g),c/1E3)?Math.round(g):Math.ceil(g);a.push(void 0!==f.min?f.min:e);for(var h=1;h<g;++h)a.push(e+h*c);a.push(void 0!==f.max?f.max:d);return a}},formatters:{values:function(f){return l.isArray(f)?f:""+
-f},linear:function(f,b,a){b=3<a.length?a[2]-a[1]:a[1]-a[0];1<Math.abs(b)&&f!==Math.floor(f)&&(b=f-Math.floor(f));b=l.log10(Math.abs(b));0!==f?(b=-1*Math.floor(b),b=Math.max(Math.min(b,20),0),f=f.toFixed(b)):f="0";return f}}}}},{}],36:[function(p,m,n){m.exports=function(g){var l=g.helpers,f=g.defaults.global;g.defaults.global.elements.line={tension:.4,backgroundColor:f.defaultColor,borderWidth:3,borderColor:f.defaultColor,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",
-capBezierPoints:!0};g.elements.Line=g.Element.extend({draw:function(){var b=this._view,a=this._chart.ctx,c=b.spanGaps,e=this._children.slice(),d=f.elements.line,g,h,m;this._loop&&e.length&&e.push(e[0]);a.save();a.lineCap=b.borderCapStyle||d.borderCapStyle;a.setLineDash&&a.setLineDash(b.borderDash||d.borderDash);a.lineDashOffset=b.borderDashOffset||d.borderDashOffset;a.lineJoin=b.borderJoinStyle||d.borderJoinStyle;a.lineWidth=b.borderWidth||d.borderWidth;a.strokeStyle=b.borderColor||f.defaultColor;
-a.beginPath();b=-1;for(d=0;d<e.length;++d)g=e[d],h=l.previousItem(e,d),m=g._view,0===d?m.skip||(a.moveTo(m.x,m.y),b=d):(h=-1===b?h:e[b],m.skip||(b!==d-1&&!c||-1===b?a.moveTo(m.x,m.y):l.canvas.lineTo(a,h._view,g._view),b=d));a.stroke();a.restore()}})}},{}],37:[function(p,m,n){m.exports=function(g){var l=g.helpers,f=g.defaults.global,b=f.defaultColor;f.elements.point={radius:3,pointStyle:"circle",backgroundColor:b,borderWidth:0,borderColor:b};g.elements.Point=g.Element.extend({getCenterPoint:function(){var a=
-this._view;return{x:a.x,y:a.y}},getArea:function(){return Math.PI*Math.pow(this._view.radius,2)},draw:function(a){a=this._view;var c=this._chart.ctx,e=a.pointStyle,d=a.radius,k=a.x,h=a.y;a.skip||(c.strokeStyle=a.borderColor||b,c.lineWidth=l.getValueOrDefault(a.borderWidth,f.elements.point.borderWidth),c.fillStyle=a.backgroundColor||b,g.canvasHelpers.drawPoint(c,e,d,k,h))}})}},{}],39:[function(p,m,n){m.exports=function(g){function l(b,e){var d=a.getStyle(b,e);return(d=d&&d.match(/^(\d+)(\.\d+)?px$/))?
-Number(d[1]):void 0}function f(b){var e=document.createElement("iframe");e.className="chartjs-hidden-iframe";e.style.cssText="display:block;overflow:hidden;border:0;margin:0;top:0;left:0;bottom:0;right:0;height:100%;width:100%;position:absolute;pointer-events:none;z-index:-1;";e.tabIndex=-1;a.addEvent(e,"load",function(){a.addEvent(e.contentWindow||e,"resize",b);b()});return e}function b(b,e,d){var g=b._chartjs={ticking:!1};g.resizer=f(function(){g.ticking||(g.ticking=!0,a.requestAnimFrame.call(window,
-function(){if(g.resizer)return g.ticking=!1,e({type:"resize",chart:d,"native":null,x:null,y:null})}))});b.insertBefore(g.resizer,b.firstChild)}var a=g.helpers;return{acquireContext:function(a,b){"string"===typeof a?a=document.getElementById(a):a.length&&(a=a[0]);a&&a.canvas&&(a=a.canvas);var d=a&&a.getContext&&a.getContext("2d");if(d&&d.canvas===a){var f=a,g=f.style,m=f.getAttribute("height"),n=f.getAttribute("width");f._chartjs={initial:{height:m,width:n,style:{display:g.display,height:g.height,
-width:g.width}}};g.display=g.display||"block";if(null===n||""===n){var p=l(f,"width");void 0!==p&&(f.width=p)}if(null===m||""===m)""===f.style.height?f.height=f.width/(b.options.aspectRatio||2):(g=l(f,"height"),void 0!==p&&(f.height=g));return d}return null},addEventListener:function(a,e,d){var f=a.canvas;"resize"===e&&b(f.parentNode,d,a)}}}},{}],40:[function(p,m,n){var g=p(39);m.exports=function(l){l.platform=g(l)}},{39:39}],44:[function(p,m,n){m.exports=function(g){var l=g.helpers,f=g.Scale.extend({getLabels:function(){var b=
-this.chart.data;return(this.isHorizontal()?b.xLabels:b.yLabels)||b.labels},determineDataLimits:function(){var b=this.getLabels();this.minIndex=0;this.maxIndex=b.length-1;var a;void 0!==this.options.ticks.min&&(a=l.indexOf(b,this.options.ticks.min),this.minIndex=-1!==a?a:this.minIndex);void 0!==this.options.ticks.max&&(a=l.indexOf(b,this.options.ticks.max),this.maxIndex=-1!==a?a:this.maxIndex);this.min=b[this.minIndex];this.max=b[this.maxIndex]},buildTicks:function(){var b=this.getLabels();this.ticks=
-0===this.minIndex&&this.maxIndex===b.length-1?b:b.slice(this.minIndex,this.maxIndex+1)},getPixelForValue:function(b,a,c,e){c=Math.max(this.maxIndex+1-this.minIndex-(this.options.gridLines.offsetGridLines?0:1),1);var d;void 0!==b&&null!==b&&(d=this.isHorizontal()?b.x:b.y);if(void 0!==d||void 0!==b&&isNaN(a))b=this.getLabels().indexOf(d||b),a=-1!==b?b:a;if(this.isHorizontal()){b=this.width/c;a=b*(a-this.minIndex);if(this.options.gridLines.offsetGridLines&&e||this.maxIndex===this.minIndex&&e)a+=b/2;
-return this.left+Math.round(a)}b=this.height/c;a=b*(a-this.minIndex);this.options.gridLines.offsetGridLines&&e&&(a+=b/2);return this.top+Math.round(a)},getPixelForTick:function(b,a){return this.getPixelForValue(this.ticks[b],b+this.minIndex,null,a)},getValueForPixel:function(b){var a=Math.max(this.ticks.length-(this.options.gridLines.offsetGridLines?0:1),1),c=this.isHorizontal(),a=(c?this.width:this.height)/a;b-=c?this.left:this.top;this.options.gridLines.offsetGridLines&&(b-=a/2);return 0>=b?0:Math.round(b/
-a)},getBasePixel:function(){return this.bottom}});g.scaleService.registerScaleType("category",f,{position:"bottom"})}},{}],45:[function(p,m,n){m.exports=function(g){var l=g.helpers,f={position:"left",ticks:{callback:g.Ticks.formatters.linear}},b=g.LinearScaleBase.extend({determineDataLimits:function(){var a=this,b=a.chart,e=b.data.datasets,d=a.isHorizontal();a.min=null;a.max=null;l.each(e,function(e,f){var g=b.getDatasetMeta(f);b.isDatasetVisible(f)&&(d?g.xAxisID===a.id:g.yAxisID===a.id)&&l.each(e.data,
-function(b,c){var d=+a.getRightValue(b);isNaN(d)||g.data[c].hidden||(null===a.min?a.min=d:d<a.min&&(a.min=d),null===a.max?a.max=d:d>a.max&&(a.max=d))})});a.min=isFinite(a.min)?a.min:0;a.max=isFinite(a.max)?a.max:1;this.handleTickRangeOptions()},getTickLimit:function(){var a;a=this.options.ticks;if(this.isHorizontal())a=Math.min(a.maxTicksLimit?a.maxTicksLimit:11,Math.ceil(this.width/50));else{var b=l.getValueOrDefault(a.fontSize,g.defaults.global.defaultFontSize);a=Math.min(a.maxTicksLimit?a.maxTicksLimit:
-11,Math.ceil(this.height/(2*b)))}return a},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getPixelForValue:function(a){var b=this.start;a=+this.getRightValue(a);var e=this.end-b;if(this.isHorizontal())return b=this.left+this.width/e*(a-b),Math.round(b);b=this.bottom-this.height/e*(a-b);return Math.round(b)},getValueForPixel:function(a){var b=this.isHorizontal();return this.start+(b?a-this.left:this.bottom-a)/(b?this.width:this.height)*(this.end-this.start)},getPixelForTick:function(a){return this.getPixelForValue(this.ticksAsNumbers[a])}});
-g.scaleService.registerScaleType("linear",b,f)}},{}],46:[function(p,m,n){m.exports=function(g){var l=g.helpers,f=l.noop;g.LinearScaleBase=g.Scale.extend({handleTickRangeOptions:function(){var b=this.options.ticks;void 0!==b.min?this.min=b.min:void 0!==b.suggestedMin&&(this.min=null===this.min?b.suggestedMin:Math.min(this.min,b.suggestedMin));void 0!==b.max?this.max=b.max:void 0!==b.suggestedMax&&(this.max=null===this.max?b.suggestedMax:Math.max(this.max,b.suggestedMax));this.min===this.max&&(this.max++,
-this.min--)},getTickLimit:f,handleDirectionalChanges:f,buildTicks:function(){var b=this.options.ticks,a=this.getTickLimit(),a=Math.max(2,a),a={maxTicks:a,min:b.min,max:b.max,stepSize:l.getValueOrDefault(b.fixedStepSize,b.stepSize)},a=this.ticks=g.Ticks.generators.linear(a,this);this.handleDirectionalChanges();this.max=l.max(a);this.min=l.min(a);b.reverse?(a.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max)},convertTicksToLabels:function(){this.ticksAsNumbers=
-this.ticks.slice();this.zeroLineIndex=this.ticks.indexOf(0);g.Scale.prototype.convertTicksToLabels.call(this)}})}},{}]},{},[7])(7)}();
+/*!
+ * Chart.js
+ * http://chartjs.org/
+ * Version: 2.7.1
+ *
+ * Copyright 2017 Nick Downie
+ * Released under the MIT license
+ * https://github.com/chartjs/Chart.js/blob/master/LICENSE.md
+ */
+!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.Chart=t()}}(function(){return function t(e,i,n){function a(r,s){if(!i[r]){if(!e[r]){var l="function"==typeof require&&require;if(!s&&l)return l(r,!0);if(o)return o(r,!0);var c=new Error("Cannot find module '"+r+"'");throw c.code="MODULE_NOT_FOUND",c}var d=i[r]={exports:{}};e[r][0].call(d.exports,function(t){var i=e[r][1][t];return a(i?i:t)},d,d.exports,t,e,i,n)}return i[r].exports}for(var o="function"==typeof require&&require,r=0;r<n.length;r++)a(n[r]);return a}({1:[function(t,e,i){var n=t(9)();n.helpers=t(22),t(8)(n),n.defaults=t(6),n.Element=t(7),n.elements=t(17),n.platform=t(24),t(4)(n),t(5)(n),t(10)(n),t(12)(n),t(11)(n),t(27)(n),t(25)(n),t(26)(n),t(2)(n),t(3)(n),n.platform.initialize(),e.exports=n,"undefined"!=typeof window&&(window.Chart=n),n.canvasHelpers=n.helpers.canvas},{10:10,11:11,12:12,17:17,2:2,22:22,24:24,25:25,26:26,27:27,3:3,4:4,5:5,6:6,7:7,8:8,9:9}],2:[function(t,e,i){"use strict";function n(t,e){var i,n,a,o,r=t.isHorizontal()?t.width:t.height,s=t.getTicks();for(a=1,o=e.length;a<o;++a)r=Math.min(r,e[a]-e[a-1]);for(a=0,o=s.length;a<o;++a)n=t.getPixelForTick(a),r=a>0?Math.min(r,n-i):r,i=n;return r}function a(t,e,i){var n,a,o=i.barThickness,r=e.stackCount,s=e.pixels[t];return l.isNullOrUndef(o)?(n=e.min*i.categoryPercentage,a=i.barPercentage):(n=o*r,a=1),{chunk:n/r,ratio:a,start:s-n/2}}function o(t,e,i){var n,a,o=e.pixels,r=o[t],s=t>0?o[t-1]:null,l=t<o.length-1?o[t+1]:null,c=i.categoryPercentage;return null===s&&(s=r-(null===l?e.end-r:l-r)),null===l&&(l=r+r-s),n=r-(r-s)/2*c,a=(l-s)/2*c,{chunk:a/e.stackCount,ratio:i.barPercentage,start:n}}var r=t(6),s=t(17),l=t(22);r._set("bar",{scales:{xAxes:[{type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}],yAxes:[{type:"linear"}]}}),r._set("horizontalBar",{scales:{xAxes:[{type:"linear",position:"bottom"}],yAxes:[{position:"left",type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}]},elements:{rectangle:{borderSkipped:"left"}}}),e.exports=function(t){t.controllers.bar=t.DatasetController.extend({dataElementType:s.Rectangle,initialize:function(){var e,i=this;t.DatasetController.prototype.initialize.apply(i,arguments),e=i.getMeta(),e.stack=i.getDataset().stack,e.bar=!0},update:function(t){var e,i,n=this,a=n.getMeta().data;for(n._ruler=n.getRuler(),e=0,i=a.length;e<i;++e)n.updateElement(a[e],e,t)},updateElement:function(t,e,i){var n=this,a=n.chart,o=n.getMeta(),r=n.getDataset(),s=a.options.elements.rectangle;t._xScale=n.getScaleForId(o.xAxisID),t._yScale=n.getScaleForId(o.yAxisID),t._datasetIndex=n.index,t._index=e,t._model={datasetLabel:r.label,label:a.data.labels[e],borderSkipped:s.borderSkipped,backgroundColor:l.valueAtIndexOrDefault(r.backgroundColor,e,s.backgroundColor),borderColor:l.valueAtIndexOrDefault(r.borderColor,e,s.borderColor),borderWidth:l.valueAtIndexOrDefault(r.borderWidth,e,s.borderWidth)},n.updateElementGeometry(t,e,i),t.pivot()},updateElementGeometry:function(t,e,i){var n=this,a=t._model,o=n.getValueScale(),r=o.getBasePixel(),s=o.isHorizontal(),l=n._ruler||n.getRuler(),c=n.calculateBarValuePixels(n.index,e),d=n.calculateBarIndexPixels(n.index,e,l);a.horizontal=s,a.base=i?r:c.base,a.x=s?i?r:c.head:d.center,a.y=s?d.center:i?r:c.head,a.height=s?d.size:void 0,a.width=s?void 0:d.size},getValueScaleId:function(){return this.getMeta().yAxisID},getIndexScaleId:function(){return this.getMeta().xAxisID},getValueScale:function(){return this.getScaleForId(this.getValueScaleId())},getIndexScale:function(){return this.getScaleForId(this.getIndexScaleId())},getRuler:function(){var t,e,i,a=this,o=a.getIndexScale(),r=1,s=a.index,c=o.isHorizontal(),d=c?o.left:o.top,u=d+(c?o.width:o.height),h=[];for(t=0,e=a.getMeta().data.length;t<e;++t)h.push(o.getPixelForValue(null,t,s));return i=l.isNullOrUndef(o.options.barThickness)?n(o,h):-1,{min:i,pixels:h,start:d,end:u,stackCount:r,scale:o}},calculateBarValuePixels:function(t,e){var i,n,a,o=this,r=o.chart,s=o.getMeta(),l=o.getValueScale(),c=r.data.datasets,d=l.getRightValue(c[t].data[e]),u=(l.options.stacked,s.stack,0);return i=l.getPixelForValue(u),n=l.getPixelForValue(u+d),a=(n-i)/2,{size:a,base:i,head:n,center:n+a/2}},calculateBarIndexPixels:function(t,e,i){var n=i.scale.options,r="flex"===n.barThickness?o(e,i,n):a(e,i,n),s=0,c=r.start+r.chunk*s+r.chunk/2,d=Math.min(l.valueOrDefault(n.maxBarThickness,1/0),r.chunk*r.ratio);return{base:c-d/2,head:c+d/2,center:c,size:d}},draw:function(){var t=this,e=t.chart,i=t.getValueScale(),n=t.getMeta().data,a=t.getDataset(),o=n.length,r=0;for(l.canvas.clipArea(e.ctx,e.chartArea);r<o;++r)isNaN(i.getRightValue(a.data[r]))||n[r].draw();l.canvas.unclipArea(e.ctx)}}),t.controllers.horizontalBar=t.controllers.bar.extend({getValueScaleId:function(){return this.getMeta().xAxisID},getIndexScaleId:function(){return this.getMeta().yAxisID}})}},{17:17,22:22,6:6}],3:[function(t,e,i){"use strict";var n=t(6),a=t(17),o=t(22);n._set("line",{showLines:!0,spanGaps:!1,scales:{xAxes:[{type:"category",id:"x-axis-0"}],yAxes:[{type:"linear",id:"y-axis-0"}]}}),e.exports=function(t){function e(t,e){return o.valueOrDefault(t.showLine,e.showLines)}t.controllers.line=t.DatasetController.extend({datasetElementType:a.Line,dataElementType:a.Point,update:function(t){var i,n,a=this,r=a.getMeta(),s=r.dataset,l=r.data||[],c=a.chart.options,d=c.elements.line,u=a.getScaleForId(r.yAxisID),h=a.getDataset(),f=e(h,c);for(f&&(void 0!==h.tension&&void 0===h.lineTension&&(h.lineTension=h.tension),s._scale=u,s._datasetIndex=a.index,s._children=l,s._model={spanGaps:h.spanGaps?h.spanGaps:c.spanGaps,tension:o.valueOrDefault(h.lineTension,d.tension),backgroundColor:h.backgroundColor||d.backgroundColor,borderWidth:h.borderWidth||d.borderWidth,borderColor:h.borderColor||d.borderColor,borderCapStyle:h.borderCapStyle||d.borderCapStyle,borderDash:h.borderDash||d.borderDash,borderDashOffset:h.borderDashOffset||d.borderDashOffset,borderJoinStyle:h.borderJoinStyle||d.borderJoinStyle,fill:void 0!==h.fill?h.fill:d.fill,steppedLine:o.valueOrDefault(h.steppedLine,d.stepped),cubicInterpolationMode:o.valueOrDefault(h.cubicInterpolationMode,d.cubicInterpolationMode)},s.pivot()),i=0,n=l.length;i<n;++i)a.updateElement(l[i],i,t);for(f&&0!==s._model.tension&&a.updateBezierControlPoints(),i=0,n=l.length;i<n;++i)l[i].pivot()},updateElement:function(t,e,i){var n,a,r=this,s=r.getMeta(),l=t.custom||{},c=r.getDataset(),d=r.index,u=c.data[e],h=r.getScaleForId(s.yAxisID),f=r.getScaleForId(s.xAxisID),p=r.chart.options.elements.point;void 0!==c.radius&&void 0===c.pointRadius&&(c.pointRadius=c.radius),void 0!==c.hitRadius&&void 0===c.pointHitRadius&&(c.pointHitRadius=c.hitRadius),n=f.getPixelForValue("object"==typeof u?u:NaN,e,d),a=i?h.getBasePixel():r.calculatePointY(u,e,d),t._xScale=f,t._yScale=h,t._datasetIndex=d,t._index=e,t._model={x:n,y:a,skip:l.skip||isNaN(n)||isNaN(a),radius:l.radius||o.valueAtIndexOrDefault(c.pointRadius,e,p.radius),pointStyle:l.pointStyle||o.valueAtIndexOrDefault(c.pointStyle,e,p.pointStyle),backgroundColor:c.pointBackgroundColor,borderColor:c.borderColor,borderWidth:c.borderWidth,tension:s.dataset._model?s.dataset._model.tension:0,steppedLine:!!s.dataset._model&&s.dataset._model.steppedLine,hitRadius:l.hitRadius||o.valueAtIndexOrDefault(c.pointHitRadius,e,p.hitRadius)}},calculatePointY:function(t,e,i){var n=this,a=(n.chart,n.getMeta()),o=n.getScaleForId(a.yAxisID);return o.getPixelForValue(t)},updateBezierControlPoints:function(){function t(t,e,i){return Math.max(Math.min(t,i),e)}var e,i,n,a,r,s=this,l=s.getMeta(),c=s.chart.chartArea,d=l.data||[];for(l.dataset._model.spanGaps&&(d=d.filter(function(t){return!t._model.skip})),e=0,i=d.length;e<i;++e)n=d[e],a=n._model,r=o.splineCurve(o.previousItem(d,e)._model,a,o.nextItem(d,e)._model,l.dataset._model.tension),a.controlPointPreviousX=r.previous.x,a.controlPointPreviousY=r.previous.y,a.controlPointNextX=r.next.x,a.controlPointNextY=r.next.y;if(s.chart.options.elements.line.capBezierPoints)for(e=0,i=d.length;e<i;++e)a=d[e]._model,a.controlPointPreviousX=t(a.controlPointPreviousX,c.left,c.right),a.controlPointPreviousY=t(a.controlPointPreviousY,c.top,c.bottom),a.controlPointNextX=t(a.controlPointNextX,c.left,c.right),a.controlPointNextY=t(a.controlPointNextY,c.top,c.bottom)},draw:function(){var t=this,i=t.chart,n=t.getMeta(),a=n.data||[],r=i.chartArea,s=a.length,l=0;for(o.canvas.clipArea(i.ctx,r),e(t.getDataset(),i.options)&&n.dataset.draw(),o.canvas.unclipArea(i.ctx);l<s;++l)a[l].draw(r)}})}},{17:17,22:22,6:6}],4:[function(t,e,i){"use strict";var n=t(6),a=t(22),o=t(24);e.exports=function(t){function e(t){t=t||{};var e=t.data=t.data||{};return e.datasets=e.datasets||[],e.labels=e.labels||[],t.options=a.configMerge(n.global,n[t.type],t.options||{}),t}function i(e){var i=e.options;a.each(e.scales,function(i){t.layoutService.removeBox(e,i)}),i=a.configMerge(t.defaults.global,t.defaults[e.config.type],i),e.options=e.config.options=i,e.ensureScalesHaveIDs(),e.buildOrUpdateScales()}function r(t){return"top"===t||"bottom"===t}t.types={},t.instances={},t.controllers={},a.extend(t.prototype,{construct:function(i,n){var r=this;n=e(n);var s=o.acquireContext(i,n),l=s&&s.canvas,c=l&&l.height,d=l&&l.width;return r.id=a.uid(),r.ctx=s,r.canvas=l,r.config=n,r.width=d,r.height=c,r.aspectRatio=c?d/c:null,r.options=n.options,r._bufferedRender=!1,r.chart=r,r.controller=r,t.instances[r.id]=r,Object.defineProperty(r,"data",{get:function(){return r.config.data},set:function(t){r.config.data=t}}),s&&l?(r.initialize(),void r.update()):void console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){var t=this;return a.retinaScale(t,t.options.devicePixelRatio),t.bindEvents(),t.options.responsive&&t.resize(!0),t.ensureScalesHaveIDs(),t.buildOrUpdateScales(),t},clear:function(){return a.canvas.clear(this),this},stop:function(){return this},resize:function(t){var e=this,i=e.options,n=e.canvas,o=i.maintainAspectRatio&&e.aspectRatio||null,r=Math.max(0,Math.floor(a.getMaximumWidth(n))),s=Math.max(0,Math.floor(o?r/o:a.getMaximumHeight(n)));if((e.width!==r||e.height!==s)&&(n.width=e.width=r,n.height=e.height=s,n.style.width=r+"px",n.style.height=s+"px",a.retinaScale(e,i.devicePixelRatio),!t)){var l={width:r,height:s};e.options.onResize&&e.options.onResize(e,l),e.stop(),e.update(0)}},ensureScalesHaveIDs:function(){var t=this.options,e=t.scales||{},i=t.scale;a.each(e.xAxes,function(t,e){t.id=t.id||"x-axis-"+e}),a.each(e.yAxes,function(t,e){t.id=t.id||"y-axis-"+e}),i&&(i.id=i.id||"scale")},buildOrUpdateScales:function(){var e=this,i=e.options,n=e.scales||{},o=[],s=Object.keys(n).reduce(function(t,e){return t[e]=!1,t},{});i.scales&&(o=o.concat((i.scales.xAxes||[]).map(function(t){return{options:t,dtype:"category",dposition:"bottom"}}),(i.scales.yAxes||[]).map(function(t){return{options:t,dtype:"linear",dposition:"left"}}))),a.each(o,function(i){var o=i.options,l=o.id,c=a.valueOrDefault(o.type,i.dtype);r(o.position)!==r(i.dposition)&&(o.position=i.dposition),s[l]=!0;var d=null;if(l in n&&n[l].type===c)d=n[l],d.options=o,d.ctx=e.ctx,d.chart=e;else{var u=t.scaleService.getScaleConstructor(c);if(!u)return;d=new u({id:l,type:c,options:o,ctx:e.ctx,chart:e}),n[d.id]=d}d.mergeTicksOptions(),i.isDefault&&(e.scale=d)}),a.each(s,function(t,e){t||delete n[e]}),e.scales=n,t.scaleService.addScalesToLayout(this)},buildOrUpdateControllers:function(){var e=this,i=[],n=[];return a.each(e.data.datasets,function(a,o){var r=e.getDatasetMeta(o),s=a.type||e.config.type;if(r.type&&r.type!==s&&(e.destroyDatasetMeta(o),r=e.getDatasetMeta(o)),r.type=s,i.push(r.type),r.controller)r.controller.updateIndex(o),r.controller.linkScales();else{var l=t.controllers[r.type];if(void 0===l)throw new Error('"'+r.type+'" is not a chart type.');r.controller=new l(e,o),n.push(r.controller)}},e),n},resetElements:function(){var t=this;a.each(t.data.datasets,function(e,i){t.getDatasetMeta(i).controller.reset()},t)},reset:function(){this.resetElements()},update:function(t){var e=this;t&&"object"==typeof t||(t={duration:t,lazy:arguments[1]}),i(e);var n=e.buildOrUpdateControllers();a.each(e.data.datasets,function(t,i){e.getDatasetMeta(i).controller.buildOrUpdateElements()},e),e.updateLayout(),e.options.animation&&e.options.animation.duration&&a.each(n,function(t){t.reset()}),e.updateDatasets(),e.lastActive=[],e._bufferedRender?e._bufferedRequest={duration:t.duration,easing:t.easing,lazy:t.lazy}:e.render(t)},updateLayout:function(){t.layoutService.update(this,this.width,this.height)},updateDatasets:function(){for(var t=this,e=0,i=t.data.datasets.length;e<i;++e)t.updateDataset(e)},updateDataset:function(t){var e=this,i=e.getDatasetMeta(t);i.controller.update()},render:function(t){var e=this,i=e.options.animation;return e.draw(),a.callback(i&&i.onComplete,[],e),e},draw:function(t){var e=this;e.clear(),a.isNullOrUndef(t)&&(t=1),e.transition(t),a.each(e.boxes,function(t){t.draw(e.chartArea)},e),e.scale&&e.scale.draw(),e.drawDatasets(t)},transition:function(t){for(var e=this,i=0,n=(e.data.datasets||[]).length;i<n;++i)e.isDatasetVisible(i)&&e.getDatasetMeta(i).controller.transition(t)},drawDatasets:function(t){for(var e=this,i=(e.data.datasets||[]).length-1;i>=0;--i)e.isDatasetVisible(i)&&e.drawDataset(i,t)},drawDataset:function(t,e){var i=this,n=i.getDatasetMeta(t);n.controller.draw(e)},getDatasetMeta:function(t){var e=this,i=e.data.datasets[t];i._meta||(i._meta={});var n=i._meta[e.id];return n||(n=i._meta[e.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null}),n},getVisibleDatasetCount:function(){for(var t=0,e=0,i=this.data.datasets.length;e<i;++e)this.isDatasetVisible(e)&&t++;return t},isDatasetVisible:function(t){var e=this.getDatasetMeta(t);return"boolean"==typeof e.hidden?!e.hidden:!this.data.datasets[t].hidden},generateLegend:function(){return this.options.legendCallback(this)},destroyDatasetMeta:function(t){var e=this.id,i=this.data.datasets[t],n=i._meta&&i._meta[e];n&&(n.controller.destroy(),delete i._meta[e])},destroy:function(){var e,i,n=this,r=n.canvas;for(n.stop(),e=0,i=n.data.datasets.length;e<i;++e)n.destroyDatasetMeta(e);r&&(a.canvas.clear(n),o.releaseContext(n.ctx),n.canvas=null,n.ctx=null),delete t.instances[n.id]},toBase64Image:function(){return this.canvas.toDataURL.apply(this.canvas,arguments)},bindEvents:function(){var t=this,e=t._listeners={},i=function(){t.eventHandler.apply(t,arguments)};t.options.responsive&&(i=function(){t.resize()},o.addEventListener(t,"resize",i),e.resize=i)}}),t.Controller=t}},{22:22,24:24,6:6}],5:[function(t,e,i){"use strict";var n=t(22);e.exports=function(t){t.DatasetController=function(t,e){this.initialize(t,e)},n.extend(t.DatasetController.prototype,{datasetElementType:null,dataElementType:null,initialize:function(t,e){var i=this;i.chart=t,i.index=e,i.linkScales(),i.addElements()},updateIndex:function(t){this.index=t},linkScales:function(){var t=this,e=t.getMeta(),i=t.getDataset();null!==e.xAxisID&&e.xAxisID in t.chart.scales||(e.xAxisID=i.xAxisID||t.chart.options.scales.xAxes[0].id),null!==e.yAxisID&&e.yAxisID in t.chart.scales||(e.yAxisID=i.yAxisID||t.chart.options.scales.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(t){return this.chart.scales[t]},reset:function(){this.update(!0)},createMetaDataset:function(){var t=this,e=t.datasetElementType;return e&&new e({_chart:t.chart,_datasetIndex:t.index})},createMetaData:function(t){var e=this,i=e.dataElementType;return i&&new i({_chart:e.chart,_datasetIndex:e.index,_index:t})},addElements:function(){var t,e,i=this,n=i.getMeta(),a=i.getDataset().data||[],o=n.data;for(t=0,e=a.length;t<e;++t)o[t]=o[t]||i.createMetaData(t);n.dataset=n.dataset||i.createMetaDataset()},buildOrUpdateElements:function(){var t=this,e=t.getDataset();e.data||(e.data=[])},update:n.noop,transition:function(t){for(var e=this.getMeta(),i=e.data||[],n=i.length,a=0;a<n;++a)i[a].transition(t);e.dataset&&e.dataset.transition(t)},draw:function(){var t=this.getMeta(),e=t.data||[],i=e.length,n=0;for(t.dataset&&t.dataset.draw();n<i;++n)e[n].draw()}}),t.DatasetController.extend=n.inherits}},{22:22}],6:[function(t,e,i){"use strict";var n=t(22);e.exports={_set:function(t,e){return n.merge(this[t]||(this[t]={}),e)}}},{22:22}],7:[function(t,e,i){"use strict";var n=t(22),a=function(t){n.extend(this,t),this.initialize.apply(this,arguments)};n.extend(a.prototype,{initialize:function(){this.hidden=!1},pivot:function(){var t=this;return t._view||(t._view=n.clone(t._model)),t._start={},t},transition:function(t){var e=this,i=e._model;e._start,e._view;return e._view=i,e._start=null,e},hasValue:function(){return n.isNumber(this._model.x)&&n.isNumber(this._model.y)}}),a.extend=n.inherits,e.exports=a},{22:22}],8:[function(t,e,i){"use strict";var n=(t(6),t(22));e.exports=function(t){function e(t,e,i){var n;return"string"==typeof t?(n=parseInt(t,10),t.indexOf("%")!==-1&&(n=n/100*e.parentNode[i])):n=t,n}function i(t){return void 0!==t&&null!==t&&"none"!==t}function a(t,n,a){var o=document.defaultView,r=t.parentNode,s=o.getComputedStyle(t)[n],l=o.getComputedStyle(r)[n],c=i(s),d=i(l),u=Number.POSITIVE_INFINITY;return c||d?Math.min(c?e(s,t,a):u,d?e(l,r,a):u):"none"}n.configMerge=function(){return n.merge(n.clone(arguments[0]),[].slice.call(arguments,1),{merger:function(e,i,a,o){var r=i[e]||{},s=a[e];"scales"===e?i[e]=n.scaleMerge(r,s):"scale"===e?i[e]=n.merge(r,[t.scaleService.getScaleDefaults(s.type),s]):n._merger(e,i,a,o)}})},n.scaleMerge=function(){return n.merge(n.clone(arguments[0]),[].slice.call(arguments,1),{merger:function(e,i,a,o){if("xAxes"===e||"yAxes"===e){var r,s,l,c=a[e].length;for(i[e]||(i[e]=[]),r=0;r<c;++r)l=a[e][r],s=n.valueOrDefault(l.type,"xAxes"===e?"category":"linear"),r>=i[e].length&&i[e].push({}),!i[e][r].type||l.type&&l.type!==i[e][r].type?n.merge(i[e][r],[t.scaleService.getScaleDefaults(s),l]):n.merge(i[e][r],l)}else n._merger(e,i,a,o)}})},n.where=function(t,e){if(n.isArray(t)&&Array.prototype.filter)return t.filter(e);var i=[];return n.each(t,function(t){e(t)&&i.push(t)}),i},n.findIndex=Array.prototype.findIndex?function(t,e,i){return t.findIndex(e,i)}:function(t,e,i){i=void 0===i?t:i;for(var n=0,a=t.length;n<a;++n)if(e.call(i,t[n],n,t))return n;return-1},n.findNextWhere=function(t,e,i){n.isNullOrUndef(i)&&(i=-1);for(var a=i+1;a<t.length;a++){var o=t[a];if(e(o))return o}},n.findPreviousWhere=function(t,e,i){n.isNullOrUndef(i)&&(i=t.length);for(var a=i-1;a>=0;a--){var o=t[a];if(e(o))return o}},n.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},n.almostEquals=function(t,e,i){return Math.abs(t-e)<i},n.almostWhole=function(t,e){var i=Math.round(t);return i-e<t&&i+e>t},n.max=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.max(t,e)},Number.NEGATIVE_INFINITY)},n.min=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.min(t,e)},Number.POSITIVE_INFINITY)},n.sign=Math.sign?function(t){return Math.sign(t)}:function(t){return t=+t,0===t||isNaN(t)?t:t>0?1:-1},n.log10=Math.log10?function(t){return Math.log10(t)}:function(t){return Math.log(t)/Math.LN10},n.toRadians=function(t){return t*(Math.PI/180)},n.aliasPixel=function(t){return t%2===0?0:.5},n.splineCurve=function(t,e,i,n){var a=t.skip?e:t,o=e,r=i.skip?e:i,s=Math.sqrt(Math.pow(o.x-a.x,2)+Math.pow(o.y-a.y,2)),l=Math.sqrt(Math.pow(r.x-o.x,2)+Math.pow(r.y-o.y,2)),c=s/(s+l),d=l/(s+l);c=isNaN(c)?0:c,d=isNaN(d)?0:d;var u=n*c,h=n*d;return{previous:{x:o.x-u*(r.x-a.x),y:o.y-u*(r.y-a.y)},next:{x:o.x+h*(r.x-a.x),y:o.y+h*(r.y-a.y)}}},n.nextItem=function(t,e,i){return i?e>=t.length-1?t[0]:t[e+1]:e>=t.length-1?t[t.length-1]:t[e+1]},n.previousItem=function(t,e,i){return i?e<=0?t[t.length-1]:t[e-1]:e<=0?t[0]:t[e-1]},n.niceNum=function(t,e){var i,a=Math.floor(n.log10(t)),o=t/Math.pow(10,a);return i=e?o<1.5?1:o<3?2:o<7?5:10:o<=1?1:o<=2?2:o<=5?5:10,i*Math.pow(10,a)},n.requestAnimFrame=function(){return"undefined"==typeof window?function(t){t()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)}}(),n.getConstraintWidth=function(t){return a(t,"max-width","clientWidth")},n.getConstraintHeight=function(t){return a(t,"max-height","clientHeight")},n.getMaximumWidth=function(t){var e=t.parentNode;if(!e)return t.clientWidth;var i=parseInt(n.getStyle(e,"padding-left"),10),a=parseInt(n.getStyle(e,"padding-right"),10),o=e.clientWidth-i-a,r=n.getConstraintWidth(t);return isNaN(r)?o:Math.min(o,r)},n.getMaximumHeight=function(t){var e=t.parentNode;if(!e)return t.clientHeight;var i=parseInt(n.getStyle(e,"padding-top"),10),a=parseInt(n.getStyle(e,"padding-bottom"),10),o=e.clientHeight-i-a,r=n.getConstraintHeight(t);return isNaN(r)?o:Math.min(o,r)},n.getStyle=function(t,e){return t.currentStyle?t.currentStyle[e]:document.defaultView.getComputedStyle(t,null).getPropertyValue(e)},n.retinaScale=function(t,e){var i=t.currentDevicePixelRatio=e||window.devicePixelRatio||1;if(1!==i){var n=t.canvas,a=t.height,o=t.width;n.height=a*i,n.width=o*i,t.ctx.scale(i,i),n.style.height||n.style.width||(n.style.height=a+"px",n.style.width=o+"px")}},n.fontString=function(t,e,i){return e+" "+t+"px "+i},n.longestText=function(t,e,i,a){a=a||{};var o=a.data=a.data||{},r=a.garbageCollect=a.garbageCollect||[];a.font!==e&&(o=a.data={},r=a.garbageCollect=[],a.font=e),t.font=e;var s=0;n.each(i,function(e){void 0!==e&&null!==e&&n.isArray(e)!==!0?s=n.measureText(t,o,r,s,e):n.isArray(e)&&n.each(e,function(e){void 0===e||null===e||n.isArray(e)||(s=n.measureText(t,o,r,s,e))})});var l=r.length/2;if(l>i.length){for(var c=0;c<l;c++)delete o[r[c]];r.splice(0,l)}return s},n.measureText=function(t,e,i,n,a){var o=e[a];return o||(o=e[a]=t.measureText(a).width,i.push(a)),o>n&&(n=o),n},n.numberOfLabelLines=function(t){var e=1;return n.each(t,function(t){n.isArray(t)&&t.length>e&&(e=t.length)}),e}}},{22:22,6:6}],9:[function(t,e,i){"use strict";var n=t(6);n._set("global",{responsive:!0,maintainAspectRatio:!0,defaultColor:"rgba(0,0,0,0.1)",defaultFontColor:"#666",defaultFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",defaultFontSize:12,defaultFontStyle:"normal",showLines:!0,elements:{},layout:{padding:{top:0,right:0,bottom:0,left:0}}}),e.exports=function(){var t=function(t,e){return this.construct(t,e),this};return t.Chart=t,t}},{6:6}],10:[function(t,e,i){"use strict";var n=t(22);e.exports=function(t){function e(t,e){return n.where(t,function(t){return t.position===e})}function i(t,e){t.forEach(function(t,e){return t._tmpIndex_=e,t}),t.sort(function(t,i){var n=e?i:t,a=e?t:i;return n.weight===a.weight?n._tmpIndex_-a._tmpIndex_:n.weight-a.weight}),t.forEach(function(t){delete t._tmpIndex_})}t.layoutService={defaults:{},addBox:function(t,e){t.boxes||(t.boxes=[]),e.fullWidth=e.fullWidth||!1,e.position=e.position||"top",e.weight=e.weight||0,t.boxes.push(e)},removeBox:function(t,e){var i=t.boxes?t.boxes.indexOf(e):-1;i!==-1&&t.boxes.splice(i,1)},configure:function(t,e,i){for(var n,a=["fullWidth","position","weight"],o=a.length,r=0;r<o;++r)n=a[r],i.hasOwnProperty(n)&&(e[n]=i[n])},update:function(t,a,o){function r(t){var e,i=t.isHorizontal();i?(e=t.update(t.fullWidth?w:P,I),T-=e.height):(e=t.update(S,T),P-=e.width),_.push({horizontal:i,minSize:e,box:t})}function s(t){var e=n.findNextWhere(_,function(e){return e.box===t});if(e)if(t.isHorizontal()){var i={left:Math.max(L,A),right:Math.max(N,O),top:0,bottom:0};t.update(t.fullWidth?w:P,k/2,i)}else t.update(e.minSize.width,T)}function l(t){var e=n.findNextWhere(_,function(e){return e.box===t}),i={left:0,right:0,top:F,bottom:R};e&&t.update(e.minSize.width,T,i)}function c(t){t.isHorizontal()?(t.left=t.fullWidth?h:L,t.right=t.fullWidth?a-f:L+P,t.top=j,t.bottom=j+t.height,j=t.bottom):(t.left=E,t.right=E+t.width,t.top=F,t.bottom=F+T,E=t.right)}if(t){var d=t.options.layout||{},u=n.options.toPadding(d.padding),h=u.left,f=u.right,p=u.top,g=u.bottom,x=e(t.boxes,"left"),m=e(t.boxes,"right"),v=e(t.boxes,"top"),b=e(t.boxes,"bottom"),y=e(t.boxes,"chartArea");i(x,!0),i(m,!1),i(v,!0),i(b,!1);var w=a-h-f,k=o-p-g,D=w/2,M=k/2,S=(a-D)/(x.length+m.length),I=(o-M)/(v.length+b.length),P=w,T=k,_=[];n.each(x.concat(m,v,b),r);var A=0,O=0,C=0,z=0;n.each(v.concat(b),function(t){if(t.getPadding){var e=t.getPadding();A=Math.max(A,e.left),O=Math.max(O,e.right)}}),n.each(x.concat(m),function(t){if(t.getPadding){var e=t.getPadding();C=Math.max(C,e.top),z=Math.max(z,e.bottom)}});var L=h,N=f,F=p,R=g;n.each(x.concat(m),s),n.each(x,function(t){L+=t.width}),n.each(m,function(t){N+=t.width}),n.each(v.concat(b),s),n.each(v,function(t){F+=t.height}),n.each(b,function(t){R+=t.height}),n.each(x.concat(m),l),L=h,N=f,F=p,R=g,n.each(x,function(t){L+=t.width}),n.each(m,function(t){N+=t.width}),n.each(v,function(t){F+=t.height}),n.each(b,function(t){R+=t.height});var W=Math.max(A-L,0);L+=W,N+=Math.max(O-N,0);var V=Math.max(C-F,0);F+=V,R+=Math.max(z-R,0);var H=o-F-R,B=a-L-N;B===P&&H===T||(n.each(x,function(t){t.height=H}),n.each(m,function(t){t.height=H}),n.each(v,function(t){t.fullWidth||(t.width=B)}),n.each(b,function(t){t.fullWidth||(t.width=B)}),T=H,P=B);var E=h+W,j=p+V;n.each(x.concat(v),c),E+=P,j+=T,n.each(m,c),n.each(b,c),t.chartArea={left:L,top:F,right:L+P,bottom:F+T},n.each(y,function(e){e.left=t.chartArea.left,e.top=t.chartArea.top,e.right=t.chartArea.right,e.bottom=t.chartArea.bottom,e.update(P,T)})}}}}},{22:22}],11:[function(t,e,i){"use strict";function n(t){var e,i,n=[];for(e=0,i=t.length;e<i;++e)n.push(t[e].label);return n}function a(t,e,i){var n=t.getPixelForTick(e);return i&&(n-=0===e?(t.getPixelForTick(1)-n)/2:(n-t.getPixelForTick(e-1))/2),n}var o=t(6),r=t(7),s=t(22),l=t(13);o._set("scale",{display:!0,position:"left",offset:!1,gridLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickMarkLength:10,zeroLineWidth:1,zeroLineColor:"rgba(0,0,0,0.25)",zeroLineBorderDash:[],zeroLineBorderDashOffset:0,offsetGridLines:!1,borderDash:[],borderDashOffset:0},ticks:{beginAtZero:!1,minRotation:0,maxRotation:50,mirror:!1,padding:0,reverse:!1,display:!0,labelOffset:0,callback:l.formatters.values,minor:{},major:{}}}),e.exports=function(t){function e(t,e,i){return s.isArray(e)?s.longestText(t,i,e):t.measureText(e).width}function i(t){var e=s.valueOrDefault,i=o.global,n=e(t.fontSize,i.defaultFontSize),a=e(t.fontStyle,i.defaultFontStyle),r=e(t.fontFamily,i.defaultFontFamily);return{size:n,style:a,family:r,font:s.fontString(n,a,r)}}t.Scale=r.extend({getPadding:function(){var t=this;return{left:t.paddingLeft||0,top:t.paddingTop||0,right:t.paddingRight||0,bottom:t.paddingBottom||0}},getTicks:function(){return this._ticks},mergeTicksOptions:function(){var t=this.options.ticks;t.minor===!1&&(t.minor={display:!1}),t.major===!1&&(t.major={display:!1});for(var e in t)"major"!==e&&"minor"!==e&&("undefined"==typeof t.minor[e]&&(t.minor[e]=t[e]),"undefined"==typeof t.major[e]&&(t.major[e]=t[e]))},update:function(t,e,i){var n,a,o,r,l,c,d=this;for(d.maxWidth=t,d.maxHeight=e,d.margins=s.extend({left:0,right:0,top:0,bottom:0},i),d.longestTextCache=d.longestTextCache||{},d.setDimensions(),d.determineDataLimits(),l=d.buildTicks()||[],o=d.convertTicksToLabels(l)||d.ticks,d.ticks=o,n=0,a=o.length;n<a;++n)r=o[n],c=l[n],c?c.label=r:l.push(c={label:r,major:!1});return d._ticks=l,d.calculateTickRotation(),d.fit(),d.minSize},setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0},determineDataLimits:s.noop,buildTicks:s.noop,convertTicksToLabels:function(){var t=this,e=t.options.ticks;t.ticks=t.ticks.map(e.userCallback||e.callback,this)},calculateTickRotation:function(){var t=this,e=t.ctx,a=t.options.ticks,o=n(t._ticks),r=i(a);e.font=r.font;var l=a.minRotation||0;if(o.length&&t.options.display&&t.isHorizontal())for(var c,d,u=s.longestText(e,r.font,o,t.longestTextCache),h=u,f=t.getPixelForTick(1)-t.getPixelForTick(0)-6;h>f&&l<a.maxRotation;){var p=s.toRadians(l);if(c=Math.cos(p),d=Math.sin(p),d*u>t.maxHeight){l--;break}l++,h=c*u}t.labelRotation=l},fit:function(){var t=this,a=t.minSize={width:0,height:0},o=n(t._ticks),r=t.options,l=r.ticks,c=r.gridLines,d=r.display,u=t.isHorizontal(),h=i(l),f=r.gridLines.tickMarkLength;if(u?a.width=t.isFullWidth()?t.maxWidth-t.margins.left-t.margins.right:t.maxWidth:a.width=d&&c.drawTicks?f:0,u?a.height=d&&c.drawTicks?f:0:a.height=t.maxHeight,l.display&&d){var p=s.longestText(t.ctx,h.font,o,t.longestTextCache),g=s.numberOfLabelLines(o),x=.5*h.size,m=t.options.ticks.padding;if(u){t.longestLabelWidth=p;var v=s.toRadians(t.labelRotation),b=Math.cos(v),y=Math.sin(v),w=y*p+h.size*g+x*(g-1)+x;a.height=Math.min(t.maxHeight,a.height+w+m),t.ctx.font=h.font;var k=e(t.ctx,o[0],h.font),D=e(t.ctx,o[o.length-1],h.font);0!==t.labelRotation?(t.paddingLeft="bottom"===r.position?b*k+3:b*x+3,t.paddingRight="bottom"===r.position?b*x+3:b*D+3):(t.paddingLeft=k/2+3,t.paddingRight=D/2+3)}else l.mirror?p=0:p+=m+x,a.width=Math.min(t.maxWidth,a.width+p),t.paddingTop=h.size/2,t.paddingBottom=h.size/2}t.handleMargins(),t.width=a.width,t.height=a.height},handleMargins:function(){var t=this;t.margins&&(t.paddingLeft=Math.max(t.paddingLeft-t.margins.left,0),t.paddingTop=Math.max(t.paddingTop-t.margins.top,0),t.paddingRight=Math.max(t.paddingRight-t.margins.right,0),t.paddingBottom=Math.max(t.paddingBottom-t.margins.bottom,0))},isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(t){if(s.isNullOrUndef(t))return NaN;if("number"==typeof t&&!isFinite(t))return NaN;if(t)if(this.isHorizontal()){if(void 0!==t.x)return this.getRightValue(t.x)}else if(void 0!==t.y)return this.getRightValue(t.y);return t},getLabelForIndex:s.noop,getPixelForValue:s.noop,getValueForPixel:s.noop,getPixelForTick:function(t){var e=this,i=e.options.offset;if(e.isHorizontal()){var n=e.width-(e.paddingLeft+e.paddingRight),a=n/Math.max(e._ticks.length-(i?0:1),1),o=a*t+e.paddingLeft;i&&(o+=a/2);var r=e.left+Math.round(o);return r+=e.isFullWidth()?e.margins.left:0}var s=e.height-(e.paddingTop+e.paddingBottom);return e.top+t*(s/(e._ticks.length-1))},getPixelForDecimal:function(t){var e=this;if(e.isHorizontal()){var i=e.width-(e.paddingLeft+e.paddingRight),n=i*t+e.paddingLeft,a=e.left+Math.round(n);return a+=e.isFullWidth()?e.margins.left:0}return e.top+t*e.height},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var t=this,e=t.min,i=t.max;return t.beginAtZero?0:e<0&&i<0?i:e>0&&i>0?e:0},draw:function(t){var e=this,n=e.options;if(n.display){var r=e.ctx,l=o.global,c=n.ticks.minor,d=n.ticks.major||c,u=n.gridLines,h=0!==e.labelRotation,f=e.isHorizontal(),p=e.getTicks(),g=s.valueOrDefault(c.fontColor,l.defaultFontColor),x=i(c),m=s.valueOrDefault(d.fontColor,l.defaultFontColor),v=i(d),b=u.drawTicks?u.tickMarkLength:0,y=s.toRadians(e.labelRotation),w=[],k="right"===n.position?e.left:e.right-b,D="right"===n.position?e.left+b:e.right,M="bottom"===n.position?e.top:e.bottom-b,S="bottom"===n.position?e.top+b:e.bottom;s.each(p,function(i,o){if(!s.isNullOrUndef(i.label)){var r,d,g,x,m=i.label;o===e.zeroLineIndex&&n.offset===u.offsetGridLines?(r=u.zeroLineWidth,d=u.zeroLineColor,g=u.zeroLineBorderDash,x=u.zeroLineBorderDashOffset):(r=s.valueAtIndexOrDefault(u.lineWidth,o),d=s.valueAtIndexOrDefault(u.color,o),g=s.valueOrDefault(u.borderDash,l.borderDash),x=s.valueOrDefault(u.borderDashOffset,l.borderDashOffset));var v,I,P,T,_,A,O,C,z,L,N="middle",F="middle",R=c.padding;if(f){var W=b+R;"bottom"===n.position?(F=h?"middle":"top",
+N=h?"right":"center",L=e.top+W):(F=h?"middle":"bottom",N=h?"left":"center",L=e.bottom-W);var V=a(e,o,u.offsetGridLines&&p.length>1);V<e.left&&(d="rgba(0,0,0,0)"),V+=s.aliasPixel(r),z=e.getPixelForTick(o)+c.labelOffset,v=P=_=O=V,I=M,T=S,A=t.top,C=t.bottom}else{var H,B="left"===n.position;c.mirror?(N=B?"left":"right",H=R):(N=B?"right":"left",H=b+R),z=B?e.right-H:e.left+H;var E=a(e,o,u.offsetGridLines&&p.length>1);E<e.top&&(d="rgba(0,0,0,0)"),E+=s.aliasPixel(r),L=e.getPixelForTick(o)+c.labelOffset,v=k,P=D,_=t.left,O=t.right,I=T=A=C=E}w.push({tx1:v,ty1:I,tx2:P,ty2:T,x1:_,y1:A,x2:O,y2:C,labelX:z,labelY:L,glWidth:r,glColor:d,glBorderDash:g,glBorderDashOffset:x,rotation:-1*y,label:m,major:i.major,textBaseline:F,textAlign:N})}}),s.each(w,function(t){if(u.display&&(r.save(),r.lineWidth=t.glWidth,r.strokeStyle=t.glColor,r.setLineDash&&(r.setLineDash(t.glBorderDash),r.lineDashOffset=t.glBorderDashOffset),r.beginPath(),u.drawTicks&&(r.moveTo(t.tx1,t.ty1),r.lineTo(t.tx2,t.ty2)),u.drawOnChartArea&&(r.moveTo(t.x1,t.y1),r.lineTo(t.x2,t.y2)),r.stroke(),r.restore()),c.display){r.save(),r.translate(t.labelX,t.labelY),r.rotate(t.rotation),r.font=t.major?v.font:x.font,r.fillStyle=t.major?m:g,r.textBaseline=t.textBaseline,r.textAlign=t.textAlign;var e=t.label;if(s.isArray(e))for(var i=0,n=0;i<e.length;++i)r.fillText(""+e[i],0,n),n+=1.5*x.size;else r.fillText(e,0,0);r.restore()}})}}})}},{13:13,22:22,6:6,7:7}],12:[function(t,e,i){"use strict";var n=t(6),a=t(22);e.exports=function(t){t.scaleService={constructors:{},defaults:{},registerScaleType:function(t,e,i){this.constructors[t]=e,this.defaults[t]=a.clone(i)},getScaleConstructor:function(t){return this.constructors.hasOwnProperty(t)?this.constructors[t]:void 0},getScaleDefaults:function(t){return this.defaults.hasOwnProperty(t)?a.merge({},[n.scale,this.defaults[t]]):{}},updateScaleDefaults:function(t,e){var i=this;i.defaults.hasOwnProperty(t)&&(i.defaults[t]=a.extend(i.defaults[t],e))},addScalesToLayout:function(e){a.each(e.scales,function(i){i.fullWidth=i.options.fullWidth,i.position=i.options.position,i.weight=i.options.weight,t.layoutService.addBox(e,i)})}}}},{22:22,6:6}],13:[function(t,e,i){"use strict";var n=t(22);e.exports={generators:{linear:function(t,e){var i,a=[];if(t.stepSize&&t.stepSize>0)i=t.stepSize;else{var o=n.niceNum(e.max-e.min,!1);i=n.niceNum(o/(t.maxTicks-1),!0)}var r=Math.floor(e.min/i)*i,s=Math.ceil(e.max/i)*i;t.min&&t.max&&t.stepSize&&n.almostWhole((t.max-t.min)/t.stepSize,i/1e3)&&(r=t.min,s=t.max);var l=(s-r)/i;l=n.almostEquals(l,Math.round(l),i/1e3)?Math.round(l):Math.ceil(l);var c=1;i<1&&(c=Math.pow(10,i.toString().length-2),r=Math.round(r*c)/c,s=Math.round(s*c)/c),a.push(void 0!==t.min?t.min:r);for(var d=1;d<l;++d)a.push(Math.round((r+d*i)*c)/c);return a.push(void 0!==t.max?t.max:s),a}},formatters:{values:function(t){return n.isArray(t)?t:""+t},linear:function(t,e,i){var a=i.length>3?i[2]-i[1]:i[1]-i[0];Math.abs(a)>1&&t!==Math.floor(t)&&(a=t-Math.floor(t));var o=n.log10(Math.abs(a)),r="";if(0!==t){var s=-1*Math.floor(o);s=Math.max(Math.min(s,20),0),r=t.toFixed(s)}else r="0";return r}}}},{22:22}],14:[function(t,e,i){"use strict";var n=t(6),a=t(7),o=t(22),r=n.global;n._set("global",{elements:{line:{tension:.4,backgroundColor:r.defaultColor,borderWidth:3,borderColor:r.defaultColor,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",capBezierPoints:!0}}}),e.exports=a.extend({draw:function(){var t,e,i,n,a=this,s=a._view,l=a._chart.ctx,c=s.spanGaps,d=a._children.slice(),u=r.elements.line,h=-1;for(a._loop&&d.length&&d.push(d[0]),l.save(),l.lineCap=s.borderCapStyle||u.borderCapStyle,l.setLineDash&&l.setLineDash(s.borderDash||u.borderDash),l.lineDashOffset=s.borderDashOffset||u.borderDashOffset,l.lineJoin=s.borderJoinStyle||u.borderJoinStyle,l.lineWidth=s.borderWidth||u.borderWidth,l.strokeStyle=s.borderColor||r.defaultColor,l.beginPath(),h=-1,t=0;t<d.length;++t)e=d[t],i=o.previousItem(d,t),n=e._view,0===t?n.skip||(l.moveTo(n.x,n.y),h=t):(i=h===-1?i:d[h],n.skip||(h!==t-1&&!c||h===-1?l.moveTo(n.x,n.y):o.canvas.lineTo(l,i._view,e._view),h=t));l.stroke(),l.restore()}})},{22:22,6:6,7:7}],15:[function(t,e,i){"use strict";var n=t(6),a=t(7),o=t(22),r=n.global.defaultColor;n._set("global",{elements:{point:{radius:3,pointStyle:"circle",backgroundColor:r,borderColor:r,borderWidth:1}}}),e.exports=a.extend({draw:function(t){var e=this._view,i=(this._model,this._chart.ctx),a=e.pointStyle,s=e.radius,l=e.x,c=e.y;o.color;e.skip||(i.strokeStyle=e.borderColor||r,i.lineWidth=o.valueOrDefault(e.borderWidth,n.global.elements.point.borderWidth),i.fillStyle=e.backgroundColor||r,o.canvas.drawPoint(i,a,s,l,c))}})},{22:22,6:6,7:7}],16:[function(t,e,i){"use strict";var n=t(6),a=t(7);n._set("global",{elements:{rectangle:{backgroundColor:n.global.defaultColor,borderColor:n.global.defaultColor,borderSkipped:"bottom",borderWidth:0}}}),e.exports=a.extend({draw:function(){function t(t){return m[(b+t)%4]}var e,i,n,a,o,r,s,l=this._chart.ctx,c=this._view,d=c.borderWidth;if(c.horizontal?(e=c.base,i=c.x,n=c.y-c.height/2,a=c.y+c.height/2,o=i>e?1:-1,r=1,s=c.borderSkipped||"left"):(e=c.x-c.width/2,i=c.x+c.width/2,n=c.y,a=c.base,o=1,r=a>n?1:-1,s=c.borderSkipped||"bottom"),d){var u=Math.min(Math.abs(e-i),Math.abs(n-a));d=d>u?u:d;var h=d/2,f=e+("left"!==s?h*o:0),p=i+("right"!==s?-h*o:0),g=n+("top"!==s?h*r:0),x=a+("bottom"!==s?-h*r:0);f!==p&&(n=g,a=x),g!==x&&(e=f,i=p)}l.beginPath(),l.fillStyle=c.backgroundColor,l.strokeStyle=c.borderColor,l.lineWidth=d;var m=[[e,a],[e,n],[i,n],[i,a]],v=["bottom","left","top","right"],b=v.indexOf(s,0);b===-1&&(b=0);var y=t(0);l.moveTo(y[0],y[1]);for(var w=1;w<4;w++)y=t(w),l.lineTo(y[0],y[1]);l.fill(),d&&l.stroke()},height:function(){var t=this._view;return t.base-t.y}})},{6:6,7:7}],17:[function(t,e,i){"use strict";e.exports={},e.exports.Line=t(14),e.exports.Point=t(15),e.exports.Rectangle=t(16)},{14:14,15:15,16:16}],18:[function(t,e,i){"use strict";var n=t(19),i=e.exports={clear:function(t){t.ctx.clearRect(0,0,t.width,t.height)},drawPoint:function(t,e,i,n,a){isNaN(i)||i<=0||(t.beginPath(),t.arc(n,a,i,0,2*Math.PI),t.closePath(),t.fill(),t.stroke())},clipArea:function(t,e){t.save(),t.beginPath(),t.rect(e.left,e.top,e.right-e.left,e.bottom-e.top),t.clip()},unclipArea:function(t){t.restore()},lineTo:function(t,e,i,n){return i.steppedLine?("after"===i.steppedLine&&!n||"after"!==i.steppedLine&&n?t.lineTo(e.x,i.y):t.lineTo(i.x,e.y),void t.lineTo(i.x,i.y)):i.tension?void t.bezierCurveTo(n?e.controlPointPreviousX:e.controlPointNextX,n?e.controlPointPreviousY:e.controlPointNextY,n?i.controlPointNextX:i.controlPointPreviousX,n?i.controlPointNextY:i.controlPointPreviousY,i.x,i.y):void t.lineTo(i.x,i.y)}};n.clear=i.clear},{19:19}],19:[function(t,e,i){"use strict";var n={noop:function(){},uid:function(){var t=0;return function(){return t++}}(),isNullOrUndef:function(t){return null===t||"undefined"==typeof t},isArray:Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)},isObject:function(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)},valueOrDefault:function(t,e){return"undefined"==typeof t?e:t},valueAtIndexOrDefault:function(t,e,i){return n.valueOrDefault(n.isArray(t)?t[e]:t,i)},callback:function(t,e,i){if(t&&"function"==typeof t.call)return t.apply(i,e)},each:function(t,e,i,a){var o,r,s;if(n.isArray(t))if(r=t.length,a)for(o=r-1;o>=0;o--)e.call(i,t[o],o);else for(o=0;o<r;o++)e.call(i,t[o],o);else if(n.isObject(t))for(s=Object.keys(t),r=s.length,o=0;o<r;o++)e.call(i,t[s[o]],s[o])},clone:function(t){if(n.isArray(t))return t.map(n.clone);if(n.isObject(t)){for(var e={},i=Object.keys(t),a=i.length,o=0;o<a;++o)e[i[o]]=n.clone(t[i[o]]);return e}return t},_merger:function(t,e,i,a){var o=e[t],r=i[t];n.isObject(o)&&n.isObject(r)?n.merge(o,r,a):e[t]=n.clone(r)},_mergerIf:function(t,e,i){var a=e[t],o=i[t];n.isObject(a)&&n.isObject(o)?n.mergeIf(a,o):e.hasOwnProperty(t)||(e[t]=n.clone(o))},merge:function(t,e,i){var a,o,r,s,l,c=n.isArray(e)?e:[e],d=c.length;if(!n.isObject(t))return t;for(i=i||{},a=i.merger||n._merger,o=0;o<d;++o)if(e=c[o],n.isObject(e))for(r=Object.keys(e),l=0,s=r.length;l<s;++l)a(r[l],t,e,i);return t},mergeIf:function(t,e){return n.merge(t,e,{merger:n._mergerIf})},extend:function(t){for(var e=function(e,i){t[i]=e},i=1,a=arguments.length;i<a;++i)n.each(arguments[i],e);return t},inherits:function(t){var e=this,i=t&&t.hasOwnProperty("constructor")?t.constructor:function(){return e.apply(this,arguments)},a=function(){this.constructor=i};return a.prototype=e.prototype,i.prototype=new a,i.extend=n.inherits,t&&n.extend(i.prototype,t),i.__super__=e.prototype,i}};e.exports=n,n.callCallback=n.callback,n.indexOf=function(t,e,i){return Array.prototype.indexOf.call(t,e,i)},n.getValueOrDefault=n.valueOrDefault,n.getValueAtIndexOrDefault=n.valueAtIndexOrDefault},{}],20:[function(t,e,i){"use strict";t(19);e.exports={}},{19:19}],21:[function(t,e,i){"use strict";var n=t(19);e.exports={toLineHeight:function(t,e){var i=(""+t).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/);if(!i||"normal"===i[1])return 1.2*e;switch(t=+i[2],i[3]){case"px":return t;case"%":t/=100}return e*t},toPadding:function(t){var e,i,a,o;return n.isObject(t)?(e=+t.top||0,i=+t.right||0,a=+t.bottom||0,o=+t.left||0):e=i=a=o=+t||0,{top:e,right:i,bottom:a,left:o,height:e+a,width:o+i}}}},{19:19}],22:[function(t,e,i){"use strict";e.exports=t(19),e.exports.easing=t(20),e.exports.canvas=t(18),e.exports.options=t(21)},{18:18,19:19,20:20,21:21}],23:[function(t,e,i){"use strict";function n(t,e){var i=h.getStyle(t,e),n=i&&i.match(/^(\d+)(\.\d+)?px$/);return n?Number(n[1]):void 0}function a(t,e){var i=t.style,a=t.getAttribute("height"),o=t.getAttribute("width");if(t[f]={initial:{height:a,width:o,style:{display:i.display,height:i.height,width:i.width}}},i.display=i.display||"block",null===o||""===o){var r=n(t,"width");void 0!==r&&(t.width=r)}if(null===a||""===a)if(""===t.style.height)t.height=t.width/(e.options.aspectRatio||2);else{var s=n(t,"height");void 0!==r&&(t.height=s)}return t}function o(t,e,i){t.addEventListener(e,i,b)}function r(t,e,i,n,a){return{type:t,chart:e,"native":a||null,x:void 0!==i?i:null,y:void 0!==n?n:null}}function s(t,e){var i=!1,n=[];return function(){n=Array.prototype.slice.call(arguments),e=e||this,i||(i=!0,h.requestAnimFrame.call(window,function(){i=!1,t.apply(e,n)}))}}function l(t){var e=document.createElement("div"),i=p+"size-monitor",n=1e6,a="position:absolute;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1;";e.style.cssText=a,e.className=i,e.innerHTML='<div class="'+i+'-expand" style="'+a+'"><div style="position:absolute;width:'+n+"px;height:"+n+'px;left:0;top:0"></div></div><div class="'+i+'-shrink" style="'+a+'"><div style="position:absolute;width:200%;height:200%;left:0; top:0"></div></div>';var r=e.childNodes[0],s=e.childNodes[1];e._reset=function(){r.scrollLeft=n,r.scrollTop=n,s.scrollLeft=n,s.scrollTop=n};var l=function(){e._reset(),t()};return o(r,"scroll",l.bind(r,"expand")),o(s,"scroll",l.bind(s,"shrink")),e}function c(t,e){var i=t[f]||(t[f]={}),n=i.renderProxy=function(t){t.animationName===x&&e()};h.each(m,function(e){o(t,e,n)}),i.reflow=!!t.offsetParent,t.classList.add(g)}function d(t,e,i){var n=t[f]||(t[f]={}),a=n.resizer=l(s(function(){if(n.resizer)return e(r("resize",i))}));c(t,function(){if(n.resizer){var e=t.parentNode;e&&e!==a.parentNode&&e.insertBefore(a,e.firstChild),a._reset()}})}function u(t,e){var i=t._style||document.createElement("style");t._style||(t._style=i,e="/* Chart.js */\n"+e,i.setAttribute("type","text/css"),document.getElementsByTagName("head")[0].appendChild(i)),i.appendChild(document.createTextNode(e))}var h=t(22),f="$chartjs",p="chartjs-",g=p+"render-monitor",x=p+"render-animation",m=["animationstart","webkitAnimationStart"],v=function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("e",null,e)}catch(i){}return t}(),b=!!v&&{passive:!0};e.exports={initialize:function(){var t="from{opacity:0.99}to{opacity:1}";u(this,"@-webkit-keyframes "+x+"{"+t+"}@keyframes "+x+"{"+t+"}."+g+"{-webkit-animation:"+x+" 0.001s;animation:"+x+" 0.001s;}")},acquireContext:function(t,e){"string"==typeof t?t=document.getElementById(t):t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas);var i=t&&t.getContext&&t.getContext("2d");return i&&i.canvas===t?(a(t,e),i):null},addEventListener:function(t,e,i){var n=t.canvas;if("resize"===e)return void d(n,i,t)}}},{22:22}],24:[function(t,e,i){"use strict";var n=(t(22),t(23));e.exports=n},{22:22,23:23}],25:[function(t,e,i){"use strict";e.exports=function(t){var e={position:"bottom"},i=t.Scale.extend({getLabels:function(){var t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels},determineDataLimits:function(){var t=this,e=t.getLabels();t.minIndex=0,t.maxIndex=e.length-1;var i;void 0!==t.options.ticks.min&&(i=e.indexOf(t.options.ticks.min),t.minIndex=i!==-1?i:t.minIndex),void 0!==t.options.ticks.max&&(i=e.indexOf(t.options.ticks.max),t.maxIndex=i!==-1?i:t.maxIndex),t.min=e[t.minIndex],t.max=e[t.maxIndex]},buildTicks:function(){var t=this,e=t.getLabels();t.ticks=0===t.minIndex&&t.maxIndex===e.length-1?e:e.slice(t.minIndex,t.maxIndex+1)},getPixelForValue:function(t,e){var i,n=this,a=n.options.offset,o=Math.max(n.maxIndex+1-n.minIndex-(a?0:1),1);if(void 0!==t&&null!==t&&(i=n.isHorizontal()?t.x:t.y),void 0!==i||void 0!==t&&isNaN(e)){var r=n.getLabels();t=i||t;var s=r.indexOf(t);e=s!==-1?s:e}if(n.isHorizontal()){var l=n.width/o,c=l*(e-n.minIndex);return a&&(c+=l/2),n.left+Math.round(c)}var d=n.height/o,u=d*(e-n.minIndex);return a&&(u+=d/2),n.top+Math.round(u)},getPixelForTick:function(t){return this.getPixelForValue(this.ticks[t],t+this.minIndex,null)},getValueForPixel:function(t){var e,i=this,n=i.options.offset,a=Math.max(i._ticks.length-(n?0:1),1),o=i.isHorizontal(),r=(o?i.width:i.height)/a;return t-=o?i.left:i.top,n&&(t-=r/2),e=t<=0?0:Math.round(t/r),e+i.minIndex},getBasePixel:function(){return this.bottom}});t.scaleService.registerScaleType("category",i,e)}},{}],26:[function(t,e,i){"use strict";var n=t(6),a=t(22),o=t(13);e.exports=function(t){var e={position:"left",ticks:{callback:o.formatters.linear}},i=t.LinearScaleBase.extend({determineDataLimits:function(){function t(t){return r?t.xAxisID===e.id:t.yAxisID===e.id}var e=this,i=(e.options,e.chart),n=i.data,o=n.datasets,r=e.isHorizontal(),s=0,l=1;e.min=null,e.max=null,a.each(o,function(n,o){var r=i.getDatasetMeta(o);i.isDatasetVisible(o)&&t(r)&&a.each(n.data,function(t,i){var n=+e.getRightValue(t);isNaN(n)||r.data[i].hidden||(null===e.min?e.min=n:n<e.min&&(e.min=n),null===e.max?e.max=n:n>e.max&&(e.max=n))})}),e.min=isFinite(e.min)&&!isNaN(e.min)?e.min:s,e.max=isFinite(e.max)&&!isNaN(e.max)?e.max:l,this.handleTickRangeOptions()},getTickLimit:function(){var t,e=this,i=e.options.ticks;if(e.isHorizontal())t=Math.min(i.maxTicksLimit?i.maxTicksLimit:11,Math.ceil(e.width/50));else{var o=a.valueOrDefault(i.fontSize,n.global.defaultFontSize);t=Math.min(i.maxTicksLimit?i.maxTicksLimit:11,Math.ceil(e.height/(2*o)))}return t},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getPixelForValue:function(t){var e,i=this,n=i.start,a=+i.getRightValue(t),o=i.end-n;return e=i.isHorizontal()?i.left+i.width/o*(a-n):i.bottom-i.height/o*(a-n)},getValueForPixel:function(t){var e=this,i=e.isHorizontal(),n=i?e.width:e.height,a=(i?t-e.left:e.bottom-t)/n;return e.start+(e.end-e.start)*a},getPixelForTick:function(t){return this.getPixelForValue(this.ticksAsNumbers[t])}});t.scaleService.registerScaleType("linear",i,e)}},{13:13,22:22,6:6}],27:[function(t,e,i){"use strict";var n=t(22),a=t(13);e.exports=function(t){var e=n.noop;t.LinearScaleBase=t.Scale.extend({getRightValue:function(e){return"string"==typeof e?+e:t.Scale.prototype.getRightValue.call(this,e)},handleTickRangeOptions:function(){var t=this,e=t.options,i=e.ticks;if(i.beginAtZero){var a=n.sign(t.min),o=n.sign(t.max);a<0&&o<0?t.max=0:a>0&&o>0&&(t.min=0)}var r=void 0!==i.min||void 0!==i.suggestedMin,s=void 0!==i.max||void 0!==i.suggestedMax;void 0!==i.min?t.min=i.min:void 0!==i.suggestedMin&&(null===t.min?t.min=i.suggestedMin:t.min=Math.min(t.min,i.suggestedMin)),void 0!==i.max?t.max=i.max:void 0!==i.suggestedMax&&(null===t.max?t.max=i.suggestedMax:t.max=Math.max(t.max,i.suggestedMax)),r!==s&&t.min>=t.max&&(r?t.max=t.min+1:t.min=t.max-1),t.min===t.max&&(t.max++,i.beginAtZero||t.min--)},getTickLimit:e,handleDirectionalChanges:e,buildTicks:function(){var t=this,e=t.options,i=e.ticks,o=t.getTickLimit();o=Math.max(2,o);var r={maxTicks:o,min:i.min,max:i.max,stepSize:n.valueOrDefault(i.fixedStepSize,i.stepSize)},s=t.ticks=a.generators.linear(r,t);t.handleDirectionalChanges(),t.max=n.max(s),t.min=n.min(s),i.reverse?(s.reverse(),t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max)},convertTicksToLabels:function(){var e=this;e.ticksAsNumbers=e.ticks.slice(),e.zeroLineIndex=e.ticks.indexOf(0),t.Scale.prototype.convertTicksToLabels.call(e)}})}},{13:13,22:22}]},{},[1])(1)}); \ No newline at end of file