(function(){"use strict";var t=this.Chart,i=t.helpers;t.HorizontalRectangle=t.Element.extend({draw:function(){var t=this.ctx,i=this.height/2,e=this.y-i,s=this.y+i,a=this.left-(this.left-this.x),l=this.strokeWidth/2;this.showStroke&&(e+=l,s-=l,a+=l),t.beginPath(),t.fillStyle=this.fillColor,t.strokeStyle=this.strokeColor,t.lineWidth=this.strokeWidth,t.moveTo(this.left,e),t.lineTo(a,e),t.lineTo(a,s),t.lineTo(this.left,s),t.fill(),this.showStroke&&t.stroke()},inRange:function(t,i){return t>=this.left&&t<=this.x&&i>=this.y-this.height/2&&i<=this.y+this.height/2}}),t.Type.extend({name:"HorizontalBar",defaults:{scaleBeginAtZero:!0,scaleShowGridLines:!0,scaleGridLineColor:"rgba(0,0,0,.05)",scaleGridLineWidth:1,scaleShowHorizontalLines:!0,scaleShowVerticalLines:!0,barShowStroke:!0,barStrokeWidth:2,barValueSpacing:5,barDatasetSpacing:1,legendTemplate:''},initialize:function(e){var s=this.options;this.ScaleClass=t.Scale.extend({offsetGridLines:!0,calculateBarX:function(t,i,e){var a=this.calculateBaseWidth(),l=this.calculateX(e)-a/2,h=this.calculateBarWidth(t);return l+h*i+i*s.barDatasetSpacing+h/2},calculateBaseWidth:function(){return this.calculateX(1)-this.calculateX(0)-2*s.barValueSpacing},calculateBarWidth:function(t){return(this.calculateBaseWidth()-(t-1)*s.barDatasetSpacing)/t},calculateBaseHeight:function(){return(this.endPoint-this.startPoint)/this.yLabels.length-2*s.barValueSpacing},calculateBarHeight:function(t){return(this.calculateBaseHeight()-t*s.barDatasetSpacing)/t},calculateXInvertXY:function(t){var i=(this.width-Math.round(this.xScalePaddingLeft)-this.xScalePaddingRight)/(this.max-this.min);return Math.round(this.xScalePaddingLeft)+i*(t-this.min)},calculateYInvertXY:function(t){return t*((this.startPoint-this.endPoint)/this.yLabels.length)},calculateBarY:function(t,i,e){var a=this.calculateBaseHeight(),l=this.endPoint+this.calculateYInvertXY(e)-a/2-5,h=this.calculateBarHeight(t);return t>1&&(l=l+h*(i-1)-i*s.barDatasetSpacing+h/2),l},buildCalculatedLabels:function(){this.calculatedLabels=[];for(var t=i.getDecimalPlaces(this.stepValue),e=0;e<=this.steps;e++)this.calculatedLabels.push(i.template(this.templateString,{value:(this.min+e*this.stepValue).toFixed(t)}))},buildYLabels:function(){this.buildYLabelCounter=void 0===this.buildYLabelCounter?0:this.buildYLabelCounter+1,this.buildCalculatedLabels(),0===this.buildYLabelCounter&&(this.yLabels=this.xLabels),this.xLabels=this.calculatedLabels,this.yLabelWidth=this.display&&this.showLabels?i.longestText(this.ctx,this.font,this.yLabels)+10:0},calculateX:function(t){this.xLabelRotation;var i=(this.width-(this.xScalePaddingLeft+this.xScalePaddingRight))/(this.steps-(this.offsetGridLines?0:1)),e=i*t+this.xScalePaddingLeft;return this.offsetGridLines&&(e+=i/2),Math.round(e)},draw:function(){var t=this.ctx,e=(this.endPoint-this.startPoint)/this.yLabels.length,s=Math.round(this.xScalePaddingLeft);this.display&&(t.fillStyle=this.textColor,t.font=this.font,i.each(this.yLabels,function(a,l){var h=this.endPoint-e*l,o=Math.round(h),n=this.showHorizontalLines;h-=e/2,t.textAlign="right",t.textBaseline="middle",this.showLabels&&t.fillText(a,s-10,h),0!==l||n||(n=!0),n&&t.beginPath(),l>0?(t.lineWidth=this.gridLineWidth,t.strokeStyle=this.gridLineColor):(t.lineWidth=this.lineWidth,t.strokeStyle=this.lineColor),o+=i.aliasPixel(t.lineWidth),n&&(t.moveTo(s,o),t.lineTo(this.width,o),t.stroke(),t.closePath()),t.lineWidth=this.lineWidth,t.strokeStyle=this.lineColor,t.beginPath(),t.moveTo(s-5,o),t.lineTo(s,o),t.stroke(),t.closePath()},this),i.each(this.xLabels,function(e,s){var a=this.calculateX(1)-this.calculateX(0),l=this.calculateX(s)+i.aliasPixel(this.lineWidth)-a/2,h=this.calculateX(s-(this.offsetGridLines?.5:0))+i.aliasPixel(this.lineWidth),o=this.xLabelRotation>0;t.beginPath(),s>0?(t.lineWidth=this.gridLineWidth,t.strokeStyle=this.gridLineColor):(t.lineWidth=this.lineWidth,t.strokeStyle=this.lineColor),t.moveTo(h,this.endPoint),t.lineTo(h,this.startPoint-3),t.stroke(),t.closePath(),t.lineWidth=this.lineWidth,t.strokeStyle=this.lineColor,t.beginPath(),t.moveTo(h,this.endPoint),t.lineTo(h,this.endPoint+5),t.stroke(),t.closePath(),t.save(),t.translate(l,o?this.endPoint+12:this.endPoint+8),t.rotate(-1*i.radians(this.xLabelRotation)),t.font=this.font,t.textAlign=o?"right":"center",t.textBaseline=o?"middle":"top",t.fillText(e,0,0),t.restore()},this))}}),this.datasets=[],this.options.showTooltips&&i.bindEvents(this,this.options.tooltipEvents,function(t){var e="mouseout"!==t.type?this.getBarsAtEvent(t):[];this.eachBars(function(t){t.restore(["fillColor","strokeColor"])}),i.each(e,function(t){t.fillColor=t.highlightFill,t.strokeColor=t.highlightStroke}),this.showTooltip(e)}),this.BarClass=t.HorizontalRectangle.extend({strokeWidth:this.options.barStrokeWidth,showStroke:this.options.barShowStroke,ctx:this.chart.ctx}),i.each(e.datasets,function(t,s){var a={label:t.label||null,fillColor:t.fillColor,strokeColor:t.strokeColor,bars:[]};this.datasets.push(a),i.each(t.data,function(i,s){a.bars.push(new this.BarClass({value:i,label:e.labels[s],datasetLabel:t.label,anchor:e.anchors?e.anchors[s]:null,strokeColor:"object"==typeof t.strokeColor?t.strokeColor[s]:t.strokeColor,fillColor:"object"==typeof t.fillColor?t.fillColor[s]:t.fillColor,highlightFill:t.highlightFill?"object"==typeof t.highlightFill?t.highlightFill[s]:t.highlightFill:"object"==typeof t.fillColor?t.fillColor[s]:t.fillColor,highlightStroke:t.highlightStroke?"object"==typeof t.highlightStroke?t.highlightStroke[s]:t.highlightStroke:"object"==typeof t.strokeColor?t.strokeColor[s]:t.strokeColor}))},this)},this),this.buildScale(e.labels),this.BarClass.prototype.left=Math.round(this.scale.xScalePaddingLeft),this.eachBars(function(t,e,s){i.extend(t,{x:Math.round(this.scale.xScalePaddingLeft),y:this.scale.calculateBarY(this.datasets.length,s,e),height:this.scale.calculateBarHeight(this.datasets.length)}),t.save()},this),this.render()},update:function(){this.scale.update(),i.each(this.activeElements,function(t){t.restore(["fillColor","strokeColor"])}),this.eachBars(function(t){t.save()}),this.render()},eachBars:function(t){i.each(this.datasets,function(e,s){i.each(e.bars,t,this,s)},this)},getBarsAtEvent:function(t){for(var e,s=[],a=i.getRelativePosition(t),l=function(t){s.push(t.bars[e])},h=0;h