2016-04-25 01:24:53 +02:00
/ * !
2016-02-12 05:29:26 +01:00
* Chart . js
* http : //chartjs.org/
2016-04-17 00:39:51 +02:00
* Version : 2.0 . 2
2016-02-12 05:29:26 +01:00
*
2016-04-25 01:24:53 +02:00
* Copyright 2016 Nick Downie
2016-02-12 05:29:26 +01:00
* Released under the MIT license
* https : //github.com/nnnick/Chart.js/blob/master/LICENSE.md
* /
2016-04-25 01:24:53 +02:00
! function t ( e , i , a ) { function s ( n , r ) { if ( ! i [ n ] ) { if ( ! e [ n ] ) { var h = "function" == typeof require && require ; if ( ! r && h ) return h ( n , ! 0 ) ; if ( o ) return o ( n , ! 0 ) ; var l = new Error ( "Cannot find module '" + n + "'" ) ; throw l . code = "MODULE_NOT_FOUND" , l } var c = i [ n ] = { exports : { } } ; e [ n ] [ 0 ] . call ( c . exports , function ( t ) { var i = e [ n ] [ 1 ] [ t ] ; return s ( i ? i : t ) } , c , c . exports , t , e , i , a ) } return i [ n ] . exports } for ( var o = "function" == typeof require && require , n = 0 ; n < a . length ; n ++ ) s ( a [ n ] ) ; return s } ( { 1 : [ function ( t , e , i ) { } , { } ] , 2 : [ function ( t , e , i ) { var a = t ( "color-convert" ) , s = t ( "color-string" ) , o = function ( t ) { if ( t instanceof o ) return t ; if ( ! ( this instanceof o ) ) return new o ( t ) ; if ( this . values = { rgb : [ 0 , 0 , 0 ] , hsl : [ 0 , 0 , 0 ] , hsv : [ 0 , 0 , 0 ] , hwb : [ 0 , 0 , 0 ] , cmyk : [ 0 , 0 , 0 , 0 ] , alpha : 1 } , "string" == typeof t ) { var e = s . getRgba ( t ) ; if ( e ) this . setValues ( "rgb" , e ) ; else if ( e = s . getHsla ( t ) ) this . setValues ( "hsl" , e ) ; else { if ( ! ( e = s . getHwb ( t ) ) ) throw new Error ( 'Unable to parse color from string "' + t + '"' ) ; this . setValues ( "hwb" , e ) } } else if ( "object" == typeof t ) { var e = t ; if ( void 0 !== e . r || void 0 !== e . red ) this . setValues ( "rgb" , e ) ; else if ( void 0 !== e . l || void 0 !== e . lightness ) this . setValues ( "hsl" , e ) ; else if ( void 0 !== e . v || void 0 !== e . value ) this . setValues ( "hsv" , e ) ; else if ( void 0 !== e . w || void 0 !== e . whiteness ) this . setValues ( "hwb" , e ) ; else { if ( void 0 === e . c && void 0 === e . cyan ) throw new Error ( "Unable to parse color from object " + JSON . stringify ( t ) ) ; this . setValues ( "cmyk" , e ) } } } ; o . prototype = { rgb : function ( t ) { return this . setSpace ( "rgb" , arguments ) } , hsl : function ( t ) { return this . setSpace ( "hsl" , arguments ) } , hsv : function ( t ) { return this . setSpace ( "hsv" , arguments ) } , hwb : function ( t ) { return this . setSpace ( "hwb" , arguments ) } , cmyk : function ( t ) { return this . setSpace ( "cmyk" , arguments ) } , rgbArray : function ( ) { return this . values . rgb } , hslArray : function ( ) { return this . values . hsl } , hsvArray : function ( ) { return this . values . hsv } , hwbArray : function ( ) { return 1 !== this . values . alpha ? this . values . hwb . concat ( [ this . values . alpha ] ) : this . values . hwb } , cmykArray : function ( ) { return this . values . cmyk } , rgbaArray : function ( ) { var t = this . values . rgb ; return t . concat ( [ this . values . alpha ] ) } , hslaArray : function ( ) { var t = this . values . hsl ; return t . concat ( [ this . values . alpha ] ) } , alpha : function ( t ) { return void 0 === t ? this . values . alpha : ( this . setValues ( "alpha" , t ) , this ) } , red : function ( t ) { return this . setChannel ( "rgb" , 0 , t ) } , green : function ( t ) { return this . setChannel ( "rgb" , 1 , t ) } , blue : function ( t ) { return this . setChannel ( "rgb" , 2 , t ) } , hue : function ( t ) { return this . setChannel ( "hsl" , 0 , t ) } , saturation : function ( t ) { return this . setChannel ( "hsl" , 1 , t ) } , lightness : function ( t ) { return this . setChannel ( "hsl" , 2 , t ) } , saturationv : function ( t ) { return this . setChannel ( "hsv" , 1 , t ) } , whiteness : function ( t ) { return this . setChannel ( "hwb" , 1 , t ) } , blackness : function ( t ) { return this . setChannel ( "hwb" , 2 , t ) } , value : function ( t ) { return this . setChannel ( "hsv" , 2 , t ) } , cyan : function ( t ) { return this . setChannel ( "cmyk" , 0 , t ) } , magenta : function ( t ) { return this . setChannel ( "cmyk" , 1 , t ) } , yellow : function ( t ) { return this . setChannel ( "cmyk" , 2 , t ) } , black : function ( t ) { return this . setChannel ( "cmyk" , 3 , t ) } , hexString : function ( ) { return s . hexString ( this . values . rgb ) } , rgbString : function ( ) { return s . rgbString ( this . values . rgb , this . values . alpha ) } , rgbaString : function ( ) { return s . rgbaString ( this . values . rgb , this . values . alpha ) } , percentString : function ( ) { return s . percentString ( this . values . rgb , this . values . alpha ) } , hslString : function ( ) { return s . hslString ( this . values . hsl , this . values . alpha ) } , hslaString : function ( ) { return s . hslaString ( this . values . hsl , this . values . alpha ) } , hwbString : function ( ) { return s . hwbString ( this . values . hwb , this . values . alpha ) } , keyword : function ( ) { return s . keyword ( this . values . rgb , this . values . alpha ) } , rgbNumber : function ( ) { return this . values . rgb [ 0 ] << 16 | this . values . rgb [ 1 ] << 8 | this . values . rgb [ 2 ] } , luminosity : function ( ) { for ( var t = this . values . rgb , e = [ ] , i = 0 ; i < t . length ; i ++ ) { var a = t [ i ] / 255 ; e [ i ] = . 03928 >= a ? a / 12.92 : Math . pow ( ( a + . 055 ) / 1.055 , 2.4 ) } return . 2126 * e [ 0 ] + . 7152 * e [ 1 ] + . 0722 * e [ 2 ] } , contrast : function ( t ) { var e = this . luminosity ( ) , i = t . luminosity ( ) ; return e > i ? ( e + . 05 ) / ( i + . 05 ) : ( i + . 05 ) / ( e + . 05 ) } , level : function ( t ) { var e = this . contrast ( t ) ; return e >= 7.1 ? "AAA" : e >= 4.5 ? "AA" : "" } , dark : function ( ) { var t = this . values . rgb , e = ( 299 * t [ 0 ] + 587 * t [ 1 ] + 114 * t [ 2 ] ) / 1e3 ; return 128 > e } , light : func
t . _model . borderColor = t . custom && t . custom . hoverBorderColor ? t . custom . hoverBorderColor : e . getValueAtIndexOrDefault ( i . hoverBorderColor , a , e . color ( t . _model . borderColor ) . saturate ( . 5 ) . darken ( . 1 ) . rgbString ( ) ) , t . _model . borderWidth = t . custom && t . custom . hoverBorderWidth ? t . custom . hoverBorderWidth : e . getValueAtIndexOrDefault ( i . hoverBorderWidth , a , t . _model . borderWidth ) } , removeHoverStyle : function ( t ) { var i = ( this . chart . data . datasets [ t . _datasetIndex ] , t . _index ) ; t . _model . backgroundColor = t . custom && t . custom . backgroundColor ? t . custom . backgroundColor : e . getValueAtIndexOrDefault ( this . getDataset ( ) . backgroundColor , i , this . chart . options . elements . rectangle . backgroundColor ) , t . _model . borderColor = t . custom && t . custom . borderColor ? t . custom . borderColor : e . getValueAtIndexOrDefault ( this . getDataset ( ) . borderColor , i , this . chart . options . elements . rectangle . borderColor ) , t . _model . borderWidth = t . custom && t . custom . borderWidth ? t . custom . borderWidth : e . getValueAtIndexOrDefault ( this . getDataset ( ) . borderWidth , i , this . chart . options . elements . rectangle . borderWidth ) } } ) } } , { } ] , 16 : [ function ( t , e , i ) { "use strict" ; e . exports = function ( t ) { var e = t . helpers ; t . defaults . bubble = { hover : { mode : "single" } , scales : { xAxes : [ { type : "linear" , position : "bottom" , id : "x-axis-0" } ] , yAxes : [ { type : "linear" , position : "left" , id : "y-axis-0" } ] } , tooltips : { callbacks : { title : function ( t , e ) { return "" } , label : function ( t , e ) { var i = e . datasets [ t . datasetIndex ] . label || "" , a = e . datasets [ t . datasetIndex ] . data [ t . index ] ; return i + ": (" + a . x + ", " + a . y + ", " + a . r + ")" } } } } , t . controllers . bubble = t . DatasetController . extend ( { addElements : function ( ) { this . getDataset ( ) . metaData = this . getDataset ( ) . metaData || [ ] , e . each ( this . getDataset ( ) . data , function ( e , i ) { this . getDataset ( ) . metaData [ i ] = this . getDataset ( ) . metaData [ i ] || new t . elements . Point ( { _chart : this . chart . chart , _datasetIndex : this . index , _index : i } ) } , this ) } , addElementAndReset : function ( e ) { this . getDataset ( ) . metaData = this . getDataset ( ) . metaData || [ ] ; var i = new t . elements . Point ( { _chart : this . chart . chart , _datasetIndex : this . index , _index : e } ) ; this . updateElement ( i , e , ! 0 ) , this . getDataset ( ) . metaData . splice ( e , 0 , i ) } , update : function ( t ) { var i , a = this . getDataset ( ) . metaData , s = this . getScaleForId ( this . getDataset ( ) . yAxisID ) ; this . getScaleForId ( this . getDataset ( ) . xAxisID ) ; i = s . min < 0 && s . max < 0 ? s . getPixelForValue ( s . max ) : s . min > 0 && s . max > 0 ? s . getPixelForValue ( s . min ) : s . getPixelForValue ( 0 ) , e . each ( a , function ( e , i ) { this . updateElement ( e , i , t ) } , this ) } , updateElement : function ( t , i , a ) { var s , o = this . getScaleForId ( this . getDataset ( ) . yAxisID ) , n = this . getScaleForId ( this . getDataset ( ) . xAxisID ) ; s = o . min < 0 && o . max < 0 ? o . getPixelForValue ( o . max ) : o . min > 0 && o . max > 0 ? o . getPixelForValue ( o . min ) : o . getPixelForValue ( 0 ) , e . extend ( t , { _chart : this . chart . chart , _xScale : n , _yScale : o , _datasetIndex : this . index , _index : i , _model : { x : a ? n . getPixelForDecimal ( . 5 ) : n . getPixelForValue ( this . getDataset ( ) . data [ i ] , i , this . index , this . chart . isCombo ) , y : a ? s : o . getPixelForValue ( this . getDataset ( ) . data [ i ] , i , this . index ) , radius : a ? 0 : t . custom && t . custom . radius ? t . custom . radius : this . getRadius ( this . getDataset ( ) . data [ i ] ) , backgroundColor : t . custom && t . custom . backgroundColor ? t . custom . backgroundColor : e . getValueAtIndexOrDefault ( this . getDataset ( ) . backgroundColor , i , this . chart . options . elements . point . backgroundColor ) , borderColor : t . custom && t . custom . borderColor ? t . custom . borderColor : e . getValueAtIndexOrDefault ( this . getDataset ( ) . borderColor , i , this . chart . options . elements . point . borderColor ) , borderWidth : t . custom && t . custom . borderWidth ? t . custom . borderWidth : e . getValueAtIndexOrDefault ( this . getDataset ( ) . borderWidth , i , this . chart . options . elements . point . borderWidth ) , hitRadius : t . custom && t . custom . hitRadius ? t . custom . hitRadius : e . getValueAtIndexOrDefault ( this . getDataset ( ) . hitRadius , i , this . chart . options . elements . point . hitRadius ) } } ) , t . _model . skip = t . custom && t . custom . skip ? t . custom . skip : isNaN ( t . _model . x ) || isNaN ( t . _model . y ) , t . pivot ( ) } , getRadius : function ( t ) { return t . r || this . chart . options . elements . point . radius } , draw : function ( t ) { var i = t || 1 ; e . each ( this . getDataset ( ) . metaData , function ( t , e ) { t . transition ( i ) , t . draw ( ) } ) } , setHoverStyle : function ( t ) { var i = this . chart . data . datasets [ t . _datasetIndex ] , a = t . _index ; t . _model . radius = t . custom && t . custom . hoverRadius ? t . custom . hoverRadius : e . getValueAtIndexOrDefaul
borderWidth : t . custom && t . custom . borderWidth ? t . custom . borderWidth : e . getValueAtIndexOrDefault ( this . getDataset ( ) . pointBorderWidth , i , this . chart . options . elements . point . borderWidth ) , pointStyle : t . custom && t . custom . pointStyle ? t . custom . pointStyle : e . getValueAtIndexOrDefault ( this . getDataset ( ) . pointStyle , i , this . chart . options . elements . point . pointStyle ) , hitRadius : t . custom && t . custom . hitRadius ? t . custom . hitRadius : e . getValueAtIndexOrDefault ( this . getDataset ( ) . hitRadius , i , this . chart . options . elements . point . hitRadius ) } } ) , t . _model . skip = t . custom && t . custom . skip ? t . custom . skip : isNaN ( t . _model . x ) || isNaN ( t . _model . y ) } , updateBezierControlPoints : function ( ) { e . each ( this . getDataset ( ) . metaData , function ( t , i ) { var a = e . splineCurve ( e . previousItem ( this . getDataset ( ) . metaData , i , ! 0 ) . _model , t . _model , e . nextItem ( this . getDataset ( ) . metaData , i , ! 0 ) . _model , t . _model . tension ) ; t . _model . controlPointPreviousX = Math . max ( Math . min ( a . previous . x , this . chart . chartArea . right ) , this . chart . chartArea . left ) , t . _model . controlPointPreviousY = Math . max ( Math . min ( a . previous . y , this . chart . chartArea . bottom ) , this . chart . chartArea . top ) , t . _model . controlPointNextX = Math . max ( Math . min ( a . next . x , this . chart . chartArea . right ) , this . chart . chartArea . left ) , t . _model . controlPointNextY = Math . max ( Math . min ( a . next . y , this . chart . chartArea . bottom ) , this . chart . chartArea . top ) , t . pivot ( ) } , this ) } , draw : function ( t ) { var i = t || 1 ; e . each ( this . getDataset ( ) . metaData , function ( t , e ) { t . transition ( i ) } ) , this . getDataset ( ) . metaDataset . transition ( i ) . draw ( ) , e . each ( this . getDataset ( ) . metaData , function ( t ) { t . draw ( ) } ) } , setHoverStyle : function ( t ) { var i = this . chart . data . datasets [ t . _datasetIndex ] , a = t . _index ; t . _model . radius = t . custom && t . custom . hoverRadius ? t . custom . hoverRadius : e . getValueAtIndexOrDefault ( i . pointHoverRadius , a , this . chart . options . elements . point . hoverRadius ) , t . _model . backgroundColor = t . custom && t . custom . hoverBackgroundColor ? t . custom . hoverBackgroundColor : e . getValueAtIndexOrDefault ( i . pointHoverBackgroundColor , a , e . color ( t . _model . backgroundColor ) . saturate ( . 5 ) . darken ( . 1 ) . rgbString ( ) ) , t . _model . borderColor = t . custom && t . custom . hoverBorderColor ? t . custom . hoverBorderColor : e . getValueAtIndexOrDefault ( i . pointHoverBorderColor , a , e . color ( t . _model . borderColor ) . saturate ( . 5 ) . darken ( . 1 ) . rgbString ( ) ) , t . _model . borderWidth = t . custom && t . custom . hoverBorderWidth ? t . custom . hoverBorderWidth : e . getValueAtIndexOrDefault ( i . pointHoverBorderWidth , a , t . _model . borderWidth ) } , removeHoverStyle : function ( t ) { var i = ( this . chart . data . datasets [ t . _datasetIndex ] , t . _index ) ; t . _model . radius = t . custom && t . custom . radius ? t . custom . radius : e . getValueAtIndexOrDefault ( this . getDataset ( ) . radius , i , this . chart . options . elements . point . radius ) , t . _model . backgroundColor = t . custom && t . custom . backgroundColor ? t . custom . backgroundColor : e . getValueAtIndexOrDefault ( this . getDataset ( ) . pointBackgroundColor , i , this . chart . options . elements . point . backgroundColor ) , t . _model . borderColor = t . custom && t . custom . borderColor ? t . custom . borderColor : e . getValueAtIndexOrDefault ( this . getDataset ( ) . pointBorderColor , i , this . chart . options . elements . point . borderColor ) , t . _model . borderWidth = t . custom && t . custom . borderWidth ? t . custom . borderWidth : e . getValueAtIndexOrDefault ( this . getDataset ( ) . pointBorderWidth , i , this . chart . options . elements . point . borderWidth ) } } ) } } , { } ] , 21 : [ function ( t , e , i ) { "use strict" ; e . exports = function ( t ) { var e = t . helpers ; t . defaults . global . animation = { duration : 1e3 , easing : "easeOutQuart" , onProgress : e . noop , onComplete : e . noop } , t . Animation = t . Element . extend ( { currentStep : null , numSteps : 60 , easing : "" , render : null , onAnimationProgress : null , onAnimationComplete : null } ) , t . animationService = { frameDuration : 17 , animations : [ ] , dropFrames : 0 , request : null , addAnimation : function ( t , e , i , a ) { a || ( t . animating = ! 0 ) ; for ( var s = 0 ; s < this . animations . length ; ++ s ) if ( this . animations [ s ] . chartInstance === t ) return void ( this . animations [ s ] . animationObject = e ) ; this . animations . push ( { chartInstance : t , animationObject : e } ) , 1 === this . animations . length && this . requestAnimationFrame ( ) } , cancelAnimation : function ( t ) { var i = e . findIndex ( this . animations , function ( e ) { return e . chartInstance === t } ) ; - 1 !== i && ( this . animations . splice ( i , 1 ) , t . animating = ! 1 ) } , requestAnimationFrame : function ( ) { var t = this ; null === t . request && ( t . request = e . requestAnimFrame . call ( w
} function n ( t ) { var i = e . findNextWhere ( S , function ( e ) { return e . box === t } ) , a = { left : 0 , right : 0 , top : _ , bottom : A } ; i && t . update ( i . minSize . width , D , a ) } function r ( t ) { t . isHorizontal ( ) ? ( t . left = t . options . fullWidth ? h : C , t . right = t . options . fullWidth ? i - h : C + k , t . top = P , t . bottom = P + t . height , P = t . bottom ) : ( t . left = F , t . right = F + t . width , t . top = _ , t . bottom = _ + D , F = t . right ) } if ( t ) { var h = 0 , l = 0 , c = e . where ( t . boxes , function ( t ) { return "left" === t . options . position } ) , d = e . where ( t . boxes , function ( t ) { return "right" === t . options . position } ) , u = e . where ( t . boxes , function ( t ) { return "top" === t . options . position } ) , g = e . where ( t . boxes , function ( t ) { return "bottom" === t . options . position } ) , f = e . where ( t . boxes , function ( t ) { return "chartArea" === t . options . position } ) ; u . sort ( function ( t , e ) { return ( e . options . fullWidth ? 1 : 0 ) - ( t . options . fullWidth ? 1 : 0 ) } ) , g . sort ( function ( t , e ) { return ( t . options . fullWidth ? 1 : 0 ) - ( e . options . fullWidth ? 1 : 0 ) } ) ; var m = i - 2 * h , p = a - 2 * l , b = m / 2 , x = p / 2 , v = ( i - b ) / ( c . length + d . length ) , y = ( a - x ) / ( u . length + g . length ) , k = m , D = p , S = [ ] ; e . each ( c . concat ( d , u , g ) , s ) ; var C = h , w = h , _ = l , A = l ; e . each ( c . concat ( d ) , o ) , e . each ( c , function ( t ) { C += t . width } ) , e . each ( d , function ( t ) { w += t . width } ) , e . each ( u . concat ( g ) , o ) , e . each ( u , function ( t ) { _ += t . height } ) , e . each ( g , function ( t ) { A += t . height } ) , e . each ( c . concat ( d ) , n ) , C = h , w = h , _ = l , A = l , e . each ( c , function ( t ) { C += t . width } ) , e . each ( d , function ( t ) { w += t . width } ) , e . each ( u , function ( t ) { _ += t . height } ) , e . each ( g , function ( t ) { A += t . height } ) ; var I = a - _ - A , M = i - C - w ; ( M !== k || I !== D ) && ( e . each ( c , function ( t ) { t . height = I } ) , e . each ( d , function ( t ) { t . height = I } ) , e . each ( u , function ( t ) { t . options . fullWidth || ( t . width = M ) } ) , e . each ( g , function ( t ) { t . options . fullWidth || ( t . width = M ) } ) , D = I , k = M ) ; var F = h , P = l ; e . each ( c . concat ( u ) , r ) , F += k , P += D , e . each ( d , r ) , e . each ( g , r ) , t . chartArea = { left : C , top : _ , right : C + k , bottom : _ + D } , e . each ( f , function ( e ) { e . left = t . chartArea . left , e . top = t . chartArea . top , e . right = t . chartArea . right , e . bottom = t . chartArea . bottom , e . update ( k , D ) } ) } } } } } , { } ] , 28 : [ function ( t , e , i ) { "use strict" ; e . exports = function ( t ) { var e = t . helpers ; t . defaults . global . legend = { display : ! 0 , position : "top" , fullWidth : ! 0 , reverse : ! 1 , onClick : function ( t , e ) { var i = this . chart . data . datasets [ e . datasetIndex ] ; i . hidden = ! i . hidden , this . chart . update ( ) } , labels : { boxWidth : 40 , padding : 10 , generateLabels : function ( t ) { return e . isArray ( t . datasets ) ? t . datasets . map ( function ( t , e ) { return { text : t . label , fillStyle : t . backgroundColor , hidden : t . hidden , lineCap : t . borderCapStyle , lineDash : t . borderDash , lineDashOffset : t . borderDashOffset , lineJoin : t . borderJoinStyle , lineWidth : t . borderWidth , strokeStyle : t . borderColor , datasetIndex : e } } , this ) : [ ] } } } , t . Legend = t . Element . extend ( { initialize : function ( t ) { e . extend ( this , t ) , this . legendHitBoxes = [ ] , this . doughnutMode = ! 1 } , beforeUpdate : e . noop , update : function ( t , e , i ) { return this . beforeUpdate ( ) , this . maxWidth = t , this . maxHeight = e , this . margins = i , this . beforeSetDimensions ( ) , this . setDimensions ( ) , this . afterSetDimensions ( ) , this . beforeBuildLabels ( ) , this . buildLabels ( ) , this . afterBuildLabels ( ) , this . beforeFit ( ) , this . fit ( ) , this . afterFit ( ) , this . afterUpdate ( ) , this . minSize } , afterUpdate : e . noop , beforeSetDimensions : e . noop , 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 . paddingLeft = 0 , this . paddingTop = 0 , this . paddingRight = 0 , this . paddingBottom = 0 , this . minSize = { width : 0 , height : 0 } } , afterSetDimensions : e . noop , beforeBuildLabels : e . noop , buildLabels : function ( ) { this . legendItems = this . options . labels . generateLabels . call ( this , this . chart . data ) , this . options . reverse && this . legendItems . reverse ( ) } , afterBuildLabels : e . noop , beforeFit : e . noop , fit : function ( ) { var i = this . ctx , a = e . getValueOrDefault ( this . options . labels . fontSize , t . defaults . global . defaultFontSize ) , s = e . getValueOrDefault ( this . options . labels . fontStyle , t . defaults . global . defaultFontStyle ) , o = e . getValueOrDefault ( this . options . labels . fontFamily , t . defaults . global . defaultFontFamily ) , n = e . fontString ( a , s , o ) ; if ( this . legendHitBoxes = [ ] , this . isHorizontal ( ) ? this . minSize . width = this . maxWidth : this . minSize . width = this . options . display ? 10 : 0 , this . isHorizontal ( ) ? this . minSize . height = this . options . display ? 10 : 0 : this . minSize . height = this . maxHeight , this . options . display && this . isHorizontal ( ) ) { this . lineWidths = [ 0 ] ; va
n = o - d . caretSize , r = n - d . caretSize ) : ( n = t . x + e . width / 2 , o = n - d . caretSize , r = n + d . caretSize ) , "top" === d . yAlign ? ( h = t . y , l = h - d . caretSize , c = h ) : ( h = t . y + e . height , l = h + d . caretSize , c = h ) ) ; var g = i . color ( d . backgroundColor ) ; u . fillStyle = g . alpha ( a * g . alpha ( ) ) . rgbString ( ) , u . beginPath ( ) , u . moveTo ( o , h ) , u . lineTo ( n , l ) , u . lineTo ( r , c ) , u . closePath ( ) , u . fill ( ) } , drawTitle : function ( t , e , a , s ) { if ( e . title . length ) { a . textAlign = e . _titleAlign , a . textBaseline = "top" ; var o = i . color ( e . titleColor ) ; a . fillStyle = o . alpha ( s * o . alpha ( ) ) . rgbString ( ) , a . font = i . fontString ( e . titleFontSize , e . _titleFontStyle , e . _titleFontFamily ) , i . each ( e . title , function ( i , s ) { a . fillText ( i , t . x , t . y ) , t . y += e . titleFontSize + e . titleSpacing , s + 1 === e . title . length && ( t . y += e . titleMarginBottom - e . titleSpacing ) } ) } } , drawBody : function ( t , e , a , s ) { a . textAlign = e . _bodyAlign , a . textBaseline = "top" ; var o = i . color ( e . bodyColor ) ; a . fillStyle = o . alpha ( s * o . alpha ( ) ) . rgbString ( ) , a . font = i . fontString ( e . bodyFontSize , e . _bodyFontStyle , e . _bodyFontFamily ) , i . each ( e . beforeBody , function ( i ) { a . fillText ( i , t . x , t . y ) , t . y += e . bodyFontSize + e . bodySpacing } ) , i . each ( e . body , function ( o , n ) { "single" !== this . _options . tooltips . mode && ( a . fillStyle = i . color ( e . legendColorBackground ) . alpha ( s ) . rgbaString ( ) , a . fillRect ( t . x , t . y , e . bodyFontSize , e . bodyFontSize ) , a . strokeStyle = i . color ( e . labelColors [ n ] . borderColor ) . alpha ( s ) . rgbaString ( ) , a . strokeRect ( t . x , t . y , e . bodyFontSize , e . bodyFontSize ) , a . fillStyle = i . color ( e . labelColors [ n ] . backgroundColor ) . alpha ( s ) . rgbaString ( ) , a . fillRect ( t . x + 1 , t . y + 1 , e . bodyFontSize - 2 , e . bodyFontSize - 2 ) , a . fillStyle = i . color ( e . bodyColor ) . alpha ( s ) . rgbaString ( ) ) , a . fillText ( o , t . x + ( "single" !== this . _options . tooltips . mode ? e . bodyFontSize + 2 : 0 ) , t . y ) , t . y += e . bodyFontSize + e . bodySpacing } , this ) , i . each ( e . afterBody , function ( i ) { a . fillText ( i , t . x , t . y ) , t . y += e . bodyFontSize } ) , t . y -= e . bodySpacing } , drawFooter : function ( t , e , a , s ) { if ( e . footer . length ) { t . y += e . footerMarginTop , a . textAlign = e . _footerAlign , a . textBaseline = "top" ; var o = i . color ( e . footerColor ) ; a . fillStyle = o . alpha ( s * o . alpha ( ) ) . rgbString ( ) , a . font = i . fontString ( e . footerFontSize , e . _footerFontStyle , e . _footerFontFamily ) , i . each ( e . footer , function ( i ) { a . fillText ( i , t . x , t . y ) , t . y += e . footerFontSize + e . footerSpacing } ) } } , draw : function ( ) { var t = this . _chart . ctx , e = this . _view ; if ( 0 !== e . opacity ) { var a = e . caretPadding , s = this . getTooltipSize ( e ) , o = { x : e . x , y : e . y } , n = Math . abs ( e . opacity < . 001 ) ? 0 : e . opacity ; if ( this . _options . tooltips . enabled ) { var r = i . color ( e . backgroundColor ) ; t . fillStyle = r . alpha ( n * r . alpha ( ) ) . rgbString ( ) , i . drawRoundedRectangle ( t , o . x , o . y , s . width , s . height , e . cornerRadius ) , t . fill ( ) , this . drawCaret ( o , s , n , a ) , o . x += e . xPadding , o . y += e . yPadding , this . drawTitle ( o , e , t , n ) , this . drawBody ( o , e , t , n ) , this . drawFooter ( o , e , t , n ) } } } } ) } } , { } ] , 34 : [ function ( t , e , i ) { "use strict" ; e . exports = function ( t , e ) { var i = t . helpers ; t . defaults . global . elements . arc = { backgroundColor : t . defaults . global . defaultColor , borderColor : "#fff" , borderWidth : 2 } , t . elements . Arc = t . Element . extend ( { inLabelRange : function ( t ) { var e = this . _view ; return e ? Math . pow ( t - e . x , 2 ) < Math . pow ( e . radius + e . hoverRadius , 2 ) : ! 1 } , inRange : function ( t , e ) { var a = this . _view ; if ( a ) { for ( var s = i . getAngleFromPoint ( a , { x : t , y : e } ) , o = a . startAngle , n = a . endAngle ; o > n ; ) n += 2 * Math . PI ; for ( ; s . angle > n ; ) s . angle -= 2 * Math . PI ; for ( ; s . angle < o ; ) s . angle += 2 * Math . PI ; var r = s . angle >= o && s . angle <= n , h = s . distance >= a . innerRadius && s . distance <= a . outerRadius ; return r && h } return ! 1 } , tooltipPosition : function ( ) { var t = this . _view , e = t . startAngle + ( t . endAngle - t . startAngle ) / 2 , i = ( t . outerRadius - t . innerRadius ) / 2 + t . innerRadius ; return { x : t . x + Math . cos ( e ) * i , y : t . y + Math . sin ( e ) * i } } , draw : function ( ) { var t = this . _chart . ctx , e = this . _view ; t . beginPath ( ) , t . arc ( e . x , e . y , e . outerRadius , e . startAngle , e . endAngle ) , t . arc ( e . x , e . y , e . innerRadius , e . endAngle , e . startAngle , ! 0 ) , t . closePath ( ) , t . strokeStyle = e . borderColor , t . lineWidth = e . borderWidth , t . fillStyle = e . backgroundColor , t . fill ( ) , t . lineJoin = "bevel" , e . borderWidth && t . stroke ( ) } } ) } } , { } ] , 35 : [ function ( t , e , i ) { "use strict" ; e . exports = function ( t ) { var e = t . helpers ; t . defaults . global . elements . line = { tension : . 4 , backgroundColor : t . defaults . global . defaultColor , borderWidth : 3 , borderColor : t . defaults . global . defaultColor , borderCapStyle : "butt" , borderDash : [ ] , borderDashOffset : 0 , borderJoinStyle : "miter" , fill : ! 0 } , t . elements . Line = t . Element .
this . options . time . format ( t ) ) : a ( t , this . options . time . format ) } } ) ; t . scaleService . registerScaleType ( "time" , o , s ) } } , { moment : 1 } ] } , { } , [ 7 ] ) ;