@ -1,17 +1,17 @@
( function ( Ka ) { function gb ( ) { function n ( c , i ) { c . attr ( "transform" , function ( c ) { return "translate(" + ( i ( c ) + E ) + ",0)" } ) } function c ( c , i ) { c . attr ( "transform" , function ( c ) { return "translate(0," + i ( c ) + ")" } ) } function i ( v ) { v . each ( function ( ) { for ( var i = d3 . select ( this ) , v = l . domain ( ) , k = [ ] , x = Math . ceil ( v [ 0 ] ) ; x < v [ 1 ] ; x ++ ) k . push ( x ) ; 0 < k . length && 0 < k [ 0 ] && k . unshift ( k [ 0 ] - ( k [ 1 ] - k [ 0 ] ) ) ; var J = i . selectAll ( ".tick.major" ) . data ( k , String ) , v = J . enter ( ) . insert ( "g" , "path" ) . attr ( "class" , "tick major" ) . style ( "opacity" , 1E-6 ) , ea = d3 . transition ( J . exit ( ) ) . style ( "opacity" ,
1E-6 ) . remove ( ) , x = d3 . transition ( J ) . style ( "opacity" , 1 ) , K , y ; if ( l . rangeExtent ) y = l . rangeExtent ( ) ; else { var z = l . range ( ) ; y = z [ 0 ] ; z = z [ z . length - 1 ] ; y = y < z ? [ y , z ] : [ z , y ] } var i = i . selectAll ( ".domain" ) . data ( [ 0 ] ) , i = ( i . enter ( ) . append ( "path" ) . attr ( "class" , "domain" ) , d3 . transition ( i ) ) , L = l . copy ( ) , z = this . _ _chart _ _ || L ; this . _ _chart _ _ = L ; v . append ( "line" ) ; v . append ( "text" ) ; var Y = v . select ( "line" ) , T = x . select ( "line" ) , Z = J . select ( "text" ) , F = v . select ( "text" ) , G = x . select ( "text" ) ; E = ( L ( 1 ) - L ( 0 ) ) / 2 ; J = fa ? 0 : E ; switch ( U ) { case "bottom" : K = n ; Y . attr ( "y2" ,
m ) ; F . attr ( "y" , Math . max ( m , 0 ) + Q ) ; T . attr ( "x1" , J ) . attr ( "x2" , J ) . attr ( "y2" , m ) ; G . attr ( "x" , 0 ) . attr ( "y" , Math . max ( m , 0 ) + Q ) ; Z . attr ( "dy" , ".71em" ) . style ( "text-anchor" , "middle" ) ; Z . text ( function ( c ) { return k . length < R || 0 == c % Math . ceil ( k . length / R ) ? c < S . length ? S [ c ] : c : "" } ) ; i . attr ( "d" , "M" + y [ 0 ] + "," + A + "V0H" + y [ 1 ] + "V" + A ) ; break ; case "left" : K = c , Y . attr ( "x2" , - m ) , F . attr ( "x" , - ( Math . max ( m , 0 ) + Q ) ) , T . attr ( "x2" , - m ) . attr ( "y2" , 0 ) , G . attr ( "x" , - ( Math . max ( m , 0 ) + Q ) ) . attr ( "y" , E ) , Z . attr ( "dy" , ".32em" ) . style ( "text-anchor" , "end" ) , Z . text ( function ( c ) { return k . length <
R || 0 == c % Math . ceil ( k . length / R ) ? c < S . length ? S [ c ] : c : "" } ) , i . attr ( "d" , "M" + - A + "," + y [ 0 ] + "H0V" + y [ 1 ] + "H" + - A ) } if ( l . ticks ) v . call ( K , z ) , x . call ( K , L ) , ea . call ( K , L ) ; else { var ya = L . rangeBand ( ) / 2 , ea = function ( c ) { return L ( c ) + ya } ; v . call ( K , ea ) ; x . call ( K , ea ) } } ) } var l = d3 . scale . linear ( ) , U = "bottom" , m = 6 , A = 6 , Q = 3 , fa = ! 1 , R = 10 , E = 0 , S = [ ] ; i . scale = function ( c ) { if ( ! arguments . length ) return l ; l = c ; return i } ; i . orient = function ( c ) { if ( ! arguments . length ) return U ; U = c in { top : 1 , right : 1 , bottom : 1 , left : 1 } ? c + "" : "bottom" ; return i } ; i . categories = function ( c ) { if ( ! arguments . length ) return S ;
S = c ; return i } ; i . tickCentered = function ( c ) { if ( ! arguments . length ) return fa ; fa = c ; return i } ; i . tickTextNum = function ( c ) { if ( ! arguments . length ) return R ; R = c ; return i } ; i . tickOffset = function ( ) { return E } ; i . ticks = function ( ) { } ; return i } function l ( i ) { return "undefined" === typeof i } function i ( i ) { return "undefined" !== typeof i } Ka . c3 = { } ; c3 . generate = function ( n ) { function c ( a , b ) { for ( var d = n , g = 0 ; g < a . length ; g ++ ) { if ( ! ( a [ g ] in d ) ) return b ; d = d [ a [ g ] ] } return d } function Na ( a , b ) { return ( M ? d3 . time . scale ( ) : d3 . scale . linear ( ) ) . range ( [ a ,
b ] ) } function j a( a , b ) { return d3 . scale . linear ( ) . range ( [ a , b ] ) } function U ( a , b ) { var d = k ( function ( a ) { return m ( a . id ) === b } ) , g = "y2" === b ? Ob : Pb , t = "y2" === b ? Qb : Rb , g = null !== g ? g : d3 . min ( d , function ( a ) { return d3 . min ( a . values , function ( a ) { return a . value } ) } ) ; if ( null === t ) { var c = { } , j , e ; d . forEach ( function ( a ) { c [ a . id ] = [ ] ; a . values . forEach ( function ( b ) { c [ a . id ] . push ( b . value ) } ) } ) ; for ( j = 0 ; j < r . length ; j ++ ) for ( e = 1 ; e < r [ j ] . length ; e ++ ) k a( r [ j ] [ e ] ) && ( l ( c [ r [ j ] [ e ] ] ) || c [ r [ j ] [ e ] ] . forEach ( function ( a , b ) { m ( r [ j ] [ e ] ) === m ( r [ j ] [ 0 ] ) && ( c [ r [ j ] [ 0 ] ] [ b ] +=
( function ( Ka ) { function gb ( ) { function n ( c , i ) { c . attr ( "transform" , function ( c ) { return "translate(" + ( i ( c ) + E ) + ",0)" } ) } function c ( c , i ) { c . attr ( "transform" , function ( c ) { return "translate(0," + i ( c ) + ")" } ) } function i ( v ) { v . each ( function ( ) { for ( var i = d3 . select ( this ) , v = l . domain ( ) , k = [ ] , x = Math . ceil ( v [ 0 ] ) ; x < v [ 1 ] ; x ++ ) k . push ( x ) ; 0 < k . length && 0 < k [ 0 ] && k . unshift ( k [ 0 ] - ( k [ 1 ] - k [ 0 ] ) ) ; var K = i . selectAll ( ".tick.major" ) . data ( k , String ) , v = K . enter ( ) . insert ( "g" , "path" ) . attr ( "class" , "tick major" ) . style ( "opacity" , 1E-6 ) , ea = d3 . transition ( K . exit ( ) ) . style ( "opacity" ,
1E-6 ) . remove ( ) , x = d3 . transition ( K ) . style ( "opacity" , 1 ) , L , y ; if ( l . rangeExtent ) y = l . rangeExtent ( ) ; else { var z = l . range ( ) ; y = z [ 0 ] ; z = z [ z . length - 1 ] ; y = y < z ? [ y , z ] : [ z , y ] } var i = i . selectAll ( ".domain" ) . data ( [ 0 ] ) , i = ( i . enter ( ) . append ( "path" ) . attr ( "class" , "domain" ) , d3 . transition ( i ) ) , M = l . copy ( ) , z = this . _ _chart _ _ || M ; this . _ _chart _ _ = M ; v . append ( "line" ) ; v . append ( "text" ) ; var Y = v . select ( "line" ) , T = x . select ( "line" ) , Z = K . select ( "text" ) , F = v . select ( "text" ) , G = x . select ( "text" ) ; E = ( M ( 1 ) - M ( 0 ) ) / 2 ; K = fa ? 0 : E ; switch ( U ) { case "bottom" : L = n ; Y . attr ( "y2" ,
m ) ; F . attr ( "y" , Math . max ( m , 0 ) + Q ) ; T . attr ( "x1" , K ) . attr ( "x2" , K ) . attr ( "y2" , m ) ; G . attr ( "x" , 0 ) . attr ( "y" , Math . max ( m , 0 ) + Q ) ; Z . attr ( "dy" , ".71em" ) . style ( "text-anchor" , "middle" ) ; Z . text ( function ( c ) { return k . length < R || 0 == c % Math . ceil ( k . length / R ) ? c < S . length ? S [ c ] : c : "" } ) ; i . attr ( "d" , "M" + y [ 0 ] + "," + A + "V0H" + y [ 1 ] + "V" + A ) ; break ; case "left" : L = c , Y . attr ( "x2" , - m ) , F . attr ( "x" , - ( Math . max ( m , 0 ) + Q ) ) , T . attr ( "x2" , - m ) . attr ( "y2" , 0 ) , G . attr ( "x" , - ( Math . max ( m , 0 ) + Q ) ) . attr ( "y" , E ) , Z . attr ( "dy" , ".32em" ) . style ( "text-anchor" , "end" ) , Z . text ( function ( c ) { return k . length <
R || 0 == c % Math . ceil ( k . length / R ) ? c < S . length ? S [ c ] : c : "" } ) , i . attr ( "d" , "M" + - A + "," + y [ 0 ] + "H0V" + y [ 1 ] + "H" + - A ) } if ( l . ticks ) v . call ( L , z ) , x . call ( L , M ) , ea . call ( L , M ) ; else { var ya = M . rangeBand ( ) / 2 , ea = function ( c ) { return M ( c ) + ya } ; v . call ( L , ea ) ; x . call ( L , ea ) } } ) } var l = d3 . scale . linear ( ) , U = "bottom" , m = 6 , A = 6 , Q = 3 , fa = ! 1 , R = 10 , E = 0 , S = [ ] ; i . scale = function ( c ) { if ( ! arguments . length ) return l ; l = c ; return i } ; i . orient = function ( c ) { if ( ! arguments . length ) return U ; U = c in { top : 1 , right : 1 , bottom : 1 , left : 1 } ? c + "" : "bottom" ; return i } ; i . categories = function ( c ) { if ( ! arguments . length ) return S ;
S = c ; return i } ; i . tickCentered = function ( c ) { if ( ! arguments . length ) return fa ; fa = c ; return i } ; i . tickTextNum = function ( c ) { if ( ! arguments . length ) return R ; R = c ; return i } ; i . tickOffset = function ( ) { return E } ; i . ticks = function ( ) { } ; return i } function l ( i ) { return "undefined" === typeof i } function i ( i ) { return "undefined" !== typeof i } Ka . c3 = { } ; c3 . generate = function ( n ) { function c ( a , b ) { for ( var d = n , g = 0 ; g < a . length ; g ++ ) { if ( ! ( a [ g ] in d ) ) return b ; d = d [ a [ g ] ] } return d } function Na ( a , b ) { return ( H ? d3 . time . scale ( ) : d3 . scale . linear ( ) ) . range ( [ a ,
b ] ) } function k a( a , b ) { return d3 . scale . linear ( ) . range ( [ a , b ] ) } function U ( a , b ) { var d = k ( function ( a ) { return m ( a . id ) === b } ) , g = "y2" === b ? Ob : Pb , t = "y2" === b ? Qb : Rb , g = null !== g ? g : d3 . min ( d , function ( a ) { return d3 . min ( a . values , function ( a ) { return a . value } ) } ) ; if ( null === t ) { var c = { } , j , e ; d . forEach ( function ( a ) { c [ a . id ] = [ ] ; a . values . forEach ( function ( b ) { c [ a . id ] . push ( b . value ) } ) } ) ; for ( j = 0 ; j < r . length ; j ++ ) for ( e = 1 ; e < r [ j ] . length ; e ++ ) l a( r [ j ] [ e ] ) && ( l ( c [ r [ j ] [ e ] ] ) || c [ r [ j ] [ e ] ] . forEach ( function ( a , b ) { m ( r [ j ] [ e ] ) === m ( r [ j ] [ 0 ] ) && ( c [ r [ j ] [ 0 ] ] [ b ] +=
1 * a ) } ) ) ; t = d3 . max ( Object . keys ( c ) . map ( function ( a ) { return d3 . max ( c [ a ] ) } ) ) } var i = 0.1 * Math . abs ( t - g ) , f = "y2" === b ? Sb : Tb ; null !== f && ( yDomainAbs = Math . max ( Math . abs ( g ) , Math . abs ( t ) ) , t = yDomainAbs - f , g = f - yDomainAbs ) ; var h = ! 1 ; d . forEach ( function ( a ) { "bar" === $ [ a . id ] && ( h = ! 0 ) } ) ; return [ h ? 0 : g - i , t + i ] } function m ( a ) { return a in ib ? ib [ a ] : "y" } function A ( a ) { return "y2" === m ( a ) ? ga : D } function Q ( a ) { return "y2" === m ( a ) ? Oa : Pa } function fa ( a ) { var b = a [ 0 ] , d = { } , g = [ ] , t , c ; for ( t = 1 ; t < a . length ; t ++ ) { d = { } ; for ( c = 0 ; c < a [ t ] . length ; c ++ ) d [ b [ c ] ] = a [ t ] [ c ] ;
g . push ( d ) } return g } function R ( a ) { var b = [ ] , d , g , t ; for ( d = 0 ; d < a . length ; d ++ ) { t = a [ d ] [ 0 ] ; for ( g = 1 ; g < a [ d ] . length ; g ++ ) l ( b [ g - 1 ] ) && ( b [ g - 1 ] = { } ) , b [ g - 1 ] [ t ] = a [ d ] [ g ] } return b } function E ( a ) { var b = d3 . keys ( a [ 0 ] ) . filter ( function ( a ) { return a !== Aa } ) , d = 0 , g ; a . forEach ( function ( a ) { if ( M ) { if ( ! ( Aa in a ) ) throw Error ( "'" + Aa + "' must be included in data" ) ; g = l a( a [ Aa ] ) ; if ( null === g ) throw Error ( "Failed to parse timeseries date in data" ) ; a . x = g } else a . x = d ++ ; null === Ba && ( Ba = new Date ( a . x ) ) ; Qa = new Date ( a . x ) } ) ; b = b . map ( function ( b ) { var d = Ub ( b ) ;
g . push ( d ) } return g } function R ( a ) { var b = [ ] , d , g , t ; for ( d = 0 ; d < a . length ; d ++ ) { t = a [ d ] [ 0 ] ; for ( g = 1 ; g < a [ d ] . length ; g ++ ) l ( b [ g - 1 ] ) && ( b [ g - 1 ] = { } ) , b [ g - 1 ] [ t ] = a [ d ] [ g ] } return b } function E ( a ) { var b = d3 . keys ( a [ 0 ] ) . filter ( function ( a ) { return a !== Aa } ) , d = 0 , g ; a . forEach ( function ( a ) { if ( H ) { if ( ! ( Aa in a ) ) throw Error ( "'" + Aa + "' must be included in data" ) ; g = h a( a [ Aa ] ) ; if ( null === g ) throw Error ( "Failed to parse timeseries date in data" ) ; a . x = g } else a . x = d ++ ; null === Ba && ( Ba = new Date ( a . x ) ) ; Qa = new Date ( a . x ) } ) ; b = b . map ( function ( b ) { var d = Ub ( b ) ;
return { id : d , id _org : b , values : a . map ( function ( a ) { return { x : a . x , value : + a [ b ] , id : d } } ) } } ) ; b . forEach ( function ( a ) { Ca [ a . id _org ] = S ( a ) } ) ; return b } function S ( a ) { return { id : a . id , id _org : a . id _org , values : a . values . map ( function ( a ) { return { x : a . x , value : a . value , id : a . id } } ) } } function v ( ) { return d3 . max ( h . data . targets , function ( a ) { return a . values . length } ) } function La ( a ) { a = l ( a ) ? h . data . targets : a ; return a . map ( function ( a ) { return a . id } ) } function Ma ( a ) { var b = La ( ) , d ; for ( d = 0 ; d < b . length ; d ++ ) if ( b [ d ] === a ) return ! 0 ; return ! 1 } function k ( a ) { return i ( a ) ?
h . data . targets . filter ( a ) : h . data . targets } function x ( a ) { return "-shapes -shapes-" + a . id } function J ( a ) { return x ( a ) + " -line -line-" + a . id } function ea ( a ) { return x ( a ) + " -circles -circles-" + a . id } function K ( a ) { return x ( a ) + " -bars -bars-" + a . id } function y ( a , b ) { return "-shape -shape-" + b + " -circle -circle-" + b } function z ( a , b ) { return "-shape -shape-" + b + " -bar -bar-" + b } function L ( a , b ) { return "region region-" + b + " " + ( "classes" in a ? [ ] . concat ( a . classes ) . join ( " " ) : "" ) } function Y ( a ) { return q ( a . x ) } function T ( a ) { return q ( a . value ) }
function Z ( a ) { return D ( a . value ) } function F ( a ) { return q ( a . x ) } function G ( a ) { return A ( a . id ) ( a . value ) } function ya ( a , b , d , g ) { var c = g ? H : q ; return function ( g ) { var e = g . id in d ? d [ g . id ] : 0 ; return c ( g . x ) - a * ( b / 2 - e ) } } function hb ( a , b , d , g ) { var c = Object . keys ( b ) ; return function ( e , j ) { var i = 0 , f = g ? Q ( e . id ) : A ( e . id ) ; k ( k a) . forEach ( function ( d ) { d . id === e . id || b [ d . id ] !== b [ e . id ] || c . indexOf ( d . id ) < c . indexOf ( e . id ) && ( i += a ( d . values [ j ] ) ) } ) ; return d ? i : f ( e . value ) - i } } function jb ( a , b ) { var d = null === a ? function ( a ) { return a } : function ( b ) { return a -
b } ; return function ( a ) { var c = b ? Q ( a . id ) : A ( a . id ) ; return d ( c ( a . value ) ) } } function Ra ( a , b ) { var d = l ( a ) ? La ( ) : a ; "string" === typeof d && ( d = [ d ] ) ; for ( var g = 0 ; g < d . length ; g ++ ) $ [ d [ g ] ] = b } function Sa ( a ) { a = "string" === typeof a ? a : a . id ; return ! ( a in $ ) || "line" === $ [ a ] || "spline" === $ [ a ] } function k a( a ) { return "bar" === $ [ "string" === typeof a ? a : a . id ] } function Ka ( a ) { return Sa ( a ) ? a . values : [ ] } function kb ( a ) { return k a( a ) ? a . values : [ ] } function lb ( a , b ) { var d = d3 . mouse ( a ) , g = d3 . select ( a ) , c = 1 * g . attr ( "cx" ) , g = 1 * g . attr ( "cy" ) ; return Math . sqrt ( Math . pow ( c -
h . data . targets . filter ( a ) : h . data . targets } function x ( a ) { return "-shapes -shapes-" + a . id } function K ( a ) { return x ( a ) + " -line -line-" + a . id } function ea ( a ) { return x ( a ) + " -circles -circles-" + a . id } function L ( a ) { return x ( a ) + " -bars -bars-" + a . id } function y ( a , b ) { return "-shape -shape-" + b + " -circle -circle-" + b } function z ( a , b ) { return "-shape -shape-" + b + " -bar -bar-" + b } function M ( a , b ) { return "region region-" + b + " " + ( "classes" in a ? [ ] . concat ( a . classes ) . join ( " " ) : "" ) } function Y ( a ) { return q ( a . x ) } function T ( a ) { return q ( H ? ha ( a . value ) :
a . value ) } function Z ( a ) { return D ( a . value ) } function F ( a ) { return q ( a . x ) } function G ( a ) { return A ( a . id ) ( a . value ) } function ya ( a , b , d , g ) { var c = g ? I : q ; return function ( g ) { var e = g . id in d ? d [ g . id ] : 0 ; return c ( g . x ) - a * ( b / 2 - e ) } } function hb ( a , b , d , g ) { var c = Object . keys ( b ) ; return function ( e , j ) { var i = 0 , f = g ? Q ( e . id ) : A ( e . id ) ; k ( l a) . forEach ( function ( d ) { d . id === e . id || b [ d . id ] !== b [ e . id ] || c . indexOf ( d . id ) < c . indexOf ( e . id ) && ( i += a ( d . values [ j ] ) ) } ) ; return d ? i : f ( e . value ) - i } } function jb ( a , b ) { var d = null === a ? function ( a ) { return a } : function ( b ) { return a -
b } ; return function ( a ) { var c = b ? Q ( a . id ) : A ( a . id ) ; return d ( c ( a . value ) ) } } function Ra ( a , b ) { var d = l ( a ) ? La ( ) : a ; "string" === typeof d && ( d = [ d ] ) ; for ( var g = 0 ; g < d . length ; g ++ ) $ [ d [ g ] ] = b } function Sa ( a ) { a = "string" === typeof a ? a : a . id ; return ! ( a in $ ) || "line" === $ [ a ] || "spline" === $ [ a ] } function l a( a ) { return "bar" === $ [ "string" === typeof a ? a : a . id ] } function Ka ( a ) { return Sa ( a ) ? a . values : [ ] } function kb ( a ) { return l a( a ) ? a . values : [ ] } function lb ( a , b ) { var d = d3 . mouse ( a ) , g = d3 . select ( a ) , c = 1 * g . attr ( "cx" ) , g = 1 * g . attr ( "cy" ) ; return Math . sqrt ( Math . pow ( c -
d [ 0 ] , 2 ) + Math . pow ( g - d [ 1 ] , 2 ) ) < b } function mb ( a ) { var b = d3 . mouse ( a ) , d = d3 . select ( a ) , a = 1 * d . attr ( "x" ) , g = 1 * d . attr ( "y" ) , d = 1 * d . attr ( "width" ) ; return a - 10 < b [ 0 ] && b [ 0 ] < a + d + 10 && g - 10 < b [ 1 ] } function nb ( a , b , d ) { Vb ( a , b ) ; f . select ( ".selected-circles-" + b . id ) . selectAll ( ".selected-circle-" + d ) . data ( [ b ] ) . enter ( ) . append ( "circle" ) . attr ( "class" , function ( ) { return "selected-circle selected-circle-" + d } ) . attr ( "cx" , e ? G : F ) . attr ( "cy" , e ? F : G ) . attr ( "stroke" , function ( ) { return N ( b . id ) } ) . attr ( "r" , 1.4 * ma ) . transition ( ) . duration ( 100 ) . attr ( "r" , ma ) }
function Ta ( a , b , d ) { Wb ( a , b ) ; f . select ( ".selected-circles-" + b . id ) . selectAll ( ".selected-circle-" + d ) . transition ( ) . duration ( 100 ) . attr ( "r" , 0 ) . remove ( ) } function ob ( a , b , d , g ) { a ? nb ( b , d , g ) : Ta ( b , d , g ) } function Xb ( ) { } function pb ( ) { } function qb ( ) { } function Ua ( a ) { var b = h . data . targets = E ( a ) , d , g ; q . domain ( d3 . extent ( a . map ( function ( a ) { return a . x } ) ) ) ; D . domain ( U ( b , "y" ) ) ; ga . domain ( U ( b , "y2" ) ) ; H . domain ( q . domain ( ) ) ; Pa . domain ( D . domain ( ) ) ; Oa . domain ( ga . domain ( ) ) ; w . ticks ( 10 > a . length ? a . length : 10 ) ; d = f . append ( "g" ) . attr ( "clip-path" ,
function Ta ( a , b , d ) { Wb ( a , b ) ; f . select ( ".selected-circles-" + b . id ) . selectAll ( ".selected-circle-" + d ) . transition ( ) . duration ( 100 ) . attr ( "r" , 0 ) . remove ( ) } function ob ( a , b , d , g ) { a ? nb ( b , d , g ) : Ta ( b , d , g ) } function Xb ( ) { } function pb ( ) { } function qb ( ) { } function Ua ( a ) { var b = h . data . targets = E ( a ) , d , g ; q . domain ( d3 . extent ( a . map ( function ( a ) { return a . x } ) ) ) ; D . domain ( U ( b , "y" ) ) ; ga . domain ( U ( b , "y2" ) ) ; I . domain ( q . domain ( ) ) ; Pa . domain ( D . domain ( ) ) ; Oa . domain ( ga . domain ( ) ) ; w . ticks ( 10 > a . length ? a . length : 10 ) ; d = f . append ( "g" ) . attr ( "clip-path" ,
Da ) . attr ( "class" , "grid" ) ; rb && d . append ( "g" ) . attr ( "class" , "xgrids" ) ; Va && ( g = d . append ( "g" ) . attr ( "class" , "xgrid-lines" ) . selectAll ( ".xgrid-line" ) . data ( Va ) . enter ( ) . append ( "g" ) . attr ( "class" , "xgrid-line" ) , g . append ( "line" ) . attr ( "class" , function ( a ) { return "" + a [ "class" ] } ) , g . append ( "text" ) . attr ( "class" , function ( a ) { return "" + a [ "class" ] } ) . attr ( "text-anchor" , "end" ) . attr ( "transform" , e ? "" : "rotate(-90)" ) . attr ( "dx" , e ? 0 : - p . top ) . attr ( "dy" , - 6 ) . text ( function ( a ) { return a . text } ) ) ; Yb && d . append ( "g" ) . attr ( "class" , "xgrid-focus" ) . append ( "line" ) . attr ( "class" ,
"xgrid-focus" ) . attr ( "x1" , e ? 0 : - 10 ) . attr ( "x2" , e ? s : - 10 ) . attr ( "y1" , e ? - 10 : p . top ) . attr ( "y2" , e ? - 10 : u ) ; sb && d . append ( "g" ) . attr ( "class" , "ygrids" ) ; Wa && d . append ( "g" ) . attr ( "class" , "ygrid-lines" ) . selectAll ( "ygrid-line" ) . data ( Wa ) . enter ( ) . append ( "line" ) . attr ( "class" , function ( a ) { return "ygrid-line " + a [ "class" ] } ) ; f . append ( "g" ) . attr ( "clip-path" , Da ) . attr ( "class" , "regions" ) ; f . append ( "g" ) . attr ( "clip-path" , Da ) . attr ( "class" , "chart" ) ; f . select ( ".chart" ) . append ( "g" ) . attr ( "class" , "event-rects" ) . style ( "fill-opacity" , 0 ) . selectAll ( ".event-rects" ) . data ( a ) . enter ( ) . append ( "rect" ) . attr ( "class" ,
function ( a , b ) { return "event-rect event-rect-" + b } ) . style ( "cursor" , function ( ) { return V && aa ? "pointer" : null } ) . on ( "mouseover" , function ( a , b ) { if ( ! Ea ) { var d = h . data . targets . map ( function ( a ) { return a . values [ b ] } ) , g , c ; for ( g = 0 ; g < d . length ; g ++ ) l ( d [ g ] ) || ( c = na [ d [ g ] . id ] , d [ g ] . name = i ( c ) ? c : d [ g ] . id ) ; if ( 0 < Object . keys ( na ) . length ) { c = [ ] ; for ( var C in na ) for ( g = 0 ; g < d . length ; g ++ ) if ( d [ g ] . id === C ) { c . push ( d [ g ] ) ; d . shift ( g ) ; break } d = c . concat ( d ) } tb && f . selectAll ( ".-circle-" + b ) . classed ( W , ! 0 ) . attr ( "r" , ub ) ; f . selectAll ( ".-bar-" + b ) . classed ( W ,
@ -21,37 +21,37 @@ a.attr("r",ma));d3.select(".event-rect-"+b).style("cursor","pointer")}))}).on("c
d ) , h = aa ? u : Math . max ( b , d ) ; f . select ( ".dragarea" ) . attr ( "x" , c ) . attr ( "y" , i ) . attr ( "width" , e - c ) . attr ( "height" , h - i ) ; f . selectAll ( ".-shapes" ) . selectAll ( ".-shape" ) . filter ( function ( a ) { return ba ( a ) } ) . each ( function ( a , b ) { var d = d3 . select ( this ) , g = d . classed ( X ) , t = d . classed ( Za ) , f , j , B , l ; f = ! 1 ; "circle" === this . nodeName ? ( f = 1 * d . attr ( "cx" ) , j = 1 * d . attr ( "cy" ) , l = ob , f = c < f && f < e && i < j && j < h ) : "rect" === this . nodeName && ( f = 1 * d . attr ( "x" ) , j = 1 * d . attr ( "y" ) , B = 1 * d . attr ( "width" ) , l = qb , f = c < f + B && f < e && j < h ) ; f ^ t && ( d . classed ( Za , ! t ) , d . classed ( X , ! g ) , l ( ! g ,
d , a , b ) ) } ) } } ) . on ( "dragstart" , function ( ) { V && ( Ya = d3 . mouse ( this ) , f . select ( ".chart" ) . append ( "rect" ) . attr ( "class" , "dragarea" ) . style ( "opacity" , 0.1 ) , Ea = ! 0 ) } ) . on ( "dragend" , function ( ) { V && ( f . select ( ".dragarea" ) . transition ( ) . duration ( 100 ) . style ( "opacity" , 0 ) . remove ( ) , f . selectAll ( ".-shape" ) . classed ( Za , ! 1 ) , Ea = ! 1 ) } ) ) ; f . select ( ".chart" ) . append ( "g" ) . attr ( "class" , "chart-bars" ) ; f . select ( ".chart" ) . append ( "g" ) . attr ( "class" , "chart-lines" ) ; f . append ( "g" ) . attr ( "class" , "x axis" ) . attr ( "clip-path" , e ? "" : "url(#xaxis-clip)" ) . attr ( "transform" ,
"translate(0," + u + ")" ) . call ( e ? oa : w ) ; f . append ( "g" ) . attr ( "class" , "y axis" ) . attr ( "clip-path" , e ? "url(#yaxis-clip)" : "" ) . call ( e ? w : oa ) . append ( "text" ) . attr ( "transform" , "rotate(-90)" ) . attr ( "dy" , "1.4em" ) . attr ( "dx" , "-.8em" ) . style ( "text-anchor" , "end" ) . text ( ac ) ; vb && f . append ( "g" ) . attr ( "class" , "y2 axis" ) . attr ( "transform" , "translate(" + ( e ? 0 : s ) + "," + ( e ? 10 : 0 ) + ")" ) . call ( $a ) ; pa && ( O . append ( "g" ) . attr ( "clip-path" , Da ) . attr ( "class" , "chart" ) , O . select ( ".chart" ) . append ( "g" ) . attr ( "class" , "chart-bars" ) , O . select ( ".chart" ) . append ( "g" ) . attr ( "class" ,
"chart-lines" ) , null !== ab && h a. extent ( M ? ab ( Ba , Qa ) : ab ( 0 , v ( ) - 1 ) ) , O . append ( "g" ) . attr ( "class" , "x brush" ) . call ( h a) . selectAll ( "rect" ) . attr ( "height" , qa ) , O . append ( "g" ) . attr ( "class" , "x axis" ) . attr ( "transform" , "translate(0," + qa + ")" ) . call ( i a) ) ; ra && bb ( b ) ; wb ( b ) ; P ( { withTransition : ! 1 } ) } function P ( a ) { var b = { } , d = 0 , g , c ; k ( k a) . forEach ( function ( a ) { for ( g = 0 ; g < r . length ; g ++ ) if ( ! ( 0 > r [ g ] . indexOf ( a . id ) ) ) for ( c = 0 ; c < r [ g ] . length ; c ++ ) if ( r [ g ] [ c ] in b ) { b [ a . id ] = b [ r [ g ] [ c ] ] ; break } l ( b [ a . id ] ) && ( b [ a . id ] = d ++ ) } ) ; b . _ _max _ _ = d - 1 ; var B = b . _ _max _ _ +
1 , j , n , m , C , za , a = i ( a ) ? a : { } ; withY = i ( a . withY ) ? a . withY : ! 0 ; withSubchart = i ( a . withSubchart ) ? a . withSubchart : ! 0 ; withTransition = i ( a . withTransition ) ? a . withTransition : ! 0 ; q . domain ( h a. empty ( ) ? H . domain ( ) : h a. extent ( ) ) ; D . domain ( U ( h . data . targets , "y" ) ) ; ga . domain ( U ( h . data . targets , "y2" ) ) ; f . selectAll ( ".x.axis" ) . transition ( ) . duration ( e ? 250 : 0 ) . call ( e ? oa : w ) ; f . selectAll ( ".y.axis" ) . transition ( ) . duration ( e ? 0 : 250 ) . call ( e ? w : oa ) ; f . selectAll ( ".y2.axis" ) . transition ( ) . call ( $a ) ; Pa . domain ( D . domain ( ) ) ; Oa . domain ( ga . domain ( ) ) ; if ( rb ) { if ( "year" ===
"chart-lines" ) , null !== ab && i a. extent ( H ? ab ( Ba , Qa ) : ab ( 0 , v ( ) - 1 ) ) , O . append ( "g" ) . attr ( "class" , "x brush" ) . call ( i a) . selectAll ( "rect" ) . attr ( "height" , qa ) , O . append ( "g" ) . attr ( "class" , "x axis" ) . attr ( "transform" , "translate(0," + qa + ")" ) . call ( j a) ) ; ra && bb ( b ) ; wb ( b ) ; P ( { withTransition : ! 1 } ) } function P ( a ) { var b = { } , d = 0 , g , c ; k ( l a) . forEach ( function ( a ) { for ( g = 0 ; g < r . length ; g ++ ) if ( ! ( 0 > r [ g ] . indexOf ( a . id ) ) ) for ( c = 0 ; c < r [ g ] . length ; c ++ ) if ( r [ g ] [ c ] in b ) { b [ a . id ] = b [ r [ g ] [ c ] ] ; break } l ( b [ a . id ] ) && ( b [ a . id ] = d ++ ) } ) ; b . _ _max _ _ = d - 1 ; var B = b . _ _max _ _ +
1 , j , n , m , C , za , a = i ( a ) ? a : { } ; withY = i ( a . withY ) ? a . withY : ! 0 ; withSubchart = i ( a . withSubchart ) ? a . withSubchart : ! 0 ; withTransition = i ( a . withTransition ) ? a . withTransition : ! 0 ; q . domain ( i a. empty ( ) ? I . domain ( ) : i a. extent ( ) ) ; D . domain ( U ( h . data . targets , "y" ) ) ; ga . domain ( U ( h . data . targets , "y2" ) ) ; f . selectAll ( ".x.axis" ) . transition ( ) . duration ( e ? 250 : 0 ) . call ( e ? oa : w ) ; f . selectAll ( ".y.axis" ) . transition ( ) . duration ( e ? 0 : 250 ) . call ( e ? w : oa ) ; f . selectAll ( ".y2.axis" ) . transition ( ) . call ( $a ) ; Pa . domain ( D . domain ( ) ) ; Oa . domain ( ga . domain ( ) ) ; if ( rb ) { if ( "year" ===
bc ) { a = [ ] ; firstYear = Ba . getFullYear ( ) ; lastYear = Qa . getFullYear ( ) ; for ( j = firstYear ; j <= lastYear ; j ++ ) a . push ( new Date ( j + "-01-01 00:00:00" ) ) } else a = q . ticks ( 10 ) ; a = f . select ( ".xgrids" ) . selectAll ( ".xgrid" ) . data ( a ) ; a . enter ( ) . append ( "line" ) . attr ( "class" , "xgrid" ) ; a . exit ( ) . remove ( ) ; f . selectAll ( ".xgrid" ) . attr ( "x1" , function ( a ) { return q ( a ) - w . tickOffset ( ) } ) . attr ( "x2" , function ( a ) { return q ( a ) - w . tickOffset ( ) } ) . attr ( "y1" , p . top ) . attr ( "y2" , u ) } Va && ( a = f . selectAll ( ".xgrid-lines" ) , a . selectAll ( "line" ) . attr ( "x1" , e ? 0 : T ) . attr ( "x2" ,
e ? s : T ) . attr ( "y1" , e ? T : p . top ) . attr ( "y2" , e ? T : u ) , a . selectAll ( "text" ) . attr ( "x" , e ? s : 0 ) . attr ( "y" , T ) ) ; withY && sb && ( ygrid = f . select ( ".ygrids" ) . selectAll ( ".ygrid" ) . data ( D . ticks ( 10 ) ) , ygrid . enter ( ) . append ( "line" ) . attr ( "class" , "ygrid" ) , ygrid . attr ( "x1" , e ? D : 0 ) . attr ( "x2" , e ? D : s ) . attr ( "y1" , e ? 0 : D ) . attr ( "y2" , e ? u : D ) . attr ( "opacity" , 0 ) . transition ( ) . attr ( "opacity" , 1 ) , ygrid . exit ( ) . remove ( ) ) ; withY && Wa && f . select ( ".ygrid-lines" ) . selectAll ( ".ygrid-line" ) . attr ( "y1" , Z ) . attr ( "y2" , Z ) ; m = 1.2 * w . tickOffset ( ) / B ; C = jb ( e ? null : u ) ; j = ya ( m , B ,
b ) ; n = hb ( C , b , e ) ; a = f . selectAll ( ".-bars" ) . selectAll ( ".-bar" ) . data ( kb ) ; a . transition ( ) . duration ( withTransition ? 250 : 0 ) . attr ( "x" , e ? n : j ) . attr ( "y" , e ? j : n ) . attr ( "width" , e ? C : m ) . attr ( "height" , e ? m : C ) ; a . enter ( ) . append ( "rect" ) . attr ( "class" , z ) . attr ( "x" , e ? n : j ) . attr ( "y" , e ? j : n ) . attr ( "width" , e ? C : m ) . attr ( "height" , e ? m : C ) . style ( "opacity" , 0 ) . transition ( ) . duration ( withTransition ? 250 : 0 ) . style ( "opacity" , 1 ) ; a . exit ( ) . transition ( ) . duration ( withTransition ? 250 : 0 ) . style ( "opacity" , 0 ) . remove ( ) ; f . selectAll ( ".-line" ) . transition ( ) . duration ( withTransition ?
250 : 0 ) . attr ( "d" , xb ) ; a = f . selectAll ( ".-circles" ) . selectAll ( ".-circle" ) . data ( Ka ) ; a . transition ( ) . duration ( withTransition ? 250 : 0 ) . attr ( "cx" , e ? G : F ) . attr ( "cy" , e ? F : G ) ; a . enter ( ) . append ( "circle" ) . attr ( "class" , y ) . attr ( "cx" , e ? G : F ) . attr ( "cy" , e ? F : G ) . attr ( "r" , Xa ) ; a . exit ( ) . remove ( ) ; withSubchart && pa && ( m = 1.2 * i a. tickOffset ( ) / B , C = jb ( qa , ! 0 ) , j = ya ( m , B , b , ! 0 ) , n = hb ( C , b , ! 1 , ! 0 ) , contextBar = O . selectAll ( ".-bars" ) . selectAll ( ".-bar" ) . data ( kb ) , contextBar . transition ( ) . duration ( withTransition ? 250 : 0 ) . attr ( "x" , j ) . attr ( "y" , n ) . attr ( "width" ,
m ) . attr ( "height" , C ) , contextBar . enter ( ) . append ( "rect" ) . attr ( "class" , z ) . attr ( "x" , j ) . attr ( "y" , n ) . attr ( "width" , m ) . attr ( "height" , C ) . style ( "opacity" , 0 ) . transition ( ) . style ( "opacity" , 1 ) , contextBar . exit ( ) . transition ( ) . style ( "opacity" , 0 ) . remove ( ) , O . selectAll ( ".-line" ) . transition ( ) . duration ( withTransition ? 250 : 0 ) . attr ( "d" , yb ) ) ; f . selectAll ( ".selected-circles" ) . filter ( function ( a ) { return k a( a ) } ) . selectAll ( "circle" ) . remove ( ) ; f . selectAll ( ".selected-circle" ) . transition ( ) . duration ( withTransition ? 250 : 0 ) . attr ( "cx" , e ?
G : F ) . attr ( "cy" , e ? F : G ) ; B = e ? u : s ; h a. empty ( ) ? a = 1 : ( a = H . domain ( ) , j = h a. extent ( ) , a = ( a [ 1 ] - a [ 0 ] ) / ( j [ 1 ] - j [ 0 ] ) ) ; za = B * a / ( v ( ) - 1 ) ; B = function ( a ) { return q ( a . x ) - za / 2 } ; f . selectAll ( ".event-rect" ) . attr ( "x" , e ? 0 : B ) . attr ( "y" , e ? B : 0 ) . attr ( "width" , e ? s : za ) . attr ( "height" , e ? za : u ) ; mainRegion = f . select ( ".regions" ) . selectAll ( "rect.region" ) . data ( I ) ; mainRegion . enter ( ) . append ( "rect" ) ; mainRegion . attr ( "class" , L ) . attr ( "x" , e ? 0 : cb ) . attr ( "y" , e ? cb : p . top ) . attr ( "width" , e ? s : zb ) . attr ( "height" , e ? zb : u ) . style ( "fill-opacity" , function ( a ) { return i ( a . opacity ) ?
a . opacity : 0.1 } ) ; mainRegion . exit ( ) . transition ( ) . duration ( withTransition ? 250 : 0 ) . style ( "fill-opacity" , 0 ) . remove ( ) } function wb ( a ) { var b ; f . select ( ".chart-bars" ) . selectAll ( ".chart-bar" ) . data ( a ) . enter ( ) . append ( "g" ) . attr ( "class" , function ( a ) { return "chart-bar target target-" + a . id } ) . style ( "pointer-events" , "none" ) . style ( "opacity" , 0 ) . append ( "g" ) . attr ( "class" , K ) . style ( "fill" , function ( a ) { return N ( a . id ) } ) . style ( "stroke" , function ( a ) { return N ( a . id ) } ) . style ( "stroke-width" , 0 ) . style ( "cursor" , function ( a ) { return ba ( a ) ?
"pointer" : null } ) ; b = f . select ( ".chart-lines" ) . selectAll ( ".chart-line" ) . data ( a ) . enter ( ) . append ( "g" ) . attr ( "class" , function ( a ) { return "chart-line target target-" + a . id } ) . style ( "pointer-events" , "none" ) . style ( "opacity" , 0 ) ; b . append ( "path" ) . attr ( "class" , J ) . style ( "stroke" , function ( a ) { return N ( a . id ) } ) ; b . append ( "g" ) . attr ( "class" , function ( a ) { return "selected-circles selected-circles-" + a . id } ) ; b . append ( "g" ) . attr ( "class" , ea ) . style ( "fill" , function ( a ) { return N ( a . id ) } ) . style ( "cursor" , function ( a ) { return ba ( a ) ? "pointer" :
null } ) ; a . forEach ( function ( a ) { f . selectAll ( ".selected-circles-" + a . id ) . selectAll ( ".selected-circle" ) . each ( function ( b ) { b . value = a . values [ b . x ] . value } ) } ) ; pa && ( b = O . select ( ".chart-bars" ) . selectAll ( ".chart-bar" ) . data ( a ) , b = b . enter ( ) . append ( "g" ) . attr ( "class" , function ( a ) { return "chart-bar target target-" + a . id } ) . style ( "opacity" , 0 ) , b . append ( "g" ) . attr ( "class" , K ) . style ( "fill" , function ( a ) { return N ( a . id ) } ) , b = O . select ( ".chart-lines" ) . selectAll ( ".chart-line" ) . data ( a ) , b = b . enter ( ) . append ( "g" ) . attr ( "class" , function ( a ) { return "chart-line target target-" +
a . id } ) . style ( "opacity" , 0 ) , b . append ( "path" ) . attr ( "class" , J ) . style ( "stroke" , function ( a ) { return N ( a . id ) } ) ) ; ra && bb ( a ) ; d3 . selectAll ( ".target" ) . transition ( ) . style ( "opacity" , 1 ) } function sa ( a , b ) { h . data . targets . forEach ( function ( b ) { for ( var g = 0 ; g < a . length ; g ++ ) if ( b . id === a [ g ] . id ) { b . values = a [ g ] . values ; a . splice ( g , 1 ) ; break } } ) ; h . data . targets = h . data . targets . concat ( a ) ; wb ( h . data . targets ) ; P ( ) ; b ( ) } function bb ( a ) { var b = La ( a ) , d = s / 2 - ta * Object . keys ( a ) . length / 2 , a = ua . selectAll ( ".legend-item" ) . data ( b ) . enter ( ) . append ( "g" ) . attr ( "class" ,
250 : 0 ) . attr ( "d" , xb ) ; a = f . selectAll ( ".-circles" ) . selectAll ( ".-circle" ) . data ( Ka ) ; a . transition ( ) . duration ( withTransition ? 250 : 0 ) . attr ( "cx" , e ? G : F ) . attr ( "cy" , e ? F : G ) ; a . enter ( ) . append ( "circle" ) . attr ( "class" , y ) . attr ( "cx" , e ? G : F ) . attr ( "cy" , e ? F : G ) . attr ( "r" , Xa ) ; a . exit ( ) . remove ( ) ; withSubchart && pa && ( m = 1.2 * j a. tickOffset ( ) / B , C = jb ( qa , ! 0 ) , j = ya ( m , B , b , ! 0 ) , n = hb ( C , b , ! 1 , ! 0 ) , contextBar = O . selectAll ( ".-bars" ) . selectAll ( ".-bar" ) . data ( kb ) , contextBar . transition ( ) . duration ( withTransition ? 250 : 0 ) . attr ( "x" , j ) . attr ( "y" , n ) . attr ( "width" ,
m ) . attr ( "height" , C ) , contextBar . enter ( ) . append ( "rect" ) . attr ( "class" , z ) . attr ( "x" , j ) . attr ( "y" , n ) . attr ( "width" , m ) . attr ( "height" , C ) . style ( "opacity" , 0 ) . transition ( ) . style ( "opacity" , 1 ) , contextBar . exit ( ) . transition ( ) . style ( "opacity" , 0 ) . remove ( ) , O . selectAll ( ".-line" ) . transition ( ) . duration ( withTransition ? 250 : 0 ) . attr ( "d" , yb ) ) ; f . selectAll ( ".selected-circles" ) . filter ( function ( a ) { return l a( a ) } ) . selectAll ( "circle" ) . remove ( ) ; f . selectAll ( ".selected-circle" ) . transition ( ) . duration ( withTransition ? 250 : 0 ) . attr ( "cx" , e ?
G : F ) . attr ( "cy" , e ? F : G ) ; B = e ? u : s ; i a. empty ( ) ? a = 1 : ( a = I . domain ( ) , j = i a. extent ( ) , a = ( a [ 1 ] - a [ 0 ] ) / ( j [ 1 ] - j [ 0 ] ) ) ; za = B * a / ( v ( ) - 1 ) ; B = function ( a ) { return q ( a . x ) - za / 2 } ; f . selectAll ( ".event-rect" ) . attr ( "x" , e ? 0 : B ) . attr ( "y" , e ? B : 0 ) . attr ( "width" , e ? s : za ) . attr ( "height" , e ? za : u ) ; mainRegion = f . select ( ".regions" ) . selectAll ( "rect.region" ) . data ( J ) ; mainRegion . enter ( ) . append ( "rect" ) ; mainRegion . attr ( "class" , M ) . attr ( "x" , e ? 0 : cb ) . attr ( "y" , e ? cb : p . top ) . attr ( "width" , e ? s : zb ) . attr ( "height" , e ? zb : u ) . style ( "fill-opacity" , function ( a ) { return i ( a . opacity ) ?
a . opacity : 0.1 } ) ; mainRegion . exit ( ) . transition ( ) . duration ( withTransition ? 250 : 0 ) . style ( "fill-opacity" , 0 ) . remove ( ) } function wb ( a ) { var b ; f . select ( ".chart-bars" ) . selectAll ( ".chart-bar" ) . data ( a ) . enter ( ) . append ( "g" ) . attr ( "class" , function ( a ) { return "chart-bar target target-" + a . id } ) . style ( "pointer-events" , "none" ) . style ( "opacity" , 0 ) . append ( "g" ) . attr ( "class" , L ) . style ( "fill" , function ( a ) { return N ( a . id ) } ) . style ( "stroke" , function ( a ) { return N ( a . id ) } ) . style ( "stroke-width" , 0 ) . style ( "cursor" , function ( a ) { return ba ( a ) ?
"pointer" : null } ) ; b = f . select ( ".chart-lines" ) . selectAll ( ".chart-line" ) . data ( a ) . enter ( ) . append ( "g" ) . attr ( "class" , function ( a ) { return "chart-line target target-" + a . id } ) . style ( "pointer-events" , "none" ) . style ( "opacity" , 0 ) ; b . append ( "path" ) . attr ( "class" , K ) . style ( "stroke" , function ( a ) { return N ( a . id ) } ) ; b . append ( "g" ) . attr ( "class" , function ( a ) { return "selected-circles selected-circles-" + a . id } ) ; b . append ( "g" ) . attr ( "class" , ea ) . style ( "fill" , function ( a ) { return N ( a . id ) } ) . style ( "cursor" , function ( a ) { return ba ( a ) ? "pointer" :
null } ) ; a . forEach ( function ( a ) { f . selectAll ( ".selected-circles-" + a . id ) . selectAll ( ".selected-circle" ) . each ( function ( b ) { b . value = a . values [ b . x ] . value } ) } ) ; pa && ( b = O . select ( ".chart-bars" ) . selectAll ( ".chart-bar" ) . data ( a ) , b = b . enter ( ) . append ( "g" ) . attr ( "class" , function ( a ) { return "chart-bar target target-" + a . id } ) . style ( "opacity" , 0 ) , b . append ( "g" ) . attr ( "class" , L ) . style ( "fill" , function ( a ) { return N ( a . id ) } ) , b = O . select ( ".chart-lines" ) . selectAll ( ".chart-line" ) . data ( a ) , b = b . enter ( ) . append ( "g" ) . attr ( "class" , function ( a ) { return "chart-line target target-" +
a . id } ) . style ( "opacity" , 0 ) , b . append ( "path" ) . attr ( "class" , K ) . style ( "stroke" , function ( a ) { return N ( a . id ) } ) ) ; ra && bb ( a ) ; d3 . selectAll ( ".target" ) . transition ( ) . style ( "opacity" , 1 ) } function sa ( a , b ) { h . data . targets . forEach ( function ( b ) { for ( var g = 0 ; g < a . length ; g ++ ) if ( b . id === a [ g ] . id ) { b . values = a [ g ] . values ; a . splice ( g , 1 ) ; break } } ) ; h . data . targets = h . data . targets . concat ( a ) ; wb ( h . data . targets ) ; P ( ) ; b ( ) } function bb ( a ) { var b = La ( a ) , d = s / 2 - ta * Object . keys ( a ) . length / 2 , a = ua . selectAll ( ".legend-item" ) . data ( b ) . enter ( ) . append ( "g" ) . attr ( "class" ,
function ( a ) { return "legend-item legend-item-" + a } ) . style ( "cursor" , "pointer" ) . on ( "click" , function ( a ) { cc ( a ) } ) . on ( "mouseover" , function ( a ) { d3 . selectAll ( ".legend-item" ) . filter ( function ( b ) { return b !== a } ) . transition ( ) . duration ( 100 ) . style ( "opacity" , 0.3 ) ; h . focus ( a ) } ) . on ( "mouseout" , function ( ) { d3 . selectAll ( ".legend-item" ) . transition ( ) . duration ( 100 ) . style ( "opacity" , 1 ) ; h . revert ( ) } ) ; a . append ( "rect" ) . attr ( "class" , "legend-item-event" ) . style ( "fill-opacity" , 0 ) . attr ( "x" , - 200 ) . attr ( "y" , function ( ) { return ca / 2 - 16 } ) . attr ( "width" ,
ta ) . attr ( "height" , 24 ) ; a . append ( "rect" ) . attr ( "class" , "legend-item-tile" ) . style ( "fill" , function ( a ) { return N ( a ) } ) . attr ( "x" , - 200 ) . attr ( "y" , function ( ) { return ca / 2 - 9 } ) . attr ( "width" , 10 ) . attr ( "height" , 10 ) ; a . append ( "text" ) . text ( function ( a ) { return i ( na [ a ] ) ? na [ a ] : a } ) . attr ( "x" , - 200 ) . attr ( "y" , function ( ) { return ca / 2 } ) ; ua . selectAll ( "rect.legend-item-event" ) . data ( b ) . transition ( ) . attr ( "x" , function ( a , b ) { return d + ta * b } ) ; ua . selectAll ( "rect.legend-item-tile" ) . data ( b ) . transition ( ) . attr ( "x" , function ( a , b ) { return d + ta * b } ) ;
ua . selectAll ( "text" ) . data ( b ) . transition ( ) . attr ( "x" , function ( a , b ) { return d + ta * b + 14 } ) } function va ( a ) { return i ( a ) ? ".target-" + a : ".target" } var h = { data : { } } , Ca = { } , W = "_expanded_" , X = "_selected_" , Za = "_included_" ; if ( ! ( "bindto" in n ) ) throw Error ( "bindto is required in config" ) ; var dc = c ( [ "size" , "width" ] , 640 ) , Ga = c ( [ "size" , "height" ] , 280 ) ; if ( ! ( "data" in n ) ) throw Error ( "data is required in config" ) ; var Aa = c ( [ "data" , "x" ] , "x" ) , ec = c ( [ "data" , "x_format" ] , "%Y-%m-%d" ) , Ub = c ( [ "data" , "id_converter" ] , function ( a ) { return a } ) , na =
c ( [ "data" , "names" ] , { } ) , r = c ( [ "data" , "groups" ] , [ ] ) , ib = c ( [ "data" , "axes" ] , { } ) , $ = c ( [ "data" , "types" ] , { } ) , Ab = c ( [ "data" , "regions" ] , { } ) , Bb = c ( [ "data" , "colors" ] , { } ) , V = c ( [ "data" , "selection" , "enabled" ] , ! 1 ) , aa = c ( [ "data" , "selection" , "grouped" ] , ! 1 ) , ba = c ( [ "data" , "selection" , "isselectable" ] , function ( ) { return ! 0 } ) , pa = c ( [ "subchart" , "show" ] , ! 1 ) , Cb = pa ? c ( [ "subchart" , "size" , "height" ] , 60 ) : 0 , ab = c ( [ "subchart" , "default" ] , null ) , Db = c ( [ "color" , "pattern" ] , null ) , ra = c ( [ "legend" , "show" ] , ! 0 ) , ta = c ( [ "legend" , "item" , "width" ] , 80 ) , cc = c ( [ "legend" ,
"item" , "onclick" ] , function ( ) { } ) , Eb = c ( [ "axis" , "x" , "type" ] , "indexed" ) , Ha = c ( [ "axis" , "x" , "categories" ] , [ ] ) , Fb = c ( [ "axis" , "x" , "tick" , "centered" ] , ! 1 ) , Rb = c ( [ "axis" , "y" , "max" ] , null ) , Pb = c ( [ "axis" , "y" , "min" ] , null ) , Tb = c ( [ "axis" , "y" , "center" ] , null ) , ac = c ( [ "axis" , "y" , "text" ] , null ) ; c ( [ "axis" , "y" , "rescale" ] , ! 0 ) ; var vb = c ( [ "axis" , "y2" , "show" ] , ! 1 ) , Qb = c ( [ "axis" , "y2" , "max" ] , null ) , Ob = c ( [ "axis" , "y2" , "min" ] , null ) , Sb = c ( [ "axis" , "y2" , "center" ] , null ) ; c ( [ "axis" , "y2" , "text" ] , null ) ; c ( [ "axis" , "y2" , "rescale" ] , ! 0 ) ; var e = c ( [ "axis" ,
"rotated" ] , ! 1 ) , rb = c ( [ "grid" , "x" , "show" ] , ! 1 ) , bc = c ( [ "grid" , "x" , "type" ] , "tick" ) , Va = c ( [ "grid" , "x" , "lines" ] , null ) , sb = c ( [ "grid" , "y" , "show" ] , ! 1 ) ; c ( [ "grid" , "y" , "type" ] , "tick" ) ; var Wa = c ( [ "grid" , "y" , "lines" ] , null ) , Xa = c ( [ "point" , "show" ] , ! 0 ) ? c ( [ "point" , "r" ] , 2.5 ) : 0 , Yb = c ( [ "point" , "focus" , "line" , "enabled" ] , ! 0 ) , tb = c ( [ "point" , "focus" , "expand" , "enabled" ] , ! 0 ) , ub = c ( [ "point" , "focus" , "expand" , "r" ] , tb ? 4 : Xa ) , ma = c ( [ "point" , "focus" , "select" , "r" ] , 8 ) , $b = c ( [ "point" , "onclick" ] , function ( ) { } ) , Vb = c ( [ "point" , "onselected" ] , function ( ) { } ) ,
Wb = c ( [ "point" , "onunselected" ] , function ( ) { } ) , I = c ( [ "regions" ] , [ ] ) , Zb = c ( [ "tooltip" , "contents" ] , function ( a ) { var b = "<table class='-tooltip'><tr><th colspan='2'>" + ( M ? a [ 0 ] . x . getFullYear ( ) + "." + ( a [ 0 ] . x . getMonth ( ) + 1 ) + "." + a [ 0 ] . x . getDate ( ) : wa ? a [ 0 ] . x < Ha . length ? Ha [ a [ 0 ] . x ] : a [ 0 ] . x : a [ 0 ] . x ) + "</th></tr>" , d , c , e ; for ( d = 0 ; d < a . length ; d ++ ) i ( a [ d ] ) ? ( c = i ( a [ d ] . value ) ? ( Math . round ( 100 * a [ d ] . value ) / 100 ) . toFixed ( 2 ) : "-" , e = a [ d ] . name ) : e = c = "-" , b += "<tr><td><span style='background-color:" + N ( a [ d ] . id ) + "'></span>" + e + "</td><td class='value'>" +
c + "</td></tr>" ; return b + "</table>" } ) , Gb = n . bindto . replace ( "#" , "" ) + "-clip" , Da = "url(#" + Gb + ")" , M = "timeseries" === Eb , wa = "categorized" === Eb , Ya = null , Ea = ! 1 , ca = ra ? 40 : 0 , Hb , db = [ [ d3 . time . format ( "%Y/%-m/%-d" ) , function ( ) { return ! 0 } ] , [ d3 . time . format ( "%-m/%-d" ) , function ( a ) { return a . getMonth ( ) } ] , [ d3 . time . format ( "%-m/%-d" ) , function ( a ) { return 1 != a . getDate ( ) } ] , [ d3 . time . format ( "%-m/%-d" ) , function ( a ) { return a . getDay ( ) && 1 != a . getDate ( ) } ] , [ d3 . time . format ( "%I %p" ) , function ( a ) { return a . getHours ( ) } ] , [ d3 . time . format ( "%I:%M" ) , function ( a ) { return a . getMinutes ( ) } ] ,
[ d3 . time . format ( ":%S" ) , function ( a ) { return a . getSeconds ( ) } ] , [ d3 . time . format ( ".%L" ) , function ( a ) { return a . getMilliseconds ( ) } ] ] ; Hb = function ( a ) { for ( var b = db . length - 1 , d = db [ b ] ; ! d [ 1 ] ( a ) ; ) d = db [ -- b ] ; return d [ 0 ] ( a ) } ; var p = { top : 0 , right : vb && ! e ? 50 : 1 , bottom : 20 + Cb + ca , left : 40 } , Ib = Ga - Cb - ca , fc = Ga - ca , s = dc - p . left - p . right , u = Ga - p . top - p . bottom , qa = Ga - Ib - ( 20 + ca ) , l a= d3 . time . format ( ec ) . parse , Jb = e ? 0 : u , Kb = e ? s : 1 , q = Na ( e ? 10 : 0 , e ? u : s ) , D = j a( Jb , Kb ) , ga = j a( Jb , Kb ) , H = Na ( 0 , s ) , Pa = j a( qa , 10 ) , Oa = j a( qa , 10 ) , w = wa ? gb ( ) : d3 . svg . axis ( ) , oa = d3 . svg . axis ( ) ,
$a = d3 . svg . axis ( ) , i a= wa ? gb ( ) : d3 . svg . axis ( ) ; w . scale ( q ) . orient ( e ? "left" : "bottom" ) ; oa . scale ( D ) . orient ( e ? "bottom" : "left" ) ; $a . scale ( ga ) . orient ( e ? "top" : "right" ) ; i a. scale ( H ) . orient ( "bottom" ) ; M && w . tickFormat ( Hb ) ; wa ? ( w . categories ( Ha ) . tickCentered ( Fb ) , i a. categories ( Ha ) . tickCentered ( Fb ) ) : ( w . tickOffset = function ( ) { return 0 } , i a. tickOffset = function ( ) { return 0 } ) ; if ( wa ) { var Ia = q , Lb = H , Mb = Object . keys ( q ) , xa , Ja , q = function ( a ) { return Ia ( a ) + w . tickOffset ( ) } , H = function ( a ) { return Lb ( a ) + i a. tickOffset ( ) } ; for ( Ja = 0 ; Ja < Mb . length ; Ja ++ ) xa =
Mb [ Ja ] , q [ xa ] = Ia [ xa ] , H [ xa ] = Lb [ xa ] ; q . domain = function ( a ) { if ( ! arguments . length ) return a = Ia . domain ( ) , a [ 1 ] ++ , a ; Ia . domain ( a ) ; return q } } var xb , eb = d3 . svg . line ( ) . x ( e ? function ( a ) { return A ( a . id ) ( a . value ) } : Y ) . y ( e ? Y : function ( a ) { return A ( a . id ) ( a . value ) } ) ; xb = function ( a ) { var b ; if ( Sa ( a ) ) { "spline" === $ [ "string" === typeof a ? a : a . id ] ? eb . interpolate ( "cardinal" ) : eb . interpolate ( "linear" ) ; if ( 0 < Object . keys ( Ab ) . length ) { b = a . values ; var d = q , c = A ( a . id ) , a = Ab [ a . id ] , f , h , j = "M" , m , n , p , k , r , s ; if ( i ( a ) ) for ( f = 0 ; f < a . length ; f ++ ) l ( a [ f ] . start ) ? a [ f ] . start =
b [ 0 ] . x : M && ( a [ f ] . start = l a( a [ f ] . start ) ) , l ( a [ f ] . end ) ? a [ f ] . end = b [ b . length - 1 ] . x : M && ( a [ f ] . end = l a( a [ f ] . end ) ) ; r = e ? function ( a ) { return c ( a . value ) } : function ( a ) { return d ( a . x ) } ; s = e ? function ( a ) { return d ( a . x ) } : function ( a ) { return c ( a . value ) } ; m = M ? function ( a , b , e , f ) { var h = a . x . getTime ( ) , a = b . x - a . x , b = new Date ( h + a * ( e + f ) ) ; return "M" + d ( new Date ( h + a * e ) ) + " " + c ( p ( e ) ) + " " + d ( b ) + " " + c ( p ( e + f ) ) } : function ( a , b , e , f ) { return "M" + d ( n ( e ) ) + " " + c ( p ( e ) ) + " " + d ( n ( e + f ) ) + " " + c ( p ( e + f ) ) } ; for ( f = 0 ; f < b . length ; f ++ ) { if ( ! ( h = l ( a ) ) ) { a : { h = b [ f ] . x ; k = void 0 ;
for ( k = 0 ; k < a . length ; k ++ ) if ( a [ k ] . start < h && h <= a [ k ] . end ) { h = ! 0 ; break a } h = ! 1 } h = ! h } if ( h ) j += " " + r ( b [ f ] ) + " " + s ( b [ f ] ) ; else { n = Na ( b [ f - 1 ] . x , b [ f ] . x ) ; p = j a( b [ f - 1 ] . value , b [ f ] . value ) ; h = d ( b [ f ] . x ) - d ( b [ f - 1 ] . x ) ; k = c ( b [ f ] . value ) - c ( b [ f - 1 ] . value ) ; h = Math . sqrt ( Math . pow ( h , 2 ) + Math . pow ( k , 2 ) ) ; k = 2 / h ; diffx2 = 2 * k ; for ( h = k ; 1 >= h ; h += diffx2 ) j += m ( b [ f - 1 ] , b [ f ] , h , k ) } } b = j } else b = eb ( a . values ) ; return b } b = q ( a . values [ 0 ] . x ) ; a = A ( a . id ) ( a . values [ 0 ] . value ) ; return e ? "M " + a + " " + b : "M " + b + " " + a } ; var yb , gc = d3 . svg . line ( ) . x ( function ( a ) { return H ( a . x ) } ) . y ( function ( a ) { return Q ( a . id ) ( a . value ) } ) ;
yb = function ( a ) { return Sa ( a ) ? gc ( a . values ) : "M " + H ( a . values [ 0 ] . x ) + " " + Q ( a . id ) ( a . values [ 0 ] . value ) } ; var cb = function ( a ) { return "start" in a ? q ( M ? l a( a . start ) : a . start ) : 0 } , zb = function ( a ) { var b = cb ( a ) , a = ( "end" in a ? q ( M ? l a( a . end ) : a . end ) : s ) - b ; return 0 > a ? 0 : a } , N , fb = [ ] , Nb = null !== Db ? Db : "#1f77b4 #ff7f0e #2ca02c #d62728 #9467bd #8c564b #e377c2 #7f7f7f #bcbd22 #17becf" . split ( " " ) ; N = function ( a ) { if ( a in Bb ) return Bb [ a ] ; 0 <= fb . indexOf ( a ) || fb . push ( a ) ; return Nb [ fb . indexOf ( a ) % Nb . length ] } ; var da = d3 . select ( n . bindto ) . append ( "svg" ) . attr ( "width" ,
Wb = c ( [ "point" , "onunselected" ] , function ( ) { } ) , J = c ( [ "regions" ] , [ ] ) , Zb = c ( [ "tooltip" , "contents" ] , function ( a ) { var b = "<table class='-tooltip'><tr><th colspan='2'>" + ( H ? a [ 0 ] . x . getFullYear ( ) + "." + ( a [ 0 ] . x . getMonth ( ) + 1 ) + "." + a [ 0 ] . x . getDate ( ) : wa ? a [ 0 ] . x < Ha . length ? Ha [ a [ 0 ] . x ] : a [ 0 ] . x : a [ 0 ] . x ) + "</th></tr>" , d , c , e ; for ( d = 0 ; d < a . length ; d ++ ) i ( a [ d ] ) ? ( c = i ( a [ d ] . value ) ? ( Math . round ( 100 * a [ d ] . value ) / 100 ) . toFixed ( 2 ) : "-" , e = a [ d ] . name ) : e = c = "-" , b += "<tr><td><span style='background-color:" + N ( a [ d ] . id ) + "'></span>" + e + "</td><td class='value'>" +
c + "</td></tr>" ; return b + "</table>" } ) , Gb = n . bindto . replace ( "#" , "" ) + "-clip" , Da = "url(#" + Gb + ")" , H = "timeseries" === Eb , wa = "categorized" === Eb , Ya = null , Ea = ! 1 , ca = ra ? 40 : 0 , Hb , db = [ [ d3 . time . format ( "%Y/%-m/%-d" ) , function ( ) { return ! 0 } ] , [ d3 . time . format ( "%-m/%-d" ) , function ( a ) { return a . getMonth ( ) } ] , [ d3 . time . format ( "%-m/%-d" ) , function ( a ) { return 1 != a . getDate ( ) } ] , [ d3 . time . format ( "%-m/%-d" ) , function ( a ) { return a . getDay ( ) && 1 != a . getDate ( ) } ] , [ d3 . time . format ( "%I %p" ) , function ( a ) { return a . getHours ( ) } ] , [ d3 . time . format ( "%I:%M" ) , function ( a ) { return a . getMinutes ( ) } ] ,
[ d3 . time . format ( ":%S" ) , function ( a ) { return a . getSeconds ( ) } ] , [ d3 . time . format ( ".%L" ) , function ( a ) { return a . getMilliseconds ( ) } ] ] ; Hb = function ( a ) { for ( var b = db . length - 1 , d = db [ b ] ; ! d [ 1 ] ( a ) ; ) d = db [ -- b ] ; return d [ 0 ] ( a ) } ; var p = { top : 0 , right : vb && ! e ? 50 : 1 , bottom : 20 + Cb + ca , left : 40 } , Ib = Ga - Cb - ca , fc = Ga - ca , s = dc - p . left - p . right , u = Ga - p . top - p . bottom , qa = Ga - Ib - ( 20 + ca ) , h a= d3 . time . format ( ec ) . parse , Jb = e ? 0 : u , Kb = e ? s : 1 , q = Na ( e ? 10 : 0 , e ? u : s ) , D = k a( Jb , Kb ) , ga = k a( Jb , Kb ) , I = Na ( 0 , s ) , Pa = k a( qa , 10 ) , Oa = k a( qa , 10 ) , w = wa ? gb ( ) : d3 . svg . axis ( ) , oa = d3 . svg . axis ( ) ,
$a = d3 . svg . axis ( ) , j a= wa ? gb ( ) : d3 . svg . axis ( ) ; w . scale ( q ) . orient ( e ? "left" : "bottom" ) ; oa . scale ( D ) . orient ( e ? "bottom" : "left" ) ; $a . scale ( ga ) . orient ( e ? "top" : "right" ) ; j a. scale ( I ) . orient ( "bottom" ) ; H && w . tickFormat ( Hb ) ; wa ? ( w . categories ( Ha ) . tickCentered ( Fb ) , j a. categories ( Ha ) . tickCentered ( Fb ) ) : ( w . tickOffset = function ( ) { return 0 } , j a. tickOffset = function ( ) { return 0 } ) ; if ( wa ) { var Ia = q , Lb = I , Mb = Object . keys ( q ) , xa , Ja , q = function ( a ) { return Ia ( a ) + w . tickOffset ( ) } , I = function ( a ) { return Lb ( a ) + j a. tickOffset ( ) } ; for ( Ja = 0 ; Ja < Mb . length ; Ja ++ ) xa =
Mb [ Ja ] , q [ xa ] = Ia [ xa ] , I [ xa ] = Lb [ xa ] ; q . domain = function ( a ) { if ( ! arguments . length ) return a = Ia . domain ( ) , a [ 1 ] ++ , a ; Ia . domain ( a ) ; return q } } var xb , eb = d3 . svg . line ( ) . x ( e ? function ( a ) { return A ( a . id ) ( a . value ) } : Y ) . y ( e ? Y : function ( a ) { return A ( a . id ) ( a . value ) } ) ; xb = function ( a ) { var b ; if ( Sa ( a ) ) { "spline" === $ [ "string" === typeof a ? a : a . id ] ? eb . interpolate ( "cardinal" ) : eb . interpolate ( "linear" ) ; if ( 0 < Object . keys ( Ab ) . length ) { b = a . values ; var d = q , c = A ( a . id ) , a = Ab [ a . id ] , f , h , j = "M" , m , n , p , k , r , s ; if ( i ( a ) ) for ( f = 0 ; f < a . length ; f ++ ) l ( a [ f ] . start ) ? a [ f ] . start =
b [ 0 ] . x : H && ( a [ f ] . start = h a( a [ f ] . start ) ) , l ( a [ f ] . end ) ? a [ f ] . end = b [ b . length - 1 ] . x : H && ( a [ f ] . end = h a( a [ f ] . end ) ) ; r = e ? function ( a ) { return c ( a . value ) } : function ( a ) { return d ( a . x ) } ; s = e ? function ( a ) { return d ( a . x ) } : function ( a ) { return c ( a . value ) } ; m = H ? function ( a , b , e , f ) { var h = a . x . getTime ( ) , a = b . x - a . x , b = new Date ( h + a * ( e + f ) ) ; return "M" + d ( new Date ( h + a * e ) ) + " " + c ( p ( e ) ) + " " + d ( b ) + " " + c ( p ( e + f ) ) } : function ( a , b , e , f ) { return "M" + d ( n ( e ) ) + " " + c ( p ( e ) ) + " " + d ( n ( e + f ) ) + " " + c ( p ( e + f ) ) } ; for ( f = 0 ; f < b . length ; f ++ ) { if ( ! ( h = l ( a ) ) ) { a : { h = b [ f ] . x ; k = void 0 ;
for ( k = 0 ; k < a . length ; k ++ ) if ( a [ k ] . start < h && h <= a [ k ] . end ) { h = ! 0 ; break a } h = ! 1 } h = ! h } if ( h ) j += " " + r ( b [ f ] ) + " " + s ( b [ f ] ) ; else { n = Na ( b [ f - 1 ] . x , b [ f ] . x ) ; p = k a( b [ f - 1 ] . value , b [ f ] . value ) ; h = d ( b [ f ] . x ) - d ( b [ f - 1 ] . x ) ; k = c ( b [ f ] . value ) - c ( b [ f - 1 ] . value ) ; h = Math . sqrt ( Math . pow ( h , 2 ) + Math . pow ( k , 2 ) ) ; k = 2 / h ; diffx2 = 2 * k ; for ( h = k ; 1 >= h ; h += diffx2 ) j += m ( b [ f - 1 ] , b [ f ] , h , k ) } } b = j } else b = eb ( a . values ) ; return b } b = q ( a . values [ 0 ] . x ) ; a = A ( a . id ) ( a . values [ 0 ] . value ) ; return e ? "M " + a + " " + b : "M " + b + " " + a } ; var yb , gc = d3 . svg . line ( ) . x ( function ( a ) { return I ( a . x ) } ) . y ( function ( a ) { return Q ( a . id ) ( a . value ) } ) ;
yb = function ( a ) { return Sa ( a ) ? gc ( a . values ) : "M " + I ( a . values [ 0 ] . x ) + " " + Q ( a . id ) ( a . values [ 0 ] . value ) } ; var cb = function ( a ) { return "start" in a ? q ( H ? h a( a . start ) : a . start ) : 0 } , zb = function ( a ) { var b = cb ( a ) , a = ( "end" in a ? q ( H ? h a( a . end ) : a . end ) : s ) - b ; return 0 > a ? 0 : a } , N , fb = [ ] , Nb = null !== Db ? Db : "#1f77b4 #ff7f0e #2ca02c #d62728 #9467bd #8c564b #e377c2 #7f7f7f #bcbd22 #17becf" . split ( " " ) ; N = function ( a ) { if ( a in Bb ) return Bb [ a ] ; 0 <= fb . indexOf ( a ) || fb . push ( a ) ; return Nb [ fb . indexOf ( a ) % Nb . length ] } ; var da = d3 . select ( n . bindto ) . append ( "svg" ) . attr ( "width" ,
s + p . left + p . right ) . attr ( "height" , u + p . top + p . bottom ) ; da . append ( "defs" ) ; da . select ( "defs" ) . append ( "clipPath" ) . attr ( "id" , Gb ) . append ( "rect" ) . attr ( "y" , p . top ) . attr ( "width" , s ) . attr ( "height" , u - p . top ) ; da . select ( "defs" ) . append ( "clipPath" ) . attr ( "id" , "xaxis-clip" ) . append ( "rect" ) . attr ( "x" , - 1 ) . attr ( "y" , - 1 ) . attr ( "width" , s + 2 ) . attr ( "height" , 40 ) ; da . select ( "defs" ) . append ( "clipPath" ) . attr ( "id" , "yaxis-clip" ) . append ( "rect" ) . attr ( "x" , - 39 ) . attr ( "y" , p . top - 1 ) . attr ( "width" , 40 ) . attr ( "height" , u - p . top + 2 ) ; var f = da . append ( "g" ) . attr ( "transform" ,
"translate(" + p . left + "," + p . top + ")" ) , O = null ; pa && ( O = da . append ( "g" ) . attr ( "transform" , "translate(40," + Ib + ")" ) ) ; var ua = null ; ra && ( ua = da . append ( "g" ) . attr ( "transform" , "translate(40," + fc + ")" ) ) ; var Fa = d3 . select ( n . bindto ) . style ( "position" , "relative" ) . append ( "div" ) . style ( "position" , "absolute" ) . style ( "width" , "30%" ) . style ( "z-index" , "10" ) . style ( "visibility" , "hidden" ) , h a= d3 . svg . brush ( ) . x ( H ) . on ( "brush" , function ( ) { P ( { withTransition : ! 1 , withY : ! 1 , withSubchart : ! 1 } ) } ) , Ba = null , Qa = null ; h . focus = function ( a ) { h . defocus ( ) ; d3 . selectAll ( va ( a ) ) . filter ( function ( a ) { return Ma ( a . id ) } ) . classed ( "focused" ,
"translate(" + p . left + "," + p . top + ")" ) , O = null ; pa && ( O = da . append ( "g" ) . attr ( "transform" , "translate(40," + Ib + ")" ) ) ; var ua = null ; ra && ( ua = da . append ( "g" ) . attr ( "transform" , "translate(40," + fc + ")" ) ) ; var Fa = d3 . select ( n . bindto ) . style ( "position" , "relative" ) . append ( "div" ) . style ( "position" , "absolute" ) . style ( "width" , "30%" ) . style ( "z-index" , "10" ) . style ( "visibility" , "hidden" ) , i a= d3 . svg . brush ( ) . x ( I ) . on ( "brush" , function ( ) { P ( { withTransition : ! 1 , withY : ! 1 , withSubchart : ! 1 } ) } ) , Ba = null , Qa = null ; h . focus = function ( a ) { h . defocus ( ) ; d3 . selectAll ( va ( a ) ) . filter ( function ( a ) { return Ma ( a . id ) } ) . classed ( "focused" ,
! 0 ) . transition ( ) . duration ( 100 ) . style ( "opacity" , 1 ) } ; h . defocus = function ( a ) { d3 . selectAll ( va ( a ) ) . filter ( function ( a ) { return Ma ( a . id ) } ) . classed ( "focused" , ! 1 ) . transition ( ) . duration ( 100 ) . style ( "opacity" , 0.3 ) } ; h . revert = function ( a ) { d3 . selectAll ( va ( a ) ) . filter ( function ( a ) { return Ma ( a . id ) } ) . classed ( "focused" , ! 1 ) . transition ( ) . duration ( 100 ) . style ( "opacity" , 1 ) } ; h . show = function ( a ) { d3 . selectAll ( va ( a ) ) . transition ( ) . style ( "opacity" , 1 ) } ; h . hide = function ( a ) { d3 . selectAll ( va ( a ) ) . transition ( ) . style ( "opacity" , 0 ) } ; h . load = function ( a ) { l ( a . done ) &&
( a . done = function ( ) { } ) ; var b ; if ( b = "cacheIds" in a ) a : { b = a . cacheIds ; for ( var d = 0 ; d < b . length ; d ++ ) if ( ! ( b [ d ] in Ca ) ) { b = ! 1 ; break a } b = ! 0 } if ( b ) { b = a . cacheIds ; for ( var d = [ ] , c = 0 ; c < b . length ; c ++ ) b [ c ] in Ca && d . push ( S ( Ca [ b [ c ] ] ) ) ; sa ( d , a . done ) } else if ( "data" in a ) sa ( E ( data ) , a . done ) ; else if ( "url" in a ) d3 . csv ( a . url , function ( b , d ) { sa ( E ( d ) , a . done ) } ) ; else if ( "rows" in a ) sa ( E ( fa ( a . rows ) ) , a . done ) ; else if ( "columns" in a ) sa ( E ( R ( a . columns ) ) , a . done ) ; else throw Error ( "url or rows or columns is required." ) ; } ; h . unload = function ( a ) { h . data . targets =
h . data . targets . filter ( function ( b ) { return b . id != a } ) ; d3 . selectAll ( ".target-" + a ) . transition ( ) . style ( "opacity" , 0 ) . remove ( ) ; ra && ( d3 . selectAll ( ".legend-item-" + a ) . remove ( ) , bb ( h . data . targets ) ) ; 0 < h . data . targets . length && P ( ) } ; h . selected = function ( a ) { a = i ( a ) ? "-" + a : "" ; return d3 . merge ( f . selectAll ( ".-shapes" + a ) . selectAll ( ".-shape" ) . filter ( function ( ) { return d3 . select ( this ) . classed ( X ) } ) . map ( function ( a ) { return a . map ( function ( a ) { return a . _ _data _ _ } ) } ) ) } ; h . select = function ( a , b , d ) { V && f . selectAll ( ".-shapes" ) . selectAll ( ".-shape" ) . each ( function ( c ,
e ) { var f = "circle" === this . nodeName ? nb : Xb , h = "circle" === this . nodeName ? Ta : pb ; 0 <= b . indexOf ( e ) ? ba ( c ) && ( aa || l ( a ) || 0 <= a . indexOf ( c . id ) ) && f ( d3 . select ( this ) . classed ( X , ! 0 ) , c , e ) : i ( d ) && d && h ( d3 . select ( this ) . classed ( X , ! 1 ) , c , e ) } ) } ; h . unselect = function ( a , b ) { V && f . selectAll ( ".-shapes" ) . selectAll ( ".-shape" ) . each ( function ( d , c ) { var e = "circle" === this . nodeName ? Ta : pb ; if ( l ( b ) || 0 <= b . indexOf ( c ) ) ba ( d ) && ( aa || l ( a ) || 0 <= a . indexOf ( d . id ) ) && e ( d3 . select ( this ) . classed ( X , ! 1 ) , d , c ) } ) } ; h . toLine = function ( a ) { Ra ( a , "line" ) ; P ( ) } ; h . toSpline = function ( a ) { Ra ( a ,
"spline" ) ; P ( ) } ; h . toBar = function ( a ) { Ra ( a , "bar" ) ; P ( ) } ; h . groups = function ( a ) { if ( l ( a ) ) return r ; r = a ; P ( ) ; return r } ; h . regions = function ( a ) { if ( l ( a ) ) return I ; I = a ; P ( ) ; return I } ; h . regions . add = function ( a ) { if ( l ( a ) ) return I ; I = I . concat ( a ) ; P ( ) ; return I } ; h . regions . remove = function ( a , b ) { var c = [ ] . concat ( a ) , b = i ( b ) ? b : { } ; c . forEach ( function ( a ) { var c = d3 . selectAll ( "." + a ) ; i ( b . duration ) && ( c = c . transition ( ) . duration ( b . duration ) . style ( "fill-opacity" , 0 ) ) ; c . remove ( ) ; I = I . filter ( function ( b ) { return 0 > b . classes . indexOf ( a ) } ) } ) ; return I } ;
"spline" ) ; P ( ) } ; h . toBar = function ( a ) { Ra ( a , "bar" ) ; P ( ) } ; h . groups = function ( a ) { if ( l ( a ) ) return r ; r = a ; P ( ) ; return r } ; h . regions = function ( a ) { if ( l ( a ) ) return J ; J = a ; P ( ) ; return J } ; h . regions . add = function ( a ) { if ( l ( a ) ) return J ; J = J . concat ( a ) ; P ( ) ; return J } ; h . regions . remove = function ( a , b ) { var c = [ ] . concat ( a ) , b = i ( b ) ? b : { } ; c . forEach ( function ( a ) { var c = d3 . selectAll ( "." + a ) ; i ( b . duration ) && ( c = c . transition ( ) . duration ( b . duration ) . style ( "fill-opacity" , 0 ) ) ; c . remove ( ) ; J = J . filter ( function ( b ) { return 0 > b . classes . indexOf ( a ) } ) } ) ; return J } ;
h . data . get = function ( a ) { a = h . data . getAsTarget ( a ) ; return i ( a ) ? a . values . map ( function ( a ) { return a . value } ) : void 0 } ; h . data . getAsTarget = function ( a ) { var b = k ( function ( b ) { return b . id == a } ) ; return 0 < b . length ? b [ 0 ] : void 0 } ; if ( "url" in n . data ) d3 . csv ( n . data . url , function ( a , b ) { Ua ( b ) } ) ; else if ( "rows" in n . data ) Ua ( fa ( n . data . rows ) ) ; else if ( "columns" in n . data ) Ua ( R ( n . data . columns ) ) ; else throw Error ( "url or rows or columns is required." ) ; return h } } ) ( window ) ;