! function ( t , e ) { "object" == typeof exports && "undefined" != typeof module ? e ( exports ) : "function" == typeof define && define . amd ? define ( [ "exports" ] , e ) : e ( t . echarts = { } ) } ( this , function ( t ) { "use strict" ; function e ( t , e ) { function n ( ) { this . constructor = t } if ( "function" != typeof e && null !== e ) throw new TypeError ( "Class extends value " + String ( e ) + " is not a constructor or null" ) ; db ( t , e ) , t . prototype = null === e ? Object . create ( e ) : ( n . prototype = e . prototype , new n ) } function n ( t , e ) { var n = e . browser , i = t . match ( /Firefox\/([\d.]+)/ ) , r = t . match ( /MSIE\s([\d.]+)/ ) || t . match ( /Trident\/.+?rv:(([\d.]+))/ ) , o = t . match ( /Edge?\/([\d.]+)/ ) , a = /micromessenger/i . test ( t ) ; i && ( n . firefox = ! 0 , n . version = i [ 1 ] ) , r && ( n . ie = ! 0 , n . version = r [ 1 ] ) , o && ( n . edge = ! 0 , n . version = o [ 1 ] , n . newEdge = + o [ 1 ] . split ( "." ) [ 0 ] > 18 ) , a && ( n . weChat = ! 0 ) , e . svgSupported = "undefined" != typeof SVGRect , e . touchEventsSupported = "ontouchstart" in window && ! n . ie && ! n . edge , e . pointerEventsSupported = "onpointerdown" in window && ( n . edge || n . ie && + n . version >= 11 ) , e . domSupported = "undefined" != typeof document ; var s = document . documentElement . style ; e . transform3dSupported = ( n . ie && "transition" in s || n . edge || "WebKitCSSMatrix" in window && "m11" in new WebKitCSSMatrix || "MozPerspective" in s ) && ! ( "OTransition" in s ) , e . transformSupported = e . transform3dSupported || n . ie && + n . version >= 9 } function i ( t ) { var e = { } ; if ( "undefined" == typeof JSON ) return e ; for ( var n = 0 ; n < t . length ; n ++ ) { var i = String . fromCharCode ( n + 32 ) , r = ( t . charCodeAt ( n ) - xb ) / bb ; e [ i ] = r } return e } function r ( t ) { for ( var e in Mb ) t [ e ] && ( Mb [ e ] = t [ e ] ) } function o ( ) { return zb ++ } function a ( ) { for ( var t = [ ] , e = 0 ; e < arguments . length ; e ++ ) t [ e ] = arguments [ e ] ; "undefined" != typeof console && console . error . apply ( console , t ) } function s ( t ) { if ( null == t || "object" != typeof t ) return t ; var e = t , n = Ib . call ( t ) ; if ( "[object Array]" === n ) { if ( ! X ( t ) ) { e = [ ] ; for ( var i = 0 , r = t . length ; r > i ; i ++ ) e [ i ] = s ( t [ i ] ) } } else if ( Cb [ n ] ) { if ( ! X ( t ) ) { var o = t . constructor ; if ( o . from ) e = o . from ( t ) ; else { e = new o ( t . length ) ; for ( var i = 0 , r = t . length ; r > i ; i ++ ) e [ i ] = t [ i ] } } } else if ( ! Tb [ n ] && ! X ( t ) && ! L ( t ) ) { e = { } ; for ( var a in t ) t . hasOwnProperty ( a ) && a !== Nb && ( e [ a ] = s ( t [ a ] ) ) } return e } function l ( t , e , n ) { if ( ! D ( e ) || ! D ( t ) ) return n ? s ( e ) : t ; for ( var i in e ) if ( e . hasOwnProperty ( i ) && i !== Nb ) { var r = t [ i ] , o = e [ i ] ; ! D ( o ) || ! D ( r ) || M ( o ) || M ( r ) || L ( o ) || L ( r ) || A ( o ) || A ( r ) || X ( o ) || X ( r ) ? ! n && i in t || ( t [ i ] = s ( e [ i ] ) ) : l ( r , o , n ) } return t } function u ( t , e ) { for ( var n = t [ 0 ] , i = 1 , r = t . length ; r > i ; i ++ ) n = l ( n , t [ i ] , e ) ; return n } function h ( t , e ) { if ( Object . assign ) Object . assign ( t , e ) ; else for ( var n in e ) e . hasOwnProperty ( n ) && n !== Nb && ( t [ n ] = e [ n ] ) ; return t } function c ( t , e , n ) { for ( var i = b ( e ) , r = 0 ; r < i . length ; r ++ ) { var o = i [ r ] ; ( n ? null != e [ o ] : null == t [ o ] ) && ( t [ o ] = e [ o ] ) } return t } function p ( t , e ) { if ( t ) { if ( t . indexOf ) return t . indexOf ( e ) ; for ( var n = 0 , i = t . length ; i > n ; n ++ ) if ( t [ n ] === e ) return n } return - 1 } function d ( t , e ) { function n ( ) { } var i = t . prototype ; n . prototype = e . prototype , t . prototype = new n ; for ( var r in i ) i . hasOwnProperty ( r ) && ( t . prototype [ r ] = i [ r ] ) ; t . prototype . constructor = t , t . superClass = e } function f ( t , e , n ) { if ( t = "prototype" in t ? t . prototype : t , e = "prototype" in e ? e . prototype : e , Object . getOwnPropertyNames ) for ( var i = Object . getOwnPropertyNames ( e ) , r = 0 ; r < i . length ; r ++ ) { var o = i [ r ] ; "constructor" !== o && ( n ? null != e [ o ] : null == t [ o ] ) && ( t [ o ] = e [ o ] ) } else c ( t , e , n ) } function g ( t ) { return t ? "string" == typeof t ? ! 1 : "number" == typeof t . length : ! 1 } function v ( t , e , n ) { if ( t && e ) if ( t . forEach && t . forEach === Db ) t . forEach ( e , n ) ; else if ( t . length === + t . length ) for ( var i = 0 , r = t . length ; r > i ; i ++ ) e . call ( n , t [ i ] , i , t ) ; else for ( var o in t ) t . hasOwnProperty ( o ) && e . call ( n , t [ o ] , o , t ) } function y ( t , e , n ) { if ( ! t ) return [ ] ; if ( ! e ) return V ( t ) ; if ( t . map && t . map === Lb ) return t . map ( e , n ) ; for ( var i = [ ] , r = 0 , o = t . length ; o > r ; r ++ ) i . push ( e . call ( n , t [ r ] , r , t ) ) ; return i } function m ( t , e , n , i ) { if ( t && e ) { for ( var r = 0 , o = t . length ; o > r ; r ++ ) n = e . call ( i , n , t [ r ] , r , t ) ; return n } } function _ ( t , e , n ) { if ( ! t ) return [ ] ; if ( ! e ) return V ( t ) ; if ( t . filter && t . filter === Ab ) return t . filter ( e , n ) ; for ( var i = [ ] , r = 0 , o = t . length ; o > r ; r ++ ) e . call ( n , t [ r ] , r , t ) && i . push ( t [ r ] ) ; return i } function x ( t , e , n ) { if ( t && e ) for ( var i = 0 , r = t . length ; r > i ; i ++ ) if ( e . call ( n , t [ i ] , i , t ) ) return t [ i ] } function b ( t ) { if ( ! t ) return [ ] ; if ( Object . keys ) return Object . keys ( t ) ; var e = [ ] ; for ( var n in t ) t . hasOwnProperty ( n ) && e . push ( n ) ; return e } function w ( t , e ) { for ( var n = [ ] , i = 2 ; i < arguments . length ; i +
} function or ( t , e , n ) { return null == e && ( e = 10 ) , e = Math . min ( Math . max ( 0 , e ) , iM ) , t = ( + t ) . toFixed ( e ) , n ? t : + t } function ar ( t ) { return t . sort ( function ( t , e ) { return t - e } ) , t } function sr ( t ) { if ( t = + t , isNaN ( t ) ) return 0 ; if ( t > 1e-14 ) for ( var e = 1 , n = 0 ; 15 > n ; n ++ , e *= 10 ) if ( Math . round ( t * e ) / e === t ) return n ; return lr ( t ) } function lr ( t ) { var e = t . toString ( ) . toLowerCase ( ) , n = e . indexOf ( "e" ) , i = n > 0 ? + e . slice ( n + 1 ) : 0 , r = n > 0 ? n : e . length , o = e . indexOf ( "." ) , a = 0 > o ? 0 : r - 1 - o ; return Math . max ( 0 , a - i ) } function ur ( t , e ) { var n = Math . log , i = Math . LN10 , r = Math . floor ( n ( t [ 1 ] - t [ 0 ] ) / i ) , o = Math . round ( n ( Math . abs ( e [ 1 ] - e [ 0 ] ) ) / i ) , a = Math . min ( Math . max ( - r + o , 0 ) , 20 ) ; return isFinite ( a ) ? a : 20 } function hr ( t , e , n ) { if ( ! t [ e ] ) return 0 ; var i = cr ( t , n ) ; return i [ e ] || 0 } function cr ( t , e ) { var n = m ( t , function ( t , e ) { return t + ( isNaN ( e ) ? 0 : e ) } , 0 ) ; if ( 0 === n ) return [ ] ; for ( var i = Math . pow ( 10 , e ) , r = y ( t , function ( t ) { return ( isNaN ( t ) ? 0 : t ) / n * i * 100 } ) , o = 100 * i , a = y ( r , function ( t ) { return Math . floor ( t ) } ) , s = m ( a , function ( t , e ) { return t + e } , 0 ) , l = y ( r , function ( t , e ) { return t - a [ e ] } ) ; o > s ; ) { for ( var u = Number . NEGATIVE _INFINITY , h = null , c = 0 , p = l . length ; p > c ; ++ c ) l [ c ] > u && ( u = l [ c ] , h = c ) ; ++ a [ h ] , l [ h ] = 0 , ++ s } return y ( a , function ( t ) { return t / i } ) } function pr ( t , e ) { var n = Math . max ( sr ( t ) , sr ( e ) ) , i = t + e ; return n > iM ? i : or ( i , n ) } function dr ( t ) { var e = 2 * Math . PI ; return ( t % e + e ) % e } function fr ( t ) { return t > - nM && nM > t } function gr ( t ) { if ( t instanceof Date ) return t ; if ( C ( t ) ) { var e = oM . exec ( t ) ; if ( ! e ) return new Date ( 0 / 0 ) ; if ( e [ 8 ] ) { var n = + e [ 4 ] || 0 ; return "Z" !== e [ 8 ] . toUpperCase ( ) && ( n -= + e [ 8 ] . slice ( 0 , 3 ) ) , new Date ( Date . UTC ( + e [ 1 ] , + ( e [ 2 ] || 1 ) - 1 , + e [ 3 ] || 1 , n , + ( e [ 5 ] || 0 ) , + e [ 6 ] || 0 , e [ 7 ] ? + e [ 7 ] . substring ( 0 , 3 ) : 0 ) ) } return new Date ( + e [ 1 ] , + ( e [ 2 ] || 1 ) - 1 , + e [ 3 ] || 1 , + e [ 4 ] || 0 , + ( e [ 5 ] || 0 ) , + e [ 6 ] || 0 , e [ 7 ] ? + e [ 7 ] . substring ( 0 , 3 ) : 0 ) } return new Date ( null == t ? 0 / 0 : Math . round ( t ) ) } function vr ( t ) { return Math . pow ( 10 , yr ( t ) ) } function yr ( t ) { if ( 0 === t ) return 0 ; var e = Math . floor ( Math . log ( t ) / Math . LN10 ) ; return t / Math . pow ( 10 , e ) >= 10 && e ++ , e } function mr ( t , e ) { var n , i = yr ( t ) , r = Math . pow ( 10 , i ) , o = t / r ; return n = e ? 1.5 > o ? 1 : 2.5 > o ? 2 : 4 > o ? 3 : 7 > o ? 5 : 10 : 1 > o ? 1 : 2 > o ? 2 : 3 > o ? 3 : 5 > o ? 5 : 10 , t = n * r , i >= - 20 ? + t . toFixed ( 0 > i ? - i : 0 ) : t } function _r ( t , e ) { var n = ( t . length - 1 ) * e + 1 , i = Math . floor ( n ) , r = + t [ i - 1 ] , o = n - i ; return o ? r + o * ( t [ i ] - r ) : r } function xr ( t ) { function e ( t , n , i ) { return t . interval [ i ] < n . interval [ i ] || t . interval [ i ] === n . interval [ i ] && ( t . close [ i ] - n . close [ i ] === ( i ? - 1 : 1 ) || ! i && e ( t , n , 1 ) ) } t . sort ( function ( t , n ) { return e ( t , n , 0 ) ? - 1 : 1 } ) ; for ( var n = - 1 / 0 , i = 1 , r = 0 ; r < t . length ; ) { for ( var o = t [ r ] . interval , a = t [ r ] . close , s = 0 ; 2 > s ; s ++ ) o [ s ] <= n && ( o [ s ] = n , a [ s ] = s ? 1 : 1 - i ) , n = o [ s ] , i = a [ s ] ; o [ 0 ] === o [ 1 ] && a [ 0 ] * a [ 1 ] !== 1 ? t . splice ( r , 1 ) : r ++ } return t } function br ( t ) { var e = parseFloat ( t ) ; return e == t && ( 0 !== e || ! C ( t ) || t . indexOf ( "x" ) <= 0 ) ? e : 0 / 0 } function wr ( t ) { return ! isNaN ( br ( t ) ) } function Sr ( ) { return Math . round ( 9 * Math . random ( ) ) } function Mr ( t , e ) { return 0 === e ? t : Mr ( e , t % e ) } function Tr ( t , e ) { return null == t ? e : null == e ? t : t * e / Mr ( t , e ) } function Cr ( t ) { throw new Error ( t ) } function Ir ( t , e , n ) { return ( e - t ) * n + t } function kr ( t ) { return t instanceof Array ? t : null == t ? [ ] : [ t ] } function Dr ( t , e , n ) { if ( t ) { t [ e ] = t [ e ] || { } , t . emphasis = t . emphasis || { } , t . emphasis [ e ] = t . emphasis [ e ] || { } ; for ( var i = 0 , r = n . length ; r > i ; i ++ ) { var o = n [ i ] ; ! t . emphasis [ e ] . hasOwnProperty ( o ) && t [ e ] . hasOwnProperty ( o ) && ( t . emphasis [ e ] [ o ] = t [ e ] [ o ] ) } } } function Ar ( t ) { return ! D ( t ) || M ( t ) || t instanceof Date ? t : t . value } function Pr ( t ) { return D ( t ) && ! ( t instanceof Array ) } function Lr ( t , e , n ) { var i = "normalMerge" === n , r = "replaceMerge" === n , o = "replaceAll" === n ; t = t || [ ] , e = ( e || [ ] ) . slice ( ) ; var a = Z ( ) ; v ( e , function ( t , n ) { return D ( t ) ? void 0 : void ( e [ n ] = null ) } ) ; var s = Or ( t , a , n ) ; return ( i || r ) && Rr ( s , t , a , e ) , i && Nr ( s , e ) , i || r ? zr ( s , e , r ) : o && Br ( s , e ) , Er ( s ) , s } function Or ( t , e , n ) { var i = [ ] ; if ( "replaceAll" === n ) return i ; for ( var r = 0 ; r < t . length ; r ++ ) { var o = t [ r ] ; o && null != o . id && e . set ( o . id , r ) , i . push ( { existing : "replaceMerge" === n || Wr ( o ) ? null : o , newOption : null , keyInfo : null , brandNew : null } ) } return i } function Rr ( t , e , n , i ) { v ( i , function ( r , o ) { if ( r && null != r . id ) { var a = Vr ( r . id ) , s = n . get ( a ) ; if ( null != s ) { var l = t [ s ] ; G ( ! l . newOption , 'Duplicated option on id "' + a + '".' ) , l . newOption = r , l . existing = e [ s ] , i [ o ] = null } } } ) } function Nr ( t , e ) { v ( e , function ( n , i ) { if ( n && null != n . name ) for ( var r = 0 ; r < t . length ; r ++ ) { var o = t [ r ] . existing ; if ( ! t [ r ] . newOption && o && ( null == o . id || null == n . id ) && ! Wr ( n ) && ! Wr ( o ) && Fr ( "name" , o , n ) ) return t [ r ] . newOption = n , void (
break ; case "q" : M = d [ v ++ ] + i , T = d [ v ++ ] + r , i += d [ v ++ ] , r += d [ v ++ ] , p = s . Q , e . addData ( p , M , T , i , r ) ; break ; case "T" : y = i , m = r , C = e . len ( ) , I = e . data , n === s . Q && ( y += i - I [ C - 4 ] , m += r - I [ C - 3 ] ) , i = d [ v ++ ] , r = d [ v ++ ] , p = s . Q , e . addData ( p , y , m , i , r ) ; break ; case "t" : y = i , m = r , C = e . len ( ) , I = e . data , n === s . Q && ( y += i - I [ C - 4 ] , m += r - I [ C - 3 ] ) , i += d [ v ++ ] , r += d [ v ++ ] , p = s . Q , e . addData ( p , y , m , i , r ) ; break ; case "A" : _ = d [ v ++ ] , x = d [ v ++ ] , b = d [ v ++ ] , w = d [ v ++ ] , S = d [ v ++ ] , M = i , T = r , i = d [ v ++ ] , r = d [ v ++ ] , p = s . A , ls ( M , T , i , r , w , S , _ , x , b , p , e ) ; break ; case "a" : _ = d [ v ++ ] , x = d [ v ++ ] , b = d [ v ++ ] , w = d [ v ++ ] , S = d [ v ++ ] , M = i , T = r , i += d [ v ++ ] , r += d [ v ++ ] , p = s . A , ls ( M , T , i , r , w , S , _ , x , b , p , e ) } } ( "z" === c || "Z" === c ) && ( p = s . Z , e . addData ( p ) , i = o , r = a ) , n = p } return e . toStatic ( ) , e } function hs ( t ) { return null != t . setData } function cs ( t , e ) { var n = us ( t ) , i = h ( { } , e ) ; return i . buildPath = function ( t ) { if ( hs ( t ) ) { t . setData ( n . data ) ; var e = t . getContext ( ) ; e && t . rebuildPath ( e , 1 ) } else { var e = t ; n . rebuildPath ( e , 1 ) } } , i . applyTransform = function ( t ) { rs ( n , t ) , this . dirtyShape ( ) } , i } function ps ( t , e ) { return new hC ( cs ( t , e ) ) } function ds ( t , n ) { var i = cs ( t , n ) , r = function ( t ) { function n ( e ) { var n = t . call ( this , e ) || this ; return n . applyTransform = i . applyTransform , n . buildPath = i . buildPath , n } return e ( n , t ) , n } ( hC ) ; return r } function fs ( t , e ) { for ( var n = [ ] , i = t . length , r = 0 ; i > r ; r ++ ) { var o = t [ r ] ; n . push ( o . getUpdatedPathProxy ( ! 0 ) ) } var a = new vT ( e ) ; return a . createPathProxy ( ) , a . buildPath = function ( t ) { if ( hs ( t ) ) { t . appendPath ( n ) ; var e = t . getContext ( ) ; e && t . rebuildPath ( e , 1 ) } } , a } function gs ( t , e , n , i , r , o , a , s ) { var l = n - t , u = i - e , h = a - r , c = s - o , p = c * l - h * u ; return TC > p * p ? void 0 : ( p = ( h * ( e - o ) - c * ( t - r ) ) / p , [ t + p * l , e + p * u ] ) } function vs ( t , e , n , i , r , o , a ) { var s = t - n , l = e - i , u = ( a ? o : - o ) / wC ( s * s + l * l ) , h = u * l , c = - u * s , p = t + h , d = e + c , f = n + h , g = i + c , v = ( p + f ) / 2 , y = ( d + g ) / 2 , m = f - p , _ = g - d , x = m * m + _ * _ , b = r - o , w = p * g - f * d , S = ( 0 > _ ? - 1 : 1 ) * wC ( SC ( 0 , b * b * x - w * w ) ) , M = ( w * _ - m * S ) / x , T = ( - w * m - _ * S ) / x , C = ( w * _ + m * S ) / x , I = ( - w * m + _ * S ) / x , k = M - v , D = T - y , A = C - v , P = I - y ; return k * k + D * D > A * A + P * P && ( M = C , T = I ) , { cx : M , cy : T , x0 : - h , y0 : - c , x1 : M * ( r / b - 1 ) , y1 : T * ( r / b - 1 ) } } function ys ( t ) { var e ; if ( M ( t ) ) { var n = t . length ; if ( ! n ) return t ; e = 1 === n ? [ t [ 0 ] , t [ 0 ] , 0 , 0 ] : 2 === n ? [ t [ 0 ] , t [ 0 ] , t [ 1 ] , t [ 1 ] ] : 3 === n ? t . concat ( t [ 2 ] ) : t } else e = [ t , t , t , t ] ; return e } function ms ( t , e ) { var n , i = SC ( e . r , 0 ) , r = SC ( e . r0 || 0 , 0 ) , o = i > 0 , a = r > 0 ; if ( o || a ) { if ( o || ( i = r , r = 0 ) , r > i ) { var s = i ; i = r , r = s } var l = e . startAngle , u = e . endAngle ; if ( ! isNaN ( l ) && ! isNaN ( u ) ) { var h = e . cx , c = e . cy , p = ! ! e . clockwise , d = bC ( u - l ) , f = d > vC && d % vC ; if ( f > TC && ( d = f ) , i > TC ) if ( d > vC - TC ) t . moveTo ( h + i * mC ( l ) , c + i * yC ( l ) ) , t . arc ( h , c , i , l , u , ! p ) , r > TC && ( t . moveTo ( h + r * mC ( u ) , c + r * yC ( u ) ) , t . arc ( h , c , r , u , l , p ) ) ; else { var g = void 0 , v = void 0 , y = void 0 , m = void 0 , _ = void 0 , x = void 0 , b = void 0 , w = void 0 , S = void 0 , M = void 0 , T = void 0 , C = void 0 , I = void 0 , k = void 0 , D = void 0 , A = void 0 , P = i * mC ( l ) , L = i * yC ( l ) , O = r * mC ( u ) , R = r * yC ( u ) , N = d > TC ; if ( N ) { var z = e . cornerRadius ; z && ( n = ys ( z ) , g = n [ 0 ] , v = n [ 1 ] , y = n [ 2 ] , m = n [ 3 ] ) ; var B = bC ( i - r ) / 2 ; if ( _ = MC ( B , y ) , x = MC ( B , m ) , b = MC ( B , g ) , w = MC ( B , v ) , T = S = SC ( _ , x ) , C = M = SC ( b , w ) , ( S > TC || M > TC ) && ( I = i * mC ( u ) , k = i * yC ( u ) , D = r * mC ( l ) , A = r * yC ( l ) , gC > d ) ) { var E = gs ( P , L , D , A , I , k , O , R ) ; if ( E ) { var F = P - E [ 0 ] , V = L - E [ 1 ] , H = I - E [ 0 ] , G = k - E [ 1 ] , W = 1 / yC ( _C ( ( F * H + V * G ) / ( wC ( F * F + V * V ) * wC ( H * H + G * G ) ) ) / 2 ) , U = wC ( E [ 0 ] * E [ 0 ] + E [ 1 ] * E [ 1 ] ) ; T = MC ( S , ( i - U ) / ( W + 1 ) ) , C = MC ( M , ( r - U ) / ( W - 1 ) ) } } } if ( N ) if ( T > TC ) { var X = MC ( y , T ) , Y = MC ( m , T ) , Z = vs ( D , A , P , L , i , X , p ) , j = vs ( I , k , O , R , i , Y , p ) ; t . moveTo ( h + Z . cx + Z . x0 , c + Z . cy + Z . y0 ) , S > T && X === Y ? t . arc ( h + Z . cx , c + Z . cy , T , xC ( Z . y0 , Z . x0 ) , xC ( j . y0 , j . x0 ) , ! p ) : ( X > 0 && t . arc ( h + Z . cx , c + Z . cy , X , xC ( Z . y0 , Z . x0 ) , xC ( Z . y1 , Z . x1 ) , ! p ) , t . arc ( h , c , i , xC ( Z . cy + Z . y1 , Z . cx + Z . x1 ) , xC ( j . cy + j . y1 , j . cx + j . x1 ) , ! p ) , Y > 0 && t . arc ( h + j . cx , c + j . cy , Y , xC ( j . y1 , j . x1 ) , xC ( j . y0 , j . x0 ) , ! p ) ) } else t . moveTo ( h + P , c + L ) , t . arc ( h , c , i , l , u , ! p ) ; else t . moveTo ( h + P , c + L ) ; if ( r > TC && N ) if ( C > TC ) { var X = MC ( g , C ) , Y = MC ( v , C ) , Z = vs ( O , R , I , k , r , - Y , p ) , j = vs ( P , L , D , A , r , - X , p ) ; t . lineTo ( h + Z . cx + Z . x0 , c + Z . cy + Z . y0 ) , M > C && X === Y ? t . arc ( h + Z . cx , c + Z . cy , C , xC ( Z . y0 , Z . x0 ) , xC ( j . y0 , j . x0 ) , ! p ) : ( Y > 0 && t . arc ( h + Z . cx , c + Z . cy , Y , xC ( Z . y0 , Z . x0 ) , xC ( Z . y1 , Z . x1 ) , ! p ) , t . arc ( h , c , r , xC ( Z . cy + Z . y1 , Z . cx + Z . x1 ) , xC ( j . cy + j . y1 , j . cx + j . x1 ) , p ) , X > 0 && t . arc ( h + j . cx , c + j . cy , X , xC ( j . y1 , j . x1 ) , xC ( j . y0 , j . x0 ) , ! p ) ) } else t . lineTo ( h + O , c + R ) , t . arc ( h , c , r , u , l , p ) ; else t . lineTo ( h + O , c + R ) } else t . moveTo ( h , c ) ; t . closePath ( ) } } } function _s ( t , e , n , i ) { var r , o , a , s , l = [ ] , u = [ ] , h = [ ] , c = [ ] ; if ( i ) { a = [ 1 / 0 , 1 / 0 ] , s = [ - 1 / 0 , - 1 / 0 ] ; for ( var p = 0 , d = t . length ; d > p ; p ++ ) me ( a , a , t [ p ] ) , _e ( s , s , t [ p ] ) ; me ( a , a , i [ 0 ] ) , _e ( s , s , i [ 1 ] ) } for ( var p = 0 , d = t . length ; d > p ; p ++ ) { var f = t [ p ] ; if ( n ) r
var n = t . data ; if ( n && ! P ( n ) ) for ( var i = 0 ; i < n . length ; i ++ ) Hu ( n [ i ] ) ; null != t . hoverOffset && ( t . emphasis = t . emphasis || { } , ( t . emphasis . scaleSize = null ) && ( t . emphasis . scaleSize = t . hoverOffset ) ) } else if ( "gauge" === e ) { var r = Bu ( t , "pointer.color" ) ; null != r && Eu ( t , "itemStyle.color" , r ) } else if ( "bar" === e ) { Vu ( t ) , Vu ( t . backgroundStyle ) , Vu ( t . emphasis ) ; var n = t . data ; if ( n && ! P ( n ) ) for ( var i = 0 ; i < n . length ; i ++ ) "object" == typeof n [ i ] && ( Vu ( n [ i ] ) , Vu ( n [ i ] && n [ i ] . emphasis ) ) } else if ( "sunburst" === e ) { var o = t . highlightPolicy ; o && ( t . emphasis = t . emphasis || { } , t . emphasis . focus || ( t . emphasis . focus = o ) ) , Gu ( t ) , Uu ( t . data , Gu ) } else "graph" === e || "sankey" === e ? Wu ( t ) : "map" === e && ( t . mapType && ! t . map && ( t . map = t . mapType ) , t . mapLocation && c ( t , t . mapLocation ) ) ; null != t . hoverAnimation && ( t . emphasis = t . emphasis || { } , t . emphasis && null == t . emphasis . scale && ( t . emphasis . scale = t . hoverAnimation ) ) , Fu ( t ) } } ) , t . dataRange && ( t . visualMap = t . dataRange ) , v ( Nk , function ( e ) { var n = t [ e ] ; n && ( M ( n ) || ( n = [ n ] ) , v ( n , function ( t ) { Fu ( t ) } ) ) } ) } function Yu ( t ) { var e = Z ( ) ; t . eachSeries ( function ( t ) { var n = t . get ( "stack" ) ; if ( n ) { var i = e . get ( n ) || e . set ( n , [ ] ) , r = t . getData ( ) , o = { stackResultDimension : r . getCalculationInfo ( "stackResultDimension" ) , stackedOverDimension : r . getCalculationInfo ( "stackedOverDimension" ) , stackedDimension : r . getCalculationInfo ( "stackedDimension" ) , stackedByDimension : r . getCalculationInfo ( "stackedByDimension" ) , isStackedByIndex : r . getCalculationInfo ( "isStackedByIndex" ) , data : r , seriesModel : t } ; if ( ! o . stackedDimension || ! o . isStackedByIndex && ! o . stackedByDimension ) return ; i . length && r . setCalculationInfo ( "stackedOnSeries" , i [ i . length - 1 ] . seriesModel ) , i . push ( o ) } } ) , e . each ( Zu ) } function Zu ( t ) { v ( t , function ( e , n ) { var i = [ ] , r = [ 0 / 0 , 0 / 0 ] , o = [ e . stackResultDimension , e . stackedOverDimension ] , a = e . data , s = e . isStackedByIndex , l = e . seriesModel . get ( "stackStrategy" ) || "samesign" ; a . modify ( o , function ( o , u , h ) { var c = a . get ( e . stackedDimension , h ) ; if ( isNaN ( c ) ) return r ; var p , d ; s ? d = a . getRawIndex ( h ) : p = a . get ( e . stackedByDimension , h ) ; for ( var f = 0 / 0 , g = n - 1 ; g >= 0 ; g -- ) { var v = t [ g ] ; if ( s || ( d = v . data . rawIndexOf ( v . stackedByDimension , p ) ) , d >= 0 ) { var y = v . data . getByRawIndex ( v . stackResultDimension , d ) ; if ( "all" === l || "positive" === l && y > 0 || "negative" === l && 0 > y || "samesign" === l && c >= 0 && y > 0 || "samesign" === l && 0 >= c && 0 > y ) { c = pr ( c , y ) , f = y ; break } } } return i [ 0 ] = c , i [ 1 ] = f , i } ) } ) } function ju ( t ) { return t instanceof Bk } function qu ( t , e , n ) { n = n || Qu ( t ) ; var i = e . seriesLayoutBy , r = Ju ( t , n , i , e . sourceHeader , e . dimensions ) , o = new Bk ( { data : t , sourceFormat : n , seriesLayoutBy : i , dimensionsDefine : r . dimensionsDefine , startIndex : r . startIndex , dimensionsDetectedCount : r . dimensionsDetectedCount , metaRawOption : s ( e ) } ) ; return o } function Ku ( t ) { return new Bk ( { data : t , sourceFormat : P ( t ) ? sk : ik } ) } function $u ( t ) { return new Bk ( { data : t . data , sourceFormat : t . sourceFormat , seriesLayoutBy : t . seriesLayoutBy , dimensionsDefine : s ( t . dimensionsDefine ) , startIndex : t . startIndex , dimensionsDetectedCount : t . dimensionsDetectedCount } ) } function Qu ( t ) { var e = lk ; if ( P ( t ) ) e = sk ; else if ( M ( t ) ) { 0 === t . length && ( e = rk ) ; for ( var n = 0 , i = t . length ; i > n ; n ++ ) { var r = t [ n ] ; if ( null != r ) { if ( M ( r ) ) { e = rk ; break } if ( D ( r ) ) { e = ok ; break } } } } else if ( D ( t ) ) for ( var o in t ) if ( $ ( t , o ) && g ( t [ o ] ) ) { e = ak ; break } return e } function Ju ( t , e , n , i , r ) { var o , a ; if ( ! t ) return { dimensionsDefine : eh ( r ) , startIndex : a , dimensionsDetectedCount : o } ; if ( e === rk ) { var s = t ; "auto" === i || null == i ? nh ( function ( t ) { null != t && "-" !== t && ( C ( t ) ? null == a && ( a = 1 ) : a = 0 ) } , n , s , 10 ) : a = k ( i ) ? i : i ? 1 : 0 , r || 1 !== a || ( r = [ ] , nh ( function ( t , e ) { r [ e ] = null != t ? t + "" : "" } , n , s , 1 / 0 ) ) , o = r ? r . length : n === hk ? s . length : s [ 0 ] ? s [ 0 ] . length : null } else if ( e === ok ) r || ( r = th ( t ) ) ; else if ( e === ak ) r || ( r = [ ] , v ( t , function ( t , e ) { r . push ( e ) } ) ) ; else if ( e === ik ) { var l = Ar ( t [ 0 ] ) ; o = M ( l ) && l . length || 1 } return { startIndex : a , dimensionsDefine : eh ( r ) , dimensionsDetectedCount : o } } function th ( t ) { for ( var e , n = 0 ; n < t . length && ! ( e = t [ n ++ ] ) ; ) ; if ( e ) { var i = [ ] ; return v ( e , function ( t , e ) { i . push ( e ) } ) , i } } function eh ( t ) { if ( t ) { var e = Z ( ) ; return y ( t , function ( t ) { t = D ( t ) ? t : { name : t } ; var n = { name : t . name , displayName : t . displayName , type : t . type } ; if ( null == n . name ) return n ; n . name += "" , null == n . displayName && ( n . displayName = n . name ) ; var i = e . get ( n . name ) ; return i ? n . name += "-" + i . count ++ : e . set ( n . name , { count : 1 } ) , n } ) } } function nh ( t , e , n , i ) { if ( e === hk ) for ( var r = 0 ; r < n . length && i > r ; r ++ ) t ( n [ r ] ? n [ r ] [ 0 ] : null , r ) ; else for ( var o = n [ 0 ] || [
} function Yp ( t ) { return ! ( "ordinal" === t || "time" === t ) } function Zp ( t ) { return t instanceof VP } function jp ( t ) { for ( var e = Z ( ) , n = 0 ; n < ( t || [ ] ) . length ; n ++ ) { var i = t [ n ] , r = D ( i ) ? i . name : i ; null != r && null == e . get ( r ) && e . set ( r , n ) } return e } function qp ( t ) { var e = EP ( t ) ; return e . dimNameMap || ( e . dimNameMap = jp ( t . dimensionsDefine ) ) } function Kp ( t ) { return t > 30 } function $p ( t , e ) { return Qp ( t , e ) . dimensions } function Qp ( t , e ) { function n ( t ) { var e = m [ t ] ; if ( 0 > e ) { var n = a [ t ] , i = D ( n ) ? n : { name : n } , r = new BP , o = i . name ; null != o && null != f . get ( o ) && ( r . name = r . displayName = o ) , null != i . type && ( r . type = i . type ) , null != i . displayName && ( r . displayName = i . displayName ) ; var s = l . length ; return m [ t ] = s , r . storeDimIndex = t , l . push ( r ) , r } return l [ e ] } function i ( t , e , n ) { null != nk . get ( e ) ? t . otherDims [ e ] = n : ( t . coordDim = e , t . coordDimIndex = n , s . set ( e , ! 0 ) ) } function r ( t ) { null == t . name && ( t . name = t . coordDim ) } ju ( t ) || ( t = Ku ( t ) ) , e = e || { } ; var o = e . coordDimensions || [ ] , a = e . dimensionsDefine || t . dimensionsDefine || [ ] , s = Z ( ) , l = [ ] , u = td ( t , o , a , e . dimensionsCount ) , p = e . canOmitUnusedDimensions && Kp ( u ) , d = a === t . dimensionsDefine , f = d ? qp ( t ) : jp ( a ) , g = e . encodeDefine ; ! g && e . encodeDefaulter && ( g = e . encodeDefaulter ( t , u ) ) ; for ( var y = Z ( g ) , m = new nD ( u ) , _ = 0 ; _ < m . length ; _ ++ ) m [ _ ] = - 1 ; if ( ! p ) for ( var _ = 0 ; u > _ ; _ ++ ) n ( _ ) ; y . each ( function ( t , e ) { var r = kr ( t ) . slice ( ) ; if ( 1 === r . length && ! C ( r [ 0 ] ) && r [ 0 ] < 0 ) return void y . set ( e , ! 1 ) ; var o = y . set ( e , [ ] ) ; v ( r , function ( t , r ) { var a = C ( t ) ? f . get ( t ) : t ; null != a && u > a && ( o [ r ] = a , i ( n ( a ) , e , r ) ) } ) } ) ; var x = 0 ; v ( o , function ( t ) { var e , r , o , a ; if ( C ( t ) ) e = t , a = { } ; else { a = t , e = a . name ; var s = a . ordinalMeta ; a . ordinalMeta = null , a = h ( { } , a ) , a . ordinalMeta = s , r = a . dimsDef , o = a . otherDims , a . name = a . coordDim = a . coordDimIndex = a . dimsDef = a . otherDims = null } var l = y . get ( e ) ; if ( l !== ! 1 ) { if ( l = kr ( l ) , ! l . length ) for ( var p = 0 ; p < ( r && r . length || 1 ) ; p ++ ) { for ( ; u > x && null != n ( x ) . coordDim ; ) x ++ ; u > x && l . push ( x ++ ) } v ( l , function ( t , s ) { var l = n ( t ) ; if ( d && null != a . type && ( l . type = a . type ) , i ( c ( l , a ) , e , s ) , null == l . name && r ) { var u = r [ s ] ; ! D ( u ) && ( u = { name : u } ) , l . name = l . displayName = u . name , l . defaultTooltip = u . defaultTooltip } o && c ( l . otherDims , o ) } ) } } ) ; var b = e . generateCoord , w = e . generateCoordCount , S = null != w ; w = b ? w || 1 : 0 ; var M = b || "value" ; if ( p ) v ( l , function ( t ) { r ( t ) } ) , l . sort ( function ( t , e ) { return t . storeDimIndex - e . storeDimIndex } ) ; else for ( var T = 0 ; u > T ; T ++ ) { var I = n ( T ) , k = I . coordDim ; null == k && ( I . coordDim = ed ( M , s , S ) , I . coordDimIndex = 0 , ( ! b || 0 >= w ) && ( I . isExtraCoord = ! 0 ) , w -- ) , r ( I ) , null != I . type || pu ( t , T ) !== ck . Must && ( ! I . isExtraCoord || null == I . otherDims . itemName && null == I . otherDims . seriesName ) || ( I . type = "ordinal" ) } return Jp ( l ) , new VP ( { source : t , dimensions : l , fullDimensionCount : u , dimensionOmitted : p } ) } function Jp ( t ) { for ( var e = Z ( ) , n = 0 ; n < t . length ; n ++ ) { var i = t [ n ] , r = i . name , o = e . get ( r ) || 0 ; o > 0 && ( i . name = r + ( o - 1 ) ) , o ++ , e . set ( r , o ) } } function td ( t , e , n , i ) { var r = Math . max ( t . dimensionsDetectedCount || 1 , e . length , n . length , i || 0 ) ; return v ( e , function ( t ) { var e ; D ( t ) && ( e = t . dimsDef ) && ( r = Math . max ( r , e . length ) ) } ) , r } function ed ( t , e , n ) { if ( n || e . hasKey ( t ) ) { for ( var i = 0 ; e . hasKey ( t + i ) ; ) i ++ ; t += i } return e . set ( t , ! 0 ) , t } function nd ( t ) { var e = t . get ( "coordinateSystem" ) , n = new qP ( e ) , i = KP [ e ] ; return i ? ( i ( t , n , n . axisMap , n . categoryAxisMap ) , n ) : void 0 } function id ( t ) { return "category" === t . get ( "type" ) } function rd ( t , e , n ) { n = n || { } ; var i , r , o , a = n . byIndex , s = n . stackedCoordDimension ; od ( e ) ? i = e : ( r = e . schema , i = r . dimensions , o = e . store ) ; var l , u , h , c , p = ! ( ! t || ! t . get ( "stack" ) ) ; if ( v ( i , function ( t , e ) { C ( t ) && ( i [ e ] = t = { name : t } ) , p && ! t . isExtraCoord && ( a || l || ! t . ordinalMeta || ( l = t ) , u || "ordinal" === t . type || "time" === t . type || s && s !== t . coordDim || ( u = t ) ) } ) , ! u || a || l || ( a = ! 0 ) , u ) { h = "__\x00ecstackresult_" + t . id , c = "__\x00ecstackedover_" + t . id , l && ( l . createInvertedIndices = ! 0 ) ; var d = u . coordDim , f = u . type , g = 0 ; v ( i , function ( t ) { t . coordDim === d && g ++ } ) ; var y = { name : h , coordDim : d , coordDimIndex : g , type : f , isExtraCoord : ! 0 , isCalculationCoord : ! 0 , storeDimIndex : i . length } , m = { name : c , coordDim : c , coordDimIndex : g + 1 , type : f , isExtraCoord : ! 0 , isCalculationCoord : ! 0 , storeDimIndex : i . length + 1 } ; r ? ( o && ( y . storeDimIndex = o . ensureCalculationDimension ( c , f ) , m . storeDimIndex = o . ensureCalculationDimension ( h , f ) ) , r . appendCalculationDimension ( y ) , r . appendCalculationDimension ( m ) ) : ( i . push ( y ) , i . push ( m ) ) } return { stackedDimension : u && u . name , stackedByDimension : l && l . name , isStackedByIndex : a , stackedOverDimension : c , stackResultDimension : h } } function od ( t ) { re
w = 2 * I , l . push ( D [ 0 ] , D [ 1 ] ) , u . push ( y [ w ] , y [ w + 1 ] ) ; var A = mg ( g , r , e , I ) ; h . push ( A [ 0 ] , A [ 1 ] ) , c . push ( i [ w ] , i [ w + 1 ] ) , f . push ( e . getRawIndex ( I ) ) ; break ; case "-" : x = ! 1 } x && ( p . push ( _ ) , d . push ( d . length ) ) } d . sort ( function ( t , e ) { return f [ t ] - f [ e ] } ) ; for ( var P = l . length , L = Sd ( P ) , O = Sd ( P ) , R = Sd ( P ) , N = Sd ( P ) , z = [ ] , m = 0 ; m < d . length ; m ++ ) { var B = d [ m ] , E = 2 * m , F = 2 * B ; L [ E ] = l [ F ] , L [ E + 1 ] = l [ F + 1 ] , O [ E ] = u [ F ] , O [ E + 1 ] = u [ F + 1 ] , R [ E ] = h [ F ] , R [ E + 1 ] = h [ F + 1 ] , N [ E ] = c [ F ] , N [ E + 1 ] = c [ F + 1 ] , z [ m ] = p [ B ] } return { current : L , next : O , stackedOnCurrent : R , stackedOnNext : N , status : z } } function bg ( t , e ) { return isNaN ( t ) || isNaN ( e ) } function wg ( t , e , n , i , r , o , a , s , l ) { for ( var u , h , c , p , d , f , g = n , v = 0 ; i > v ; v ++ ) { var y = e [ 2 * g ] , m = e [ 2 * g + 1 ] ; if ( g >= r || 0 > g ) break ; if ( bg ( y , m ) ) { if ( l ) { g += o ; continue } break } if ( g === n ) t [ o > 0 ? "moveTo" : "lineTo" ] ( y , m ) , c = y , p = m ; else { var _ = y - u , x = m - h ; if ( . 5 > _ * _ + x * x ) { g += o ; continue } if ( a > 0 ) { for ( var b = g + o , w = e [ 2 * b ] , S = e [ 2 * b + 1 ] ; w === y && S === m && i > v ; ) v ++ , b += o , g += o , w = e [ 2 * b ] , S = e [ 2 * b + 1 ] , y = e [ 2 * g ] , m = e [ 2 * g + 1 ] , _ = y - u , x = m - h ; var M = v + 1 ; if ( l ) for ( ; bg ( w , S ) && i > M ; ) M ++ , b += o , w = e [ 2 * b ] , S = e [ 2 * b + 1 ] ; var T = . 5 , C = 0 , I = 0 , k = void 0 , D = void 0 ; if ( M >= i || bg ( w , S ) ) d = y , f = m ; else { C = w - u , I = S - h ; var A = y - u , P = w - y , L = m - h , O = S - m , R = void 0 , N = void 0 ; if ( "x" === s ) { R = Math . abs ( A ) , N = Math . abs ( P ) ; var z = C > 0 ? 1 : - 1 ; d = y - z * R * a , f = m , k = y + z * N * a , D = m } else if ( "y" === s ) { R = Math . abs ( L ) , N = Math . abs ( O ) ; var B = I > 0 ? 1 : - 1 ; d = y , f = m - B * R * a , k = y , D = m + B * N * a } else R = Math . sqrt ( A * A + L * L ) , N = Math . sqrt ( P * P + O * O ) , T = N / ( N + R ) , d = y - C * a * ( 1 - T ) , f = m - I * a * ( 1 - T ) , k = y + C * a * T , D = m + I * a * T , k = gO ( k , vO ( w , y ) ) , D = gO ( D , vO ( S , m ) ) , k = vO ( k , gO ( w , y ) ) , D = vO ( D , gO ( S , m ) ) , C = k - y , I = D - m , d = y - C * R / N , f = m - I * R / N , d = gO ( d , vO ( u , y ) ) , f = gO ( f , vO ( h , m ) ) , d = vO ( d , gO ( u , y ) ) , f = vO ( f , gO ( h , m ) ) , C = y - d , I = m - f , k = y + C * N / R , D = m + I * N / R } t . bezierCurveTo ( c , p , d , f , y , m ) , c = k , p = D } else t . lineTo ( y , m ) } u = y , h = m , g += o } return v } function Sg ( t , e , n , i , r ) { var o = t . getArea ( ) , a = o . x , s = o . y , l = o . width , u = o . height , h = n . get ( [ "lineStyle" , "width" ] ) || 2 ; a -= h / 2 , s -= h / 2 , l += h , u += h , a = Math . floor ( a ) , l = Math . round ( l ) ; var c = new TT ( { shape : { x : a , y : s , width : l , height : u } } ) ; if ( e ) { var p = t . getBaseAxis ( ) , d = p . isHorizontal ( ) , f = p . inverse ; d ? ( f && ( c . shape . x += l ) , c . shape . width = 0 ) : ( f || ( c . shape . y += u ) , c . shape . height = 0 ) ; var g = T ( r ) ? function ( t ) { r ( t , c ) } : null ; Ts ( c , { shape : { width : l , height : u , x : a , y : s } } , n , null , i , g ) } return c } function Mg ( t , e , n ) { var i = t . getArea ( ) , r = or ( i . r0 , 1 ) , o = or ( i . r , 1 ) , a = new IC ( { shape : { cx : or ( t . cx , 1 ) , cy : or ( t . cy , 1 ) , r0 : r , r : o , startAngle : i . startAngle , endAngle : i . endAngle , clockwise : i . clockwise } } ) ; if ( e ) { var s = "angle" === t . getBaseAxis ( ) . dim ; s ? a . shape . endAngle = i . startAngle : a . shape . r = r , Ts ( a , { shape : { endAngle : i . endAngle , r : o } } , n ) } return a } function Tg ( t , e ) { return t . type === e } function Cg ( t , e ) { if ( t . length === e . length ) { for ( var n = 0 ; n < t . length ; n ++ ) if ( t [ n ] !== e [ n ] ) return ; return ! 0 } } function Ig ( t ) { for ( var e = 1 / 0 , n = 1 / 0 , i = - 1 / 0 , r = - 1 / 0 , o = 0 ; o < t . length ; ) { var a = t [ o ++ ] , s = t [ o ++ ] ; isNaN ( a ) || ( e = Math . min ( a , e ) , i = Math . max ( a , i ) ) , isNaN ( s ) || ( n = Math . min ( s , n ) , r = Math . max ( s , r ) ) } return [ [ e , n ] , [ i , r ] ] } function kg ( t , e ) { var n = Ig ( t ) , i = n [ 0 ] , r = n [ 1 ] , o = Ig ( e ) , a = o [ 0 ] , s = o [ 1 ] ; return Math . max ( Math . abs ( i [ 0 ] - a [ 0 ] ) , Math . abs ( i [ 1 ] - a [ 1 ] ) , Math . abs ( r [ 0 ] - s [ 0 ] ) , Math . abs ( r [ 1 ] - s [ 1 ] ) ) } function Dg ( t ) { return k ( t ) ? t : t ? . 5 : 0 } function Ag ( t , e , n ) { if ( ! n . valueDim ) return [ ] ; for ( var i = e . count ( ) , r = Sd ( 2 * i ) , o = 0 ; i > o ; o ++ ) { var a = mg ( n , t , e , o ) ; r [ 2 * o ] = a [ 0 ] , r [ 2 * o + 1 ] = a [ 1 ] } return r } function Pg ( t , e , n , i ) { var r = e . getBaseAxis ( ) , o = "x" === r . dim || "radius" === r . dim ? 0 : 1 , a = [ ] , s = 0 , l = [ ] , u = [ ] , h = [ ] , c = [ ] ; if ( i ) { for ( s = 0 ; s < t . length ; s += 2 ) isNaN ( t [ s ] ) || isNaN ( t [ s + 1 ] ) || c . push ( t [ s ] , t [ s + 1 ] ) ; t = c } for ( s = 0 ; s < t . length - 2 ; s += 2 ) switch ( h [ 0 ] = t [ s + 2 ] , h [ 1 ] = t [ s + 3 ] , u [ 0 ] = t [ s ] , u [ 1 ] = t [ s + 1 ] , a . push ( u [ 0 ] , u [ 1 ] ) , n ) { case "end" : l [ o ] = h [ o ] , l [ 1 - o ] = u [ 1 - o ] , a . push ( l [ 0 ] , l [ 1 ] ) ; break ; case "middle" : var p = ( u [ o ] + h [ o ] ) / 2 , d = [ ] ; l [ o ] = d [ o ] = p , l [ 1 - o ] = u [ 1 - o ] , d [ 1 - o ] = h [ 1 - o ] , a . push ( l [ 0 ] , l [ 1 ] ) , a . push ( d [ 0 ] , d [ 1 ] ) ; break ; default : l [ o ] = u [ o ] , l [ 1 - o ] = h [ 1 - o ] , a . push ( l [ 0 ] , l [ 1 ] ) } return a . push ( t [ s ++ ] , t [ s ++ ] ) , a } function Lg ( t , e ) { function n ( t , e , n ) { var i = t . coord , r = ( n - i ) / ( e . coord - i ) , o = Hn ( r , [ t . color , e . color ] ) ; return { coord : n , color : o } } for ( var i , r , o = [ ] , a = t . length , s = 0 ; a > s ; s ++ ) { var l = t [ s ] , u = l . coord ; if ( 0 > u ) i = l ; else { if ( u > e ) { r ? o . push ( n ( r , l , e ) ) : i && o . push ( n ( i , l , 0 ) , n ( i , l , e ) ) ; break } i && ( o . push ( n ( i , l , 0 ) ) , i = null ) , o . push ( l ) , r = l } } return o } function Og ( t , e , n ) { var i = t . getVisual ( "visualMeta" ) ; if ( i && i . length && t . count ( ) && "cartesian2d" === e . type ) { for ( var r , o , a = i . length - 1 ; a >= 0 ; a -- ) { var s = t . getDimensionInfo (
p ( [ "left" , "right" ] , a ) > - 1 ? ( l += "top:50%" , u += "translateY(-50%) rotate(" + ( o = "left" === a ? - 225 : - 45 ) + "deg)" ) : ( l += "left:50%" , u += "translateX(-50%) rotate(" + ( o = "top" === a ? 225 : 45 ) + "deg)" ) ; var h = o * Math . PI / 180 , c = s + r , d = c * Math . abs ( Math . cos ( h ) ) + c * Math . abs ( Math . sin ( h ) ) , f = Math . round ( 100 * ( ( d - Math . SQRT2 * r ) / 2 + Math . SQRT2 * r - ( d - c ) / 2 ) ) / 100 ; l += ";" + a + ":-" + f + "px" ; var g = e + " solid " + r + "px;" , v = [ "position:absolute;width:" + s + "px;height:" + s + "px;z-index:-1;" , l + ";" + u + ";" , "border-bottom:" + g , "border-right:" + g , "background-color:" + i + ";" ] ; return '<div style="' + v . join ( "" ) + '"></div>' } function Dy ( t , e ) { var n = "cubic-bezier(0.23,1,0.32,1)" , i = " " + t / 2 + "s " + n , r = "opacity" + i + ",visibility" + i ; return e || ( i = " " + t + "s " + n , r += vb . transformSupported ? "," + IR + i : ",left" + i + ",top" + i ) , CR + ":" + r } function Ay ( t , e , n ) { var i = t . toFixed ( 0 ) + "px" , r = e . toFixed ( 0 ) + "px" ; if ( ! vb . transformSupported ) return n ? "top:" + r + ";left:" + i + ";" : [ [ "top" , r ] , [ "left" , i ] ] ; var o = vb . transform3dSupported , a = "translate" + ( o ? "3d" : "" ) + "(" + i + "," + r + ( o ? ",0" : "" ) + ")" ; return n ? "top:0;left:0;" + IR + ":" + a + ";" : [ [ "top" , 0 ] , [ "left" , 0 ] , [ MR , a ] ] } function Py ( t ) { var e = [ ] , n = t . get ( "fontSize" ) , i = t . getTextColor ( ) ; i && e . push ( "color:" + i ) , e . push ( "font:" + t . getFont ( ) ) , n && e . push ( "line-height:" + Math . round ( 3 * n / 2 ) + "px" ) ; var r = t . get ( "textShadowColor" ) , o = t . get ( "textShadowBlur" ) || 0 , a = t . get ( "textShadowOffsetX" ) || 0 , s = t . get ( "textShadowOffsetY" ) || 0 ; return r && o && e . push ( "text-shadow:" + a + "px " + s + "px " + o + "px " + r ) , v ( [ "decoration" , "align" ] , function ( n ) { var i = t . get ( n ) ; i && e . push ( "text-" + n + ":" + i ) } ) , e . join ( ";" ) } function Ly ( t , e , n ) { var i = [ ] , r = t . get ( "transitionDuration" ) , o = t . get ( "backgroundColor" ) , a = t . get ( "shadowBlur" ) , s = t . get ( "shadowColor" ) , l = t . get ( "shadowOffsetX" ) , u = t . get ( "shadowOffsetY" ) , h = t . getModel ( "textStyle" ) , c = Wh ( t , "html" ) , p = l + "px " + u + "px " + a + "px " + s ; return i . push ( "box-shadow:" + p ) , e && r && i . push ( Dy ( r , n ) ) , o && i . push ( "background-color:" + o ) , v ( [ "width" , "color" , "radius" ] , function ( e ) { var n = "border-" + e , r = Yl ( n ) , o = t . get ( r ) ; null != o && i . push ( n + ":" + o + ( "color" === e ? "" : "px" ) ) } ) , i . push ( Py ( h ) ) , null != c && i . push ( "padding:" + GI ( c ) . join ( "px " ) + "px" ) , i . join ( ";" ) + ";" } function Oy ( t , e , n , i , r ) { var o = e && e . painter ; if ( n ) { var a = o && o . getViewportRoot ( ) ; a && we ( t , a , document . body , i , r ) } else { t [ 0 ] = i , t [ 1 ] = r ; var s = o && o . getViewportRootOffset ( ) ; s && ( t [ 0 ] += s . offsetLeft , t [ 1 ] += s . offsetTop ) } t [ 2 ] = t [ 0 ] / e . getWidth ( ) , t [ 3 ] = t [ 1 ] / e . getHeight ( ) } function Ry ( t ) { return Math . max ( 0 , t ) } function Ny ( t ) { var e = Ry ( t . shadowBlur || 0 ) , n = Ry ( t . shadowOffsetX || 0 ) , i = Ry ( t . shadowOffsetY || 0 ) ; return { left : Ry ( e - n ) , right : Ry ( e + n ) , top : Ry ( e - i ) , bottom : Ry ( e + i ) } } function zy ( t , e , n , i ) { t [ 0 ] = n , t [ 1 ] = i , t [ 2 ] = t [ 0 ] / e . getWidth ( ) , t [ 3 ] = t [ 1 ] / e . getHeight ( ) } function By ( t , e , n ) { var i , r = e . ecModel ; n ? ( i = new wI ( n , r , r ) , i = new wI ( e . option , i , r ) ) : i = e ; for ( var o = t . length - 1 ; o >= 0 ; o -- ) { var a = t [ o ] ; a && ( a instanceof wI && ( a = a . get ( "tooltip" , ! 0 ) ) , C ( a ) && ( a = { formatter : a } ) , a && ( i = new wI ( a , i , r ) ) ) } return i } function Ey ( t , e ) { return t . dispatchAction || Eb ( e . dispatchAction , e ) } function Fy ( t , e , n , i , r , o , a ) { var s = n . getSize ( ) , l = s [ 0 ] , u = s [ 1 ] ; return null != o && ( t + l + o + 2 > i ? t -= l + o : t += o ) , null != a && ( e + u + a > r ? e -= u + a : e += a ) , [ t , e ] } function Vy ( t , e , n , i , r ) { var o = n . getSize ( ) , a = o [ 0 ] , s = o [ 1 ] ; return t = Math . min ( t + a , i ) - a , e = Math . min ( e + s , r ) - s , t = Math . max ( t , 0 ) , e = Math . max ( e , 0 ) , [ t , e ] } function Hy ( t , e , n , i ) { var r = n [ 0 ] , o = n [ 1 ] , a = Math . ceil ( Math . SQRT2 * i ) + 8 , s = 0 , l = 0 , u = e . width , h = e . height ; switch ( t ) { case "inside" : s = e . x + u / 2 - r / 2 , l = e . y + h / 2 - o / 2 ; break ; case "top" : s = e . x + u / 2 - r / 2 , l = e . y - o - a ; break ; case "bottom" : s = e . x + u / 2 - r / 2 , l = e . y + h + a ; break ; case "left" : s = e . x - r - a , l = e . y + h / 2 - o / 2 ; break ; case "right" : s = e . x + u + a , l = e . y + h / 2 - o / 2 } return [ s , l ] } function Gy ( t ) { return "center" === t || "middle" === t } function Wy ( t , e , n ) { var i = Kr ( t ) . queryOptionMap , r = i . keys ( ) [ 0 ] ; if ( r && "series" !== r ) { var o = $r ( e , r , i . get ( r ) , { useDefault : ! 1 , enableAll : ! 1 , enableNone : ! 1 } ) , a = o . models [ 0 ] ; if ( a ) { var s , l = n . getViewOfComponentModel ( a ) ; return l . group . traverse ( function ( e ) { var n = OT ( e ) . tooltipConfig ; return n && n . name === t . name ? ( s = e , ! 0 ) : void 0 } ) , s ? { componentMainType : r , componentIndex : a . componentIndex , el : s } : void 0 } } } function Uy ( t ) { lf ( wy ) , t . registerComponentModel ( SR ) , t . registerComponentView ( LR ) , t . registerAction ( { type : "showTip" , event : "showTip" , update : "tooltip:manuallyShowTip" } , Q ) , t . registerAction ( { type : "hideTip" , event : "hideTip" , update : " tooltip : manuallyHid
} function Lx ( t ) { return jn ( t [ 0 ] - 1 ) && jn ( t [ 1 ] ) && jn ( t [ 2 ] ) && jn ( t [ 3 ] - 1 ) } function Ox ( t ) { return jn ( t [ 4 ] ) && jn ( t [ 5 ] ) } function Rx ( t , e , n ) { if ( e && ( ! Ox ( e ) || ! Lx ( e ) ) ) { var i = n ? 10 : 1e4 ; t . transform = Lx ( e ) ? "translate(" + kz ( e [ 4 ] * i ) / i + " " + kz ( e [ 5 ] * i ) / i + ")" : $n ( e ) } } function Nx ( t , e , n ) { for ( var i = t . points , r = [ ] , o = 0 ; o < i . length ; o ++ ) r . push ( kz ( i [ o ] [ 0 ] * n ) / n ) , r . push ( kz ( i [ o ] [ 1 ] * n ) / n ) ; e . points = r . join ( " " ) } function zx ( t ) { return ! t . smooth } function Bx ( t ) { var e = y ( t , function ( t ) { return "string" == typeof t ? [ t , t ] : t } ) ; return function ( t , n , i ) { for ( var r = 0 ; r < e . length ; r ++ ) { var o = e [ r ] , a = t [ o [ 0 ] ] ; null != a && ( n [ o [ 1 ] ] = kz ( a * i ) / i ) } } } function Ex ( t ) { for ( var e = t . animators , n = 0 ; n < e . length ; n ++ ) if ( "shape" === e [ n ] . targetName ) return ! 0 ; return ! 1 } function Fx ( t , e ) { var n = t . style , i = t . shape , r = Dz [ t . type ] , o = { } , a = e . animation , s = "path" , l = t . style . strokePercent , u = e . compress && li ( t ) || 4 ; if ( ! r || e . willUpdate || r [ 1 ] && ! r [ 1 ] ( i ) || a && Ex ( t ) || 1 > l ) { var h = ! t . path || t . shapeChanged ( ) ; t . path || t . createPathProxy ( ) ; var c = t . path ; h && ( c . beginPath ( ) , t . buildPath ( c , t . shape ) , t . pathUpdated ( ) ) ; var p = c . getVersion ( ) , d = t , f = d . _ _svgPathBuilder ; d . _ _svgPathVersion === p && f && l === d . _ _svgPathStrokePercent || ( f || ( f = d . _ _svgPathBuilder = new vz ) , f . reset ( u ) , c . rebuildPath ( f , l ) , f . generateStr ( ) , d . _ _svgPathVersion = p , d . _ _svgPathStrokePercent = l ) , o . d = f . getStr ( ) } else { s = t . type ; var g = Math . pow ( 10 , u ) ; r [ 0 ] ( i , o , g ) } return Rx ( o , t . transform ) , Px ( o , n , t , e ) , e . animation && kx ( t , o , e ) , gx ( s , t . id + "" , o ) } function Vx ( t , e ) { var n = t . style , i = n . image ; if ( i && ! C ( i ) && ( Dx ( i ) ? i = i . src : Ax ( i ) && ( i = i . toDataURL ( ) ) ) , i ) { var r = n . x || 0 , o = n . y || 0 , a = n . width , s = n . height , l = { href : i , width : a , height : s } ; return r && ( l . x = r ) , o && ( l . y = o ) , Rx ( l , t . transform ) , Px ( l , n , t , e ) , e . animation && kx ( t , l , e ) , gx ( "image" , t . id + "" , l ) } } function Hx ( t , e ) { var n = t . style , i = n . text ; if ( null != i && ( i += "" ) , i && ! isNaN ( n . x ) && ! isNaN ( n . y ) ) { var r = n . font || _b , o = n . x || 0 , a = Qn ( n . y || 0 , Fi ( r ) , n . textBaseline ) , s = oS [ n . textAlign ] || n . textAlign , l = { "dominant-baseline" : "central" , "text-anchor" : s } ; if ( na ( n ) ) { var u = "" , h = n . fontStyle , c = ta ( n . fontSize ) ; if ( ! parseFloat ( c ) ) return ; var p = n . fontFamily || mb , d = n . fontWeight ; u += "font-size:" + c + ";font-family:" + p + ";" , h && "normal" !== h && ( u += "font-style:" + h + ";" ) , d && "normal" !== d && ( u += "font-weight:" + d + ";" ) , l . style = u } else l . style = "font: " + r ; return i . match ( /\s/ ) && ( l [ "xml:space" ] = "preserve" ) , o && ( l . x = o ) , a && ( l . y = a ) , Rx ( l , t . transform ) , Px ( l , n , t , e ) , e . animation && kx ( t , l , e ) , gx ( "text" , t . id + "" , l , void 0 , i ) } } function Gx ( t , e ) { return t instanceof vT ? Fx ( t , e ) : t instanceof bT ? Vx ( t , e ) : t instanceof mT ? Hx ( t , e ) : void 0 } function Wx ( t , e , n ) { var i = t . style ; if ( Jn ( i ) ) { var r = ti ( t ) , o = n . shadowCache , a = o [ r ] ; if ( ! a ) { var s = t . getGlobalScale ( ) , l = s [ 0 ] , u = s [ 1 ] ; if ( ! l || ! u ) return ; var h = i . shadowOffsetX || 0 , c = i . shadowOffsetY || 0 , p = i . shadowBlur , d = Zn ( i . shadowColor ) , f = d . opacity , g = d . color , v = p / 2 / l , y = p / 2 / u , m = v + " " + y ; a = n . zrId + "-s" + n . shadowIdx ++ , n . defs [ a ] = gx ( "filter" , a , { id : a , x : "-100%" , y : "-100%" , width : "300%" , height : "300%" } , [ gx ( "feDropShadow" , "" , { dx : h / l , dy : c / u , stdDeviation : m , "flood-color" : g , "flood-opacity" : f } ) ] ) , o [ r ] = a } e . filter = si ( a ) } } function Ux ( t , e , n , i ) { var r , o = t [ n ] , a = { gradientUnits : o . global ? "userSpaceOnUse" : "objectBoundingBox" } ; if ( ri ( o ) ) r = "linearGradient" , a . x1 = o . x , a . y1 = o . y , a . x2 = o . x2 , a . y2 = o . y2 ; else { if ( ! oi ( o ) ) return ; r = "radialGradient" , a . cx = E ( o . x , . 5 ) , a . cy = E ( o . y , . 5 ) , a . r = E ( o . r , . 5 ) } for ( var s = o . colorStops , l = [ ] , u = 0 , h = s . length ; h > u ; ++ u ) { var c = 100 * Kn ( s [ u ] . offset ) + "%" , p = s [ u ] . color , d = Zn ( p ) , f = d . color , g = d . opacity , v = { offset : c } ; v [ "stop-color" ] = f , 1 > g && ( v [ "stop-opacity" ] = g ) , l . push ( gx ( "stop" , u + "" , v ) ) } var y = gx ( r , "" , a , l ) , m = mx ( y ) , _ = i . gradientCache , x = _ [ m ] ; x || ( x = i . zrId + "-g" + i . gradientIdx ++ , _ [ m ] = x , a . id = x , i . defs [ x ] = gx ( r , x , a , l ) ) , e [ n ] = si ( x ) } function Xx ( t , e , n , i ) { var r , o = t . style [ n ] , a = t . getBoundingRect ( ) , l = { } , u = o . repeat , h = "no-repeat" === u , c = "repeat-x" === u , p = "repeat-y" === u ; if ( ei ( o ) ) { var d = o . imageWidth , f = o . imageHeight , g = void 0 , v = o . image ; if ( C ( v ) ? g = v : Dx ( v ) ? g = v . src : Ax ( v ) && ( g = v . toDataURL ( ) ) , "undefined" == typeof Image ) { var y = "Image width/height must been given explictly in svg-ssr renderer." ; G ( d , y ) , G ( f , y ) } else if ( null == d || null == f ) { var m = function ( t , e ) { if ( t ) { var n = t . elm , i = d || e . width , r = f || e . height ; "pattern" === t . tag && ( c ? ( r = 1 , i /= a . width ) : p && ( i = 1 , r /= a . height ) ) , t . attrs . width = i , t . attrs . height = r , n && ( n . setAttribute ( "width" , i ) , n . setAttribute ( "height" , r ) ) } } , _ = go ( g , null , t , f
} : "undefined" != typeof Buffer ? function ( t ) { return Buffer . from ( t ) . toString ( "base64" ) } : function ( ) { return null } } ( ) , sS = Array . prototype . slice , lS = 0 , uS = 1 , hS = 2 , cS = 3 , pS = 4 , dS = 5 , fS = 6 , gS = [ 0 , 0 , 0 , 0 ] , vS = function ( ) { function t ( t ) { this . keyframes = [ ] , this . discrete = ! 1 , this . _invalid = ! 1 , this . _needsSort = ! 1 , this . _lastFr = 0 , this . _lastFrP = 0 , this . propName = t } return t . prototype . isFinished = function ( ) { return this . _finished } , t . prototype . setFinished = function ( ) { this . _finished = ! 0 , this . _additiveTrack && this . _additiveTrack . setFinished ( ) } , t . prototype . needsAnimate = function ( ) { return this . keyframes . length >= 1 } , t . prototype . getAdditiveTrack = function ( ) { return this . _additiveTrack } , t . prototype . addKeyframe = function ( t , e , n ) { this . _needsSort = ! 0 ; var i = this . keyframes , r = i . length , o = ! 1 , a = fS , s = e ; if ( g ( e ) ) { var l = _i ( e ) ; a = l , ( 1 === l && ! k ( e [ 0 ] ) || 2 === l && ! k ( e [ 0 ] [ 0 ] ) ) && ( o = ! 0 ) } else if ( k ( e ) && ! z ( e ) ) a = lS ; else if ( C ( e ) ) if ( isNaN ( + e ) ) { var u = Nn ( e ) ; u && ( s = u , a = cS ) } else a = lS ; else if ( O ( e ) ) { var c = h ( { } , s ) ; c . colorStops = y ( e . colorStops , function ( t ) { return { offset : t . offset , color : Nn ( t . color ) } } ) , ri ( e ) ? a = pS : oi ( e ) && ( a = dS ) , s = c } 0 === r ? this . valType = a : ( a !== this . valType || a === fS ) && ( o = ! 0 ) , this . discrete = this . discrete || o ; var p = { time : t , value : s , rawValue : e , percent : 0 } ; return n && ( p . easing = n , p . easingFunc = T ( n ) ? n : zw [ n ] || Mn ( n ) ) , i . push ( p ) , p } , t . prototype . prepare = function ( t , e ) { var n = this . keyframes ; this . _needsSort && n . sort ( function ( t , e ) { return t . time - e . time } ) ; for ( var i = this . valType , r = n . length , o = n [ r - 1 ] , a = this . discrete , s = bi ( i ) , l = xi ( i ) , u = 0 ; r > u ; u ++ ) { var h = n [ u ] , c = h . value , p = o . value ; h . percent = h . time / t , a || ( s && u !== r - 1 ? vi ( c , p , i ) : l && gi ( c . colorStops , p . colorStops ) ) } if ( ! a && i !== dS && e && this . needsAnimate ( ) && e . needsAnimate ( ) && i === e . valType && ! e . _finished ) { this . _additiveTrack = e ; for ( var d = n [ 0 ] . value , u = 0 ; r > u ; u ++ ) i === lS ? n [ u ] . additiveValue = n [ u ] . value - d : i === cS ? n [ u ] . additiveValue = di ( [ ] , n [ u ] . value , d , - 1 ) : bi ( i ) && ( n [ u ] . additiveValue = i === uS ? di ( [ ] , n [ u ] . value , d , - 1 ) : fi ( [ ] , n [ u ] . value , d , - 1 ) ) } } , t . prototype . step = function ( t , e ) { if ( ! this . _finished ) { this . _additiveTrack && this . _additiveTrack . _finished && ( this . _additiveTrack = null ) ; var n , i , r , o = null != this . _additiveTrack , a = o ? "additiveValue" : "value" , s = this . valType , l = this . keyframes , u = l . length , h = this . propName , c = s === cS , p = this . _lastFr , d = Math . min ; if ( 1 === u ) i = r = l [ 0 ] ; else { if ( 0 > e ) n = 0 ; else if ( e < this . _lastFrP ) { var f = d ( p + 1 , u - 1 ) ; for ( n = f ; n >= 0 && ! ( l [ n ] . percent <= e ) ; n -- ) ; n = d ( n , u - 2 ) } else { for ( n = p ; u > n && ! ( l [ n ] . percent > e ) ; n ++ ) ; n = d ( n - 1 , u - 2 ) } r = l [ n + 1 ] , i = l [ n ] } if ( i && r ) { this . _lastFr = n , this . _lastFrP = e ; var g = r . percent - i . percent , v = 0 === g ? 1 : d ( ( e - i . percent ) / g , 1 ) ; r . easingFunc && ( v = r . easingFunc ( v ) ) ; var m = o ? this . _additiveValue : c ? gS : t [ h ] ; if ( ! bi ( s ) && ! c || m || ( m = this . _additiveValue = [ ] ) , this . discrete ) t [ h ] = 1 > v ? i . rawValue : r . rawValue ; else if ( bi ( s ) ) s === uS ? ci ( m , i [ a ] , r [ a ] , v ) : pi ( m , i [ a ] , r [ a ] , v ) ; else if ( xi ( s ) ) { var _ = i [ a ] , x = r [ a ] , b = s === pS ; t [ h ] = { type : b ? "linear" : "radial" , x : hi ( _ . x , x . x , v ) , y : hi ( _ . y , x . y , v ) , colorStops : y ( _ . colorStops , function ( t , e ) { var n = x . colorStops [ e ] ; return { offset : hi ( t . offset , n . offset , v ) , color : mi ( ci ( [ ] , t . color , n . color , v ) ) } } ) , global : x . global } , b ? ( t [ h ] . x2 = hi ( _ . x2 , x . x2 , v ) , t [ h ] . y2 = hi ( _ . y2 , x . y2 , v ) ) : t [ h ] . r = hi ( _ . r , x . r , v ) } else if ( c ) ci ( m , i [ a ] , r [ a ] , v ) , o || ( t [ h ] = mi ( m ) ) ; else { var w = hi ( i [ a ] , r [ a ] , v ) ; o ? this . _additiveValue = w : t [ h ] = w } o && this . _addToTarget ( t ) } } } , t . prototype . _addToTarget = function ( t ) { var e = this . valType , n = this . propName , i = this . _additiveValue ; e === lS ? t [ n ] = t [ n ] + i : e === cS ? ( Nn ( t [ n ] , gS ) , di ( gS , gS , i , 1 ) , t [ n ] = mi ( gS ) ) : e === uS ? di ( t [ n ] , t [ n ] , i , 1 ) : e === hS && fi ( t [ n ] , t [ n ] , i , 1 ) } , t } ( ) , yS = function ( ) { function t ( t , e , n , i ) { return this . _tracks = { } , this . _trackKeys = [ ] , this . _maxTime = 0 , this . _started = 0 , this . _clip = null , this . _target = t , this . _loop = e , e && i ? void a ( "Can' use additive animation on looped animation." ) : ( this . _additiveAnimators = i , void ( this . _allowDiscrete = n ) ) } return t . prototype . getMaxTime = function ( ) { return this . _maxTime } , t . prototype . getDelay = function ( ) { return this . _delay } , t . prototype . getLoop = function ( ) { return this . _loop } , t . prototype . getTarget = function ( ) { return this . _target } , t . prototype . changeTarget = function ( t ) { this . _target = t } , t . prototype . when = function ( t , e , n ) { return this . whenWithKeys ( t , e , b ( e ) , n ) } , t . prototype . whenWithKeys = function ( t , e , n , i ) { for ( var r = this . _tracks , o = 0 ; o < n . length ; o ++ ) { var a = n [ o ] , s = r [ a ] ; if ( ! s ) { s = r [ a ] = new vS ( a ) ; var
} , t . prototype . resize = function ( t ) { t = t || { } , this . painter . resize ( t . width , t . height ) , this . handler . resize ( ) } , t . prototype . clearAnimation = function ( ) { this . animation . clear ( ) } , t . prototype . getWidth = function ( ) { return this . painter . getWidth ( ) } , t . prototype . getHeight = function ( ) { return this . painter . getHeight ( ) } , t . prototype . setCursorStyle = function ( t ) { this . handler . setCursorStyle ( t ) } , t . prototype . findHover = function ( t , e ) { return this . handler . findHover ( t , e ) } , t . prototype . on = function ( t , e , n ) { return this . handler . on ( t , e , n ) , this } , t . prototype . off = function ( t , e ) { this . handler . off ( t , e ) } , t . prototype . trigger = function ( t , e ) { this . handler . trigger ( t , e ) } , t . prototype . clear = function ( ) { for ( var t = this . storage . getRoots ( ) , e = 0 ; e < t . length ; e ++ ) t [ e ] instanceof KS && t [ e ] . removeSelfFromZr ( this ) ; this . storage . delAllRoots ( ) , this . painter . clear ( ) } , t . prototype . dispose = function ( ) { this . animation . stop ( ) , this . clear ( ) , this . storage . dispose ( ) , this . painter . dispose ( ) , this . handler . dispose ( ) , this . animation = this . storage = this . painter = this . handler = null , qi ( this . id ) } , t } ( ) , tM = "5.4.1" , eM = ( Object . freeze || Object ) ( { init : $i , dispose : Qi , disposeAll : Ji , getInstance : tr , registerPainter : er , version : tM } ) , nM = 1e-4 , iM = 20 , rM = 9007199254740991 , oM = /^(?:(\d{4})(?:[-\/](\d{1,2})(?:[-\/](\d{1,2})(?:[T ](\d{1,2})(?::(\d{1,2})(?::(\d{1,2})(?:[.,](\d+))?)?)?(Z|[\+\-]\d\d:?\d\d)?)?)?)?)?$/ , aM = ( "undefined" != typeof console && console . warn && console . log , "series\x00" ) , sM = "\x00_ec_\x00" , lM = [ "fontStyle" , "fontWeight" , "fontSize" , "fontFamily" , "rich" , "tag" , "color" , "textBorderColor" , "textBorderWidth" , "width" , "height" , "lineHeight" , "align" , "verticalAlign" , "baseline" , "shadowColor" , "shadowBlur" , "shadowOffsetX" , "shadowOffsetY" , "textShadowColor" , "textShadowBlur" , "textShadowOffsetX" , "textShadowOffsetY" , "backgroundColor" , "borderColor" , "borderWidth" , "borderRadius" , "padding" ] , uM = Sr ( ) , hM = { useDefault : ! 0 , enableAll : ! 1 , enableNone : ! 1 } , cM = { useDefault : ! 1 , enableAll : ! 0 , enableNone : ! 0 } , pM = "." , dM = "___EC__COMPONENT__CONTAINER___" , fM = "___EC__EXTENDED_CLASS___" , gM = Math . round ( 10 * Math . random ( ) ) , vM = [ [ "fill" , "color" ] , [ "shadowBlur" ] , [ "shadowOffsetX" ] , [ "shadowOffsetY" ] , [ "opacity" ] , [ "shadowColor" ] ] , yM = po ( vM ) , mM = function ( ) { function t ( ) { } return t . prototype . getAreaStyle = function ( t , e ) { return yM ( this , t , e ) } , t } ( ) , _M = new Kw ( 50 ) , xM = /\{([a-zA-Z0-9_]+)\|([^}]*)\}/g , bM = function ( ) { function t ( ) { } return t } ( ) , wM = function ( ) { function t ( t ) { this . tokens = [ ] , t && ( this . tokens = t ) } return t } ( ) , SM = function ( ) { function t ( ) { this . width = 0 , this . height = 0 , this . contentWidth = 0 , this . contentHeight = 0 , this . outerWidth = 0 , this . outerHeight = 0 , this . lines = [ ] } return t } ( ) , MM = m ( ",&?/;] " . split ( "" ) , function ( t , e ) { return t [ e ] = ! 0 , t } , { } ) , TM = "__zr_style_" + Math . round ( 10 * Math . random ( ) ) , CM = { shadowBlur : 0 , shadowOffsetX : 0 , shadowOffsetY : 0 , shadowColor : "#000" , opacity : 1 , blend : "source-over" } , IM = { style : { shadowBlur : ! 0 , shadowOffsetX : ! 0 , shadowOffsetY : ! 0 , shadowColor : ! 0 , opacity : ! 0 } } ; CM [ TM ] = ! 0 ; var kM = [ "z" , "z2" , "invisible" ] , DM = [ "invisible" ] , AM = function ( t ) { function n ( e ) { return t . call ( this , e ) || this } return e ( n , t ) , n . prototype . _init = function ( e ) { for ( var n = b ( e ) , i = 0 ; i < n . length ; i ++ ) { var r = n [ i ] ; "style" === r ? this . useStyle ( e [ r ] ) : t . prototype . attrKV . call ( this , r , e [ r ] ) } this . style || this . useStyle ( { } ) } , n . prototype . beforeBrush = function ( ) { } , n . prototype . afterBrush = function ( ) { } , n . prototype . innerBeforeBrush = function ( ) { } , n . prototype . innerAfterBrush = function ( ) { } , n . prototype . shouldBePainted = function ( t , e , n , i ) { var r = this . transform ; if ( this . ignore || this . invisible || 0 === this . style . opacity || this . culling && ko ( this , t , e ) || r && ! r [ 0 ] && ! r [ 3 ] ) return ! 1 ; if ( n && this . _ _clipPaths ) for ( var o = 0 ; o < this . _ _clipPaths . length ; ++ o ) if ( this . _ _clipPaths [ o ] . isZeroArea ( ) ) return ! 1 ; if ( i && this . parent ) for ( var a = this . parent ; a ; ) { if ( a . ignore ) return ! 1 ; a = a . parent } return ! 0 } , n . prototype . contain = function ( t , e ) { return this . rectContain ( t , e ) } , n . prototype . traverse = function ( t , e ) { t . call ( e , this ) } , n . prototype . rectContain = function ( t , e ) { var n = this . transformCoordToLocal ( t , e ) , i = this . getBoundingRect ( ) ; return i . contain ( n [ 0 ] , n [ 1 ] ) } , n . prototype . getPaintRect = function ( ) { var t = this . _paintRect ; if ( ! this . _paintRect || this . _ _dirty ) { var e = this . transform , n = this . getBoundingRect ( ) , i = this . style , r = i . shadowBlur || 0 , o = i . shadowOffsetX || 0 , a = i . shadowOffsetY || 0 ; t =
} return t } ( ) , IC = function ( t ) { function n ( e ) { return t . call ( this , e ) || this } return e ( n , t ) , n . prototype . getDefaultShape = function ( ) { return new CC } , n . prototype . buildPath = function ( t , e ) { ms ( t , e ) } , n . prototype . isZeroArea = function ( ) { return this . shape . startAngle === this . shape . endAngle || this . shape . r === this . shape . r0 } , n } ( vT ) ; IC . prototype . type = "sector" ; var kC = function ( ) { function t ( ) { this . cx = 0 , this . cy = 0 , this . r = 0 , this . r0 = 0 } return t } ( ) , DC = function ( t ) { function n ( e ) { return t . call ( this , e ) || this } return e ( n , t ) , n . prototype . getDefaultShape = function ( ) { return new kC } , n . prototype . buildPath = function ( t , e ) { var n = e . cx , i = e . cy , r = 2 * Math . PI ; t . moveTo ( n + e . r , i ) , t . arc ( n , i , e . r , 0 , r , ! 1 ) , t . moveTo ( n + e . r0 , i ) , t . arc ( n , i , e . r0 , 0 , r , ! 0 ) } , n } ( vT ) ; DC . prototype . type = "ring" ; var AC = function ( ) { function t ( ) { this . points = null , this . smooth = 0 , this . smoothConstraint = null } return t } ( ) , PC = function ( t ) { function n ( e ) { return t . call ( this , e ) || this } return e ( n , t ) , n . prototype . getDefaultShape = function ( ) { return new AC } , n . prototype . buildPath = function ( t , e ) { xs ( t , e , ! 0 ) } , n } ( vT ) ; PC . prototype . type = "polygon" ; var LC = function ( ) { function t ( ) { this . points = null , this . percent = 1 , this . smooth = 0 , this . smoothConstraint = null } return t } ( ) , OC = function ( t ) { function n ( e ) { return t . call ( this , e ) || this } return e ( n , t ) , n . prototype . getDefaultStyle = function ( ) { return { stroke : "#000" , fill : null } } , n . prototype . getDefaultShape = function ( ) { return new LC } , n . prototype . buildPath = function ( t , e ) { xs ( t , e , ! 1 ) } , n } ( vT ) ; OC . prototype . type = "polyline" ; var RC = { } , NC = function ( ) { function t ( ) { this . x1 = 0 , this . y1 = 0 , this . x2 = 0 , this . y2 = 0 , this . percent = 1 } return t } ( ) , zC = function ( t ) { function n ( e ) { return t . call ( this , e ) || this } return e ( n , t ) , n . prototype . getDefaultStyle = function ( ) { return { stroke : "#000" , fill : null } } , n . prototype . getDefaultShape = function ( ) { return new NC } , n . prototype . buildPath = function ( t , e ) { var n , i , r , o ; if ( this . subPixelOptimize ) { var a = $o ( RC , e , this . style ) ; n = a . x1 , i = a . y1 , r = a . x2 , o = a . y2 } else n = e . x1 , i = e . y1 , r = e . x2 , o = e . y2 ; var s = e . percent ; 0 !== s && ( t . moveTo ( n , i ) , 1 > s && ( r = n * ( 1 - s ) + r * s , o = i * ( 1 - s ) + o * s ) , t . lineTo ( r , o ) ) } , n . prototype . pointAt = function ( t ) { var e = this . shape ; return [ e . x1 * ( 1 - t ) + e . x2 * t , e . y1 * ( 1 - t ) + e . y2 * t ] } , n } ( vT ) ; zC . prototype . type = "line" ; var BC = [ ] , EC = function ( ) { function t ( ) { this . x1 = 0 , this . y1 = 0 , this . x2 = 0 , this . y2 = 0 , this . cpx1 = 0 , this . cpy1 = 0 , this . percent = 1 } return t } ( ) , FC = function ( t ) { function n ( e ) { return t . call ( this , e ) || this } return e ( n , t ) , n . prototype . getDefaultStyle = function ( ) { return { stroke : "#000" , fill : null } } , n . prototype . getDefaultShape = function ( ) { return new EC } , n . prototype . buildPath = function ( t , e ) { var n = e . x1 , i = e . y1 , r = e . x2 , o = e . y2 , a = e . cpx1 , s = e . cpy1 , l = e . cpx2 , u = e . cpy2 , h = e . percent ; 0 !== h && ( t . moveTo ( n , i ) , null == l || null == u ? ( 1 > h && ( bn ( n , a , r , h , BC ) , a = BC [ 1 ] , r = BC [ 2 ] , bn ( i , s , o , h , BC ) , s = BC [ 1 ] , o = BC [ 2 ] ) , t . quadraticCurveTo ( a , s , r , o ) ) : ( 1 > h && ( fn ( n , a , l , r , h , BC ) , a = BC [ 1 ] , l = BC [ 2 ] , r = BC [ 3 ] , fn ( i , s , u , o , h , BC ) , s = BC [ 1 ] , u = BC [ 2 ] , o = BC [ 3 ] ) , t . bezierCurveTo ( a , s , l , u , r , o ) ) ) } , n . prototype . pointAt = function ( t ) { return bs ( this . shape , t , ! 1 ) } , n . prototype . tangentAt = function ( t ) { var e = bs ( this . shape , t , ! 0 ) ; return pe ( e , e ) } , n } ( vT ) ; FC . prototype . type = "bezier-curve" ; var VC = function ( ) { function t ( ) { this . cx = 0 , this . cy = 0 , this . r = 0 , this . startAngle = 0 , this . endAngle = 2 * Math . PI , this . clockwise = ! 0 } return t } ( ) , HC = function ( t ) { function n ( e ) { return t . call ( this , e ) || this } return e ( n , t ) , n . prototype . getDefaultStyle = function ( ) { return { stroke : "#000" , fill : null } } , n . prototype . getDefaultShape = function ( ) { return new VC } , n . prototype . buildPath = function ( t , e ) { var n = e . cx , i = e . cy , r = Math . max ( e . r , 0 ) , o = e . startAngle , a = e . endAngle , s = e . clockwise , l = Math . cos ( o ) , u = Math . sin ( o ) ; t . moveTo ( l * r + n , u * r + i ) , t . arc ( n , i , r , o , a , ! s ) } , n } ( vT ) ; HC . prototype . type = "arc" ; var GC = function ( t ) { function n ( ) { var e = null !== t && t . apply ( this , arguments ) || this ; return e . type = "compound" , e } return e ( n , t ) , n . prototype . _updatePathDirty = function ( ) { for ( var t = this . shape . paths , e = this . shapeChanged ( ) , n = 0 ; n < t . length ; n ++ ) e = e || t [ n ] . shapeChanged ( ) ; e && this . dirtyShape ( ) } , n . prototype . beforeBrush = function ( ) { this . _updatePathDirty ( ) ; for ( var t = this . shape . paths || [ ] , e = this . getGlobalScale ( ) , n = 0 ; n < t . length ; n ++ ) t [ n ] . path || t [ n ] . createPathProxy ( ) , t [ n ] . path . setScale ( e [ 0 ] , e [ 1 ] , t [ n ] . segmentIgnoreThreshold ) } , n . prototype . buildPath = function ( t , e ) { for ( var n = e . paths || [ ] , i = 0 ; i < n . len
return { componentType : h , componentSubType : this . subType , componentIndex : this . componentIndex , seriesType : c ? this . subType : null , seriesIndex : this . seriesIndex , seriesId : c ? this . id : null , seriesName : c ? this . name : null , name : o , dataIndex : r , data : a , dataType : e , value : i , color : l , borderColor : u , dimensionNames : p ? p . fullDimensions : null , encode : p ? p . encode : null , $vars : [ "seriesName" , "name" , "value" ] } } , t . prototype . getFormattedLabel = function ( t , e , n , i , r , o ) { e = e || "normal" ; var a = this . getData ( n ) , s = this . getDataParams ( t , n ) ; if ( o && ( s . value = o . interpolatedValue ) , null != i && M ( s . value ) && ( s . value = s . value [ i ] ) , ! r ) { var l = a . getItemModel ( t ) ; r = l . get ( "normal" === e ? [ "label" , "formatter" ] : [ e , "label" , "formatter" ] ) } if ( T ( r ) ) return s . status = e , s . dimensionIndex = i , r ( s ) ; if ( C ( r ) ) { var u = jl ( r , s ) ; return u . replace ( Xk , function ( e , n ) { var i = n . length , r = n ; "[" === r . charAt ( 0 ) && "]" === r . charAt ( i - 1 ) && ( r = + r . slice ( 1 , i - 1 ) ) ; var s = lh ( a , t , r ) ; if ( o && M ( o . interpolatedValue ) ) { var l = a . getDimensionIndex ( r ) ; l >= 0 && ( s = o . interpolatedValue [ l ] ) } return null != s ? s + "" : "" } ) } } , t . prototype . getRawValue = function ( t , e ) { return lh ( this . getData ( e ) , t ) } , t . prototype . formatTooltip = function ( ) { } , t } ( ) , Zk = function ( ) { function t ( t ) { t = t || { } , this . _reset = t . reset , this . _plan = t . plan , this . _count = t . count , this . _onDirty = t . onDirty , this . _dirty = ! 0 } return t . prototype . perform = function ( t ) { function e ( t ) { return ! ( t >= 1 ) && ( t = 1 ) , t } var n = this . _upstream , i = t && t . skip ; if ( this . _dirty && n ) { var r = this . context ; r . data = r . outputData = n . context . outputData } this . _ _pipeline && ( this . _ _pipeline . currentTask = this ) ; var o ; this . _plan && ! i && ( o = this . _plan ( this . context ) ) ; var a = e ( this . _modBy ) , s = this . _modDataCount || 0 , l = e ( t && t . modBy ) , u = t && t . modDataCount || 0 ; ( a !== l || s !== u ) && ( o = "reset" ) ; var h ; ( this . _dirty || "reset" === o ) && ( this . _dirty = ! 1 , h = this . _doReset ( i ) ) , this . _modBy = l , this . _modDataCount = u ; var c = t && t . step ; if ( this . _dueEnd = n ? n . _outputDueEnd : this . _count ? this . _count ( this . context ) : 1 / 0 , this . _progress ) { var p = this . _dueIndex , d = Math . min ( null != c ? this . _dueIndex + c : 1 / 0 , this . _dueEnd ) ; if ( ! i && ( h || d > p ) ) { var f = this . _progress ; if ( M ( f ) ) for ( var g = 0 ; g < f . length ; g ++ ) this . _doProgress ( f [ g ] , p , d , l , u ) ; else this . _doProgress ( f , p , d , l , u ) } this . _dueIndex = d ; var v = null != this . _settedOutputEnd ? this . _settedOutputEnd : d ; this . _outputDueEnd = v } else this . _dueIndex = this . _outputDueEnd = null != this . _settedOutputEnd ? this . _settedOutputEnd : this . _dueEnd ; return this . unfinished ( ) } , t . prototype . dirty = function ( ) { this . _dirty = ! 0 , this . _onDirty && this . _onDirty ( this . context ) } , t . prototype . _doProgress = function ( t , e , n , i , r ) { jk . reset ( e , n , i , r ) , this . _callingProgress = t , this . _callingProgress ( { start : e , end : n , count : n - e , next : jk . next } , this . context ) } , t . prototype . _doReset = function ( t ) { this . _dueIndex = this . _outputDueEnd = this . _dueEnd = 0 , this . _settedOutputEnd = null ; var e , n ; ! t && this . _reset && ( e = this . _reset ( this . context ) , e && e . progress && ( n = e . forceFirstProgress , e = e . progress ) , M ( e ) && ! e . length && ( e = null ) ) , this . _progress = e , this . _modBy = this . _modDataCount = null ; var i = this . _downstream ; return i && i . dirty ( ) , n } , t . prototype . unfinished = function ( ) { return this . _progress && this . _dueIndex < this . _dueEnd } , t . prototype . pipe = function ( t ) { ( this . _downstream !== t || this . _dirty ) && ( this . _downstream = t , t . _upstream = this , t . dirty ( ) ) } , t . prototype . dispose = function ( ) { this . _disposed || ( this . _upstream && ( this . _upstream . _downstream = null ) , this . _downstream && ( this . _downstream . _upstream = null ) , this . _dirty = ! 1 , this . _disposed = ! 0 ) } , t . prototype . getUpstream = function ( ) { return this . _upstream } , t . prototype . getDownstream = function ( ) { return this . _downstream } , t . prototype . setOutputEnd = function ( t ) { this . _outputDueEnd = this . _settedOutputEnd = t } , t } ( ) , jk = function ( ) { function t ( ) { return n > i ? i ++ : null } function e ( ) { var t = i % a * r + Math . ceil ( i / a ) , e = i >= n ? null : o > t ? t : i ; return i ++ , e } var n , i , r , o , a , s = { reset : function ( l , u , h , c ) { i = l , n = u , r = h , o = c , a = Math . ceil ( o / r ) , s . next = r > 1 && o > 0 ? e : t } } ; return s } ( ) , qk = ( Z ( { number : function ( t ) { return parseFloat ( t ) } , time : function ( t ) { return + gr ( t ) } , trim : function ( t ) { return C ( t ) ? W ( t ) : t } } ) , { lt : function ( t , e ) { return e > t } , lte : function ( t , e ) { return e >= t } , gt : function ( t , e ) { return t > e } , gte : function ( t , e ) { return t >= e } } ) , Kk = ( function ( ) { function t ( t , e ) { if ( ! k ( e ) ) { var n = "" ; Cr ( n ) } this . _opFn = qk [ t ] , this . _rvalFloat = br ( e ) } return t . prototype . evaluate = function ( t ) { return k ( t ) ? this . _opFn ( t , this . _rva
} , OD . eachComponent = function ( t ) { "series" === t . mainType && t . subType && ( mD = t . subType ) } ; var ND = [ "#37A2DA" , "#32C5E9" , "#67E0E3" , "#9FE6B8" , "#FFDB5C" , "#ff9f7f" , "#fb7293" , "#E062AE" , "#E690D1" , "#e7bcf3" , "#9d96f5" , "#8378EA" , "#96BFFF" ] , zD = { color : ND , colorLayer : [ [ "#37A2DA" , "#ffd85c" , "#fd7b5f" ] , [ "#37A2DA" , "#67E0E3" , "#FFDB5C" , "#ff9f7f" , "#E062AE" , "#9d96f5" ] , [ "#37A2DA" , "#32C5E9" , "#9FE6B8" , "#FFDB5C" , "#ff9f7f" , "#fb7293" , "#e7bcf3" , "#8378EA" , "#96BFFF" ] , ND ] } , BD = "#B9B8CE" , ED = "#100C2A" , FD = function ( ) { return { axisLine : { lineStyle : { color : BD } } , splitLine : { lineStyle : { color : "#484753" } } , splitArea : { areaStyle : { color : [ "rgba(255,255,255,0.02)" , "rgba(255,255,255,0.05)" ] } } , minorSplitLine : { lineStyle : { color : "#20203B" } } } } , VD = [ "#4992ff" , "#7cffb2" , "#fddd60" , "#ff6e76" , "#58d9f9" , "#05c091" , "#ff8a45" , "#8d48e3" , "#dd79ff" ] , HD = { darkMode : ! 0 , color : VD , backgroundColor : ED , axisPointer : { lineStyle : { color : "#817f91" } , crossStyle : { color : "#817f91" } , label : { color : "#fff" } } , legend : { textStyle : { color : BD } } , textStyle : { color : BD } , title : { textStyle : { color : "#EEF1FA" } , subtextStyle : { color : "#B9B8CE" } } , toolbox : { iconStyle : { borderColor : BD } } , dataZoom : { borderColor : "#71708A" , textStyle : { color : BD } , brushStyle : { color : "rgba(135,163,206,0.3)" } , handleStyle : { color : "#353450" , borderColor : "#C5CBE3" } , moveHandleStyle : { color : "#B0B6C3" , opacity : . 3 } , fillerColor : "rgba(135,163,206,0.2)" , emphasis : { handleStyle : { borderColor : "#91B7F2" , color : "#4D587D" } , moveHandleStyle : { color : "#636D9A" , opacity : . 7 } } , dataBackground : { lineStyle : { color : "#71708A" , width : 1 } , areaStyle : { color : "#71708A" } } , selectedDataBackground : { lineStyle : { color : "#87A3CE" } , areaStyle : { color : "#87A3CE" } } } , visualMap : { textStyle : { color : BD } } , timeline : { lineStyle : { color : BD } , label : { color : BD } , controlStyle : { color : BD , borderColor : BD } } , calendar : { itemStyle : { color : ED } , dayLabel : { color : BD } , monthLabel : { color : BD } , yearLabel : { color : BD } } , timeAxis : FD ( ) , logAxis : FD ( ) , valueAxis : FD ( ) , categoryAxis : FD ( ) , line : { symbol : "circle" } , graph : { color : VD } , gauge : { title : { color : BD } , axisLine : { lineStyle : { color : [ [ 1 , "rgba(207,212,219,0.2)" ] ] } } , axisLabel : { color : BD } , detail : { color : "#EEF1FA" } } , candlestick : { itemStyle : { color : "#f64e56" , color0 : "#54ea92" , borderColor : "#f64e56" , borderColor0 : "#54ea92" } } } ; HD . categoryAxis . splitLine . show = ! 1 ; var GD = function ( ) { function t ( ) { } return t . prototype . normalizeQuery = function ( t ) { var e = { } , n = { } , i = { } ; if ( C ( t ) ) { var r = no ( t ) ; e . mainType = r . main || null , e . subType = r . sub || null } else { var o = [ "Index" , "Name" , "Id" ] , a = { name : 1 , dataIndex : 1 , dataType : 1 } ; v ( t , function ( t , r ) { for ( var s = ! 1 , l = 0 ; l < o . length ; l ++ ) { var u = o [ l ] , h = r . lastIndexOf ( u ) ; if ( h > 0 && h === r . length - u . length ) { var c = r . slice ( 0 , h ) ; "data" !== c && ( e . mainType = c , e [ u . toLowerCase ( ) ] = t , s = ! 0 ) } } a . hasOwnProperty ( r ) && ( n [ r ] = t , s = ! 0 ) , s || ( i [ r ] = t ) } ) } return { cptQuery : e , dataQuery : n , otherQuery : i } } , t . prototype . filter = function ( t , e ) { function n ( t , e , n , i ) { return null == t [ n ] || e [ i || n ] === t [ n ] } var i = this . eventInfo ; if ( ! i ) return ! 0 ; var r = i . targetEl , o = i . packedEvent , a = i . model , s = i . view ; if ( ! a || ! s ) return ! 0 ; var l = e . cptQuery , u = e . dataQuery ; return n ( l , a , "mainType" ) && n ( l , a , "subType" ) && n ( l , a , "index" , "componentIndex" ) && n ( l , a , "name" ) && n ( l , a , "id" ) && n ( u , o , "name" ) && n ( u , o , "dataIndex" ) && n ( u , o , "dataType" ) && ( ! s . filterForExposedEvent || s . filterForExposedEvent ( t , e . otherQuery , r , o ) ) } , t . prototype . afterTrigger = function ( ) { this . eventInfo = null } , t } ( ) , WD = [ "symbol" , "symbolSize" , "symbolRotate" , "symbolOffset" ] , UD = WD . concat ( [ "symbolKeepAspect" ] ) , XD = { createOnAllSeries : ! 0 , performRawSeries : ! 0 , reset : function ( t , e ) { function n ( e , n ) { for ( var i = t . getRawValue ( n ) , r = t . getDataParams ( n ) , a = 0 ; a < c . length ; a ++ ) { var s = c [ a ] ; e . setItemVisual ( n , s , o [ s ] ( i , r ) ) } } var i = t . getData ( ) ; if ( t . legendIcon && i . setVisual ( "legendIcon" , t . legendIcon ) , t . hasSymbolVisual ) { for ( var r = { } , o = { } , a = ! 1 , s = 0 ; s < WD . length ; s ++ ) { var l = WD [ s ] , u = t . get ( l ) ; T ( u ) ? ( a = ! 0 , o [ l ] = u ) : r [ l ] = u } if ( r . symbol = r . symbol || t . defaultSymbol , i . setVisual ( h ( { legendIcon : t . legendIcon || r . symbol , symbolKeepAspect : t . get ( "symbolKeepAspect" ) } , r ) ) , ! e . isSeriesFiltered ( t ) ) { var c = b ( o ) ; return { dataEach : a ? n : null } } } } } , YD = { createOnAllSeries : ! 0 , performRawSeries : ! 0 , reset : function ( t , e ) { function n ( t , e ) { for ( var n = t . getItemModel ( e ) , i = 0 ; i < UD . length ; i ++ ) { var r = UD [ i ] , o = n . getShallow ( r , ! 0 ) ; null != o && t . setItemVisual ( e , r , o ) } } if ( t . hasSymbolVisual && ! e . isSeriesFiltered ( t ) )
} var p = this . source , d = [ p . seriesLayoutBy , p . startIndex , i ] . join ( "$$" ) ; return { dimensions : r , hash : d } } , t . prototype . makeOutputDimensionNames = function ( ) { for ( var t = [ ] , e = 0 , n = 0 ; e < this . _fullDimCount ; e ++ ) { var i = void 0 , r = this . dimensions [ n ] ; if ( r && r . storeDimIndex === e ) r . isCalculationCoord || ( i = r . name ) , n ++ ; else { var o = this . getSourceDimension ( e ) ; o && ( i = o . name ) } t . push ( i ) } return t } , t . prototype . appendCalculationDimension = function ( t ) { this . dimensions . push ( t ) , t . isCalculationCoord = ! 0 , this . _fullDimCount ++ , this . _updateDimOmitted ( ! 0 ) } , t } ( ) , HP = D , GP = y , WP = "undefined" == typeof Int32Array ? Array : Int32Array , UP = "e\x00\x00" , XP = - 1 , YP = [ "hasItemOption" , "_nameList" , "_idList" , "_invertedIndicesMap" , "_dimSummary" , "userOutput" , "_rawData" , "_dimValueGetter" , "_nameDimIdx" , "_idDimIdx" , "_nameRepeatCount" ] , ZP = [ "_approximateExtent" ] , jP = function ( ) { function t ( t , e ) { this . type = "list" , this . _dimOmitted = ! 1 , this . _nameList = [ ] , this . _idList = [ ] , this . _visual = { } , this . _layout = { } , this . _itemVisuals = [ ] , this . _itemLayouts = [ ] , this . _graphicEls = [ ] , this . _approximateExtent = { } , this . _calculationInfo = { } , this . hasItemOption = ! 1 , this . TRANSFERABLE _METHODS = [ "cloneShallow" , "downSample" , "lttbDownSample" , "map" ] , this . CHANGABLE _METHODS = [ "filterSelf" , "selectRange" ] , this . DOWNSAMPLE _METHODS = [ "downSample" , "lttbDownSample" ] ; var n , i = ! 1 ; Zp ( t ) ? ( n = t . dimensions , this . _dimOmitted = t . isDimensionOmitted ( ) , this . _schema = t ) : ( i = ! 0 , n = t ) , n = n || [ "x" , "y" ] ; for ( var r = { } , o = [ ] , a = { } , s = ! 1 , l = { } , u = 0 ; u < n . length ; u ++ ) { var h = n [ u ] , c = C ( h ) ? new BP ( { name : h } ) : h instanceof BP ? h : new BP ( h ) , p = c . name ; c . type = c . type || "float" , c . coordDim || ( c . coordDim = p , c . coordDimIndex = 0 ) ; var d = c . otherDims = c . otherDims || { } ; o . push ( p ) , r [ p ] = c , null != l [ p ] && ( s = ! 0 ) , c . createInvertedIndices && ( a [ p ] = [ ] ) , 0 === d . itemName && ( this . _nameDimIdx = u ) , 0 === d . itemId && ( this . _idDimIdx = u ) , i && ( c . storeDimIndex = u ) } if ( this . dimensions = o , this . _dimInfos = r , this . _initGetDimensionInfo ( s ) , this . hostModel = e , this . _invertedIndicesMap = a , this . _dimOmitted ) { var f = this . _dimIdxToName = Z ( ) ; v ( o , function ( t ) { f . set ( r [ t ] . storeDimIndex , t ) } ) } } return t . prototype . getDimension = function ( t ) { var e = this . _recognizeDimIndex ( t ) ; if ( null == e ) return t ; if ( e = t , ! this . _dimOmitted ) return this . dimensions [ e ] ; var n = this . _dimIdxToName . get ( e ) ; if ( null != n ) return n ; var i = this . _schema . getSourceDimension ( e ) ; return i ? i . name : void 0 } , t . prototype . getDimensionIndex = function ( t ) { var e = this . _recognizeDimIndex ( t ) ; if ( null != e ) return e ; if ( null == t ) return - 1 ; var n = this . _getDimInfo ( t ) ; return n ? n . storeDimIndex : this . _dimOmitted ? this . _schema . getSourceDimensionIndex ( t ) : - 1 } , t . prototype . _recognizeDimIndex = function ( t ) { return k ( t ) || null != t && ! isNaN ( t ) && ! this . _getDimInfo ( t ) && ( ! this . _dimOmitted || this . _schema . getSourceDimensionIndex ( t ) < 0 ) ? + t : void 0 } , t . prototype . _getStoreDimIndex = function ( t ) { var e = this . getDimensionIndex ( t ) ; return e } , t . prototype . getDimensionInfo = function ( t ) { return this . _getDimInfo ( this . getDimension ( t ) ) } , t . prototype . _initGetDimensionInfo = function ( t ) { var e = this . _dimInfos ; this . _getDimInfo = t ? function ( t ) { return e . hasOwnProperty ( t ) ? e [ t ] : void 0 } : function ( t ) { return e [ t ] } } , t . prototype . getDimensionsOnCoord = function ( ) { return this . _dimSummary . dataDimsOnCoord . slice ( ) } , t . prototype . mapDimension = function ( t , e ) { var n = this . _dimSummary ; if ( null == e ) return n . encodeFirstDimNotExtra [ t ] ; var i = n . encode [ t ] ; return i ? i [ e ] : null } , t . prototype . mapDimensionsAll = function ( t ) { var e = this . _dimSummary , n = e . encode [ t ] ; return ( n || [ ] ) . slice ( ) } , t . prototype . getStore = function ( ) { return this . _store } , t . prototype . initData = function ( t , e , n ) { var i , r = this ; if ( t instanceof oD && ( i = t ) , ! i ) { var o = this . dimensions , a = ju ( t ) || g ( t ) ? new Ek ( t , o . length ) : t ; i = new oD ; var s = GP ( o , function ( t ) { return { type : r . _dimInfos [ t ] . type , property : t } } ) ; i . initData ( a , s , n ) } this . _store = i , this . _nameList = ( e || [ ] ) . slice ( ) , this . _idList = [ ] , this . _nameRepeatCount = { } , this . _doInit ( 0 , i . count ( ) ) , this . _dimSummary = Wp ( this , this . _schema ) , this . userOutput = this . _dimSummary . userOutput } , t . prototype . appendData = function ( t ) { var e = this . _store . appendData ( t ) ; this . _doInit ( e [ 0 ] , e [ 1 ] ) } , t . prototype . appendValues = function ( t , e ) { var n = this . _store . appendValues ( t , e . length ) , i = n . start , r = n . end , o = this . _shouldMakeIdFromName ( ) ; if ( this . _updateOrdinalMeta ( ) , e ) for ( var a = i ; r > a ; a ++ ) { var s = a - i ; this . _nameList [ a ] = e [ s ] , o && OP ( this , a
} , t . prototype . addLabelsOfSeries = function ( t ) { var e = this ; this . _chartViewList . push ( t ) ; var n = t . _ _model , i = n . get ( "labelLayout" ) ; ( T ( i ) || b ( i ) . length ) && t . group . traverse ( function ( t ) { if ( t . ignore ) return ! 0 ; var r = t . getTextContent ( ) , o = OT ( t ) ; r && ! r . disableLabelLayout && e . _addLabel ( o . dataIndex , o . dataType , n , r , i ) } ) } , t . prototype . updateLayoutConfig = function ( t ) { function e ( t , e ) { return function ( ) { Uf ( t , e ) } } for ( var n = t . getWidth ( ) , i = t . getHeight ( ) , r = 0 ; r < this . _labelList . length ; r ++ ) { var o = this . _labelList [ r ] , a = o . label , s = a . _ _hostTarget , l = o . defaultAttr , u = void 0 ; u = T ( o . layoutOption ) ? o . layoutOption ( ng ( o , s ) ) : o . layoutOption , u = u || { } , o . computedLayoutOption = u ; var h = Math . PI / 180 ; s && s . setTextConfig ( { local : ! 1 , position : null != u . x || null != u . y ? null : l . attachedPos , rotation : null != u . rotate ? u . rotate * h : l . attachedRot , offset : [ u . dx || 0 , u . dy || 0 ] } ) ; var c = ! 1 ; if ( null != u . x ? ( a . x = rr ( u . x , n ) , a . setStyle ( "x" , 0 ) , c = ! 0 ) : ( a . x = l . x , a . setStyle ( "x" , l . style . x ) ) , null != u . y ? ( a . y = rr ( u . y , i ) , a . setStyle ( "y" , 0 ) , c = ! 0 ) : ( a . y = l . y , a . setStyle ( "y" , l . style . y ) ) , u . labelLinePoints ) { var p = s . getTextGuideLine ( ) ; p && ( p . setShape ( { points : u . labelLinePoints } ) , c = ! 1 ) } var d = JL ( a ) ; d . needsUpdateLabelLine = c , a . rotation = null != u . rotate ? u . rotate * h : l . rotation , a . scaleX = l . scaleX , a . scaleY = l . scaleY ; for ( var f = 0 ; f < $L . length ; f ++ ) { var g = $L [ f ] ; a . setStyle ( g , null != u [ g ] ? u [ g ] : l . style [ g ] ) } if ( u . draggable ) { if ( a . draggable = ! 0 , a . cursor = "move" , s ) { var v = o . seriesModel ; if ( null != o . dataIndex ) { var y = o . seriesModel . getData ( o . dataType ) ; v = y . getItemModel ( o . dataIndex ) } a . on ( "drag" , e ( s , v . getModel ( "labelLine" ) ) ) } } else a . off ( "drag" ) , a . cursor = l . cursor } } , t . prototype . layout = function ( t ) { var e = t . getWidth ( ) , n = t . getHeight ( ) , i = Kf ( this . _labelList ) , r = _ ( i , function ( t ) { return "shiftX" === t . layoutOption . moveOverlap } ) , o = _ ( i , function ( t ) { return "shiftY" === t . layoutOption . moveOverlap } ) ; Qf ( r , 0 , e ) , Jf ( o , 0 , n ) ; var a = _ ( i , function ( t ) { return t . layoutOption . hideOverlap } ) ; tg ( a ) } , t . prototype . processLabelsOverall = function ( ) { var t = this ; v ( this . _chartViewList , function ( e ) { var n = e . _ _model , i = e . ignoreLabelLineUpdate , r = n . isAnimationEnabled ( ) ; e . group . traverse ( function ( e ) { if ( e . ignore && ! e . forceLabelAnimation ) return ! 0 ; var o = ! i , a = e . getTextContent ( ) ; ! o && a && ( o = JL ( a ) . needsUpdateLabelLine ) , o && t . _updateLabelLine ( e , n ) , r && t . _animateLabels ( e , n ) } ) } ) } , t . prototype . _updateLabelLine = function ( t , e ) { var n = t . getTextContent ( ) , i = OT ( t ) , r = i . dataIndex ; if ( n && null != r ) { var o = e . getData ( i . dataType ) , a = o . getItemModel ( r ) , s = { } , l = o . getItemVisual ( r , "style" ) , u = o . getVisual ( "drawType" ) ; s . stroke = l [ u ] ; var h = a . getModel ( "labelLine" ) ; jf ( t , qf ( a ) , s ) , Uf ( t , h ) } } , t . prototype . _animateLabels = function ( t , e ) { var n = t . getTextContent ( ) , i = t . getTextGuideLine ( ) ; if ( n && ( t . forceLabelAnimation || ! n . ignore && ! n . invisible && ! t . disableLabelAnimation && ! Cs ( t ) ) ) { var r = JL ( n ) , o = r . oldLayout , a = OT ( t ) , s = a . dataIndex , l = { x : n . x , y : n . y , rotation : n . rotation } , u = e . getData ( a . dataType ) ; if ( o ) { n . attr ( o ) ; var h = t . prevStates ; h && ( p ( h , "select" ) >= 0 && n . attr ( r . oldLayoutSelect ) , p ( h , "emphasis" ) >= 0 && n . attr ( r . oldLayoutEmphasis ) ) , Ms ( n , l , e , s ) } else if ( n . attr ( l ) , ! cI ( n ) . valueAnimation ) { var c = E ( n . style . opacity , 1 ) ; n . style . opacity = 0 , Ts ( n , { style : { opacity : c } } , e , s ) } if ( r . oldLayout = l , n . states . select ) { var d = r . oldLayoutSelect = { } ; ig ( d , l , eO ) , ig ( d , n . states . select , eO ) } if ( n . states . emphasis ) { var f = r . oldLayoutEmphasis = { } ; ig ( f , l , eO ) , ig ( f , n . states . emphasis , eO ) } dl ( n , s , u , e , e ) } if ( i && ! i . ignore && ! i . invisible ) { var r = tO ( i ) , o = r . oldLayout , g = { points : i . shape . points } ; o ? ( i . attr ( { shape : o } ) , Ms ( i , { shape : g } , e ) ) : ( i . setShape ( g ) , i . style . strokePercent = 0 , Ts ( i , { style : { strokePercent : 1 } } , e ) ) , r . oldLayout = g } } , t } ( ) , iO = jr ( ) ; lf ( rg ) ; var rO = function ( t ) { function n ( e , n , i ) { var r = t . call ( this ) || this ; r . motionBlur = ! 1 , r . lastFrameAlpha = . 7 , r . dpr = 1 , r . virtual = ! 1 , r . config = { } , r . incremental = ! 1 , r . zlevel = 0 , r . maxRepaintRectCount = 5 , r . _ _dirty = ! 0 , r . _ _firstTimePaint = ! 0 , r . _ _used = ! 1 , r . _ _drawIndex = 0 , r . _ _startIndex = 0 , r . _ _endIndex = 0 , r . _ _prevStartIndex = null , r . _ _prevEndIndex = null ; var o ; i = i || AS , "string" == typeof e ? o = og ( e , n , i ) : D ( e ) && ( o = e , e = o . id ) , r . id = e , r . dom = o ; var a = o . style ; return a && ( K ( o ) , o . onselectstart = function ( ) { return ! 1 } , a . padding = "0" , a . margin = "0" , a . borderWidth = "0" ) , r . painter = n , r . dpr = i , r } return e ( n , t ) , n . prototype . getElementCount = function ( ) { return this . _ _endIndex - this . _ _startIndex } , n . prototype . afterBrus
if ( r && ( c = Pg ( h . current , n , r , a ) , p = Pg ( h . stackedOnCurrent , n , r , a ) , d = Pg ( h . next , n , r , a ) , f = Pg ( h . stackedOnNext , n , r , a ) ) , kg ( c , d ) > 3e3 || l && kg ( p , f ) > 3e3 ) return s . stopAnimation ( ) , s . setShape ( { points : d } ) , void ( l && ( l . stopAnimation ( ) , l . setShape ( { points : d , stackedOnPoints : f } ) ) ) ; s . shape . _ _points = h . current , s . shape . points = c ; var g = { shape : { points : d } } ; h . current !== c && ( g . shape . _ _points = h . next ) , s . stopAnimation ( ) , Ms ( s , g , u ) , l && ( l . setShape ( { points : c , stackedOnPoints : p } ) , l . stopAnimation ( ) , Ms ( l , { shape : { stackedOnPoints : f } } , u ) , s . shape . points !== l . shape . points && ( l . shape . points = s . shape . points ) ) ; for ( var v = [ ] , y = h . status , m = 0 ; m < y . length ; m ++ ) { var _ = y [ m ] . cmd ; if ( "=" === _ ) { var x = t . getItemGraphicEl ( y [ m ] . idx1 ) ; x && v . push ( { el : x , ptIdx : m } ) } } s . animators && s . animators . length && s . animators [ 0 ] . during ( function ( ) { l && l . dirtyShape ( ) ; for ( var t = s . shape . _ _points , e = 0 ; e < v . length ; e ++ ) { var n = v [ e ] . el , i = 2 * v [ e ] . ptIdx ; n . x = t [ i ] , n . y = t [ i + 1 ] , n . markRedraw ( ) } } ) } , n . prototype . remove = function ( ) { var t = this . group , e = this . _data ; this . _lineGroup . removeAll ( ) , this . _symbolDraw . remove ( ! 0 ) , e && e . eachItemGraphicEl ( function ( n , i ) { n . _ _temp && ( t . remove ( n ) , e . setItemGraphicEl ( i , null ) ) } ) , this . _polyline = this . _polygon = this . _coordSys = this . _points = this . _stackedOnPoints = this . _endLabel = this . _data = null } , n . type = "line" , n } ( yD ) , wO = { average : function ( t ) { for ( var e = 0 , n = 0 , i = 0 ; i < t . length ; i ++ ) isNaN ( t [ i ] ) || ( e += t [ i ] , n ++ ) ; return 0 === n ? 0 / 0 : e / n } , sum : function ( t ) { for ( var e = 0 , n = 0 ; n < t . length ; n ++ ) e += t [ n ] || 0 ; return e } , max : function ( t ) { for ( var e = - 1 / 0 , n = 0 ; n < t . length ; n ++ ) t [ n ] > e && ( e = t [ n ] ) ; return isFinite ( e ) ? e : 0 / 0 } , min : function ( t ) { for ( var e = 1 / 0 , n = 0 ; n < t . length ; n ++ ) t [ n ] < e && ( e = t [ n ] ) ; return isFinite ( e ) ? e : 0 / 0 } , nearest : function ( t ) { return t [ 0 ] } } , SO = function ( t ) { return Math . round ( t . length / 2 ) } ; lf ( Xg ) ; var MO = function ( t ) { function n ( ) { return null !== t && t . apply ( this , arguments ) || this } return e ( n , t ) , n . type = "grid" , n . dependencies = [ "xAxis" , "yAxis" ] , n . layoutMode = "box" , n . defaultOption = { show : ! 1 , z : 0 , left : "10%" , top : 60 , right : "10%" , bottom : 70 , containLabel : ! 1 , backgroundColor : "rgba(0,0,0,0)" , borderWidth : 1 , borderColor : "#ccc" } , n } ( KI ) , TO = function ( t ) { function n ( ) { return null !== t && t . apply ( this , arguments ) || this } return e ( n , t ) , n . prototype . getCoordSysModel = function ( ) { return this . getReferringComponents ( "grid" , hM ) . models [ 0 ] } , n . type = "cartesian2dAxis" , n } ( KI ) ; f ( TO , bL ) ; var CO = { show : ! 0 , z : 0 , inverse : ! 1 , name : "" , nameLocation : "end" , nameRotate : null , nameTruncate : { maxWidth : null , ellipsis : "..." , placeholder : "." } , nameTextStyle : { } , nameGap : 15 , silent : ! 1 , triggerEvent : ! 1 , tooltip : { show : ! 1 } , axisPointer : { } , axisLine : { show : ! 0 , onZero : ! 0 , onZeroAxisIndex : null , lineStyle : { color : "#6E7079" , width : 1 , type : "solid" } , symbol : [ "none" , "none" ] , symbolSize : [ 10 , 15 ] } , axisTick : { show : ! 0 , inside : ! 1 , length : 5 , lineStyle : { width : 1 } } , axisLabel : { show : ! 0 , inside : ! 1 , rotate : 0 , showMinLabel : null , showMaxLabel : null , margin : 8 , fontSize : 12 } , splitLine : { show : ! 0 , lineStyle : { color : [ "#E0E6F1" ] , width : 1 , type : "solid" } } , splitArea : { show : ! 1 , areaStyle : { color : [ "rgba(250,250,250,0.2)" , "rgba(210,219,238,0.2)" ] } } } , IO = l ( { boundaryGap : ! 0 , deduplication : null , splitLine : { show : ! 1 } , axisTick : { alignWithLabel : ! 1 , interval : "auto" } , axisLabel : { interval : "auto" } } , CO ) , kO = l ( { boundaryGap : [ 0 , 0 ] , axisLine : { show : "auto" } , axisTick : { show : "auto" } , splitNumber : 5 , minorTick : { show : ! 1 , splitNumber : 5 , length : 3 , lineStyle : { } } , minorSplitLine : { show : ! 1 , lineStyle : { color : "#F4F7FD" , width : 1 } } } , CO ) , DO = l ( { splitNumber : 6 , axisLabel : { showMinLabel : ! 1 , showMaxLabel : ! 1 , rich : { primary : { fontWeight : "bold" } } } , splitLine : { show : ! 1 } } , kO ) , AO = c ( { logBase : 10 } , kO ) , PO = { category : IO , value : kO , time : DO , log : AO } , LO = { value : 1 , category : 1 , time : 1 , log : 1 } , OO = function ( ) { function t ( t ) { this . type = "cartesian" , this . _dimList = [ ] , this . _axes = { } , this . name = t || "" } return t . prototype . getAxis = function ( t ) { return this . _axes [ t ] } , t . prototype . getAxes = function ( ) { return y ( this . _dimList , function ( t ) { return this . _axes [ t ] } , this ) } , t . prototype . getAxesByScale = function ( t ) { return t = t . toLowerCase ( ) , _ ( this . getAxes ( ) , function ( e ) { return e . scale . type === t } ) } , t . prototype . addAxis = function ( t ) { var e = t . dim ; this . _axes [ e ] = t , this . _dimList . push ( e ) } , t } ( ) , RO = [ "x" , "y" ] , NO = function ( t ) { function n ( ) { var e = null !== t && t . apply ( this , arguments ) || this ; return e . type = "cartesian2d" , e . dimensions = RO , e } return e ( n , t ) , n . prototype . calcAffineT
} return y } , n . prototype . _layoutContentAndController = function ( t , e , n , i , r , o , a , s ) { var l = this . getContentGroup ( ) , u = this . _containerGroup , h = this . _controllerGroup ; jI ( t . get ( "orient" ) , l , t . get ( "itemGap" ) , i ? n . width : null , i ? null : n . height ) , jI ( "horizontal" , h , t . get ( "pageButtonItemGap" , ! 0 ) ) ; var c = l . getBoundingRect ( ) , p = h . getBoundingRect ( ) , d = this . _showController = c [ r ] > n [ r ] , f = [ - c . x , - c . y ] ; e || ( f [ i ] = l [ s ] ) ; var g = [ 0 , 0 ] , v = [ - p . x , - p . y ] , y = E ( t . get ( "pageButtonGap" , ! 0 ) , t . get ( "itemGap" , ! 0 ) ) ; if ( d ) { var m = t . get ( "pageButtonPosition" , ! 0 ) ; "end" === m ? v [ i ] += n [ r ] - p [ r ] : g [ i ] += p [ r ] + y } v [ 1 - i ] += c [ o ] / 2 - p [ o ] / 2 , l . setPosition ( f ) , u . setPosition ( g ) , h . setPosition ( v ) ; var _ = { x : 0 , y : 0 } ; if ( _ [ r ] = d ? n [ r ] : c [ r ] , _ [ o ] = Math . max ( c [ o ] , p [ o ] ) , _ [ a ] = Math . min ( 0 , p [ a ] + v [ 1 - i ] ) , u . _ _rectSize = n [ r ] , d ) { var x = { x : 0 , y : 0 } ; x [ r ] = Math . max ( n [ r ] - p [ r ] - y , 0 ) , x [ o ] = _ [ o ] , u . setClipPath ( new TT ( { shape : x } ) ) , u . _ _rectSize = x [ r ] } else h . eachChild ( function ( t ) { t . attr ( { invisible : ! 0 , silent : ! 0 } ) } ) ; var b = this . _getPageInfo ( t ) ; return null != b . pageIndex && Ms ( l , { x : b . contentPosition [ 0 ] , y : b . contentPosition [ 1 ] } , d ? t : null ) , this . _updatePageInfoView ( t , b ) , _ } , n . prototype . _pageGo = function ( t , e , n ) { var i = this . _getPageInfo ( e ) [ t ] ; null != i && n . dispatchAction ( { type : "legendScroll" , scrollDataIndex : i , legendId : e . id } ) } , n . prototype . _updatePageInfoView = function ( t , e ) { var n = this . _controllerGroup ; v ( [ "pagePrev" , "pageNext" ] , function ( i ) { var r = i + "DataIndex" , o = null != e [ r ] , a = n . childOfName ( i ) ; a && ( a . setStyle ( "fill" , o ? t . get ( "pageIconColor" , ! 0 ) : t . get ( "pageIconInactiveColor" , ! 0 ) ) , a . cursor = o ? "pointer" : "default" ) } ) ; var i = n . childOfName ( "pageText" ) , r = t . get ( "pageFormatter" ) , o = e . pageIndex , a = null != o ? o + 1 : 0 , s = e . pageCount ; i && r && i . setStyle ( "text" , C ( r ) ? r . replace ( "{current}" , null == a ? "" : a + "" ) . replace ( "{total}" , null == s ? "" : s + "" ) : r ( { current : a , total : s } ) ) } , n . prototype . _getPageInfo = function ( t ) { function e ( t ) { if ( t ) { var e = t . getBoundingRect ( ) , n = e [ l ] + t [ l ] ; return { s : n , e : n + e [ s ] , i : t . _ _legendDataIndex } } } function n ( t , e ) { return t . e >= e && t . s <= e + o } var i = t . get ( "scrollDataIndex" , ! 0 ) , r = this . getContentGroup ( ) , o = this . _containerGroup . _ _rectSize , a = t . getOrient ( ) . index , s = uR [ a ] , l = hR [ a ] , u = this . _findTargetItemIndex ( i ) , h = r . children ( ) , c = h [ u ] , p = h . length , d = p ? 1 : 0 , f = { contentPosition : [ r . x , r . y ] , pageCount : d , pageIndex : d - 1 , pagePrevDataIndex : null , pageNextDataIndex : null } ; if ( ! c ) return f ; var g = e ( c ) ; f . contentPosition [ a ] = - g . s ; for ( var v = u + 1 , y = g , m = g , _ = null ; p >= v ; ++ v ) _ = e ( h [ v ] ) , ( ! _ && m . e > y . s + o || _ && ! n ( _ , y . s ) ) && ( y = m . i > y . i ? m : _ , y && ( null == f . pageNextDataIndex && ( f . pageNextDataIndex = y . i ) , ++ f . pageCount ) ) , m = _ ; for ( var v = u - 1 , y = g , m = g , _ = null ; v >= - 1 ; -- v ) _ = e ( h [ v ] ) , _ && n ( m , _ . s ) || ! ( y . i < m . i ) || ( m = y , null == f . pagePrevDataIndex && ( f . pagePrevDataIndex = y . i ) , ++ f . pageCount , ++ f . pageIndex ) , y = _ ; return f } , n . prototype . _findTargetItemIndex = function ( t ) { if ( ! this . _showController ) return 0 ; var e , n , i = this . getContentGroup ( ) ; return i . eachChild ( function ( i , r ) { var o = i . _ _legendDataIndex ; null == n && null != o && ( n = r ) , o === t && ( e = r ) } ) , null != e ? e : n } , n . type = "legend.scroll" , n } ( aR ) ; lf ( Hv ) ; var pR = jr ( ) , dR = s , fR = Eb , gR = function ( ) { function t ( ) { this . _dragging = ! 1 , this . animationThreshold = 15 } return t . prototype . render = function ( t , e , n , i ) { var r = e . get ( "value" ) , o = e . get ( "status" ) ; if ( this . _axisModel = t , this . _axisPointerModel = e , this . _api = n , i || this . _lastValue !== r || this . _lastStatus !== o ) { this . _lastValue = r , this . _lastStatus = o ; var a = this . _group , s = this . _handle ; if ( ! o || "hide" === o ) return a && a . hide ( ) , void ( s && s . hide ( ) ) ; a && a . show ( ) , s && s . show ( ) ; var l = { } ; this . makeElOption ( l , r , t , e , n ) ; var u = l . graphicKey ; u !== this . _lastGraphicKey && this . clear ( n ) , this . _lastGraphicKey = u ; var h = this . _moveAnimation = this . determineAnimation ( t , e ) ; if ( a ) { var c = S ( Gv , e , h ) ; this . updatePointerEl ( a , l , c ) , this . updateLabelEl ( a , l , c , e ) } else a = this . _group = new KS , this . createPointerEl ( a , l , t , e ) , this . createLabelEl ( a , l , t , e ) , n . getZr ( ) . add ( a ) ; Yv ( a , e , ! 0 ) , this . _renderHandle ( r ) } } , t . prototype . remove = function ( t ) { this . clear ( t ) } , t . prototype . dispose = function ( t ) { this . clear ( t ) } , t . prototype . determineAnimation = function ( t , e ) { var n = e . get ( "animation" ) , i = t . axis , r = "category" === i . type , o = e . get ( "snap" ) ; if ( ! o && ! r ) return ! 1 ; if ( "auto" === n || null == n ) { var a = this . animationThreshold ; if ( r && i . getBandWidth ( ) > a ) return ! 0 ; if ( o ) { var s = _v ( t ) . seriesDataCount , l = i . getExtent ( ) ; return Math . abs ( l [ 0 ] - l [ 1 ] ) / s > a } return ! 1 } return n === ! 0 } , t . proto
} , n . prototype . highlight = function ( ) { Aa ( this ) } , n . prototype . downplay = function ( ) { Pa ( this ) } , n . prototype . updateLayout = function ( t , e ) { this . setLinePoints ( t . getItemLayout ( e ) ) } , n . prototype . setLinePoints = function ( t ) { var e = this . childOfName ( "line" ) ; hm ( e . shape , t ) , e . dirty ( ) } , n . prototype . beforeUpdate = function ( ) { function t ( t , e ) { var n = t . _ _specifiedRotation ; if ( null == n ) { var i = s . tangentAt ( e ) ; t . attr ( "rotation" , ( 1 === e ? - 1 : 1 ) * Math . PI / 2 - Math . atan2 ( i [ 1 ] , i [ 0 ] ) ) } else t . attr ( "rotation" , n ) } var e = this , n = e . childOfName ( "fromSymbol" ) , i = e . childOfName ( "toSymbol" ) , r = e . getTextContent ( ) ; if ( n || i || r && ! r . ignore ) { for ( var o = 1 , a = this . parent ; a ; ) a . scaleX && ( o /= a . scaleX ) , a = a . parent ; var s = e . childOfName ( "line" ) ; if ( this . _ _dirty || s . _ _dirty ) { var l = s . shape . percent , u = s . pointAt ( 0 ) , h = s . pointAt ( l ) , c = oe ( [ ] , h , u ) ; if ( pe ( c , c ) , n && ( n . setPosition ( u ) , t ( n , 0 ) , n . scaleX = n . scaleY = o * l , n . markRedraw ( ) ) , i && ( i . setPosition ( h ) , t ( i , 1 ) , i . scaleX = i . scaleY = o * l , i . markRedraw ( ) ) , r && ! r . ignore ) { r . x = r . y = 0 , r . originX = r . originY = 0 ; var p = void 0 , d = void 0 , f = r . _ _labelDistance , g = f [ 0 ] * o , v = f [ 1 ] * o , y = l / 2 , m = s . tangentAt ( y ) , _ = [ m [ 1 ] , - m [ 0 ] ] , x = s . pointAt ( y ) ; _ [ 1 ] > 0 && ( _ [ 0 ] = - _ [ 0 ] , _ [ 1 ] = - _ [ 1 ] ) ; var b = m [ 0 ] < 0 ? - 1 : 1 ; if ( "start" !== r . _ _position && "end" !== r . _ _position ) { var w = - Math . atan2 ( m [ 1 ] , m [ 0 ] ) ; h [ 0 ] < u [ 0 ] && ( w = Math . PI + w ) , r . rotation = w } var S = void 0 ; switch ( r . _ _position ) { case "insideStartTop" : case "insideMiddleTop" : case "insideEndTop" : case "middle" : S = - v , d = "bottom" ; break ; case "insideStartBottom" : case "insideMiddleBottom" : case "insideEndBottom" : S = v , d = "top" ; break ; default : S = 0 , d = "middle" } switch ( r . _ _position ) { case "end" : r . x = c [ 0 ] * g + h [ 0 ] , r . y = c [ 1 ] * v + h [ 1 ] , p = c [ 0 ] > . 8 ? "left" : c [ 0 ] < - . 8 ? "right" : "center" , d = c [ 1 ] > . 8 ? "top" : c [ 1 ] < - . 8 ? "bottom" : "middle" ; break ; case "start" : r . x = - c [ 0 ] * g + u [ 0 ] , r . y = - c [ 1 ] * v + u [ 1 ] , p = c [ 0 ] > . 8 ? "right" : c [ 0 ] < - . 8 ? "left" : "center" , d = c [ 1 ] > . 8 ? "bottom" : c [ 1 ] < - . 8 ? "top" : "middle" ; break ; case "insideStartTop" : case "insideStart" : case "insideStartBottom" : r . x = g * b + u [ 0 ] , r . y = u [ 1 ] + S , p = m [ 0 ] < 0 ? "right" : "left" , r . originX = - g * b , r . originY = - S ; break ; case "insideMiddleTop" : case "insideMiddle" : case "insideMiddleBottom" : case "middle" : r . x = x [ 0 ] , r . y = x [ 1 ] + S , p = "center" , r . originY = - S ; break ; case "insideEndTop" : case "insideEnd" : case "insideEndBottom" : r . x = - g * b + h [ 0 ] , r . y = h [ 1 ] + S , p = m [ 0 ] >= 0 ? "right" : "left" , r . originX = g * b , r . originY = - S } r . scaleX = r . scaleY = o , r . setStyle ( { verticalAlign : r . _ _verticalAlign || d , align : r . _ _align || p } ) } } } } , n } ( KS ) , ZR = function ( ) { function t ( t ) { this . group = new KS , this . _LineCtor = t || YR } return t . prototype . updateData = function ( t ) { var e = this ; this . _progressiveEls = null ; var n = this , i = n . group , r = n . _lineData ; n . _lineData = t , r || i . removeAll ( ) ; var o = pm ( t ) ; t . diff ( r ) . add ( function ( n ) { e . _doAdd ( t , n , o ) } ) . update ( function ( n , i ) { e . _doUpdate ( r , t , i , n , o ) } ) . remove ( function ( t ) { i . remove ( r . getItemGraphicEl ( t ) ) } ) . execute ( ) } , t . prototype . updateLayout = function ( ) { var t = this . _lineData ; t && t . eachItemGraphicEl ( function ( e , n ) { e . updateLayout ( t , n ) } , this ) } , t . prototype . incrementalPrepareUpdate = function ( t ) { this . _seriesScope = pm ( t ) , this . _lineData = null , this . group . removeAll ( ) } , t . prototype . incrementalUpdate = function ( t , e ) { function n ( t ) { t . isGroup || cm ( t ) || ( t . incremental = ! 0 , t . ensureState ( "emphasis" ) . hoverLayer = ! 0 ) } this . _progressiveEls = [ ] ; for ( var i = t . start ; i < t . end ; i ++ ) { var r = e . getItemLayout ( i ) ; if ( fm ( r ) ) { var o = new this . _LineCtor ( e , i , this . _seriesScope ) ; o . traverse ( n ) , this . group . add ( o ) , e . setItemGraphicEl ( i , o ) , this . _progressiveEls . push ( o ) } } } , t . prototype . remove = function ( ) { this . group . removeAll ( ) } , t . prototype . eachRendered = function ( t ) { nl ( this . _progressiveEls || this . group , t ) } , t . prototype . _doAdd = function ( t , e , n ) { var i = t . getItemLayout ( e ) ; if ( fm ( i ) ) { var r = new this . _LineCtor ( t , e , n ) ; t . setItemGraphicEl ( e , r ) , this . group . add ( r ) } } , t . prototype . _doUpdate = function ( t , e , n , i , r ) { var o = t . getItemGraphicEl ( n ) ; return fm ( e . getItemLayout ( i ) ) ? ( o ? o . updateData ( e , i , r ) : o = new this . _LineCtor ( e , i , r ) , e . setItemGraphicEl ( i , o ) , void this . group . add ( o ) ) : void this . group . remove ( o ) } , t } ( ) , jR = jr ( ) , qR = function ( t , e , n , i ) { var r , o = t . getData ( ) ; if ( M ( i ) ) r = i ; else { var a = i . type ; if ( "min" === a || "max" === a || "average" === a || "median" === a || null != i . xAxis || null != i . yAxis ) { var u = void 0 , c = void 0 ; if ( null != i . yAxis || null != i . xAxis ) u = e . getAxis ( null != i . yAxis ? "y" : "x" ) , c = B ( i . yAxis , i . xAxis ) ; else { var p = $y ( i , o , e , t ) ; u = p . valueAxis ; var d = sd ( o , p . valueDataDim ) ;
var v = s instanceof bN ; return ! l && p ? void ( v && s . dispose && s . dispose ( e , n ) ) : ! f . get ( "show" ) || v && s . unusable ? void ( v && s . remove && s . remove ( e , n ) ) : ( o ( f , s , l ) , f . setIconStatus = function ( t , e ) { var n = this . option , i = this . iconPaths ; n . iconStatus = n . iconStatus || { } , n . iconStatus [ t ] = e , i [ t ] && ( "emphasis" === e ? Aa : Pa ) ( i [ t ] ) } , void ( s instanceof bN && s . render && s . render ( f , e , n , i ) ) ) } function o ( i , r , o ) { var u , h , c = i . getModel ( "iconStyle" ) , p = i . getModel ( [ "emphasis" , "iconStyle" ] ) , d = r instanceof bN && r . getIcons ? r . getIcons ( ) : i . get ( "icon" ) , f = i . get ( "title" ) || { } ; C ( d ) ? ( u = { } , u [ o ] = d ) : u = d , C ( f ) ? ( h = { } , h [ o ] = f ) : h = f ; var g = i . iconPaths = { } ; v ( u , function ( o , u ) { var d = qs ( o , { } , { x : - s / 2 , y : - s / 2 , width : s , height : s } ) ; d . setStyle ( c . getItemStyle ( ) ) ; var f = d . ensureState ( "emphasis" ) ; f . style = p . getItemStyle ( ) ; var v = new DT ( { style : { text : h [ u ] , align : p . get ( "textAlign" ) , borderRadius : p . get ( "textBorderRadius" ) , padding : p . get ( "textPadding" ) , fill : null } , ignore : ! 0 } ) ; d . setTextContent ( v ) , tl ( { el : d , componentModel : t , itemName : u , formatterParamsExtra : { title : h [ u ] } } ) , d . _ _title = h [ u ] , d . on ( "mouseover" , function ( ) { var e = p . getItemStyle ( ) , i = l ? null == t . get ( "right" ) && "right" !== t . get ( "left" ) ? "right" : "left" : null == t . get ( "bottom" ) && "bottom" !== t . get ( "top" ) ? "bottom" : "top" ; v . setStyle ( { fill : p . get ( "textFill" ) || e . fill || e . stroke || "#000" , backgroundColor : p . get ( "textBackgroundColor" ) } ) , d . setTextConfig ( { position : p . get ( "textPosition" ) || i } ) , v . ignore = ! t . get ( "showTitle" ) , n . enterEmphasis ( this ) } ) . on ( "mouseout" , function ( ) { "emphasis" !== i . get ( [ "iconStatus" , u ] ) && n . leaveEmphasis ( this ) , v . hide ( ) } ) , ( "emphasis" === i . get ( [ "iconStatus" , u ] ) ? Aa : Pa ) ( d ) , a . add ( d ) , d . on ( "click" , Eb ( r . onclick , r , e , n , u ) ) , g [ u ] = d } ) } var a = this . group ; if ( a . removeAll ( ) , t . get ( "show" ) ) { var s = + t . get ( "itemSize" ) , l = "vertical" === t . get ( "orient" ) , u = t . get ( "feature" ) || { } , h = this . _features || ( this . _features = { } ) , c = [ ] ; v ( u , function ( t , e ) { c . push ( e ) } ) , new NP ( this . _featureNames || [ ] , c ) . add ( r ) . update ( r ) . remove ( S ( r , null ) ) . execute ( ) , this . _featureNames = c , Iv ( a , t , n ) , a . add ( kv ( a . getBoundingRect ( ) , t ) ) , l || a . eachChild ( function ( t ) { var e = t . _ _title , i = t . ensureState ( "emphasis" ) , r = i . textConfig || ( i . textConfig = { } ) , o = t . getTextContent ( ) , l = o && o . ensureState ( "emphasis" ) ; if ( l && ! T ( l ) && e ) { var u = l . style || ( l . style = { } ) , h = zi ( e , DT . makeFont ( u ) ) , c = t . x + a . x , p = t . y + a . y + s , d = ! 1 ; p + h . height > n . getHeight ( ) && ( r . position = "top" , d = ! 0 ) ; var f = d ? - 5 - h . height : s + 10 ; c + h . width / 2 > n . getWidth ( ) ? ( r . position = [ "100%" , f ] , u . align = "right" ) : c - h . width / 2 < 0 && ( r . position = [ 0 , f ] , u . align = "left" ) } } ) } } , n . prototype . updateView = function ( t , e , n , i ) { v ( this . _features , function ( t ) { t instanceof bN && t . updateView && t . updateView ( t . model , e , n , i ) } ) } , n . prototype . remove = function ( t , e ) { v ( this . _features , function ( n ) { n instanceof bN && n . remove && n . remove ( t , e ) } ) , this . group . removeAll ( ) } , n . prototype . dispose = function ( t , e ) { v ( this . _features , function ( n ) { n instanceof bN && n . dispose && n . dispose ( t , e ) } ) } , n . type = "toolbox" , n } ( fD ) , TN = function ( t ) { function n ( ) { return null !== t && t . apply ( this , arguments ) || this } return e ( n , t ) , n . prototype . onclick = function ( t , e ) { var n = this . model , i = n . get ( "name" ) || t . get ( "title.0.text" ) || "echarts" , r = "svg" === e . getZr ( ) . painter . getType ( ) , o = r ? "svg" : n . get ( "type" , ! 0 ) || "png" , a = e . getConnectedDataURL ( { type : o , backgroundColor : n . get ( "backgroundColor" , ! 0 ) || t . get ( "backgroundColor" ) || "#fff" , connectedBackgroundColor : n . get ( "connectedBackgroundColor" ) , excludeComponents : n . get ( "excludeComponents" ) , pixelRatio : n . get ( "pixelRatio" ) } ) , s = vb . browser ; if ( T ( MouseEvent ) && ( s . newEdge || ! s . ie && ! s . edge ) ) { var l = document . createElement ( "a" ) ; l . download = i + "." + o , l . target = "_blank" , l . href = a ; var u = new MouseEvent ( "click" , { view : document . defaultView , bubbles : ! 0 , cancelable : ! 1 } ) ; l . dispatchEvent ( u ) } else if ( window . navigator . msSaveOrOpenBlob || r ) { var h = a . split ( "," ) , c = h [ 0 ] . indexOf ( "base64" ) > - 1 , p = r ? decodeURIComponent ( h [ 1 ] ) : h [ 1 ] ; c && ( p = window . atob ( p ) ) ; var d = i + "." + o ; if ( window . navigator . msSaveOrOpenBlob ) { for ( var f = p . length , g = new Uint8Array ( f ) ; f -- ; ) g [ f ] = p . charCodeAt ( f ) ; var v = new Blob ( [ g ] ) ; window . navigator . msSaveOrOpenBlob ( v , d ) } else { var y = document . createElement ( "iframe" ) ; document . body . appendChild ( y ) ; var m = y . contentWindow , _ = m . document ; _ . open ( "image/svg+xml" , "replace" ) , _ . write ( p ) , _ . close ( ) , m . focus ( ) , _ . execCommand ( "SaveAs" , ! 0 , d ) , document . body . removeChild ( y ) } } else { var x = n . get ( "lang" ) , b = ' <