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