From 7af09a2f4cbc932ee6df88e6e8b81e3441628ecc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=B2=B3?= Date: Wed, 6 Feb 2019 00:35:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=89=E8=A3=85=20=E5=AE=88=E6=8A=A4?= =?UTF-8?q?=E8=BF=9B=E7=A8=8B=E4=BC=98=E5=8C=96=20web=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/nps/nps.go | 18 +- conf/app.conf | 6 +- conf/clients.csv | 1 + conf/hosts.csv | 1 + conf/tasks.csv | 4 + image/web.png | Bin 238903 -> 342450 bytes lib/daemon.go | 59 +- lib/file.go | 14 +- lib/install.go | 78 +- lib/log.go | 6 +- lib/util.go | 61 +- server/base.go | 4 +- server/http.go | 21 +- server/server.go | 77 +- server/tcp.go | 9 +- server/test.go | 54 + web/controllers/base.go | 2 +- web/controllers/client.go | 18 +- web/controllers/index.go | 30 +- web/static/js/chart.js | 3477 ---------------------------------- web/static/js/echarts.min.js | 22 + web/views/client/edit.html | 2 +- web/views/index/add.html | 8 - web/views/index/edit.html | 2 +- web/views/index/hadd.html | 2 +- web/views/index/index.html | 130 +- web/views/login/index.html | 2 +- web/views/public/layout.html | 4 +- 28 files changed, 406 insertions(+), 3706 deletions(-) create mode 100644 server/test.go delete mode 100755 web/static/js/chart.js create mode 100644 web/static/js/echarts.min.js diff --git a/cmd/nps/nps.go b/cmd/nps/nps.go index 6ff2e40..e966a61 100644 --- a/cmd/nps/nps.go +++ b/cmd/nps/nps.go @@ -3,10 +3,12 @@ package main import ( "flag" "github.com/astaxie/beego" - "github.com/cnlh/nps/server" "github.com/cnlh/nps/lib" + "github.com/cnlh/nps/server" _ "github.com/cnlh/nps/web/routers" + "log" "os" + "path/filepath" ) const VERSION = "v0.0.13" @@ -26,12 +28,13 @@ var ( func main() { flag.Parse() - var test bool if len(os.Args) > 1 && os.Args[1] == "test" { - test = true + server.TestServerConfig() + log.Println("test ok, no error") + return } lib.InitDaemon("nps") - if *logType == "stdout" || test { + if *logType == "stdout" { lib.InitLogFile("nps", true) } else { lib.InitLogFile("nps", false) @@ -61,7 +64,7 @@ func main() { Flow: &lib.Flow{}, } c.Cnf.CompressDecode, c.Cnf.CompressEncode = lib.GetCompressType(c.Cnf.Compress) - server.CsvDb.Clients[0] = c + lib.GetCsvDb().Clients[0] = c task.Client = c } if *TcpPort == 0 { @@ -75,7 +78,8 @@ func main() { lib.Println("服务端启动,监听tcp服务端端口:", *TcpPort) task.Config.CompressDecode, task.Config.CompressEncode = lib.GetCompressType(task.Config.Compress) if *rpMode != "webServer" { - server.CsvDb.Tasks[0] = task + lib.GetCsvDb().Tasks[0] = task } - server.StartNewServer(*TcpPort, task, test) + beego.LoadAppConfig("ini", filepath.Join(lib.GetRunPath(), "conf", "app.conf")) + server.StartNewServer(*TcpPort, task) } diff --git a/conf/app.conf b/conf/app.conf index ebcbcd3..d032faa 100755 --- a/conf/app.conf +++ b/conf/app.conf @@ -1,7 +1,7 @@ appname = nps #web管理端口 -httpport = 8080 +httpport = 8081 #启动模式dev|pro runmode = dev @@ -15,10 +15,10 @@ tcpport=8284 #web api免验证IP地址 authip=127.0.0.1 -##http代理端口 +##http代理端口,为空则不启动 httpProxyPort=80 -##https代理端口 +##https代理端口,为空则不启动 httpsProxyPort= ##certFile绝对路径 diff --git a/conf/clients.csv b/conf/clients.csv index e69de29..6dd9ca2 100644 --- a/conf/clients.csv +++ b/conf/clients.csv @@ -0,0 +1 @@ +1,ydiigrm4ghu7mym1,,true,,,0,,0,0 diff --git a/conf/hosts.csv b/conf/hosts.csv index e69de29..eccf90a 100644 --- a/conf/hosts.csv +++ b/conf/hosts.csv @@ -0,0 +1 @@ +a.o.com,127.0.0.1:8081,1,,,测试 diff --git a/conf/tasks.csv b/conf/tasks.csv index e69de29..ef6b307 100644 --- a/conf/tasks.csv +++ b/conf/tasks.csv @@ -0,0 +1,4 @@ +9001,tunnelServer,123.206.77.88:22,,,,1,0,0,0,1,1,true,测试tcp +53,udpServer,114.114.114.114:53,,,,1,0,0,0,2,1,true,udp +0,socks5Server,,,,,1,0,0,0,3,1,true,socks5 +9005,httpProxyServer,,,,,1,0,0,0,4,1,true, diff --git a/image/web.png b/image/web.png index ee59c81fd34f999608c2499ba679dafdf68aa519..bc23409cb6880f04c8d5a30a40d018cbcbe644a9 100644 GIT binary patch literal 342450 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

STAe-jJD@Mc%Y0m#r7EEHE?m1YtZ(@Y3t>IB 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 W`ko9b^Cng^0D-5gpUXO@geCwxY@T`m literal 238903 zcmeFa2|Scv+cfIOB9*x2{YLhl6~K1 zWS5z2!;G2#)bl>?^Lf6X&;Pf*@BjTgzyI6eo;mlq&wcLuy3TdZxwdl+X@ax>oVu=~ zuLDp}0Kil7A3$0J0<=Ti?*f3KA#ecz06Ku0f)Ah}=g3t6bqfA}&+AZ#1604uDFGnH z9iaZVI!5I0Uy0n>?|c6CP5F}Y?==|IUsC-&e}eH>RniuqeACS*z{lUs=l*H=i!y++ zroJKduNKMacmC|}?5PpK#K{z(ntCmg{`n?OGlGPoysEFI1-WTztfPNJ`!^tzG8)%3 zwJA>lfR}fGpQ*0qX)9}+)3o2nurL7ZfIOgj+u8rV#?6~IezocCw*KkT|NP{n^L@Vnay0_^kh|mJ?@UI73_0%^9B`jpPVs`A=Wz1;oqzu;?`LkR zMK13k=b2sqmLK_*cluj?=~v#53lb3fG2 z-PJANw498L%xR4~K29#D%|iVHT)g~G>w7!<_}%yMyB*+ihg|n>@AvC2fc0+`e_>2q z_VQ)r^S?{~6F+|S!{3_QG5L*O3a-9?l>OsD&VhbG|8_<}DGvbuv-5wn@qz~cj7tE3 zn(&XZOGyCmQW5}IGX7C^P8I-8Ndo}l1?dyON_T>hL7j?17@%aOpkk#UbpRkTs%a>G zr@y}z1tk?V%?VmM`jZUg3U#LdN(w3}N@^+^nqP!U5l+4iP_xpoosrcz!ESP!R@j$A z?qTXHIuXsPR!-AFjHtYmUljdGE^Z!PzO(1V#Lr*2q@bvzd|5^7nzoLvp8j<+bBkM+ z?H!$6-94Yb3=NNrj*U-DPA#I)OW&7QR@c_CKX-Qb_78A}N59~r0I2>37WwmU zko^TNRx(_a)YMeew7=k@pbRD-RIJoAXJk*XX_(O7_GK5Adq~Hjnfj`#m0m>N6vOG{ zH+Ygu^wQ#4>@U!ML-xN0Sk(U!Wd9D>Kj4}Mv;fNAiHeeviiV1cisl3jIh~+8@hj1t zr2Cyt{##=FotS?mmVZwqaw8PvHmIqoY03Ym80Z;J{ck7IEO}z9B~1a0R1{=lqGAQW zz|W83g)LOr`-So1z<6u*xkCZ~V%?W~ze-x}V)76j%A+8_*^Kpr@nb0y@_;}64f*bT4mfisS~MYIFw|8k8}*94Ol zUz^|@R_-=le{21!oUxCn8~p-P-%Ee(j@5n-)Ypi3@s~Z~h4H|j;|~u0qclJo{FfYP z@F5cL2vQ4fV__u7eNzKhZqOPb-$!;{Iybh6X`NnX;_xn3a%fz6!AJN8Z;IfK_>ADe zmPYQTaBirKE-9%LJNPEg=&*8Bom3BWGNKh5t9j$;5zfMF%+5CyV)c6K9Ud|Y(u1{| z5KfYSSGgoW6b{C9f-oa6O62NY67X4KfGF!=PXZVX7Qja=9*{#?5|A|bm-8{j82?Q~ z75Vmo4={-Q2yC&8NCW%UPXf{`3kXil-DssPCd{LbdB(bJmQ|b95ufb^RxP@^4>zg; zRTB*O#2FIz1_UVG3osoBDiZK=pFBZ4h2duJgE(M!<{3kzKRrOk?|OOs^vshxBa`gQ zt9$d4%%O#zvKq+7T@(Le;>%%qk%EeEUEZ_cH zHD`vG&Fom+{pi7FCC`$ObDoEn!t6h@WR-RYBtPx{iDH|QA5kL0|JUb`_!Ps+ zFl)iHD(|j0)C`AB5p9cB=5cngx|D-DX#%?z3FsMtwV{tIU@hb&JqJY8f!Bind90`4 zJirejyYjH5j1>~VQ_+b07;ZVTMgqQtk$_J~yfcaf{Bw(=UqYr)DO*exIPZVd7PkGyg6DE~6``P4I7QCHEySD3ZK4@dx$E=GbF?L$awCIM*9WiT(&&F8VuIh+eT z1g1I0Tm*vw@jTk^+FTOe%-C2BUbSoo{};+v{{sC$H4(v1IG2l3%gHP)TQ^ya5c-B@n}>XnJ0qnjUqxOwYoQ(xke>hMcxRxG;okvTu{w&95(ps zNL|0P`G;z}U{C$E2J;oVN~aSpAjbyYPNqPk=GmSBv# zy*Ln`FOaS=UNm{Z<(;=Vi{hNA`p=_B1cSjC1YL|Zq-S>xllVO*ORmmftuiTyFwpV# zNUR%4_3qOA32TBL&g-pGoSF(2J~dHhy;V%LeDP5s)rgQ8Lbu-mhC)X3Z9i=GXNhXI zS}ToPN#fc=qGw;GwjC}e%SHOl(zVi3TfWC-Em|BzAvirhZa*fTX{~fKzS3-&IVN&o z+GDR7?UEXKL4Zv)(Y4Owd)3Z_oj{{USBdImaE)Oo#A4=K%W(mbCnW6ppbyj;OTEU; z*Z;yYwPRnKXwAVMRp}q)YyKmGilBtVq{I>o7mz}Ne#XpG3Vl^l*@@v};tcY>P3}un zLkPsjkv&^4s@9JY>8M%ht2yC9lTTXq${I7hQYjr|TbM_I6<~LOv)dCPSC7ECqw~Nw zv0W)B&+OVaiL&nRE2Mc&wr00|KI3R0P8-QGR&C}wGV!>(h2(@mbwGE=_LKlN&l@daUs{whOTJlj;Wpc9IP}~Q!nDaa`#iq-)>xRT(sJUhhnbOk!e%}6dl-< zjumtGRuXlmw$`dRTs7njZLS2R3>C*kE!MWgfKQ{Bq~xu!_p!4ipk10>@k5$u-2H~C z^ID);y7B-HaRDzXLBGoi0^5zdH@}F#^=-K{mxY6`yj`}$S3tAS@JRS#YBA39YD-p! zy1d(+4z5;-c~#wZ#NEJ6s{f#P<{oA&X>f>J%8s7FM8bnAagO8CQS@1!%_>K zekM?M1>uh4U9_zG79kxXe+%)@O4r5p%7`ib8T$bh)fn^{KmCEyOCz(%e1}(fP>x0X zojdMtZM19i8<3XuM?yYWmi_RowyC=@u!VjnA6|X9WV#kp-s1$ZN%YAZtrp*%vIBWP z2_%P>u0a5WCgkIs@r3Pwa3>JEwL>>eUCd-2bb|lO3{gL!|DLzEIr{s)!nT7dh6Hq8 zaYZwArDDDuftWfMubdki8X1s@yHoeVTZ)HnA?kB2mO!=U@TvsoiSB@$3`~-~iM>*b zkjUIus%>F^BoKt|oq0m2in>qmx}tljakk-7w4siLhs}$MbQ`aLcO|piVH1SbF@hAz zhw-^(M~?RLGjF9(%^!1mN}F9<2&YQl)E5Cg6&H>m=z>S;vhF!Ld2oX9_`AR|;TO}k zv9EW8l(G#PC@(FyF;fZbaup_ytCdi}@TC9B_#({Hm7sk8pYV_el3wtL%?zN>BAN+(U z^pxcbbiG73f|;O)sef3sG0&ndY-<3HR=a+x_bgIwx}TTk4%LSq+E=H`782t(z>9Rp z&uo`LtO{potE!);Zu)w~e=!Icc-x8+&AYIBmcL8wo&I$Bj{Onn0nQTL-Il`dnMvfs zbT#hxUthhPEL~&Q-PEhOwWH5g*7ioNV617LGo)M-p$m%1-&Qt+IOUT}T93zm4a-8maP zP!RY!$*p@c$Px3XH2a*gJ5S&hU?KS2mE_VY2BxE7S} zTRZK2LzSLOLAMC(0{8r^d)BujZQp;QdTm^WgBXo~7t^5j(vvQe7poY{rumupc&L<> zznj0IPNtw8LReO(P4V}fYk52~T^v7j4b&@l`gC;+u+@WBR^Es|Lf$%lyO#^$uxWU7 zX?3d^~F~MX3 z7JKWc^dZz@@tv#DH}LyQAzRYtkoRvUo)4I!U@Y|!^TW$jcp9^Z1fzsf(O`P0OzsWL zLGs0H^oM*PTIxE_PsYrh^J~KC1Co!^{0}x(T69t4pIF#ulFT|m%omfeH{UI-o81Ef zPEvINf(VnFwjm^7->EjkwE-9QM*D&*W6rbncD4K07IrHRt#{e`-uSEQcV}z|OKf>v znGcNFoLw~Jwito>xTEalrf;Sj4ZU{jz;>&2UXbN~n%A3}%nPG(@WQYV4M2}cz{Vap zwX$K6r3=IemBU)b*VPT(^%QhE?^Io9SS@*Bh&xGiZXv^>Eni<@xD{{Xxj%fiv*FP$ zPf6krO9R(irm9h()1yu6A-iJHHw(Y3D%bC~?5V-gD}+oi7i@fk1e|e*!Qa67U&ZVa z8SQBe8-|~Zr3ln8grrH!X@F1EPF?3@olsvkpBi|4~YeE!L?`*|}to(8sN zWKG^3WX(DsECnhv9;|4ol2=ltf3I~1tw&hc<`v`(u2fyZFhNub+RjK%4s;oF9yZl) zk^qC*Cgm=*ij^zn1>az9+cE0gBSm9ss+h`Yqn6lH)$L`^9QmWqQPOC*ZS4ng`@m#1M$N+2ReN1_gc+G?ldZ(4r*QL~`2Pk=YAJ_02My za0U0OC`7f52p;@i{~>;*Q$|}bwPDJ1wn#3uB|!pEYmIuDuX2(ts4B_MNDv+VF~`@v z^6lJK<_5eEZ+jENoP=UB`!pwj%b>Q&Zzv7%!`bWDHO^Di(~GD)?N~y{x1LQIUzR=z z`&=9{Ol%J#0bj>HNJoJC!llt3dCL&NF|e!ozW z#tCEw^+_%oc0>WR9o8tH%)V5I@y{f4)>iS&m`~s z<)ZjMzsEAH1hH%b&OWgG(~W{-Mi%jOG8^N6+zT5)cJleE{jA z#ZKT7X!qX_A*+e~JC}qY1^aOMV~rHm<~sajmvWa8OnhUnmq>3_^fRQ^8{VNq|oY!3s`$gz4Zyi?>Am#(c9fzTYS69N@@nQ_* z*{q0ccP#n@Ud&P_JK)rifb@m}LPQGAWq@pym;8GZa9Ck-@C>;6K5}Orj611DMdbBg zusmh}AF7fy2HmS9AleScN%qtmAR5iVutx_+;(s3S2StCV=+8L#GgbVVP5-P1f0oQY zT*V*0=nw1ohr9kGAN&!a{z#dB(_@YqjM(g!o$M znlqC{DaYn z03SsHwzeX4#{W{{YPonZe`T}(w;8s7VwZDB%g$9l)P1+J^c#gX$4v@IKRgz>PztI$ zQCjIR?`D$`om$!}!5?<*eUu4@^`Uw5tJzpVeYN~ZW{IQg@HP^_3TqXCItBKQVc^NT zBw#Z$BWKckYuS28*zYY~>CFY@8J7OU1y@er1{3+Z;~20vIH`aqLeZ8Whs*VKe>>q( zpJl2o8B{fGNImv>If~KNA~nP6l=+LN8a$^Db+<%F01fl;t7b85QeT@Fv*}hWcO(={gXvkJai#T&N#iuByvt zFt8QBqdkAWiBDhjX)-4R@XAP^_I?-33&I1k{rh%E7Rs`-fDNjJfhBHMR1ow-rSQ`Z ztxZxfEQ0YbVQ*(5?@D$Cm_jj5?gT8*)J2d-eQxkfb{BH}lcbj>- z=YF*Zx35h(`{a#^M)38Lh57gbMxroz)IAKTxsGMmDv%ApPk39)rZiX8aIUK)?}?~R ziC2=hQ*a>opz0H9!Ki+T_IIagxNo*ZjXoF3y=7_oAm}CYPlV-hIm~@SdeWyYM=2iO z3>J$uvuaV)6#t=Jl^C02I4OPzx+wb)qJeYmieSOMdpZIYthCywe@wMJG1KWU#A2Lt z?sk8KBdpa9yz~?&L2Q3V0*b3gwLQ*7JR?YBJ7DbU0wJy_0Yz8il#ZP6`j_>a#M`lU zU7~b$G&7dUUul8^f39pEqrtQ|{(Vc_?F!tuUDY>9+L(Yky!LV5t*SfIFR7pvMWXrH za8C@ZV?G9aswh;A7L_O6VZaqk0$k^`0?a^jtn#cQfyLjxCOC|qh zf5=Vp9;s`_tR!GUksJizG zG)aK150e$)D(1NBZDNm?^Qe@KN`Yy?H=YxyRR*Y|S?eOr?$O53i9fdd>Ao4e+U z2V4jDbpzcm^fSJcQ;~6Txk4urb-@D=ho8qPb^Am`FpPXnKy3@H+Ni($FzXZi##T!% z>OObEP7UF4OZfx*@6f^!uwroHVhfzAqNor`~uXlrfMe1a*W2_8jtdiCc16Z+KuJ zhhkr~-{b3>r=okN9}Rc_>u!}|tuVF-A%bpw{>~x^hzpo!ZTDzB=cWEb;uSmVQ&8{S zDZN!@c^jfA)-qa+zvOdeNRwsl;HA}wD!dAk&55bzr=m-3OcWRbP|`c zZ+u)AfSk&87~houoitn=|Msr1QTpuEOx(3fGdD`*{nW&R{_yjQ@Pzr3h|}HvUJDSO zHKEh_m%<0FAR4}>+tR=2eE%3`iFPHhi4m`ZI#}>DQ)ExU9dmMT2Co*zr#|5@xk~fr z_-~B^5NYt=Iim}sNlD8kp(hGT+s3(-E>?B&G4=iErnoAoe~E%orr%f2cDl$wvVxOU z%oq zXv!a2q9PumG>XUKd75fZor!^U*GsJ++qJe`eehl6)w%GHms5b}m6 zTHNxqYg|B?bOKYMX6{{wdCBq^&_j4)gedWgO=X6_$Ae{){TwpYE#xpF})$Myy*O;zZRI$)wzON=#>Do5pg-@e?v%%X$Uh?|Y-NnLf zgA-Z&k$F`4E`VXvlv5;5k4ds}!d$zjmwkpJ?J79XfXrXPkBiXN-1=`rf~*_+7()F( z)0y@31vqZB=~5=zYeyHW+@ml?CxRMg16AQ`sFBYMmk4{p!x`fy*Z%mEVdN zMxOjXJ&ygztez#T0+&q!?n91S;5}1+Evi^2oE@Gy&aPUOD2{Gy5{mk$=b5-BEv5dv z_ULyYJ_%eamOHj?fXg!rA&Nb_`7ye*?E0{=TA%&w%u<^1s%ik|ae*buxC4v}lqQ^; z8rVmYXWLr!VX-M>4YHQ_dF6+?YgWxt*XHp+I=H0qRTCjHo^v$)K**B|qzkH-*G3i+~3=!LUgp%^_fYf$(ga-Cb`tWtzB5EG>IkicI zx#x%%T@A6YxGAIFq7R>hPoRlB@fOByoz9V!r^$WE!pENye{5&Ge2VS`(ZBehIjY; zA-JW>bAPHPTaWOC+;{23p*azp>Ozvp;&!A@$*`IhYFlBsIp%xXym8ETU;aJ)vq2{- zn%|Z$lzSZ}^~v4(+0;D>X< zBlosmBNWjC8HW8O6IzlHcBzH5@z-=2D_L%^EyjXwSVv4l>ZG@L;SOuC>X`QD!h`o* zSbN`il-NI2RII7d=WO;$dEUkNE;)O92ej3&XgqD8hjS_30M(`>?B;p4*KEk1eV3e{ zD*1G-uBBZhU9gzfB9R;>WG1zB{k+3b>~Y{I;<6_ju}7ZxjnA;wcY`g&67QgV-z8q6 zt9~|0Su*uY=voHnp)Q`4*ylif{LZoy$w5@YMdR&97e>@#s%`Vq8{Ni?YX`*SIK8Gt z7;2dkFY{3CY3-YTt4-mE=q6HO=8zs)Q+LZ3_v$`IX*|p1%}5=LDLOBVREPSLC$>Rc z6K1-jCS-Wu9^3oLyhh7Qp)V(#px+*9;LrVInI;B%=*%%`E?KlnN3zDh+uNj zig8%2#o(mCB$gY)Gc9w^tn|Foqt4(ppAV#2xeQ%<`hNA(LJC>ziTVKhdW~Rxg=aaYGk3Kz+8gUd^Q(1y%#F1ej&(R15Tol3mU|7#FEC!-JwLDW^ zE2pL@D=Amx>~5052!F9eoQU{>{OJWIdtq{Bo>Wv5-EfWp1 zm0RCMEM7FSEC;~$V#pF?>TIS%?BTqR#4ZR2y+_*vrA{3?fq^R@&jL)c5yR zMR!7F>#U8w`DQ5i5a~U!WDz_<@mnA{1Z9K_GS~D2X2it7J>3YuWXmOd{`BX=dQJSv zJ1=ObWZo7cZSBVtE-qat`z#g-Y(pM`FgF%*O1C`G;XWFgA2o&)6isQr2=}`~^<3Wf+FBG)Fs0k*ZCw1isv4lgH z;K#=9(QKMxaYA}=XKnp1>Y2t+#KAwa;KUcwcJ{ww0$)eNP`8hBi*#f^b2EisPI>tC z{^!n!S|V8uQcFfJ_%6!{TU<=Xt)Ct_uiyUEe!ceXy>4Tg3`5OjYEk{hU<6OnCmK;y z%wQ5oFhqn%e;JcD(7vcHjLWqg-J3)UTUQ84*t!*a`?KkDRCYdanTXza9{|rn(36)B zTRazW<~@{&ZzOAu6U({8C0U)8YS&p-n5*A+J6;mob4zYwh4}=P?{096x&*9MAMAGJ z3RD}j-F^gaM>5ZsX1fH3@r5SwDpNBQsO!#-fG0>e+` z+=3mFw@r|Vew3_RDpnfZZP-+MizH9E_g_*RzvxaeQ+qswc(m?B?1xmtqmXw5mAY)| z^Wb*t-!>Q+clrbQiZpy2)80eUqe+0(rqPKI9<;)t_F|G4N{qk(-;W;=(BO{*O!^84Sp3y78Vlw+xsc@+GLHxKwLs`CU;D`4Kk}n^&mXW zxG6dKfpbd)dEIY4U0^_L!{rHR@jY!EN-Q0t%u=^pnsZ&zzjBdr7s&-{y-4I)d%!b_ zV8NBzVa5|`pXV4zOnPSw{y61gW5!|9^LTfb{o>4ur!(y`5+`a*cm|FI?K9MofWc*C z;16;b#4(=({zJ<}-M>h$n!z_z3YvCJw6Fd{mHT&HJboUep}@6 zkv&6an-QLpj$FN4pSxd6bctYdr?X{RQ@m+{)Me84bzEi!Cl!$( zku4<4u%Y>GbwiqJq?SbFtgga=*yc2L+Y}pAB>gCmc+RnKCco5e8F_Vl-x{aDRIck& z^m@fqiG4Vp(2PB3*TqrcHQf0!^ACsNCAV3rfFSVK+IDBNj7lRB2Dh1G0dw&ia)~zz z!mw+QQ^YYay;IHrkt^s4V7)LcR9vQhByhp-;cUn)_2=L=&mSRQaj1;LP*$skN*#}6 zc!~9fiq}|rS;x8Bmbk?X79D+xTcB8lt*`W5D^JF{7qvNuapUbu>P*4e7GjafCWxOZ@5NW|%T=Cy!I&(uSF{f$bAYKEb62oNDVPRy zR&+(6Dum5mtMu&N3l|_P)2axsUHfE6+tug!8#}5tfm^1Aiv8?{R)_ox$hHD*;#>i1 zv)P*vG>XkSq<(B{Zizov``PR#WTRIcLtAQva^k5sDFw=3{jmoL&C(SiBAqG?kD9f( zQ{T8Xm|4$=DYJe0&d&>Eh~5$KlkwbbLO%#`-WNY^Y*s}LP+SezW}cs#_Ta9UDVWvv z3=mRsu{Q!~*3CG55hbh=Xt_>_^aj1464#~UAaxx^>@~Y$T*=znHEBwx(-j1O%dc0QH z{1YAxTaWO@ta#^;Fq=Wj`Bfy{wqvw1#~b}h;fy(;2(MaAOE!OA7e+5-1y-D&bZ7wNw0cWL?sSqi3Nb)#XoVXR8s z_<=_e5?JpicRya^I!f;wmt@*{Hhjn2+>4I-5)0X>JVJTqtfNkD( zbc+aC5t3Y#iuMY5>bODdTrx$1wc zYitnfZLH12-nvX#kZoj=@od-es-#T!JaVBN^3zv^_BehYc4Ql-)#Q28R(=IES+jo~ z7lXfUKWD!xuR%74U3bd*_-^io$>#=GW^D1Llqh=MlW+a3?ojO-6_MG=WiOxhsmdaZ zF$(bn%YSPyW_x!7d{JperF&V|SEc-g;H$Q%kRJHE2u=-5fj*f+@41_V?AVXg8Z&ID z`*}1>sX01?rmxG1bZ8{oy}5A4>E;h36+R5?;hg+&Bm#hH)ZvmAQequ0W**J)zMEqx zw+M4z%nN#!;armx%T(9J1N~C^RL02l-9zm_^$W+@$h-ZP`^mVJa;TD_UC7-7{b6tE z*&k9l&WO1XN156%^c~fbr59*-9g-Ep^ik9|;f*g>mUKW3`5Nz!P=+0dAvHr%TY8inHH8%sy3m@3JKHGMt^Pa4;Q#{{Xvri5TWA z&J7K;@4sWzj!WXRO^Dho|0eHc-{Gg3xXZZ#sW%+`T8^iLGLF`rcUb|KV6X(X4y#7)$78t>{ z_9LS2ZwBMp-`3-y2@dv;1VC@LM#lHUwK?T7 zx>65I$$cPn{Jhx^+t8W=PDTh>)t8`*>9f;p^?KOsCT=Jx#~IJ3Dc$@M8TIAs30seX z4B{y=-)l^;Uy!DoAgJQf7gUpA4ugdTbl$>^o}LLYv2^HU6t8d)8-_|ow2BCL9+;Nr z+L|d%F`i#00Wi1O!@XAq1~OHIDdHrSI8?xP3Cscw#|@UGFt76Eb&T1l$L+)g;H z{wxwdQ###ynYokpOL;BJ6iWgLU{*jTK&rlPx09oV*DzU{VfNzcEMU@oIkRW-gr$br zc=iP_T8`M9qc8CSQQbRxcv0fik>zIYB9rsNd}jfThp)Yj2b=wy`Z(bx>vPvw1pAbj zSgG&PKtwZ6dwrswI)+D_CBTl$5FEznRVcmEV+2Qt(K^G2{#CFSBH!*)7Qji}&G*Is zeWikqVQ>iHc>)@Zbvc|*m#q+`HtpctFvEL4JYrio(| zr~mr?!MzmL{kerbo;Aq(x?8BOuC0t8@6g%lKeEUVlw*>3S%ouOWMV-DZ>``habf60 zB4<_`krLC9sqO80>%3HDfxMmWsi#la4b>90?(sX{TFNVeA^u{-9p5+&FrE}&W)Pym zOHhLE!kK*_{)z6aTZt~;z?sPEJ=u~5oe1r_>`3sRF2ZSQ+bcmu4I*soi*q?g;qXQWzwzO4}F9^*^6E-!n;64aWU9!Z9{ew?A^Lo zGuAem>ISw}fgDLv&l8Dzz}({VdI7FhRm&r(_^vPXHf~brWS#Xdk+MfmFN~@?Rvp5~ zbBc>DY;w50FWyQl-izUs{KI{T!SuDyl!(mZSabMh5oSiFmDn#<5LzsZcw6}T$jar4 zu5s;XE&iRv%|t`bQ1$ySBgjQ*!nS#GwUCZ5O%V%J@wBu+ud8g5Tj zXH4(@J&Yugr*Y(J!c8pAXlst3iXy0GTDYSu>Cw;n8!=#E?^dC3@&hX|#F9nh!~zb2 zY(@8Xh`VB{&DZ7yeWqR!=lit00(Y1t4k*P7AF6#YaWKjp(55PGwatk;=n?S)oMe;WAM6+{Re1@0G=eHz*$M!mIl< zp1zjrV8=1n9hPGE(4)=zus5r+bsa&Hh5kL$`Ksg0;#=(!FJfYZdhKyfYBXyuQYF^U z(XK&sq59-lolu!k$zKjgaT!16^Jx~6m6t4SF(TSS!;6Sgloa12w`qXgW#H+o>UdZF z1)M+D#|)c}i`Sc&8938^iU(j;30QN`)@JYs3-B;fUsun=fVW_aJklcXM{naLv+;?> zpL6h@hPeL4-YuHI!;2i&4_}agy^Wt)sFcl#?L{6nhXWW^b^7BXFg;v){m6O$HfBE? zz5Ot2j(_AcKJdd7Gy263g|4#Ud)ubDx`Sf-4LHcflH+Jmm+V;c3l-BX4+7xnFi$BR z7LJhaHhFi6mTONQu7-+?RjZxFNT6J!)q=w~>+^*slx1tYyxOtknB(Yq+TK9){E6v} z{W<$(7s*ESccIaGu9FIq$!hk83hGhAQCE`6c;|$#&L8x=I}y88ZlZHTmg2x10H4er zp@F~mnNin9h7c-_-`CO%tDm#kV7(bvE7m{@Yd9ZQXM0Y`#w&RZev3Xe0wTplH=-V@ z<$tFA_Csn)FpqfIeW@D<^HUJ?>mvL$sPza!c+NIFdN5V$o>Uyo%bLdpQuZ;HXR{|r zKxnK01*EEgCPD?5uoz5W|2mBFNnB)wxYe6YxFHB`-C1R1Cc zPr&OC$A$?37_rCdyl(2839WNHm{>E;;$Vp94xjkrQ-X6hRImAF0gfxaqC+pF@33ZW z9&UW%D~*~*DP~m=Akhbwn2p)Pskb(t6Ph01tGPY-EUiz&|AQ=V`-xWgP#$+H2xAy7 z-B}Ojss+d8Wac>+J7|Oo#ShNNOMa94C>&GonQ8cmO-l*(g1I1V#6o#Se*&+y|KhlG zcb?26*5+qmVeNd-gpv^R39Z|Ltv|mv#%gDW8uTsw4cLk3C92C+bq$CxBxZB zY`3K_BkJCPbNw&g8XDANv(uy1SS`Zk@=%RDWw^dchk_6Rv<{~p9(PTN!)351O z_KKd9?~6N^b$EIz@t+*d;QHTr-XJPt>M|b|UAl2o>RZmLerkg%!+BFVy0#Y!c(ePS z{`r}%*Nd)m2NO3M<~@ZzYlnanBNXOB{JYshSgv964r1Xi>kPUTlbdx`ystksqB!k3 zS4{#I1998LxLXZ}r8u+wduMY@47;|C#fZ9t&n)|u=7rR5zn--7AS)>t_MS_yOR1OCo8LK1W95h~Ux=cwbx z{`$1Wm7Yp9O+ceCMmD#Dynhg!+QKBE{(Y;=}2;rW#Uk~Q<>N~lt z_(_ao{?P-WlHz_;uC)c2Ahuwm_+ z-MGy{WRwiF^=H+(XJ@nZqH{ms}Ipsdp!ENK4YfR$^cxlQufNVNK z?>44s8cUC3;KuZ{TP*w_6Xog`CK+*-!6)sECx5A`_&j&`JqJ*#GTW3rL8M?9?v;-vMH+_L>IzfiJ6PerypeN+FZ}l8CwsHzt%LNO`RJp z{M9PiYQb{Zb&CdnG2~$1=TUouy29wCBqM3|gv?s63n=TZX^2Fqzo;xDNFgZW>-`78 zCOIzGnLvsrke4uyfceP+H29Mb&KAbP)xHQ%Ruj$K&&i58aALZq^d;$Dk>pPSE;eT| z#&cVz4}9XMEH^*nWj8X(J`V#i2mxfgnm%g7z`%3X$La&~H;ppcl)gu9U%r$sA5XPW zw9fd(U+(-8p=APTtRnVG)Lh^y!}l4vBZSUoe{q zhQfP{qmYaWzhvR&%NX=^%h`(AZh@iGpQ9%PhkJWO4t%4%!y;9O&29+X3-#hWTESl> z>#7ct5Rw}YSQ6F9j&&?|FeWkD$yY!I@+E8aanR2tnR9b?%|?a@o+!1-7vp6!&ijLN~A{d}z@F!L(>O@uN|Wd9as z{K@8a1PwuZ1PXcgIV5$)X3omcBX#Qel9YI;6pH52V>@p#MkD1O{MmqlNy~-q%|T2N z3e=JE#1qwT+@)Ae|2lr%>dubSVS$|^O<s_Rcl12y;E)PL@-wtq&el1wpP7^rvS}_(a;*V6L1(pKK5N8OdF}fXI zd@IJIwG+b4sr;XtlNGEN(?Jrn02{@6@zb#Q@o9;v?mp8+KJ4qaW^deW_NN`j8&`;w zxSe1$=*dc#q7C&CqRvHSYR<}vvEg~>4ttPMTd@%CvH)5^OCR^BFa+5)&tAtvkRkGq z)=u+Un(T~H|7@5nnOx=s2=O0Q#+ncIC599P*H<U;18V-+O2}v`4I44*0|FHMoaZPP) z+HepBlqN`Tp(9;Hihx8wnur0BE<{DTfQm?fkWi#I0RaUiN)Z$Rkt!|HoAh2o73m2e z1X6hSIWx~Z=S=yYnP5D&r%IJQ}Q&`^0CSv|faUnBII$UAbWPcIx>-+4rUIuMYyv!(HkX@s&{;jCgNteDhwV3X-?Hw#-`A zK_MHJZB#Y8t*6i3;@|cabs$m?l=>EP9f1n{!ZQFd-Kxoi1GfY^w^k~vaL$O9)z%1q z?O1xxF%Zs`ax)&vhc5I-{po9x6BGR0kJ1alt^wP1`-CzQvn|juDe~igTS>{U>;2D{ z4>2DN|D%E0CQ^I-vtA27onUAP-4CteN#-Clt03Vu?y$+$m1@Z2Yel`*u%`%!qwV$r zlV;T_BT{^{l0-vjLg7%YlKJ&3WwzuJx6|@s*|bZEwEGL9iK{2=6`%DDLhi?(y1kzx z<={xWncg+>uY+267TAG&u;9dZYIp`hMz}Z?_+>9I0Q&c||{{LOyMUYSNQr z@aCn2M(lMwNAA3O$$bm(MM2jaJ$m}>&au6G(K%r|Lc}J}XbZSxd3_w*V*Cge4Pg=B zSDcFo6(e3R@O|7MT;={iOu5PTgu#U4rDwBVdErDVlSDTg|M9~FxIiH z`4TRB-nuXeVEdYwxd741IxA@~s$;a%(dqm=VWMrf{Y z);9E4hJ?;7O$L90q`nj(U-Mi(UWAfGxiOFTHls_6o4L!3npN!ihsKxt%TF9+SCvZ$ z89m-{I8F=J152M0sxop|fki@?A&&Cgl+Jp2!Z^;TF})%bHMeo2_qy5p>DpKuYeBgy zcl}J>8$LL>d~xAzq5Nbq1!~)f`nmPyw^l*>8l2bOBSIMSx@8fZ-floB!w&zX(0Sg- zj>agrvc6_uL!dv`I46`ZN%Y>?cIi4DHizI0AgkC;@G2r1MnDs069-AU1qVD1s}%9L z+e7!Wo}3PkW{r1HDBw7Lwe}~!OMNx9jle=4s?!t!l%U)NLh=Jv(v6tebTw=Pik8<} z;tNnQAC;*xw0Yr$$6l~lJlfS`uOd0gApXXyDr)br%bI#_YbY1U#8v|uD9d+2bJ@9| znb$Rp=VLP5eJb#$Rt0REj_;WW1+|u3e0gt0t~3Zp%(tqxziweLGPOCO!rGJV?{HDN3Y-sgWrt(=fMwC6$w~;sRREE> z8QJQApYAneecQ5hi#m?QuEjP;iqPv;3DfP6(9SN816@g3txL?WFta((`L2YMB<6ZN zIo8HE+VgRt)=vYWn>XXv$IJ=2;Pa@SK6$EovD{ZD3B8&sQBY| zqsZb5HF4K$TWbrXzWy+Ks49wkAdN4*g{N%>^SPy_L!-(sLG6d`KA)Uy@Y5Jo6#ab8 zj7R3~by}znYCiS~ z61W)IdY%dDmdF3>d8IRE9N|e=l3$O=N9d-_Azx)GMBK8y*B2h~Sa#-^gMi=X9gX=( z!-IW?1g%>tO=v(oan(xzA>yANc%!+cgb?9RIDj$nvyIEXn!_!{iCeT5?h%1=mucx^ zoinq(6sqrK5SAh9j2{rU(^_s+#%z%EDhyGJww@eIS-ct;>8@6;ol=dTAB%&qfCc3O zj>a6vxR?{V-`lTp_wPlBQ2Y>vLsfD`5tDb$; zAJrraYY?CxZhf7!R=dJxra3j3|~*-T4qi`pj^_V%yQnakZAXoh+<*GE%b z?+`jAahr=fPS0FY`)darco)YsoxZjjidS4f9V2-pH1jy+&CBy!uX3cC(I$xvyfG9| zOi*Aou1SV-i9L8|4}>=~pIm#?>Fz8~ItBZV*qO%$S5l-2Y2FL@wPvU{O_ySy1V8>_ zT-R{+D{1@DDS?`YL(~%)KjP`X`pPkOX)8LuwE=~bxWs@+PKF$+1{_ZnMYHRYn%4yUJ){z;I&Zy`p!Ey2ovIJQ~MVS z<y5qdy`lX~v6`XTX#Q&_1sK*-ke1wQuO6VT?qS1t z_8S7#=6lv!x2N?ll{&^;zNgds(J^7gPB~{w^yh^*S6xwKobzl%Btl=x?eKNBu4gPa zdju`*492FG-OJA*yT!%9*5!=}4X9YLg!~@m$o1HO-Dvw(RnmW1)g`hCy4qA9jHCk=OblZ$m|&}rIB8`1})QWzPv*%0#3VR z{19^*DGHaEOO2mE#}*H?&mNd2q`SUAF+7a7BJT3H^NoIoHTO;|0HKHxkvg1t5boP) zPnKkf38#w`;j15*-wh_1!Q|Fvghmmj@4G${5=_u$^%+~n4@C?XpK#xOKzm!2zhEfj zsYutE_QD(69s*c=*Ioo3(yE?2*!WtpsiMe+UhMu$x)srN&7Fle#DYl)86-R_`djl~ zr2N_jDR4m=dVHFsT0XofgzF~H!=|i6Ji={X3<=i+cYLJ|dH5`k+eF_7XST513=QIG zeP4`F%bcO_w&_^Ub&urmh;C+2RE$+)N$Ig9b~Z)h-6SulX9x)5nZC?-yX`b1#V{FW z!%8O^Dmhh{?xpHq8c)z{>U*GC>@b9Jg+@>G1|h&WtQ7`m^wGy@z7@#M3(R6qHx(5* z-6pN6)50agPS?uoe(wbR>~m9~#u{}R;tGpFpQgy@;xl)w0wtQC#IQZ_%2RCM&oO17 zo4fH%TiL3*L?}l25tH;(Sux@4{)SoJglysW8ix4dA%xAHH( zJfy+kfHvL%yea<|*Ck@>Z8RS#tunym5fXHq7u2Yh0Q$DD#jrwm77ax3Wv*efg^6nx@)W zaufSL)W((iD^P=ygY9kSpc8F-(KzR*VuWoLVawE=eAP^8V5(iN@cSb@Bdv4r2x^y! zHy?0SAj_Uz)6USBXh)I}xtekjaif3twW1x5@#~(L_cp5)`+HBc03voy$e=*3MF;Nd8E!>F&LF_lL`X$j!KAE@kr+9 zep2o=44vO^w)G14M(~GPIpP9a#xMb3aX#K>HzRhg`emo^(YEocjaHMi$kh;6<|zBq z)i{+%gcgIp-dlRxX?+h@2Ixb2xe@(j*ZVA^uH0KKh)`X=d^x~}dMB9mKb$!J&%6G= z!Y9Ax@GonC8DPNs=df%41G9sbdDlQ&kCWz06qav*VFb^nY`X75eFxDjPDiEr<_y{C|+GFo)!gDN8f?)@|0PsN3 zsh$f9(b(_{ZC4l6t`{OjZlU_5fzKU*_Nq}N8TW+46R1TLW%Sl|Yv%JKknE+i)BzL@ zr8e?0%r*q5KnA!f|N7=582JD8;6RWHX3pUc2ZH?RT?6omgkJ~xHAjD3I=|M@A2-ae zE%Hl@{F0ErB;+p%`B!V?ml5&H(E2CS^p}GCr67MP$X^QbmxBDIAb&+7evj7tvX6e* zN5AZ&--D9>SHvN6!7QH4q(;m(&{BBEO2Ee7bSW$|@!`!Z~@x|psG zA7z%WQJ$-q9RTT^ABM{&`kEhsG66XCRiJN$@5e=`ZdUEup9aByIM}jQ=f8b?eKjVt zewSjkzy6~B-e$oO2xw5k4+C{>7yBM%#_0Nu{%H_W=>t310x&a*38p=v&v$L4doX_( zBG-I40`;OuKB&g{$9#EN{q{b87)to-RIqu!S-Qj#y;J;$p+8>dYuaCz{_C#)eG485 zREsw#AAv>?+5naukWCz2=>5|oCf@^awCu3cGaY#8jT>I$_~^vm9`D~BakQx1^~Rl z$WqZ5g|(spG}d&#I!py-HM5eI?0T3|o0?{^e#0tPhc9xi z!NLL*q8@sA-5e+x{RgH|m@Z)ppdd)V?aU@Tr9j+wTsP)0+{SFmrcH`<6J;e`QZF48 zKIBi*KlbiXT}ya<_8(eH>IU}$$eAP`q7i(40bsLh8vpoaXyc>f5O?ts{Omg?UD3lTDOf&4A~-vKOsJLP@j=6$6(=9j`Od^5@fY4O!*@ z7?alXusAf!E-Y+@IRO4M&Sx=xx@bB(h%3u4BS7j4wHx0Zs1mpZ9S-n6DB;i85*+5o zWtWC`xh;6Z%bz42>*Z-zR+M5r*YqLYrOImO!=LKriham{jqY5`PZ^-7e!Hq6v!f)eLD*X?@)xA(@hsI2B?p`${QNeA_FkDMTb zc2!mO?w`x)(Z&C`=vI0mm3paQne1#+JM1NvWN6zdqb(@mVn1bBH+2MhkIF?1 z!@AK1wXNl9s@F6`hn&7oY;|?Hlh?`gK@V`xSBH{@ZLsP`px?9>DF^xL&l2>{OZqSW z3yi}RP_D?zQzn7NzvW`>;!6a;?-AxmI|2dxE4$vKZ!HfM8o=9P4XDu%s6%ZCRSya) zjf#e400>w0Z+5i*5*GS$!H_mJUr z(Y0tmTR;1`H3A`Xlu@Pq#$)@B584c%dixdN>{0mK>t#w$d47D;%o~2wSX#yuK)ByL z$-jnow*xpG=L1%heg$?@GkC{x4|KpC`S zfkQ`pd|bygS14ERCu;GMiT`dSV}sSBoK$;#037wirRMz`W&7tZd{z;AmFne{ z4?xJWn?vVrQTmG$3W}olp&f*x+T7UZy!|%VM|X7DEb_YlrmX}x=<8pOKw_g!kUb(m zcH(UrWQn14p||Z2ia^ya=1^bh+Me^<6jUA1Wx$5IfUNJ=Wp6}|{bj-amp%Ke>9SF^ zz_X1iFO0W1up-sHY>|1SVZiK^~hI>`P(Frw(OQBa3Qn)AS-+Zo*Z58=@LJ61F3UA1WR4PA!3d=cT- zx*)%V$g&@0Yt82vORk@!?u&mD@JO1b8sLjV6%A67fZLtY{!csfx1CCRH2imJ(@ZQ; zjl_iK+&F{xx+${qzU~ zF7F*{n=5YOEoACyN|p9eiM;n<$Bp%)%XjzUX-R3JWR{NaEQ#f&H-j)4Fx<5||Ao1& z2+Bp$tv-!Q643~wxj@#2`;UJpE>Gz{ywH2TXxM3jL7{Zx#+W^o5;23QLb?I;5TQb= znVV5u1bY~rTlI(T?_)+a!EA**S2OPxJWaW&7H;wYE_1H?)p!oeoB$I}B2JTuGGs4I z2*&HoiFI38gdC{{jb>xcd^50Q~^=+bZgymdDWSEaYsGk%t0?95os>C6oKDpE9uFlSk?$$S<=7oypmnoLU8&%1Lmvp7pUH?~L|ObQ&HKymh7V z?&}bOG~-OA%EnC(A7xa@AC4sXyYAcm@Y|K4Gb&~qAT}HJ7AuEq#| zAus%R_;}B3qil-Ag=Yd>(qyiFI;wOK|a0?hES`889p^ z=5)H7Eu$yA_T=ze>r3-sMk}3sodrhT)@vdIO1xYzIsAIQX}24FsPUrFFlZQk1{Vxu zS0SB&Hf6HL==ay3Bl+UCLNs6>o0D{NpgacNA|B?f9o|%48B0?l4flhtE5fcIC(^Ou zwfsaLN^iX+!N|uuFozIeJ1BR-HqO*?L!L1=XN&5!iQsbAtsu_eK8wdd4>;xy&__m7 z`gR4)v92T!B0+~lBCb``L~DyAIbDoDyL`;R?pmz5Wm=bF~DCtbWT;^Mx z_ueW#ugTcbv~+m$u{_hvl~D^;zlwo~%vN2gX6k1})bhAb(vwQIw}7ycrwc`afG%`J z3K1sf$h2(&f^~I6g1C8MJ9`=L&K=<@;x%YZ*F}$#b88`A@9kqtRKCXP?0Es-41u@J z*=^v4g-USc&3kD9SDXUeqt-K(@13al)S<^s>@=8-CavS%6}+EBPV?C3otS#>3&3ie z5_DwpeRi0yccS`P=T%@XpTXbpGdq%#0T#Z>*#r`sIw0j45D!`P3w~5qMu}**yiEif zXBsRXQF{g4H3mMp^l1H&-JLvb)2LnKPn8^`np5uJFY<~&CW;_T2=sWbYXqYJ*0oWjh)ZjX zw^J^lWP6f3&CO9?1QE2_*QY|0a?borBdJU4;mUaQ((nlj=m-tw`9eqbHv>*qOHX_~ z-f|eqy^-(Xl;-BGI{veG0CKu8n{6q9g2clMiS3jD?B}g!=y+&r zDnRe{K4g2)+%nC0$RmR+u*r7&BND+i?JKwIRa15QnHI!u1%@-`<>$TLH%FMp7c^m* z5r*^Z7Ucut+eJ=y7mr`w@BuwCIxBvzlWSJ-0kjG^nhuWAa3InnyVE(|vQ;7#M&us{ zNZ)%k@5k8vwB$pnVUN{|M^--$WWbInI<~6V*{yJX`x?;8@s5wAUfKP z!dcV>SYgQT?(a%>eGwbnEoAL4ye+Z+P^qbX;B)b{FXmJJuc-PMPJVI~X|Jb4HqKli zEaT6#*7E`QQIRt1B%xV5z0Jn0=H$1^+Znz-dLe><3i8ns61aU+`=qC(@5<;p3-K&L zevY%1(QIC#sW|3PqM5ApI3Vu)#)ZBprLw_ZFPZy|>M=p4Pvy>A2RLXfG}N9RJ%o{1 zX`A=$8JW^5({|*t`s8jk9zHjP*0@NxR-7t=Ug?1s%L3a|tLZVetO%nflJOYVGEoD1 zLgQXz{5Ik8bzbgW)h(S>C5N57`Cd{Alp8hXZVDiWyp--;>(i7u0(IQPr;)?U!DPv# zTFS?8z^Xd-AGWv2zexxyfN$ZSSc5xG{fn{pnJqfrdslnk6om++^p5Yc_vs9jDE}dL z9kNW;AxnS%aA@(5FDS4>gCo#4S~7r0H|4w{07i8kfrx-u@dVBglh!+M?BC%)F_+Y{ zquRrA0rL+<=KJ}>d>L~Jv#33A1lqt*;{A64qg78;gmR@y{_rOh;3L$Zz1T}!0w|nz z0OQ#xpM*D|Wb9$f%=k6<|hB^tvHfgQ5@0^q8*zewczcbpp)Sq*S~52+{t zf71>5d&0E8Ia5y$Ex(M0+oJNJxgh8tUC&l^5ZtwnkFitp%=9 z3IFrS4Fa^iDw}+m*R`z$cuEmLf6I|!-#P+)UM8i%7=YWoMM>^0G8E#JbX+$z5^&b*}dwi1k-vKO4)eA4CTvmYq+hX_bXgX8M3R3#t@Q(zZ zoA{g1E@N7~4kT@QN0`Yh{CNET&1Z z{dhTK+Z=>-ye|Ch0}(&uw|2ys#5kApZT=^xsT#ki&SQKsD5r#o+~-rgqBs@>m=9^* z9)a42Nw4~EEIfMt5!r*F?}yB0!l;pIZTK`J!h&+Hdv0BGx<#6JN+5VVeO@JIfAkou zGhKYcWrKr;yAQO;62K8tv`K1$y>vvzzlr#A8Bs z0KQ=U2o$3!2?I!2BE51lRTHcVTSY?7>)%L}lDyR3?RSaI{IpF;eeIyU$4^-`--?>D zM6qzIv4S?yd*`b^EuMcyC-SyusMkStPouyr3i@jyUnJ9Eu zqgA2HLt2lCnvG$#n>;~E%SzU{Mx5MBCD+ty5seXo{hHkHjK*>5^XDdGkfMpHh9DMYJyE@Pa-MzRR#heTCZS3GOal_dHqc~*5V zB~bGsJt|dKM0#71fq90yo%AXz{-&l=;1;fOZyRqJf^qFVLm9L`k6TBI50Q-S$YqY4 zo6g`WTyP5QWcd<3yAda7-f*kJh@;1Qd*&rxW(CVDtEuo>{Topw(qXi|Y1w1?^SYg% zz>}uf1y6D&F~Bm_R5#3fm%as7X^L0b@SVc|V)%4IDXQ_3i!7=H;1j4k7z>B{1{SP0 zc^$4VbU=K$mqjK$QL{NPIt}Z2>v}oqlbKblLSr_RqCu^kUq=r3= z0$mgl;;dW@V|(;=M{yMzhc54J0d@!X?pBW@Aqw{8N#_ge4rc9^NZ!SX&+1+ zUCd>(rd8BDAWRdVxMBGa?l@Fi_14onpN8r=Z?*V7s@RX{82WBl_%1N|PWR`MO2K1J z6TI&yd*hKnbw`;NIgcWv(!xy82k_;2rX9Q-_n_s0rC{gjorC(DkN{ufSN`b-@1kWm zHD}2{xWvQGYtMC1sh4`qp0@&@7hG%5YSb+^*L>}B^~W1(>Y|aIc)8KIzVODmG+N(* zOm@IrLBoyaoFk9JXeqR=0^GQqdUt#4iK*Q3>D?SEh6If#EhhRqj>;D=a`}M5Nio3k z;`{akU`s=@!Sk%~3Zd)RiTz5>Op6T)Y(mskdGl+}^jHr~;0f)%bMFGS6dYC3-l@s^gnK@Rlq5%|-9 zkC*>@$ouNlUtR$wlOgyZ2ncwgiLqpnrmf$omplRMrvXrX+XsjL7(w%d`(CcYE5A#> zp4p!>AbsvUYe5*dMi46H@hmRoA-jWite2#^Xm#ah#R7|SF|VeR&iyC`Lds#1^Vowe zSAeq(P$zNyKw*wq3ub3#kV1hRfq097jS=aLJ_7aeQ5HG@n&nTBou2|)y8ZwUxg?YW zD8>nZ5&?UKkgWxvdZ>D_)_gV)*0ACs{$5m0F6KCkqQZf~ zt0l`JOD4y!U+S4+OH^N7$fnzz=(n5PaT-Ic(ObB^R*S0aTX4yWK2RL|i+QZs`Y*!% znIyoROr$qD0s%O5hZooS3dmfu2?wmRn6+UDSqL1o4B1NgN97GO@q2qqC4nLir=4?3 zrm4Z7xmD43f%vke%zIk1+3%%wBlW5|7n!Q)J4PNe`w_f-`L|%N!zBzQ(cXl1r7mux zDA&;|f2>`+qB>42YBW1LsIzG-G`$HQ5nC%e%gk&CFKtbK#iN zvprn`>@Dd^Utu|s-j-|gZup9C)-{GmK8AShQs%cxz>Oxch0cN-Fk$H9kL6DzG;nd@ z!TD40=!p@-4TrG}>Iu6Vp^F+Ex)77I)VpUWyl3`cfX$qeeFVY+FlXhit4E-6*!s#F z`#5!LLU6A2)QdOhuB7`aDc-ETXCD8+SAW_QuEox^ttSwb+|bM#^6yu{OuHE|1$Ad{NT9Th*oG@Xa&8%e; z_VgsYv_bRKV426=Z>r&|Gs2$*Qy4s{dhybyk!4gcz$GeM{>pq}Z8Vb;4~sABmbVzh zc2!km+I_y#OhXlZi4GFy0zfxL64)1}uk&*@3TX6~8|%#`vVXKpJlH;cUi(V3`okZL zNCyHhkhu&&iURu9kRtU%K(k*~iL87{(><)RHp(&fYDkNDVC;*wfCTZp~`y`*yj-q z#qs{IR%3@Yf4z*{?mU%XrJ6Wa=ak`==8E;sdzb6jHf9Cf`!vk)(sQH1;*}M6OmtZ> zv+zos}Lxn<&M`t+ddfbBRnatM9fSUadsGN8}6)-a5XaOw3a0t#D5D;zdotU{W$UW?##1k}u z1@PkA@{d5_Y~*CrkJkXJu`aNs1>P|G;@Vog!e*3*Yz=VEv5!6c$s(@lGfgHH)i3mN zjx7l%X1K^useTpp9}R@1qE1q{f#s`0V$-+4r8RYnU9b~Ea5!_|YvZ#FB|^QO^qiKd z>!p95|M#U2w*yfWoqf!29-GbR$3Oe&LFa#D{k1;%U~=yRAV7KN;rKD(8I$j(d>EH)cv%%N08FFg~@+I+S#}qT^HN5al3tep7{gRUvcuD@l_8 ztc2rZgqC8%S#zNYjFCOWi;=Zgt1O(%xbD=kohgr6)-c6^_udi6IZ(XfUTlSXH^eA*Y6Z>wIHvqF z=MCoS$}_2s3Gs%qqGMt=Tdzw`P>z#Kfmph*Yo$HU2#Gce0l`DVJ$Bx^r1!jb_Y(V{ zjZx1@*2}!-LSrbX$|d*av;plqRFfa21F~zf0T@QC`$wQy%OOo3ygG6mGh` zZlF8>zFFves#7f7ktv@2>zx$A*`UCJZRXZ=2_QA-fr(Ov(E}t3X3&039=Own^C-#G z>z&s9{qqtAGK(zXONR7)CF)~-ZYq?oE<8+$a~||i+(_{KR2!!hFZRMRx^pEur=IEx zG+bt*!b3KKiS|&U20Z2~g#|Znb8FRqV_?b+<{EC4=$=#H=Oq};Et350kyTr4!gN*J z)t|7Zkn-LJNW8sF6%N`ot+%>nQBjt(XOLH#K1Jv7SWi92M6p_Tp;+mlV3usQmx^=V zFvOR(#>~};wAst!TB_VLGHOb_*i&B$bI%!Fm^mjJY;r>MbC^(uOfzN=MTo)o&N)Y2 zV2;hafNM?r&_>jTCtol1a58%5UNu*pcDIS`R9jcP($r0`u32LdNV9MlGMj^CxL_#z zcBG!4unbMwgG!yK8YrAsGz@OSu2)t>c0H8R=1TUd`fwro)`t?%t_Jn;MM4zOh|*^PueMg`UW||;plO??B@D|ljjtHrVV_NN?)~nWVte}v zt?C*q1y(|nK-5N<4r(~7H1@_S&z!DFzUjW9-RVvzS0v~7#l(1=DZ;IU_d)G3=IiIF z4q3RG5-{)z_HkYIM;OOO(ES+|WXypDcEx1FzDW za3bw1kZu(p$z0^Gw5b(u9ao)A)sne~syiR(-m}Xbi(#mzr%YpcmE@!ScWp#f_S7`a z8Ohve7fq4bcp0>v*uIeY5N3gDdP3+$i9hkEKg0Jie7xe*1ifVIKZWk%@Z0HGA2MtO@fYRSJAZ8C0h!9`2>jMN@h91ny7D#_di=N0*78Bq%k)`nOxTLrr{NoNu#pCxqt&X zhsuiJcTd%)uEpjX&K!H{*ke)%LVlY-_Ep+oT8rsPT)5T*fpVXRfZgm4kKYhi(9h8q zbs1Uk9A(-rb?B1$$evOfJA#Tps>Ab|A?3@_$YVCv6OeF{!dorW!^a}Y8-@W2!KuPT zQr*Yo5Sni|zYQ1zvQsTDuGSn+e=W_1Ff1NAU!~dTlfbY#!&5Qn!@DMZ?w--ZM^+mB z2fCf-x}=onW6~EjX-JX;6wwXwh|r6tx4~PKXWQAjJq!#bvd*iU$z_NbvR&H}y^(f8 zFd?{%x}!(0k9o>QdfRJ{o}l3TZ~?=MFwAIC`$@n-qRQ>4jVr6_SSO(#d;!!`ZxiGN zt+h^^lAC3k89waz+vRBg^YD>=JYYi^`7fg>*xJirGG9o&G7VTNaVI;!#x{i)p|}JYdaN2JDp(R zFdZejuk?I%?C@GzghWhC{!$nC8%g3zdG+U)g!G5hzzDR+L-(iDttssOa?aOk{p zf_U6~2HO|C8zL`2;=u`eQTP;*?Mrkb(Iiho%xuOHC<1wYh$NI>nZCz*N0j=Q)hn8~ zugkp8L-gPm`QJC@DWv*5gVMU%;{&ftMV~EX21x=zqesRd*2~nQqibGYQ9%>TO@XHd zEr&Nms_~ZwWRi`A! z%D#>rh%EMS;EI<(eUWjOMeMocJxnafgr&J>4=leI0gE*Gsb^b-Vnz z@BJ>%eJaB^$9o4M9A8Bro$$0=uH4utB7EZd^z#Uz z6WzG2XD|U(Bwj}Xg$4jgJDQ5bLr`&cE+7zFIU~Cn=gU6XuFR&midjwb>zw|^CBS-- z`HsDH9_1@iWuQDxzgf+BgKECU*v#teXr-xQ&c3)3UAQ&JtYV4@XzDuXSSe<1nj#+4 zl7zUNuuvH_+T6>TH1T43uQkRKE7QHaB^g9BJvJW%F?QHF?j|N!Pcxql$|TTgAe9y% zJoONg5*fYwTHTiLGC(QiU4gpo*S^V)2iKx&+J(;sZHj(*p_kZbuF`H@5ptd8VMnn!Ik)~4z&16W{5752Q|Ix<3QlbsVONv1 zqR97blHEzWCB@{I|D-cT6MEP-a)p75@1A#Tc| zWMU>Ud&bp2u(QR-IrUbp%#I;1=>t~rF~Y|T%}y?c+&AitnGyO#&?RcFzR&&vaXaZ< ze4)uWetT2?<=yy|PP#YRRC3mcR*@_aZ0#rEHSrEXzcCRDLkQ#6)s&N6KJHg$iiLd* zVFTBt&Rd`KdhYo8Mev7ByS33{Wr>m)7#mcXPI7vJGgs&UNs3 zNZXc2Zx2s1-0%DLwlBr=<}-f*U8FxkoREg62ecjp4{n^O43i;ozq6Z&Q|r1JTi$$r zsvVlnsqPyYbmJx#)tI$aGZhH_-=oxVt4^q9@P@IUFn*o2O zCDX+nfkN$|fVWiupmxt@Oqhp<&3Q#v3#4!+JLbWAC^K~X9OG;Xt&ue^QdLc83`O@Z zQ0>xgh~SAk+wa208LO!1l*cAHDx1xPT@3g6y%X19oJbLC zk_f@Qm}H14O*X0Qlcn^F)m~#+G--J7af-UvpR|vMte4}kdqITag{_F{gcb~!J?sZ( z$*SeywL#Cpb*w4&!pZx|lG-KNcb+7q7;vvj(|?@+H}QMV7Ps^=xna4=yNn^`L$F3Y zVw=jROJyn}v^`FxG!M88;$Cs+3HgK0QmgY}H#aPeh}fu*60R{xgFIIiH~T;+AVZ&LyD(-~oMNv*u!+@f#Q@9kX~KTv1RY+M5_aFS{;RX{cY|!f&W1*VM~Rz(Zy!xQpcAiuICKPZtC_ZJ zgMl^>C;4AdxCrI!q|t;2@%unWoMW`|_QJhHQ-1!JqEp44vv=#<7vk#67ZSpr9PT%v zqxR~l2K(OSD%UJ(p`10-?;zfvuWnna-+eHbKp)&t+`#YEjN$K%tmh-3^+&hL?N~dB z7Nt0!nT)K-wnrls$XmX?9M$)(7L+`X%ika|zOE7vg7^cRkiN+a&XF1q<-&5L;EGL_ zYk4aZeXl+ZeUF0-T-7t7;`7?S$E0&i0n0bK9)llkft7)SNjeKK7V8Nc8yojZe`NYd zNe5SECwtt0KCAjt4>_l({~4SeKMG7re*`ZO^DaWpYv z;U)RTk&fwH8E{t#CtB$UnQvSRO0yUyh$ALqA5~(vzj5Lnp|?5Jf4DyFJ@!)W>qU#b zV~71qQ7l=fU(#vX&}ceYJvtQv0+Bbe>gCAclrxhA+S!rB1?5pCJD3Undq$p{rEC7w z$@$<3aUa_|CDv?FepBDB(<<%7{h>JbU$1fZo&lWKKUDMj!vI5fk=pww5c$-T^?S4O zR~w5qmrdX~)xj1%gL2iP^e5oDU(vUR*}whsd)T{KNHDY?sXzOrjX3?6`U>msKpOiW z4rOD+JMNLWE$t^TqZsi_=xknJrIsDE2}^57*l*?W3M)JbtuQ2x(~?TVXjZ_hY<&K& zn0_8^Wf21OaCowz9CDek{9dJoYx#Ab-hV`2%Rw+dLWY%k>+xQWc1w ztQ+^R*mBGnyms_1I9dQ8f5yi7Ff+6pHJmvqo8wu0{MB2{SwtbFPic90_xY-1%T;y7 zxq|+bi`Cv1?w7NorM`vyrMl(MHOo!qe@^MwzS<#=pya#3`i-#db9sOZGhn^X&SnbB zM3?@p&NZT$esHECRq)aovP^w$oU9jLe&Rt% zKa?x+HbTUlXLK}P^o%W9sPf}Z7E_T6G%u>GAK)A;@Z@M6&CmAI zm(HKuc1YiRa-eh8(TOg2@iv{PWCOpu;vDUI08V8V7Q@?$Wh(2+xMaSOQzkFFSo%Kt z#>Xc267EhW|IubNFF?yKM#v-Hase#F;Q0&>@Z44-ZPMWn=y#7HpY~hwNgv*%o<0X6 z<*7T`>rh_?f6zQWq+wh@kk=VTI6HD=6wO#SC~bT^UiRRYL2#y$Y|@i6@pT2uu+s={ zd=Z)mbHRch6K!ex%E1gB1!bQ_L)JE~?w>07PCF(-9$55qtlk-e=LKP0Fcb0%{B6zH zNc8bCbubHD-LSTDP(#VVKcvTK+&t0K^V+r{3tj%TT=4OTo4nRm;A8|~X)%TsA}2CW zmyOCJF3n=1czPooqg&mrX69R^j}vdjpX!wJg>D-KcamrHFHjw_<2d)8FRrKQPRS9Duc(+x0+H2GaRY`ePS9&|FxyD z+WZ)iXM5DaW~@l_y4iJG+-m6slbU7M3>EqH5y;h8eV!?C0UHJ8?w7R^f<~D8>)f^BbipQ4EL1`c3pkAJsgQQOJ16uDC?5!e1F5c zk{`ZyS%4exza_}eQ9mGoK!9!%O%bn^2T1hH(6r2Pn!*FM*533aC8An=LcYz|t=#3; zksU^nFJD#8B>GC_cZSBQ@L@Irhz>3kFwUPuOW=I38}Lz=K@C|_G|5=8XZqozF`r`m z@p!l^RkMSjGR16=!U!+eYr$a~dzoFUnVUQ~TMi#{eCYUii;yWjT05QQ8rv;R%1JKQ z@z8CI2fbl72E4RnN+)C&3{)&NcmVO_Gca?61fgUW6KBsD+LlT6C233lORCik!@F>+ zTG?`nJ}8!lPyjTey-tdwa7PpZZjl4Cl2f;p$QAqb*uPYTzK@ zUYt<8L}b~9)XFmh;hLK8lc!iO-~O!jij|I*Yj(5)UGBW0>y68sYZkaj&?p+K2r>8_nn*^9#4JECb_+Mi2!mzNA1YkoQK;XCPCEXij-UT<|2eW1L!c(=~T z03V-GL}2Z0JGAEH;5@wV|6Co4jW)Q_6}tJZo`ZnLnE`ogPKxFfLTMB!NhsADMwsUm zy}2MQY5h3a(ep$Ne-VT3>ujfci_4-xbiHSA4vi2-u8b|P$< zBx?Cdf9{8wWfaF$vqsCQ_HQgY!VIK>SJ9wD2PpZS?f+r#y`!3X*LBfQ6hR=06sb|F zQUwI0NU+dEL{LF#Q2_yIQl!QNML>EJP^y4{)X+N#9Vvno=@JrpPpE+u@BFR3*WPQb zG4?t8oU!ly>;BV}!Gtx}YxBC5L0wQ)ddAOThc=yToM~-yu z^4A2NcGq=DR{1LsHd#%uBcw(pc(V!env>9zU##Y*6TSL54|e7E=PQfR2n6LpH7rC~ z4cmSR&9;^a9Jx$zzS8QN;um`FlyLRyc(Ga8_nA_{nV5uVPc2CKD(aityNmj475H&Dw%5*9&WcBZL)B~ zrQ6>fWlTtA=CxOp_)aKGI2D;2s7h7*XG` zS~SkgFA6;`ML%P^oQq(hc#R@t4ebh_I9RK}gnXs6h}zk}?l!qIrt&;#y=y}4M9^fJDPC)Y0l!C|VG>6YZg9j{st*W6-6#F(D2AD#l09XX7LY*+6XX#08|Rrx4il{29eca+Yu#3U^Qy8 z{{wQ)xC~PAN@;{7i>xFy>L%nLKQtgIo}g846Y@kRmOhzd`b@xE@z*@n;1e&)w|R~r zuZFbYJ$P)Gko-`S!MD|@7{Uv(h{w8mn>@Sr$kp&YigV|5 zs3h`DD{`TS7OKKzf_?@87!FcGDgf(=KqO!KcV;x*fl3?d=u8!c4B$998O#8`h=V-!tS{J_0i>d zBLFkr?Hj{3HW<2N&?NW=^wb3k5X*)e*X9tMz`11!KGe5Wz=V~!v;B=>hrc~@Cke%g zoVX6%>vMtuwKz81;E{n@ICMiO^VqH$HJ$>Z$RPRPMg(C0SH~w+5>i{Sgfu4;3;oj* zM|ifHjT+}&SLkoMN8RK{n@|oHsN3LF%pHK@;rPv0vK<%tzFOJ%o0YzAyn*PQ)<{DHdf zOM%TbZciQ@b_)p)NBW191mroETS+PH>3fan-E!sKMZ9=Q=S+3NL*Hr2kRUjqV;KpB z*KKLG=r}+?$3->y^t^~NY2Hiv8jb1-i;osqJ6XCLw=S(oZDUUu`nZ#=XhY*X1Zu{b z5%a2ywAQk1=-t4IWi*&;j&>S=+fI}JnhIOcJ=}HB8w;|SZ^8kR7#gEt*1qI63~(MN%v);>Vl!@J&rp2aG~jcG$z5aHsGJ8CV)m*p7=o{R4hI7C zFH{&3heuXGsO-bYITVnfEciqJbpV9FiaFBHD+hYxN&>=slGC0J<}!^H{)7POiXmMx zEt!Xf@`e4n>P@h*2utC0>50EQH>-U21I5-e(%)>Y^M8wp{Kd8BS^$_Hl+bMiaGI5B z)MJzcAjw#O2KRbH;YDe{dK;7`v1%4m(1I58q{bo2_3qxulwCbfl+0|p12X%@DusPk3vvAYai8O%f|z>S+BS#%z7I8H?s9L06B z=I7+F3-VXe-#`t=1VhRt+G5Vbl?m7grQf$qRgQl|@_2l(54o0@r$v5rSNfG=^y6hz z^&3y18!n_B8$&x2!e-W&rh#xxFEmf|yEv;Lq{0j4cdyrqJ;?I|Pyeo=^(p zwc5;&?1@%~;V&00+uo{x`~b|ou-(o$ShpV~6e@R?R087){93l-Ra6kL`r7oj=J?9K zbwK7vST%Cv*BtVlHRR|1Ak!?Ye=2x1X++mg)Pt3Awm4TLGN_eFb+AU2rfS>z3a%QlP^8P7 zYwBu7t%Tm(-1vI2_EgfX^mz4)YzslP7ve_gv75L8@o-HR-xMdmtzydcc|&#MChqd9 zJGsrZ+oCQXn4yws?91WvSHa;l9?~k=jdZR9eY$cq*R)sJM(36d8%i##(%S{GCqM*4uZ11tc~qrv-kG zW-|06N@8(?8-AQJY9wSgUkIv{BhrR8IP#8*jUr|zqvnAyWp15OBqtC9<|P7YCw+}* z=U^X_A55<5*w%ngREdQ;ov3+}|42Vn1jIlC|OXr0mQyz&H+t^wZChIq84gg?RJSH3yaB)5 zhvTb%CI zqCf)hKUi0f<;%mdWc5RGEq~(CVp|b7b^LnKFF;{%Zxvew?nF+(@UcYG+HA*TM!;LP zMonp=I{Lsx^T&LKdh8J9GsmacON_RPp6}TFxKjz{*tSgYAJ7YMSc*@$QseaYIp3n& zk&j_k#Zz{v8ss308;e0gEYZa?=d^_CU5GIUQKT@U6h5>Y95l<`L`1fy_DMytw9LHJ zf9A-jT%Mom!_^com$LD&?rCt~^Uq9@YDN>4c+{p5xDCqWFe^y1frP=uWENJAsa+^~ z!-bvziOh@dbU7fRNgx|(PMdG2JHHUjh-ow*K?h~$L`2@G9lluIlw@GwLO;xC7iX>i z?tKm2-QZ90>hb>L5r}RiaP>}`J_ks`RsjKpPx_3@WHpf4o^+PIS|^(uSu&GtGTbEH z?e+E(yc_hkTZ?W#c{7K|aj<^(C-Al17_TLC0=ji^z5th_sEqh!9v@kB$dz6?5lPVt zluxKY;27-Wc9-&)wH(kR9%`NHCPdL7mJB4i)_R_GDR5+7>=rBe`Tg$Gqu_V%Ub*i& zOOb)dnx(RJ7j95PYW1gG+X@QhIVjWwIgLZ zYw44>vs~cG4SSHMbqP@B-X)aQyAcx1fspIt*);&6+b?Q%Z@Kv?c&6~RXzbvU9%iHN zI1LJ@>Us^EE(0NnM&_~FR-k49DGmn?ndK${aLUCJ-S===ufFw&<)1hU{b!Lk?^bq{ zNd{eb#FX_r@ax%5#7&AJH4AAg1%B56-B=_8I6<_E6K?j4|^>_ zh2JFp3Qs;A;?nq}{n@x5Bf|{PBbE%5K7DEcLNl80rJ^}SdvwoY6RbU!HzMfj!eO90 z3&)>hcrJhK!jAV`$`0GD_9-akTqWM;UDM;NB|_~7%4N@-^>er575YjhgFGr@RRjjb zJG9)ZRnq1JyfVvy_P*>CKLGLt?5%)sJ+fzVBxF@FTHfo54VoN}z z5@EO^M=ZCO72g{F`RK(uhfl52(wfgM2prvmewY(tNt+wTBF<1t5L`}Ea1We`zduusUUjIaWV7K!`^ zbgDaOlkX46IC@};mqRn0q`>X1Az9e45D!AZ0h%JrmtSY(MJ)lCoey6NtMaLYPl-c2 zmb6MI_Kbt5IO{Mn)b}jqI!=s;Xh8hJyK&PY-+0U)eo9@|qrMA@XCj`PV7==m_+;|a zog__z(|61ao+u4@TRRhw%!rN}h;6i+!1_*VD6hlS{YMWqGn@;jG26kVF^{QXO>Ea2 z*_f&Uob&`w=5W8iQ#Oz+U&X50?wvpmg9{J2aaZ($Q*)(ax0jv=CR%elpE)M3t(3=ej zw}*YMDicdL6U*k?Gnv_`UaT1@2O>fi$Ld%rsn7DqY-Kn@3Kkucs7+= z;}rfv*>Zj?_w&*~Kk4#fk7f4yqjASB)djOj4t)XRs*1APT2DTuftW-SR-|?x96V}( z0$9UKaCm0baA)>JN!zX{f+V12np!!Ow1QLe5%}Zd#g1shL{{iQy^(} zYY&g~*Egv7c}00JsY_4nUwF#8Yc2#KEK@icIvY-ehBc`Z1KN0wO^X9a=W?o6y+#9@*Rc~E{C${4tQ4JTluKAp(gg^lM5MRle|yfoVPWz zz%@eo5pA$ap2*Us2St;lr1tjOogUn@w`^%mt(j!(bf5UIzIwMS!6s)vmp##HVfupT zz@8qTi)pul;j{tBt19NKleuY;(hvNqnUK$ zCY7u;$VuAu*+Gee&6Im%+y}KBcYh{pJ}mDITP$K05z|NT`khCmJSB<^w!)^Mxbg0u zt4lwdq{z1%lVaDCv?{x8iY;{o;wqJYEqg`8KNPZeHd}KU2+EpWJNxo5<#pBJ&-`S; zj@X<#VQHIY7s_~-LGxGXj$}NE;^X+two#G@Ssl?|dtCco?EQzlaT~tZ@v7%7fOi!h485MDw_;V2-^*c;jx3}^>h(mSxdoN4tT>UQv$ zm4!UtkltK~6<#=aVw-qU{nBPQ^~@LWAd>WyA9*aJsR=~+fVKuNwE~;O9{3QJH|B9a zVC@+Kzqa>t$57M88E>?6{2~YWbg)+)J`eQAd*}mJb?o6l_Ayc_LNKCmT6C1hU#udA zzQv8&pYJ*<&U?&7D-vMWOx)dWl^P7T7NP=$hDZoslW>O2u$zW~UvbY18~w+>tt?A3 zDkMHV@@RUeznTKD?A&4?mHU~UW<>8`Jh>6`0l_h}j{@KN`uMSdsORjgw)ELf_gB4z zjEbsa_Y>*@Tr?qtFM&HN0;B+*q~sQ~6v^-PTr;HIc$L}C$G5*??ZM2;Y>Ur~U;#Id zkf%Dg7#c&a(k(*;l-z=?)y61boLmS{s~f1tStO1M|57^7qwi3Cnkp$$bGtTLqcVqn z(k7UdC!=nERZ|tw6-z=GasMDIymZX!l&=jq7{+l&Tv5OK!bZFWS2uOfvrB5@bmr0Z zzwFQsE?NP2&kM8!5kkqa?}Qy(vqY|TIxuV-O^s_)(o8;^*uCGI#2@CJ?z5wgiPXXVi9lSLB2*}Y%BT~|>n zFI}s0S-{Qp;JLUk=ZzgM`MH9D8(d_5RA=drx#^WAnd{A^6$d7#RZCl)d`nqvb#{Um zvTK+bzMhoOAGy6`$;G5bPm&N5L;pEYW znH#8&G*REw2P7F>W(0r<-%DnV!;(-P-bT2G58Y(;HeWpSyJ&i$Fq=`YGQ$cB;<`o- zJ>YF5S>UiiYM7W@;;+yT8oH=H@kV^}jm5{-Q+_As1$xQWSKo6VeZE=AW7ihT)CJ*$ z1N!>;!OlkP^l9Kx4UwsqJ4xYBnmVmhf3tFpXntqJNc!dd%2S7xyFq+hb|(#cK~N_R z9vtA-MN+>(2+q)mVs9Jkx}L*eS7pF4=l{$p4<%2!Mf7Zi@x#H-<_8(9OMWHd!OGGx zYGZJE!rh#$@9*cL-#?8kU_5^Pzl8w*zokX_s|3f?**}=j#S)nYN(Y0>I zKlYU9B~f~IsR5@M8W-TKsM1EZAHGl%VKQtR+xs;3qn9^GKKe$QJ;Q|}u$Jnevdpjh zuHpBr?Y*r8)C-fusv#ol*tZx!EXjkNU2j<2;Asf%7e3X&GA(>_I&ltSjpQ% z4!Wbn?sXVlc!+R`zG`Pp?Fc1i(&PA(#`RM=ALAo_S#2L?)M~#9!iTnd*N~qQ?|okM zr9@>(d=%d+#$)SMwz7wtvb4PT+cCR64fI^C^RL>yvxBU)f zXb&z1vkpou4ucC zfM34ttU>FrDi|S^Bu5K6M$%3I@lvPRGIrxE-i_UnNUfzhIr+ zjLwY>T~4}vSc@AE1x|FyE0^nbW0)d|2iU)V-0kASHBqO-wp4jO_oM7EC&)eR5EY7a z<==kiZ(RauGdk&j;43G^5LrB?N*jGne09lvte;e0pRs2AG5$7N%qQg^9q>*SM9ze7 za(hZi_oP>|>F^Gmdk2@H3SlT{i+?4xyF9NFgq+LZLv}>@;CZ@a%nTZd8Y5Czb3q-y z-{K)k5l)Y%R9z-+)IVXrr_V{J5`qw0QMNucgtUiF7%b1lg>U%Gxt zS$HROYct|A+W_5*?=x8C6K`I|6;mBmVHb}`{|Z+n$%|nlHD2T1+_~<`|ARxW#$tjRWzjDu z%*63jdA>}c;J#Iea_s4p@fK{TH8%-2hXnRZ4zw)kup1#amTS=waym<_xjgWwyvIiX z9q`rlyI!mM%_L{JA21{ZPQnpjbBCch6{JD<*s)KTO^u0)ieWb zNu?2CDHv7_dz{g`%u477sIxlkj0I^Pza42GGUXIOGv_bJhbgpZC%$Ipt3>~9OyqeX z!VE(x^LYtf`dMYA+hu;e=%oRp3YhgnWl2eYT+Ef*!?HTVcS2f3?=vkL1!^i%j*GrytfP3++n=iB!9{mnkD!ph7xJ^kh&XC@pG zq7?+4&!_=c@cZYZr5Qg(;_oWxWxQl7^q#AFOHio=jh9liNpEm&5s+F`IE86`kmDua z$+vd60E-pv=&S>}gOAEX-}>l3T^11loCgEUijnP{h#$y36O9|d^C1AEXoK7VA4Qsq z@9u#OVFU1Lu_3FxJQm7)o`s&oJyc6??hjh@v-L3QZ(;Z>EBJkGo*vyzI!C@kI(-lX zP&wHveqAMFz(@47>4#P1t7S@EJK?Xka-+Mxv$~VQDaT`g5hG+SfAbMR%8+D--+W+E zJ-&^KqWJiKLmMA>#q^%n`ohqRCa87`N*!=bT}oVvegBB}g$9VpW!ieHYver}q z0#2=~0DY<(FJsUyVnlduB(oH!66f70D}Iq-ZcZhw{``VjDY6|j4OG<~iH9^c;ORg6 z7*ZixKnw*86o$wKH?ysTojx?F=KN@?^OZ4$$|sbW>3vCv-g>ipY@`Lr048LM@?Xkq zI8fCHGX4YVFsnceW>#Q;fX}|!vjYtf_wxcGgJE&7%G+fg`%z|#fc*w$pC0L_?4e%~B31c+8K z5pZ2ujK4W&yhY!+h3WQlU5z1}@oQU(8EN;KqA1?P@fH+6MIuIzq)*m-nQ?xs>501& zdrXmL(zk>-g+{TjaY+h2!Ub9dX(39hK;n{0mRLaurRt7CUs!q5mRrYSwTov4b9Hv6 zE42G-i(&FSECY8_J$q2MgJ^n#8_xh^0G-c&Kv^j(TgWlm3}$~BOiL~O#;^k8nu4DI zAoAxuN|#IIG)@!7pNwo)GhYO9~M=nUw};J6OBu z{(!;}?I@#tDOmC_#f9j$;YZf;#hQ^qa~y#ALNO$=d&jw6ePf_v8rP*)Tjk`*-*m^5 z@4X~5%avhg`asRtakMZ{b*^!?mL@Q@UcW__z(YS&nbo*hyU63?sz@)w^<@@6ezOrs z6S0x0BF4&Fi_E8PN*vIWg60R=d=V1WguxETNgb~zg65BCGb7o`g~dD)%k~Pr_f%s& zqca-GCrGF^7$^M6JUDvxD$y|Numiv`D=li`!HMDtc^1mtmrRU4#~tJ-UbLe#bH}2a z@()T!;l^ZV5|ze_7#vgfUrHpPnfFisHoeJe#xtNCq3*|0QL~x)5E8G$7=M=G4EU$p z1R1x#+zy$nY{@t`ni#+LIJNKnD+bZpo$J#&?z2!8d&)_4A}R&>0x~7hj;R6%;?WT= z((xr1wQFj>*7hi+_u8F5a@jqVR&Xi6BY(-1VfE#I*&*k@?a21?C}>`y1Mq=B;n1ir z4t$|gs4ev1V)x>m)EXoH+WwWoD}_c9`>0@KSvBkk_XiXsM;gx_vKmm)xLYe1!kwCL zSd)sz5N37Lk6$hwO^k zkTIkABIo;PN-I^y--ABwqW)v#>OXuCN;^CHwm|p)>a#sAENQI&#;E=0i0%P*(I1col(-0(cJG;ATDZ{< zG$Z?mG3Y=23cAAVHUpUd92)wEZ`jNou6oAv|Nqke|DFCno8G7~Ba+zf;NKrJIncj^ z0Dj2C#Dc*5=I50+>$~s%r4Qwrq|T5e_`!bsKiRL=-+PB2S&cCITWRBzEOHb&jDCsA zb^Z4@z|{U4Luopc zSftFAEG2kLM(Pz~6dW_NxQN)!#~PV}FGX3I8Sg>Qk3+vH?JuTb9jo5WA^RSh{Q;pv zoEA}0XZ)r6tT{Y;q=CUDJO7j z$hIW^q#Rqj2G0v|O_Mxgwok8_GUQ1C9JJsEb5Nk=A(;w00NzPeb*tM$*hBZX^pK0ASDD{{zCvBZ*2!Tet9FX5*HhIT01p6rcZelD(qsS>sQ{M(GlC>~A=?TF5GsQam6i&4I-=-- z%P5~m9Ra2<J$u%}H;U&lm!|vc0_cj=0yLuX2(8i(L-XxsK{x>9tQRPh6n^kS zB{ipOsw&<6k`WmPr0sVO(XpSREi)384hrS!bzlT`A%=XoW$u*Rt}YiqEF!iZ|NNh0 zKmHf3Ie=0w2kAk(km3lm9B%b>YTeu~PE2{cEVn~kZ(!khJpI>#1>09nrrkzmBQo)Q zhBeW{v+}{woR5ceE53mqHC$q7^V$xyK0kt%^4-SwVt@A_iS%t)qvl$1c~)bKmRPA< z?`O^z+HOfJ_;Ll?kR>UyBb2`w3azh{0Cdf#-Rkz5zrG4c{~$=pkUV}$MRr+(t;uIl zX)m3VZWq~NG@06l0c}(COC3|TPk)T1x-X@vu=XSiQn z19|8xdEOmy+fTnUt~WgAlsdg?a!U9{Qv8$0l9Dkddi0p*$QOf?=k!RnHM0uD9qj@V ziVhzUT3dEqXJGKs7L}7akQ!rsj!A8}%3ISY!ngbM$NL9~zZYodORz_>+q?ck@?<4M z7ufRvCIq*wy3ErjlNWQLUFCH^`Gn8e*U;{_iBMb0OVaM#;M*zbE0!0~V_WydGrvyH z=}Qm_p3?2$nIh*i!U5X=qb}@}7Rk)iCxFP2+VRkN!H)TYzB6t}=H5B6)&AX7B2kFU^T; z$C!0g9A!IYUeZRi^6s%w+#e8o{7{b{QaYe#?HG1zkR}MHC&qN5IBpSx4wA+3NKC#1 zBiFkr1&?fpqm~tTslG<9e((6CwG;ssOmV~Y#W0g{?u7#nbiG#8=~DXnt&bunc#*-$ zjNYZ$;hVXkkq<1eNJYG-wMYlPNT %(P-KbCOUFSZSk?o!lU@R_Gzd0F{Z?1Gv*SJtBQKfd1j zN-y=bp}GcLlQeL^Sy!9>L^N8PH9GQ2Z?DHGk#}Hol0+BsWK#h7Iw@oskJ{J}+Sd8F z{R@7rGhIl&$H6SV#WPUTizfK}PBh|)@t9h7?W5Jjg*WsaxZT{o4=*z$zScw;UG|D> zG_W791Nv?3{l2-4!-Q^^xO`2S?K6?l_>h|<=KJ|!J;aN9?p)U^wG_$+)QS`i*0~*u zg}^1QPCeFtlCx7SD7zxn!%hs*KSLnaUQkvpn}5d=GYFdsIM7OH`DsnLO?r{%2ENT& znmd<*uiEqsQs148@tem8d zQvk!kaH&?P-`}0O{@Io5uL?gZ9qve$1N?Bph)4rc-@L(-{Wk`>)fNE(Qeg(GYs7l5 zPc0s&Oa1MiLFG+a_>LvRK}WE8EFdEcItUxzL!R@URd2M?)jxf%@0n!VxOd@nXVXFs zM_|Ic+$SEd+G|G|-UKHlK6A-kEi0+cP19$UztE;D@RIA1?o-g;mdX}@N{*V`ZNpY& zzAJ{a;it*XY6I=Y5hiApmju6tUw(FK_IcTq>5G9Y9!ys=3B6dLigpeHz({j7V486A z0dPGd52^8(7gXK5jU#xH=aHQ^2I_*>Gl(T^?MP zu(|nz8j>{5CUB^&u|&Q*sA$_&*rXVHMeTXBM>q(W!kLwWL7L|%SI21Q9TaBI5?KcCXU+=jGxQ^r0E)#kufMpUEK$$l=A$%SF}vqY|U zIrY;R;gDf81LevvnrEeU_ocVLfu(|_rDSo*!RJ}eI&r2G-_LJIjjw#6N8hfYMk07> z11TbZ}==S-Gnzh_F0!hbip_ z^T!h%u{T(4Ug~nb#zHe5t<#~>5Ik{gZ4_*YP=+0tg zsYf68oL^l-xn~EeLWD>+r@LvaV;a0ZZ+!B!i>90F8_GX_X$Y*<7mo8+NE7k^-#jI1 z_MRd{jn<^6a5cqP5SD_d`KUbRU$4!`cC$23VQ%_s=@lMB!U-8pYj-X&bTzq=HQ@rJ zFuXeSyl+uEcP-z3pgVik`72hkq^T=+3}4Q9s}$Ep|HyF_hxMw zbd{3Bv4=jDn@){Ay2Rc&_RmKTL4|7U`kK?gh6N78yci6z7AJM$u+cFtvYB`kxKYv2 zULwBsOUF?5?-RUlKF=+1oa~y(lnL1XZ&==1^SaQoG!wU8RVm1N&C#!g?kLYtdvVdp=QLsb#t9M)0+zD?8xJffZia7QbSO50Pn#vfV zFB<*e+AQ+K5BL2|NM*|hiX#D)rUk32QKW9m9MI}IFFSk96%>rU7y5zfr^ZB|dKT=G zt*sY#Q<5&2!)xvMUW6;%lwEX&DY)`_L)A+Yi&PlS1 z^L4fGU&1N7W}2q~SCg|8O#--W6isjqW{X_D|5h|rPC8pzUxA@_poRN%hSOFNL}UZt zFWLP8Jy^^eJbWd8Y?e;3AtcsDYx1un_%j~Q#p4Bk>Ps;`s{0To+$RK*{&H@`@D--g zr=t8v*I^e=Z>_8r~i6CmBWeXymuNpSu__F1xV4_h>Ah6Vj1{{K;$nP z_YqislJAXN{Vgj5SM>=$n?zKH{9h1Gy#r1eMoXugD?Df&B(vxh`PJF>zka$mJ*w90dpZn z&s%IAa&E68q)iIUbm$TjLrz^F+z{0E6k;W)yw?<5(Z|IwtSTRiCkj;bCyn(~i22QY zUyyUI6rgK44+4P%tvKlj5`cOu9ePp;$+bq4`AN~nBUyfw^pEp!AK%O3R9@13;Vmip zPM5)xgR`FD8i-x$60-Fwjb(P$d=Q_>H1a@$~|8apn&J6qH$la<2OT@e6K)-{$i@ z9$4;F$&eh~Qo2%UIp|Om^;)V=)Sa62xV9Ab?np$?f2@|GjyV7V*(_cR!Lb0jWB3N8 z4T6Ue@(-?%j0i^fnM_VJUqqC+>eca)=udX>c<`)Rqv6uM9fP_J2L77)8mB3m0!4C2 zQyH!@1~>+WY^`;5KfZ02GGHY8&|yX|G%ducSE2aSv(|moePCVu17aq@ZWD|`yfCMH zUrsvjl?Y8qSvVwTYjXq}XDmm?`$>rITAlc}6^7|@uJ5^4H6hd+JR84OS@|y|Rr7$N zI+tvNutistXkpf5Oo7sO_$$(lEQ$}wu@HWRD7g3|B(t!(QC}(Rh5|LiHr@Luysz&9 z(*FI7G^EH{ z4t(|@aI?afDX!`HGe zF1o*;VrIhrLyGbDcqRbqFoeeD}t1vs@=~hpzswZYVk2O+UTQRCe@RfS0F_a+2A;gL-eHP4V`r#5V397nb~1c_ z6tN{>hxe9XP!IX37Ha_-XSY-Bip({fM6DOBFFY)G*m*PEVOM)~eEa7y5KJAmIifjN zQ<4(I%aj5Fj!Yk&#D3qIkRAI2N{V-#Q9ia2-0kkdo`u>&g;r^@%`iZ9_05sz!PTU} zb6?Kpqu!@$6H<&SJ)c&sTmc6c);ldQOZ@3Q1NL@kyFSQ`xO$`Ut)6i3-8X+4r_7n_0wt zKpFcAarf^!DXxDuM)^PObt1L2&4=ip1rxVBr(?orFE-bIg88~GxAT~L;4UWhZrl-b zlXn-cfAZMQNU(kh9S0C}0T3qC0|B_HUbaNe4UhrM8_4z97pU>b6_Yvuj7UEOKyFn1 zr7z$V&2xzFnRK*Mq;I4VTvxDcYLQY?Ql43JeVU(1qI9EJTylI)+KbwY0J+k>gLp4@ z-Xex>)#rE?WQJoq)MWU>+5PvMfi{xR@uNo*!QMnzi6%RqD=K;7n$0n z)mSzl+H7wGgy@jtv#CJAFeMof$c<0!-Dm3Xm)HOkIHD|#}e1w6{%KUjs`9@2tn z!f#NMHJK?oqt$X}*JcIYjdZ9b2LBFvnPl_5;Zajeub;;!(~oj2Tg5<7G1Vb7j+1Bu z(^1Y6Tu^Um5XU~7XG}jt(yksVo?$T5NVl36^rs8_atY-Bnv-r0DB)Jxw@ZPejcGsm zu2(hKhp`nO9A0+17(TVRJjFWFRmYCIAwVhCdvW5|-|J)Fr-izAm_lbNkX@DCouFghyu>+}H9c69)K zS0Qb(KOHKCHjJRCduIRyinfYRo1P@3xzF};$*_1VrYuEZWY-N78lXIVSDGesa{A|s z6Y(2+_4Qf4DmbGsn4$DAch4M4^@* ziTqbmA4#{EQslR!>!p_x)7R&h}mJyT;j3p(?teA#3D3HXO@_;4yFaBcAIR6B3GE zhyzbc=%tu6dtX#f6(q1dAR&pVIHOLZ>j*(#)IB0&QZMSNX)?=BSIN&Nzu7NyJ6d1B zceBIi-~mJ<++f?fg$4FQhDbSKk7r=0WxP`QrkQcl>5Mu-_mObW_P63qh}nq7jjxkV zQ(~h&4c@tcEMTN#IwytqqlSkFJ4;3EjV(5ZpMSI9`0q6H`PXBtjQ}q9cf=tO^hTKP zhyP=vfuAR>{=uaLqK^0%7#;%y=w7I!i)i8FNkB?(sdPjKlS}^tWXFhNS}sACrmcir zp9e7er@%b%UETol+xsU{)%%*&cGzyV+1J+B#My=G^_c0O*)lazWjq_}v<2n_T4J85 z#)NvKd4`Ke48~`n;)kYDJ6m6Dyv_#GOSm7VN;nR*u(MEPv|S9&UK9Va>Dl$eH{e86 zx+=cl@-=m!@@)Hl8-2(P>8sjrX!|@s*RmF|Vk_ zC5i6B?vKY&fTCEu$eaJr49RUf3bTvLM$SnC z%KSJ>Qe<2DWsg43S%887RumWn@25$|$V~m3c8eoRXg~FR@StvtBA2tS^42tftR4_X zPtU1QUQ|OT`Zl3k31d|-LrVELBZ@!NT|#XJ;ijQMz$PC`Q-;g?05za6xoy#qmFY8O zmhj*{eQxFWiT0QV>SNcXrqlBhn+bSK_$*yD!LT%?fw$h6T69$*iO0fU_xy$P^UqbT zNOutGTh!6O&3hLLOot#GjLZxyx!L9zF{i~{zTte6`#}}<`_NET9ezmCv+_^hJxBAf z(iyAb8%@Kj0n=XqoNEDs0{me9=9dE*$pzxyFOcQBe=FyC%*qilL1@UzHXbbCWa`hJ z^8RvNbNYoC&sUs0BBBQjDF9Uy#ZS=PJWYV&b&9V-7<{pJ#+1ZaO~?2XcW2~G;%ayU z_wPGR{!=eL0RR5K{~N_x^9OW4^Uk3fq0eofdG8DJ%D>ZL|EeC7+7Bv#3Mno#cbPVX ziYeNF{G&#$v=_#F#KVciJUl|^0f+x2&{ugyS=|3wZD8o6|7m)5qBr5zg|!MDpUcZZ z-&cH#*Dmq7sORiCwP9;8Aq!>UP~Mef@590?+cp)C(_-+aMRH`{Xgd3kYw6lc15o-zK@GI<1fd1U61Q12j))eq%j2DA5(&TP#Fs4d&-^k znYUv&YWUio$`8JSKdBe$&77H76g@IJ z45dfUWS1R8k}unyx99g*r;Hz>W|upaA=ODmIFkmmPV7mnqyKvwHnEClwjvFk@^``R zA`DZdSj6P)nY7bxEdLLC?;Y0E)~|~OL6IhcbdackGy$cGl!!_fQB*oa1VlipG$AC2 z(wm@wfDi#`(nNXS^s*5ic)KQ*E2w=Wk6@=8Z9HApc_yzrhgs~Ps$2Z4)*I00hc8k;8O+Z` zj-r{;EARA|r5Y?Fj=sjXupSwc_)-E5OkRgMK&hJMq=G6(AGA;sAbBv$!1=!ScfFrGYLkzXm7bLW)t?Tx$7yk*ds3Yw&a>Yjet$?Mt$YtWMD|hQvnN*0Wo5_Q zN?CWwjy{+;IDhLkOa>0_kIV?>Y=jD~Ffq8Sji$La=NY4Hzrs{(?WV8Y%f>Z$>Qt#l z1b+!A2O4KHnSAfMMeLYJ?O_VzG}-Yhe*-McO)5<`VGNy(liVlv0x#h(k(l#!cR$k2 zXAZ<61B&<@3k%lui#hsUm2oDucjyv68yf9ixe#X@)$<75jnQ=6>L*}&kv($~P>Y+* z%N!af{4FQCgekkR>TWj5MWs1%9=*$MC}r2~as@k%)Zqz==12vGl_caj4FilbR!=@T zzGeQxMT3tEEW}~;rX-cpUL1CuiQ=6Vj%bh}S$!-cYb_jmSgdBeKObF65^<{qImqoE+{Bsft2^#0xB6qu7j|P`XT|#waHy96nU*Np@?{ z_Gu?wMLJm4zIi5kJ;yR*uzd*`@-*o-o_)niq(@yar4pQ@?l8@j=lGb%Whg!$uZQEYfa%RPVS=$BB#+EJJwspDf!#0LN4|? zGV3voTc@Pnv|dRBYfjVPR%JnZ`1|%`G!8FGBz=JHFoVv#;eglAnzm2VP&L@kyP1oC zE=7Zlg4)wnoduIN@RB_FefOC`fZV>BjTQz5e^9h8^j@8cqqlH8!{oaXIzei;8{_V+ zR8OOyQB7PkNtP_l@`=#|iA>_T8)XwZT<=W>+Ri*fdZ0!@XxF{=8SCr@geFwNG7+YNW(BVsUfrZ_FbM`(AlDM+TX| zHePzgw1yKk!twXvRPH*PUox@!-I6PyevTdmCQ!=M4s?oN>H7-*Z2kGY_;gNa(VM-j zR(TO$(CHK!ID^736QBnXXZw_odyEFvZH`YU-;u@!ykwsGkAvC+YZtb=Et5 zQboQGuIhY)>~uec(-;k@$^nmNZhZWDRC0ERxPS9A*EzzLv&92|xaMvIJi`kvz z1r6~GS_UF_L5JM3)iF~g&yPgs15E>2IrQK#=c97D>7F2`4>TwNAmWLp1$v0WxWW(XM>vcISI^YamGh20khtXaw#|t< z!6xWYqQUD|dH2@a51P*-1CUK9zG77c5_7b_*%i?4hM8eJ_2i|uK~8I_0%82Z(QLcc z-DeG6@B6HMl?np!;cR3EPGTMwB7{8ikbQ=Bt*R0O>q4;!48+IbqtdRJx}Z7f?heU! zBYY1Z1?q=`B3xM*9P^qdUg0|f(v!|bS;!&zHO(EyB9F28z|m=(s(<8-_(rALY3pT| zF#$q-9ZtOy^iEQQngS`sYvtAs%Kh14?GT7(wW~Ww)jZX)0R=AlO08ND#af7G0qKRS zc(#1MITzN@`GGG?^~Y}Z2$eaFi{1t~u2C^B%^^qxVBKQL1AuYbes(-21a;SQYpra_ z^I%!M>hhg%#h_=o39cghwKXawRNIaz_8eBbS4jxL=|9BSO^wOSphz+wWK&HkUwYO? zZC^y<+xy2u<(-7W8A6ldGnZnXQ`Nrkz(s>e2;#^!ezjgvqxc=*4+T?<8#ksUXnJvbAIy8sos*U?7gZtmPHGYhE zW!Ob0Il|eKM4x7&vo_8}y@PI7mBQ@=Af)nup0>m=t5&cZj*cj zJZFA@nCBBSs~UmRA-i~>sf{C;bSS#6QK~N!b>2RR%{-TX@LJNfqtCe2BpMC*gx7e9 zW+WQmA!uQZrb03UE+!wRd)Mzxj$5|edlKsOXnh=SuCpePFm7D@t~Jj60fd}KPQlDi zG;n}`-uw*I5~JLj9A1C*41TT|&Ph46q{@c-ocgtJ3iRI6>~oo1Kij8hr+bb2E~C4m z%{z&n{bvQjiKc(e@bEut*Zo+V_`hU=2uqI%fNx$x(1Eg&W>7L~`AYmQ9q8n}GN=mm z;nc=i=FNzFeVW-^@o`*esr)1taK6(jQOJn;Sma!mFEdH`J|%B~auY+0Yj~Srr=~6} zg(bzz7fdyiHhpSJb1vZBomB5Sq-=Ss+$Vr=t~db@cwv*ulle}P*`X@expM+-6aBtnnzNH<7!pnO}fwe^P(J% zfv((JgON9@n+VsPb^nlznc%$?CY?AMJ^srBRCfMtb2eU12Do#^{Xp7)mDvXv1^!?_hvVT zNmMhb-WH)_%cjvuw)Z``+YKJP)Qt6+3l?;PKbc}^fC4KN`u+HLRb_;6sgul%cSzRh zC11xlgQeSuUAh+s3|bVV=NL7g)x*4r2Cs9|4?|v`hD<|5sP6typ!i;-_-B8_e^&vj z|M0skkjOsYA8t3*)8qooFkrU?PPH<}xn&~l&y|q3iOop$Ht5EnDm)In0%gj-g{;Lx z#Uo1EdJ5AON$#AE%hxB&G1aWkAHr~49W(H_av}>+PLC1X%n+w<9eW(@;c~|;j0&1+ z4YyvYk`|qPHMNO(&%Xrj{GxlVe;~m1ua!Ky-oNfKmNmgNu7BjwgpI)~qy}bxk<)xx zb;6KU*l{ln{$*FkogoaZvbwB->al@!iRi_wnxv1>K_*?an?>PA^#kX8@(qxf^eFJN z)o{O6N&kgBneka?iPEL?@qIV78-?Fs9Z1Q53HYTz>u%Z@RUx0sS=3tK?O{nzlgcrZ z5xCyxTE#B!I4LppXh8-(EiNnHXbz02_&jzLLny?dSNmskR_klNGO1ayr5_6ppdUU*0`o#Vh zv_cIVijd)rqev?XC_@5`w8E<_tm)ym>nMtN?zq|Z(HS?1Wb;5Cdp2?xzf6e$*Jj4< z6}nM$&NIm0#`<4Z>9r(ec#{vhzBD6=8qer7nfx+R6)1ITtuXY;Ge!&9^(i-q*nmIG#W}{ z-c^+kupWku)EHp$U(@epzm=9nO%iI~RqD0m%{M+VwuW*_ zP|f69l#-BC{za$gFgv@M6%^Cjgya6#rq)ApYWy&<-9*Ao+zZf43UAxiH)}g^B~6>} zOXtz40(6$Yoe7U>m~DopM}ltUTB3|a*M{I)b<{bZ?7R=q_b!d$BM4i|_?rYNAfIRZ z+RgQ%wR=vl>gtmu)@BT_f{`pNng;J&A^h3ZtSTI9c{tcw7;DTC0BN<8{6QV2{#0Oh zxWjWD3Z)!3L0rVoP1rMku}{8tVQ7M=T^^wv;48yQ`#Qj}Wo7$C(X;fB$F}t`Ei$A_ zVsm0w4lRR>gMFa9=T^sW>n|~aApH%J)ItGk+C(?_q2Zsh>COAt9TO5p)*niT>TE`1 zL1AXQ@f+7bi!o&1_p5n-QUWu)UCgjNiVi9p9FmJLGs!A_`v4JCoqG6LXjkx9eE@eG zN&y9OX97|7E-b)psZnu4=u}qM>*cU4`@PG{z1l8E)MZ<Xtl&7fG_)a7E4;u47t=-@Hf6BqXx&)#RD(mC>XEmOJ z)*Jy6LmBfuN|7B-E>P(Yl+OCngtOPW*!Ko!(QK4<)SJMTX+4?d2t0KMt~JU}wu`Y; z;~h1%>=v!Ae`8?Dg~vfnZk>0+u8gu}4v=6O82d7?Uq!e`PM5mg1m$bsG6n9as6W2u z!2H=<{YWLGe*D@Pme#6XgBH(jo(!M~UF2ty-w8dOrsj*@tPV&<{DGZ*=T}W}!k0NK zpBGWt(nwc9&ZQl=8Nl|nl$JjiXb%_37X(2_0<*1@yd z+yt9>Z*Z)pU+hxqaFIVuT|e^1KkV3zZbLD#g*h51Bl6fdz_Bpvp$e^2Wh;%hO1yrC z#X-=HC5V;pfYK+?cGoM1#Dj{Lp3WM^&Y^>oWl@JH%m|uZW!srlX92g@qhl&*i8&FE z%DrTzCe zR&551N(kQ*#oU_=9@rKh@g?{etqv|BjHm^S>Ea{`Q`3TI2(v>+RjhSyTz90i;%VEY zs*7`*lH2KsX<$G$!D#AKrmK=Hn%l{o35p3DyfR=_5I_QNI7_g z78E}qqtRQZHv4|xmR5hAIvyZ9zQ++13jM>Al7xNbAsM+X0Uw9F@pR!maJv_a$Du*|kVQ!P+ zAaVA4roRS`T&%)O`6>5iT)ve$eca^J*$KK%*ianWL-oo#QbwPw6TFot@|@};Yt<~2 zyH@z*=*eXJgZo2ooHuzxB~1PDy-`C+eZQ2m?1avwu5PV1KX-Z(qr1AGO@3x3q5cd4bDh&#>&fC*pDri!>#b8Y>FjU=539CCk z9TQ^7P0m+#B3^*CNinD<&8Et&T9xQsppw1ZaBzYXF(d83r zHY9+#Rf^fC)M!{vLV9z;qo*p(BH#N?L59lbu6^>>(IZ%$_!~LYn{&^Oej{H zdOn6~3k^y|Q#T>ST&N~}q^6<4uLcmVZ@XS+V_v>@Jehd*qIgOY=&If$T|<4`VB<~T z#d!q-?5(RGNz^VOl(YJ@n)ri@oKv_+T^X~e%VyPOtm*Vu-yLXEymdgUtCRcK@Nsyr z@c@Dw*KrdETSbFBv8UJYi7kclLNV8ding`aS7!&f(MQg`O~|hCr>`)b~nl&WHfT$x{$g@ z*F2&B{+##@=d^IgHwXlA6VSsObtr%sERvM18?HyEvOZj}?BNhTO*~O-zL_4?Q8jP3 z0o7S)*hhi`LHLUVBoKvXo@Ng4h!SY)Dl|3ww8XJQKhn^-c4^%^#baW=wDOc9b>4Jz z=Blc`3{Eqq59kQbPU|_z?4g8_jN=3 z|9Xl^q{P9tsJ=nmU_0Dfk!-xw-P0 zTkl`Jc9X8ET%`7lY;vgzrw))ary@l^9JqOgq`&~OYx%iQB;VRa)pIQOko~XjOnZz- z9;P^GksTMh#n(5Bk8G{-JrJ3FHM~>`WCs~w^kQncCM{1mCC{SAgYs4p;V&)wrv*UzC~v5rK1w;j&VI=uR6mtv=4Xbx$%e$KD%9jwTvyt@i1rxXWXb z@%qQdju9z0=v!@W**w}t2dhF5SIJ2jn>D*e6cxSW6sw%5de1m#IGcik1e=UD^QeWu zHAXt(n}r06Hf#)ce3-Ns>q%V6;yM8(_oJST1K4QK+jE6T>sKM+iG zh1}wUz-)3~GVXe$iutGczmVQ_VDWA*3_1$wToj*^8q1sx2}eqjn7}f-+03Gxgr}#H zZhV;O=-}gPVbpKpyrK?JdrUk{{ti;#EPj~AHlTb2=h)c5K2#9bV$@f5RI+bRNTkiV zaLqdUrWCiW`%$fNu15o`ip4kol?1u#D_G26o+Mj?qA-q@B|m{=AU!|a?$iq|qxlpq zm(Yd^)SeL&^1RUssG$W;$sfHHK5t=Wi}eT50}Ws;p)Axf z;Je6>ZxEH{@BLH^3+f(vgh&_!z{Jz;TJ;-TE!;;zD=EGAgq|))9~FRbN4lHm@5aR@ zNTvrg;|_=umO%wYojwnJKwLj$yT^jLg>cP2+3B$(Q+Z((uFkcEl~L@(qvqUcqm`)^ zI)s}-OEFUqUYflUZ*6P_f_&P8rSl)WdCF4UiY8DP1>!wNks-HL?_?s*E_W>1Ofsb?$9+d)ie3Ptr_s+ee z0}c1Cw=0wvLSg<& z^NV90$$wVw5exs@KA?~i+$z%}ORn{SZDTnzA62T(dqLLK|#=VBZ-vsp4`J31&wOES36ox`YEcp-buw3X!J5U;m z^`4bD$2FX3tYl>l5%={!di*SMMZa0Able9}l9n7OKEj(Ufelw_$O6%)`Qn&9W zZyuqS$3m7XHqYRXza`k67c6AEaT79Ntz^hafMJU@m}IEB`s%c7sBg z9c~d*LFvUu%udbU z5ROHqzYqH|XjM_n?Q@OMk`IiefTT*U+4uzM$t;;Nw7dATjBHl}!?W2yoztN(hB>r=59^ z8|;r`T*0-4y&VYYpvdFR;dXeAN^jJG>B$>$B@wQRh?1brJ)`65H%^yjY;a|5YIwSR z{Zegrt^CU;5C~S?`8~D&{`0TW9>DfT6yOJTHkip79$Izmvr{3aw--m9U%3?8ysdu| z4B9Hj9=8@E;tVcmjUICA&q9uXAaMw#(~)T7lky zLxEf`wHX!eA9>!AplTW!of&|n{2M3IUsf#|_#x?M9*zM783C41;{2fXz$wqXD>*c#{>x_OX1cI<8+NK+qqWQvj?o&tT%`)K zmf+ozGZV0;&|Bj;r#l|1@&kSy6#Cv%%2Gu=d07uD`)75Hi`FK&ZSI`D#IA6u6La=j zi&a?nY)q?PZ44i(NnBZc7RsrRl4pO!Oz1^iWHm?4;|dlhun%%Ca%W#%&qZYmG} zKsyKLR2fH>cecHuk4D{~lt4}Dabd}Xir!A(PKV*AoIGJJ8Ojuzm$ct$CWeX9Jw5Nbi3IKi6WTtQAJQR5ssT3|HD0}3G|m%J-ouYF?7 zZ&rkBv2;bf^FEcx)Fg1rB4Q`jxPo>rIHJG-$vJ+5bnDK{(8~GI@><2tRXcCa-XQq_C1vz>Bv+Uhgn}&f~8dGus zT{!sI#Tm^t3w&CK9#}OXOI;ag;Qn;lQOQZ*y0&e#n5y>r=t9@zd17u*qhQ=S*Om_W zoZjQ;K5ZhKN$DBEr`es_!g(;fWU<>@d=j|#*=$7cOMgUy3rus|kOx=dD*Bf8Jz+1W z5Uhr=({q*`cdDgGLcwZp);dxaaS1TP)6U43bA~hsEE=6Vl&*ZiXSV99LaTAEr>&5& zvw<}8HF!CuY##mgW^^pB=Q26#_F(p)6G?^kQ*g5RiMDbMJtCL8g%398=*p&1vo>Cw zkOyFAp!7hgQ5~KmC%4BXhc`cD>tt}Vu)WajwJsI`tzAXowCs9t7Anp~DYZ?NWv$1& zI^(EMyF{ot-Lzl1vl4sE96Dnk&Nuy8YgJsMs88lfSK3no1`w(w?fPVHfjMqO(OYOV z>dj6I^fBrP={U|n#f#~BN3u|Rn)l((??o@bmlVOejvj zst{qs+>Ux&YAb|yc`R9%2cgMVd+vipj0e(|`%Ol8H87G>P0?SVR7@BGQJ zyG9#qr^m}C{RB8tO;1~M>ISxOuZu5W0b!$HikKr&{!bI4H;a>va9_P=XPzBj{w`DrrrA^km2fPH6gjL zP7asS3@aTDaVggmXq!BS&wA``G1|ubEZP6-0LurOIF6R*J5pNEsjZQAOFOHG(eNcZ7u=>|(|yZk}C9Kkdr{W2Oi! zLk}y%bAa>qC~m|#PwHbtWNDVksIl7T_P#szbrqj@od>5shaO$oN+DE}Gt01iBvF@# zrtc}4`C!VaDm#$o*He|jQXloIvSMiNU1ZS`jk^Z(`hctc@alWsSwcvmBgeUOW{CS` zj=Qq~diR~!Trb()O8JcR%2+t%*4S0tgB>%QDf-TT4#Pu(wt4ewKM9%nEuCz5rspQO z6C0Lo=b9h)p>=!X61d(@hAeKZHq9}QTp)th*bFiI0p^?iW%W`QOI_Go{67 z8IGsqY+`#9CeD!YSUy+S!MgiIB>+8L+$I$Q%3ZmmX~0E@#c{}+=lp==Nb#CgWo3!X z8<;)o>11PD^ROzW=toZGfSDEX6tWA=3_7}le9tL%r@DK{6QgFP6QAxrklW3K9p`w# zr>fR=C{u|ls13pbCmEDS!NM3l%wk5FltuRkprl%}=C2hZ9`l{9i9~PQ7g&HsA;BU+ z(2H(e@$*rTPWtew%w`PM1fqA#LwEZy#3 z?K8u&g(fO62vo;tTMgDi^ z`5)DJGX4ej!k_>4kKFm+#Af&*0pItZJ+B9&L~tg>t<0c_{vg9gF~3oK3M?gIcO@IR zK`Fi|vOsdSpUlT@%w!%a9F`1&-^~c0f!+Jx4bVUPyZ_6y{r_w@{&?+Y=x|H<&#dpd z7hB{Zl+=5uW;1;Abj}tyZYDeIAW_!i}}<)TrdgwGXhT4ZA6xl2|Y~!RYtK z9BqpC6}cs}x4e$RIL>aysQwkm^Rv{l8=b2H+! z@5wiZi)0@weg(6`j5@ZXN`3H`C+SMd({@^i>>Y%w8QTXlCk>1Tjuv#o&$_BLcD6fy z*%Os>%l3}}qg)8N2+VSLO8C`!d!V3nXy}_$iCh z4E65IN|38CezI`XoRw~Swm~E#Q4A`hk~yu}0pmns)8rF7kc`1YvwLRZ5gcY!q*glB z{%Th>#-i}XN1gliX@=vLed8(Rc@`@?1sk4z{<2T8vLRA}Z%gdFRC>+`4)Tb8N&zp} z8er4k5xN&!KnO8i|sqg+_Tm91-JyqZ`I)}D0Y~Vp$8dhZo zOLiJS%nb0ddQes=rmQ*9VS}OJAbDCtL*Qxe!=0i-;iouNUpA17RK+Yud~&XwUV1a; zQ`>qPNM2)|py&cZ;WjKBv7s>@qVYn}GFZ8Bpo6djOw57ew>eFw zK?Qw z*$ME6D3{;-gC5JGseK%cOJj6;Z<#sTCbZKXy{%u96+S=h_7q!)uvcdit`fH1KmiZ* z*T9;NS}ik)Qw_|XVZ1O0cmxP);z-H1hp}#~6-#V~S^Bx{FYuaI4rdP&p;A5++~AcF z7kJU#3Y6ku{iBNUS0CB;z+xZG*f)p?o`Et0BYMLV2mkz%$snMcQ@z*qdqZbo^>>c7 zowl3(c3aMGEKV9u*fMkpE@#xYCAm1F>ASmiqhHd4Sbf{4Q{B3}q{(u8c+0L&O0v)( z`UuOxN-o80;(hl~kg^NAFwJ*K;9S}KSFg(MZ;&sb;V(Ps74pSjIeq^qTt4NJgcJol z`^AOg3&kq`p{=rarU|+!)Px#-joP~aqxyiF5=Vu@Q@~Zb;pOjwCV#Ag|BlC>1S6M> z_Tm$g7|bo-m53b03V%BEiY(swrOruX(~n@0=4V4aATmu2&_kSlSUCR^x~el$+UML{ z2Zre@hQVZRP2tI-LvumWtv#o1r8T|{(03qN4%NYmeBANdWZz~-hR{!W+E3Cuw>z8o zAG`V)y|;5k_UdNEEEUt78E8m1VtQ9SFji@Hwhg{NJGS3ei@m%jTmF2$A_R?95RxmKXae=!yFgwuCo>76N%s}d<>y4OPxnXr; z&OFKJf?K?f>Jwrj8Re?qX=y*gCgA3}z@eg7e_cx_jz!kAB9P6RS{Grtl* z;L#C6~R!gob4sra+ z#^r(H0raftB%=W2*&{Ts2uk>})Dl`8h6pQ0S-x1k@ykblP_@>f3N&*B&Vj2wp8 zGs0CXu7RuR`S4ul`Gp#;3B{yD9F)av2cn zeF;CWRu`za|dAmztwD}ziQm%(k)@}r#;BJ{jKB>H+%A^dOlzL zifP%^12BR_P8Rf2MOu7`Is|O^-yZe7MvkywGGqJoyZ^%DVi3ji(W}r`WZyxjxd5vJ zV!j|U;)ezQ;K|Bpw-D}vtxQw?K~NO(*MIjL1VB5o=&^p)Rzc|g#SXYJZU{XgB% z--iFYh7ErXhkqUayaE3jkAG}DzJ2_4C;Ve0_G^ay&m6CB|812OMWw|Q1rJI)X7!Uq zANV_0%6yP$eI!=v&BvcKe>*^NHC$S}7z84o(BJ(A;z2v%;-wQm(XAd2&C;{i02^l(juKj7|P)=7+5&?204x*fIdPj!XQcc8)ROJ@*zNx@z<&R z8kJvj<<}kbYhC%Z+Wy*uer<>U6M}?<8m5cQi3##+_i1LQHKcng?HgC3uQ(=0pPxGs zAoTY((*?Kl4BD~RjZMs#D^a%PjmK=CZ(mz>%=;diT?A#G!8U&doE#5v=Vr4pg8v*_ z!F~+Q&hrJUbF&YFsM;TbtC*icvyZgLV>Q%0LE8O~fnMfMu^CmT&9zty)K78V&tc-P zQ~5pm{WU7T=F0D>(yu${*ShjOmHoBa{@R0nuX_C2ng8p@D^E~86x3QGh&4XX7sW0? zj{gwvO)x89)wmg=!Jm;%D+~D%+=TjB-nJnHFd+&dEP%|HV8rF{#?;5CnO;G@y4YM2 zZB==8JaW3Wn5dKGe%hF)6cm*c!%ekLg&R!y>_BnBKH~b-_yZNZ$F%KlQ*FLIvon$C z+9^bBojk9qg7C-3bQE*;6t1}Q9_1L=H8qT3V6n>?eL2SGrg6Hq;$eMrU`OxyYZCRb zhRayc-8WbVutlXXGb2AXFjft621jq2oGPsJ73y&|+zTp}0osUCK;`ttV-Q5cuRp8L z>{F?RsdthqBB>yTd)0hOcAL44JGdCF_XlvF<(m_L$r+6!c}8Yk0O6^~vgh~N8W{0~ z!NsCSg`z2+OirLPSy5El6Z=Y4`7*-Ay6E>d%*bh=u`W^2M|>_JLNd#57Rv@iZC|&^ zR+LDB^)(;7tyR}AE_;x6gNyG8XKYMjodSQ5LTFi4-L+G1?qWUnO=;802<5q+yt~Qe zLKj!Z@5e*_I9Q0XQQ;(L;3WEh;#PS}NFUSWUmxnpF-z?0p9yJO}l(L(a{QLXy8~$6X~zhPxpyvJ2&w@ zxEA^;^+W1ijN{?UL+=m9v4fHTecfXa|A~Xeg%Su+{4nu;OWL79l%qfnkl9K&JvFlA z^3qJMHTH7B2z-jE@qx2U$AmE3)DfSBxmg4=@F0D$LB2MnZ4ce*hoPHXVKKY#7VF3~ zK{{}e&gc^T6Y*&~st49xr@xFi93eP3MOm}8Hem>dZ? zAv$+^UzIJjn|Z*9<;#8~9qBNBp##G+<|EZup(j&fSW|NgiM69r?vdGs+Sv(t&Rz?cR8O42MELNZBkc|2Nnfc!P0 zXT)%MXx#m3y4c$@P|pvIr@e!Y9l&8n#|SC7isBh1DbQ*2UYz!{3e^+KW%uehr`unS zq>f=F4nJ{`d=T3xwoh#RdDm)^p1@Xf!w?y~Mej_}AsB$8IBY9VA$b&`j(4bkzn(@! zVvpusKj}67R+}@4(e6vj(Rr%yCCn}CNHjD`^_&Yo(8~&=_R;VeoqK;P?}1;7x)YZ7 zz(wt~a<{E{e>LJYklClu0R_pWM(86*nMDv@{u1|eY0n}d6;UGBV%mUq@$GAmxlbq7 zZ{8`*wpq0no~Lidnwf=Vt|LE(*+ucr3^$^=frVC{#NgG2;{s8)N#}I=+{>tD8LH)* zpwC_V4$l}RaP>&N!<1oG2WO{7TG~ZlIlN`kR~w|(%W{Zip0K!Z+STpJTM+^G`Dito zK=H3nXQu*DHoGWWOmH%)6%C!51bAB#oout0M=$w}?#*!6o~h_`-j~Z#B?ytm_%_G` zb9fX%WSGJy{E#GNH#^0;oO~!rC^5uE%Gs94pVsk=Jf6t%`F_BC21L41M(z=A=`6Mf zJB=VM7}gFyTDSidu+owy^YI?4yrK7P^A{832y`Ud$IMqFDspukHgaq@^X?Q*FV$7rj*aK*pi%xWJ0I|dPF#|VGP8kSES?sXm$M2 ziHF2XtSKp;15Vtbn>Oy~QxPpe%G=Y^&r&DTxe8^K#aajuK>M}NMFTtqO}uEYz|Y(J zS<6L^reCch(8PqDWuE9veI^zHU1K)IO^qrLuJkq>AgSOwTG31Zg_+M@RkS*e;epd? z!+ZXL3zN4o=+mw`u^;^%x0xG}@}PV(${HPJy8Z~aVORz{uzx*rvhY>?cA=-Id%sEO ztLW?QChR5|f^?ip`n1Zx)LLP#kHAfG425AC#+c$P)3RG{UIEo9A_IRwsQidl`9D7Ycfb_e2eVI)$uR5e9flmBRf8+8VDO7m z7vUQJym`={&4m639q&7QuxZh8q5h<`+}o1v;&jIa2?mM^=b{L8`X6PWY{kZ$enBGW z3x!Zkd{;Yo0~D`%1dRp@HN|?xr-1w4AkdnQz9~>Y#VGIB82=}8gEk4Fme^C<_YB2_ zh6Q8sMV^P$oe>(KSLFnB$qi&`tQ>;Xo@f4JyunB6pQI9*t1x$-&Qsn`m8A~mzTaHp zk=0!xJaEoBvb9vn4dS6!(IeM8F!UbqLx?MYJ>JMNrP(VD)-T~?H8@)yhchE58^&pk zay`8NB^bhY>(+c^__)iXsS=Lt%ck&-F|zcf>GF->^)H$oo|}YQ{7umgQg?dFdvSyQ z_+oobC=JRAK&Z?fC!knJHbW9$MGASt1bRI_GqV-dM|9tO#{YWyE6u^}G1w=^>G74> z>$6PP=PXO^UL0L&(f1e7wbvALZurO;9q_Pu{d#ZwL%Ge3cBx2y8DMTM1;g(%Ib*r* zT5^%*d|`c74Jtp7MsQ8NYa>qkwl1r7RfTfJcag<7t~*tr;%9GGf+2nA%Tk#$jgUjy z!Y_+QqK**m0f~4Q!hRfWOTM@bj*ycLM6cYarHrtegq|8+>-oZNBkBDh_s0HtzWGCr zcw&nwC36PGvScaR$8895lxhPB<8Qjd3g=mm3q(eB%e?oO$w!XBIqRI}$l`4%cIT&U zHHXmm7j$R3F0{NdSDzG>Xnv~-3(7L#)}l=g%O;3PKz#uPLJT>zK?Grd(`@yJf=Kn4 zI<-0M{w1#(bMdT^QLJ-rgqZD|S#gc2y{gw(J6*f@qW(kGv$(dLW~orrValEeHxPfG;A!QV~P`b!XC{G8n(uOPMt=Q z?Yf2M`XpBP?rJ?AH(!sIM_%YE+4sT~xwMlXGnzuU1H>zYfjPv<1|F%0au)JF$MNc0 zHs;Ikk0Bd5)t?N@I@TqkDB%7yGUNS?m>%c>2N+Ww3g5le3M~uzl9|3}DNtQA zP%L?hEy+4zHRbtcwy1e4u_7?njIrR5wBy%Gf?W#Xczrz{nTgYFbYE6brRo2Wy_Z(V z9slJxeBY<>x)|==gTg&A+|xXyadIV65MbzlvdI=7LP*|~RF;^w;P1a!R#SOn3nEYEBD@nh#U0FmKFSok@IyA7&BNIE`1Ba?mUP z4{A4PNZm@|DMD{WRaZ$%WHeF$7`qJm!XUZr_sZV**cs#Rg!y^fq+HNb=Dha!&e`$v z(`z64ZfbL1)y(`ZiH4cSDTCBg*J85Vs1X*mzo@VPc?Mu55Ns+dD~HRf1>-ahhK6}^ z-?^gv4j^z5|ov};y#sc^N1M+PNmqD)U!Mf{yG!cxWSF$=ou!8CmQ2Tzn$ z*4cgBqn@!5$5&G5mgZuD32s8|^|&4bp7#akIi9Y5xcqJzBJ8G7b1k~6!2&qj>Z7;Vxc8SM7v5^%3|>PG1nKQAmU#6oF#A(lk7Jtz1HLRz9KP zoJPcvV|D%fD?SK~j`zkNJE5#6R$111SViUg`4_-R-6VrBo9%+#Jql})85&?Xnk9X^nNm==iWqn$O4!xN!Y9;Yh{w=qsnKHxm zRN9k2kpn-{u7T%H@6rlxpHEDDY>@)~ubEeUW|+vyLt`^rm%l;ey;rxqwuW8mkygkF z!>RHz470Mz1LFBnz?X@2>c(c_p=h&r#2at4KDoX_T7*t04S!TUI)JhURiRn%Monia zsut#BK=%6N+E-EKsS2}{2gjcX>V39$d~ghU#{rm{L$|n$pfmxy*N*&Dz(lT3f2*OB z^N_E_hcD5$w*=jx$!7v%Wh&gy-Ok{Rmxu|-%?MvS^N+D)eh^I~tAY0ps76o#fbbhv zG`Y68XZb(8RK`ZD{7&S*Pw?OGad^8(=2cbM-tGS1yn?9HhEa394Z#gj#V^XI zfNhub;>^2$NrUo-UG@JL?=OB)CIxK6UlwQnXQ7<-j{SC*>Keouq4+)guwHWc1}PUG zSm{ya`v&P)FWIjA1{sZC_V`Oe4Szu|;eXQSP<=+TVCHr-_smgi=UQUchZb600CF!S z5lX!BW{y|}+517-0ru@j-K%~7Y(Dgl{@uSLe_HtC1_LLMH${ba(Q$F~@BGH%hoEQ% zY82asDb)4|HJh;^!FXLCuj7gQFst1CozgfK8S zJ#o=!a6JQ8R6DZ*N?a8TIs`s}iHo#;urj>EPOK=&gBO&yU3HrJ$%SH7*Rw4veCb5d>>5IxnY-NGnP zjMTk$yP7zxjws2ZfRy34gv@MH2Uf(TzC!+GuFt1?L`?)F)5Fh-w@A8bT3bd=817uhH%P(&su{#Q1}1!ie2kc3CLIE`6F--$ zUaj84t0NC1E|WoFL?`&8z0~X&JVQ$wXMfQ~x=eG4NF5W`?P>`}l-Q#uK7#x}8*&ct zr8pU#@0Zhkl3~_ke8)ADp63#y+Y9{Dwvz>%@*pJm{9j>A|4(`k`&I(D3Gqj4vu`^g zKBuEPGRXTO9{`$Oc}Nw!B1D7wD}SfN zig$s|CiN6b4KrY;TO;taj|U`$601TxMR%(pF#*qvBYh( znu#l|z?n>&*9uxOc4^uT9V$3q2ny>C9vgCn7m_lwDhf^${yh0|4BH1y>}ZOS;Dn?h?&l64YqUb>&@ zkZcj1iOQYK-7L3Drm-(vo0L2zT6;=oeO!(1bIhdbHFL6KMxFPxONSH{<)bQfIesBv zJ@SbbqBh0kwB)IE$o}*swX;?)0;RbQcWcSrpYv{ePdlyOB4Is?4l9&&DVty$3$rRc z*k3v7EKq5Yp`kwWiso|&WM?)$*teX07o610jsU2mb^#p*+ZY4^xI#wPr$IQbXihUG z)VGYnjmrs^%PqIgSvGpZJ6I7tUXf}mw`9VjIPc1BC3f(77u&9}IaxFV!vvezK#GDc zy^f&d<0DZR&<4frVA#N7x*WJjG(AI;ZleX*vEw!3xPA)%&MbQGWCa|Me) zFlApJJjaU|FzPUO=5Et9JleJR-ST21x?N+Zh^9}lnywtUeRIArqJT|q~?u1KO|`4(bi#hG1p1Bn31{6bHz|a9(i!w?RiIDBU1{a?zIp6fxN@mGm6Fl1H#yzn=$pOp zlgRcdzJ}wJj~F`5R(@coQNVHCPvyd{2kZ7K{${jC>jJOK1_B0 zinn+EY))NC2}{RaEHgUylpbX3ek6;u4Pl`#+K^MVAOmv}b#H3SWsbQK8ZD1HRLAV} z>V4L@{gC(N;flVV({T?3HK^ijxSAQ68tR5u-FAOkhMI2T%F^ckv*aZ)_Ha^D_`)1BHLB?}h0O7 zI5$!FJ|Xfs!^x!ms}gK)ITcN^Zh9GyB;K{uDdmeqjV%xahE>n#yMc!F^`F}|!U_ui zANIaGpy_qnGKhkJf*@TWDov@1BAtjHnv|d-9iq|%1f;i+2#9nL5Ks^zA|g^kM{1;Z zLPt6TkPZnokmCH#oqOJ#bKbo7=FQyu+PuFK(n$HfZ|}YKT5B6A#fUhVX>C4y?zVrW z`S2c1f;G1`gAiyTWoL^hn$s#heys(<0(Zc#>M*#j!zFVjrDF1D@~)H&C0%7ki4_~A zt2H^(d)~Q`z>#%qWSl8?n``Jli;ZX;>D`?TB4Er<7cIwc#-^s3cfE zDaeP$nun(eHHUVhq+n)KkK|e~FRFc-T_br%vNI>wK2Dm9kNF8wjt4F3h^C!OAJ|@{ zKgXDn6Bk;m4J0XvIM-+?av%uM&nojeKp!nfHSwN>xUzkB#DdY4>Az^uEG0>~zE0#}Gx)~dOFpUf}` z(tA3lOHcZEls^kbnt~)eLJ!?r>+^t|=RR47nCSNjP<1fL28wKMH7ee9ijq`+75>!4 zG%U@|vWVqvO}C+y;ik}|R`!bHh&tb3xs;njA0l*WCUiM&b_ivDqaDG#Mu%cfr|6El z*by7>*p}*%gpux|mTWc2k6j*hC+!^0KfC|XEtXjeJ&GNlnFVjC6%r4cF`UZ$gdk;> zSsimN;VY`eU(6&+%x~r?$DIBs&E1uE!!W@k5zBG7Q-ecM_&0%I7D^wEJY;*V76p(V zjC!1f`b!p-6+G5O4R>wEkWYfi5!!!xPRtAtx|X**0U+s;GC-niPkQK! zY=OSq2ZjXLOE+x2w36<>zWXBT&7O&EP5h6^XYKvpf{b10nElYJaSiPRqUP;bb+In% zrzZuEv$8F)!g}qtB9Xg3)krG4zy(0Ia))w)5>Guw9UPaAQSk(du6N31H`;uuqN&FC^uh-v&8*R}zMo$S?rB6`%J2M-ctrkP-_v0i(3X!=KVm$( zQSaV|neRsgKUd`aEoj)FyivM|n|*Xke@FsrOXsj;#2Q!!Ny)X!`K!N&aW|&?C#Y4L zmCQ(F!m)&_o-N_>|44Vv#FDT$UN;z?Jl8;KU^*r3Eylu=N%O1u;0Ybdhw}tZOb!`@ zuNxuh(WwO#$ebm%pBBt9hd8 zFvN!rV~V(n=!R9mTBN}pkmu4{*dW*4DKVWJDD!QJEV{-?9o`AQmLZ1Q_+o2}|8RlC z9c$!l;fFD@GkzP#b9aGsV%O!%x1=!%8yjYn@91D97yu8fXZWd|h_l2%LS?I&Q|&b0 zpkVdO)1$@}#{J_O+4EX##<5RODqk0_oR5bkK+3q*y$G;l6Etl1qjpcba? zn)K2wBt9O-Ms%Vwc#*C=38zB~6yvyhwQDikZGB88v-1Se>H2TPw>Wj8H2!|Gz$H8- zbrK!oX_`}Bk*X=SX3MhKKbf#};iiPPXrafwnMYZ8U}UUUxjElz-VU!C~i1M;z{ zqrXiG7c1q{k0p5C)teKAHc4TfSD)Y9M-RYGAv$2CTR{k#E`n1dm7Oy~0wDT|ZO(5L z1o&NMn|9DIm5(${J#V4a^kP=vDl8gPPQRgolO7LiK7vFjt7VxzDabNS)54Ye@yR>z z-s>HiG4K7DHqUl(PKI$$yqkaLX5}@D zjmEI-vW#ydV|feTy1C6UD68kLM%fkJIyg46vGl~a!=BXzdeyxKf3-oLV+B=Ifg)Xj zt*J_Z%bHg59FzA^W0>)4+Kh*x3p*8lPpjl7-i@aF3SeiSqAJ+;t%RH|;6M9D85+vm z!C^_)l>y*@GV4sby11dxF)#92eP#kWAJ&A9o8c(i;sKmarOFD#Mm2+5wF)=pDqdmv z4%n^%lRVgiOD=UNvCS8wUhi8;OilP5Y$d!TVL1sfoes6b=3H*k_s} zn745gc3rcl<66=c!DAiy=1roSl@7fq@gA0mT2hdRna1ODU91bV(bn}&N4|j?ZCd!M z;c^+H-cBs`-Iwbh)%gP6y|~%k1|ol9Pyva22xQdU*_vk|iqW?q`F)Lz@b(dKj=7pT zX|sytfgghWOFev@4~h_j4Lt3Fubyej0&lK#W+N0$?J=tC!XGpo>87NX8MFm>`AP1g z-4(*YD6V zjNg(zD7qXzs|*zKC)9}rvlwQFdNw>ZhdPbuE2^jC&F4c3MQQKL08YSKatuU!=~UPZ-`IkMq8c+Q$xemm2RvMtu{ zJ=RL!9*Afap2=dL&d+?V>~fE0Ra}8Ru91a!iK`7fR*9PlB@0^PWi|(X96)QUfHv+* z;&;}wt(h_d4JRLc6`+yN@tv3tTOa(4XfT2>UKh`U5KUQ49f~^`9X#6P(m59HP1-Gg z6BK>;82Wa{T}HbFP9iyw&j5536|!~_(F2b)8Y&NXlb^hFKk$~5U+r5v>&093zua|x z7*!WS+my+_wjv#aDbjpSWkqyk&FhYTDuUa(T7T5@vX`j%(W#WS@-P;6C3wnq{G}1o z+iS06pm*wyJ0ZS7%B0sj@W?su;*VteA<3s+hh81hlDgHFE$hKE>-($GB~7lEEVSZ+ zzMk=GQ&4pxtWpOb0LwGQp*lP2uwpbr5dWfIm2opxCs5_}>}+&MU-am0(isH6l*2g0 zy;Q`;z}@oJ6azQY^L27sQ$0rr&5w0_MNTz3`I&pKXth7QLeHkpH!U0jv)dQw$B_^>3_frs}&;^l?UA+xXaV;m_84}vadIb=Rxhp)u4%&MW6KYTL3@E%|q(*0Kg$$tM? z{OtdLaFEP0Ov`!e5GvR;h4uAo{JnWVrjUD3-ojXL!( z!DDE2D+Be(p;{gDeK$|*>3gYdzh@f7pANZeDuzL}ZxW#Qv_(^?z5wchJk;)n?aTN= z0aM@IBT|h8r4*nISnn@YQPKq(o9^Qa_A@_?-CU31n98jwtxVQr6L)^bKe=Ipl|Kc_ zb^7IcpgqX~*-=c^{|PEOaX^ifB~uZd(_92>IB@ntUZ|d0p5d?#Hh&~h{qBQYi3Ga* zzTBAw?O-T<(i*IO2FT(g$>2Hg*i0)|hRRE-GaYrxb1n0eAIymXzDBoPixX^@Mx|}5 zh##(C*C8teuAKo$WB5}M|C9~USxf{kS5puYhkVY<(qzsWa4g+e|FyO%4*XP}>mC_B zlwMb3I8z!HOch+ioVLc`G3%uFaIF%O#TupHvo4$WGmXdRr_>w04+9R+Y4sP7P1gYq zHw1v#KKj;>JbIyrr}-i48BnF4p!tcVnL$^Vs*glpq#c^5*-k91m*Sm$d)R*tdgCSE z=`b!qU-$xRg5nv!Z^Z%)r2EACZS?~EWjthaytxL^_;}@62_IgY4C|?{>Z;~A+*2`T ze`cuFFlmhhMs}ddfZcBqKbjf>!-^n*1Ogh4$%v`R$_S9D5O1-!Gd_~9MO|s zk!!HvWzJ$?L2^&G`p0dCIH5uWtljf-MvLIe_@xh}-2b1o3PHxbW?W={=|1EB^52>c z>@?2jsQ$L0t$J#hH>n-mol>}W@;Ga|pkV6yrS~jLu2jaf4-Nw7h-0%@mSs*iha;Et zxpVT81+xb6>g+x#k>Qc@AetapJ&Faga1)QEgh*g^?-&EPJeebls?X8{*%zNcu6QjX z@NgiJj;94~I0c~W{g;g;U&a4wlRW=TPW39~ZJ}%p_p~-yFxPDL=^2|hCMsoB;HkS; z+yhQvbw_0Ze_%9WT~&~Rl7@2#ey+yH<|;p;wXN?7pvIqzpYV*4i92xG)oh`14b-~M z=~*|7uRnHHvM9~yoMZ7VJkvT8%ObEx-lcX6D2-qqvyA5%5j_Zc^-WohER>|&&KU`@ zn#!@6SZ3=bh4yCmtICC!%<^aT6~g+gN$5O}?9s$5njQ|RBGPMytpR77Cilfz;;qZOG+X^ z!Dfe>Ic;0V?VTM4B^?dpM93i~GUNyME-7EwU+WP$>)`5?X*$^rU}j8l3Q>0e&Mkjl zP@nN6rZj9FLeiXO;dBImo~=>MxaN$r_4vi2`Wok3N0S!Z&7xfzHmnyj50!@npR;>J zIjISL1TcS3L_1{HcoT`Y&jw~-eIXCv!y2W-jX!C4o}@x^A

7=iGkfg@Vc@@3uM)0 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%0DNs?1%k{Zgc4Pw35(}iMr8rF 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 diff --git a/lib/daemon.go b/lib/daemon.go index 0c09016..cef26b1 100644 --- a/lib/daemon.go +++ b/lib/daemon.go @@ -1,12 +1,11 @@ package lib import ( - "github.com/astaxie/beego" "io/ioutil" "log" "os" "os/exec" - "runtime" + "path/filepath" "strconv" "strings" ) @@ -33,39 +32,75 @@ func InitDaemon(f string) { start(args, f) os.Exit(0) case "install": - InstallNps() + if f == "nps" { + InstallNps() + } + os.Exit(0) + case "status": + if status(f) { + log.Printf("%s is running", f) + } else { + log.Printf("%s is not running", f) + } + os.Exit(0) } } +func status(f string) bool { + var cmd *exec.Cmd + b, err := ioutil.ReadFile(filepath.Join(GetPidPath(), f+".pid")) + if err == nil { + if !IsWindows() { + cmd = exec.Command("/bin/sh", "-c", "ps -ax | awk '{ print $1 }' | grep "+string(b)) + } else { + cmd = exec.Command("tasklist", ) + } + out, _ := cmd.Output() + if strings.Index(string(out), string(b)) > -1 { + return true + } + } + return false +} + func start(osArgs []string, f string) { + if status(f) { + log.Printf(" %s is running", f) + return + } cmd := exec.Command(osArgs[0], osArgs[1:]...) cmd.Start() - log.Println("执行启动成功") if cmd.Process.Pid > 0 { + log.Println("start ok , pid:", cmd.Process.Pid, "config path:", GetRunPath()) d1 := []byte(strconv.Itoa(cmd.Process.Pid)) - ioutil.WriteFile(beego.AppPath+"/"+f+".pid", d1, 0600) + ioutil.WriteFile(filepath.Join(GetPidPath(), f+".pid"), d1, 0600) + } else { + log.Println("start error") } } func stop(f string, p string) { + if !status(f) { + log.Printf(" %s is not running", f) + return + } var c *exec.Cmd var err error - switch runtime.GOOS { - case "windows": + if IsWindows() { p := strings.Split(p, `\`) c = exec.Command("taskkill", "/F", "/IM", p[len(p)-1]) - case "linux", "darwin": - b, err := ioutil.ReadFile(beego.AppPath + "/" + f + ".pid") + } else { + b, err := ioutil.ReadFile(filepath.Join(GetPidPath(), f+".pid")) if err == nil { c = exec.Command("/bin/bash", "-c", `kill -9 `+string(b)) } else { - log.Println("停止服务失败,pid文件不存在") + log.Fatalln("stop error,PID file does not exist") } } err = c.Run() if err != nil { - log.Println("停止服务失败,", err) + log.Println("stop error,", err) } else { - log.Println("停止服务成功") + log.Println("stop ok") } } diff --git a/lib/file.go b/lib/file.go index 76b433b..08c7d45 100644 --- a/lib/file.go +++ b/lib/file.go @@ -3,8 +3,8 @@ package lib import ( "encoding/csv" "errors" - "github.com/astaxie/beego" "os" + "path/filepath" "strconv" "strings" "sync" @@ -37,7 +37,7 @@ func (s *Csv) Init() { func (s *Csv) StoreTasksToCsv() { // 创建文件 - csvFile, err := os.Create(beego.AppPath + "/conf/tasks.csv") + csvFile, err := os.Create(filepath.Join(GetRunPath(), "conf", "tasks.csv")) if err != nil { Fatalf(err.Error()) } @@ -87,7 +87,7 @@ func (s *Csv) openFile(path string) ([][]string, error) { } func (s *Csv) LoadTaskFromCsv() { - path := beego.AppPath + "/conf/tasks.csv" + path := filepath.Join(GetRunPath(), "conf", "tasks.csv") records, err := s.openFile(path) if err != nil { Fatalln("配置文件打开错误:", path) @@ -186,7 +186,7 @@ func (s *Csv) GetTask(id int) (v *Tunnel, err error) { func (s *Csv) StoreHostToCsv() { // 创建文件 - csvFile, err := os.Create(beego.AppPath + "/conf/hosts.csv") + csvFile, err := os.Create(filepath.Join(GetRunPath(), "conf", "hosts.csv")) if err != nil { panic(err) } @@ -214,7 +214,7 @@ func (s *Csv) StoreHostToCsv() { } func (s *Csv) LoadClientFromCsv() { - path := beego.AppPath + "/conf/clients.csv" + path := filepath.Join(GetRunPath(), "conf", "clients.csv") records, err := s.openFile(path) if err != nil { Fatalln("配置文件打开错误:", path) @@ -250,7 +250,7 @@ func (s *Csv) LoadClientFromCsv() { } func (s *Csv) LoadHostFromCsv() { - path := beego.AppPath + "/conf/hosts.csv" + path := filepath.Join(GetRunPath(), "conf", "hosts.csv") records, err := s.openFile(path) if err != nil { Fatalln("配置文件打开错误:", path) @@ -389,7 +389,7 @@ func (s *Csv) GetClient(id int) (v *Client, err error) { } func (s *Csv) StoreClientsToCsv() { // 创建文件 - csvFile, err := os.Create(beego.AppPath + "/conf/clients.csv") + csvFile, err := os.Create(filepath.Join(GetRunPath(), "conf", "clients.csv")) if err != nil { Fatalln(err.Error()) } diff --git a/lib/install.go b/lib/install.go index c8c24d7..64fcc9e 100644 --- a/lib/install.go +++ b/lib/install.go @@ -7,34 +7,52 @@ import ( "log" "os" "path/filepath" - "runtime" "strings" - "time" ) func InstallNps() { - var path string - switch runtime.GOOS { - case "windows": - path = "C:/" - case "linux", "darwin": - path = "/etc/nps/" - } - if err := os.Mkdir(path, 0755); err != nil { - log.Fatalf("创建目录%s失败:%s", path, err.Error()) - } + path := GetInstallPath() + MkidrDirAll(path, "conf", "web/static", "web/views") //复制文件到对应目录 - if err := CopyDir("./web", path); err != nil { + if err := CopyDir(filepath.Join(GetAppPath(), "web", "views"), filepath.Join(path, "web", "views")); err != nil { log.Fatalln(err) } - if err := CopyDir("./conf", path); err != nil { + if err := CopyDir(filepath.Join(GetAppPath(), "web", "static"), filepath.Join(path, "web", "static")); err != nil { + log.Fatalln(err) + } + if err := CopyDir(filepath.Join(GetAppPath(), "conf"), filepath.Join(path, "conf")); err != nil { log.Fatalln(err) } - //linux加入到/etc/init.d - //windows处理 + if !IsWindows() { + if _, err := copyFile(filepath.Join(GetAppPath(), "nps"), "/usr/bin/nps"); err != nil { + if _, err := copyFile(filepath.Join(GetAppPath(), "nps"), "/usr/local/bin/nps"); err != nil { + log.Fatalln(err) + } else { + os.Chmod("/usr/local/bin/nps", 0777) + log.Println("Executable files have been copied to", "/usr/local/bin/nps") + } + } else { + os.Chmod("/usr/bin/nps", 0777) + log.Println("Executable files have been copied to", "/usr/bin/nps") + } - //darwin处理 + } + log.Println("install ok!") + log.Println("Static files and configuration files in the current directory will be useless") + log.Println("The new configuration file is located in", path, "you can edit them") + if !IsWindows() { + log.Println("You can start with nps test|start|stop|restart|status anywhere") + } else { + log.Println("You can copy executable files to any directory and start working with nps.exe test|start|stop|restart|status") + } +} +func MkidrDirAll(path string, v ... string) { + for _, item := range v { + if err := os.MkdirAll(filepath.Join(path, item), 0755); err != nil { + log.Fatalf("Failed to create directory %s error:%s", path, err.Error()) + } + } } func CopyDir(srcPath string, destPath string) error { @@ -44,39 +62,29 @@ func CopyDir(srcPath string, destPath string) error { return err } else { if !srcInfo.IsDir() { - e := errors.New("srcPath不是一个正确的目录!") - fmt.Println(e.Error()) + e := errors.New("SrcPath is not the right directory!") return e } } if destInfo, err := os.Stat(destPath); err != nil { - fmt.Println(err.Error()) return err } else { if !destInfo.IsDir() { - e := errors.New("destInfo不是一个正确的目录!") - fmt.Println(e.Error()) + e := errors.New("DestInfo is not the right directory!") return e } } - //加上拷贝时间:不用可以去掉 - destPath = destPath + "_" + time.Now().Format("20060102150405") - err := filepath.Walk(srcPath, func(path string, f os.FileInfo, err error) error { if f == nil { return err } if !f.IsDir() { - path := strings.Replace(path, "\\", "/", -1) destNewPath := strings.Replace(path, srcPath, destPath, -1) - fmt.Println("复制文件:" + path + " 到 " + destNewPath) + log.Println("copy file ::" + path + " to " + destNewPath) copyFile(path, destNewPath) } return nil }) - if err != nil { - fmt.Printf(err.Error()) - } return err } @@ -84,32 +92,30 @@ func CopyDir(srcPath string, destPath string) error { func copyFile(src, dest string) (w int64, err error) { srcFile, err := os.Open(src) if err != nil { - fmt.Println(err.Error()) return } defer srcFile.Close() //分割path目录 - destSplitPathDirs := strings.Split(dest, "/") + destSplitPathDirs := strings.Split(dest, string(filepath.Separator)) //检测时候存在目录 destSplitPath := "" for index, dir := range destSplitPathDirs { if index < len(destSplitPathDirs)-1 { - destSplitPath = destSplitPath + dir + "/" + destSplitPath = destSplitPath + dir + string(filepath.Separator) b, _ := pathExists(destSplitPath) if b == false { - fmt.Println("创建目录:" + destSplitPath) + log.Println("mkdir:" + destSplitPath) //创建目录 err := os.Mkdir(destSplitPath, os.ModePerm) if err != nil { - fmt.Println(err) + log.Fatalln(err) } } } } dstFile, err := os.Create(dest) if err != nil { - fmt.Println(err.Error()) return } defer dstFile.Close() diff --git a/lib/log.go b/lib/log.go index df71219..dcd36d6 100644 --- a/lib/log.go +++ b/lib/log.go @@ -1,9 +1,9 @@ package lib import ( - "github.com/astaxie/beego" "log" "os" + "path/filepath" "runtime" ) @@ -12,9 +12,9 @@ var Log *log.Logger func InitLogFile(f string, isStdout bool) { var prefix string if !isStdout { - logFile, err := os.OpenFile(beego.AppPath+"/"+f+"_log.txt", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0766) + logFile, err := os.OpenFile(filepath.Join(GetLogPath(), f+"_log.txt"), os.O_RDWR|os.O_CREATE|os.O_APPEND, 0766) if err != nil { - log.Fatalln("open file error !") + log.Fatalln("open file error !", err) } if runtime.GOOS == "windows" { prefix = "\r\n" diff --git a/lib/util.go b/lib/util.go index 427be3e..6fbf9fc 100755 --- a/lib/util.go +++ b/lib/util.go @@ -6,7 +6,9 @@ import ( "net" "net/http" "os" + "path/filepath" "regexp" + "runtime" "strconv" "strings" ) @@ -151,7 +153,6 @@ func ReadAllFromFile(filePath string) ([]byte, error) { return ioutil.ReadAll(f) } - // FileExists reports whether the named file or directory exists. func FileExists(name string) bool { if _, err := os.Stat(name); err != nil { @@ -160,4 +161,60 @@ func FileExists(name string) bool { } } return true -} \ No newline at end of file +} + +func GetRunPath() string { + var path string + if path = GetInstallPath(); !FileExists(path) { + return "./" + } + return path +} +func GetInstallPath() string { + var path string + if IsWindows() { + path = `C:\Program Files\nps` + } else { + path = "/etc/nps" + } + return path +} +func GetAppPath() string { + if path, err := filepath.Abs(filepath.Dir(os.Args[0])); err == nil { + return path + } + return os.Args[0] +} +func IsWindows() bool { + if runtime.GOOS == "windows" { + return true + } + return false +} +func GetLogPath() string { + var path string + if IsWindows() { + path = "./" + } else { + path = "/tmp" + } + return path +} +func GetPidPath() string { + var path string + if IsWindows() { + path = "./" + } else { + path = "/tmp" + } + return path +} + +func TestTcpPort(port int) bool { + l, err := net.ListenTCP("tcp", &net.TCPAddr{net.ParseIP("0.0.0.0"), port, ""}) + defer l.Close() + if err != nil { + return false + } + return true +} diff --git a/server/base.go b/server/base.go index 6df941b..9c093d2 100644 --- a/server/base.go +++ b/server/base.go @@ -36,7 +36,7 @@ func (s *server) FlowAddHost(host *lib.Host, in, out int64) { //热更新配置 func (s *server) ResetConfig() bool { //获取最新数据 - task, err := CsvDb.GetTask(s.task.Id) + task, err := lib.GetCsvDb().GetTask(s.task.Id) if err != nil { return false } @@ -45,7 +45,7 @@ func (s *server) ResetConfig() bool { } s.task.UseClientCnf = task.UseClientCnf //使用客户端配置 - client, err := CsvDb.GetClient(s.task.Client.Id) + client, err := lib.GetCsvDb().GetClient(s.task.Client.Id) if s.task.UseClientCnf { if err == nil { s.config.U = client.Cnf.U diff --git a/server/http.go b/server/http.go index 40ed01b..e31688f 100644 --- a/server/http.go +++ b/server/http.go @@ -6,9 +6,9 @@ import ( "github.com/astaxie/beego" "github.com/cnlh/nps/bridge" "github.com/cnlh/nps/lib" - "net" "net/http" "net/http/httputil" + "path/filepath" "strconv" "sync" ) @@ -44,14 +44,11 @@ func NewHttp(bridge *bridge.Bridge, c *lib.Tunnel) *httpServer { func (s *httpServer) Start() error { var err error var http, https *http.Server - if s.errorContent, err = lib.ReadAllFromFile(beego.AppPath + "/web/static/page/error.html"); err != nil { + if s.errorContent, err = lib.ReadAllFromFile(filepath.Join(lib.GetRunPath(), "web", "static", "page", "error.html")); err != nil { s.errorContent = []byte("easyProxy 404") } if s.httpPort > 0 { - if !s.TestTcpPort(s.httpPort) { - lib.Fatalln("http端口", s.httpPort, "被占用!") - } http = s.NewServer(s.httpPort) go func() { lib.Println("启动http监听,端口为", s.httpPort) @@ -62,9 +59,6 @@ func (s *httpServer) Start() error { }() } if s.httpsPort > 0 { - if !s.TestTcpPort(s.httpsPort) { - lib.Fatalln("https端口", s.httpsPort, "被占用!") - } if !lib.FileExists(s.pemPath) { lib.Fatalf("ssl certFile文件%s不存在", s.pemPath) } @@ -80,7 +74,6 @@ func (s *httpServer) Start() error { } }() } - startFinish <- true select { case <-s.stop: if http != nil { @@ -90,7 +83,6 @@ func (s *httpServer) Start() error { https.Close() } } - return nil } @@ -180,12 +172,3 @@ func (s *httpServer) NewServer(port int) *http.Server { TLSNextProto: make(map[string]func(*http.Server, *tls.Conn, http.Handler)), } } - -func (s *httpServer) TestTcpPort(port int) bool { - l, err := net.ListenTCP("tcp", &net.TCPAddr{net.ParseIP("0.0.0.0"), port, ""}) - defer l.Close() - if err != nil { - return false - } - return true -} diff --git a/server/server.go b/server/server.go index 9098c84..e765938 100644 --- a/server/server.go +++ b/server/server.go @@ -4,8 +4,6 @@ import ( "errors" "github.com/cnlh/nps/bridge" "github.com/cnlh/nps/lib" - "log" - "os" "reflect" "strings" ) @@ -13,7 +11,6 @@ import ( var ( Bridge *bridge.Bridge RunList map[int]interface{} //运行中的任务 - CsvDb = lib.GetCsvDb() startFinish chan bool ) @@ -24,7 +21,7 @@ func init() { //从csv文件中恢复任务 func InitFromCsv() { - for _, v := range CsvDb.Tasks { + for _, v := range lib.GetCsvDb().Tasks { if v.Status { lib.Println("启动模式:", v.Mode, "监听端口:", v.TcpPort) AddTask(v) @@ -33,31 +30,21 @@ func InitFromCsv() { } //start a new server -func StartNewServer(bridgePort int, cnf *lib.Tunnel, test bool) { - go func() { - Bridge = bridge.NewTunnel(bridgePort, RunList) - if err := Bridge.StartTunnel(); err != nil { - lib.Fatalln("服务端开启失败", err) - } - if svr := NewMode(Bridge, cnf); svr != nil { - RunList[cnf.Id] = svr - err := reflect.ValueOf(svr).MethodByName("Start").Call(nil)[0] - if err.Interface() != nil { - lib.Fatalln(err) - } - } else { - lib.Fatalln("启动模式不正确") - } - }() - for { - select { - case <-startFinish: - if test { - log.Println("测试完成,未发现错误") - os.Exit(0) - } - } +func StartNewServer(bridgePort int, cnf *lib.Tunnel) { + Bridge = bridge.NewTunnel(bridgePort, RunList) + if err := Bridge.StartTunnel(); err != nil { + lib.Fatalln("服务端开启失败", err) } + if svr := NewMode(Bridge, cnf); svr != nil { + RunList[cnf.Id] = svr + err := reflect.ValueOf(svr).MethodByName("Start").Call(nil)[0] + if err.Interface() != nil { + lib.Fatalln(err) + } + } else { + lib.Fatalln("启动模式不正确") + } + } //new a server by mode name @@ -94,11 +81,11 @@ func NewMode(Bridge *bridge.Bridge, c *lib.Tunnel) interface{} { func StopServer(id int) error { if v, ok := RunList[id]; ok { reflect.ValueOf(v).MethodByName("Close").Call(nil) - if t, err := CsvDb.GetTask(id); err != nil { + if t, err := lib.GetCsvDb().GetTask(id); err != nil { return err } else { t.Status = false - CsvDb.UpdateTask(t) + lib.GetCsvDb().UpdateTask(t) } return nil } @@ -124,12 +111,12 @@ func AddTask(t *lib.Tunnel) error { //start task func StartTask(id int) error { - if t, err := CsvDb.GetTask(id); err != nil { + if t, err := lib.GetCsvDb().GetTask(id); err != nil { return err } else { AddTask(t) t.Status = true - CsvDb.UpdateTask(t) + lib.GetCsvDb().UpdateTask(t) } return nil } @@ -139,12 +126,12 @@ func DelTask(id int) error { if err := StopServer(id); err != nil { return err } - return CsvDb.DelTask(id) + return lib.GetCsvDb().DelTask(id) } //get key by host from x func GetInfoByHost(host string) (h *lib.Host, err error) { - for _, v := range CsvDb.Hosts { + for _, v := range lib.GetCsvDb().Hosts { s := strings.Split(host, ":") if s[0] == v.Host { h = v @@ -159,7 +146,7 @@ func GetInfoByHost(host string) (h *lib.Host, err error) { func GetTunnel(start, length int, typeVal string, clientId int) ([]*lib.Tunnel, int) { list := make([]*lib.Tunnel, 0) var cnt int - for _, v := range CsvDb.Tasks { + for _, v := range lib.GetCsvDb().Tasks { if (typeVal != "" && v.Mode != typeVal) || (typeVal == "" && clientId != v.Client.Id) { continue } @@ -185,7 +172,7 @@ func GetTunnel(start, length int, typeVal string, clientId int) ([]*lib.Tunnel, //获取客户端列表 func GetClientList(start, length int) (list []*lib.Client, cnt int) { - list, cnt = CsvDb.GetClientList(start, length) + list, cnt = lib.GetCsvDb().GetClientList(start, length) dealClientData(list) return } @@ -199,13 +186,13 @@ func dealClientData(list []*lib.Client) { } v.Flow.InletFlow = 0 v.Flow.ExportFlow = 0 - for _, h := range CsvDb.Hosts { + for _, h := range lib.GetCsvDb().Hosts { if h.Client.Id == v.Id { v.Flow.InletFlow += h.Flow.InletFlow v.Flow.ExportFlow += h.Flow.ExportFlow } } - for _, t := range CsvDb.Tasks { + for _, t := range lib.GetCsvDb().Tasks { if t.Client.Id == v.Id { v.Flow.InletFlow += t.Flow.InletFlow v.Flow.ExportFlow += t.Flow.ExportFlow @@ -217,14 +204,14 @@ func dealClientData(list []*lib.Client) { //根据客户端id删除其所属的所有隧道和域名 func DelTunnelAndHostByClientId(clientId int) { - for _, v := range CsvDb.Tasks { + for _, v := range lib.GetCsvDb().Tasks { if v.Client.Id == clientId { DelTask(v.Id) } } - for _, v := range CsvDb.Hosts { + for _, v := range lib.GetCsvDb().Hosts { if v.Client.Id == clientId { - CsvDb.DelHost(v.Host) + lib.GetCsvDb().DelHost(v.Host) } } } @@ -236,9 +223,9 @@ func DelClientConnect(clientId int) { func GetDashboardData() map[string]int { data := make(map[string]int) - data["hostCount"] = len(CsvDb.Hosts) - data["clientCount"] = len(CsvDb.Clients) - list := CsvDb.Clients + data["hostCount"] = len(lib.GetCsvDb().Hosts) + data["clientCount"] = len(lib.GetCsvDb().Clients) + list := lib.GetCsvDb().Clients dealClientData(list) c := 0 var in, out int64 @@ -252,7 +239,7 @@ func GetDashboardData() map[string]int { data["clientOnlineCount"] = c data["inletFlowCount"] = int(in) data["exportFlowCount"] = int(out) - for _, v := range CsvDb.Tasks { + for _, v := range lib.GetCsvDb().Tasks { switch v.Mode { case "tunnelServer": data["tunnelServerCount"] += 1 diff --git a/server/tcp.go b/server/tcp.go index 5349ab5..d9d1de3 100755 --- a/server/tcp.go +++ b/server/tcp.go @@ -6,6 +6,7 @@ import ( "github.com/cnlh/nps/bridge" "github.com/cnlh/nps/lib" "net" + "path/filepath" "strings" ) @@ -71,10 +72,14 @@ type WebServer struct { //开始 func (s *WebServer) Start() error { + p, _ := beego.AppConfig.Int("httpport") + if !lib.TestTcpPort(p) { + lib.Fatalln("web管理端口", p, "被占用!") + } beego.BConfig.WebConfig.Session.SessionOn = true lib.Println("web管理启动,访问端口为", beego.AppConfig.String("httpport")) - beego.SetViewsPath(beego.AppPath + "/web/views") - beego.SetStaticPath("/static", beego.AppPath+"/web/static") + beego.SetStaticPath("/static", filepath.Join(lib.GetRunPath(), "web", "static")) + beego.SetViewsPath(filepath.Join(lib.GetRunPath(), "web", "views")) beego.Run() return errors.New("web管理启动失败") } diff --git a/server/test.go b/server/test.go new file mode 100644 index 0000000..358ef0c --- /dev/null +++ b/server/test.go @@ -0,0 +1,54 @@ +package server + +import ( + "github.com/astaxie/beego" + "github.com/cnlh/nps/lib" + "log" + "strconv" +) + +func TestServerConfig() { + var postArr []int + for _, v := range lib.GetCsvDb().Tasks { + isInArr(&postArr, v.TcpPort, v.Remark) + } + p, err := beego.AppConfig.Int("httpport") + if err != nil { + log.Fatalln("Getting web management port error :", err) + } else { + isInArr(&postArr, p, "WebmManagement port") + } + if p := beego.AppConfig.String("httpProxyPort"); p != "" { + if port, err := strconv.Atoi(p); err != nil { + log.Fatalln("get http port error:", err) + } else { + isInArr(&postArr, port, "https port") + } + } + if p := beego.AppConfig.String("httpsProxyPort"); p != "" { + if port, err := strconv.Atoi(p); err != nil { + log.Fatalln("get https port error", err) + } else { + if !lib.FileExists(beego.AppConfig.String("pemPath")) { + log.Fatalf("ssl certFile %s is not exist", beego.AppConfig.String("pemPath")) + } + if !lib.FileExists(beego.AppConfig.String("ketPath")) { + log.Fatalf("ssl keyFile %s is not exist", beego.AppConfig.String("pemPath")) + } + isInArr(&postArr, port, "http port") + } + } +} + +func isInArr(arr *[]int, val int, remark string) { + for _, v := range *arr { + if v == val { + log.Fatalf("the port %d is reused,remark: %s", val, remark) + } + } + if !lib.TestTcpPort(val) { + log.Fatalf("open the %d port error ,remark: %s", val, remark) + } + *arr = append(*arr, val) + return +} diff --git a/web/controllers/base.go b/web/controllers/base.go index 4346069..6039af5 100755 --- a/web/controllers/base.go +++ b/web/controllers/base.go @@ -2,8 +2,8 @@ package controllers import ( "github.com/astaxie/beego" - "github.com/cnlh/nps/server" "github.com/cnlh/nps/lib" + "github.com/cnlh/nps/server" "strconv" "strings" ) diff --git a/web/controllers/client.go b/web/controllers/client.go index 588148b..85cc43e 100644 --- a/web/controllers/client.go +++ b/web/controllers/client.go @@ -1,8 +1,8 @@ package controllers import ( - "github.com/cnlh/nps/server" "github.com/cnlh/nps/lib" + "github.com/cnlh/nps/server" ) type ClientController struct { @@ -30,7 +30,7 @@ func (s *ClientController) Add() { } else { t := &lib.Client{ VerifyKey: lib.GetRandomString(16), - Id: server.CsvDb.GetClientId(), + Id: lib.GetCsvDb().GetClientId(), Status: true, Remark: s.GetString("remark"), Cnf: &lib.Config{ @@ -50,7 +50,7 @@ func (s *ClientController) Add() { t.Rate = lib.NewRate(int64(t.RateLimit * 1024)) t.Rate.Start() } - server.CsvDb.NewClient(t) + lib.GetCsvDb().NewClient(t) s.AjaxOk("添加成功") } } @@ -58,7 +58,7 @@ func (s *ClientController) GetClient() { if s.Ctx.Request.Method == "POST" { id := s.GetIntNoErr("id") data := make(map[string]interface{}) - if c, err := server.CsvDb.GetClient(id); err != nil { + if c, err := lib.GetCsvDb().GetClient(id); err != nil { data["code"] = 0 } else { data["code"] = 1 @@ -74,7 +74,7 @@ func (s *ClientController) Edit() { id := s.GetIntNoErr("id") if s.Ctx.Request.Method == "GET" { s.Data["menu"] = "client" - if c, err := server.CsvDb.GetClient(id); err != nil { + if c, err := lib.GetCsvDb().GetClient(id); err != nil { s.error() } else { s.Data["c"] = c @@ -82,7 +82,7 @@ func (s *ClientController) Edit() { s.SetInfo("修改") s.display() } else { - if c, err := server.CsvDb.GetClient(id); err != nil { + if c, err := lib.GetCsvDb().GetClient(id); err != nil { s.error() } else { c.Remark = s.GetString("remark") @@ -101,7 +101,7 @@ func (s *ClientController) Edit() { } else { c.Rate = nil } - server.CsvDb.UpdateClient(c) + lib.GetCsvDb().UpdateClient(c) } s.AjaxOk("修改成功") } @@ -110,7 +110,7 @@ func (s *ClientController) Edit() { //更改状态 func (s *ClientController) ChangeStatus() { id := s.GetIntNoErr("id") - if client, err := server.CsvDb.GetClient(id); err == nil { + if client, err := lib.GetCsvDb().GetClient(id); err == nil { client.Status = s.GetBoolNoErr("status") if client.Status == false { server.DelClientConnect(client.Id) @@ -123,7 +123,7 @@ func (s *ClientController) ChangeStatus() { //删除客户端 func (s *ClientController) Del() { id := s.GetIntNoErr("id") - if err := server.CsvDb.DelClient(id); err != nil { + if err := lib.GetCsvDb().DelClient(id); err != nil { s.AjaxErr("删除失败") } server.DelTunnelAndHostByClientId(id) diff --git a/web/controllers/index.go b/web/controllers/index.go index c011dcd..ea25f18 100755 --- a/web/controllers/index.go +++ b/web/controllers/index.go @@ -1,8 +1,8 @@ package controllers import ( - "github.com/cnlh/nps/server" "github.com/cnlh/nps/lib" + "github.com/cnlh/nps/server" ) type IndexController struct { @@ -82,17 +82,17 @@ func (s *IndexController) Add() { Compress: s.GetString("compress"), Crypt: s.GetBoolNoErr("crypt"), }, - Id: server.CsvDb.GetTaskId(), + Id: lib.GetCsvDb().GetTaskId(), UseClientCnf: s.GetBoolNoErr("use_client"), Status: true, Remark: s.GetString("remark"), Flow: &lib.Flow{}, } var err error - if t.Client, err = server.CsvDb.GetClient(s.GetIntNoErr("client_id")); err != nil { + if t.Client, err = lib.GetCsvDb().GetClient(s.GetIntNoErr("client_id")); err != nil { s.AjaxErr(err.Error()) } - server.CsvDb.NewTask(t) + lib.GetCsvDb().NewTask(t) if err := server.AddTask(t); err != nil { s.AjaxErr(err.Error()) } else { @@ -103,7 +103,7 @@ func (s *IndexController) Add() { func (s *IndexController) GetOneTunnel() { id := s.GetIntNoErr("id") data := make(map[string]interface{}) - if t, err := server.CsvDb.GetTask(id); err != nil { + if t, err := lib.GetCsvDb().GetTask(id); err != nil { data["code"] = 0 } else { data["code"] = 1 @@ -115,7 +115,7 @@ func (s *IndexController) GetOneTunnel() { func (s *IndexController) Edit() { id := s.GetIntNoErr("id") if s.Ctx.Request.Method == "GET" { - if t, err := server.CsvDb.GetTask(id); err != nil { + if t, err := lib.GetCsvDb().GetTask(id); err != nil { s.error() } else { s.Data["t"] = t @@ -123,7 +123,7 @@ func (s *IndexController) Edit() { s.SetInfo("修改") s.display() } else { - if t, err := server.CsvDb.GetTask(id); err != nil { + if t, err := lib.GetCsvDb().GetTask(id); err != nil { s.error() } else { t.TcpPort = s.GetIntNoErr("port") @@ -137,10 +137,10 @@ func (s *IndexController) Edit() { t.Config.Crypt = s.GetBoolNoErr("crypt") t.UseClientCnf = s.GetBoolNoErr("use_client") t.Remark = s.GetString("remark") - if t.Client, err = server.CsvDb.GetClient(s.GetIntNoErr("client_id")); err != nil { + if t.Client, err = lib.GetCsvDb().GetClient(s.GetIntNoErr("client_id")); err != nil { s.AjaxErr("修改失败") } - server.CsvDb.UpdateTask(t) + lib.GetCsvDb().UpdateTask(t) } s.AjaxOk("修改成功") } @@ -179,7 +179,7 @@ func (s *IndexController) HostList() { } else { start, length := s.GetAjaxParams() clientId := s.GetIntNoErr("client_id") - list, cnt := server.CsvDb.GetHost(start, length, clientId) + list, cnt := lib.GetCsvDb().GetHost(start, length, clientId) s.AjaxTable(list, cnt, cnt) } } @@ -200,7 +200,7 @@ func (s *IndexController) GetHost() { func (s *IndexController) DelHost() { host := s.GetString("host") - if err := server.CsvDb.DelHost(host); err != nil { + if err := lib.GetCsvDb().DelHost(host); err != nil { s.AjaxErr("删除失败") } s.AjaxOk("删除成功") @@ -222,10 +222,10 @@ func (s *IndexController) AddHost() { Flow: &lib.Flow{}, } var err error - if h.Client, err = server.CsvDb.GetClient(s.GetIntNoErr("client_id")); err != nil { + if h.Client, err = lib.GetCsvDb().GetClient(s.GetIntNoErr("client_id")); err != nil { s.AjaxErr("添加失败") } - server.CsvDb.NewHost(h) + lib.GetCsvDb().NewHost(h) s.AjaxOk("添加成功") } } @@ -251,9 +251,9 @@ func (s *IndexController) EditHost() { h.HostChange = s.GetString("hostchange") h.Remark = s.GetString("remark") h.TargetArr = nil - server.CsvDb.UpdateHost(h) + lib.GetCsvDb().UpdateHost(h) var err error - if h.Client, err = server.CsvDb.GetClient(s.GetIntNoErr("client_id")); err != nil { + if h.Client, err = lib.GetCsvDb().GetClient(s.GetIntNoErr("client_id")); err != nil { s.AjaxErr("修改失败") } } diff --git a/web/static/js/chart.js b/web/static/js/chart.js deleted file mode 100755 index b0a6b9c..0000000 --- a/web/static/js/chart.js +++ /dev/null @@ -1,3477 +0,0 @@ -/*! - * Chart.js - * http://chartjs.org/ - * Version: 1.0.1 - * - * Copyright 2015 Nick Downie - * Released under the MIT license - * https://github.com/nnnick/Chart.js/blob/master/LICENSE.md - */ - - -(function(){ - - "use strict"; - - //Declare root variable - window in the browser, global on the server - var root = this, - previous = root.Chart; - - //Occupy the global variable of Chart, and create a simple base class - var Chart = function(context){ - var chart = this; - this.canvas = context.canvas; - - this.ctx = context; - - //Variables global to the chart - var computeDimension = function(element,dimension) - { - if (element['offset'+dimension]) - { - return element['offset'+dimension]; - } - else - { - return document.defaultView.getComputedStyle(element).getPropertyValue(dimension); - } - } - - var width = this.width = computeDimension(context.canvas,'Width'); - var height = this.height = computeDimension(context.canvas,'Height'); - - // Firefox requires this to work correctly - context.canvas.width = width; - context.canvas.height = height; - - var width = this.width = context.canvas.width; - var height = this.height = context.canvas.height; - this.aspectRatio = this.width / this.height; - //High pixel density displays - multiply the size of the canvas height/width by the device pixel ratio, then scale. - helpers.retinaScale(this); - - return this; - }; - //Globally expose the defaults to allow for user updating/changing - Chart.defaults = { - global: { - // Boolean - Whether to animate the chart - animation: true, - - // Number - Number of animation steps - animationSteps: 60, - - // String - Animation easing effect - animationEasing: "easeOutQuart", - - // Boolean - If we should show the scale at all - showScale: true, - - // Boolean - If we want to override with a hard coded scale - scaleOverride: false, - - // ** Required if scaleOverride is true ** - // Number - The number of steps in a hard coded scale - scaleSteps: null, - // Number - The value jump in the hard coded scale - scaleStepWidth: null, - // Number - The scale starting value - scaleStartValue: null, - - // String - Colour of the scale line - scaleLineColor: "rgba(0,0,0,.1)", - - // Number - Pixel width of the scale line - scaleLineWidth: 1, - - // Boolean - Whether to show labels on the scale - scaleShowLabels: true, - - // Interpolated JS string - can access value - scaleLabel: "<%=value%>", - - // Boolean - Whether the scale should stick to integers, and not show any floats even if drawing space is there - scaleIntegersOnly: true, - - // Boolean - Whether the scale should start at zero, or an order of magnitude down from the lowest value - scaleBeginAtZero: false, - - // String - Scale label font declaration for the scale label - scaleFontFamily: "inherit", - - // Number - Scale label font size in pixels - scaleFontSize: 12, - - // String - Scale label font weight style - scaleFontStyle: "normal", - - // String - Scale label font colour - scaleFontColor: "#666", - - // Boolean - whether or not the chart should be responsive and resize when the browser does. - responsive: true, - - // Boolean - whether to maintain the starting aspect ratio or not when responsive, if set to false, will take up entire container - maintainAspectRatio: true, - - // Boolean - Determines whether to draw tooltips on the canvas or not - attaches events to touchmove & mousemove - showTooltips: true, - - // Boolean - Determines whether to draw built-in tooltip or call custom tooltip function - customTooltips: false, - - // Array - Array of string names to attach tooltip events - tooltipEvents: ["mousemove", "touchstart", "touchmove", "mouseout"], - - // String - Tooltip background colour - tooltipFillColor: "rgba(0,0,0,0.8)", - - // String - Tooltip label font declaration for the scale label - tooltipFontFamily: "inherit", - - // Number - Tooltip label font size in pixels - tooltipFontSize: 14, - - // String - Tooltip font weight style - tooltipFontStyle: "normal", - - // String - Tooltip label font colour - tooltipFontColor: "#fff", - - // String - Tooltip title font declaration for the scale label - tooltipTitleFontFamily: "inherit", - - // Number - Tooltip title font size in pixels - tooltipTitleFontSize: 14, - - // String - Tooltip title font weight style - tooltipTitleFontStyle: "bold", - - // String - Tooltip title font colour - tooltipTitleFontColor: "#fff", - - // Number - pixel width of padding around tooltip text - tooltipYPadding: 6, - - // Number - pixel width of padding around tooltip text - tooltipXPadding: 6, - - // Number - Size of the caret on the tooltip - tooltipCaretSize: 8, - - // Number - Pixel radius of the tooltip border - tooltipCornerRadius: 6, - - // Number - Pixel offset from point x to tooltip edge - tooltipXOffset: 10, - - // String - Template string for single tooltips - tooltipTemplate: "<%if (label){%><%=label%>: <%}%><%= value %>", - - // String - Template string for single tooltips - multiTooltipTemplate: "<%= value %>", - - // String - Colour behind the legend colour block - multiTooltipKeyBackground: '#fff', - - // Function - Will fire on animation progression. - onAnimationProgress: function(){}, - - // Function - Will fire on animation completion. - onAnimationComplete: function(){} - - } - }; - - //Create a dictionary of chart types, to allow for extension of existing types - Chart.types = {}; - - //Global Chart helpers object for utility methods and classes - var helpers = Chart.helpers = {}; - - //-- Basic js utility methods - var each = helpers.each = function(loopable,callback,self){ - var additionalArgs = Array.prototype.slice.call(arguments, 3); - // Check to see if null or undefined firstly. - if (loopable){ - if (loopable.length === +loopable.length){ - var i; - for (i=0; i= 0; i--) { - var currentItem = arrayToSearch[i]; - if (filterCallback(currentItem)){ - return currentItem; - } - } - }, - inherits = helpers.inherits = function(extensions){ - //Basic javascript inheritance based on the model created in Backbone.js - var parent = this; - var ChartElement = (extensions && extensions.hasOwnProperty("constructor")) ? extensions.constructor : function(){ return parent.apply(this, arguments); }; - - var Surrogate = function(){ this.constructor = ChartElement;}; - Surrogate.prototype = parent.prototype; - ChartElement.prototype = new Surrogate(); - - ChartElement.extend = inherits; - - if (extensions) extend(ChartElement.prototype, extensions); - - ChartElement.__super__ = parent.prototype; - - return ChartElement; - }, - noop = helpers.noop = function(){}, - uid = helpers.uid = (function(){ - var id=0; - return function(){ - return "chart-" + id++; - }; - })(), - warn = helpers.warn = function(str){ - //Method for warning of errors - if (window.console && typeof window.console.warn == "function") console.warn(str); - }, - amd = helpers.amd = (typeof define == 'function' && define.amd), - //-- Math methods - isNumber = helpers.isNumber = function(n){ - return !isNaN(parseFloat(n)) && isFinite(n); - }, - max = helpers.max = function(array){ - return Math.max.apply( Math, array ); - }, - min = helpers.min = function(array){ - return Math.min.apply( Math, array ); - }, - cap = helpers.cap = function(valueToCap,maxValue,minValue){ - if(isNumber(maxValue)) { - if( valueToCap > maxValue ) { - return maxValue; - } - } - else if(isNumber(minValue)){ - if ( valueToCap < minValue ){ - return minValue; - } - } - return valueToCap; - }, - getDecimalPlaces = helpers.getDecimalPlaces = function(num){ - if (num%1!==0 && isNumber(num)){ - return num.toString().split(".")[1].length; - } - else { - return 0; - } - }, - toRadians = helpers.radians = function(degrees){ - return degrees * (Math.PI/180); - }, - // Gets the angle from vertical upright to the point about a centre. - getAngleFromPoint = helpers.getAngleFromPoint = function(centrePoint, anglePoint){ - var distanceFromXCenter = anglePoint.x - centrePoint.x, - distanceFromYCenter = anglePoint.y - centrePoint.y, - radialDistanceFromCenter = Math.sqrt( distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter); - - - var angle = Math.PI * 2 + Math.atan2(distanceFromYCenter, distanceFromXCenter); - - //If the segment is in the top left quadrant, we need to add another rotation to the angle - if (distanceFromXCenter < 0 && distanceFromYCenter < 0){ - angle += Math.PI*2; - } - - return { - angle: angle, - distance: radialDistanceFromCenter - }; - }, - aliasPixel = helpers.aliasPixel = function(pixelWidth){ - return (pixelWidth % 2 === 0) ? 0 : 0.5; - }, - splineCurve = helpers.splineCurve = function(FirstPoint,MiddlePoint,AfterPoint,t){ - //Props to Rob Spencer at scaled innovation for his post on splining between points - //http://scaledinnovation.com/analytics/splines/aboutSplines.html - var d01=Math.sqrt(Math.pow(MiddlePoint.x-FirstPoint.x,2)+Math.pow(MiddlePoint.y-FirstPoint.y,2)), - d12=Math.sqrt(Math.pow(AfterPoint.x-MiddlePoint.x,2)+Math.pow(AfterPoint.y-MiddlePoint.y,2)), - fa=t*d01/(d01+d12),// scaling factor for triangle Ta - fb=t*d12/(d01+d12); - return { - inner : { - x : MiddlePoint.x-fa*(AfterPoint.x-FirstPoint.x), - y : MiddlePoint.y-fa*(AfterPoint.y-FirstPoint.y) - }, - outer : { - x: MiddlePoint.x+fb*(AfterPoint.x-FirstPoint.x), - y : MiddlePoint.y+fb*(AfterPoint.y-FirstPoint.y) - } - }; - }, - calculateOrderOfMagnitude = helpers.calculateOrderOfMagnitude = function(val){ - return Math.floor(Math.log(val) / Math.LN10); - }, - calculateScaleRange = helpers.calculateScaleRange = function(valuesArray, drawingSize, textSize, startFromZero, integersOnly){ - - //Set a minimum step of two - a point at the top of the graph, and a point at the base - var minSteps = 2, - maxSteps = Math.floor(drawingSize/(textSize * 1.5)), - skipFitting = (minSteps >= maxSteps); - - var maxValue = max(valuesArray), - minValue = min(valuesArray); - - // We need some degree of seperation here to calculate the scales if all the values are the same - // Adding/minusing 0.5 will give us a range of 1. - if (maxValue === minValue){ - maxValue += 0.5; - // So we don't end up with a graph with a negative start value if we've said always start from zero - if (minValue >= 0.5 && !startFromZero){ - minValue -= 0.5; - } - else{ - // Make up a whole number above the values - maxValue += 0.5; - } - } - - var valueRange = Math.abs(maxValue - minValue), - rangeOrderOfMagnitude = calculateOrderOfMagnitude(valueRange), - graphMax = Math.ceil(maxValue / (1 * Math.pow(10, rangeOrderOfMagnitude))) * Math.pow(10, rangeOrderOfMagnitude), - graphMin = (startFromZero) ? 0 : Math.floor(minValue / (1 * Math.pow(10, rangeOrderOfMagnitude))) * Math.pow(10, rangeOrderOfMagnitude), - graphRange = graphMax - graphMin, - stepValue = Math.pow(10, rangeOrderOfMagnitude), - numberOfSteps = Math.round(graphRange / stepValue); - - //If we have more space on the graph we'll use it to give more definition to the data - while((numberOfSteps > maxSteps || (numberOfSteps * 2) < maxSteps) && !skipFitting) { - if(numberOfSteps > maxSteps){ - stepValue *=2; - numberOfSteps = Math.round(graphRange/stepValue); - // Don't ever deal with a decimal number of steps - cancel fitting and just use the minimum number of steps. - if (numberOfSteps % 1 !== 0){ - skipFitting = true; - } - } - //We can fit in double the amount of scale points on the scale - else{ - //If user has declared ints only, and the step value isn't a decimal - if (integersOnly && rangeOrderOfMagnitude >= 0){ - //If the user has said integers only, we need to check that making the scale more granular wouldn't make it a float - if(stepValue/2 % 1 === 0){ - stepValue /=2; - numberOfSteps = Math.round(graphRange/stepValue); - } - //If it would make it a float break out of the loop - else{ - break; - } - } - //If the scale doesn't have to be an int, make the scale more granular anyway. - else{ - stepValue /=2; - numberOfSteps = Math.round(graphRange/stepValue); - } - - } - } - - if (skipFitting){ - numberOfSteps = minSteps; - stepValue = graphRange / numberOfSteps; - } - - return { - steps : numberOfSteps, - stepValue : stepValue, - min : graphMin, - max : graphMin + (numberOfSteps * stepValue) - }; - - }, - /* jshint ignore:start */ - // Blows up jshint errors based on the new Function constructor - //Templating methods - //Javascript micro templating by John Resig - source at http://ejohn.org/blog/javascript-micro-templating/ - template = helpers.template = function(templateString, valuesObject){ - - // If templateString is function rather than string-template - call the function for valuesObject - - if(templateString instanceof Function){ - return templateString(valuesObject); - } - - var cache = {}; - function tmpl(str, data){ - // Figure out if we're getting a template, or if we need to - // load the template - and be sure to cache the result. - var fn = !/\W/.test(str) ? - cache[str] = cache[str] : - - // Generate a reusable function that will serve as a template - // generator (and which will be cached). - new Function("obj", - "var p=[],print=function(){p.push.apply(p,arguments);};" + - - // Introduce the data as local variables using with(){} - "with(obj){p.push('" + - - // Convert the template into pure JavaScript - str - .replace(/[\r\t\n]/g, " ") - .split("<%").join("\t") - .replace(/((^|%>)[^\t]*)'/g, "$1\r") - .replace(/\t=(.*?)%>/g, "',$1,'") - .split("\t").join("');") - .split("%>").join("p.push('") - .split("\r").join("\\'") + - "');}return p.join('');" - ); - - // Provide some basic currying to the user - return data ? fn( data ) : fn; - } - return tmpl(templateString,valuesObject); - }, - /* jshint ignore:end */ - generateLabels = helpers.generateLabels = function(templateString,numberOfSteps,graphMin,stepValue){ - var labelsArray = new Array(numberOfSteps); - if (labelTemplateString){ - each(labelsArray,function(val,index){ - labelsArray[index] = template(templateString,{value: (graphMin + (stepValue*(index+1)))}); - }); - } - return labelsArray; - }, - //--Animation methods - //Easing functions adapted from Robert Penner's easing equations - //http://www.robertpenner.com/easing/ - easingEffects = helpers.easingEffects = { - linear: function (t) { - return t; - }, - easeInQuad: function (t) { - return t * t; - }, - easeOutQuad: function (t) { - return -1 * t * (t - 2); - }, - easeInOutQuad: function (t) { - if ((t /= 1 / 2) < 1) return 1 / 2 * t * t; - return -1 / 2 * ((--t) * (t - 2) - 1); - }, - easeInCubic: function (t) { - return t * t * t; - }, - easeOutCubic: function (t) { - return 1 * ((t = t / 1 - 1) * t * t + 1); - }, - easeInOutCubic: function (t) { - if ((t /= 1 / 2) < 1) return 1 / 2 * t * t * t; - return 1 / 2 * ((t -= 2) * t * t + 2); - }, - easeInQuart: function (t) { - return t * t * t * t; - }, - easeOutQuart: function (t) { - return -1 * ((t = t / 1 - 1) * t * t * t - 1); - }, - easeInOutQuart: function (t) { - if ((t /= 1 / 2) < 1) return 1 / 2 * t * t * t * t; - return -1 / 2 * ((t -= 2) * t * t * t - 2); - }, - easeInQuint: function (t) { - return 1 * (t /= 1) * t * t * t * t; - }, - easeOutQuint: function (t) { - return 1 * ((t = t / 1 - 1) * t * t * t * t + 1); - }, - easeInOutQuint: function (t) { - if ((t /= 1 / 2) < 1) return 1 / 2 * t * t * t * t * t; - return 1 / 2 * ((t -= 2) * t * t * t * t + 2); - }, - easeInSine: function (t) { - return -1 * Math.cos(t / 1 * (Math.PI / 2)) + 1; - }, - easeOutSine: function (t) { - return 1 * Math.sin(t / 1 * (Math.PI / 2)); - }, - easeInOutSine: function (t) { - return -1 / 2 * (Math.cos(Math.PI * t / 1) - 1); - }, - easeInExpo: function (t) { - return (t === 0) ? 1 : 1 * Math.pow(2, 10 * (t / 1 - 1)); - }, - easeOutExpo: function (t) { - return (t === 1) ? 1 : 1 * (-Math.pow(2, -10 * t / 1) + 1); - }, - easeInOutExpo: function (t) { - if (t === 0) return 0; - if (t === 1) return 1; - if ((t /= 1 / 2) < 1) return 1 / 2 * Math.pow(2, 10 * (t - 1)); - return 1 / 2 * (-Math.pow(2, -10 * --t) + 2); - }, - easeInCirc: function (t) { - if (t >= 1) return t; - return -1 * (Math.sqrt(1 - (t /= 1) * t) - 1); - }, - easeOutCirc: function (t) { - return 1 * Math.sqrt(1 - (t = t / 1 - 1) * t); - }, - easeInOutCirc: function (t) { - if ((t /= 1 / 2) < 1) return -1 / 2 * (Math.sqrt(1 - t * t) - 1); - return 1 / 2 * (Math.sqrt(1 - (t -= 2) * t) + 1); - }, - easeInElastic: function (t) { - var s = 1.70158; - var p = 0; - var a = 1; - if (t === 0) return 0; - if ((t /= 1) == 1) return 1; - if (!p) p = 1 * 0.3; - if (a < Math.abs(1)) { - a = 1; - s = p / 4; - } else s = p / (2 * Math.PI) * Math.asin(1 / a); - return -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * 1 - s) * (2 * Math.PI) / p)); - }, - easeOutElastic: function (t) { - var s = 1.70158; - var p = 0; - var a = 1; - if (t === 0) return 0; - if ((t /= 1) == 1) return 1; - if (!p) p = 1 * 0.3; - if (a < Math.abs(1)) { - a = 1; - s = p / 4; - } else s = p / (2 * Math.PI) * Math.asin(1 / a); - return a * Math.pow(2, -10 * t) * Math.sin((t * 1 - s) * (2 * Math.PI) / p) + 1; - }, - easeInOutElastic: function (t) { - var s = 1.70158; - var p = 0; - var a = 1; - if (t === 0) return 0; - if ((t /= 1 / 2) == 2) return 1; - if (!p) p = 1 * (0.3 * 1.5); - if (a < Math.abs(1)) { - a = 1; - s = p / 4; - } else s = p / (2 * Math.PI) * Math.asin(1 / a); - if (t < 1) return -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * 1 - s) * (2 * Math.PI) / p)); - return a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t * 1 - s) * (2 * Math.PI) / p) * 0.5 + 1; - }, - easeInBack: function (t) { - var s = 1.70158; - return 1 * (t /= 1) * t * ((s + 1) * t - s); - }, - easeOutBack: function (t) { - var s = 1.70158; - return 1 * ((t = t / 1 - 1) * t * ((s + 1) * t + s) + 1); - }, - easeInOutBack: function (t) { - var s = 1.70158; - if ((t /= 1 / 2) < 1) return 1 / 2 * (t * t * (((s *= (1.525)) + 1) * t - s)); - return 1 / 2 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2); - }, - easeInBounce: function (t) { - return 1 - easingEffects.easeOutBounce(1 - t); - }, - easeOutBounce: function (t) { - if ((t /= 1) < (1 / 2.75)) { - return 1 * (7.5625 * t * t); - } else if (t < (2 / 2.75)) { - return 1 * (7.5625 * (t -= (1.5 / 2.75)) * t + 0.75); - } else if (t < (2.5 / 2.75)) { - return 1 * (7.5625 * (t -= (2.25 / 2.75)) * t + 0.9375); - } else { - return 1 * (7.5625 * (t -= (2.625 / 2.75)) * t + 0.984375); - } - }, - easeInOutBounce: function (t) { - if (t < 1 / 2) return easingEffects.easeInBounce(t * 2) * 0.5; - return easingEffects.easeOutBounce(t * 2 - 1) * 0.5 + 1 * 0.5; - } - }, - //Request animation polyfill - http://www.paulirish.com/2011/requestanimationframe-for-smart-animating/ - requestAnimFrame = helpers.requestAnimFrame = (function(){ - return window.requestAnimationFrame || - window.webkitRequestAnimationFrame || - window.mozRequestAnimationFrame || - window.oRequestAnimationFrame || - window.msRequestAnimationFrame || - function(callback) { - return window.setTimeout(callback, 1000 / 60); - }; - })(), - cancelAnimFrame = helpers.cancelAnimFrame = (function(){ - return window.cancelAnimationFrame || - window.webkitCancelAnimationFrame || - window.mozCancelAnimationFrame || - window.oCancelAnimationFrame || - window.msCancelAnimationFrame || - function(callback) { - return window.clearTimeout(callback, 1000 / 60); - }; - })(), - animationLoop = helpers.animationLoop = function(callback,totalSteps,easingString,onProgress,onComplete,chartInstance){ - - var currentStep = 0, - easingFunction = easingEffects[easingString] || easingEffects.linear; - - var animationFrame = function(){ - currentStep++; - var stepDecimal = currentStep/totalSteps; - var easeDecimal = easingFunction(stepDecimal); - - callback.call(chartInstance,easeDecimal,stepDecimal, currentStep); - onProgress.call(chartInstance,easeDecimal,stepDecimal); - if (currentStep < totalSteps){ - chartInstance.animationFrame = requestAnimFrame(animationFrame); - } else{ - onComplete.apply(chartInstance); - } - }; - requestAnimFrame(animationFrame); - }, - //-- DOM methods - getRelativePosition = helpers.getRelativePosition = function(evt){ - var mouseX, mouseY; - var e = evt.originalEvent || evt, - canvas = evt.currentTarget || evt.srcElement, - boundingRect = canvas.getBoundingClientRect(); - - if (e.touches){ - mouseX = e.touches[0].clientX - boundingRect.left; - mouseY = e.touches[0].clientY - boundingRect.top; - - } - else{ - mouseX = e.clientX - boundingRect.left; - mouseY = e.clientY - boundingRect.top; - } - - return { - x : mouseX, - y : mouseY - }; - - }, - addEvent = helpers.addEvent = function(node,eventType,method){ - if (node.addEventListener){ - node.addEventListener(eventType,method); - } else if (node.attachEvent){ - node.attachEvent("on"+eventType, method); - } else { - node["on"+eventType] = method; - } - }, - removeEvent = helpers.removeEvent = function(node, eventType, handler){ - if (node.removeEventListener){ - node.removeEventListener(eventType, handler, false); - } else if (node.detachEvent){ - node.detachEvent("on"+eventType,handler); - } else{ - node["on" + eventType] = noop; - } - }, - bindEvents = helpers.bindEvents = function(chartInstance, arrayOfEvents, handler){ - // Create the events object if it's not already present - if (!chartInstance.events) chartInstance.events = {}; - - each(arrayOfEvents,function(eventName){ - chartInstance.events[eventName] = function(){ - handler.apply(chartInstance, arguments); - }; - addEvent(chartInstance.chart.canvas,eventName,chartInstance.events[eventName]); - }); - }, - unbindEvents = helpers.unbindEvents = function (chartInstance, arrayOfEvents) { - each(arrayOfEvents, function(handler,eventName){ - removeEvent(chartInstance.chart.canvas, eventName, handler); - }); - }, - getMaximumWidth = helpers.getMaximumWidth = function(domNode){ - var container = domNode.parentNode; - // TODO = check cross browser stuff with this. - return container.clientWidth; - }, - getMaximumHeight = helpers.getMaximumHeight = function(domNode){ - var container = domNode.parentNode; - // TODO = check cross browser stuff with this. - return container.clientHeight; - }, - getMaximumSize = helpers.getMaximumSize = helpers.getMaximumWidth, // legacy support - retinaScale = helpers.retinaScale = function(chart){ - var ctx = chart.ctx, - width = chart.canvas.width, - height = chart.canvas.height; - - if (window.devicePixelRatio) { - ctx.canvas.style.width = width + "px"; - ctx.canvas.style.height = height + "px"; - ctx.canvas.height = height * window.devicePixelRatio; - ctx.canvas.width = width * window.devicePixelRatio; - ctx.scale(window.devicePixelRatio, window.devicePixelRatio); - } - }, - //-- Canvas methods - clear = helpers.clear = function(chart){ - chart.ctx.clearRect(0,0,chart.width,chart.height); - }, - fontString = helpers.fontString = function(pixelSize,fontStyle,fontFamily){ - return fontStyle + " " + pixelSize+"px " + fontFamily; - }, - longestText = helpers.longestText = function(ctx,font,arrayOfStrings){ - ctx.font = font; - var longest = 0; - each(arrayOfStrings,function(string){ - var textWidth = ctx.measureText(string).width; - longest = (textWidth > longest) ? textWidth : longest; - }); - return longest; - }, - drawRoundedRectangle = helpers.drawRoundedRectangle = function(ctx,x,y,width,height,radius){ - ctx.beginPath(); - ctx.moveTo(x + radius, y); - ctx.lineTo(x + width - radius, y); - ctx.quadraticCurveTo(x + width, y, x + width, y + radius); - ctx.lineTo(x + width, y + height - radius); - ctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height); - ctx.lineTo(x + radius, y + height); - ctx.quadraticCurveTo(x, y + height, x, y + height - radius); - ctx.lineTo(x, y + radius); - ctx.quadraticCurveTo(x, y, x + radius, y); - ctx.closePath(); - }; - - - //Store a reference to each instance - allowing us to globally resize chart instances on window resize. - //Destroy method on the chart will remove the instance of the chart from this reference. - Chart.instances = {}; - - Chart.Type = function(data,options,chart){ - this.options = options; - this.chart = chart; - this.id = uid(); - //Add the chart instance to the global namespace - Chart.instances[this.id] = this; - - // Initialize is always called when a chart type is created - // By default it is a no op, but it should be extended - if (options.responsive){ - this.resize(); - } - this.initialize.call(this,data); - }; - - //Core methods that'll be a part of every chart type - extend(Chart.Type.prototype,{ - initialize : function(){return this;}, - clear : function(){ - clear(this.chart); - return this; - }, - stop : function(){ - // Stops any current animation loop occuring - cancelAnimFrame(this.animationFrame); - return this; - }, - resize : function(callback){ - this.stop(); - var canvas = this.chart.canvas, - newWidth = getMaximumWidth(this.chart.canvas), - newHeight = this.options.maintainAspectRatio ? newWidth / this.chart.aspectRatio : getMaximumHeight(this.chart.canvas); - - canvas.width = this.chart.width = newWidth; - canvas.height = this.chart.height = newHeight; - - retinaScale(this.chart); - - if (typeof callback === "function"){ - callback.apply(this, Array.prototype.slice.call(arguments, 1)); - } - return this; - }, - reflow : noop, - render : function(reflow){ - if (reflow){ - this.reflow(); - } - if (this.options.animation && !reflow){ - helpers.animationLoop( - this.draw, - this.options.animationSteps, - this.options.animationEasing, - this.options.onAnimationProgress, - this.options.onAnimationComplete, - this - ); - } - else{ - this.draw(); - this.options.onAnimationComplete.call(this); - } - return this; - }, - generateLegend : function(){ - return template(this.options.legendTemplate,this); - }, - destroy : function(){ - this.clear(); - unbindEvents(this, this.events); - var canvas = this.chart.canvas; - - // Reset canvas height/width attributes starts a fresh with the canvas context - canvas.width = this.chart.width; - canvas.height = this.chart.height; - - // < IE9 doesn't support removeProperty - if (canvas.style.removeProperty) { - canvas.style.removeProperty('width'); - canvas.style.removeProperty('height'); - } else { - canvas.style.removeAttribute('width'); - canvas.style.removeAttribute('height'); - } - - delete Chart.instances[this.id]; - }, - showTooltip : function(ChartElements, forceRedraw){ - // Only redraw the chart if we've actually changed what we're hovering on. - if (typeof this.activeElements === 'undefined') this.activeElements = []; - - var isChanged = (function(Elements){ - var changed = false; - - if (Elements.length !== this.activeElements.length){ - changed = true; - return changed; - } - - each(Elements, function(element, index){ - if (element !== this.activeElements[index]){ - changed = true; - } - }, this); - return changed; - }).call(this, ChartElements); - - if (!isChanged && !forceRedraw){ - return; - } - else{ - this.activeElements = ChartElements; - } - this.draw(); - if(this.options.customTooltips){ - this.options.customTooltips(false); - } - if (ChartElements.length > 0){ - // If we have multiple datasets, show a MultiTooltip for all of the data points at that index - if (this.datasets && this.datasets.length > 1) { - var dataArray, - dataIndex; - - for (var i = this.datasets.length - 1; i >= 0; i--) { - dataArray = this.datasets[i].points || this.datasets[i].bars || this.datasets[i].segments; - dataIndex = indexOf(dataArray, ChartElements[0]); - if (dataIndex !== -1){ - break; - } - } - var tooltipLabels = [], - tooltipColors = [], - medianPosition = (function(index) { - - // Get all the points at that particular index - var Elements = [], - dataCollection, - xPositions = [], - yPositions = [], - xMax, - yMax, - xMin, - yMin; - helpers.each(this.datasets, function(dataset){ - dataCollection = dataset.points || dataset.bars || dataset.segments; - if (dataCollection[dataIndex] && dataCollection[dataIndex].hasValue()){ - Elements.push(dataCollection[dataIndex]); - } - }); - - helpers.each(Elements, function(element) { - xPositions.push(element.x); - yPositions.push(element.y); - - - //Include any colour information about the element - tooltipLabels.push(helpers.template(this.options.multiTooltipTemplate, element)); - tooltipColors.push({ - fill: element._saved.fillColor || element.fillColor, - stroke: element._saved.strokeColor || element.strokeColor - }); - - }, this); - - yMin = min(yPositions); - yMax = max(yPositions); - - xMin = min(xPositions); - xMax = max(xPositions); - - return { - x: (xMin > this.chart.width/2) ? xMin : xMax, - y: (yMin + yMax)/2 - }; - }).call(this, dataIndex); - - new Chart.MultiTooltip({ - x: medianPosition.x, - y: medianPosition.y, - xPadding: this.options.tooltipXPadding, - yPadding: this.options.tooltipYPadding, - xOffset: this.options.tooltipXOffset, - fillColor: this.options.tooltipFillColor, - textColor: this.options.tooltipFontColor, - fontFamily: this.options.tooltipFontFamily, - fontStyle: this.options.tooltipFontStyle, - fontSize: this.options.tooltipFontSize, - titleTextColor: this.options.tooltipTitleFontColor, - titleFontFamily: this.options.tooltipTitleFontFamily, - titleFontStyle: this.options.tooltipTitleFontStyle, - titleFontSize: this.options.tooltipTitleFontSize, - cornerRadius: this.options.tooltipCornerRadius, - labels: tooltipLabels, - legendColors: tooltipColors, - legendColorBackground : this.options.multiTooltipKeyBackground, - title: ChartElements[0].label, - chart: this.chart, - ctx: this.chart.ctx, - custom: this.options.customTooltips - }).draw(); - - } else { - each(ChartElements, function(Element) { - var tooltipPosition = Element.tooltipPosition(); - new Chart.Tooltip({ - x: Math.round(tooltipPosition.x), - y: Math.round(tooltipPosition.y), - xPadding: this.options.tooltipXPadding, - yPadding: this.options.tooltipYPadding, - fillColor: this.options.tooltipFillColor, - textColor: this.options.tooltipFontColor, - fontFamily: this.options.tooltipFontFamily, - fontStyle: this.options.tooltipFontStyle, - fontSize: this.options.tooltipFontSize, - caretHeight: this.options.tooltipCaretSize, - cornerRadius: this.options.tooltipCornerRadius, - text: template(this.options.tooltipTemplate, Element), - chart: this.chart, - custom: this.options.customTooltips - }).draw(); - }, this); - } - } - return this; - }, - toBase64Image : function(){ - return this.chart.canvas.toDataURL.apply(this.chart.canvas, arguments); - } - }); - - Chart.Type.extend = function(extensions){ - - var parent = this; - - var ChartType = function(){ - return parent.apply(this,arguments); - }; - - //Copy the prototype object of the this class - ChartType.prototype = clone(parent.prototype); - //Now overwrite some of the properties in the base class with the new extensions - extend(ChartType.prototype, extensions); - - ChartType.extend = Chart.Type.extend; - - if (extensions.name || parent.prototype.name){ - - var chartName = extensions.name || parent.prototype.name; - //Assign any potential default values of the new chart type - - //If none are defined, we'll use a clone of the chart type this is being extended from. - //I.e. if we extend a line chart, we'll use the defaults from the line chart if our new chart - //doesn't define some defaults of their own. - - var baseDefaults = (Chart.defaults[parent.prototype.name]) ? clone(Chart.defaults[parent.prototype.name]) : {}; - - Chart.defaults[chartName] = extend(baseDefaults,extensions.defaults); - - Chart.types[chartName] = ChartType; - - //Register this new chart type in the Chart prototype - Chart.prototype[chartName] = function(data,options){ - var config = merge(Chart.defaults.global, Chart.defaults[chartName], options || {}); - return new ChartType(data,config,this); - }; - } else{ - warn("Name not provided for this chart, so it hasn't been registered"); - } - return parent; - }; - - Chart.Element = function(configuration){ - extend(this,configuration); - this.initialize.apply(this,arguments); - this.save(); - }; - extend(Chart.Element.prototype,{ - initialize : function(){}, - restore : function(props){ - if (!props){ - extend(this,this._saved); - } else { - each(props,function(key){ - this[key] = this._saved[key]; - },this); - } - return this; - }, - save : function(){ - this._saved = clone(this); - delete this._saved._saved; - return this; - }, - update : function(newProps){ - each(newProps,function(value,key){ - this._saved[key] = this[key]; - this[key] = value; - },this); - return this; - }, - transition : function(props,ease){ - each(props,function(value,key){ - this[key] = ((value - this._saved[key]) * ease) + this._saved[key]; - },this); - return this; - }, - tooltipPosition : function(){ - return { - x : this.x, - y : this.y - }; - }, - hasValue: function(){ - return isNumber(this.value); - } - }); - - Chart.Element.extend = inherits; - - - Chart.Point = Chart.Element.extend({ - display: true, - inRange: function(chartX,chartY){ - var hitDetectionRange = this.hitDetectionRadius + this.radius; - return ((Math.pow(chartX-this.x, 2)+Math.pow(chartY-this.y, 2)) < Math.pow(hitDetectionRange,2)); - }, - draw : function(){ - if (this.display){ - var ctx = this.ctx; - ctx.beginPath(); - - ctx.arc(this.x, this.y, this.radius, 0, Math.PI*2); - ctx.closePath(); - - ctx.strokeStyle = this.strokeColor; - ctx.lineWidth = this.strokeWidth; - - ctx.fillStyle = this.fillColor; - - ctx.fill(); - ctx.stroke(); - } - - - //Quick debug for bezier curve splining - //Highlights control points and the line between them. - //Handy for dev - stripped in the min version. - - // ctx.save(); - // ctx.fillStyle = "black"; - // ctx.strokeStyle = "black" - // ctx.beginPath(); - // ctx.arc(this.controlPoints.inner.x,this.controlPoints.inner.y, 2, 0, Math.PI*2); - // ctx.fill(); - - // ctx.beginPath(); - // ctx.arc(this.controlPoints.outer.x,this.controlPoints.outer.y, 2, 0, Math.PI*2); - // ctx.fill(); - - // ctx.moveTo(this.controlPoints.inner.x,this.controlPoints.inner.y); - // ctx.lineTo(this.x, this.y); - // ctx.lineTo(this.controlPoints.outer.x,this.controlPoints.outer.y); - // ctx.stroke(); - - // ctx.restore(); - - - - } - }); - - Chart.Arc = Chart.Element.extend({ - inRange : function(chartX,chartY){ - - var pointRelativePosition = helpers.getAngleFromPoint(this, { - x: chartX, - y: chartY - }); - - //Check if within the range of the open/close angle - var betweenAngles = (pointRelativePosition.angle >= this.startAngle && pointRelativePosition.angle <= this.endAngle), - withinRadius = (pointRelativePosition.distance >= this.innerRadius && pointRelativePosition.distance <= this.outerRadius); - - return (betweenAngles && withinRadius); - //Ensure within the outside of the arc centre, but inside arc outer - }, - tooltipPosition : function(){ - var centreAngle = this.startAngle + ((this.endAngle - this.startAngle) / 2), - rangeFromCentre = (this.outerRadius - this.innerRadius) / 2 + this.innerRadius; - return { - x : this.x + (Math.cos(centreAngle) * rangeFromCentre), - y : this.y + (Math.sin(centreAngle) * rangeFromCentre) - }; - }, - draw : function(animationPercent){ - - var easingDecimal = animationPercent || 1; - - var ctx = this.ctx; - - ctx.beginPath(); - - ctx.arc(this.x, this.y, this.outerRadius, this.startAngle, this.endAngle); - - ctx.arc(this.x, this.y, this.innerRadius, this.endAngle, this.startAngle, true); - - ctx.closePath(); - ctx.strokeStyle = this.strokeColor; - ctx.lineWidth = this.strokeWidth; - - ctx.fillStyle = this.fillColor; - - ctx.fill(); - ctx.lineJoin = 'bevel'; - - if (this.showStroke){ - ctx.stroke(); - } - } - }); - - Chart.Rectangle = Chart.Element.extend({ - draw : function(){ - var ctx = this.ctx, - halfWidth = this.width/2, - leftX = this.x - halfWidth, - rightX = this.x + halfWidth, - top = this.base - (this.base - this.y), - halfStroke = this.strokeWidth / 2; - - // Canvas doesn't allow us to stroke inside the width so we can - // adjust the sizes to fit if we're setting a stroke on the line - if (this.showStroke){ - leftX += halfStroke; - rightX -= halfStroke; - top += halfStroke; - } - - ctx.beginPath(); - - ctx.fillStyle = this.fillColor; - ctx.strokeStyle = this.strokeColor; - ctx.lineWidth = this.strokeWidth; - - // It'd be nice to keep this class totally generic to any rectangle - // and simply specify which border to miss out. - ctx.moveTo(leftX, this.base); - ctx.lineTo(leftX, top); - ctx.lineTo(rightX, top); - ctx.lineTo(rightX, this.base); - ctx.fill(); - if (this.showStroke){ - ctx.stroke(); - } - }, - height : function(){ - return this.base - this.y; - }, - inRange : function(chartX,chartY){ - return (chartX >= this.x - this.width/2 && chartX <= this.x + this.width/2) && (chartY >= this.y && chartY <= this.base); - } - }); - - Chart.Tooltip = Chart.Element.extend({ - draw : function(){ - - var ctx = this.chart.ctx; - - ctx.font = fontString(this.fontSize,this.fontStyle,this.fontFamily); - - this.xAlign = "center"; - this.yAlign = "above"; - - //Distance between the actual element.y position and the start of the tooltip caret - var caretPadding = this.caretPadding = 2; - - var tooltipWidth = ctx.measureText(this.text).width + 2*this.xPadding, - tooltipRectHeight = this.fontSize + 2*this.yPadding, - tooltipHeight = tooltipRectHeight + this.caretHeight + caretPadding; - - if (this.x + tooltipWidth/2 >this.chart.width){ - this.xAlign = "left"; - } else if (this.x - tooltipWidth/2 < 0){ - this.xAlign = "right"; - } - - if (this.y - tooltipHeight < 0){ - this.yAlign = "below"; - } - - - var tooltipX = this.x - tooltipWidth/2, - tooltipY = this.y - tooltipHeight; - - ctx.fillStyle = this.fillColor; - - // Custom Tooltips - if(this.custom){ - this.custom(this); - } - else{ - switch(this.yAlign) - { - case "above": - //Draw a caret above the x/y - ctx.beginPath(); - ctx.moveTo(this.x,this.y - caretPadding); - ctx.lineTo(this.x + this.caretHeight, this.y - (caretPadding + this.caretHeight)); - ctx.lineTo(this.x - this.caretHeight, this.y - (caretPadding + this.caretHeight)); - ctx.closePath(); - ctx.fill(); - break; - case "below": - tooltipY = this.y + caretPadding + this.caretHeight; - //Draw a caret below the x/y - ctx.beginPath(); - ctx.moveTo(this.x, this.y + caretPadding); - ctx.lineTo(this.x + this.caretHeight, this.y + caretPadding + this.caretHeight); - ctx.lineTo(this.x - this.caretHeight, this.y + caretPadding + this.caretHeight); - ctx.closePath(); - ctx.fill(); - break; - } - - switch(this.xAlign) - { - case "left": - tooltipX = this.x - tooltipWidth + (this.cornerRadius + this.caretHeight); - break; - case "right": - tooltipX = this.x - (this.cornerRadius + this.caretHeight); - break; - } - - drawRoundedRectangle(ctx,tooltipX,tooltipY,tooltipWidth,tooltipRectHeight,this.cornerRadius); - - ctx.fill(); - - ctx.fillStyle = this.textColor; - ctx.textAlign = "center"; - ctx.textBaseline = "middle"; - ctx.fillText(this.text, tooltipX + tooltipWidth/2, tooltipY + tooltipRectHeight/2); - } - } - }); - - Chart.MultiTooltip = Chart.Element.extend({ - initialize : function(){ - this.font = fontString(this.fontSize,this.fontStyle,this.fontFamily); - - this.titleFont = fontString(this.titleFontSize,this.titleFontStyle,this.titleFontFamily); - - this.height = (this.labels.length * this.fontSize) + ((this.labels.length-1) * (this.fontSize/2)) + (this.yPadding*2) + this.titleFontSize *1.5; - - this.ctx.font = this.titleFont; - - var titleWidth = this.ctx.measureText(this.title).width, - //Label has a legend square as well so account for this. - labelWidth = longestText(this.ctx,this.font,this.labels) + this.fontSize + 3, - longestTextWidth = max([labelWidth,titleWidth]); - - this.width = longestTextWidth + (this.xPadding*2); - - - var halfHeight = this.height/2; - - //Check to ensure the height will fit on the canvas - if (this.y - halfHeight < 0 ){ - this.y = halfHeight; - } else if (this.y + halfHeight > this.chart.height){ - this.y = this.chart.height - halfHeight; - } - - //Decide whether to align left or right based on position on canvas - if (this.x > this.chart.width/2){ - this.x -= this.xOffset + this.width; - } else { - this.x += this.xOffset; - } - - - }, - getLineHeight : function(index){ - var baseLineHeight = this.y - (this.height/2) + this.yPadding, - afterTitleIndex = index-1; - - //If the index is zero, we're getting the title - if (index === 0){ - return baseLineHeight + this.titleFontSize/2; - } else{ - return baseLineHeight + ((this.fontSize*1.5*afterTitleIndex) + this.fontSize/2) + this.titleFontSize * 1.5; - } - - }, - draw : function(){ - // Custom Tooltips - if(this.custom){ - this.custom(this); - } - else{ - drawRoundedRectangle(this.ctx,this.x,this.y - this.height/2,this.width,this.height,this.cornerRadius); - var ctx = this.ctx; - ctx.fillStyle = this.fillColor; - ctx.fill(); - ctx.closePath(); - - ctx.textAlign = "left"; - ctx.textBaseline = "middle"; - ctx.fillStyle = this.titleTextColor; - ctx.font = this.titleFont; - - ctx.fillText(this.title,this.x + this.xPadding, this.getLineHeight(0)); - - ctx.font = this.font; - helpers.each(this.labels,function(label,index){ - ctx.fillStyle = this.textColor; - ctx.fillText(label,this.x + this.xPadding + this.fontSize + 3, this.getLineHeight(index + 1)); - - //A bit gnarly, but clearing this rectangle breaks when using explorercanvas (clears whole canvas) - //ctx.clearRect(this.x + this.xPadding, this.getLineHeight(index + 1) - this.fontSize/2, this.fontSize, this.fontSize); - //Instead we'll make a white filled block to put the legendColour palette over. - - ctx.fillStyle = this.legendColorBackground; - ctx.fillRect(this.x + this.xPadding, this.getLineHeight(index + 1) - this.fontSize/2, this.fontSize, this.fontSize); - - ctx.fillStyle = this.legendColors[index].fill; - ctx.fillRect(this.x + this.xPadding, this.getLineHeight(index + 1) - this.fontSize/2, this.fontSize, this.fontSize); - - - },this); - } - } - }); - - Chart.Scale = Chart.Element.extend({ - initialize : function(){ - this.fit(); - }, - buildYLabels : function(){ - this.yLabels = []; - - var stepDecimalPlaces = getDecimalPlaces(this.stepValue); - - for (var i=0; i<=this.steps; i++){ - this.yLabels.push(template(this.templateString,{value:(this.min + (i * this.stepValue)).toFixed(stepDecimalPlaces)})); - } - this.yLabelWidth = (this.display && this.showLabels) ? longestText(this.ctx,this.font,this.yLabels) : 0; - }, - addXLabel : function(label){ - this.xLabels.push(label); - this.valuesCount++; - this.fit(); - }, - removeXLabel : function(){ - this.xLabels.shift(); - this.valuesCount--; - this.fit(); - }, - // Fitting loop to rotate x Labels and figure out what fits there, and also calculate how many Y steps to use - fit: function(){ - // First we need the width of the yLabels, assuming the xLabels aren't rotated - - // To do that we need the base line at the top and base of the chart, assuming there is no x label rotation - this.startPoint = (this.display) ? this.fontSize : 0; - this.endPoint = (this.display) ? this.height - (this.fontSize * 1.5) - 5 : this.height; // -5 to pad labels - - // Apply padding settings to the start and end point. - this.startPoint += this.padding; - this.endPoint -= this.padding; - - // Cache the starting height, so can determine if we need to recalculate the scale yAxis - var cachedHeight = this.endPoint - this.startPoint, - cachedYLabelWidth; - - // Build the current yLabels so we have an idea of what size they'll be to start - /* - * This sets what is returned from calculateScaleRange as static properties of this class: - * - this.steps; - this.stepValue; - this.min; - this.max; - * - */ - this.calculateYRange(cachedHeight); - - // With these properties set we can now build the array of yLabels - // and also the width of the largest yLabel - this.buildYLabels(); - - this.calculateXLabelRotation(); - - while((cachedHeight > this.endPoint - this.startPoint)){ - cachedHeight = this.endPoint - this.startPoint; - cachedYLabelWidth = this.yLabelWidth; - - this.calculateYRange(cachedHeight); - this.buildYLabels(); - - // Only go through the xLabel loop again if the yLabel width has changed - if (cachedYLabelWidth < this.yLabelWidth){ - this.calculateXLabelRotation(); - } - } - - }, - calculateXLabelRotation : function(){ - //Get the width of each grid by calculating the difference - //between x offsets between 0 and 1. - - this.ctx.font = this.font; - - var firstWidth = this.ctx.measureText(this.xLabels[0]).width, - lastWidth = this.ctx.measureText(this.xLabels[this.xLabels.length - 1]).width, - firstRotated, - lastRotated; - - - this.xScalePaddingRight = lastWidth/2 + 3; - this.xScalePaddingLeft = (firstWidth/2 > this.yLabelWidth + 10) ? firstWidth/2 : this.yLabelWidth + 10; - - this.xLabelRotation = 0; - if (this.display){ - var originalLabelWidth = longestText(this.ctx,this.font,this.xLabels), - cosRotation, - firstRotatedWidth; - this.xLabelWidth = originalLabelWidth; - //Allow 3 pixels x2 padding either side for label readability - var xGridWidth = Math.floor(this.calculateX(1) - this.calculateX(0)) - 6; - - //Max label rotate should be 90 - also act as a loop counter - while ((this.xLabelWidth > xGridWidth && this.xLabelRotation === 0) || (this.xLabelWidth > xGridWidth && this.xLabelRotation <= 90 && this.xLabelRotation > 0)){ - cosRotation = Math.cos(toRadians(this.xLabelRotation)); - - firstRotated = cosRotation * firstWidth; - lastRotated = cosRotation * lastWidth; - - // We're right aligning the text now. - if (firstRotated + this.fontSize / 2 > this.yLabelWidth + 8){ - this.xScalePaddingLeft = firstRotated + this.fontSize / 2; - } - this.xScalePaddingRight = this.fontSize/2; - - - this.xLabelRotation++; - this.xLabelWidth = cosRotation * originalLabelWidth; - - } - if (this.xLabelRotation > 0){ - this.endPoint -= Math.sin(toRadians(this.xLabelRotation))*originalLabelWidth + 3; - } - } - else{ - this.xLabelWidth = 0; - this.xScalePaddingRight = this.padding; - this.xScalePaddingLeft = this.padding; - } - - }, - // Needs to be overidden in each Chart type - // Otherwise we need to pass all the data into the scale class - calculateYRange: noop, - drawingArea: function(){ - return this.startPoint - this.endPoint; - }, - calculateY : function(value){ - var scalingFactor = this.drawingArea() / (this.min - this.max); - return this.endPoint - (scalingFactor * (value - this.min)); - }, - calculateX : function(index){ - var isRotated = (this.xLabelRotation > 0), - // innerWidth = (this.offsetGridLines) ? this.width - offsetLeft - this.padding : this.width - (offsetLeft + halfLabelWidth * 2) - this.padding, - innerWidth = this.width - (this.xScalePaddingLeft + this.xScalePaddingRight), - valueWidth = innerWidth/Math.max((this.valuesCount - ((this.offsetGridLines) ? 0 : 1)), 1), - valueOffset = (valueWidth * index) + this.xScalePaddingLeft; - - if (this.offsetGridLines){ - valueOffset += (valueWidth/2); - } - - return Math.round(valueOffset); - }, - update : function(newProps){ - helpers.extend(this, newProps); - this.fit(); - }, - draw : function(){ - var ctx = this.ctx, - yLabelGap = (this.endPoint - this.startPoint) / this.steps, - xStart = Math.round(this.xScalePaddingLeft); - if (this.display){ - ctx.fillStyle = this.textColor; - ctx.font = this.font; - each(this.yLabels,function(labelString,index){ - var yLabelCenter = this.endPoint - (yLabelGap * index), - linePositionY = Math.round(yLabelCenter), - drawHorizontalLine = this.showHorizontalLines; - - ctx.textAlign = "right"; - ctx.textBaseline = "middle"; - if (this.showLabels){ - ctx.fillText(labelString,xStart - 10,yLabelCenter); - } - - // This is X axis, so draw it - if (index === 0 && !drawHorizontalLine){ - drawHorizontalLine = true; - } - - if (drawHorizontalLine){ - ctx.beginPath(); - } - - if (index > 0){ - // This is a grid line in the centre, so drop that - ctx.lineWidth = this.gridLineWidth; - ctx.strokeStyle = this.gridLineColor; - } else { - // This is the first line on the scale - ctx.lineWidth = this.lineWidth; - ctx.strokeStyle = this.lineColor; - } - - linePositionY += helpers.aliasPixel(ctx.lineWidth); - - if(drawHorizontalLine){ - ctx.moveTo(xStart, linePositionY); - ctx.lineTo(this.width, linePositionY); - ctx.stroke(); - ctx.closePath(); - } - - ctx.lineWidth = this.lineWidth; - ctx.strokeStyle = this.lineColor; - ctx.beginPath(); - ctx.moveTo(xStart - 5, linePositionY); - ctx.lineTo(xStart, linePositionY); - ctx.stroke(); - ctx.closePath(); - - },this); - - each(this.xLabels,function(label,index){ - var xPos = this.calculateX(index) + aliasPixel(this.lineWidth), - // Check to see if line/bar here and decide where to place the line - linePos = this.calculateX(index - (this.offsetGridLines ? 0.5 : 0)) + aliasPixel(this.lineWidth), - isRotated = (this.xLabelRotation > 0), - drawVerticalLine = this.showVerticalLines; - - // This is Y axis, so draw it - if (index === 0 && !drawVerticalLine){ - drawVerticalLine = true; - } - - if (drawVerticalLine){ - ctx.beginPath(); - } - - if (index > 0){ - // This is a grid line in the centre, so drop that - ctx.lineWidth = this.gridLineWidth; - ctx.strokeStyle = this.gridLineColor; - } else { - // This is the first line on the scale - ctx.lineWidth = this.lineWidth; - ctx.strokeStyle = this.lineColor; - } - - if (drawVerticalLine){ - ctx.moveTo(linePos,this.endPoint); - ctx.lineTo(linePos,this.startPoint - 3); - ctx.stroke(); - ctx.closePath(); - } - - - ctx.lineWidth = this.lineWidth; - ctx.strokeStyle = this.lineColor; - - - // Small lines at the bottom of the base grid line - ctx.beginPath(); - ctx.moveTo(linePos,this.endPoint); - ctx.lineTo(linePos,this.endPoint + 5); - ctx.stroke(); - ctx.closePath(); - - ctx.save(); - ctx.translate(xPos,(isRotated) ? this.endPoint + 12 : this.endPoint + 8); - ctx.rotate(toRadians(this.xLabelRotation)*-1); - ctx.font = this.font; - ctx.textAlign = (isRotated) ? "right" : "center"; - ctx.textBaseline = (isRotated) ? "middle" : "top"; - ctx.fillText(label, 0, 0); - ctx.restore(); - },this); - - } - } - - }); - - Chart.RadialScale = Chart.Element.extend({ - initialize: function(){ - this.size = min([this.height, this.width]); - this.drawingArea = (this.display) ? (this.size/2) - (this.fontSize/2 + this.backdropPaddingY) : (this.size/2); - }, - calculateCenterOffset: function(value){ - // Take into account half font size + the yPadding of the top value - var scalingFactor = this.drawingArea / (this.max - this.min); - - return (value - this.min) * scalingFactor; - }, - update : function(){ - if (!this.lineArc){ - this.setScaleSize(); - } else { - this.drawingArea = (this.display) ? (this.size/2) - (this.fontSize/2 + this.backdropPaddingY) : (this.size/2); - } - this.buildYLabels(); - }, - buildYLabels: function(){ - this.yLabels = []; - - var stepDecimalPlaces = getDecimalPlaces(this.stepValue); - - for (var i=0; i<=this.steps; i++){ - this.yLabels.push(template(this.templateString,{value:(this.min + (i * this.stepValue)).toFixed(stepDecimalPlaces)})); - } - }, - getCircumference : function(){ - return ((Math.PI*2) / this.valuesCount); - }, - setScaleSize: function(){ - /* - * Right, this is really confusing and there is a lot of maths going on here - * The gist of the problem is here: https://gist.github.com/nnnick/696cc9c55f4b0beb8fe9 - * - * Reaction: https://dl.dropboxusercontent.com/u/34601363/toomuchscience.gif - * - * Solution: - * - * We assume the radius of the polygon is half the size of the canvas at first - * at each index we check if the text overlaps. - * - * Where it does, we store that angle and that index. - * - * After finding the largest index and angle we calculate how much we need to remove - * from the shape radius to move the point inwards by that x. - * - * We average the left and right distances to get the maximum shape radius that can fit in the box - * along with labels. - * - * Once we have that, we can find the centre point for the chart, by taking the x text protrusion - * on each side, removing that from the size, halving it and adding the left x protrusion width. - * - * This will mean we have a shape fitted to the canvas, as large as it can be with the labels - * and position it in the most space efficient manner - * - * https://dl.dropboxusercontent.com/u/34601363/yeahscience.gif - */ - - - // Get maximum radius of the polygon. Either half the height (minus the text width) or half the width. - // Use this to calculate the offset + change. - Make sure L/R protrusion is at least 0 to stop issues with centre points - var largestPossibleRadius = min([(this.height/2 - this.pointLabelFontSize - 5), this.width/2]), - pointPosition, - i, - textWidth, - halfTextWidth, - furthestRight = this.width, - furthestRightIndex, - furthestRightAngle, - furthestLeft = 0, - furthestLeftIndex, - furthestLeftAngle, - xProtrusionLeft, - xProtrusionRight, - radiusReductionRight, - radiusReductionLeft, - maxWidthRadius; - this.ctx.font = fontString(this.pointLabelFontSize,this.pointLabelFontStyle,this.pointLabelFontFamily); - for (i=0;i furthestRight) { - furthestRight = pointPosition.x + halfTextWidth; - furthestRightIndex = i; - } - if (pointPosition.x - halfTextWidth < furthestLeft) { - furthestLeft = pointPosition.x - halfTextWidth; - furthestLeftIndex = i; - } - } - else if (i < this.valuesCount/2) { - // Less than half the values means we'll left align the text - if (pointPosition.x + textWidth > furthestRight) { - furthestRight = pointPosition.x + textWidth; - furthestRightIndex = i; - } - } - else if (i > this.valuesCount/2){ - // More than half the values means we'll right align the text - if (pointPosition.x - textWidth < furthestLeft) { - furthestLeft = pointPosition.x - textWidth; - furthestLeftIndex = i; - } - } - } - - xProtrusionLeft = furthestLeft; - - xProtrusionRight = Math.ceil(furthestRight - this.width); - - furthestRightAngle = this.getIndexAngle(furthestRightIndex); - - furthestLeftAngle = this.getIndexAngle(furthestLeftIndex); - - radiusReductionRight = xProtrusionRight / Math.sin(furthestRightAngle + Math.PI/2); - - radiusReductionLeft = xProtrusionLeft / Math.sin(furthestLeftAngle + Math.PI/2); - - // Ensure we actually need to reduce the size of the chart - radiusReductionRight = (isNumber(radiusReductionRight)) ? radiusReductionRight : 0; - radiusReductionLeft = (isNumber(radiusReductionLeft)) ? radiusReductionLeft : 0; - - this.drawingArea = largestPossibleRadius - (radiusReductionLeft + radiusReductionRight)/2; - - //this.drawingArea = min([maxWidthRadius, (this.height - (2 * (this.pointLabelFontSize + 5)))/2]) - this.setCenterPoint(radiusReductionLeft, radiusReductionRight); - - }, - setCenterPoint: function(leftMovement, rightMovement){ - - var maxRight = this.width - rightMovement - this.drawingArea, - maxLeft = leftMovement + this.drawingArea; - - this.xCenter = (maxLeft + maxRight)/2; - // Always vertically in the centre as the text height doesn't change - this.yCenter = (this.height/2); - }, - - getIndexAngle : function(index){ - var angleMultiplier = (Math.PI * 2) / this.valuesCount; - // Start from the top instead of right, so remove a quarter of the circle - - return index * angleMultiplier - (Math.PI/2); - }, - getPointPosition : function(index, distanceFromCenter){ - var thisAngle = this.getIndexAngle(index); - return { - x : (Math.cos(thisAngle) * distanceFromCenter) + this.xCenter, - y : (Math.sin(thisAngle) * distanceFromCenter) + this.yCenter - }; - }, - draw: function(){ - if (this.display){ - var ctx = this.ctx; - each(this.yLabels, function(label, index){ - // Don't draw a centre value - if (index > 0){ - var yCenterOffset = index * (this.drawingArea/this.steps), - yHeight = this.yCenter - yCenterOffset, - pointPosition; - - // Draw circular lines around the scale - if (this.lineWidth > 0){ - ctx.strokeStyle = this.lineColor; - ctx.lineWidth = this.lineWidth; - - if(this.lineArc){ - ctx.beginPath(); - ctx.arc(this.xCenter, this.yCenter, yCenterOffset, 0, Math.PI*2); - ctx.closePath(); - ctx.stroke(); - } else{ - ctx.beginPath(); - for (var i=0;i= 0; i--) { - if (this.angleLineWidth > 0){ - var outerPosition = this.getPointPosition(i, this.calculateCenterOffset(this.max)); - ctx.beginPath(); - ctx.moveTo(this.xCenter, this.yCenter); - ctx.lineTo(outerPosition.x, outerPosition.y); - ctx.stroke(); - ctx.closePath(); - } - // Extra 3px out for some label spacing - var pointLabelPosition = this.getPointPosition(i, this.calculateCenterOffset(this.max) + 5); - ctx.font = fontString(this.pointLabelFontSize,this.pointLabelFontStyle,this.pointLabelFontFamily); - ctx.fillStyle = this.pointLabelFontColor; - - var labelsCount = this.labels.length, - halfLabelsCount = this.labels.length/2, - quarterLabelsCount = halfLabelsCount/2, - upperHalf = (i < quarterLabelsCount || i > labelsCount - quarterLabelsCount), - exactQuarter = (i === quarterLabelsCount || i === labelsCount - quarterLabelsCount); - if (i === 0){ - ctx.textAlign = 'center'; - } else if(i === halfLabelsCount){ - ctx.textAlign = 'center'; - } else if (i < halfLabelsCount){ - ctx.textAlign = 'left'; - } else { - ctx.textAlign = 'right'; - } - - // Set the correct text baseline based on outer positioning - if (exactQuarter){ - ctx.textBaseline = 'middle'; - } else if (upperHalf){ - ctx.textBaseline = 'bottom'; - } else { - ctx.textBaseline = 'top'; - } - - ctx.fillText(this.labels[i], pointLabelPosition.x, pointLabelPosition.y); - } - } - } - } - }); - - // Attach global event to resize each chart instance when the browser resizes - helpers.addEvent(window, "resize", (function(){ - // Basic debounce of resize function so it doesn't hurt performance when resizing browser. - var timeout; - return function(){ - clearTimeout(timeout); - timeout = setTimeout(function(){ - each(Chart.instances,function(instance){ - // If the responsive flag is set in the chart instance config - // Cascade the resize event down to the chart. - if (instance.options.responsive){ - instance.resize(instance.render, true); - } - }); - }, 50); - }; - })()); - - - if (amd) { - define(function(){ - return Chart; - }); - } else if (typeof module === 'object' && module.exports) { - module.exports = Chart; - } - - root.Chart = Chart; - - Chart.noConflict = function(){ - root.Chart = previous; - return Chart; - }; - -}).call(this); - -(function(){ - "use strict"; - - var root = this, - Chart = root.Chart, - helpers = Chart.helpers; - - - var defaultConfig = { - //Boolean - Whether the scale should start at zero, or an order of magnitude down from the lowest value - scaleBeginAtZero : true, - - //Boolean - Whether grid lines are shown across the chart - scaleShowGridLines : true, - - //String - Colour of the grid lines - scaleGridLineColor : "rgba(0,0,0,.05)", - - //Number - Width of the grid lines - scaleGridLineWidth : 1, - - //Boolean - Whether to show horizontal lines (except X axis) - scaleShowHorizontalLines: true, - - //Boolean - Whether to show vertical lines (except Y axis) - scaleShowVerticalLines: true, - - //Boolean - If there is a stroke on each bar - barShowStroke : true, - - //Number - Pixel width of the bar stroke - barStrokeWidth : 2, - - //Number - Spacing between each of the X value sets - barValueSpacing : 5, - - //Number - Spacing between data sets within X values - barDatasetSpacing : 1, - - //String - A legend template - legendTemplate : "

" - - }; - - - Chart.Type.extend({ - name: "Bar", - defaults : defaultConfig, - initialize: function(data){ - - //Expose options as a scope variable here so we can access it in the ScaleClass - var options = this.options; - - this.ScaleClass = Chart.Scale.extend({ - offsetGridLines : true, - calculateBarX : function(datasetCount, datasetIndex, barIndex){ - //Reusable method for calculating the xPosition of a given bar based on datasetIndex & width of the bar - var xWidth = this.calculateBaseWidth(), - xAbsolute = this.calculateX(barIndex) - (xWidth/2), - barWidth = this.calculateBarWidth(datasetCount); - - return xAbsolute + (barWidth * datasetIndex) + (datasetIndex * options.barDatasetSpacing) + barWidth/2; - }, - calculateBaseWidth : function(){ - return (this.calculateX(1) - this.calculateX(0)) - (2*options.barValueSpacing); - }, - calculateBarWidth : function(datasetCount){ - //The padding between datasets is to the right of each bar, providing that there are more than 1 dataset - var baseWidth = this.calculateBaseWidth() - ((datasetCount - 1) * options.barDatasetSpacing); - - return (baseWidth / datasetCount); - } - }); - - this.datasets = []; - - //Set up tooltip events on the chart - if (this.options.showTooltips){ - helpers.bindEvents(this, this.options.tooltipEvents, function(evt){ - var activeBars = (evt.type !== 'mouseout') ? this.getBarsAtEvent(evt) : []; - - this.eachBars(function(bar){ - bar.restore(['fillColor', 'strokeColor']); - }); - helpers.each(activeBars, function(activeBar){ - activeBar.fillColor = activeBar.highlightFill; - activeBar.strokeColor = activeBar.highlightStroke; - }); - this.showTooltip(activeBars); - }); - } - - //Declare the extension of the default point, to cater for the options passed in to the constructor - this.BarClass = Chart.Rectangle.extend({ - strokeWidth : this.options.barStrokeWidth, - showStroke : this.options.barShowStroke, - ctx : this.chart.ctx - }); - - //Iterate through each of the datasets, and build this into a property of the chart - helpers.each(data.datasets,function(dataset,datasetIndex){ - - var datasetObject = { - label : dataset.label || null, - fillColor : dataset.fillColor, - strokeColor : dataset.strokeColor, - bars : [] - }; - - this.datasets.push(datasetObject); - - helpers.each(dataset.data,function(dataPoint,index){ - //Add a new point for each piece of data, passing any required data to draw. - datasetObject.bars.push(new this.BarClass({ - value : dataPoint, - label : data.labels[index], - datasetLabel: dataset.label, - strokeColor : dataset.strokeColor, - fillColor : dataset.fillColor, - highlightFill : dataset.highlightFill || dataset.fillColor, - highlightStroke : dataset.highlightStroke || dataset.strokeColor - })); - },this); - - },this); - - this.buildScale(data.labels); - - this.BarClass.prototype.base = this.scale.endPoint; - - this.eachBars(function(bar, index, datasetIndex){ - helpers.extend(bar, { - width : this.scale.calculateBarWidth(this.datasets.length), - x: this.scale.calculateBarX(this.datasets.length, datasetIndex, index), - y: this.scale.endPoint - }); - bar.save(); - }, this); - - this.render(); - }, - update : function(){ - this.scale.update(); - // Reset any highlight colours before updating. - helpers.each(this.activeElements, function(activeElement){ - activeElement.restore(['fillColor', 'strokeColor']); - }); - - this.eachBars(function(bar){ - bar.save(); - }); - this.render(); - }, - eachBars : function(callback){ - helpers.each(this.datasets,function(dataset, datasetIndex){ - helpers.each(dataset.bars, callback, this, datasetIndex); - },this); - }, - getBarsAtEvent : function(e){ - var barsArray = [], - eventPosition = helpers.getRelativePosition(e), - datasetIterator = function(dataset){ - barsArray.push(dataset.bars[barIndex]); - }, - barIndex; - - for (var datasetIndex = 0; datasetIndex < this.datasets.length; datasetIndex++) { - for (barIndex = 0; barIndex < this.datasets[datasetIndex].bars.length; barIndex++) { - if (this.datasets[datasetIndex].bars[barIndex].inRange(eventPosition.x,eventPosition.y)){ - helpers.each(this.datasets, datasetIterator); - return barsArray; - } - } - } - - return barsArray; - }, - buildScale : function(labels){ - var self = this; - - var dataTotal = function(){ - var values = []; - self.eachBars(function(bar){ - values.push(bar.value); - }); - return values; - }; - - var scaleOptions = { - templateString : this.options.scaleLabel, - height : this.chart.height, - width : this.chart.width, - ctx : this.chart.ctx, - textColor : this.options.scaleFontColor, - fontSize : this.options.scaleFontSize, - fontStyle : this.options.scaleFontStyle, - fontFamily : this.options.scaleFontFamily, - valuesCount : labels.length, - beginAtZero : this.options.scaleBeginAtZero, - integersOnly : this.options.scaleIntegersOnly, - calculateYRange: function(currentHeight){ - var updatedRanges = helpers.calculateScaleRange( - dataTotal(), - currentHeight, - this.fontSize, - this.beginAtZero, - this.integersOnly - ); - helpers.extend(this, updatedRanges); - }, - xLabels : labels, - font : helpers.fontString(this.options.scaleFontSize, this.options.scaleFontStyle, this.options.scaleFontFamily), - lineWidth : this.options.scaleLineWidth, - lineColor : this.options.scaleLineColor, - showHorizontalLines : this.options.scaleShowHorizontalLines, - showVerticalLines : this.options.scaleShowVerticalLines, - gridLineWidth : (this.options.scaleShowGridLines) ? this.options.scaleGridLineWidth : 0, - gridLineColor : (this.options.scaleShowGridLines) ? this.options.scaleGridLineColor : "rgba(0,0,0,0)", - padding : (this.options.showScale) ? 0 : (this.options.barShowStroke) ? this.options.barStrokeWidth : 0, - showLabels : this.options.scaleShowLabels, - display : this.options.showScale - }; - - if (this.options.scaleOverride){ - helpers.extend(scaleOptions, { - calculateYRange: helpers.noop, - steps: this.options.scaleSteps, - stepValue: this.options.scaleStepWidth, - min: this.options.scaleStartValue, - max: this.options.scaleStartValue + (this.options.scaleSteps * this.options.scaleStepWidth) - }); - } - - this.scale = new this.ScaleClass(scaleOptions); - }, - addData : function(valuesArray,label){ - //Map the values array for each of the datasets - helpers.each(valuesArray,function(value,datasetIndex){ - //Add a new point for each piece of data, passing any required data to draw. - this.datasets[datasetIndex].bars.push(new this.BarClass({ - value : value, - label : label, - x: this.scale.calculateBarX(this.datasets.length, datasetIndex, this.scale.valuesCount+1), - y: this.scale.endPoint, - width : this.scale.calculateBarWidth(this.datasets.length), - base : this.scale.endPoint, - strokeColor : this.datasets[datasetIndex].strokeColor, - fillColor : this.datasets[datasetIndex].fillColor - })); - },this); - - this.scale.addXLabel(label); - //Then re-render the chart. - this.update(); - }, - removeData : function(){ - this.scale.removeXLabel(); - //Then re-render the chart. - helpers.each(this.datasets,function(dataset){ - dataset.bars.shift(); - },this); - this.update(); - }, - reflow : function(){ - helpers.extend(this.BarClass.prototype,{ - y: this.scale.endPoint, - base : this.scale.endPoint - }); - var newScaleProps = helpers.extend({ - height : this.chart.height, - width : this.chart.width - }); - this.scale.update(newScaleProps); - }, - draw : function(ease){ - var easingDecimal = ease || 1; - this.clear(); - - var ctx = this.chart.ctx; - - this.scale.draw(easingDecimal); - - //Draw all the bars for each dataset - helpers.each(this.datasets,function(dataset,datasetIndex){ - helpers.each(dataset.bars,function(bar,index){ - if (bar.hasValue()){ - bar.base = this.scale.endPoint; - //Transition then draw - bar.transition({ - x : this.scale.calculateBarX(this.datasets.length, datasetIndex, index), - y : this.scale.calculateY(bar.value), - width : this.scale.calculateBarWidth(this.datasets.length) - }, easingDecimal).draw(); - } - },this); - - },this); - } - }); - - -}).call(this); - -(function(){ - "use strict"; - - var root = this, - Chart = root.Chart, - //Cache a local reference to Chart.helpers - helpers = Chart.helpers; - - var defaultConfig = { - //Boolean - Whether we should show a stroke on each segment - segmentShowStroke : true, - - //String - The colour of each segment stroke - segmentStrokeColor : "#fff", - - //Number - The width of each segment stroke - segmentStrokeWidth : 2, - - //The percentage of the chart that we cut out of the middle. - percentageInnerCutout : 50, - - //Number - Amount of animation steps - animationSteps : 100, - - //String - Animation easing effect - animationEasing : "easeOutBounce", - - //Boolean - Whether we animate the rotation of the Doughnut - animateRotate : true, - - //Boolean - Whether we animate scaling the Doughnut from the centre - animateScale : false, - - //String - A legend template - legendTemplate : "
    -legend\"><% for (var i=0; i
  • \"><%if(segments[i].label){%><%=segments[i].label%><%}%>
  • <%}%>
" - - }; - - - Chart.Type.extend({ - //Passing in a name registers this chart in the Chart namespace - name: "Doughnut", - //Providing a defaults will also register the deafults in the chart namespace - defaults : defaultConfig, - //Initialize is fired when the chart is initialized - Data is passed in as a parameter - //Config is automatically merged by the core of Chart.js, and is available at this.options - initialize: function(data){ - - //Declare segments as a static property to prevent inheriting across the Chart type prototype - this.segments = []; - this.outerRadius = (helpers.min([this.chart.width,this.chart.height]) - this.options.segmentStrokeWidth/2)/2; - - this.SegmentArc = Chart.Arc.extend({ - ctx : this.chart.ctx, - x : this.chart.width/2, - y : this.chart.height/2 - }); - - //Set up tooltip events on the chart - if (this.options.showTooltips){ - helpers.bindEvents(this, this.options.tooltipEvents, function(evt){ - var activeSegments = (evt.type !== 'mouseout') ? this.getSegmentsAtEvent(evt) : []; - - helpers.each(this.segments,function(segment){ - segment.restore(["fillColor"]); - }); - helpers.each(activeSegments,function(activeSegment){ - activeSegment.fillColor = activeSegment.highlightColor; - }); - this.showTooltip(activeSegments); - }); - } - this.calculateTotal(data); - - helpers.each(data,function(datapoint, index){ - this.addData(datapoint, index, true); - },this); - - this.render(); - }, - getSegmentsAtEvent : function(e){ - var segmentsArray = []; - - var location = helpers.getRelativePosition(e); - - helpers.each(this.segments,function(segment){ - if (segment.inRange(location.x,location.y)) segmentsArray.push(segment); - },this); - return segmentsArray; - }, - addData : function(segment, atIndex, silent){ - var index = atIndex || this.segments.length; - this.segments.splice(index, 0, new this.SegmentArc({ - value : segment.value, - outerRadius : (this.options.animateScale) ? 0 : this.outerRadius, - innerRadius : (this.options.animateScale) ? 0 : (this.outerRadius/100) * this.options.percentageInnerCutout, - fillColor : segment.color, - highlightColor : segment.highlight || segment.color, - showStroke : this.options.segmentShowStroke, - strokeWidth : this.options.segmentStrokeWidth, - strokeColor : this.options.segmentStrokeColor, - startAngle : Math.PI * 1.5, - circumference : (this.options.animateRotate) ? 0 : this.calculateCircumference(segment.value), - label : segment.label - })); - if (!silent){ - this.reflow(); - this.update(); - } - }, - calculateCircumference : function(value){ - return (Math.PI*2)*(Math.abs(value) / this.total); - }, - calculateTotal : function(data){ - this.total = 0; - helpers.each(data,function(segment){ - this.total += Math.abs(segment.value); - },this); - }, - update : function(){ - this.calculateTotal(this.segments); - - // Reset any highlight colours before updating. - helpers.each(this.activeElements, function(activeElement){ - activeElement.restore(['fillColor']); - }); - - helpers.each(this.segments,function(segment){ - segment.save(); - }); - this.render(); - }, - - removeData: function(atIndex){ - var indexToDelete = (helpers.isNumber(atIndex)) ? atIndex : this.segments.length-1; - this.segments.splice(indexToDelete, 1); - this.reflow(); - this.update(); - }, - - reflow : function(){ - helpers.extend(this.SegmentArc.prototype,{ - x : this.chart.width/2, - y : this.chart.height/2 - }); - this.outerRadius = (helpers.min([this.chart.width,this.chart.height]) - this.options.segmentStrokeWidth/2)/2; - helpers.each(this.segments, function(segment){ - segment.update({ - outerRadius : this.outerRadius, - innerRadius : (this.outerRadius/100) * this.options.percentageInnerCutout - }); - }, this); - }, - draw : function(easeDecimal){ - var animDecimal = (easeDecimal) ? easeDecimal : 1; - this.clear(); - helpers.each(this.segments,function(segment,index){ - segment.transition({ - circumference : this.calculateCircumference(segment.value), - outerRadius : this.outerRadius, - innerRadius : (this.outerRadius/100) * this.options.percentageInnerCutout - },animDecimal); - - segment.endAngle = segment.startAngle + segment.circumference; - - segment.draw(); - if (index === 0){ - segment.startAngle = Math.PI * 1.5; - } - //Check to see if it's the last segment, if not get the next and update the start angle - if (index < this.segments.length-1){ - this.segments[index+1].startAngle = segment.endAngle; - } - },this); - - } - }); - - Chart.types.Doughnut.extend({ - name : "Pie", - defaults : helpers.merge(defaultConfig,{percentageInnerCutout : 0}) - }); - -}).call(this); -(function(){ - "use strict"; - - var root = this, - Chart = root.Chart, - helpers = Chart.helpers; - - var defaultConfig = { - - ///Boolean - Whether grid lines are shown across the chart - scaleShowGridLines : true, - - //String - Colour of the grid lines - scaleGridLineColor : "rgba(0,0,0,.05)", - - //Number - Width of the grid lines - scaleGridLineWidth : 1, - - //Boolean - Whether to show horizontal lines (except X axis) - scaleShowHorizontalLines: true, - - //Boolean - Whether to show vertical lines (except Y axis) - scaleShowVerticalLines: true, - - //Boolean - Whether the line is curved between points - bezierCurve : true, - - //Number - Tension of the bezier curve between points - bezierCurveTension : 0.4, - - //Boolean - Whether to show a dot for each point - pointDot : true, - - //Number - Radius of each point dot in pixels - pointDotRadius : 4, - - //Number - Pixel width of point dot stroke - pointDotStrokeWidth : 1, - - //Number - amount extra to add to the radius to cater for hit detection outside the drawn point - pointHitDetectionRadius : 20, - - //Boolean - Whether to show a stroke for datasets - datasetStroke : true, - - //Number - Pixel width of dataset stroke - datasetStrokeWidth : 2, - - //Boolean - Whether to fill the dataset with a colour - datasetFill : true, - - //String - A legend template - legendTemplate : "
    -legend\"><% for (var i=0; i
  • \"><%if(datasets[i].label){%><%=datasets[i].label%><%}%>
  • <%}%>
" - - }; - - - Chart.Type.extend({ - name: "Line", - defaults : defaultConfig, - initialize: function(data){ - //Declare the extension of the default point, to cater for the options passed in to the constructor - this.PointClass = Chart.Point.extend({ - strokeWidth : this.options.pointDotStrokeWidth, - radius : this.options.pointDotRadius, - display: this.options.pointDot, - hitDetectionRadius : this.options.pointHitDetectionRadius, - ctx : this.chart.ctx, - inRange : function(mouseX){ - return (Math.pow(mouseX-this.x, 2) < Math.pow(this.radius + this.hitDetectionRadius,2)); - } - }); - - this.datasets = []; - - //Set up tooltip events on the chart - if (this.options.showTooltips){ - helpers.bindEvents(this, this.options.tooltipEvents, function(evt){ - var activePoints = (evt.type !== 'mouseout') ? this.getPointsAtEvent(evt) : []; - this.eachPoints(function(point){ - point.restore(['fillColor', 'strokeColor']); - }); - helpers.each(activePoints, function(activePoint){ - activePoint.fillColor = activePoint.highlightFill; - activePoint.strokeColor = activePoint.highlightStroke; - }); - this.showTooltip(activePoints); - }); - } - - //Iterate through each of the datasets, and build this into a property of the chart - helpers.each(data.datasets,function(dataset){ - - var datasetObject = { - label : dataset.label || null, - fillColor : dataset.fillColor, - strokeColor : dataset.strokeColor, - pointColor : dataset.pointColor, - pointStrokeColor : dataset.pointStrokeColor, - points : [] - }; - - this.datasets.push(datasetObject); - - - helpers.each(dataset.data,function(dataPoint,index){ - //Add a new point for each piece of data, passing any required data to draw. - datasetObject.points.push(new this.PointClass({ - value : dataPoint, - label : data.labels[index], - datasetLabel: dataset.label, - strokeColor : dataset.pointStrokeColor, - fillColor : dataset.pointColor, - highlightFill : dataset.pointHighlightFill || dataset.pointColor, - highlightStroke : dataset.pointHighlightStroke || dataset.pointStrokeColor - })); - },this); - - this.buildScale(data.labels); - - - this.eachPoints(function(point, index){ - helpers.extend(point, { - x: this.scale.calculateX(index), - y: this.scale.endPoint - }); - point.save(); - }, this); - - },this); - - - this.render(); - }, - update : function(){ - this.scale.update(); - // Reset any highlight colours before updating. - helpers.each(this.activeElements, function(activeElement){ - activeElement.restore(['fillColor', 'strokeColor']); - }); - this.eachPoints(function(point){ - point.save(); - }); - this.render(); - }, - eachPoints : function(callback){ - helpers.each(this.datasets,function(dataset){ - helpers.each(dataset.points,callback,this); - },this); - }, - getPointsAtEvent : function(e){ - var pointsArray = [], - eventPosition = helpers.getRelativePosition(e); - helpers.each(this.datasets,function(dataset){ - helpers.each(dataset.points,function(point){ - if (point.inRange(eventPosition.x,eventPosition.y)) pointsArray.push(point); - }); - },this); - return pointsArray; - }, - buildScale : function(labels){ - var self = this; - - var dataTotal = function(){ - var values = []; - self.eachPoints(function(point){ - values.push(point.value); - }); - - return values; - }; - - var scaleOptions = { - templateString : this.options.scaleLabel, - height : this.chart.height, - width : this.chart.width, - ctx : this.chart.ctx, - textColor : this.options.scaleFontColor, - fontSize : this.options.scaleFontSize, - fontStyle : this.options.scaleFontStyle, - fontFamily : this.options.scaleFontFamily, - valuesCount : labels.length, - beginAtZero : this.options.scaleBeginAtZero, - integersOnly : this.options.scaleIntegersOnly, - calculateYRange : function(currentHeight){ - var updatedRanges = helpers.calculateScaleRange( - dataTotal(), - currentHeight, - this.fontSize, - this.beginAtZero, - this.integersOnly - ); - helpers.extend(this, updatedRanges); - }, - xLabels : labels, - font : helpers.fontString(this.options.scaleFontSize, this.options.scaleFontStyle, this.options.scaleFontFamily), - lineWidth : this.options.scaleLineWidth, - lineColor : this.options.scaleLineColor, - showHorizontalLines : this.options.scaleShowHorizontalLines, - showVerticalLines : this.options.scaleShowVerticalLines, - gridLineWidth : (this.options.scaleShowGridLines) ? this.options.scaleGridLineWidth : 0, - gridLineColor : (this.options.scaleShowGridLines) ? this.options.scaleGridLineColor : "rgba(0,0,0,0)", - padding: (this.options.showScale) ? 0 : this.options.pointDotRadius + this.options.pointDotStrokeWidth, - showLabels : this.options.scaleShowLabels, - display : this.options.showScale - }; - - if (this.options.scaleOverride){ - helpers.extend(scaleOptions, { - calculateYRange: helpers.noop, - steps: this.options.scaleSteps, - stepValue: this.options.scaleStepWidth, - min: this.options.scaleStartValue, - max: this.options.scaleStartValue + (this.options.scaleSteps * this.options.scaleStepWidth) - }); - } - - - this.scale = new Chart.Scale(scaleOptions); - }, - addData : function(valuesArray,label){ - //Map the values array for each of the datasets - - helpers.each(valuesArray,function(value,datasetIndex){ - //Add a new point for each piece of data, passing any required data to draw. - this.datasets[datasetIndex].points.push(new this.PointClass({ - value : value, - label : label, - x: this.scale.calculateX(this.scale.valuesCount+1), - y: this.scale.endPoint, - strokeColor : this.datasets[datasetIndex].pointStrokeColor, - fillColor : this.datasets[datasetIndex].pointColor - })); - },this); - - this.scale.addXLabel(label); - //Then re-render the chart. - this.update(); - }, - removeData : function(){ - this.scale.removeXLabel(); - //Then re-render the chart. - helpers.each(this.datasets,function(dataset){ - dataset.points.shift(); - },this); - this.update(); - }, - reflow : function(){ - var newScaleProps = helpers.extend({ - height : this.chart.height, - width : this.chart.width - }); - this.scale.update(newScaleProps); - }, - draw : function(ease){ - var easingDecimal = ease || 1; - this.clear(); - - var ctx = this.chart.ctx; - - // Some helper methods for getting the next/prev points - var hasValue = function(item){ - return item.value !== null; - }, - nextPoint = function(point, collection, index){ - return helpers.findNextWhere(collection, hasValue, index) || point; - }, - previousPoint = function(point, collection, index){ - return helpers.findPreviousWhere(collection, hasValue, index) || point; - }; - - this.scale.draw(easingDecimal); - - - helpers.each(this.datasets,function(dataset){ - var pointsWithValues = helpers.where(dataset.points, hasValue); - - //Transition each point first so that the line and point drawing isn't out of sync - //We can use this extra loop to calculate the control points of this dataset also in this loop - - helpers.each(dataset.points, function(point, index){ - if (point.hasValue()){ - point.transition({ - y : this.scale.calculateY(point.value), - x : this.scale.calculateX(index) - }, easingDecimal); - } - },this); - - - // Control points need to be calculated in a seperate loop, because we need to know the current x/y of the point - // This would cause issues when there is no animation, because the y of the next point would be 0, so beziers would be skewed - if (this.options.bezierCurve){ - helpers.each(pointsWithValues, function(point, index){ - var tension = (index > 0 && index < pointsWithValues.length - 1) ? this.options.bezierCurveTension : 0; - point.controlPoints = helpers.splineCurve( - previousPoint(point, pointsWithValues, index), - point, - nextPoint(point, pointsWithValues, index), - tension - ); - - // Prevent the bezier going outside of the bounds of the graph - - // Cap puter bezier handles to the upper/lower scale bounds - if (point.controlPoints.outer.y > this.scale.endPoint){ - point.controlPoints.outer.y = this.scale.endPoint; - } - else if (point.controlPoints.outer.y < this.scale.startPoint){ - point.controlPoints.outer.y = this.scale.startPoint; - } - - // Cap inner bezier handles to the upper/lower scale bounds - if (point.controlPoints.inner.y > this.scale.endPoint){ - point.controlPoints.inner.y = this.scale.endPoint; - } - else if (point.controlPoints.inner.y < this.scale.startPoint){ - point.controlPoints.inner.y = this.scale.startPoint; - } - },this); - } - - - //Draw the line between all the points - ctx.lineWidth = this.options.datasetStrokeWidth; - ctx.strokeStyle = dataset.strokeColor; - ctx.beginPath(); - - helpers.each(pointsWithValues, function(point, index){ - if (index === 0){ - ctx.moveTo(point.x, point.y); - } - else{ - if(this.options.bezierCurve){ - var previous = previousPoint(point, pointsWithValues, index); - - ctx.bezierCurveTo( - previous.controlPoints.outer.x, - previous.controlPoints.outer.y, - point.controlPoints.inner.x, - point.controlPoints.inner.y, - point.x, - point.y - ); - } - else{ - ctx.lineTo(point.x,point.y); - } - } - }, this); - - ctx.stroke(); - - if (this.options.datasetFill && pointsWithValues.length > 0){ - //Round off the line by going to the base of the chart, back to the start, then fill. - ctx.lineTo(pointsWithValues[pointsWithValues.length - 1].x, this.scale.endPoint); - ctx.lineTo(pointsWithValues[0].x, this.scale.endPoint); - ctx.fillStyle = dataset.fillColor; - ctx.closePath(); - ctx.fill(); - } - - //Now draw the points over the line - //A little inefficient double looping, but better than the line - //lagging behind the point positions - helpers.each(pointsWithValues,function(point){ - point.draw(); - }); - },this); - } - }); - - -}).call(this); - -(function(){ - "use strict"; - - var root = this, - Chart = root.Chart, - //Cache a local reference to Chart.helpers - helpers = Chart.helpers; - - var defaultConfig = { - //Boolean - Show a backdrop to the scale label - scaleShowLabelBackdrop : true, - - //String - The colour of the label backdrop - scaleBackdropColor : "rgba(255,255,255,0.75)", - - // Boolean - Whether the scale should begin at zero - scaleBeginAtZero : true, - - //Number - The backdrop padding above & below the label in pixels - scaleBackdropPaddingY : 2, - - //Number - The backdrop padding to the side of the label in pixels - scaleBackdropPaddingX : 2, - - //Boolean - Show line for each value in the scale - scaleShowLine : true, - - //Boolean - Stroke a line around each segment in the chart - segmentShowStroke : true, - - //String - The colour of the stroke on each segement. - segmentStrokeColor : "#fff", - - //Number - The width of the stroke value in pixels - segmentStrokeWidth : 2, - - //Number - Amount of animation steps - animationSteps : 100, - - //String - Animation easing effect. - animationEasing : "easeOutBounce", - - //Boolean - Whether to animate the rotation of the chart - animateRotate : true, - - //Boolean - Whether to animate scaling the chart from the centre - animateScale : false, - - //String - A legend template - legendTemplate : "
    -legend\"><% for (var i=0; i
  • \"><%if(segments[i].label){%><%=segments[i].label%><%}%>
  • <%}%>
" - }; - - - Chart.Type.extend({ - //Passing in a name registers this chart in the Chart namespace - name: "PolarArea", - //Providing a defaults will also register the deafults in the chart namespace - defaults : defaultConfig, - //Initialize is fired when the chart is initialized - Data is passed in as a parameter - //Config is automatically merged by the core of Chart.js, and is available at this.options - initialize: function(data){ - this.segments = []; - //Declare segment class as a chart instance specific class, so it can share props for this instance - this.SegmentArc = Chart.Arc.extend({ - showStroke : this.options.segmentShowStroke, - strokeWidth : this.options.segmentStrokeWidth, - strokeColor : this.options.segmentStrokeColor, - ctx : this.chart.ctx, - innerRadius : 0, - x : this.chart.width/2, - y : this.chart.height/2 - }); - this.scale = new Chart.RadialScale({ - display: this.options.showScale, - fontStyle: this.options.scaleFontStyle, - fontSize: this.options.scaleFontSize, - fontFamily: this.options.scaleFontFamily, - fontColor: this.options.scaleFontColor, - showLabels: this.options.scaleShowLabels, - showLabelBackdrop: this.options.scaleShowLabelBackdrop, - backdropColor: this.options.scaleBackdropColor, - backdropPaddingY : this.options.scaleBackdropPaddingY, - backdropPaddingX: this.options.scaleBackdropPaddingX, - lineWidth: (this.options.scaleShowLine) ? this.options.scaleLineWidth : 0, - lineColor: this.options.scaleLineColor, - lineArc: true, - width: this.chart.width, - height: this.chart.height, - xCenter: this.chart.width/2, - yCenter: this.chart.height/2, - ctx : this.chart.ctx, - templateString: this.options.scaleLabel, - valuesCount: data.length - }); - - this.updateScaleRange(data); - - this.scale.update(); - - helpers.each(data,function(segment,index){ - this.addData(segment,index,true); - },this); - - //Set up tooltip events on the chart - if (this.options.showTooltips){ - helpers.bindEvents(this, this.options.tooltipEvents, function(evt){ - var activeSegments = (evt.type !== 'mouseout') ? this.getSegmentsAtEvent(evt) : []; - helpers.each(this.segments,function(segment){ - segment.restore(["fillColor"]); - }); - helpers.each(activeSegments,function(activeSegment){ - activeSegment.fillColor = activeSegment.highlightColor; - }); - this.showTooltip(activeSegments); - }); - } - - this.render(); - }, - getSegmentsAtEvent : function(e){ - var segmentsArray = []; - - var location = helpers.getRelativePosition(e); - - helpers.each(this.segments,function(segment){ - if (segment.inRange(location.x,location.y)) segmentsArray.push(segment); - },this); - return segmentsArray; - }, - addData : function(segment, atIndex, silent){ - var index = atIndex || this.segments.length; - - this.segments.splice(index, 0, new this.SegmentArc({ - fillColor: segment.color, - highlightColor: segment.highlight || segment.color, - label: segment.label, - value: segment.value, - outerRadius: (this.options.animateScale) ? 0 : this.scale.calculateCenterOffset(segment.value), - circumference: (this.options.animateRotate) ? 0 : this.scale.getCircumference(), - startAngle: Math.PI * 1.5 - })); - if (!silent){ - this.reflow(); - this.update(); - } - }, - removeData: function(atIndex){ - var indexToDelete = (helpers.isNumber(atIndex)) ? atIndex : this.segments.length-1; - this.segments.splice(indexToDelete, 1); - this.reflow(); - this.update(); - }, - calculateTotal: function(data){ - this.total = 0; - helpers.each(data,function(segment){ - this.total += segment.value; - },this); - this.scale.valuesCount = this.segments.length; - }, - updateScaleRange: function(datapoints){ - var valuesArray = []; - helpers.each(datapoints,function(segment){ - valuesArray.push(segment.value); - }); - - var scaleSizes = (this.options.scaleOverride) ? - { - steps: this.options.scaleSteps, - stepValue: this.options.scaleStepWidth, - min: this.options.scaleStartValue, - max: this.options.scaleStartValue + (this.options.scaleSteps * this.options.scaleStepWidth) - } : - helpers.calculateScaleRange( - valuesArray, - helpers.min([this.chart.width, this.chart.height])/2, - this.options.scaleFontSize, - this.options.scaleBeginAtZero, - this.options.scaleIntegersOnly - ); - - helpers.extend( - this.scale, - scaleSizes, - { - size: helpers.min([this.chart.width, this.chart.height]), - xCenter: this.chart.width/2, - yCenter: this.chart.height/2 - } - ); - - }, - update : function(){ - this.calculateTotal(this.segments); - - helpers.each(this.segments,function(segment){ - segment.save(); - }); - - this.reflow(); - this.render(); - }, - reflow : function(){ - helpers.extend(this.SegmentArc.prototype,{ - x : this.chart.width/2, - y : this.chart.height/2 - }); - this.updateScaleRange(this.segments); - this.scale.update(); - - helpers.extend(this.scale,{ - xCenter: this.chart.width/2, - yCenter: this.chart.height/2 - }); - - helpers.each(this.segments, function(segment){ - segment.update({ - outerRadius : this.scale.calculateCenterOffset(segment.value) - }); - }, this); - - }, - draw : function(ease){ - var easingDecimal = ease || 1; - //Clear & draw the canvas - this.clear(); - helpers.each(this.segments,function(segment, index){ - segment.transition({ - circumference : this.scale.getCircumference(), - outerRadius : this.scale.calculateCenterOffset(segment.value) - },easingDecimal); - - segment.endAngle = segment.startAngle + segment.circumference; - - // If we've removed the first segment we need to set the first one to - // start at the top. - if (index === 0){ - segment.startAngle = Math.PI * 1.5; - } - - //Check to see if it's the last segment, if not get the next and update the start angle - if (index < this.segments.length - 1){ - this.segments[index+1].startAngle = segment.endAngle; - } - segment.draw(); - }, this); - this.scale.draw(); - } - }); - -}).call(this); -(function(){ - "use strict"; - - var root = this, - Chart = root.Chart, - helpers = Chart.helpers; - - - - Chart.Type.extend({ - name: "Radar", - defaults:{ - //Boolean - Whether to show lines for each scale point - scaleShowLine : true, - - //Boolean - Whether we show the angle lines out of the radar - angleShowLineOut : true, - - //Boolean - Whether to show labels on the scale - scaleShowLabels : false, - - // Boolean - Whether the scale should begin at zero - scaleBeginAtZero : true, - - //String - Colour of the angle line - angleLineColor : "rgba(0,0,0,.1)", - - //Number - Pixel width of the angle line - angleLineWidth : 1, - - //String - Point label font declaration - pointLabelFontFamily : "'Arial'", - - //String - Point label font weight - pointLabelFontStyle : "normal", - - //Number - Point label font size in pixels - pointLabelFontSize : 10, - - //String - Point label font colour - pointLabelFontColor : "#666", - - //Boolean - Whether to show a dot for each point - pointDot : true, - - //Number - Radius of each point dot in pixels - pointDotRadius : 3, - - //Number - Pixel width of point dot stroke - pointDotStrokeWidth : 1, - - //Number - amount extra to add to the radius to cater for hit detection outside the drawn point - pointHitDetectionRadius : 20, - - //Boolean - Whether to show a stroke for datasets - datasetStroke : true, - - //Number - Pixel width of dataset stroke - datasetStrokeWidth : 2, - - //Boolean - Whether to fill the dataset with a colour - datasetFill : true, - - //String - A legend template - legendTemplate : "
    -legend\"><% for (var i=0; i
  • \"><%if(datasets[i].label){%><%=datasets[i].label%><%}%>
  • <%}%>
" - - }, - - initialize: function(data){ - this.PointClass = Chart.Point.extend({ - strokeWidth : this.options.pointDotStrokeWidth, - radius : this.options.pointDotRadius, - display: this.options.pointDot, - hitDetectionRadius : this.options.pointHitDetectionRadius, - ctx : this.chart.ctx - }); - - this.datasets = []; - - this.buildScale(data); - - //Set up tooltip events on the chart - if (this.options.showTooltips){ - helpers.bindEvents(this, this.options.tooltipEvents, function(evt){ - var activePointsCollection = (evt.type !== 'mouseout') ? this.getPointsAtEvent(evt) : []; - - this.eachPoints(function(point){ - point.restore(['fillColor', 'strokeColor']); - }); - helpers.each(activePointsCollection, function(activePoint){ - activePoint.fillColor = activePoint.highlightFill; - activePoint.strokeColor = activePoint.highlightStroke; - }); - - this.showTooltip(activePointsCollection); - }); - } - - //Iterate through each of the datasets, and build this into a property of the chart - helpers.each(data.datasets,function(dataset){ - - var datasetObject = { - label: dataset.label || null, - fillColor : dataset.fillColor, - strokeColor : dataset.strokeColor, - pointColor : dataset.pointColor, - pointStrokeColor : dataset.pointStrokeColor, - points : [] - }; - - this.datasets.push(datasetObject); - - helpers.each(dataset.data,function(dataPoint,index){ - //Add a new point for each piece of data, passing any required data to draw. - var pointPosition; - if (!this.scale.animation){ - pointPosition = this.scale.getPointPosition(index, this.scale.calculateCenterOffset(dataPoint)); - } - datasetObject.points.push(new this.PointClass({ - value : dataPoint, - label : data.labels[index], - datasetLabel: dataset.label, - x: (this.options.animation) ? this.scale.xCenter : pointPosition.x, - y: (this.options.animation) ? this.scale.yCenter : pointPosition.y, - strokeColor : dataset.pointStrokeColor, - fillColor : dataset.pointColor, - highlightFill : dataset.pointHighlightFill || dataset.pointColor, - highlightStroke : dataset.pointHighlightStroke || dataset.pointStrokeColor - })); - },this); - - },this); - - this.render(); - }, - eachPoints : function(callback){ - helpers.each(this.datasets,function(dataset){ - helpers.each(dataset.points,callback,this); - },this); - }, - - getPointsAtEvent : function(evt){ - var mousePosition = helpers.getRelativePosition(evt), - fromCenter = helpers.getAngleFromPoint({ - x: this.scale.xCenter, - y: this.scale.yCenter - }, mousePosition); - - var anglePerIndex = (Math.PI * 2) /this.scale.valuesCount, - pointIndex = Math.round((fromCenter.angle - Math.PI * 1.5) / anglePerIndex), - activePointsCollection = []; - - // If we're at the top, make the pointIndex 0 to get the first of the array. - if (pointIndex >= this.scale.valuesCount || pointIndex < 0){ - pointIndex = 0; - } - - if (fromCenter.distance <= this.scale.drawingArea){ - helpers.each(this.datasets, function(dataset){ - activePointsCollection.push(dataset.points[pointIndex]); - }); - } - - return activePointsCollection; - }, - - buildScale : function(data){ - this.scale = new Chart.RadialScale({ - display: this.options.showScale, - fontStyle: this.options.scaleFontStyle, - fontSize: this.options.scaleFontSize, - fontFamily: this.options.scaleFontFamily, - fontColor: this.options.scaleFontColor, - showLabels: this.options.scaleShowLabels, - showLabelBackdrop: this.options.scaleShowLabelBackdrop, - backdropColor: this.options.scaleBackdropColor, - backdropPaddingY : this.options.scaleBackdropPaddingY, - backdropPaddingX: this.options.scaleBackdropPaddingX, - lineWidth: (this.options.scaleShowLine) ? this.options.scaleLineWidth : 0, - lineColor: this.options.scaleLineColor, - angleLineColor : this.options.angleLineColor, - angleLineWidth : (this.options.angleShowLineOut) ? this.options.angleLineWidth : 0, - // Point labels at the edge of each line - pointLabelFontColor : this.options.pointLabelFontColor, - pointLabelFontSize : this.options.pointLabelFontSize, - pointLabelFontFamily : this.options.pointLabelFontFamily, - pointLabelFontStyle : this.options.pointLabelFontStyle, - height : this.chart.height, - width: this.chart.width, - xCenter: this.chart.width/2, - yCenter: this.chart.height/2, - ctx : this.chart.ctx, - templateString: this.options.scaleLabel, - labels: data.labels, - valuesCount: data.datasets[0].data.length - }); - - this.scale.setScaleSize(); - this.updateScaleRange(data.datasets); - this.scale.buildYLabels(); - }, - updateScaleRange: function(datasets){ - var valuesArray = (function(){ - var totalDataArray = []; - helpers.each(datasets,function(dataset){ - if (dataset.data){ - totalDataArray = totalDataArray.concat(dataset.data); - } - else { - helpers.each(dataset.points, function(point){ - totalDataArray.push(point.value); - }); - } - }); - return totalDataArray; - })(); - - - var scaleSizes = (this.options.scaleOverride) ? - { - steps: this.options.scaleSteps, - stepValue: this.options.scaleStepWidth, - min: this.options.scaleStartValue, - max: this.options.scaleStartValue + (this.options.scaleSteps * this.options.scaleStepWidth) - } : - helpers.calculateScaleRange( - valuesArray, - helpers.min([this.chart.width, this.chart.height])/2, - this.options.scaleFontSize, - this.options.scaleBeginAtZero, - this.options.scaleIntegersOnly - ); - - helpers.extend( - this.scale, - scaleSizes - ); - - }, - addData : function(valuesArray,label){ - //Map the values array for each of the datasets - this.scale.valuesCount++; - helpers.each(valuesArray,function(value,datasetIndex){ - var pointPosition = this.scale.getPointPosition(this.scale.valuesCount, this.scale.calculateCenterOffset(value)); - this.datasets[datasetIndex].points.push(new this.PointClass({ - value : value, - label : label, - x: pointPosition.x, - y: pointPosition.y, - strokeColor : this.datasets[datasetIndex].pointStrokeColor, - fillColor : this.datasets[datasetIndex].pointColor - })); - },this); - - this.scale.labels.push(label); - - this.reflow(); - - this.update(); - }, - removeData : function(){ - this.scale.valuesCount--; - this.scale.labels.shift(); - helpers.each(this.datasets,function(dataset){ - dataset.points.shift(); - },this); - this.reflow(); - this.update(); - }, - update : function(){ - this.eachPoints(function(point){ - point.save(); - }); - this.reflow(); - this.render(); - }, - reflow: function(){ - helpers.extend(this.scale, { - width : this.chart.width, - height: this.chart.height, - size : helpers.min([this.chart.width, this.chart.height]), - xCenter: this.chart.width/2, - yCenter: this.chart.height/2 - }); - this.updateScaleRange(this.datasets); - this.scale.setScaleSize(); - this.scale.buildYLabels(); - }, - draw : function(ease){ - var easeDecimal = ease || 1, - ctx = this.chart.ctx; - this.clear(); - this.scale.draw(); - - helpers.each(this.datasets,function(dataset){ - - //Transition each point first so that the line and point drawing isn't out of sync - helpers.each(dataset.points,function(point,index){ - if (point.hasValue()){ - point.transition(this.scale.getPointPosition(index, this.scale.calculateCenterOffset(point.value)), easeDecimal); - } - },this); - - - - //Draw the line between all the points - ctx.lineWidth = this.options.datasetStrokeWidth; - ctx.strokeStyle = dataset.strokeColor; - ctx.beginPath(); - helpers.each(dataset.points,function(point,index){ - if (index === 0){ - ctx.moveTo(point.x,point.y); - } - else{ - ctx.lineTo(point.x,point.y); - } - },this); - ctx.closePath(); - ctx.stroke(); - - ctx.fillStyle = dataset.fillColor; - ctx.fill(); - - //Now draw the points over the line - //A little inefficient double looping, but better than the line - //lagging behind the point positions - helpers.each(dataset.points,function(point){ - if (point.hasValue()){ - point.draw(); - } - }); - - },this); - - } - - }); - - - - - -}).call(this); \ No newline at end of file diff --git a/web/static/js/echarts.min.js b/web/static/js/echarts.min.js new file mode 100644 index 0000000..a5f3cad --- /dev/null +++ b/web/static/js/echarts.min.js @@ -0,0 +1,22 @@ + +/* +* Licensed to the Apache Software Foundation (ASF) under one +* or more contributor license agreements. See the NOTICE file +* distributed with this work for additional information +* regarding copyright ownership. The ASF licenses this file +* to you under the Apache License, Version 2.0 (the +* "License"); you may not use this file except in compliance +* with the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, +* software distributed under the License is distributed on an +* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +* KIND, either express or implied. See the License for the +* specific language governing permissions and limitations +* under the License. +*/ + + +!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){"createCanvas"===t&&(nw=null),ew[t]=e}function i(t){if(null==t||"object"!=typeof t)return t;var e=t,n=Y_.call(t);if("[object Array]"===n){if(!O(t)){e=[];for(var o=0,a=t.length;o=0){var o="touchend"!==n?e.targetTouches[0]:e.changedTouches[0];o&&st(t,o,e,i)}else st(t,e,e,i),e.zrDelta=e.wheelDelta?e.wheelDelta/120:-(e.detail||0)/3;var a=e.button;return null==e.which&&void 0!==a&&gw.test(e.type)&&(e.which=1&a?1:2&a?3:4&a?2:0),e}function ht(t,e,i){pw?t.addEventListener(e,i):t.attachEvent("on"+e,i)}function ct(t,e,i){pw?t.removeEventListener(e,i):t.detachEvent("on"+e,i)}function dt(t){return 2===t.which||3===t.which}function ft(t){var e=t[1][0]-t[0][0],i=t[1][1]-t[0][1];return Math.sqrt(e*e+i*i)}function pt(t){return[(t[0][0]+t[1][0])/2,(t[0][1]+t[1][1])/2]}function gt(t,e,i){return{type:t,event:i,target:e.target,topTarget:e.topTarget,cancelBubble:!1,offsetX:i.zrX,offsetY:i.zrY,gestureEvent:i.gestureEvent,pinchX:i.pinchX,pinchY:i.pinchY,pinchScale:i.pinchScale,wheelDelta:i.zrDelta,zrByTouch:i.zrByTouch,which:i.which,stop:mt}}function mt(t){mw(this.event)}function vt(){}function yt(t,e,i){if(t[t.rectHover?"rectContain":"contain"](e,i)){for(var n,o=t;o;){if(o.clipPath&&!o.clipPath.contain(e,i))return!1;o.silent&&(n=!0),o=o.parent}return!n||xw}return!1}function xt(){var t=new bw(6);return _t(t),t}function _t(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t}function wt(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t}function bt(t,e,i){var n=e[0]*i[0]+e[2]*i[1],o=e[1]*i[0]+e[3]*i[1],a=e[0]*i[2]+e[2]*i[3],r=e[1]*i[2]+e[3]*i[3],s=e[0]*i[4]+e[2]*i[5]+e[4],l=e[1]*i[4]+e[3]*i[5]+e[5];return t[0]=n,t[1]=o,t[2]=a,t[3]=r,t[4]=s,t[5]=l,t}function St(t,e,i){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4]+i[0],t[5]=e[5]+i[1],t}function Mt(t,e,i){var n=e[0],o=e[2],a=e[4],r=e[1],s=e[3],l=e[5],u=Math.sin(i),h=Math.cos(i);return t[0]=n*h+r*u,t[1]=-n*u+r*h,t[2]=o*h+s*u,t[3]=-o*u+h*s,t[4]=h*a+u*l,t[5]=h*l-u*a,t}function It(t,e,i){var n=i[0],o=i[1];return t[0]=e[0]*n,t[1]=e[1]*o,t[2]=e[2]*n,t[3]=e[3]*o,t[4]=e[4]*n,t[5]=e[5]*o,t}function Tt(t,e){var i=e[0],n=e[2],o=e[4],a=e[1],r=e[3],s=e[5],l=i*r-a*n;return l?(l=1/l,t[0]=r*l,t[1]=-a*l,t[2]=-n*l,t[3]=i*l,t[4]=(n*s-r*o)*l,t[5]=(a*o-i*s)*l,t):null}function At(t){var e=xt();return wt(e,t),e}function Dt(t){return t>Iw||t<-Iw}function Ct(t){this._target=t.target,this._life=t.life||1e3,this._delay=t.delay||0,this._initialized=!1,this.loop=null!=t.loop&&t.loop,this.gap=t.gap||0,this.easing=t.easing||"Linear",this.onframe=t.onframe,this.ondestroy=t.ondestroy,this.onrestart=t.onrestart,this._pausedTime=0,this._paused=!1}function Lt(t){return(t=Math.round(t))<0?0:t>255?255:t}function kt(t){return(t=Math.round(t))<0?0:t>360?360:t}function Pt(t){return t<0?0:t>1?1:t}function Nt(t){return Lt(t.length&&"%"===t.charAt(t.length-1)?parseFloat(t)/100*255:parseInt(t,10))}function Ot(t){return Pt(t.length&&"%"===t.charAt(t.length-1)?parseFloat(t)/100:parseFloat(t))}function Et(t,e,i){return i<0?i+=1:i>1&&(i-=1),6*i<1?t+(e-t)*i*6:2*i<1?e:3*i<2?t+(e-t)*(2/3-i)*6:t}function Rt(t,e,i){return t+(e-t)*i}function zt(t,e,i,n,o){return t[0]=e,t[1]=i,t[2]=n,t[3]=o,t}function Bt(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function Vt(t,e){Vw&&Bt(Vw,e),Vw=Bw.put(t,Vw||e.slice())}function Gt(t,e){if(t){e=e||[];var i=Bw.get(t);if(i)return Bt(e,i);var n=(t+="").replace(/ /g,"").toLowerCase();if(n in zw)return Bt(e,zw[n]),Vt(t,e),e;if("#"!==n.charAt(0)){var o=n.indexOf("("),a=n.indexOf(")");if(-1!==o&&a+1===n.length){var r=n.substr(0,o),s=n.substr(o+1,a-(o+1)).split(","),l=1;switch(r){case"rgba":if(4!==s.length)return void zt(e,0,0,0,1);l=Ot(s.pop());case"rgb":return 3!==s.length?void zt(e,0,0,0,1):(zt(e,Nt(s[0]),Nt(s[1]),Nt(s[2]),l),Vt(t,e),e);case"hsla":return 4!==s.length?void zt(e,0,0,0,1):(s[3]=Ot(s[3]),Ft(s,e),Vt(t,e),e);case"hsl":return 3!==s.length?void zt(e,0,0,0,1):(Ft(s,e),Vt(t,e),e);default:return}}zt(e,0,0,0,1)}else{if(4===n.length)return(u=parseInt(n.substr(1),16))>=0&&u<=4095?(zt(e,(3840&u)>>4|(3840&u)>>8,240&u|(240&u)>>4,15&u|(15&u)<<4,1),Vt(t,e),e):void zt(e,0,0,0,1);if(7===n.length){var u=parseInt(n.substr(1),16);return u>=0&&u<=16777215?(zt(e,(16711680&u)>>16,(65280&u)>>8,255&u,1),Vt(t,e),e):void zt(e,0,0,0,1)}}}}function Ft(t,e){var i=(parseFloat(t[0])%360+360)%360/360,n=Ot(t[1]),o=Ot(t[2]),a=o<=.5?o*(n+1):o+n-o*n,r=2*o-a;return e=e||[],zt(e,Lt(255*Et(r,a,i+1/3)),Lt(255*Et(r,a,i)),Lt(255*Et(r,a,i-1/3)),1),4===t.length&&(e[3]=t[3]),e}function Wt(t){if(t){var e,i,n=t[0]/255,o=t[1]/255,a=t[2]/255,r=Math.min(n,o,a),s=Math.max(n,o,a),l=s-r,u=(s+r)/2;if(0===l)e=0,i=0;else{i=u<.5?l/(s+r):l/(2-s-r);var h=((s-n)/6+l/2)/l,c=((s-o)/6+l/2)/l,d=((s-a)/6+l/2)/l;n===s?e=d-c:o===s?e=1/3+h-d:a===s&&(e=2/3+c-h),e<0&&(e+=1),e>1&&(e-=1)}var f=[360*e,i,u];return null!=t[3]&&f.push(t[3]),f}}function Ht(t,e){var i=Gt(t);if(i){for(var n=0;n<3;n++)i[n]=e<0?i[n]*(1-e)|0:(255-i[n])*e+i[n]|0,i[n]>255?i[n]=255:t[n]<0&&(i[n]=0);return qt(i,4===i.length?"rgba":"rgb")}}function Zt(t){var e=Gt(t);if(e)return((1<<24)+(e[0]<<16)+(e[1]<<8)+ +e[2]).toString(16).slice(1)}function Ut(t,e,i){if(e&&e.length&&t>=0&&t<=1){i=i||[];var n=t*(e.length-1),o=Math.floor(n),a=Math.ceil(n),r=e[o],s=e[a],l=n-o;return i[0]=Lt(Rt(r[0],s[0],l)),i[1]=Lt(Rt(r[1],s[1],l)),i[2]=Lt(Rt(r[2],s[2],l)),i[3]=Pt(Rt(r[3],s[3],l)),i}}function Xt(t,e,i){if(e&&e.length&&t>=0&&t<=1){var n=t*(e.length-1),o=Math.floor(n),a=Math.ceil(n),r=Gt(e[o]),s=Gt(e[a]),l=n-o,u=qt([Lt(Rt(r[0],s[0],l)),Lt(Rt(r[1],s[1],l)),Lt(Rt(r[2],s[2],l)),Pt(Rt(r[3],s[3],l))],"rgba");return i?{color:u,leftIndex:o,rightIndex:a,value:n}:u}}function jt(t,e,i,n){if(t=Gt(t))return t=Wt(t),null!=e&&(t[0]=kt(e)),null!=i&&(t[1]=Ot(i)),null!=n&&(t[2]=Ot(n)),qt(Ft(t),"rgba")}function Yt(t,e){if((t=Gt(t))&&null!=e)return t[3]=Pt(e),qt(t,"rgba")}function qt(t,e){if(t&&t.length){var i=t[0]+","+t[1]+","+t[2];return"rgba"!==e&&"hsva"!==e&&"hsla"!==e||(i+=","+t[3]),e+"("+i+")"}}function Kt(t,e){return t[e]}function $t(t,e,i){t[e]=i}function Jt(t,e,i){return(e-t)*i+t}function Qt(t,e,i){return i>.5?e:t}function te(t,e,i,n,o){var a=t.length;if(1===o)for(s=0;so)t.length=o;else for(r=n;r=0&&!(m[i]<=e);i--);i=Math.min(i,u-2)}else{for(i=L;ie);i++);i=Math.min(i-1,u-2)}L=i,k=e;var n=m[i+1]-m[i];if(0!==n)if(I=(e-m[i])/n,l)if(A=v[i],T=v[0===i?i:i-1],D=v[i>u-2?u-1:i+1],C=v[i>u-3?u-1:i+2],d)ne(T,A,D,C,I,I*I,I*I*I,r(t,o),g);else{if(f)a=ne(T,A,D,C,I,I*I,I*I*I,P,1),a=re(P);else{if(p)return Qt(A,D,I);a=oe(T,A,D,C,I,I*I,I*I*I)}s(t,o,a)}else if(d)te(v[i],v[i+1],I,r(t,o),g);else{var a;if(f)te(v[i],v[i+1],I,P,1),a=re(P);else{if(p)return Qt(v[i],v[i+1],I);a=Jt(v[i],v[i+1],I)}s(t,o,a)}},ondestroy:i});return e&&"spline"!==e&&(N.easing=e),N}}}function ue(t,e,i,n,o,a,r,s){_(n)?(a=o,o=n,n=0):x(o)?(a=o,o="linear",n=0):x(n)?(a=n,n=0):x(i)?(a=i,i=500):i||(i=500),t.stopAnimation(),he(t,"",t,e,i,n,s);var l=t.animators.slice(),u=l.length;u||a&&a();for(var h=0;h0&&t.animate(e,!1).when(null==o?500:o,s).delay(a||0)}function ce(t,e,i,n){if(e){var o={};o[e]={},o[e][i]=n,t.attr(o)}else t.attr(i,n)}function de(t,e,i,n){i<0&&(t+=i,i=-i),n<0&&(e+=n,n=-n),this.x=t,this.y=e,this.width=i,this.height=n}function fe(t){for(var e=0;t>=eb;)e|=1&t,t>>=1;return t+e}function pe(t,e,i,n){var o=e+1;if(o===i)return 1;if(n(t[o++],t[e])<0){for(;o=0;)o++;return o-e}function ge(t,e,i){for(i--;e>>1])<0?l=a:s=a+1;var u=n-s;switch(u){case 3:t[s+3]=t[s+2];case 2:t[s+2]=t[s+1];case 1:t[s+1]=t[s];break;default:for(;u>0;)t[s+u]=t[s+u-1],u--}t[s]=r}}function ve(t,e,i,n,o,a){var r=0,s=0,l=1;if(a(t,e[i+o])>0){for(s=n-o;l0;)r=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s),r+=o,l+=o}else{for(s=o+1;ls&&(l=s);var u=r;r=o-l,l=o-u}for(r++;r>>1);a(t,e[i+h])>0?r=h+1:l=h}return l}function ye(t,e,i,n,o,a){var r=0,s=0,l=1;if(a(t,e[i+o])<0){for(s=o+1;ls&&(l=s);var u=r;r=o-l,l=o-u}else{for(s=n-o;l=0;)r=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s),r+=o,l+=o}for(r++;r>>1);a(t,e[i+h])<0?l=h:r=h+1}return l}function xe(t,e){function i(i){var s=a[i],u=r[i],h=a[i+1],c=r[i+1];r[i]=u+c,i===l-3&&(a[i+1]=a[i+2],r[i+1]=r[i+2]),l--;var d=ye(t[h],t,s,u,0,e);s+=d,0!==(u-=d)&&0!==(c=ve(t[s+u-1],t,h,c,c-1,e))&&(u<=c?n(s,u,h,c):o(s,u,h,c))}function n(i,n,o,a){var r=0;for(r=0;r=ib||f>=ib);if(p)break;g<0&&(g=0),g+=2}if((s=g)<1&&(s=1),1===n){for(r=0;r=0;r--)t[f+r]=t[d+r];if(0===n){v=!0;break}}if(t[c--]=u[h--],1==--a){v=!0;break}if(0!=(m=a-ve(t[l],u,0,a,a-1,e))){for(a-=m,f=(c-=m)+1,d=(h-=m)+1,r=0;r=ib||m>=ib);if(v)break;p<0&&(p=0),p+=2}if((s=p)<1&&(s=1),1===a){for(f=(c-=n)+1,d=(l-=n)+1,r=n-1;r>=0;r--)t[f+r]=t[d+r];t[c]=u[h]}else{if(0===a)throw new Error;for(d=c-(a-1),r=0;r=0;r--)t[f+r]=t[d+r];t[c]=u[h]}else for(d=c-(a-1),r=0;r1;){var t=l-2;if(t>=1&&r[t-1]<=r[t]+r[t+1]||t>=2&&r[t-2]<=r[t]+r[t-1])r[t-1]r[t+1])break;i(t)}},this.forceMergeRuns=function(){for(;l>1;){var t=l-2;t>0&&r[t-1]s&&(l=s),me(t,i,i+l,i+a,e),a=l}r.pushRun(i,a),r.mergeRuns(),o-=a,i+=a}while(0!==o);r.forceMergeRuns()}}function we(t,e){return t.zlevel===e.zlevel?t.z===e.z?t.z2-e.z2:t.z-e.z:t.zlevel-e.zlevel}function be(t,e,i){var n=null==e.x?0:e.x,o=null==e.x2?1:e.x2,a=null==e.y?0:e.y,r=null==e.y2?0:e.y2;return e.global||(n=n*i.width+i.x,o=o*i.width+i.x,a=a*i.height+i.y,r=r*i.height+i.y),n=isNaN(n)?0:n,o=isNaN(o)?1:o,a=isNaN(a)?0:a,r=isNaN(r)?0:r,t.createLinearGradient(n,a,o,r)}function Se(t,e,i){var n=i.width,o=i.height,a=Math.min(n,o),r=null==e.x?.5:e.x,s=null==e.y?.5:e.y,l=null==e.r?.5:e.r;return e.global||(r=r*n+i.x,s=s*o+i.y,l*=a),t.createRadialGradient(r,s,0,r,s,l)}function Me(){return!1}function Ie(t,e,i){var n=iw(),o=e.getWidth(),a=e.getHeight(),r=n.style;return r&&(r.position="absolute",r.left=0,r.top=0,r.width=o+"px",r.height=a+"px",n.setAttribute("data-zr-dom-id",t)),n.width=o*i,n.height=a*i,n}function Te(t){if("string"==typeof t){var e=mb.get(t);return e&&e.image}return t}function Ae(t,e,i,n,o){if(t){if("string"==typeof t){if(e&&e.__zrImageSrc===t||!i)return e;var a=mb.get(t),r={hostEl:i,cb:n,cbPayload:o};return a?!Ce(e=a.image)&&a.pending.push(r):((e=new Image).onload=e.onerror=De,mb.put(t,e.__cachedImgObj={image:e,pending:[r]}),e.src=e.__zrImageSrc=t),e}return t}return e}function De(){var t=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var e=0;exb&&(yb=0,vb={}),yb++,vb[i]=o,o}function ke(t,e,i,n,o,a,r,s){return r?Ne(t,e,i,n,o,r,a,s):Pe(t,e,i,n,o,a,s)}function Pe(t,e,i,n,o,a,r){var s=He(t,e,o,a,r),l=Le(t,e);o&&(l+=o[1]+o[3]);var u=s.outerHeight,h=new de(Oe(0,l,i),Ee(0,u,n),l,u);return h.lineHeight=s.lineHeight,h}function Ne(t,e,i,n,o,a,r,s){var l=Ze(t,{rich:r,truncate:s,font:e,textAlign:i,textPadding:o,textLineHeight:a}),u=l.outerWidth,h=l.outerHeight;return new de(Oe(0,u,i),Ee(0,h,n),u,h)}function Oe(t,e,i){return"right"===i?t-=e:"center"===i&&(t-=e/2),t}function Ee(t,e,i){return"middle"===i?t-=e/2:"bottom"===i&&(t-=e),t}function Re(t,e,i){var n=e.x,o=e.y,a=e.height,r=e.width,s=a/2,l="left",u="top";switch(t){case"left":n-=i,o+=s,l="right",u="middle";break;case"right":n+=i+r,o+=s,u="middle";break;case"top":n+=r/2,o-=i,l="center",u="bottom";break;case"bottom":n+=r/2,o+=a+i,l="center";break;case"inside":n+=r/2,o+=s,l="center",u="middle";break;case"insideLeft":n+=i,o+=s,u="middle";break;case"insideRight":n+=r-i,o+=s,l="right",u="middle";break;case"insideTop":n+=r/2,o+=i,l="center";break;case"insideBottom":n+=r/2,o+=a-i,l="center",u="bottom";break;case"insideTopLeft":n+=i,o+=i;break;case"insideTopRight":n+=r-i,o+=i,l="right";break;case"insideBottomLeft":n+=i,o+=a-i,u="bottom";break;case"insideBottomRight":n+=r-i,o+=a-i,l="right",u="bottom"}return{x:n,y:o,textAlign:l,textVerticalAlign:u}}function ze(t,e,i,n,o){if(!e)return"";var a=(t+"").split("\n");o=Be(e,i,n,o);for(var r=0,s=a.length;r=r;l++)s-=r;var u=Le(i,e);return u>s&&(i="",u=0),s=t-u,n.ellipsis=i,n.ellipsisWidth=u,n.contentWidth=s,n.containerWidth=t,n}function Ve(t,e){var i=e.containerWidth,n=e.font,o=e.contentWidth;if(!i)return"";var a=Le(t,n);if(a<=i)return t;for(var r=0;;r++){if(a<=o||r>=e.maxIterations){t+=e.ellipsis;break}var s=0===r?Ge(t,o,e.ascCharWidth,e.cnCharWidth):a>0?Math.floor(t.length*o/a):0;a=Le(t=t.substr(0,s),n)}return""===t&&(t=e.placeholder),t}function Ge(t,e,i,n){for(var o=0,a=0,r=t.length;au)t="",r=[];else if(null!=h)for(var c=Be(h-(i?i[1]+i[3]:0),e,o.ellipsis,{minChar:o.minChar,placeholder:o.placeholder}),d=0,f=r.length;do&&Ue(i,t.substring(o,a)),Ue(i,n[2],n[1]),o=_b.lastIndex}of)return{lines:[],width:0,height:0};k.textWidth=Le(k.text,_);var b=y.textWidth,S=null==b||"auto"===b;if("string"==typeof b&&"%"===b.charAt(b.length-1))k.percentWidth=b,u.push(k),b=0;else{if(S){b=k.textWidth;var M=y.textBackgroundColor,I=M&&M.image;I&&Ce(I=Te(I))&&(b=Math.max(b,I.width*w/I.height))}var T=x?x[1]+x[3]:0;b+=T;var C=null!=d?d-m:null;null!=C&&Cl&&(i*=l/(c=i+n),n*=l/c),o+a>l&&(o*=l/(c=o+a),a*=l/c),n+o>u&&(n*=u/(c=n+o),o*=u/c),i+a>u&&(i*=u/(c=i+a),a*=u/c),t.moveTo(r+i,s),t.lineTo(r+l-n,s),0!==n&&t.arc(r+l-n,s+n,n,-Math.PI/2,0),t.lineTo(r+l,s+u-o),0!==o&&t.arc(r+l-o,s+u-o,o,0,Math.PI/2),t.lineTo(r+a,s+u),0!==a&&t.arc(r+a,s+u-a,a,Math.PI/2,Math.PI),t.lineTo(r,s+i),0!==i&&t.arc(r+i,s+i,i,Math.PI,1.5*Math.PI)}function Ye(t){return qe(t),d(t.rich,qe),t}function qe(t){if(t){t.font=Xe(t);var e=t.textAlign;"middle"===e&&(e="center"),t.textAlign=null==e||Mb[e]?e:"left";var i=t.textVerticalAlign||t.textBaseline;"center"===i&&(i="middle"),t.textVerticalAlign=null==i||Ib[i]?i:"top",t.textPadding&&(t.textPadding=L(t.textPadding))}}function Ke(t,e,i,n,o,a){n.rich?Je(t,e,i,n,o,a):$e(t,e,i,n,o,a)}function $e(t,e,i,n,o,a){var r,s=ii(n),l=!1,u=e.__attrCachedBy===rb.PLAIN_TEXT;a!==sb?(a&&(r=a.style,l=!s&&u&&r),e.__attrCachedBy=s?rb.NONE:rb.PLAIN_TEXT):u&&(e.__attrCachedBy=rb.NONE);var h=n.font||Sb;l&&h===(r.font||Sb)||(e.font=h);var c=t.__computedFont;t.__styleFont!==h&&(t.__styleFont=h,c=t.__computedFont=e.font);var d=n.textPadding,f=n.textLineHeight,p=t.__textCotentBlock;p&&!t.__dirtyText||(p=t.__textCotentBlock=He(i,c,d,f,n.truncate));var g=p.outerHeight,m=p.lines,v=p.lineHeight,y=ai(g,n,o),x=y.baseX,_=y.baseY,w=y.textAlign||"left",b=y.textVerticalAlign;ti(e,n,o,x,_);var S=Ee(_,g,b),M=x,I=S;if(s||d){var T=Le(i,c);d&&(T+=d[1]+d[3]);var A=Oe(x,T,w);s&&ni(t,e,n,A,S,T,g),d&&(M=hi(x,w,d),I+=d[0])}e.textAlign=w,e.textBaseline="middle",e.globalAlpha=n.opacity||1;for(B=0;B=0&&"right"===(_=b[C]).textAlign;)ei(t,e,_,n,M,v,D,"right"),I-=_.width,D-=_.width,C--;for(A+=(a-(A-m)-(y-D)-I)/2;T<=C;)ei(t,e,_=b[T],n,M,v,A+_.width/2,"center"),A+=_.width,T++;v+=M}}function ti(t,e,i,n,o){if(i&&e.textRotation){var a=e.textOrigin;"center"===a?(n=i.width/2+i.x,o=i.height/2+i.y):a&&(n=a[0]+i.x,o=a[1]+i.y),t.translate(n,o),t.rotate(-e.textRotation),t.translate(-n,-o)}}function ei(t,e,i,n,o,a,r,s){var l=n.rich[i.styleName]||{};l.text=i.text;var u=i.textVerticalAlign,h=a+o/2;"top"===u?h=a+i.height/2:"bottom"===u&&(h=a+o-i.height/2),!i.isLineHolder&&ii(l)&&ni(t,e,l,"right"===s?r-i.width:"center"===s?r-i.width/2:r,h-i.height/2,i.width,i.height);var c=i.textPadding;c&&(r=hi(r,s,c),h-=i.height/2-c[2]-i.textHeight/2),ri(e,"shadowBlur",D(l.textShadowBlur,n.textShadowBlur,0)),ri(e,"shadowColor",l.textShadowColor||n.textShadowColor||"transparent"),ri(e,"shadowOffsetX",D(l.textShadowOffsetX,n.textShadowOffsetX,0)),ri(e,"shadowOffsetY",D(l.textShadowOffsetY,n.textShadowOffsetY,0)),ri(e,"textAlign",s),ri(e,"textBaseline","middle"),ri(e,"font",i.font||Sb);var d=si(l.textStroke||n.textStroke,p),f=li(l.textFill||n.textFill),p=A(l.textStrokeWidth,n.textStrokeWidth);d&&(ri(e,"lineWidth",p),ri(e,"strokeStyle",d),e.strokeText(i.text,r,h)),f&&(ri(e,"fillStyle",f),e.fillText(i.text,r,h))}function ii(t){return!!(t.textBackgroundColor||t.textBorderWidth&&t.textBorderColor)}function ni(t,e,i,n,o,a,r){var s=i.textBackgroundColor,l=i.textBorderWidth,u=i.textBorderColor,h=_(s);if(ri(e,"shadowBlur",i.textBoxShadowBlur||0),ri(e,"shadowColor",i.textBoxShadowColor||"transparent"),ri(e,"shadowOffsetX",i.textBoxShadowOffsetX||0),ri(e,"shadowOffsetY",i.textBoxShadowOffsetY||0),h||l&&u){e.beginPath();var c=i.textBorderRadius;c?je(e,{x:n,y:o,width:a,height:r,r:c}):e.rect(n,o,a,r),e.closePath()}if(h)if(ri(e,"fillStyle",s),null!=i.fillOpacity){f=e.globalAlpha;e.globalAlpha=i.fillOpacity*i.opacity,e.fill(),e.globalAlpha=f}else e.fill();else if(w(s)){var d=s.image;(d=Ae(d,null,t,oi,s))&&Ce(d)&&e.drawImage(d,n,o,a,r)}if(l&&u)if(ri(e,"lineWidth",l),ri(e,"strokeStyle",u),null!=i.strokeOpacity){var f=e.globalAlpha;e.globalAlpha=i.strokeOpacity*i.opacity,e.stroke(),e.globalAlpha=f}else e.stroke()}function oi(t,e){e.image=t}function ai(t,e,i){var n=e.x||0,o=e.y||0,a=e.textAlign,r=e.textVerticalAlign;if(i){var s=e.textPosition;if(s instanceof Array)n=i.x+ui(s[0],i.width),o=i.y+ui(s[1],i.height);else{var l=Re(s,i,e.textDistance);n=l.x,o=l.y,a=a||l.textAlign,r=r||l.textVerticalAlign}var u=e.textOffset;u&&(n+=u[0],o+=u[1])}return{baseX:n,baseY:o,textAlign:a,textVerticalAlign:r}}function ri(t,e,i){return t[e]=ab(t,e,i),t[e]}function si(t,e){return null==t||e<=0||"transparent"===t||"none"===t?null:t.image||t.colorStops?"#000":t}function li(t){return null==t||"none"===t?null:t.image||t.colorStops?"#000":t}function ui(t,e){return"string"==typeof t?t.lastIndexOf("%")>=0?parseFloat(t)/100*e:parseFloat(t):t}function hi(t,e,i){return"right"===e?t-i[1]:"center"===e?t+i[3]/2-i[1]/2:t+i[3]}function ci(t,e){return null!=t&&(t||e.textBackgroundColor||e.textBorderWidth&&e.textBorderColor||e.textPadding)}function di(t){t=t||{},Kw.call(this,t);for(var e in t)t.hasOwnProperty(e)&&"style"!==e&&(this[e]=t[e]);this.style=new ub(t.style,this),this._rect=null,this.__clipPaths=[]}function fi(t){di.call(this,t)}function pi(t){return parseInt(t,10)}function gi(t){return!!t&&(!!t.__builtin__||"function"==typeof t.resize&&"function"==typeof t.refresh)}function mi(t,e,i){return Cb.copy(t.getBoundingRect()),t.transform&&Cb.applyTransform(t.transform),Lb.width=e,Lb.height=i,!Cb.intersect(Lb)}function vi(t,e){if(t===e)return!1;if(!t||!e||t.length!==e.length)return!0;for(var i=0;i=i.length&&i.push({option:t})}}),i}function Ni(t){var e=R();Zb(t,function(t,i){var n=t.exist;n&&e.set(n.id,t)}),Zb(t,function(t,i){var n=t.option;k(!n||null==n.id||!e.get(n.id)||e.get(n.id)===t,"id duplicates: "+(n&&n.id)),n&&null!=n.id&&e.set(n.id,t),!t.keyInfo&&(t.keyInfo={})}),Zb(t,function(t,i){var n=t.exist,o=t.option,a=t.keyInfo;if(Ub(o)){if(a.name=null!=o.name?o.name+"":n?n.name:jb+i,n)a.id=n.id;else if(null!=o.id)a.id=o.id+"";else{var r=0;do{a.id="\0"+a.name+"\0"+r++}while(e.get(a.id))}e.set(a.id,t)}})}function Oi(t){var e=t.name;return!(!e||!e.indexOf(jb))}function Ei(t){return Ub(t)&&t.id&&0===(t.id+"").indexOf("\0_ec_\0")}function Ri(t,e){function i(t,e,i){for(var n=0,o=t.length;n-rS&&trS||t<-rS}function Qi(t,e,i,n,o){var a=1-o;return a*a*(a*t+3*o*e)+o*o*(o*n+3*a*i)}function tn(t,e,i,n,o){var a=1-o;return 3*(((e-t)*a+2*(i-e)*o)*a+(n-i)*o*o)}function en(t,e,i,n,o,a){var r=n+3*(e-i)-t,s=3*(i-2*e+t),l=3*(e-t),u=t-o,h=s*s-3*r*l,c=s*l-9*r*u,d=l*l-3*s*u,f=0;if($i(h)&&$i(c))$i(s)?a[0]=0:(M=-l/s)>=0&&M<=1&&(a[f++]=M);else{var p=c*c-4*h*d;if($i(p)){var g=c/h,m=-g/2;(M=-s/r+g)>=0&&M<=1&&(a[f++]=M),m>=0&&m<=1&&(a[f++]=m)}else if(p>0){var v=aS(p),y=h*s+1.5*r*(-c+v),x=h*s+1.5*r*(-c-v);(M=(-s-((y=y<0?-oS(-y,uS):oS(y,uS))+(x=x<0?-oS(-x,uS):oS(x,uS))))/(3*r))>=0&&M<=1&&(a[f++]=M)}else{var _=(2*h*s-3*r*c)/(2*aS(h*h*h)),w=Math.acos(_)/3,b=aS(h),S=Math.cos(w),M=(-s-2*b*S)/(3*r),m=(-s+b*(S+lS*Math.sin(w)))/(3*r),I=(-s+b*(S-lS*Math.sin(w)))/(3*r);M>=0&&M<=1&&(a[f++]=M),m>=0&&m<=1&&(a[f++]=m),I>=0&&I<=1&&(a[f++]=I)}}return f}function nn(t,e,i,n,o){var a=6*i-12*e+6*t,r=9*e+3*n-3*t-9*i,s=3*e-3*t,l=0;if($i(r))Ji(a)&&(c=-s/a)>=0&&c<=1&&(o[l++]=c);else{var u=a*a-4*r*s;if($i(u))o[0]=-a/(2*r);else if(u>0){var h=aS(u),c=(-a+h)/(2*r),d=(-a-h)/(2*r);c>=0&&c<=1&&(o[l++]=c),d>=0&&d<=1&&(o[l++]=d)}}return l}function on(t,e,i,n,o,a){var r=(e-t)*o+t,s=(i-e)*o+e,l=(n-i)*o+i,u=(s-r)*o+r,h=(l-s)*o+s,c=(h-u)*o+u;a[0]=t,a[1]=r,a[2]=u,a[3]=c,a[4]=c,a[5]=h,a[6]=l,a[7]=n}function an(t,e,i,n,o,a,r,s,l,u,h){var c,d,f,p,g,m=.005,v=1/0;hS[0]=l,hS[1]=u;for(var y=0;y<1;y+=.05)cS[0]=Qi(t,i,o,r,y),cS[1]=Qi(e,n,a,s,y),(p=hw(hS,cS))=0&&p=0&&c<=1&&(o[l++]=c);else{var u=r*r-4*a*s;if($i(u))(c=-r/(2*a))>=0&&c<=1&&(o[l++]=c);else if(u>0){var h=aS(u),c=(-r+h)/(2*a),d=(-r-h)/(2*a);c>=0&&c<=1&&(o[l++]=c),d>=0&&d<=1&&(o[l++]=d)}}return l}function un(t,e,i){var n=t+i-2*e;return 0===n?.5:(t-e)/n}function hn(t,e,i,n,o){var a=(e-t)*n+t,r=(i-e)*n+e,s=(r-a)*n+a;o[0]=t,o[1]=a,o[2]=s,o[3]=s,o[4]=r,o[5]=i}function cn(t,e,i,n,o,a,r,s,l){var u,h=.005,c=1/0;hS[0]=r,hS[1]=s;for(var d=0;d<1;d+=.05)cS[0]=rn(t,i,o,d),cS[1]=rn(e,n,a,d),(m=hw(hS,cS))=0&&m1e-4)return s[0]=t-i,s[1]=e-n,l[0]=t+i,void(l[1]=e+n);if(yS[0]=mS(o)*i+t,yS[1]=gS(o)*n+e,xS[0]=mS(a)*i+t,xS[1]=gS(a)*n+e,u(s,yS,xS),h(l,yS,xS),(o%=vS)<0&&(o+=vS),(a%=vS)<0&&(a+=vS),o>a&&!r?a+=vS:oo&&(_S[0]=mS(f)*i+t,_S[1]=gS(f)*n+e,u(s,_S,s),h(l,_S,l))}function vn(t,e,i,n,o,a,r){if(0===o)return!1;var s=o,l=0,u=t;if(r>e+s&&r>n+s||rt+s&&a>i+s||ae+c&&h>n+c&&h>a+c&&h>s+c||ht+c&&u>i+c&&u>o+c&&u>r+c||ue+u&&l>n+u&&l>a+u||lt+u&&s>i+u&&s>o+u||si||h+uo&&(o+=zS);var d=Math.atan2(l,s);return d<0&&(d+=zS),d>=n&&d<=o||d+zS>=n&&d+zS<=o}function bn(t,e,i,n,o,a){if(a>e&&a>n||ao?r:0}function Sn(t,e){return Math.abs(t-e)e&&u>n&&u>a&&u>s||u1&&Mn(),c=Qi(e,n,a,s,WS[0]),p>1&&(d=Qi(e,n,a,s,WS[1]))),2===p?me&&s>n&&s>a||s=0&&u<=1){for(var h=0,c=rn(e,n,a,u),d=0;di||s<-i)return 0;u=Math.sqrt(i*i-s*s);FS[0]=-u,FS[1]=u;var l=Math.abs(n-o);if(l<1e-4)return 0;if(l%VS<1e-4){n=0,o=VS;p=a?1:-1;return r>=FS[0]+t&&r<=FS[1]+t?p:0}if(a){var u=n;n=_n(o),o=_n(u)}else n=_n(n),o=_n(o);n>o&&(o+=VS);for(var h=0,c=0;c<2;c++){var d=FS[c];if(d+t>r){var f=Math.atan2(s,d),p=a?1:-1;f<0&&(f=VS+f),(f>=n&&f<=o||f+VS>=n&&f+VS<=o)&&(f>Math.PI/2&&f<1.5*Math.PI&&(p=-p),h+=p)}}return h}function Dn(t,e,i,n,o){for(var a=0,r=0,s=0,l=0,u=0,h=0;h1&&(i||(a+=bn(r,s,l,u,n,o))),1===h&&(l=r=t[h],u=s=t[h+1]),c){case BS.M:r=l=t[h++],s=u=t[h++];break;case BS.L:if(i){if(vn(r,s,t[h],t[h+1],e,n,o))return!0}else a+=bn(r,s,t[h],t[h+1],n,o)||0;r=t[h++],s=t[h++];break;case BS.C:if(i){if(yn(r,s,t[h++],t[h++],t[h++],t[h++],t[h],t[h+1],e,n,o))return!0}else a+=In(r,s,t[h++],t[h++],t[h++],t[h++],t[h],t[h+1],n,o)||0;r=t[h++],s=t[h++];break;case BS.Q:if(i){if(xn(r,s,t[h++],t[h++],t[h],t[h+1],e,n,o))return!0}else a+=Tn(r,s,t[h++],t[h++],t[h],t[h+1],n,o)||0;r=t[h++],s=t[h++];break;case BS.A:var d=t[h++],f=t[h++],p=t[h++],g=t[h++],m=t[h++],v=t[h++];h+=1;var y=1-t[h++],x=Math.cos(m)*p+d,_=Math.sin(m)*g+f;h>1?a+=bn(r,s,x,_,n,o):(l=x,u=_);var w=(n-d)*g/p+d;if(i){if(wn(d,f,g,m,m+v,y,e,w,o))return!0}else a+=An(d,f,g,m,m+v,y,w,o);r=Math.cos(m+v)*p+d,s=Math.sin(m+v)*g+f;break;case BS.R:l=r=t[h++],u=s=t[h++];var x=l+t[h++],_=u+t[h++];if(i){if(vn(l,u,x,u,e,n,o)||vn(x,u,x,_,e,n,o)||vn(x,_,l,_,e,n,o)||vn(l,_,l,u,e,n,o))return!0}else a+=bn(x,u,x,_,n,o),a+=bn(l,_,l,u,n,o);break;case BS.Z:if(i){if(vn(r,s,l,u,e,n,o))return!0}else a+=bn(r,s,l,u,n,o);r=l,s=u}}return i||Sn(s,u)||(a+=bn(r,s,l,u,n,o)||0),0!==a}function Cn(t,e,i){return Dn(t,0,!1,e,i)}function Ln(t,e,i,n){return Dn(t,e,!0,i,n)}function kn(t){di.call(this,t),this.path=null}function Pn(t,e,i,n,o,a,r,s,l,u,h){var c=l*(tM/180),d=QS(c)*(t-i)/2+JS(c)*(e-n)/2,f=-1*JS(c)*(t-i)/2+QS(c)*(e-n)/2,p=d*d/(r*r)+f*f/(s*s);p>1&&(r*=$S(p),s*=$S(p));var g=(o===a?-1:1)*$S((r*r*(s*s)-r*r*(f*f)-s*s*(d*d))/(r*r*(f*f)+s*s*(d*d)))||0,m=g*r*f/s,v=g*-s*d/r,y=(t+i)/2+QS(c)*m-JS(c)*v,x=(e+n)/2+JS(c)*m+QS(c)*v,_=nM([1,0],[(d-m)/r,(f-v)/s]),w=[(d-m)/r,(f-v)/s],b=[(-1*d-m)/r,(-1*f-v)/s],S=nM(w,b);iM(w,b)<=-1&&(S=tM),iM(w,b)>=1&&(S=0),0===a&&S>0&&(S-=2*tM),1===a&&S<0&&(S+=2*tM),h.addData(u,y,x,r,s,_,S,c,a)}function Nn(t){if(!t)return new ES;for(var e,i=0,n=0,o=i,a=n,r=new ES,s=ES.CMD,l=t.match(oM),u=0;u=2){if(o&&"spline"!==o){var a=fM(n,o,i,e.smoothConstraint);t.moveTo(n[0][0],n[0][1]);for(var r=n.length,s=0;s<(i?r:r-1);s++){var l=a[2*s],u=a[2*s+1],h=n[(s+1)%r];t.bezierCurveTo(l[0],l[1],u[0],u[1],h[0],h[1])}}else{"spline"===o&&(n=dM(n,i)),t.moveTo(n[0][0],n[0][1]);for(var s=1,c=n.length;s=0)?(i={textFill:null,textStroke:t.textStroke,textStrokeWidth:t.textStrokeWidth},t.textFill="#fff",null==t.textStroke&&(t.textStroke=a,null==t.textStrokeWidth&&(t.textStrokeWidth=2))):null!=a&&(i={textFill:null},t.textFill=a),i&&(t.insideRollback=i)}}function wo(t){var e=t.insideRollback;e&&(t.textFill=e.textFill,t.textStroke=e.textStroke,t.textStrokeWidth=e.textStrokeWidth,t.insideRollback=null)}function bo(t,e){var i=e||e.getModel("textStyle");return P([t.fontStyle||i&&i.getShallow("fontStyle")||"",t.fontWeight||i&&i.getShallow("fontWeight")||"",(t.fontSize||i&&i.getShallow("fontSize")||12)+"px",t.fontFamily||i&&i.getShallow("fontFamily")||"sans-serif"].join(" "))}function So(t,e,i,n,o,a){if("function"==typeof o&&(a=o,o=null),n&&n.isAnimationEnabled()){var r=t?"Update":"",s=n.getShallow("animationDuration"+r),l=n.getShallow("animationEasing"+r),u=n.getShallow("animationDelay"+r);"function"==typeof u&&(u=u(o,n.getAnimationDelayParams?n.getAnimationDelayParams(e,o):null)),"function"==typeof s&&(s=s(o)),s>0?e.animateTo(i,s,u||0,l,a,!!a):(e.stopAnimation(),e.attr(i),a&&a())}else e.stopAnimation(),e.attr(i),a&&a()}function Mo(t,e,i,n,o){So(!0,t,e,i,n,o)}function Io(t,e,i,n,o){So(!1,t,e,i,n,o)}function To(t,e){for(var i=_t([]);t&&t!==e;)bt(i,t.getLocalTransform(),i),t=t.parent;return i}function Ao(t,e,i){return e&&!c(e)&&(e=Tw.getLocalTransform(e)),i&&(e=Tt([],e)),Q([],t,e)}function Do(t,e,i){var n=0===e[4]||0===e[5]||0===e[0]?1:Math.abs(2*e[4]/e[0]),o=0===e[4]||0===e[5]||0===e[2]?1:Math.abs(2*e[4]/e[2]),a=["left"===t?-n:"right"===t?n:0,"top"===t?-o:"bottom"===t?o:0];return a=Ao(a,e,i),Math.abs(a[0])>Math.abs(a[1])?a[0]>0?"right":"left":a[1]>0?"bottom":"top"}function Co(t,e,i,n){function o(t){var e={position:F(t.position),rotation:t.rotation};return t.shape&&(e.shape=a({},t.shape)),e}if(t&&e){var r=function(t){var e={};return t.traverse(function(t){!t.isGroup&&t.anid&&(e[t.anid]=t)}),e}(t);e.traverse(function(t){if(!t.isGroup&&t.anid){var e=r[t.anid];if(e){var n=o(t);t.attr(o(e)),Mo(t,n,i,t.dataIndex)}}})}}function Lo(t,e){return f(t,function(t){var i=t[0];i=LM(i,e.x),i=kM(i,e.x+e.width);var n=t[1];return n=LM(n,e.y),n=kM(n,e.y+e.height),[i,n]})}function ko(t,e,i){var n=(e=a({rectHover:!0},e)).style={strokeNoScale:!0};if(i=i||{x:-1,y:-1,width:2,height:2},t)return 0===t.indexOf("image://")?(n.image=t.slice(8),r(n,i),new fi(e)):Un(t.replace("path://",""),e,i,"center")}function Po(t,e,i){this.parentModel=e,this.ecModel=i,this.option=t}function No(t,e,i){for(var n=0;n0){if(t<=e[0])return i[0];if(t>=e[1])return i[1]}else{if(t>=e[0])return i[0];if(t<=e[1])return i[1]}else{if(t===e[0])return i[0];if(t===e[1])return i[1]}return(t-e[0])/o*a+i[0]}function Bo(t,e){switch(t){case"center":case"middle":t="50%";break;case"left":case"top":t="0%";break;case"right":case"bottom":t="100%"}return"string"==typeof t?Ro(t).match(/%$/)?parseFloat(t)/100*e:parseFloat(t):null==t?NaN:+t}function Vo(t,e,i){return null==e&&(e=10),e=Math.min(Math.max(0,e),20),t=(+t).toFixed(e),i?t:+t}function Go(t){return t.sort(function(t,e){return t-e}),t}function Fo(t){if(t=+t,isNaN(t))return 0;for(var e=1,i=0;Math.round(t*e)/e!==t;)e*=10,i++;return i}function Wo(t){var e=t.toString(),i=e.indexOf("e");if(i>0){var n=+e.slice(i+1);return n<0?-n:0}var o=e.indexOf(".");return o<0?0:e.length-1-o}function Ho(t,e){var i=Math.log,n=Math.LN10,o=Math.floor(i(t[1]-t[0])/n),a=Math.round(i(Math.abs(e[1]-e[0]))/n),r=Math.min(Math.max(-o+a,0),20);return isFinite(r)?r:20}function Zo(t,e,i){if(!t[e])return 0;var n=p(t,function(t,e){return t+(isNaN(e)?0:e)},0);if(0===n)return 0;for(var o=Math.pow(10,i),a=f(t,function(t){return(isNaN(t)?0:t)/n*o*100}),r=100*o,s=f(a,function(t){return Math.floor(t)}),l=p(s,function(t,e){return t+e},0),u=f(a,function(t,e){return t-s[e]});lh&&(h=u[d],c=d);++s[c],u[c]=0,++l}return s[e]/o}function Uo(t){var e=2*Math.PI;return(t%e+e)%e}function Xo(t){return t>-UM&&t=-20?+t.toFixed(n<0?-n:0):t}function $o(t){function e(t,i,n){return t.interval[n]=0}function Qo(t){return isNaN(t)?"-":(t=(t+"").split("."))[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(t.length>1?"."+t[1]:"")}function ta(t,e){return t=(t||"").toLowerCase().replace(/-(.)/g,function(t,e){return e.toUpperCase()}),e&&t&&(t=t.charAt(0).toUpperCase()+t.slice(1)),t}function ea(t){return null==t?"":(t+"").replace(KM,function(t,e){return $M[e]})}function ia(t,e,i){y(e)||(e=[e]);var n=e.length;if(!n)return"";for(var o=e[0].$vars||[],a=0;a':'':{renderMode:o,content:"{marker"+a+"|} ",style:{color:i}}:""}function aa(t,e){return t+="","0000".substr(0,e-t.length)+t}function ra(t,e,i){"week"!==t&&"month"!==t&&"quarter"!==t&&"half-year"!==t&&"year"!==t||(t="MM-dd\nyyyy");var n=jo(e),o=i?"UTC":"",a=n["get"+o+"FullYear"](),r=n["get"+o+"Month"]()+1,s=n["get"+o+"Date"](),l=n["get"+o+"Hours"](),u=n["get"+o+"Minutes"](),h=n["get"+o+"Seconds"](),c=n["get"+o+"Milliseconds"]();return t=t.replace("MM",aa(r,2)).replace("M",r).replace("yyyy",a).replace("yy",a%100).replace("dd",aa(s,2)).replace("d",s).replace("hh",aa(l,2)).replace("h",l).replace("mm",aa(u,2)).replace("m",u).replace("ss",aa(h,2)).replace("s",h).replace("SSS",aa(c,3))}function sa(t){return t?t.charAt(0).toUpperCase()+t.substr(1):t}function la(t,e,i,n,o){var a=0,r=0;null==n&&(n=1/0),null==o&&(o=1/0);var s=0;e.eachChild(function(l,u){var h,c,d=l.position,f=l.getBoundingRect(),p=e.childAt(u+1),g=p&&p.getBoundingRect();if("horizontal"===t){var m=f.width+(g?-g.x+f.x:0);(h=a+m)>n||l.newline?(a=0,h=m,r+=s+i,s=f.height):s=Math.max(s,f.height)}else{var v=f.height+(g?-g.y+f.y:0);(c=r+v)>o||l.newline?(a+=s+i,r=0,c=v,s=f.width):s=Math.max(s,f.width)}l.newline||(d[0]=a,d[1]=r,"horizontal"===t?a=h+i:r=c+i)})}function ua(t,e,i){var n=e.width,o=e.height,a=Bo(t.x,n),r=Bo(t.y,o),s=Bo(t.x2,n),l=Bo(t.y2,o);return(isNaN(a)||isNaN(parseFloat(t.x)))&&(a=0),(isNaN(s)||isNaN(parseFloat(t.x2)))&&(s=n),(isNaN(r)||isNaN(parseFloat(t.y)))&&(r=0),(isNaN(l)||isNaN(parseFloat(t.y2)))&&(l=o),i=qM(i||0),{width:Math.max(s-a-i[1]-i[3],0),height:Math.max(l-r-i[0]-i[2],0)}}function ha(t,e,i){i=qM(i||0);var n=e.width,o=e.height,a=Bo(t.left,n),r=Bo(t.top,o),s=Bo(t.right,n),l=Bo(t.bottom,o),u=Bo(t.width,n),h=Bo(t.height,o),c=i[2]+i[0],d=i[1]+i[3],f=t.aspect;switch(isNaN(u)&&(u=n-s-d-a),isNaN(h)&&(h=o-l-c-r),null!=f&&(isNaN(u)&&isNaN(h)&&(f>n/o?u=.8*n:h=.8*o),isNaN(u)&&(u=f*h),isNaN(h)&&(h=u/f)),isNaN(a)&&(a=n-s-u-d),isNaN(r)&&(r=o-l-h-c),t.left||t.right){case"center":a=n/2-u/2-i[3];break;case"right":a=n-u-d}switch(t.top||t.bottom){case"middle":case"center":r=o/2-h/2-i[0];break;case"bottom":r=o-h-c}a=a||0,r=r||0,isNaN(u)&&(u=n-d-a-(s||0)),isNaN(h)&&(h=o-c-r-(l||0));var p=new de(a+i[3],r+i[0],u,h);return p.margin=i,p}function ca(t,e,i,n,o){var a=!o||!o.hv||o.hv[0],s=!o||!o.hv||o.hv[1],l=o&&o.boundingMode||"all";if(a||s){var u;if("raw"===l)u="group"===t.type?new de(0,0,+e.width||0,+e.height||0):t.getBoundingRect();else if(u=t.getBoundingRect(),t.needLocalTransform()){var h=t.getLocalTransform();(u=u.clone()).applyTransform(h)}e=ha(r({width:u.width,height:u.height},e),i,n);var c=t.position,d=a?e.x-u.x:0,f=s?e.y-u.y:0;t.attr("position","raw"===l?[d,f]:[c[0]+d,c[1]+f])}}function da(t,e){return null!=t[aI[e][0]]||null!=t[aI[e][1]]&&null!=t[aI[e][2]]}function fa(t,e,i){function n(i,n){var r={},l=0,u={},h=0;if(nI(i,function(e){u[e]=t[e]}),nI(i,function(t){o(e,t)&&(r[t]=u[t]=e[t]),a(r,t)&&l++,a(u,t)&&h++}),s[n])return a(e,i[1])?u[i[2]]=null:a(e,i[2])&&(u[i[1]]=null),u;if(2!==h&&l){if(l>=2)return r;for(var c=0;ce)return t[n];return t[i-1]}function va(t){var e=t.get("coordinateSystem"),i={coordSysName:e,coordSysDims:[],axisMap:R(),categoryAxisMap:R()},n=fI[e];if(n)return n(t,i,i.axisMap,i.categoryAxisMap),i}function ya(t){return"category"===t.get("type")}function xa(t){this.fromDataset=t.fromDataset,this.data=t.data||(t.sourceFormat===vI?{}:[]),this.sourceFormat=t.sourceFormat||yI,this.seriesLayoutBy=t.seriesLayoutBy||_I,this.dimensionsDefine=t.dimensionsDefine,this.encodeDefine=t.encodeDefine&&R(t.encodeDefine),this.startIndex=t.startIndex||0,this.dimensionsDetectCount=t.dimensionsDetectCount}function _a(t){var e=t.option.source,i=yI;if(S(e))i=xI;else if(y(e)){0===e.length&&(i=gI);for(var n=0,o=e.length;n=e:"max"===i?t<=e:t===e}function Ua(t,e){return t.join(",")===e.join(",")}function Xa(t,e){AI(e=e||{},function(e,i){if(null!=e){var n=t[i];if(lI.hasClass(i)){e=Di(e);var o=Pi(n=Di(n),e);t[i]=CI(o,function(t){return t.option&&t.exist?LI(t.exist,t.option,!0):t.exist||t.option})}else t[i]=LI(n,e,!0)}})}function ja(t){var e=t&&t.itemStyle;if(e)for(var i=0,o=OI.length;i=0;p--){var g=t[p];if(s||(d=g.data.rawIndexOf(g.stackedByDimension,c)),d>=0){var m=g.data.getByRawIndex(g.stackResultDimension,d);if(h>=0&&m>0||h<=0&&m<0){h+=m,f=m;break}}}return n[0]=h,n[1]=f,n});r.hostModel.setData(l),e.data=l})}function ar(t,e){xa.isInstance(t)||(t=xa.seriesDataToSource(t)),this._source=t;var i=this._data=t.data,n=t.sourceFormat;n===xI&&(this._offset=0,this._dimSize=e,this._data=i),a(this,GI[n===gI?n+"_"+t.seriesLayoutBy:n])}function rr(){return this._data.length}function sr(t){return this._data[t]}function lr(t){for(var e=0;ee.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function Sr(t,e){d(t.CHANGABLE_METHODS,function(i){t.wrapMethod(i,v(Mr,e))})}function Mr(t){var e=Ir(t);e&&e.setOutputEnd(this.count())}function Ir(t){var e=(t.ecModel||{}).scheduler,i=e&&e.getPipeline(t.uid);if(i){var n=i.currentTask;if(n){var o=n.agentStubMap;o&&(n=o.get(t.uid))}return n}}function Tr(){this.group=new tb,this.uid=Eo("viewChart"),this.renderTask=pr({plan:Cr,reset:Lr}),this.renderTask.context={view:this}}function Ar(t,e){if(t&&(t.trigger(e),"group"===t.type))for(var i=0;i=0?n():c=setTimeout(n,-a),u=o};return d.clear=function(){c&&(clearTimeout(c),c=null)},d.debounceNextCall=function(t){l=t},d}function Pr(t,e,i,n){var o=t[e];if(o){var a=o[iT]||o,r=o[oT];if(o[nT]!==i||r!==n){if(null==i||!n)return t[e]=a;(o=t[e]=kr(a,i,"debounce"===n))[iT]=a,o[oT]=n,o[nT]=i}return o}}function Nr(t,e){var i=t[e];i&&i[iT]&&(t[e]=i[iT])}function Or(t,e,i,n){this.ecInstance=t,this.api=e,this.unfinished;var i=this._dataProcessorHandlers=i.slice(),n=this._visualHandlers=n.slice();this._allHandlers=i.concat(n),this._stageTaskMap=R()}function Er(t,e,i,n,o){function a(t,e){return t.setDirty&&(!t.dirtyMap||t.dirtyMap.get(e.__pipeline.id))}o=o||{};var r;d(e,function(e,s){if(!o.visualType||o.visualType===e.visualType){var l=t._stageTaskMap.get(e.uid),u=l.seriesTaskMap,h=l.overallTask;if(h){var c,d=h.agentStubMap;d.each(function(t){a(o,t)&&(t.dirty(),c=!0)}),c&&h.dirty(),hT(h,n);var f=t.getPerformArgs(h,o.block);d.each(function(t){t.perform(f)}),r|=h.perform(f)}else u&&u.each(function(s,l){a(o,s)&&s.dirty();var u=t.getPerformArgs(s,o.block);u.skip=!e.performRawSeries&&i.isSeriesFiltered(s.context.model),hT(s,n),r|=s.perform(u)})}}),t.unfinished|=r}function Rr(t,e,i,n,o){function a(i){var a=i.uid,s=r.get(a)||r.set(a,pr({plan:Wr,reset:Hr,count:Ur}));s.context={model:i,ecModel:n,api:o,useClearVisual:e.isVisual&&!e.isLayout,plan:e.plan,reset:e.reset,scheduler:t},Xr(t,i,s)}var r=i.seriesTaskMap||(i.seriesTaskMap=R()),s=e.seriesType,l=e.getTargetSeries;e.createOnAllSeries?n.eachRawSeries(a):s?n.eachRawSeriesByType(s,a):l&&l(n,o).each(a);var u=t._pipelineMap;r.each(function(t,e){u.get(e)||(t.dispose(),r.removeKey(e))})}function zr(t,e,i,n,o){function a(e){var i=e.uid,n=s.get(i);n||(n=s.set(i,pr({reset:Vr,onDirty:Fr})),r.dirty()),n.context={model:e,overallProgress:h,modifyOutputEnd:c},n.agent=r,n.__block=h,Xr(t,e,n)}var r=i.overallTask=i.overallTask||pr({reset:Br});r.context={ecModel:n,api:o,overallReset:e.overallReset,scheduler:t};var s=r.agentStubMap=r.agentStubMap||R(),l=e.seriesType,u=e.getTargetSeries,h=!0,c=e.modifyOutputEnd;l?n.eachRawSeriesByType(l,a):u?u(n,o).each(a):(h=!1,d(n.getSeries(),a));var f=t._pipelineMap;s.each(function(t,e){f.get(e)||(t.dispose(),r.dirty(),s.removeKey(e))})}function Br(t){t.overallReset(t.ecModel,t.api,t.payload)}function Vr(t,e){return t.overallProgress&&Gr}function Gr(){this.agent.dirty(),this.getDownstream().dirty()}function Fr(){this.agent&&this.agent.dirty()}function Wr(t){return t.plan&&t.plan(t.model,t.ecModel,t.api,t.payload)}function Hr(t){t.useClearVisual&&t.data.clearAllVisual();var e=t.resetDefines=Di(t.reset(t.model,t.ecModel,t.api,t.payload));return e.length>1?f(e,function(t,e){return Zr(e)}):cT}function Zr(t){return function(e,i){var n=i.data,o=i.resetDefines[t];if(o&&o.dataEach)for(var a=e.start;a0?parseInt(n,10)/100:n?parseFloat(n):0;var o=i.getAttribute("stop-color")||"#000000";e.addColorStop(n,o)}i=i.nextSibling}}function Jr(t,e){t&&t.__inheritedStyle&&(e.__inheritedStyle||(e.__inheritedStyle={}),r(e.__inheritedStyle,t.__inheritedStyle))}function Qr(t){for(var e=P(t).split(_T),i=[],n=0;n0;a-=2){var r=o[a],s=o[a-1];switch(n=n||xt(),s){case"translate":r=P(r).split(_T),St(n,n,[parseFloat(r[0]),parseFloat(r[1]||0)]);break;case"scale":r=P(r).split(_T),It(n,n,[parseFloat(r[0]),parseFloat(r[1]||r[0])]);break;case"rotate":r=P(r).split(_T),Mt(n,n,parseFloat(r[0]));break;case"skew":r=P(r).split(_T),console.warn("Skew transform is not supported yet");break;case"matrix":r=P(r).split(_T);n[0]=parseFloat(r[0]),n[1]=parseFloat(r[1]),n[2]=parseFloat(r[2]),n[3]=parseFloat(r[3]),n[4]=parseFloat(r[4]),n[5]=parseFloat(r[5])}}e.setLocalTransform(n)}}function ns(t){var e=t.getAttribute("style"),i={};if(!e)return i;var n={};TT.lastIndex=0;for(var o;null!=(o=TT.exec(e));)n[o[1]]=o[2];for(var a in ST)ST.hasOwnProperty(a)&&null!=n[a]&&(i[ST[a]]=n[a]);return i}function os(t,e,i){var n=e/t.width,o=i/t.height,a=Math.min(n,o);return{scale:[a,a],position:[-(t.x+t.width/2)*a+e/2,-(t.y+t.height/2)*a+i/2]}}function as(t,e){return(new Kr).parse(t,e)}function rs(t){return function(e,i,n){e=e&&e.toLowerCase(),fw.prototype[t].call(this,e,i,n)}}function ss(){fw.call(this)}function ls(t,e,n){function o(t,e){return t.__prio-e.__prio}n=n||{},"string"==typeof e&&(e=$T[e]),this.id,this.group,this._dom=t;var a=this._zr=Ii(t,{renderer:n.renderer||"canvas",devicePixelRatio:n.devicePixelRatio,width:n.width,height:n.height});this._throttledZrFlush=kr(m(a.flush,a),17),(e=i(e))&&BI(e,!0),this._theme=e,this._chartsViews=[],this._chartsMap={},this._componentsViews=[],this._componentsMap={},this._coordSysMgr=new Ga;var r=this._api=Ts(this);_e(KT,o),_e(jT,o),this._scheduler=new Or(this,r,jT,KT),fw.call(this,this._ecEventProcessor=new As),this._messageCenter=new ss,this._initEvents(),this.resize=m(this.resize,this),this._pendingActions=[],a.animation.on("frame",this._onframe,this),ms(a,this),N(this)}function us(t,e,i){var n,o=this._model,a=this._coordSysMgr.getCoordinateSystems();e=Vi(o,e);for(var r=0;re.get("hoverLayerThreshold")&&!U_.node&&i.traverse(function(t){t.isGroup||(t.useHoverLayer=!0)})}function Ms(t,e){var i=t.get("blendMode")||null;e.group.traverse(function(t){t.isGroup||t.style.blend!==i&&t.setStyle("blend",i),t.eachPendingDisplayable&&t.eachPendingDisplayable(function(t){t.setStyle("blend",i)})})}function Is(t,e){var i=t.get("z"),n=t.get("zlevel");e.group.traverse(function(t){"group"!==t.type&&(null!=i&&(t.z=i),null!=n&&(t.zlevel=n))})}function Ts(t){var e=t._coordSysMgr;return a(new Va(t),{getCoordinateSystems:m(e.getCoordinateSystems,e),getComponentByElement:function(e){for(;e;){var i=e.__ecComponentInfo;if(null!=i)return t._model.getComponent(i.mainType,i.index);e=e.parent}}})}function As(){this.eventInfo}function Ds(t){function e(t,e){for(var n=0;n65535?hA:dA}function $s(t){var e=t.constructor;return e===Array?t.slice():new e(t)}function Js(t,e){d(fA.concat(e.__wrappedMethods||[]),function(i){e.hasOwnProperty(i)&&(t[i]=e[i])}),t.__wrappedMethods=e.__wrappedMethods,d(pA,function(n){t[n]=i(e[n])}),t._calculationInfo=a(e._calculationInfo)}function Qs(t,e,i,n,o){var a=uA[e.type],r=n-1,s=e.name,l=t[s][r];if(l&&l.length=0?this._indices[t]:-1}function ol(t,e){var i=t._idList[e];return null==i&&(i=el(t,t._idDimIdx,e)),null==i&&(i=lA+e),i}function al(t){return y(t)||(t=[t]),t}function rl(t,e){var i=t.dimensions,n=new gA(f(i,t.getDimensionInfo,t),t.hostModel);Js(n,t);for(var o=n._storage={},a=t._storage,r=0;r=0?(o[s]=sl(a[s]),n._rawExtent[s]=ll(),n._extent[s]=null):o[s]=a[s])}return n}function sl(t){for(var e=new Array(t.length),i=0;in&&(r=o.interval=n);var s=o.intervalPrecision=Sl(r);return Il(o.niceTickExtent=[bA(Math.ceil(t[0]/r)*r,s),bA(Math.floor(t[1]/r)*r,s)],t),o}function Sl(t){return Wo(t)+2}function Ml(t,e,i){t[e]=Math.max(Math.min(t[e],i[1]),i[0])}function Il(t,e){!isFinite(t[0])&&(t[0]=e[0]),!isFinite(t[1])&&(t[1]=e[1]),Ml(t,0,e),Ml(t,1,e),t[0]>t[1]&&(t[0]=t[1])}function Tl(t,e,i,n){var o=[];if(!t)return o;e[0]1e4)return[];return e[1]>(o.length?o[o.length-1]:i[1])&&o.push(e[1]),o}function Al(t){return t.get("stack")||IA+t.seriesIndex}function Dl(t){return t.dim+t.index}function Cl(t){var e=[],i=t.axis;if("category"===i.type){for(var n=i.getBandWidth(),o=0;o=0?"p":"n",b=m;p&&(o[r][_]||(o[r][_]={p:m,n:m}),b=o[r][_][w]);var S,M,I,T;if(g)S=b,M=(A=i.dataToPoint([x,_]))[1]+l,I=A[0]-m,T=u,Math.abs(I)a[1]?(n=a[1],o=a[0]):(n=a[0],o=a[1]);var r=e.toGlobalCoord(e.dataToCoord(0));return ro&&(r=o),r}function Bl(t,e){return zA(t,RA(e))}function Vl(t,e){var i,n,o,a=t.type,r=e.getMin(),s=e.getMax(),l=null!=r,u=null!=s,h=t.getExtent();"ordinal"===a?i=e.getCategories().length:(y(n=e.get("boundaryGap"))||(n=[n||0,n||0]),"boolean"==typeof n[0]&&(n=[0,0]),n[0]=Bo(n[0],1),n[1]=Bo(n[1],1),o=h[1]-h[0]||Math.abs(h[0])),null==r&&(r="ordinal"===a?i?0:NaN:h[0]-n[0]*o),null==s&&(s="ordinal"===a?i?i-1:NaN:h[1]+n[1]*o),"dataMin"===r?r=h[0]:"function"==typeof r&&(r=r({min:h[0],max:h[1]})),"dataMax"===s?s=h[1]:"function"==typeof s&&(s=s({min:h[0],max:h[1]})),(null==r||!isFinite(r))&&(r=NaN),(null==s||!isFinite(s))&&(s=NaN),t.setBlank(I(r)||I(s)||"ordinal"===a&&!t.getOrdinalMeta().categories.length),e.getNeedCrossZero()&&(r>0&&s>0&&!l&&(r=0),r<0&&s<0&&!u&&(s=0));var c=e.ecModel;if(c&&"time"===a){var f,p=Ll("bar",c);if(d(p,function(t){f|=t.getBaseAxis()===e.axis}),f){var g=kl(p),m=Gl(r,s,e,g);r=m.min,s=m.max}}return[r,s]}function Gl(t,e,i,n){var o=i.axis.getExtent(),a=o[1]-o[0],r=Nl(n,i.axis);if(void 0===r)return{min:t,max:e};var s=1/0;d(r,function(t){s=Math.min(t.offset,s)});var l=-1/0;d(r,function(t){l=Math.max(t.offset+t.width,l)}),s=Math.abs(s),l=Math.abs(l);var u=s+l,h=e-t,c=h/(1-(s+l)/a)-h;return e+=c*(l/u),t-=c*(s/u),{min:t,max:e}}function Fl(t,e){var i=Vl(t,e),n=null!=e.getMin(),o=null!=e.getMax(),a=e.get("splitNumber");"log"===t.type&&(t.base=e.get("logBase"));var r=t.type;t.setExtent(i[0],i[1]),t.niceExtent({splitNumber:a,fixMin:n,fixMax:o,minInterval:"interval"===r||"time"===r?e.get("minInterval"):null,maxInterval:"interval"===r||"time"===r?e.get("maxInterval"):null});var s=e.get("interval");null!=s&&t.setInterval&&t.setInterval(s)}function Wl(t,e){if(e=e||t.get("type"))switch(e){case"category":return new wA(t.getOrdinalMeta?t.getOrdinalMeta():t.getCategories(),[1/0,-1/0]);case"value":return new MA;default:return(yl.getClass(e)||MA).create(t)}}function Hl(t){var e=t.scale.getExtent(),i=e[0],n=e[1];return!(i>0&&n>0||i<0&&n<0)}function Zl(t){var e=t.getLabelModel().get("formatter"),i="category"===t.type?t.scale.getExtent()[0]:null;return"string"==typeof e?e=function(e){return function(i){return i=t.scale.getLabel(i),e.replace("{value}",null!=i?i:"")}}(e):"function"==typeof e?function(n,o){return null!=i&&(o=n-i),e(Ul(t,n),o)}:function(e){return t.scale.getLabel(e)}}function Ul(t,e){return"category"===t.type?t.scale.getLabel(e):e}function Xl(t){var e=t.model,i=t.scale;if(e.get("axisLabel.show")&&!i.isBlank()){var n,o,a="category"===t.type,r=i.getExtent();o=a?i.count():(n=i.getTicks()).length;var s,l=t.getLabelModel(),u=Zl(t),h=1;o>40&&(h=Math.ceil(o/40));for(var c=0;c>1^-(1&s),l=l>>1^-(1&l),o=s+=o,a=l+=a,n.push([s/i,l/i])}return n}function nu(t){return"category"===t.type?au(t):lu(t)}function ou(t,e){return"category"===t.type?su(t,e):{ticks:t.scale.getTicks()}}function au(t){var e=t.getLabelModel(),i=ru(t,e);return!e.get("show")||t.scale.isBlank()?{labels:[],labelCategoryInterval:i.labelCategoryInterval}:i}function ru(t,e){var i=uu(t,"labels"),n=Yl(e),o=hu(i,n);if(o)return o;var a,r;return a=x(n)?mu(t,n):gu(t,r="auto"===n?du(t):n),cu(i,n,{labels:a,labelCategoryInterval:r})}function su(t,e){var i=uu(t,"ticks"),n=Yl(e),o=hu(i,n);if(o)return o;var a,r;if(e.get("show")&&!t.scale.isBlank()||(a=[]),x(n))a=mu(t,n,!0);else if("auto"===n){var s=ru(t,t.getLabelModel());r=s.labelCategoryInterval,a=f(s.labels,function(t){return t.tickValue})}else a=gu(t,r=n,!0);return cu(i,n,{ticks:a,tickCategoryInterval:r})}function lu(t){var e=t.scale.getTicks(),i=Zl(t);return{labels:f(e,function(e,n){return{formattedLabel:i(e,n),rawLabel:t.scale.getLabel(e),tickValue:e}})}}function uu(t,e){return eD(t)[e]||(eD(t)[e]=[])}function hu(t,e){for(var i=0;i40&&(s=Math.max(1,Math.floor(r/40)));for(var l=a[0],u=t.dataToCoord(l+1)-t.dataToCoord(l),h=Math.abs(u*Math.cos(n)),c=Math.abs(u*Math.sin(n)),d=0,f=0;l<=a[1];l+=s){var p=0,g=0,m=ke(i(l),e.font,"center","top");p=1.3*m.width,g=1.3*m.height,d=Math.max(d,p,7),f=Math.max(f,g,7)}var v=d/h,y=f/c;isNaN(v)&&(v=1/0),isNaN(y)&&(y=1/0);var x=Math.max(0,Math.floor(Math.min(v,y))),_=eD(t.model),w=_.lastAutoInterval,b=_.lastTickCount;return null!=w&&null!=b&&Math.abs(w-x)<=1&&Math.abs(b-r)<=1&&w>x?x=w:(_.lastTickCount=r,_.lastAutoInterval=x),x}function pu(t){var e=t.getLabelModel();return{axisRotate:t.getRotate?t.getRotate():t.isHorizontal&&!t.isHorizontal()?90:0,labelRotate:e.get("rotate")||0,font:e.getFont()}}function gu(t,e,i){function n(t){l.push(i?t:{formattedLabel:o(t),rawLabel:a.getLabel(t),tickValue:t})}var o=Zl(t),a=t.scale,r=a.getExtent(),s=t.getLabelModel(),l=[],u=Math.max((e||0)+1,1),h=r[0],c=a.count();0!==h&&u>1&&c/u>2&&(h=Math.round(Math.ceil(h/u)*u));var d=ql(t),f=s.get("showMinLabel")||d,p=s.get("showMaxLabel")||d;f&&h!==r[0]&&n(r[0]);for(var g=h;g<=r[1];g+=u)n(g);return p&&g!==r[1]&&n(r[1]),l}function mu(t,e,i){var n=t.scale,o=Zl(t),a=[];return d(n.getTicks(),function(t){var r=n.getLabel(t);e(t,r)&&a.push(i?t:{formattedLabel:o(t),rawLabel:r,tickValue:t})}),a}function vu(t,e){var i=(t[1]-t[0])/e/2;t[0]+=i,t[1]-=i}function yu(t,e,i,n,o){function a(t,e){return h?t>e:t0&&(t.coord-=u/(2*(e+1)))}),s={coord:e[r-1].coord+u},e.push(s)}var h=l[0]>l[1];a(e[0].coord,l[0])&&(o?e[0].coord=l[0]:e.shift()),o&&a(l[0],e[0].coord)&&e.unshift({coord:l[0]}),a(l[1],s.coord)&&(o?s.coord=l[1]:e.pop()),o&&a(s.coord,l[1])&&e.push({coord:l[1]})}}function xu(t,e){var i=t.mapDimension("defaultedLabel",!0),n=i.length;if(1===n)return dr(t,e,i[0]);if(n){for(var o=[],a=0;a0?i=n[0]:n[1]<0&&(i=n[1]),i}function Nu(t,e,i,n){var o=NaN;t.stacked&&(o=i.get(i.getCalculationInfo("stackedOverDimension"),n)),isNaN(o)&&(o=t.valueStart);var a=t.baseDataOffset,r=[];return r[a]=i.get(t.baseDim,n),r[1-a]=o,e.dataToPoint(r)}function Ou(t,e){var i=[];return e.diff(t).add(function(t){i.push({cmd:"+",idx:t})}).update(function(t,e){i.push({cmd:"=",idx:e,idx1:t})}).remove(function(t){i.push({cmd:"-",idx:t})}).execute(),i}function Eu(t){return isNaN(t[0])||isNaN(t[1])}function Ru(t,e,i,n,o,a,r,s,l,u,h){return"none"!==u&&u?zu.apply(this,arguments):Bu.apply(this,arguments)}function zu(t,e,i,n,o,a,r,s,l,u,h){for(var c=0,d=i,f=0;f=o||d<0)break;if(Eu(p)){if(h){d+=a;continue}break}if(d===i)t[a>0?"moveTo":"lineTo"](p[0],p[1]);else if(l>0){var g=e[c],m="y"===u?1:0,v=(p[m]-g[m])*l;yD(_D,g),_D[m]=g[m]+v,yD(wD,p),wD[m]=p[m]-v,t.bezierCurveTo(_D[0],_D[1],wD[0],wD[1],p[0],p[1])}else t.lineTo(p[0],p[1]);c=d,d+=a}return f}function Bu(t,e,i,n,o,a,r,s,l,u,h){for(var c=0,d=i,f=0;f=o||d<0)break;if(Eu(p)){if(h){d+=a;continue}break}if(d===i)t[a>0?"moveTo":"lineTo"](p[0],p[1]),yD(_D,p);else if(l>0){var g=d+a,m=e[g];if(h)for(;m&&Eu(e[g]);)m=e[g+=a];var v=.5,y=e[c];if(!(m=e[g])||Eu(m))yD(wD,p);else{Eu(m)&&!h&&(m=p),U(xD,m,y);var x,_;if("x"===u||"y"===u){var w="x"===u?0:1;x=Math.abs(p[w]-y[w]),_=Math.abs(p[w]-m[w])}else x=uw(p,y),_=uw(p,m);vD(wD,p,xD,-l*(1-(v=_/(_+x))))}gD(_D,_D,s),mD(_D,_D,r),gD(wD,wD,s),mD(wD,wD,r),t.bezierCurveTo(_D[0],_D[1],wD[0],wD[1],p[0],p[1]),vD(_D,p,xD,l*v)}else t.lineTo(p[0],p[1]);c=d,d+=a}return f}function Vu(t,e){var i=[1/0,1/0],n=[-1/0,-1/0];if(e)for(var o=0;on[0]&&(n[0]=a[0]),a[1]>n[1]&&(n[1]=a[1])}return{min:e?i:n,max:e?n:i}}function Gu(t,e){if(t.length===e.length){for(var i=0;ie[0]?1:-1;e[0]+=n*i,e[1]-=n*i}return e}function Hu(t,e,i){if(!i.valueDim)return[];for(var n=[],o=0,a=e.count();oa[1]&&a.reverse();var r=o.getExtent(),s=Math.PI/180;i&&(a[0]-=.5,a[1]+=.5);var l=new hM({shape:{cx:Vo(t.cx,1),cy:Vo(t.cy,1),r0:Vo(a[0],1),r:Vo(a[1],1),startAngle:-r[0]*s,endAngle:-r[1]*s,clockwise:o.inverse}});return e&&(l.shape.endAngle=-r[0]*s,Io(l,{shape:{endAngle:-r[1]*s}},n)),l}function Xu(t,e,i,n){return"polar"===t.type?Uu(t,e,i,n):Zu(t,e,i,n)}function ju(t,e,i){for(var n=e.getBaseAxis(),o="x"===n.dim||"radius"===n.dim?0:1,a=[],r=0;r=0;a--){var r=i[a].dimension,s=t.dimensions[r],l=t.getDimensionInfo(s);if("x"===(n=l&&l.coordDim)||"y"===n){o=i[a];break}}if(o){var u=e.getAxis(n),h=f(o.stops,function(t){return{coord:u.toGlobalCoord(u.dataToCoord(t.value)),color:t.color}}),c=h.length,p=o.outerColors.slice();c&&h[0].coord>h[c-1].coord&&(h.reverse(),p.reverse());var g=h[0].coord-10,m=h[c-1].coord+10,v=m-g;if(v<.001)return"transparent";d(h,function(t){t.offset=(t.coord-g)/v}),h.push({offset:c?h[c-1].offset:.5,color:p[1]||"transparent"}),h.unshift({offset:c?h[0].offset:.5,color:p[0]||"transparent"});var y=new TM(0,0,0,0,h,!0);return y[n]=g,y[n+"2"]=m,y}}}function qu(t,e,i){var n=t.get("showAllSymbol"),o="auto"===n;if(!n||o){var a=i.getAxesByScale("ordinal")[0];if(a&&(!o||!Ku(a,e))){var r=e.mapDimension(a.dim),s={};return d(a.getViewLabels(),function(t){s[t.tickValue]=1}),function(t){return!s.hasOwnProperty(e.get(r,t))}}}}function Ku(t,e){var i=t.getExtent(),n=Math.abs(i[1]-i[0])/t.scale.count();isNaN(n)&&(n=0);for(var o=e.count(),a=Math.max(1,Math.round(o/5)),r=0;rn)return!1;return!0}function $u(t){return this._axes[t]}function Ju(t){DD.call(this,t)}function Qu(t,e){return e.type||(e.data?"category":"value")}function th(t,e,i){return t.getCoordSysModel()===e}function eh(t,e,i){this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this._initCartesian(t,e,i),this.model=t}function ih(t,e,i,n){function o(t){return t.dim+"_"+t.index}i.getAxesOnZeroOf=function(){return a?[a]:[]};var a,r=t[e],s=i.model,l=s.get("axisLine.onZero"),u=s.get("axisLine.onZeroAxisIndex");if(l){if(null!=u)nh(r[u])&&(a=r[u]);else for(var h in r)if(r.hasOwnProperty(h)&&nh(r[h])&&!n[o(r[h])]){a=r[h];break}a&&(n[o(a)]=!0)}}function nh(t){return t&&"category"!==t.type&&"time"!==t.type&&Hl(t)}function oh(t,e){var i=t.getExtent(),n=i[0]+i[1];t.toGlobalCoord="x"===t.dim?function(t){return t+e}:function(t){return n-t+e},t.toLocalCoord="x"===t.dim?function(t){return t-e}:function(t){return n-t+e}}function ah(t,e){return f(zD,function(e){return t.getReferringComponents(e)[0]})}function rh(t){return"cartesian2d"===t.get("coordinateSystem")}function sh(t){var e={componentType:t.mainType,componentIndex:t.componentIndex};return e[t.mainType+"Index"]=t.componentIndex,e}function lh(t,e,i,n){var o,a,r=Uo(i-t.rotation),s=n[0]>n[1],l="start"===e&&!s||"start"!==e&&s;return Xo(r-BD/2)?(a=l?"bottom":"top",o="center"):Xo(r-1.5*BD)?(a=l?"top":"bottom",o="center"):(a="middle",o=r<1.5*BD&&r>BD/2?l?"left":"right":l?"right":"left"),{rotation:r,textAlign:o,textVerticalAlign:a}}function uh(t){var e=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||e&&e.show)}function hh(t,e,i){if(!ql(t.axis)){var n=t.get("axisLabel.showMinLabel"),o=t.get("axisLabel.showMaxLabel");e=e||[],i=i||[];var a=e[0],r=e[1],s=e[e.length-1],l=e[e.length-2],u=i[0],h=i[1],c=i[i.length-1],d=i[i.length-2];!1===n?(ch(a),ch(u)):dh(a,r)&&(n?(ch(r),ch(h)):(ch(a),ch(u))),!1===o?(ch(s),ch(c)):dh(l,s)&&(o?(ch(l),ch(d)):(ch(s),ch(c)))}}function ch(t){t&&(t.ignore=!0)}function dh(t,e,i){var n=t&&t.getBoundingRect().clone(),o=e&&e.getBoundingRect().clone();if(n&&o){var a=_t([]);return Mt(a,a,-t.rotation),n.applyTransform(bt([],a,t.getLocalTransform())),o.applyTransform(bt([],a,e.getLocalTransform())),n.intersect(o)}}function fh(t){return"middle"===t||"center"===t}function ph(t,e,i){var n=e.axis;if(e.get("axisTick.show")&&!n.scale.isBlank()){for(var o=e.getModel("axisTick"),a=o.getModel("lineStyle"),s=o.get("length"),l=n.getTicksCoords(),u=[],h=[],c=t._transform,d=[],f=0;f=0||t===e}function bh(t){var e=Sh(t);if(e){var i=e.axisPointerModel,n=e.axis.scale,o=i.option,a=i.get("status"),r=i.get("value");null!=r&&(r=n.parse(r));var s=Ih(i);null==a&&(o.status=s?"show":"hide");var l=n.getExtent().slice();l[0]>l[1]&&l.reverse(),(null==r||r>l[1])&&(r=l[1]),r0?"bottom":"top":o.width>0?"left":"right";l||Lh(t.style,d,n,u,a,i,p),co(t,d)}function Eh(t,e){var i=t.get(JD)||0;return Math.min(i,Math.abs(e.width),Math.abs(e.height))}function Rh(t,e,i){var n=t.getData(),o=[],a=n.getLayout("valueAxisHorizontal")?1:0;o[1-a]=n.getLayout("valueAxisStart");var r=new eC({shape:{points:n.getLayout("largePoints")},incremental:!!i,__startPoint:o,__valueIdx:a});e.add(r),zh(r,t,n)}function zh(t,e,i){var n=i.getVisual("borderColor")||i.getVisual("color"),o=e.getModel("itemStyle").getItemStyle(["color","borderColor"]);t.useStyle(o),t.style.fill=null,t.style.stroke=n,t.style.lineWidth=i.getLayout("barWidth")}function Bh(t,e,i,n){var o=e.getData(),a=this.dataIndex,r=o.getName(a),s=e.get("selectedOffset");n.dispatchAction({type:"pieToggleSelect",from:t,name:r,seriesId:e.id}),o.each(function(t){Vh(o.getItemGraphicEl(t),o.getItemLayout(t),e.isSelected(o.getName(t)),s,i)})}function Vh(t,e,i,n,o){var a=(e.startAngle+e.endAngle)/2,r=Math.cos(a),s=Math.sin(a),l=i?n:0,u=[r*l,s*l];o?t.animate().when(200,{position:u}).start("bounceOut"):t.attr("position",u)}function Gh(t,e){function i(){a.ignore=a.hoverIgnore,r.ignore=r.hoverIgnore}function n(){a.ignore=a.normalIgnore,r.ignore=r.normalIgnore}tb.call(this);var o=new hM({z2:2}),a=new gM,r=new rM;this.add(o),this.add(a),this.add(r),this.updateData(t,e,!0),this.on("emphasis",i).on("normal",n).on("mouseover",i).on("mouseout",n)}function Fh(t,e,i,n,o,a,r){function s(e,i){for(var n=e;n>=0&&(t[n].y-=i,!(n>0&&t[n].y>t[n-1].y+t[n-1].height));n--);}function l(t,e,i,n,o,a){for(var r=e?Number.MAX_VALUE:0,s=0,l=t.length;s=r&&(d=r-10),!e&&d<=r&&(d=r+10),t[s].x=i+d*a,r=d}}t.sort(function(t,e){return t.y-e.y});for(var u,h=0,c=t.length,d=[],f=[],p=0;pe&&a+1t[a].y+t[a].height)return void s(a,n/2);s(i-1,n/2)}(p,c,-u),h=t[p].y+t[p].height;r-h<0&&s(c-1,h-r);for(p=0;p=i?f.push(t[p]):d.push(t[p]);l(d,!1,e,i,n,o),l(f,!0,e,i,n,o)}function Wh(t,e,i,n,o,a){for(var r=[],s=[],l=0;l3?1.4:o>1?1.2:1.1;uc(this,"zoom","zoomOnMouseWheel",t,{scale:n>0?s:1/s,originX:a,originY:r})}if(i){var l=Math.abs(n);uc(this,"scrollMove","moveOnMouseWheel",t,{scrollDelta:(n>0?1:-1)*(l>3?.4:l>1?.15:.05),originX:a,originY:r})}}}function lc(t){ec(this._zr,"globalPan")||uc(this,"zoom",null,t,{scale:t.pinchScale>1?1.1:1/1.1,originX:t.pinchX,originY:t.pinchY})}function uc(t,e,i,n,o){t.pointerChecker&&t.pointerChecker(n,o.originX,o.originY)&&(mw(n.event),hc(t,e,i,n,o))}function hc(t,e,i,n,o){o.isAvailableBehavior=m(cc,null,i,n),t.trigger(e,o)}function cc(t,e,i){var n=i[t];return!t||n&&(!_(n)||e.event[n+"Key"])}function dc(t,e,i){var n=t.target,o=n.position;o[0]+=e,o[1]+=i,n.dirty()}function fc(t,e,i,n){var o=t.target,a=t.zoomLimit,r=o.position,s=o.scale,l=t.zoom=t.zoom||1;if(l*=e,a){var u=a.min||0,h=a.max||1/0;l=Math.max(Math.min(h,l),u)}var c=l/t.zoom;t.zoom=l,r[0]-=(i-r[0])*(c-1),r[1]-=(n-r[1])*(c-1),s[0]*=c,s[1]*=c,o.dirty()}function pc(t,e,i){var n=e.getComponentByElement(t.topTarget),o=n&&n.coordinateSystem;return n&&n!==i&&!OC[n.mainType]&&o&&o.model!==i}function gc(t,e){var i=t.getItemStyle(),n=t.get("areaColor");return null!=n&&(i.fill=n),i}function mc(t,e,i,n,o){i.off("click"),i.off("mousedown"),e.get("selectedMode")&&(i.on("mousedown",function(){t._mouseDownFlag=!0}),i.on("click",function(a){if(t._mouseDownFlag){t._mouseDownFlag=!1;for(var r=a.target;!r.__regions;)r=r.parent;if(r){var s={type:("geo"===e.mainType?"geo":"map")+"ToggleSelect",batch:f(r.__regions,function(t){return{name:t.name,from:o.uid}})};s[e.mainType+"Id"]=e.id,n.dispatchAction(s),vc(e,i)}}}))}function vc(t,e){e.eachChild(function(e){d(e.__regions,function(i){e.trigger(t.isSelected(i.name)?"emphasis":"normal")})})}function yc(t,e){var i=new tb;this.uid=Eo("ec_map_draw"),this._controller=new nc(t.getZr()),this._controllerHost={target:e?i:null},this.group=i,this._updateGroup=e,this._mouseDownFlag,this._mapName,this._initialized,i.add(this._regionsGroup=new tb),i.add(this._backgroundGroup=new tb)}function xc(t){var e=this[EC];e&&e.recordVersion===this[RC]&&_c(e,t)}function _c(t,e){var i=t.circle,n=t.labelModel,o=t.hoverLabelModel,a=t.emphasisText,r=t.normalText;e?(i.style.extendFrom(go({},o,{text:o.get("show")?a:null},{isRectText:!0,useInsideStyle:!1},!0)),i.__mapOriginalZ2=i.z2,i.z2+=NM):(go(i.style,n,{text:n.get("show")?r:null,textPosition:n.getShallow("position")||"bottom"},{isRectText:!0,useInsideStyle:!1}),i.dirty(!1),null!=i.__mapOriginalZ2&&(i.z2=i.__mapOriginalZ2,i.__mapOriginalZ2=null))}function wc(t,e,i){var n=t.getZoom(),o=t.getCenter(),a=e.zoom,r=t.dataToPoint(o);if(null!=e.dx&&null!=e.dy){r[0]-=e.dx,r[1]-=e.dy;o=t.pointToData(r);t.setCenter(o)}if(null!=a){if(i){var s=i.min||0,l=i.max||1/0;a=Math.max(Math.min(n*a,l),s)/n}t.scale[0]*=a,t.scale[1]*=a;var u=t.position,h=(e.originX-u[0])*(a-1),c=(e.originY-u[1])*(a-1);u[0]-=h,u[1]-=c,t.updateTransform();o=t.pointToData(r);t.setCenter(o),t.setZoom(a*n)}return{center:t.getCenter(),zoom:t.getZoom()}}function bc(){Tw.call(this)}function Sc(t){this.name=t,this.zoomLimit,Tw.call(this),this._roamTransformable=new bc,this._rawTransformable=new bc,this._center,this._zoom}function Mc(t,e,i,n){var o=i.seriesModel,a=o?o.coordinateSystem:null;return a===this?a[t](n):null}function Ic(t,e,i,n){Sc.call(this,t),this.map=e;var o=PC.load(e,i);this._nameCoordMap=o.nameCoordMap,this._regionsMap=o.regionsMap,this._invertLongitute=null==n||n,this.regions=o.regions,this._rect=o.boundingRect}function Tc(t,e,i,n){var o=i.geoModel,a=i.seriesModel,r=o?o.coordinateSystem:a?a.coordinateSystem||(a.getReferringComponents("geo")[0]||{}).coordinateSystem:null;return r===this?r[t](n):null}function Ac(t,e){var i=t.get("boundingCoords");if(null!=i){var n=i[0],o=i[1];isNaN(n[0])||isNaN(n[1])||isNaN(o[0])||isNaN(o[1])||this.setBoundingRect(n[0],n[1],o[0]-n[0],o[1]-n[1])}var a,r=this.getBoundingRect(),s=t.get("layoutCenter"),l=t.get("layoutSize"),u=e.getWidth(),h=e.getHeight(),c=r.width/r.height*this.aspectScale,d=!1;s&&l&&(s=[Bo(s[0],u),Bo(s[1],h)],l=Bo(l,Math.min(u,h)),isNaN(s[0])||isNaN(s[1])||isNaN(l)||(d=!0));if(d){var f={};c>1?(f.width=l,f.height=l/c):(f.height=l,f.width=l*c),f.y=s[1]-f.height/2,f.x=s[0]-f.width/2}else(a=t.getBoxLayoutParams()).aspect=c,f=ha(a,{width:u,height:h});this.setViewRect(f.x,f.y,f.width,f.height),this.setCenter(t.get("center")),this.setZoom(t.get("zoom"))}function Dc(t,e){d(e.get("geoCoord"),function(e,i){t.addGeoCoord(i,e)})}function Cc(t,e){var i={};return d(t,function(t){t.each(t.mapDimension("value"),function(e,n){var o="ec-"+t.getName(n);i[o]=i[o]||[],isNaN(e)||i[o].push(e)})}),t[0].map(t[0].mapDimension("value"),function(n,o){for(var a="ec-"+t[0].getName(o),r=0,s=1/0,l=-1/0,u=i[a].length,h=0;h=0;o--){var a=i[o];a.hierNode={defaultAncestor:null,ancestor:a,prelim:0,modifier:0,change:0,shift:0,i:o,thread:null},n.push(a)}}function Fc(t,e){var i=t.isExpand?t.children:[],n=t.parentNode.children,o=t.hierNode.i?n[t.hierNode.i-1]:null;if(i.length){Xc(t);var a=(i[0].hierNode.prelim+i[i.length-1].hierNode.prelim)/2;o?(t.hierNode.prelim=o.hierNode.prelim+e(t,o),t.hierNode.modifier=t.hierNode.prelim-a):t.hierNode.prelim=a}else o&&(t.hierNode.prelim=o.hierNode.prelim+e(t,o));t.parentNode.hierNode.defaultAncestor=jc(t,o,t.parentNode.hierNode.defaultAncestor||n[0],e)}function Wc(t){var e=t.hierNode.prelim+t.parentNode.hierNode.modifier;t.setLayout({x:e},!0),t.hierNode.modifier+=t.parentNode.hierNode.modifier}function Hc(t){return arguments.length?t:Jc}function Zc(t,e){var i={};return t-=Math.PI/2,i.x=e*Math.cos(t),i.y=e*Math.sin(t),i}function Uc(t,e){return ha(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}function Xc(t){for(var e=t.children,i=e.length,n=0,o=0;--i>=0;){var a=e[i];a.hierNode.prelim+=n,a.hierNode.modifier+=n,o+=a.hierNode.change,n+=a.hierNode.shift+o}}function jc(t,e,i,n){if(e){for(var o=t,a=t,r=a.parentNode.children[0],s=e,l=o.hierNode.modifier,u=a.hierNode.modifier,h=r.hierNode.modifier,c=s.hierNode.modifier;s=Yc(s),a=qc(a),s&&a;){o=Yc(o),r=qc(r),o.hierNode.ancestor=t;var d=s.hierNode.prelim+c-a.hierNode.prelim-u+n(s,a);d>0&&($c(Kc(s,t,i),t,d),u+=d,l+=d),c+=s.hierNode.modifier,u+=a.hierNode.modifier,l+=o.hierNode.modifier,h+=r.hierNode.modifier}s&&!Yc(o)&&(o.hierNode.thread=s,o.hierNode.modifier+=c-l),a&&!qc(r)&&(r.hierNode.thread=a,r.hierNode.modifier+=u-h,i=t)}return i}function Yc(t){var e=t.children;return e.length&&t.isExpand?e[e.length-1]:t.hierNode.thread}function qc(t){var e=t.children;return e.length&&t.isExpand?e[0]:t.hierNode.thread}function Kc(t,e,i){return t.hierNode.ancestor.parentNode===e.parentNode?t.hierNode.ancestor:i}function $c(t,e,i){var n=i/(e.hierNode.i-t.hierNode.i);e.hierNode.change-=n,e.hierNode.shift+=i,e.hierNode.modifier+=i,e.hierNode.prelim+=i,t.hierNode.change+=n}function Jc(t,e){return t.parentNode===e.parentNode?1:2}function Qc(t,e){var i=t.getItemLayout(e);return i&&!isNaN(i.x)&&!isNaN(i.y)&&"none"!==t.getItemVisual(e,"symbol")}function td(t,e,i){return i.itemModel=e,i.itemStyle=e.getModel("itemStyle").getItemStyle(),i.hoverItemStyle=e.getModel("emphasis.itemStyle").getItemStyle(),i.lineStyle=e.getModel("lineStyle").getLineStyle(),i.labelModel=e.getModel("label"),i.hoverLabelModel=e.getModel("emphasis.label"),!1===t.isExpand&&0!==t.children.length?i.symbolInnerColor=i.itemStyle.fill:i.symbolInnerColor="#fff",i}function ed(t,e,i,n,o,a){var s=!i,l=t.tree.getNodeByDataIndex(e),a=td(l,l.getModel(),a),u=t.tree.root,h=l.parentNode===u?l:l.parentNode||l,c=t.getItemGraphicEl(h.dataIndex),d=h.getLayout(),f=c?{x:c.position[0],y:c.position[1],rawX:c.__radialOldRawX,rawY:c.__radialOldRawY}:d,p=l.getLayout();s?(i=new _u(t,e,a)).attr("position",[f.x,f.y]):i.updateData(t,e,a),i.__radialOldRawX=i.__radialRawX,i.__radialOldRawY=i.__radialRawY,i.__radialRawX=p.rawX,i.__radialRawY=p.rawY,n.add(i),t.setItemGraphicEl(e,i),Mo(i,{position:[p.x,p.y]},o);var g=i.getSymbolPath();if("radial"===a.layout){var m,v,y=u.children[0],x=y.getLayout(),_=y.children.length;if(p.x===x.x&&!0===l.isExpand){var w={};w.x=(y.children[0].getLayout().x+y.children[_-1].getLayout().x)/2,w.y=(y.children[0].getLayout().y+y.children[_-1].getLayout().y)/2,(m=Math.atan2(w.y-x.y,w.x-x.x))<0&&(m=2*Math.PI+m),(v=w.xx.x)||(m-=Math.PI);var b=v?"left":"right";g.setStyle({textPosition:b,textRotation:-m,textOrigin:"center",verticalAlign:"middle"})}if(l.parentNode&&l.parentNode!==u){var S=i.__edge;S||(S=i.__edge=new bM({shape:nd(a,f,f),style:r({opacity:0,strokeNoScale:!0},a.lineStyle)})),Mo(S,{shape:nd(a,d,p),style:{opacity:1}},o),n.add(S)}}function id(t,e,i,n,o,a){for(var r,s=t.tree.getNodeByDataIndex(e),l=t.tree.root,a=td(s,s.getModel(),a),u=s.parentNode===l?s:s.parentNode||s;null==(r=u.getLayout());)u=u.parentNode===l?u:u.parentNode||u;Mo(i,{position:[r.x+1,r.y+1]},o,function(){n.remove(i),t.setItemGraphicEl(e,null)}),i.fadeOut(null,{keepLabel:!0});var h=i.__edge;h&&Mo(h,{shape:nd(a,r,r),style:{opacity:0}},o,function(){n.remove(h)})}function nd(t,e,i){var n,o,a,r,s,l,u,h,c=t.orient;if("radial"===t.layout){s=e.rawX,u=e.rawY,l=i.rawX,h=i.rawY;var d=Zc(s,u),f=Zc(s,u+(h-u)*t.curvature),p=Zc(l,h+(u-h)*t.curvature),g=Zc(l,h);return{x1:d.x,y1:d.y,x2:g.x,y2:g.y,cpx1:f.x,cpy1:f.y,cpx2:p.x,cpy2:p.y}}return s=e.x,u=e.y,l=i.x,h=i.y,"LR"!==c&&"RL"!==c||(n=s+(l-s)*t.curvature,o=u,a=l+(s-l)*t.curvature,r=h),"TB"!==c&&"BT"!==c||(n=s,o=u+(h-u)*t.curvature,a=l,r=h+(u-h)*t.curvature),{x1:s,y1:u,x2:l,y2:h,cpx1:n,cpy1:o,cpx2:a,cpy2:r}}function od(t,e,i){for(var n,o=[t],a=[];n=o.pop();)if(a.push(n),n.isExpand){var r=n.children;if(r.length)for(var s=0;s=0;a--)n.push(o[a])}}function rd(t,e){var i=Uc(t,e);t.layoutInfo=i;var n=t.get("layout"),o=0,a=0,r=null;"radial"===n?(o=2*Math.PI,a=Math.min(i.height,i.width)/2,r=Hc(function(t,e){return(t.parentNode===e.parentNode?1:2)/t.depth})):(o=i.width,a=i.height,r=Hc());var s=t.getData().tree.root,l=s.children[0];if(l){Gc(s),od(l,Fc,r),s.hierNode.modifier=-l.hierNode.prelim,ad(l,Wc);var u=l,h=l,c=l;ad(l,function(t){var e=t.getLayout().x;eh.getLayout().x&&(h=t),t.depth>c.depth&&(c=t)});var d=u===h?1:r(u,h)/2,f=d-u.getLayout().x,p=0,g=0,m=0,v=0;if("radial"===n)p=o/(h.getLayout().x+d+f),g=a/(c.depth-1||1),ad(l,function(t){m=(t.getLayout().x+f)*p,v=(t.depth-1)*g;var e=Zc(m,v);t.setLayout({x:e.x,y:e.y,rawX:m,rawY:v},!0)});else{var y=t.getOrient();"RL"===y||"LR"===y?(g=a/(h.getLayout().x+d+f),p=o/(c.depth-1||1),ad(l,function(t){v=(t.getLayout().x+f)*g,m="LR"===y?(t.depth-1)*p:o-(t.depth-1)*p,t.setLayout({x:m,y:v},!0)})):"TB"!==y&&"BT"!==y||(p=o/(h.getLayout().x+d+f),g=a/(c.depth-1||1),ad(l,function(t){m=(t.getLayout().x+f)*p,v="TB"===y?(t.depth-1)*g:a-(t.depth-1)*g,t.setLayout({x:m,y:v},!0)}))}}}function sd(t,e,i){if(t&&l(e,t.type)>=0){var n=i.getData().tree.root,o=t.targetNode;if("string"==typeof o&&(o=n.getNodeById(o)),o&&n.contains(o))return{node:o};var a=t.targetNodeId;if(null!=a&&(o=n.getNodeById(a)))return{node:o}}}function ld(t){for(var e=[];t;)(t=t.parentNode)&&e.push(t);return e.reverse()}function ud(t,e){return l(ld(t),e)>=0}function hd(t,e){for(var i=[];t;){var n=t.dataIndex;i.push({name:t.name,dataIndex:n,value:e.getRawValue(n)}),t=t.parentNode}return i.reverse(),i}function cd(t){var e=0;d(t.children,function(t){cd(t);var i=t.value;y(i)&&(i=i[0]),e+=i});var i=t.value;y(i)&&(i=i[0]),(null==i||isNaN(i))&&(i=e),i<0&&(i=0),y(t.value)?t.value[0]=i:t.value=i}function dd(t,e){var i=e.get("color");if(i){var n;return d(t=t||[],function(t){var e=new Po(t),i=e.get("color");(e.get("itemStyle.color")||i&&"none"!==i)&&(n=!0)}),n||((t[0]||(t[0]={})).color=i.slice()),t}}function fd(t){this.group=new tb,t.add(this.group)}function pd(t,e,i,n,o,a){var r=[[o?t:t-HC,e],[t+i,e],[t+i,e+n],[o?t:t-HC,e+n]];return!a&&r.splice(2,0,[t+i+HC,e+n/2]),!o&&r.push([t,e+n/2]),r}function gd(t,e,i){t.eventData={componentType:"series",componentSubType:"treemap",componentIndex:e.componentIndex,seriesIndex:e.componentIndex,seriesName:e.name,seriesType:"treemap",selfType:"breadcrumb",nodeData:{dataIndex:i&&i.dataIndex,name:i&&i.name},treePathInfo:i&&hd(i,e)}}function md(){var t,e=[],i={};return{add:function(t,n,o,a,r){return _(a)&&(r=a,a=0),!i[t.id]&&(i[t.id]=1,e.push({el:t,target:n,time:o,delay:a,easing:r}),!0)},done:function(e){return t=e,this},start:function(){for(var n=e.length,o=0,a=e.length;o=0;a--)null==i[a]&&(delete n[e[a]],e.pop())}function wd(t,e){var i=t.visual,n=[];w(i)?aL(i,function(t){n.push(t)}):null!=i&&n.push(i);e||1!==n.length||{color:1,symbol:1}.hasOwnProperty(t.type)||(n[1]=n[0]),Cd(t,n)}function bd(t){return{applyVisual:function(e,i,n){e=this.mapValueToVisual(e),n("color",t(i("color"),e))},_doMap:Ad([0,1])}}function Sd(t){var e=this.option.visual;return e[Math.round(zo(t,[0,1],[0,e.length-1],!0))]||{}}function Md(t){return function(e,i,n){n(t,this.mapValueToVisual(e))}}function Id(t){var e=this.option.visual;return e[this.option.loop&&t!==sL?t%e.length:t]}function Td(){return this.option.visual[0]}function Ad(t){return{linear:function(e){return zo(e,t,this.option.visual,!0)},category:Id,piecewise:function(e,i){var n=Dd.call(this,i);return null==n&&(n=zo(e,t,this.option.visual,!0)),n},fixed:Td}}function Dd(t){var e=this.option,i=e.pieceList;if(e.hasSpecialVisual){var n=i[lL.findPieceIndex(t,i)];if(n&&n.visual)return n.visual[this.type]}}function Cd(t,e){return t.visual=e,"color"===t.type&&(t.parsedVisual=f(e,function(t){return Gt(t)})),e}function Ld(t,e,i){return t?e<=i:e=o.length||t===o[t.depth])&&kd(t,Bd(r,h,t,e,g,a),i,n,o,a)})}else l=Nd(h),t.setVisual("color",l)}}function Pd(t,e,i,n){var o=a({},e);return d(["color","colorAlpha","colorSaturation"],function(a){var r=t.get(a,!0);null==r&&i&&(r=i[a]),null==r&&(r=e[a]),null==r&&(r=n.get(a)),null!=r&&(o[a]=r)}),o}function Nd(t){var e=Ed(t,"color");if(e){var i=Ed(t,"colorAlpha"),n=Ed(t,"colorSaturation");return n&&(e=jt(e,null,null,n)),i&&(e=Yt(e,i)),e}}function Od(t,e){return null!=e?jt(e,null,null,t):null}function Ed(t,e){var i=t[e];if(null!=i&&"none"!==i)return i}function Rd(t,e,i,n,o,a){if(a&&a.length){var r=zd(e,"color")||null!=o.color&&"none"!==o.color&&(zd(e,"colorAlpha")||zd(e,"colorSaturation"));if(r){var s=e.get("visualMin"),l=e.get("visualMax"),u=i.dataExtent.slice();null!=s&&su[1]&&(u[1]=l);var h=e.get("colorMappingBy"),c={type:r.name,dataExtent:u,visual:r.range};"color"!==c.type||"index"!==h&&"id"!==h?c.mappingMethod="linear":(c.mappingMethod="category",c.loop=!0);var d=new lL(c);return d.__drColorMappingBy=h,d}}}function zd(t,e){var i=t.get(e);return cL(i)&&i.length?{name:e,range:i}:null}function Bd(t,e,i,n,o,r){var s=a({},e);if(o){var l=o.type,u="color"===l&&o.__drColorMappingBy,h="index"===u?n:"id"===u?r.mapIdToIndex(i.getId()):i.getValue(t.get("visualDimension"));s[l]=o.mapValueToVisual(h)}return s}function Vd(t,e,i,n){var o,a;if(!t.isRemoved()){var r=t.getLayout();o=r.width,a=r.height;var s=(f=t.getModel()).get(yL),l=f.get(xL)/2,u=qd(f),h=Math.max(s,u),c=s-l,d=h-l,f=t.getModel();t.setLayout({borderWidth:s,upperHeight:h,upperLabelHeight:u},!0);var p=(o=pL(o-2*c,0))*(a=pL(a-c-d,0)),g=Gd(t,f,p,e,i,n);if(g.length){var m={x:c,y:d,width:o,height:a},v=gL(o,a),y=1/0,x=[];x.area=0;for(var _=0,w=g.length;_=0;l--){var u=o["asc"===n?r-l-1:l].getValue();u/i*es[1]&&(s[1]=e)})}else s=[NaN,NaN];return{sum:n,dataExtent:s}}function Zd(t,e,i){for(var n,o=0,a=1/0,r=0,s=t.length;ro&&(o=n));var l=t.area*t.area,u=e*e*i;return l?pL(u*o/l,l/(u*a)):1/0}function Ud(t,e,i,n,o){var a=e===i.width?0:1,r=1-a,s=["x","y"],l=["width","height"],u=i[s[a]],h=e?t.area/e:0;(o||h>i[l[r]])&&(h=i[l[r]]);for(var c=0,d=t.length;cXM&&(u=XM),a=s}u=0?n+=u:n-=u:p>=0?n-=u:n+=u}return n}function ff(t,e){return t.getVisual("opacity")||t.getModel().get(e)}function pf(t,e,i){var n=t.getGraphicEl(),o=ff(t,e);null!=i&&(null==o&&(o=1),o*=i),n.downplay&&n.downplay(),n.traverse(function(t){if("group"!==t.type){var e=t.lineLabelOriginalOpacity;null!=e&&null==i||(e=o),t.setStyle("opacity",e)}})}function gf(t,e){var i=ff(t,e),n=t.getGraphicEl();n.highlight&&n.highlight(),n.traverse(function(t){"group"!==t.type&&t.setStyle("opacity",i)})}function mf(t){return t instanceof Array||(t=[t,t]),t}function vf(t){var e=t.coordinateSystem;if(!e||"view"===e.type){var i=t.getGraph();i.eachNode(function(t){var e=t.getModel();t.setLayout([+e.get("x"),+e.get("y")])}),yf(i)}}function yf(t){t.eachEdge(function(t){var e=t.getModel().get("lineStyle.curveness")||0,i=F(t.node1.getLayout()),n=F(t.node2.getLayout()),o=[i,n];+e&&o.push([(i[0]+n[0])/2-(i[1]-n[1])*e,(i[1]+n[1])/2-(n[0]-i[0])*e]),t.setLayout(o)})}function xf(t){var e=t.coordinateSystem;if(!e||"view"===e.type){var i=e.getBoundingRect(),n=t.getData(),o=n.graph,a=0,r=n.getSum("value"),s=2*Math.PI/(r||n.count()),l=i.width/2+i.x,u=i.height/2+i.y,h=Math.min(i.width,i.height)/2;o.eachNode(function(t){var e=t.getValue("value");a+=s*(r?e:1)/2,t.setLayout([h*Math.cos(a)+l,h*Math.sin(a)+u]),a+=s*(r?e:1)/2}),n.setLayout({cx:l,cy:u}),o.eachEdge(function(t){var e,i=t.getModel().get("lineStyle.curveness")||0,n=F(t.node1.getLayout()),o=F(t.node2.getLayout()),a=(n[0]+o[0])/2,r=(n[1]+o[1])/2;+i&&(e=[l*(i*=3)+a*(1-i),u*i+r*(1-i)]),t.setLayout([n,o,e])})}}function _f(t,e,i){for(var n=i.rect,o=n.width,a=n.height,r=[n.x+o/2,n.y+a/2],s=null==i.gravity?.1:i.gravity,l=0;l0?-1:i<0?1:e?-1:1}}function kf(t,e){return Math.min(e[1],Math.max(e[0],t))}function Pf(t,e,i){this._axesMap=R(),this._axesLayout={},this.dimensions=t.dimensions,this._rect,this._model=t,this._init(t,e,i)}function Nf(t,e){return QL(tk(t,e[0]),e[1])}function Of(t,e){var i=e.layoutLength/(e.axisCount-1);return{position:i*t,axisNameAvailableWidth:i,axisLabelShow:!0}}function Ef(t,e){var i,n,o=e.layoutLength,a=e.axisExpandWidth,r=e.axisCount,s=e.axisCollapseWidth,l=e.winInnerIndices,u=s,h=!1;return tfk}function Kf(t){var e=t.length-1;return e<0&&(e=0),[t[0],t[e]]}function $f(t,e,i,n){var o=new tb;return o.add(new yM({name:"main",style:ep(i),silent:!0,draggable:!0,cursor:"move",drift:rk(t,e,o,"nswe"),ondragend:rk(Yf,e,{isEnd:!0})})),sk(n,function(i){o.add(new yM({name:i,style:{opacity:0},draggable:!0,silent:!0,invisible:!0,drift:rk(t,e,o,i),ondragend:rk(Yf,e,{isEnd:!0})}))}),o}function Jf(t,e,i,n){var o=n.brushStyle.lineWidth||0,a=hk(o,pk),r=i[0][0],s=i[1][0],l=r-o/2,u=s-o/2,h=i[0][1],c=i[1][1],d=h-a+o/2,f=c-a+o/2,p=h-r,g=c-s,m=p+o,v=g+o;tp(t,e,"main",r,s,p,g),n.transformable&&(tp(t,e,"w",l,u,a,v),tp(t,e,"e",d,u,a,v),tp(t,e,"n",l,u,m,a),tp(t,e,"s",l,f,m,a),tp(t,e,"nw",l,u,a,a),tp(t,e,"ne",d,u,a,a),tp(t,e,"sw",l,f,a,a),tp(t,e,"se",d,f,a,a))}function Qf(t,e){var i=e.__brushOption,n=i.transformable,o=e.childAt(0);o.useStyle(ep(i)),o.attr({silent:!n,cursor:n?"move":"default"}),sk(["w","e","n","s","se","sw","ne","nw"],function(i){var o=e.childOfName(i),a=op(t,i);o&&o.attr({silent:!n,invisible:!n,cursor:n?vk[a]+"-resize":null})})}function tp(t,e,i,n,o,a,r){var s=e.childOfName(i);s&&s.setShape(up(lp(t,e,[[n,o],[n+a,o+r]])))}function ep(t){return r({strokeNoScale:!0},t.brushStyle)}function ip(t,e,i,n){var o=[uk(t,i),uk(e,n)],a=[hk(t,i),hk(e,n)];return[[o[0],a[0]],[o[1],a[1]]]}function np(t){return To(t.group)}function op(t,e){if(e.length>1)return("e"===(i=[op(t,(e=e.split(""))[0]),op(t,e[1])])[0]||"w"===i[0])&&i.reverse(),i.join("");var i=Do({w:"left",e:"right",n:"top",s:"bottom"}[e],np(t));return{left:"w",right:"e",top:"n",bottom:"s"}[i]}function ap(t,e,i,n,o,a,r,s){var l=n.__brushOption,u=t(l.range),h=sp(i,a,r);sk(o.split(""),function(t){var e=mk[t];u[e[0]][e[1]]+=h[e[0]]}),l.range=e(ip(u[0][0],u[1][0],u[0][1],u[1][1])),Hf(i,n),Yf(i,{isEnd:!1})}function rp(t,e,i,n,o){var a=e.__brushOption.range,r=sp(t,i,n);sk(a,function(t){t[0]+=r[0],t[1]+=r[1]}),Hf(t,e),Yf(t,{isEnd:!1})}function sp(t,e,i){var n=t.group,o=n.transformCoordToLocal(e,i),a=n.transformCoordToLocal(0,0);return[o[0]-a[0],o[1]-a[1]]}function lp(t,e,n){var o=Xf(t,e);return o&&!0!==o?o.clipPath(n,t._transform):i(n)}function up(t){var e=uk(t[0][0],t[1][0]),i=uk(t[0][1],t[1][1]);return{x:e,y:i,width:hk(t[0][0],t[1][0])-e,height:hk(t[0][1],t[1][1])-i}}function hp(t,e,i){if(t._brushType){var n=t._zr,o=t._covers,a=Uf(t,e,i);if(!t._dragging)for(var r=0;r=i.length)return e;for(var o=-1,a=e.length,r=i[n++],s={},l={};++o=i.length)return t;var a=[],r=n[o++];return d(t,function(t,i){a.push({key:i,values:e(t,o)})}),r?a.sort(function(t,e){return r(t.key,e.key)}):a}var i=[],n=[];return{key:function(t){return i.push(t),this},sortKeys:function(t){return n[i.length-1]=t,this},entries:function(i){return e(t(i,0),0)}}}function Bp(t,e){return ha(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}function Vp(t,e,i,n,o,a,r,s){Fp(t,e,i,o,a,s),Zp(t,e,a,o,n,r,s),eg(t,s)}function Gp(t){d(t,function(t){var e=Qp(t.outEdges,Jp),i=Qp(t.inEdges,Jp),n=Math.max(e,i);t.setLayout({value:n},!0)})}function Fp(t,e,i,n,o,a){for(var r=[],s=[],l=[],u=[],h=0,c=0;c0;a--)Yp(s,l*=.99,r),jp(s,o,i,n,r),tg(s,l,r),jp(s,o,i,n,r)}function Up(t){return"vertical"===t?function(t){return t.getLayout().y}:function(t){return t.getLayout().x}}function Xp(t,e,i,n,o,a,r){var s=[];d(e,function(t){var e=t.length,i=0,l=0;d(t,function(t){i+=t.getLayout().value}),l="vertical"===r?(o-(e-1)*a)/i:(n-(e-1)*a)/i,s.push(l)}),s.sort(function(t,e){return t-e});var l=s[0];d(e,function(t){d(t,function(t,e){var i=t.getLayout().value*l;"vertical"===r?(t.setLayout({x:e},!0),t.setLayout({dx:i},!0)):(t.setLayout({y:e},!0),t.setLayout({dy:i},!0))})}),d(i,function(t){var e=+t.getValue()*l;t.setLayout({dy:e},!0)})}function jp(t,e,i,n,o){d(t,function(t){var a,r,s,l=0,u=t.length;if("vertical"===o){var h;for(t.sort(function(t,e){return t.getLayout().x-e.getLayout().x}),s=0;s0&&(h=a.getLayout().x+r,a.setLayout({x:h},!0)),l=a.getLayout().x+a.getLayout().dx+e;if((r=l-e-n)>0)for(h=a.getLayout().x-r,a.setLayout({x:h},!0),l=h,s=u-2;s>=0;--s)(r=(a=t[s]).getLayout().x+a.getLayout().dx+e-l)>0&&(h=a.getLayout().x-r,a.setLayout({x:h},!0)),l=a.getLayout().x}else{var c;for(t.sort(function(t,e){return t.getLayout().y-e.getLayout().y}),s=0;s0&&(c=a.getLayout().y+r,a.setLayout({y:c},!0)),l=a.getLayout().y+a.getLayout().dy+e;if((r=l-e-i)>0)for(c=a.getLayout().y-r,a.setLayout({y:c},!0),l=c,s=u-2;s>=0;--s)(r=(a=t[s]).getLayout().y+a.getLayout().dy+e-l)>0&&(c=a.getLayout().y-r,a.setLayout({y:c},!0)),l=a.getLayout().y}})}function Yp(t,e,i){d(t.slice().reverse(),function(t){d(t,function(t){if(t.outEdges.length){var n=Qp(t.outEdges,qp,i)/Qp(t.outEdges,Jp,i);if("vertical"===i){var o=t.getLayout().x+(n-$p(t,i))*e;t.setLayout({x:o},!0)}else{var a=t.getLayout().y+(n-$p(t,i))*e;t.setLayout({y:a},!0)}}})})}function qp(t,e){return $p(t.node2,e)*t.getValue()}function Kp(t,e){return $p(t.node1,e)*t.getValue()}function $p(t,e){return"vertical"===e?t.getLayout().x+t.getLayout().dx/2:t.getLayout().y+t.getLayout().dy/2}function Jp(t){return t.getValue()}function Qp(t,e,i){for(var n=0,o=t.length,a=-1;++a0?"P":"N",a=n.getVisual("borderColor"+o)||n.getVisual("color"+o),r=i.getModel(zk).getItemStyle(Vk);e.useStyle(r),e.style.fill=null,e.style.stroke=a}function fg(t,e,i,n,o){return i>n?-1:i0?t.get(o,e-1)<=n?1:-1:1}function pg(t,e){var i,n=t.getBaseAxis(),o="category"===n.type?n.getBandWidth():(i=n.getExtent(),Math.abs(i[1]-i[0])/e.count()),a=Bo(A(t.get("barMaxWidth"),o),o),r=Bo(A(t.get("barMinWidth"),1),o),s=t.get("barWidth");return null!=s?Bo(s,o):Math.max(Math.min(o/2,a),r)}function gg(t){return y(t)||(t=[+t,+t]),t}function mg(t,e){t.eachChild(function(t){t.attr({z:e.z,zlevel:e.zlevel,style:{stroke:"stroke"===e.brushType?e.color:null,fill:"fill"===e.brushType?e.color:null}})})}function vg(t,e){tb.call(this);var i=new _u(t,e),n=new tb;this.add(i),this.add(n),n.beforeUpdate=function(){this.attr(i.getScale())},this.updateData(t,e)}function yg(t){var e=t.data;e&&e[0]&&e[0][0]&&e[0][0].coord&&(t.data=f(e,function(t){var e={coords:[t[0].coord,t[1].coord]};return t[0].name&&(e.fromName=t[0].name),t[1].name&&(e.toName=t[1].name),o([e,t[0],t[1]])}))}function xg(t,e,i){tb.call(this),this.add(this.createLine(t,e,i)),this._updateEffectSymbol(t,e)}function _g(t,e,i){tb.call(this),this._createPolyline(t,e,i)}function wg(t,e,i){xg.call(this,t,e,i),this._lastFrame=0,this._lastFramePercent=0}function bg(){this.group=new tb}function Sg(t){return t instanceof Array||(t=[t,t]),t}function Mg(){var t=iw();this.canvas=t,this.blurSize=30,this.pointSize=20,this.maxOpacity=1,this.minOpacity=0,this._gradientPixels={}}function Ig(t,e,i){var n=t[1]-t[0],o=(e=f(e,function(e){return{interval:[(e.interval[0]-t[0])/n,(e.interval[1]-t[0])/n]}})).length,a=0;return function(t){for(n=a;n=0;n--){var r=e[n].interval;if(r[0]<=t&&t<=r[1]){a=n;break}}return n>=0&&n=e[0]&&t<=e[1]}}function Ag(t){var e=t.dimensions;return"lng"===e[0]&&"lat"===e[1]}function Dg(t,e,i,n){var o=t.getItemLayout(e),a=i.get("symbolRepeat"),r=i.get("symbolClip"),s=i.get("symbolPosition")||"start",l=(i.get("symbolRotate")||0)*Math.PI/180||0,u=i.get("symbolPatternSize")||2,h=i.isAnimationEnabled(),c={dataIndex:e,layout:o,itemModel:i,symbolType:t.getItemVisual(e,"symbol")||"circle",color:t.getItemVisual(e,"color"),symbolClip:r,symbolRepeat:a,symbolRepeatDirection:i.get("symbolRepeatDirection"),symbolPatternSize:u,rotation:l,animationModel:h?i:null,hoverAnimation:h&&i.get("hoverAnimation"),z2:i.getShallow("z",!0)||0};Cg(i,a,o,n,c),kg(t,e,o,a,r,c.boundingLength,c.pxSign,u,n,c),Pg(i,c.symbolScale,l,n,c);var d=c.symbolSize,f=i.get("symbolOffset");return y(f)&&(f=[Bo(f[0],d[0]),Bo(f[1],d[1])]),Ng(i,d,o,a,r,f,s,c.valueLineWidth,c.boundingLength,c.repeatCutLength,n,c),c}function Cg(t,e,i,n,o){var a,r=n.valueDim,s=t.get("symbolBoundingData"),l=n.coordSys.getOtherAxis(n.coordSys.getBaseAxis()),u=l.toGlobalCoord(l.dataToCoord(0)),h=1-+(i[r.wh]<=0);if(y(s)){var c=[Lg(l,s[0])-u,Lg(l,s[1])-u];c[1]0?1:a<0?-1:0}function Lg(t,e){return t.toGlobalCoord(t.dataToCoord(t.scale.parse(e)))}function kg(t,e,i,n,o,a,r,s,l,u){var h=l.valueDim,c=l.categoryDim,d=Math.abs(i[c.wh]),f=t.getItemVisual(e,"symbolSize");y(f)?f=f.slice():(null==f&&(f="100%"),f=[f,f]),f[c.index]=Bo(f[c.index],d),f[h.index]=Bo(f[h.index],n?d:Math.abs(a)),u.symbolSize=f,(u.symbolScale=[f[0]/s,f[1]/s])[h.index]*=(l.isHorizontal?-1:1)*r}function Pg(t,e,i,n,o){var a=t.get(lP)||0;a&&(hP.attr({scale:e.slice(),rotation:i}),hP.updateTransform(),a/=hP.getLineScale(),a*=e[n.valueDim.index]),o.valueLineWidth=a}function Ng(t,e,i,n,o,r,s,l,u,h,c,d){var f=c.categoryDim,p=c.valueDim,g=d.pxSign,m=Math.max(e[p.index]+l,0),v=m;if(n){var y=Math.abs(u),x=T(t.get("symbolMargin"),"15%")+"",_=!1;x.lastIndexOf("!")===x.length-1&&(_=!0,x=x.slice(0,x.length-1)),x=Bo(x,e[p.index]);var w=Math.max(m+2*x,0),b=_?0:2*x,S=Jo(n),M=S?n:Kg((y+b)/w);w=m+2*(x=(y-M*m)/2/(_?M:M-1)),b=_?0:2*x,S||"fixed"===n||(M=h?Kg((Math.abs(h)+b)/w):0),v=M*w-b,d.repeatTimes=M,d.symbolMargin=x}var I=g*(v/2),A=d.pathPosition=[];A[f.index]=i[f.wh]/2,A[p.index]="start"===s?I:"end"===s?u-I:u/2,r&&(A[0]+=r[0],A[1]+=r[1]);var D=d.bundlePosition=[];D[f.index]=i[f.xy],D[p.index]=i[p.xy];var C=d.barRectShape=a({},i);C[p.wh]=g*Math.max(Math.abs(i[p.wh]),Math.abs(A[p.index]+I)),C[f.wh]=i[f.wh];var L=d.clipShape={};L[f.xy]=-i[f.xy],L[f.wh]=c.ecSize[f.wh],L[p.xy]=0,L[p.wh]=i[p.wh]}function Og(t){var e=t.symbolPatternSize,i=$l(t.symbolType,-e/2,-e/2,e,e,t.color);return i.attr({culling:!0}),"image"!==i.type&&i.setStyle({strokeNoScale:!0}),i}function Eg(t,e,i,n){function o(t){var e=l.slice(),n=i.pxSign,o=t;return("start"===i.symbolRepeatDirection?n>0:n<0)&&(o=h-1-t),e[u.index]=d*(o-h/2+.5)+l[u.index],{position:e,scale:i.symbolScale.slice(),rotation:i.rotation}}var a=t.__pictorialBundle,r=i.symbolSize,s=i.valueLineWidth,l=i.pathPosition,u=e.valueDim,h=i.repeatTimes||0,c=0,d=r[e.valueDim.index]+s+2*i.symbolMargin;for(jg(t,function(t){t.__pictorialAnimationIndex=c,t.__pictorialRepeatTimes=h,c0)],d=t.__pictorialBarRect;Lh(d.style,h,a,n,e.seriesModel,o,c),co(d,h)}function Kg(t){var e=Math.round(t);return Math.abs(t-e)<1e-4?e:Math.ceil(t)}function $g(t,e,i){this.dimension="single",this.dimensions=["single"],this._axis=null,this._rect,this._init(t,e,i),this.model=t}function Jg(t,e){e=e||{};var i=t.coordinateSystem,n=t.axis,o={},a=n.position,r=n.orient,s=i.getRect(),l=[s.x,s.x+s.width,s.y,s.y+s.height],u={horizontal:{top:l[2],bottom:l[3]},vertical:{left:l[0],right:l[1]}};o.position=["vertical"===r?u.vertical[a]:l[0],"horizontal"===r?u.horizontal[a]:l[3]];o.rotation=Math.PI/2*{horizontal:0,vertical:1}[r];o.labelDirection=o.tickDirection=o.nameDirection={top:-1,bottom:1,right:1,left:-1}[a],t.get("axisTick.inside")&&(o.tickDirection=-o.tickDirection),T(e.labelInside,t.get("axisLabel.inside"))&&(o.labelDirection=-o.labelDirection);var h=e.rotate;return null==h&&(h=t.get("axisLabel.rotate")),o.labelRotation="top"===a?-h:h,o.z2=1,o}function Qg(t,e,i,n,o){var r=t.axis;if(!r.scale.isBlank()&&r.containData(e))if(t.involveSeries){var s=tm(e,t),l=s.payloadBatch,u=s.snapToValue;l[0]&&null==o.seriesIndex&&a(o,l[0]),!n&&t.snap&&r.containData(u)&&null!=u&&(e=u),i.showPointer(t,e,l,o),i.showTooltip(t,s,u)}else i.showPointer(t,e)}function tm(t,e){var i=e.axis,n=i.dim,o=t,a=[],r=Number.MAX_VALUE,s=-1;return mP(e.seriesModels,function(e,l){var u,h,c=e.getData().mapDimension(n,!0);if(e.getAxisTooltipData){var d=e.getAxisTooltipData(c,t,i);h=d.dataIndices,u=d.nestestValue}else{if(!(h=e.getData().indicesOfNearest(c[0],t,"category"===i.type?.5:null)).length)return;u=e.getData().get(c[0],h[0])}if(null!=u&&isFinite(u)){var f=t-u,p=Math.abs(f);p<=r&&((p=0&&s<0)&&(r=p,s=f,o=u,a.length=0),mP(h,function(t){a.push({seriesIndex:e.seriesIndex,dataIndexInside:t,dataIndex:e.getData().getRawIndex(t)})}))}}),{payloadBatch:a,snapToValue:o}}function em(t,e,i,n){t[e.key]={value:i,payloadBatch:n}}function im(t,e,i,n){var o=i.payloadBatch,a=e.axis,r=a.model,s=e.axisPointerModel;if(e.triggerTooltip&&o.length){var l=e.coordSys.model,u=Th(l),h=t.map[u];h||(h=t.map[u]={coordSysId:l.id,coordSysIndex:l.componentIndex,coordSysType:l.type,coordSysMainType:l.mainType,dataByAxis:[]},t.list.push(h)),h.dataByAxis.push({axisDim:a.dim,axisIndex:r.componentIndex,axisType:r.type,axisId:r.id,value:n,valueLabelOpt:{precision:s.get("label.precision"),formatter:s.get("label.formatter")},seriesDataIndices:o.slice()})}}function nm(t,e,i){var n=i.axesInfo=[];mP(e,function(e,i){var o=e.axisPointerModel.option,a=t[i];a?(!e.useHandle&&(o.status="show"),o.value=a.value,o.seriesDataIndices=(a.payloadBatch||[]).slice()):!e.useHandle&&(o.status="hide"),"show"===o.status&&n.push({axisDim:e.axis.dim,axisIndex:e.axis.model.componentIndex,value:o.value})})}function om(t,e,i,n){if(!lm(e)&&t.list.length){var o=((t.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};n({type:"showTip",escapeConnect:!0,x:e[0],y:e[1],tooltipOption:i.tooltipOption,position:i.position,dataIndexInside:o.dataIndexInside,dataIndex:o.dataIndex,seriesIndex:o.seriesIndex,dataByCoordSys:t.list})}else n({type:"hideTip"})}function am(t,e,i){var n=i.getZr(),o=yP(n).axisPointerLastHighlights||{},a=yP(n).axisPointerLastHighlights={};mP(t,function(t,e){var i=t.axisPointerModel.option;"show"===i.status&&mP(i.seriesDataIndices,function(t){var e=t.seriesIndex+" | "+t.dataIndex;a[e]=t})});var r=[],s=[];d(o,function(t,e){!a[e]&&s.push(t)}),d(a,function(t,e){!o[e]&&r.push(t)}),s.length&&i.dispatchAction({type:"downplay",escapeConnect:!0,batch:s}),r.length&&i.dispatchAction({type:"highlight",escapeConnect:!0,batch:r})}function rm(t,e){for(var i=0;i<(t||[]).length;i++){var n=t[i];if(e.axis.dim===n.axisDim&&e.axis.model.componentIndex===n.axisIndex)return n}}function sm(t){var e=t.axis.model,i={},n=i.axisDim=t.axis.dim;return i.axisIndex=i[n+"AxisIndex"]=e.componentIndex,i.axisName=i[n+"AxisName"]=e.name,i.axisId=i[n+"AxisId"]=e.id,i}function lm(t){return!t||null==t[0]||isNaN(t[0])||null==t[1]||isNaN(t[1])}function um(t,e,i){if(!U_.node){var n=e.getZr();xP(n).records||(xP(n).records={}),hm(n,e),(xP(n).records[t]||(xP(n).records[t]={})).handler=i}}function hm(t,e){function i(i,n){t.on(i,function(i){var o=pm(e);_P(xP(t).records,function(t){t&&n(t,i,o.dispatchAction)}),cm(o.pendings,e)})}xP(t).initialized||(xP(t).initialized=!0,i("click",v(fm,"click")),i("mousemove",v(fm,"mousemove")),i("globalout",dm))}function cm(t,e){var i,n=t.showTip.length,o=t.hideTip.length;n?i=t.showTip[n-1]:o&&(i=t.hideTip[o-1]),i&&(i.dispatchAction=null,e.dispatchAction(i))}function dm(t,e,i){t.handler("leave",null,i)}function fm(t,e,i,n){e.handler(t,i,n)}function pm(t){var e={showTip:[],hideTip:[]},i=function(n){var o=e[n.type];o?o.push(n):(n.dispatchAction=i,t.dispatchAction(n))};return{dispatchAction:i,pendings:e}}function gm(t,e){if(!U_.node){var i=e.getZr();(xP(i).records||{})[t]&&(xP(i).records[t]=null)}}function mm(){}function vm(t,e,i,n){ym(bP(i).lastProp,n)||(bP(i).lastProp=n,e?Mo(i,n,t):(i.stopAnimation(),i.attr(n)))}function ym(t,e){if(w(t)&&w(e)){var i=!0;return d(e,function(e,n){i=i&&ym(t[n],e)}),!!i}return t===e}function xm(t,e){t[e.get("label.show")?"show":"hide"]()}function _m(t){return{position:t.position.slice(),rotation:t.rotation||0}}function wm(t,e,i){var n=e.get("z"),o=e.get("zlevel");t&&t.traverse(function(t){"group"!==t.type&&(null!=n&&(t.z=n),null!=o&&(t.zlevel=o),t.silent=i)})}function bm(t){var e,i=t.get("type"),n=t.getModel(i+"Style");return"line"===i?(e=n.getLineStyle()).fill=null:"shadow"===i&&((e=n.getAreaStyle()).stroke=null),e}function Sm(t,e,i,n,o){var a=Im(i.get("value"),e.axis,e.ecModel,i.get("seriesDataIndices"),{precision:i.get("label.precision"),formatter:i.get("label.formatter")}),r=i.getModel("label"),s=qM(r.get("padding")||0),l=r.getFont(),u=ke(a,l),h=o.position,c=u.width+s[1]+s[3],d=u.height+s[0]+s[2],f=o.align;"right"===f&&(h[0]-=c),"center"===f&&(h[0]-=c/2);var p=o.verticalAlign;"bottom"===p&&(h[1]-=d),"middle"===p&&(h[1]-=d/2),Mm(h,c,d,n);var g=r.get("backgroundColor");g&&"auto"!==g||(g=e.get("axisLine.lineStyle.color")),t.label={shape:{x:0,y:0,width:c,height:d,r:r.get("borderRadius")},position:h.slice(),style:{text:a,textFont:l,textFill:r.getTextColor(),textPosition:"inside",fill:g,stroke:r.get("borderColor")||"transparent",lineWidth:r.get("borderWidth")||0,shadowBlur:r.get("shadowBlur"),shadowColor:r.get("shadowColor"),shadowOffsetX:r.get("shadowOffsetX"),shadowOffsetY:r.get("shadowOffsetY")},z2:10}}function Mm(t,e,i,n){var o=n.getWidth(),a=n.getHeight();t[0]=Math.min(t[0]+e,o)-e,t[1]=Math.min(t[1]+i,a)-i,t[0]=Math.max(t[0],0),t[1]=Math.max(t[1],0)}function Im(t,e,i,n,o){t=e.scale.parse(t);var a=e.scale.getLabel(t,{precision:o.precision}),r=o.formatter;if(r){var s={value:Ul(e,t),seriesData:[]};d(n,function(t){var e=i.getSeriesByIndex(t.seriesIndex),n=t.dataIndexInside,o=e&&e.getDataParams(n);o&&s.seriesData.push(o)}),_(r)?a=r.replace("{value}",a):x(r)&&(a=r(s))}return a}function Tm(t,e,i){var n=xt();return Mt(n,n,i.rotation),St(n,n,i.position),Ao([t.dataToCoord(e),(i.labelOffset||0)+(i.labelDirection||1)*(i.labelMargin||0)],n)}function Am(t,e,i,n,o,a){var r=VD.innerTextLayout(i.rotation,0,i.labelDirection);i.labelMargin=o.get("label.margin"),Sm(e,n,o,a,{position:Tm(n.axis,t,i),align:r.textAlign,verticalAlign:r.textVerticalAlign})}function Dm(t,e,i){return i=i||0,{x1:t[i],y1:t[1-i],x2:e[i],y2:e[1-i]}}function Cm(t,e,i){return i=i||0,{x:t[i],y:t[1-i],width:e[i],height:e[1-i]}}function Lm(t,e,i,n,o,a){return{cx:t,cy:e,r0:i,r:n,startAngle:o,endAngle:a,clockwise:!0}}function km(t,e){var i={};return i[e.dim+"AxisIndex"]=e.index,t.getCartesian(i)}function Pm(t){return"x"===t.dim?0:1}function Nm(t){return t.isHorizontal()?0:1}function Om(t,e){var i=t.getRect();return[i[AP[e]],i[AP[e]]+i[DP[e]]]}function Em(t,e,i){var n=new yM({shape:{x:t.x-10,y:t.y-10,width:0,height:t.height+20}});return Io(n,{shape:{width:t.width+20,height:t.height+20}},e,i),n}function Rm(t,e,i){if(t.count())for(var n,o=e.coordinateSystem,a=e.getLayerSeries(),r=t.mapDimension("single"),s=t.mapDimension("value"),l=f(a,function(e){return f(e.indices,function(e){var i=o.dataToPoint(t.get(r,e));return i[1]=t.get(s,e),i})}),u=zm(l),h=u.y0,c=i/u.max,d=a.length,p=a[0].indices.length,g=0;ga&&(a=u),n.push(u)}for(var h=0;ha&&(a=d)}return r.y0=o,r.max=a,r}function Bm(t){var e=0;d(t.children,function(t){Bm(t);var i=t.value;y(i)&&(i=i[0]),e+=i});var i=t.value;y(i)&&(i=i[0]),(null==i||isNaN(i))&&(i=e),i<0&&(i=0),y(t.value)?t.value[0]=i:t.value=i}function Vm(t,e,i){function n(){r.ignore=r.hoverIgnore}function o(){r.ignore=r.normalIgnore}tb.call(this);var a=new hM({z2:NP});a.seriesIndex=e.seriesIndex;var r=new rM({z2:OP,silent:t.getModel("label").get("silent")});this.add(a),this.add(r),this.updateData(!0,t,"normal",e,i),this.on("emphasis",n).on("normal",o).on("mouseover",n).on("mouseout",o)}function Gm(t,e,i){var n=t.getVisual("color"),o=t.getVisual("visualMeta");o&&0!==o.length||(n=null);var a=t.getModel("itemStyle").get("color");if(a)return a;if(n)return n;if(0===t.depth)return i.option.color[0];var r=i.option.color.length;return a=i.option.color[Fm(t)%r]}function Fm(t){for(var e=t;e.depth>1;)e=e.parentNode;return l(t.getAncestors()[0].children,e)}function Wm(t,e,i){return i!==PP.NONE&&(i===PP.SELF?t===e:i===PP.ANCESTOR?t===e||t.isAncestorOf(e):t===e||t.isDescendantOf(e))}function Hm(t,e,i){e.getData().setItemVisual(t.dataIndex,"color",i)}function Zm(t,e){var i=t.children||[];t.children=Um(i,e),i.length&&d(t.children,function(t){Zm(t,e)})}function Um(t,e){if("function"==typeof e)return t.sort(e);var i="asc"===e;return t.sort(function(t,e){var n=(t.getValue()-e.getValue())*(i?1:-1);return 0===n?(t.dataIndex-e.dataIndex)*(i?-1:1):n})}function Xm(t,e){return e=e||[0,0],f(["x","y"],function(i,n){var o=this.getAxis(i),a=e[n],r=t[n]/2;return"category"===o.type?o.getBandWidth():Math.abs(o.dataToCoord(a-r)-o.dataToCoord(a+r))},this)}function jm(t,e){return e=e||[0,0],f([0,1],function(i){var n=e[i],o=t[i]/2,a=[],r=[];return a[i]=n-o,r[i]=n+o,a[1-i]=r[1-i]=e[1-i],Math.abs(this.dataToPoint(a)[i]-this.dataToPoint(r)[i])},this)}function Ym(t,e){var i=this.getAxis(),n=e instanceof Array?e[0]:e,o=(t instanceof Array?t[0]:t)/2;return"category"===i.type?i.getBandWidth():Math.abs(i.dataToCoord(n-o)-i.dataToCoord(n+o))}function qm(t,e){return f(["Radius","Angle"],function(i,n){var o=this["get"+i+"Axis"](),a=e[n],r=t[n]/2,s="dataTo"+i,l="category"===o.type?o.getBandWidth():Math.abs(o[s](a-r)-o[s](a+r));return"Angle"===i&&(l=l*Math.PI/180),l},this)}function Km(t){var e,i=t.type;if("path"===i){var n=t.shape,o=null!=n.width&&null!=n.height?{x:n.x||0,y:n.y||0,width:n.width,height:n.height}:null,a=lv(n);(e=Un(a,null,o,n.layout||"center")).__customPathData=a}else"image"===i?(e=new fi({})).__customImagePath=t.style.image:"text"===i?(e=new rM({})).__customText=t.style.text:e=new(0,zM[i.charAt(0).toUpperCase()+i.slice(1)]);return e.__customGraphicType=i,e.name=t.name,e}function $m(t,e,n,o,a,r,s){var l={},u=n.style||{};if(n.shape&&(l.shape=i(n.shape)),n.position&&(l.position=n.position.slice()),n.scale&&(l.scale=n.scale.slice()),n.origin&&(l.origin=n.origin.slice()),n.rotation&&(l.rotation=n.rotation),"image"===t.type&&n.style){h=l.style={};d(["x","y","width","height"],function(e){Jm(e,h,u,t.style,r)})}if("text"===t.type&&n.style){var h=l.style={};d(["x","y"],function(e){Jm(e,h,u,t.style,r)}),!u.hasOwnProperty("textFill")&&u.fill&&(u.textFill=u.fill),!u.hasOwnProperty("textStroke")&&u.stroke&&(u.textStroke=u.stroke)}if("group"!==t.type&&(t.useStyle(u),r)){t.style.opacity=0;var c=u.opacity;null==c&&(c=1),Io(t,{style:{opacity:c}},o,e)}r?t.attr(l):Mo(t,l,o,e),n.hasOwnProperty("z2")&&t.attr("z2",n.z2||0),n.hasOwnProperty("silent")&&t.attr("silent",n.silent),n.hasOwnProperty("invisible")&&t.attr("invisible",n.invisible),n.hasOwnProperty("ignore")&&t.attr("ignore",n.ignore),n.hasOwnProperty("info")&&t.attr("info",n.info);var f=n.styleEmphasis,p=!1===f;t.__cusHasEmphStl&&null==f||!t.__cusHasEmphStl&&p||(ao(t,f),t.__cusHasEmphStl=!p),s&&fo(t,!p)}function Jm(t,e,i,n,o){null==i[t]||o||(e[t]=i[t],i[t]=n[t])}function Qm(t,e,i,n){function o(t){null==t&&(t=h),v&&(c=e.getItemModel(t),d=c.getModel(FP),f=c.getModel(WP),p=e.getItemVisual(t,"color"),v=!1)}var s=t.get("renderItem"),l=t.coordinateSystem,u={};l&&(u=l.prepareCustoms?l.prepareCustoms():ZP[l.type](l));var h,c,d,f,p,g=r({getWidth:n.getWidth,getHeight:n.getHeight,getZr:n.getZr,getDevicePixelRatio:n.getDevicePixelRatio,value:function(t,i){return null==i&&(i=h),e.get(e.getDimension(t||0),i)},style:function(i,n){null==n&&(n=h),o(n);var r=c.getModel(VP).getItemStyle();null!=p&&(r.fill=p);var s=e.getItemVisual(n,"opacity");return null!=s&&(r.opacity=s),go(r,d,null,{autoColor:p,isRectText:!0}),r.text=d.getShallow("show")?A(t.getFormattedLabel(n,"normal"),xu(e,n)):null,i&&a(r,i),r},styleEmphasis:function(i,n){null==n&&(n=h),o(n);var r=c.getModel(GP).getItemStyle();return go(r,f,null,{isRectText:!0},!0),r.text=f.getShallow("show")?D(t.getFormattedLabel(n,"emphasis"),t.getFormattedLabel(n,"normal"),xu(e,n)):null,i&&a(r,i),r},visual:function(t,i){return null==i&&(i=h),e.getItemVisual(i,t)},barLayout:function(t){if(l.getBaseAxis)return Cl(r({axis:l.getBaseAxis()},t),n)},currentSeriesIndices:function(){return i.getCurrentSeriesIndices()},font:function(t){return bo(t,i)}},u.api||{}),m={context:{},seriesId:t.id,seriesName:t.name,seriesIndex:t.seriesIndex,coordSys:u.coordSys,dataInsideLength:e.count(),encode:tv(t.getData())},v=!0;return function(t,i){return h=t,v=!0,s&&s(r({dataIndexInside:t,dataIndex:e.getRawIndex(t),actionType:i?i.type:null},m),g)}}function tv(t){var e={};return d(t.dimensions,function(i,n){var o=t.getDimensionInfo(i);if(!o.isExtraCoord){var a=o.coordDim;(e[a]=e[a]||[])[o.coordDimIndex]=n}}),e}function ev(t,e,i,n,o,a){return(t=iv(t,e,i,n,o,a,!0))&&a.setItemGraphicEl(e,t),t}function iv(t,e,i,n,o,a,r){var s=!i,l=(i=i||{}).type,u=i.shape,h=i.style;if(t&&(s||null!=l&&l!==t.__customGraphicType||"path"===l&&uv(u)&&lv(u)!==t.__customPathData||"image"===l&&hv(h,"image")&&h.image!==t.__customImagePath||"text"===l&&hv(u,"text")&&h.text!==t.__customText)&&(o.remove(t),t=null),!s){var c=!t;return!t&&(t=Km(i)),$m(t,e,i,n,a,c,r),"group"===l&&nv(t,e,i,n,a),o.add(t),t}}function nv(t,e,i,n,o){var a=i.children,r=a?a.length:0,s=i.$mergeChildren,l="byName"===s||i.diffChildrenByName,u=!1===s;if(r||l||u)if(l)ov({oldChildren:t.children()||[],newChildren:a||[],dataIndex:e,animatableModel:n,group:t,data:o});else{u&&t.removeAll();for(var h=0;hn?t-=l+a:t+=a),null!=r&&(e+u+r>o?e-=u+r:e+=r),[t,e]}function Ov(t,e,i,n,o){var a=i.getOuterSize(),r=a.width,s=a.height;return t=Math.min(t+r,n)-r,e=Math.min(e+s,o)-s,t=Math.max(t,0),e=Math.max(e,0),[t,e]}function Ev(t,e,i){var n=i[0],o=i[1],a=0,r=0,s=e.width,l=e.height;switch(t){case"inside":a=e.x+s/2-n/2,r=e.y+l/2-o/2;break;case"top":a=e.x+s/2-n/2,r=e.y-o-5;break;case"bottom":a=e.x+s/2-n/2,r=e.y+l+5;break;case"left":a=e.x-n-5,r=e.y+l/2-o/2;break;case"right":a=e.x+s+5,r=e.y+l/2-o/2}return[a,r]}function Rv(t){return"center"===t||"middle"===t}function zv(t){return t.get("stack")||"__ec_stack_"+t.seriesIndex}function Bv(t){return t.dim}function Vv(t,e){var i={};d(t,function(t,e){var n=t.getData(),o=t.coordinateSystem.getBaseAxis(),a=o.getExtent(),r="category"===o.type?o.getBandWidth():Math.abs(a[1]-a[0])/n.count(),s=i[Bv(o)]||{bandWidth:r,remainedWidth:r,autoWidthCount:0,categoryGap:"20%",gap:"30%",stacks:{}},l=s.stacks;i[Bv(o)]=s;var u=zv(t);l[u]||s.autoWidthCount++,l[u]=l[u]||{width:0,maxWidth:0};var h=Bo(t.get("barWidth"),r),c=Bo(t.get("barMaxWidth"),r),d=t.get("barGap"),f=t.get("barCategoryGap");h&&!l[u].width&&(h=Math.min(s.remainedWidth,h),l[u].width=h,s.remainedWidth-=h),c&&(l[u].maxWidth=c),null!=d&&(s.gap=d),null!=f&&(s.categoryGap=f)});var n={};return d(i,function(t,e){n[e]={};var i=t.stacks,o=t.bandWidth,a=Bo(t.categoryGap,o),r=Bo(t.gap,1),s=t.remainedWidth,l=t.autoWidthCount,u=(s-a)/(l+(l-1)*r);u=Math.max(u,0),d(i,function(t,e){var i=t.maxWidth;i&&ie[0]&&(e=e.slice().reverse());var n=t.coordToPoint([e[0],i]),o=t.coordToPoint([e[1],i]);return{x1:n[0],y1:n[1],x2:o[0],y2:o[1]}}function jv(t){return t.getRadiusAxis().inverse?0:1}function Yv(t){var e=t[0],i=t[t.length-1];e&&i&&Math.abs(Math.abs(e.coord-i.coord)-360)<1e-4&&t.pop()}function qv(t,e,i){return{position:[t.cx,t.cy],rotation:i/180*Math.PI,labelDirection:-1,tickDirection:-1,nameDirection:1,labelRotate:e.getModel("axisLabel").get("rotate"),z2:1}}function Kv(t,e,i,n,o){var a=e.axis,r=a.dataToCoord(t),s=n.getAngleAxis().getExtent()[0];s=s/180*Math.PI;var l,u,h,c=n.getRadiusAxis().getExtent();if("radius"===a.dim){var d=xt();Mt(d,d,s),St(d,d,[n.cx,n.cy]),l=Ao([r,-o],d);var f=e.getModel("axisLabel").get("rotate")||0,p=VD.innerTextLayout(s,f*Math.PI/180,-1);u=p.textAlign,h=p.textVerticalAlign}else{var g=c[1];l=n.coordToPoint([g+o,r]);var m=n.cx,v=n.cy;u=Math.abs(l[0]-m)/g<.3?"center":l[0]>m?"left":"right",h=Math.abs(l[1]-v)/g<.3?"middle":l[1]>v?"top":"bottom"}return{position:l,align:u,verticalAlign:h}}function $v(t,e){e.update="updateView",Os(e,function(e,i){var n={};return i.eachComponent({mainType:"geo",query:e},function(i){i[t](e.name),d(i.coordinateSystem.regions,function(t){n[t.name]=i.isSelected(t.name)||!1})}),{selected:n,name:e.name}})}function Jv(t){var e={};d(t,function(t){e[t]=1}),t.length=0,d(e,function(e,i){t.push(i)})}function Qv(t){if(t)for(var e in t)if(t.hasOwnProperty(e))return!0}function ty(t,e,n){function o(){var t=function(){};return t.prototype.__hidden=t.prototype,new t}var a={};return _N(e,function(e){var r=a[e]=o();_N(t[e],function(t,o){if(lL.isValidType(o)){var a={type:o,visual:t};n&&n(a,e),r[o]=new lL(a),"opacity"===o&&((a=i(a)).type="colorAlpha",r.__hidden.__alphaForOpacity=new lL(a))}})}),a}function ey(t,e,n){var o;d(n,function(t){e.hasOwnProperty(t)&&Qv(e[t])&&(o=!0)}),o&&d(n,function(n){e.hasOwnProperty(n)&&Qv(e[n])?t[n]=i(e[n]):delete t[n]})}function iy(t,e,i,n,o,a){function r(t){return i.getItemVisual(h,t)}function s(t,e){i.setItemVisual(h,t,e)}function l(t,l){h=null==a?t:l;var c=i.getRawDataItem(h);if(!c||!1!==c.visualMap)for(var d=n.call(o,t),f=e[d],p=u[d],g=0,m=p.length;g1)return!1;var h=uy(i-t,o-t,n-e,a-e)/l;return!(h<0||h>1)}function ly(t){return t<=1e-6&&t>=-1e-6}function uy(t,e,i,n){return t*n-e*i}function hy(t,e,i){var n=this._targetInfoList=[],o={},a=dy(e,t);bN(DN,function(t,e){(!i||!i.include||SN(i.include,e)>=0)&&t(a,n,o)})}function cy(t){return t[0]>t[1]&&t.reverse(),t}function dy(t,e){return Vi(t,e,{includeMainTypes:TN})}function fy(t,e,i,n){var o=i.getAxis(["x","y"][t]),a=cy(f([0,1],function(t){return e?o.coordToData(o.toLocalCoord(n[t])):o.toGlobalCoord(o.dataToCoord(n[t]))})),r=[];return r[t]=a,r[1-t]=[NaN,NaN],{values:a,xyMinMax:r}}function py(t,e,i,n){return[e[0]-n[t]*i[0],e[1]-n[t]*i[1]]}function gy(t,e){var i=my(t),n=my(e),o=[i[0]/n[0],i[1]/n[1]];return isNaN(o[0])&&(o[0]=1),isNaN(o[1])&&(o[1]=1),o}function my(t){return t?[t[0][1]-t[0][0],t[1][1]-t[1][0]]:[NaN,NaN]}function vy(t,e,i,n,o){if(o){var a=t.getZr();a[EN]||(a[ON]||(a[ON]=yy),Pr(a,ON,i,e)(t,n))}}function yy(t,e){if(!t.isDisposed()){var i=t.getZr();i[EN]=!0,t.dispatchAction({type:"brushSelect",batch:e}),i[EN]=!1}}function xy(t,e,i,n){for(var o=0,a=e.length;o=0}function Ny(t,e,i){function n(t,e){return l(e.nodes,t)>=0}function o(t,n){var o=!1;return e(function(e){d(i(t,e)||[],function(t){n.records[e.name][t]&&(o=!0)})}),o}function a(t,n){n.nodes.push(t),e(function(e){d(i(t,e)||[],function(t){n.records[e.name][t]=!0})})}return function(i){var r={nodes:[],records:{}};if(e(function(t){r.records[t.name]={}}),!i)return r;a(i,r);var s;do{s=!1,t(function(t){!n(t,r)&&o(t,r)&&(a(t,r),s=!0)})}while(s);return r}}function Oy(t,e,i){var n=[1/0,-1/0];return jN(i,function(t){var i=t.getData();i&&jN(i.mapDimension(e,!0),function(t){var e=i.getApproximateExtent(t);e[0]n[1]&&(n[1]=e[1])})}),n[1]0?0:NaN);var r=i.getMax(!0);return null!=r&&"dataMax"!==r&&"function"!=typeof r?e[1]=r:o&&(e[1]=a>0?a-1:NaN),i.get("scale",!0)||(e[0]>0&&(e[0]=0),e[1]<0&&(e[1]=0)),e}function Ry(t,e){var i=t.getAxisModel(),n=t._percentWindow,o=t._valueWindow;if(n){var a=Ho(o,[0,500]);a=Math.min(a,20);var r=e||0===n[0]&&100===n[1];i.setRange(r?null:+o[0].toFixed(a),r?null:+o[1].toFixed(a))}}function zy(t){var e=t._minMaxSpan={},i=t._dataZoomModel;jN(["min","max"],function(n){e[n+"Span"]=i.get(n+"Span");var o=i.get(n+"ValueSpan");if(null!=o&&(e[n+"ValueSpan"]=o,null!=(o=t.getAxisModel().axis.scale.parse(o)))){var a=t._dataExtent;e[n+"Span"]=zo(a[0]+o,a,[0,100],!0)}})}function By(t){var e={};return KN(["start","end","startValue","endValue","throttle"],function(i){t.hasOwnProperty(i)&&(e[i]=t[i])}),e}function Vy(t,e){var i=t._rangePropMode,n=t.get("rangeMode");KN([["start","startValue"],["end","endValue"]],function(t,o){var a=null!=e[t[0]],r=null!=e[t[1]];a&&!r?i[o]="percent":!a&&r?i[o]="value":n?i[o]=n[o]:a&&(i[o]="percent")})}function Gy(t){return{x:"y",y:"x",radius:"angle",angle:"radius"}[t]}function Fy(t){return"vertical"===t?"ns-resize":"ew-resize"}function Wy(t,e){var i=Uy(t),n=e.dataZoomId,o=e.coordId;d(i,function(t,i){var a=t.dataZoomInfos;a[n]&&l(e.allCoordIds,o)<0&&(delete a[n],t.count--)}),jy(i);var a=i[o];a||((a=i[o]={coordId:o,dataZoomInfos:{},count:0}).controller=Xy(t,a),a.dispatchAction=v(Yy,t)),!a.dataZoomInfos[n]&&a.count++,a.dataZoomInfos[n]=e;var r=qy(a.dataZoomInfos);a.controller.enable(r.controlType,r.opt),a.controller.setPointerChecker(e.containsPoint),Pr(a,"dispatchAction",e.dataZoomModel.get("throttle",!0),"fixRate")}function Hy(t,e){var i=Uy(t);d(i,function(t){t.controller.dispose();var i=t.dataZoomInfos;i[e]&&(delete i[e],t.count--)}),jy(i)}function Zy(t){return t.type+"\0_"+t.id}function Uy(t){var e=t.getZr();return e[uO]||(e[uO]={})}function Xy(t,e){var i=new nc(t.getZr());return d(["pan","zoom","scrollMove"],function(t){i.on(t,function(i){var n=[];d(e.dataZoomInfos,function(o){if(i.isAvailableBehavior(o.dataZoomModel.option)){var a=(o.getRange||{})[t],r=a&&a(e.controller,i);!o.dataZoomModel.get("disabled",!0)&&r&&n.push({dataZoomId:o.dataZoomId,start:r[0],end:r[1]})}}),n.length&&e.dispatchAction(n)})}),i}function jy(t){d(t,function(e,i){e.count||(e.controller.dispose(),delete t[i])})}function Yy(t,e){t.dispatchAction({type:"dataZoom",batch:e})}function qy(t){var e,i={type_true:2,type_move:1,type_false:0,type_undefined:-1},n=!0;return d(t,function(t){var o=t.dataZoomModel,a=!o.get("disabled",!0)&&(!o.get("zoomLock",!0)||"move");i["type_"+a]>i["type_"+e]&&(e=a),n&=o.get("preventDefaultMouseMove",!0)}),{controlType:e,opt:{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!0,preventDefaultMouseMove:!!n}}}function Ky(t){return function(e,i,n,o){var a=this._range,r=a.slice(),s=e.axisModels[0];if(s){var l=t(r,s,e,i,n,o);return $L(l,r,[0,100],"all"),this._range=r,a[0]!==r[0]||a[1]!==r[1]?r:void 0}}}function $y(t,e){return t&&t.hasOwnProperty&&t.hasOwnProperty(e)}function Jy(t,e,i,n){for(var o=e.targetVisuals[n],a=lL.prepareVisualTypes(o),r={color:t.getData().getVisual("color")},s=0,l=a.length;s=0&&(r[a]=+r[a].toFixed(h)),r}function fx(t,e){var n=t.getData(),o=t.coordinateSystem;if(e&&!cx(e)&&!y(e.coord)&&o){var a=o.dimensions,r=px(e,n,o,t);if((e=i(e)).type&&ZO[e.type]&&r.baseAxis&&r.valueAxis){var s=WO(a,r.baseAxis.dim),l=WO(a,r.valueAxis.dim);e.coord=ZO[e.type](n,r.baseDataDim,r.valueDataDim,s,l),e.value=e.coord[l]}else{for(var u=[null!=e.xAxis?e.xAxis:e.radiusAxis,null!=e.yAxis?e.yAxis:e.angleAxis],h=0;h<2;h++)ZO[u[h]]&&(u[h]=yx(n,n.mapDimension(a[h]),u[h]));e.coord=u}}return e}function px(t,e,i,n){var o={};return null!=t.valueIndex||null!=t.valueDim?(o.valueDataDim=null!=t.valueIndex?e.getDimension(t.valueIndex):t.valueDim,o.valueAxis=i.getAxis(gx(n,o.valueDataDim)),o.baseAxis=i.getOtherAxis(o.valueAxis),o.baseDataDim=e.mapDimension(o.baseAxis.dim)):(o.baseAxis=n.getBaseAxis(),o.valueAxis=i.getOtherAxis(o.baseAxis),o.baseDataDim=e.mapDimension(o.baseAxis.dim),o.valueDataDim=e.mapDimension(o.valueAxis.dim)),o}function gx(t,e){var i=t.getData(),n=i.dimensions;e=i.getDimension(e);for(var o=0;o=0)return!0}function Yx(t){for(var e=t.split(/\n+/g),i=[],n=f(Xx(e.shift()).split(hE),function(t){return{name:t,data:[]}}),o=0;o=0&&!i[o][n];o--);if(o<0){var a=t.queryComponents({mainType:"dataZoom",subType:"select",id:n})[0];if(a){var r=a.getPercentRange();i[0][n]={dataZoomId:n,start:r[0],end:r[1]}}}}),i.push(e)}function t_(t){var e=n_(t),i=e[e.length-1];e.length>1&&e.pop();var n={};return cE(i,function(t,i){for(var o=e.length-1;o>=0;o--)if(t=e[o][i]){n[i]=t;break}}),n}function e_(t){t[dE]=null}function i_(t){return n_(t).length}function n_(t){var e=t[dE];return e||(e=t[dE]=[{}]),e}function o_(t,e,i){(this._brushController=new Rf(i.getZr())).on("brush",m(this._onBrush,this)).mount(),this._isZoomActive}function a_(t){var e={};return d(["xAxisIndex","yAxisIndex"],function(i){e[i]=t[i],null==e[i]&&(e[i]="all"),(!1===e[i]||"none"===e[i])&&(e[i]=[])}),e}function r_(t,e){t.setIconStatus("back",i_(e)>1?"emphasis":"normal")}function s_(t,e,i,n,o){var a=i._isZoomActive;n&&"takeGlobalCursor"===n.type&&(a="dataZoomSelect"===n.key&&n.dataZoomSelectActive),i._isZoomActive=a,t.setIconStatus("zoom",a?"emphasis":"normal");var r=new hy(a_(t.option),e,{include:["grid"]});i._brushController.setPanels(r.makePanelOpts(o,function(t){return t.xAxisDeclared&&!t.yAxisDeclared?"lineX":!t.xAxisDeclared&&t.yAxisDeclared?"lineY":"rect"})).enableBrush(!!a&&{brushType:"auto",brushStyle:{lineWidth:0,fill:"rgba(0,0,0,0.2)"}})}function l_(t){this.model=t}function u_(t){return xE(t)}function h_(){if(!bE&&SE){bE=!0;var t=SE.styleSheets;t.length<31?SE.createStyleSheet().addRule(".zrvml","behavior:url(#default#VML)"):t[0].addRule(".zrvml","behavior:url(#default#VML)")}}function c_(t){return parseInt(t,10)}function d_(t,e){h_(),this.root=t,this.storage=e;var i=document.createElement("div"),n=document.createElement("div");i.style.cssText="display:inline-block;overflow:hidden;position:relative;width:300px;height:150px;",n.style.cssText="position:absolute;left:0;top:0;",t.appendChild(i),this._vmlRoot=n,this._vmlViewport=i,this.resize();var o=e.delFromStorage,a=e.addToStorage;e.delFromStorage=function(t){o.call(e,t),t&&t.onRemove&&t.onRemove(n)},e.addToStorage=function(t){t.onAdd&&t.onAdd(n),a.call(e,t)},this._firstPaint=!0}function f_(t){return function(){Yw('In IE8.0 VML mode painter not support method "'+t+'"')}}function p_(t){return document.createElementNS(nR,t)}function g_(t){return sR(1e4*t)/1e4}function m_(t){return t-fR}function v_(t,e){var i=e?t.textFill:t.fill;return null!=i&&i!==rR}function y_(t,e){var i=e?t.textStroke:t.stroke;return null!=i&&i!==rR}function x_(t,e){e&&__(t,"transform","matrix("+aR.call(e,",")+")")}function __(t,e,i){(!i||"linear"!==i.type&&"radial"!==i.type)&&t.setAttribute(e,i)}function w_(t,e,i){t.setAttributeNS("http://www.w3.org/1999/xlink",e,i)}function b_(t,e,i,n){if(v_(e,i)){var o=i?e.textFill:e.fill;o="transparent"===o?rR:o,"none"!==t.getAttribute("clip-path")&&o===rR&&(o="rgba(0, 0, 0, 0.002)"),__(t,"fill",o),__(t,"fill-opacity",null!=e.fillOpacity?e.fillOpacity*e.opacity:e.opacity)}else __(t,"fill",rR);if(y_(e,i)){var a=i?e.textStroke:e.stroke;__(t,"stroke",a="transparent"===a?rR:a),__(t,"stroke-width",(i?e.textStrokeWidth:e.lineWidth)/(!i&&e.strokeNoScale?n.getLineScale():1)),__(t,"paint-order",i?"stroke":"fill"),__(t,"stroke-opacity",null!=e.strokeOpacity?e.strokeOpacity:e.opacity),e.lineDash?(__(t,"stroke-dasharray",e.lineDash.join(",")),__(t,"stroke-dashoffset",sR(e.lineDashOffset||0))):__(t,"stroke-dasharray",""),e.lineCap&&__(t,"stroke-linecap",e.lineCap),e.lineJoin&&__(t,"stroke-linejoin",e.lineJoin),e.miterLimit&&__(t,"stroke-miterlimit",e.miterLimit)}else __(t,"stroke",rR)}function S_(t){for(var e=[],i=t.data,n=t.len(),o=0;o=cR||!m_(g)&&(d>-hR&&d<0||d>hR)==!!p;var y=g_(s+u*uR(c)),x=g_(l+h*lR(c));m&&(d=p?cR-1e-4:1e-4-cR,v=!0,9===o&&e.push("M",y,x));var _=g_(s+u*uR(c+d)),w=g_(l+h*lR(c+d));e.push("A",g_(u),g_(h),sR(f*dR),+v,+p,_,w);break;case oR.Z:a="Z";break;case oR.R:var _=g_(i[o++]),w=g_(i[o++]),b=g_(i[o++]),S=g_(i[o++]);e.push("M",_,w,"L",_+b,w,"L",_+b,w+S,"L",_,w+S,"L",_,w)}a&&e.push(a);for(var M=0;M=11),domSupported:"undefined"!=typeof document}}(navigator.userAgent),X_={"[object Function]":1,"[object RegExp]":1,"[object Date]":1,"[object Error]":1,"[object CanvasGradient]":1,"[object CanvasPattern]":1,"[object Image]":1,"[object Canvas]":1},j_={"[object Int8Array]":1,"[object Uint8Array]":1,"[object Uint8ClampedArray]":1,"[object Int16Array]":1,"[object Uint16Array]":1,"[object Int32Array]":1,"[object Uint32Array]":1,"[object Float32Array]":1,"[object Float64Array]":1},Y_=Object.prototype.toString,q_=Array.prototype,K_=q_.forEach,$_=q_.filter,J_=q_.slice,Q_=q_.map,tw=q_.reduce,ew={},iw=function(){return ew.createCanvas()};ew.createCanvas=function(){return document.createElement("canvas")};var nw,ow="__ec_primitive__";E.prototype={constructor:E,get:function(t){return this.data.hasOwnProperty(t)?this.data[t]:null},set:function(t,e){return this.data[t]=e},each:function(t,e){void 0!==e&&(t=m(t,e));for(var i in this.data)this.data.hasOwnProperty(i)&&t(this.data[i],i)},removeKey:function(t){delete this.data[t]}};var aw=(Object.freeze||Object)({$override:e,clone:i,merge:n,mergeAll:o,extend:a,defaults:r,createCanvas:iw,getContext:s,indexOf:l,inherits:u,mixin:h,isArrayLike:c,each:d,map:f,reduce:p,filter:g,find:function(t,e,i){if(t&&e)for(var n=0,o=t.length;n3&&(n=dw.call(n,1));for(var a=e.length,r=0;r4&&(n=dw.call(n,1,n.length-1));for(var a=n[n.length-1],r=e.length,s=0;s1&&n&&n.length>1){var a=ft(n)/ft(o);!isFinite(a)&&(a=1),e.pinchScale=a;var r=pt(n);return e.pinchX=r[0],e.pinchY=r[1],{type:"pinch",target:t[0].target,event:e}}}}},xw="silent";vt.prototype.dispose=function(){};var _w=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],ww=function(t,e,i,n){fw.call(this),this.storage=t,this.painter=e,this.painterRoot=n,i=i||new vt,this.proxy=null,this._hovered={},this._lastTouchMoment,this._lastX,this._lastY,this._gestureMgr,it.call(this),this.setHandlerProxy(i)};ww.prototype={constructor:ww,setHandlerProxy:function(t){this.proxy&&this.proxy.dispose(),t&&(d(_w,function(e){t.on&&t.on(e,this[e],this)},this),t.handler=this),this.proxy=t},mousemove:function(t){var e=t.zrX,i=t.zrY,n=this._hovered,o=n.target;o&&!o.__zr&&(o=(n=this.findHover(n.x,n.y)).target);var a=this._hovered=this.findHover(e,i),r=a.target,s=this.proxy;s.setCursor&&s.setCursor(r?r.cursor:"default"),o&&r!==o&&this.dispatchToElement(n,"mouseout",t),this.dispatchToElement(a,"mousemove",t),r&&r!==o&&this.dispatchToElement(a,"mouseover",t)},mouseout:function(t){this.dispatchToElement(this._hovered,"mouseout",t);var e,i=t.toElement||t.relatedTarget;do{i=i&&i.parentNode}while(i&&9!==i.nodeType&&!(e=i===this.painterRoot));!e&&this.trigger("globalout",{event:t})},resize:function(t){this._hovered={}},dispatch:function(t,e){var i=this[t];i&&i.call(this,e)},dispose:function(){this.proxy.dispose(),this.storage=this.proxy=this.painter=null},setCursorStyle:function(t){var e=this.proxy;e.setCursor&&e.setCursor(t)},dispatchToElement:function(t,e,i){var n=(t=t||{}).target;if(!n||!n.silent){for(var o="on"+e,a=gt(e,t,i);n&&(n[o]&&(a.cancelBubble=n[o].call(n,a)),n.trigger(e,a),n=n.parent,!a.cancelBubble););a.cancelBubble||(this.trigger(e,a),this.painter&&this.painter.eachOtherLayer(function(t){"function"==typeof t[o]&&t[o].call(t,a),t.trigger&&t.trigger(e,a)}))}},findHover:function(t,e,i){for(var n=this.storage.getDisplayList(),o={x:t,y:e},a=n.length-1;a>=0;a--){var r;if(n[a]!==i&&!n[a].ignore&&(r=yt(n[a],t,e))&&(!o.topTarget&&(o.topTarget=n[a]),r!==xw)){o.target=n[a];break}}return o},processGesture:function(t,e){this._gestureMgr||(this._gestureMgr=new vw);var i=this._gestureMgr;"start"===e&&i.clear();var n=i.recognize(t,this.findHover(t.zrX,t.zrY,null).target,this.proxy.dom);if("end"===e&&i.clear(),n){var o=n.type;t.gestureEvent=o,this.dispatchToElement({target:n.target},o,n.event)}}},d(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],function(t){ww.prototype[t]=function(e){var i=this.findHover(e.zrX,e.zrY),n=i.target;if("mousedown"===t)this._downEl=n,this._downPoint=[e.zrX,e.zrY],this._upEl=n;else if("mouseup"===t)this._upEl=n;else if("click"===t){if(this._downEl!==this._upEl||!this._downPoint||uw(this._downPoint,[e.zrX,e.zrY])>4)return;this._downPoint=null}this.dispatchToElement(i,t,e)}}),h(ww,fw),h(ww,it);var bw="undefined"==typeof Float32Array?Array:Float32Array,Sw=(Object.freeze||Object)({create:xt,identity:_t,copy:wt,mul:bt,translate:St,rotate:Mt,scale:It,invert:Tt,clone:At}),Mw=_t,Iw=5e-5,Tw=function(t){(t=t||{}).position||(this.position=[0,0]),null==t.rotation&&(this.rotation=0),t.scale||(this.scale=[1,1]),this.origin=this.origin||null},Aw=Tw.prototype;Aw.transform=null,Aw.needLocalTransform=function(){return Dt(this.rotation)||Dt(this.position[0])||Dt(this.position[1])||Dt(this.scale[0]-1)||Dt(this.scale[1]-1)};var Dw=[];Aw.updateTransform=function(){var t=this.parent,e=t&&t.transform,i=this.needLocalTransform(),n=this.transform;if(i||e){n=n||xt(),i?this.getLocalTransform(n):Mw(n),e&&(i?bt(n,t.transform,n):wt(n,t.transform)),this.transform=n;var o=this.globalScaleRatio;if(null!=o&&1!==o){this.getGlobalScale(Dw);var a=Dw[0]<0?-1:1,r=Dw[1]<0?-1:1,s=((Dw[0]-a)*o+a)/Dw[0]||0,l=((Dw[1]-r)*o+r)/Dw[1]||0;n[0]*=s,n[1]*=s,n[2]*=l,n[3]*=l}this.invTransform=this.invTransform||xt(),Tt(this.invTransform,n)}else n&&Mw(n)},Aw.getLocalTransform=function(t){return Tw.getLocalTransform(this,t)},Aw.setTransform=function(t){var e=this.transform,i=t.dpr||1;e?t.setTransform(i*e[0],i*e[1],i*e[2],i*e[3],i*e[4],i*e[5]):t.setTransform(i,0,0,i,0,0)},Aw.restoreTransform=function(t){var e=t.dpr||1;t.setTransform(e,0,0,e,0,0)};var Cw=[],Lw=xt();Aw.setLocalTransform=function(t){if(t){var e=t[0]*t[0]+t[1]*t[1],i=t[2]*t[2]+t[3]*t[3],n=this.position,o=this.scale;Dt(e-1)&&(e=Math.sqrt(e)),Dt(i-1)&&(i=Math.sqrt(i)),t[0]<0&&(e=-e),t[3]<0&&(i=-i),n[0]=t[4],n[1]=t[5],o[0]=e,o[1]=i,this.rotation=Math.atan2(-t[1]/i,t[0]/e)}},Aw.decomposeTransform=function(){if(this.transform){var t=this.parent,e=this.transform;t&&t.transform&&(bt(Cw,t.invTransform,e),e=Cw);var i=this.origin;i&&(i[0]||i[1])&&(Lw[4]=i[0],Lw[5]=i[1],bt(Cw,e,Lw),Cw[4]-=i[0],Cw[5]-=i[1],e=Cw),this.setLocalTransform(e)}},Aw.getGlobalScale=function(t){var e=this.transform;return t=t||[],e?(t[0]=Math.sqrt(e[0]*e[0]+e[1]*e[1]),t[1]=Math.sqrt(e[2]*e[2]+e[3]*e[3]),e[0]<0&&(t[0]=-t[0]),e[3]<0&&(t[1]=-t[1]),t):(t[0]=1,t[1]=1,t)},Aw.transformCoordToLocal=function(t,e){var i=[t,e],n=this.invTransform;return n&&Q(i,i,n),i},Aw.transformCoordToGlobal=function(t,e){var i=[t,e],n=this.transform;return n&&Q(i,i,n),i},Tw.getLocalTransform=function(t,e){Mw(e=e||[]);var i=t.origin,n=t.scale||[1,1],o=t.rotation||0,a=t.position||[0,0];return i&&(e[4]-=i[0],e[5]-=i[1]),It(e,e,n),o&&Mt(e,e,o),i&&(e[4]+=i[0],e[5]+=i[1]),e[4]+=a[0],e[5]+=a[1],e};var kw={linear:function(t){return t},quadraticIn:function(t){return t*t},quadraticOut:function(t){return t*(2-t)},quadraticInOut:function(t){return(t*=2)<1?.5*t*t:-.5*(--t*(t-2)-1)},cubicIn:function(t){return t*t*t},cubicOut:function(t){return--t*t*t+1},cubicInOut:function(t){return(t*=2)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},quarticIn:function(t){return t*t*t*t},quarticOut:function(t){return 1- --t*t*t*t},quarticInOut:function(t){return(t*=2)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},quinticIn:function(t){return t*t*t*t*t},quinticOut:function(t){return--t*t*t*t*t+1},quinticInOut:function(t){return(t*=2)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},sinusoidalIn:function(t){return 1-Math.cos(t*Math.PI/2)},sinusoidalOut:function(t){return Math.sin(t*Math.PI/2)},sinusoidalInOut:function(t){return.5*(1-Math.cos(Math.PI*t))},exponentialIn:function(t){return 0===t?0:Math.pow(1024,t-1)},exponentialOut:function(t){return 1===t?1:1-Math.pow(2,-10*t)},exponentialInOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?.5*Math.pow(1024,t-1):.5*(2-Math.pow(2,-10*(t-1)))},circularIn:function(t){return 1-Math.sqrt(1-t*t)},circularOut:function(t){return Math.sqrt(1- --t*t)},circularInOut:function(t){return(t*=2)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},elasticIn:function(t){var e,i=.1;return 0===t?0:1===t?1:(!i||i<1?(i=1,e=.1):e=.4*Math.asin(1/i)/(2*Math.PI),-i*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/.4))},elasticOut:function(t){var e,i=.1;return 0===t?0:1===t?1:(!i||i<1?(i=1,e=.1):e=.4*Math.asin(1/i)/(2*Math.PI),i*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/.4)+1)},elasticInOut:function(t){var e,i=.1;return 0===t?0:1===t?1:(!i||i<1?(i=1,e=.1):e=.4*Math.asin(1/i)/(2*Math.PI),(t*=2)<1?i*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/.4)*-.5:i*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/.4)*.5+1)},backIn:function(t){var e=1.70158;return t*t*((e+1)*t-e)},backOut:function(t){var e=1.70158;return--t*t*((e+1)*t+e)+1},backInOut:function(t){var e=2.5949095;return(t*=2)<1?t*t*((e+1)*t-e)*.5:.5*((t-=2)*t*((e+1)*t+e)+2)},bounceIn:function(t){return 1-kw.bounceOut(1-t)},bounceOut:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},bounceInOut:function(t){return t<.5?.5*kw.bounceIn(2*t):.5*kw.bounceOut(2*t-1)+.5}};Ct.prototype={constructor:Ct,step:function(t,e){if(this._initialized||(this._startTime=t+this._delay,this._initialized=!0),this._paused)this._pausedTime+=e;else{var i=(t-this._startTime-this._pausedTime)/this._life;if(!(i<0)){i=Math.min(i,1);var n=this.easing,o="string"==typeof n?kw[n]:n,a="function"==typeof o?o(i):i;return this.fire("frame",a),1===i?this.loop?(this.restart(t),"restart"):(this._needsRemove=!0,"destroy"):null}}},restart:function(t){var e=(t-this._startTime-this._pausedTime)%this._life;this._startTime=t-e+this.gap,this._pausedTime=0,this._needsRemove=!1},fire:function(t,e){this[t="on"+t]&&this[t](this._target,e)},pause:function(){this._paused=!0},resume:function(){this._paused=!1}};var Pw=function(){this.head=null,this.tail=null,this._len=0},Nw=Pw.prototype;Nw.insert=function(t){var e=new Ow(t);return this.insertEntry(e),e},Nw.insertEntry=function(t){this.head?(this.tail.next=t,t.prev=this.tail,t.next=null,this.tail=t):this.head=this.tail=t,this._len++},Nw.remove=function(t){var e=t.prev,i=t.next;e?e.next=i:this.head=i,i?i.prev=e:this.tail=e,t.next=t.prev=null,this._len--},Nw.len=function(){return this._len},Nw.clear=function(){this.head=this.tail=null,this._len=0};var Ow=function(t){this.value=t,this.next,this.prev},Ew=function(t){this._list=new Pw,this._map={},this._maxSize=t||10,this._lastRemovedEntry=null},Rw=Ew.prototype;Rw.put=function(t,e){var i=this._list,n=this._map,o=null;if(null==n[t]){var a=i.len(),r=this._lastRemovedEntry;if(a>=this._maxSize&&a>0){var s=i.head;i.remove(s),delete n[s.key],o=s.value,this._lastRemovedEntry=s}r?r.value=e:r=new Ow(e),r.key=t,i.insertEntry(r),n[t]=r}return o},Rw.get=function(t){var e=this._map[t],i=this._list;if(null!=e)return e!==i.tail&&(i.remove(e),i.insertEntry(e)),e.value},Rw.clear=function(){this._list.clear(),this._map={}};var zw={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]},Bw=new Ew(20),Vw=null,Gw=Ut,Fw=Xt,Ww=(Object.freeze||Object)({parse:Gt,lift:Ht,toHex:Zt,fastLerp:Ut,fastMapToColor:Gw,lerp:Xt,mapToColor:Fw,modifyHSL:jt,modifyAlpha:Yt,stringify:qt}),Hw=Array.prototype.slice,Zw=function(t,e,i,n){this._tracks={},this._target=t,this._loop=e||!1,this._getter=i||Kt,this._setter=n||$t,this._clipCount=0,this._delay=0,this._doneList=[],this._onframeList=[],this._clipList=[]};Zw.prototype={when:function(t,e){var i=this._tracks;for(var n in e)if(e.hasOwnProperty(n)){if(!i[n]){i[n]=[];var o=this._getter(this._target,n);if(null==o)continue;0!==t&&i[n].push({time:0,value:ae(o)})}i[n].push({time:t,value:e[n]})}return this},during:function(t){return this._onframeList.push(t),this},pause:function(){for(var t=0;t=i.x&&t<=i.x+i.width&&e>=i.y&&e<=i.y+i.height},clone:function(){return new de(this.x,this.y,this.width,this.height)},copy:function(t){this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height},plain:function(){return{x:this.x,y:this.y,width:this.width,height:this.height}}},de.create=function(t){return new de(t.x,t.y,t.width,t.height)};var tb=function(t){t=t||{},Kw.call(this,t);for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);this._children=[],this.__storage=null,this.__dirty=!0};tb.prototype={constructor:tb,isGroup:!0,type:"group",silent:!1,children:function(){return this._children.slice()},childAt:function(t){return this._children[t]},childOfName:function(t){for(var e=this._children,i=0;i=0&&(i.splice(n,0,t),this._doAdd(t))}return this},_doAdd:function(t){t.parent&&t.parent.remove(t),t.parent=this;var e=this.__storage,i=this.__zr;e&&e!==t.__storage&&(e.addToStorage(t),t instanceof tb&&t.addChildrenToStorage(e)),i&&i.refresh()},remove:function(t){var e=this.__zr,i=this.__storage,n=this._children,o=l(n,t);return o<0?this:(n.splice(o,1),t.parent=null,i&&(i.delFromStorage(t),t instanceof tb&&t.delChildrenFromStorage(i)),e&&e.refresh(),this)},removeAll:function(){var t,e,i=this._children,n=this.__storage;for(e=0;e=0&&(this.delFromStorage(t),this._roots.splice(o,1),t instanceof tb&&t.delChildrenFromStorage(this))}},addToStorage:function(t){return t&&(t.__storage=this,t.dirty(!1)),this},delFromStorage:function(t){return t&&(t.__storage=null),this},dispose:function(){this._renderList=this._roots=null},displayableSortFunc:we};var ob={shadowBlur:1,shadowOffsetX:1,shadowOffsetY:1,textShadowBlur:1,textShadowOffsetX:1,textShadowOffsetY:1,textBoxShadowBlur:1,textBoxShadowOffsetX:1,textBoxShadowOffsetY:1},ab=function(t,e,i){return ob.hasOwnProperty(e)?i*=t.dpr:i},rb={NONE:0,STYLE_BIND:1,PLAIN_TEXT:2},sb=9,lb=[["shadowBlur",0],["shadowOffsetX",0],["shadowOffsetY",0],["shadowColor","#000"],["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]],ub=function(t){this.extendFrom(t,!1)};ub.prototype={constructor:ub,fill:"#000",stroke:null,opacity:1,fillOpacity:null,strokeOpacity:null,lineDash:null,lineDashOffset:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,lineWidth:1,strokeNoScale:!1,text:null,font:null,textFont:null,fontStyle:null,fontWeight:null,fontSize:null,fontFamily:null,textTag:null,textFill:"#000",textStroke:null,textWidth:null,textHeight:null,textStrokeWidth:0,textLineHeight:null,textPosition:"inside",textRect:null,textOffset:null,textAlign:null,textVerticalAlign:null,textDistance:5,textShadowColor:"transparent",textShadowBlur:0,textShadowOffsetX:0,textShadowOffsetY:0,textBoxShadowColor:"transparent",textBoxShadowBlur:0,textBoxShadowOffsetX:0,textBoxShadowOffsetY:0,transformText:!1,textRotation:0,textOrigin:null,textBackgroundColor:null,textBorderColor:null,textBorderWidth:0,textBorderRadius:0,textPadding:null,rich:null,truncate:null,blend:null,bind:function(t,e,i){var n=this,o=i&&i.style,a=!o||t.__attrCachedBy!==rb.STYLE_BIND;t.__attrCachedBy=rb.STYLE_BIND;for(var r=0;r0},extendFrom:function(t,e){if(t)for(var i in t)!t.hasOwnProperty(i)||!0!==e&&(!1===e?this.hasOwnProperty(i):null==t[i])||(this[i]=t[i])},set:function(t,e){"string"==typeof t?this[t]=e:this.extendFrom(t,!0)},clone:function(){var t=new this.constructor;return t.extendFrom(this,!0),t},getGradient:function(t,e,i){for(var n=("radial"===e.type?Se:be)(t,e,i),o=e.colorStops,a=0;a=0&&i.splice(n,1),t.__hoverMir=null},clearHover:function(t){for(var e=this._hoverElements,i=0;i15)break}s.__drawIndex=m,s.__drawIndex0&&t>n[0]){for(r=0;rt);r++);a=i[n[r]]}if(n.splice(r+1,0,t),i[t]=e,!e.virtual)if(a){var l=a.dom;l.nextSibling?s.insertBefore(e.dom,l.nextSibling):s.appendChild(e.dom)}else s.firstChild?s.insertBefore(e.dom,s.firstChild):s.appendChild(e.dom)}else Yw("Layer of zlevel "+t+" is not valid")},eachLayer:function(t,e){var i,n,o=this._zlevelList;for(n=0;n0?.01:0),this._needsManuallyCompositing),a.__builtin__||Yw("ZLevel "+s+" has been used by unkown layer "+a.id),a!==i&&(a.__used=!0,a.__startIndex!==o&&(a.__dirty=!0),a.__startIndex=o,a.incremental?a.__drawIndex=-1:a.__drawIndex=o,e(o),i=a),r.__dirty&&(a.__dirty=!0,a.incremental&&a.__drawIndex<0&&(a.__drawIndex=o))}e(o),this.eachBuiltinLayer(function(t,e){!t.__used&&t.getElementCount()>0&&(t.__dirty=!0,t.__startIndex=t.__endIndex=t.__drawIndex=0),t.__dirty&&t.__drawIndex<0&&(t.__drawIndex=t.__startIndex)})},clear:function(){return this.eachBuiltinLayer(this._clearLayer),this},_clearLayer:function(t){t.clear()},setBackgroundColor:function(t){this._backgroundColor=t},configLayer:function(t,e){if(e){var i=this._layerConfig;i[t]?n(i[t],e,!0):i[t]=e;for(var o=0;o=0&&this._clips.splice(e,1)},removeAnimator:function(t){for(var e=t.getClips(),i=0;i=0||n&&l(n,r)<0)){var s=e.getShallow(r);null!=s&&(o[t[a][0]]=s)}}return o}},tS=Qb([["lineWidth","width"],["stroke","color"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]),eS={getLineStyle:function(t){var e=tS(this,t),i=this.getLineDash(e.lineWidth);return i&&(e.lineDash=i),e},getLineDash:function(t){null==t&&(t=1);var e=this.get("type"),i=Math.max(t,2),n=4*t;return"solid"===e||null==e?null:"dashed"===e?[n,n]:[i,i]}},iS=Qb([["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]]),nS={getAreaStyle:function(t,e){return iS(this,t,e)}},oS=Math.pow,aS=Math.sqrt,rS=1e-8,sS=1e-4,lS=aS(3),uS=1/3,hS=V(),cS=V(),dS=V(),fS=Math.min,pS=Math.max,gS=Math.sin,mS=Math.cos,vS=2*Math.PI,yS=V(),xS=V(),_S=V(),wS=[],bS=[],SS={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},MS=[],IS=[],TS=[],AS=[],DS=Math.min,CS=Math.max,LS=Math.cos,kS=Math.sin,PS=Math.sqrt,NS=Math.abs,OS="undefined"!=typeof Float32Array,ES=function(t){this._saveData=!t,this._saveData&&(this.data=[]),this._ctx=null};ES.prototype={constructor:ES,_xi:0,_yi:0,_x0:0,_y0:0,_ux:0,_uy:0,_len:0,_lineDash:null,_dashOffset:0,_dashIdx:0,_dashSum:0,setScale:function(t,e){this._ux=NS(1/Xw/t)||0,this._uy=NS(1/Xw/e)||0},getContext:function(){return this._ctx},beginPath:function(t){return this._ctx=t,t&&t.beginPath(),t&&(this.dpr=t.dpr),this._saveData&&(this._len=0),this._lineDash&&(this._lineDash=null,this._dashOffset=0),this},moveTo:function(t,e){return this.addData(SS.M,t,e),this._ctx&&this._ctx.moveTo(t,e),this._x0=t,this._y0=e,this._xi=t,this._yi=e,this},lineTo:function(t,e){var i=NS(t-this._xi)>this._ux||NS(e-this._yi)>this._uy||this._len<5;return this.addData(SS.L,t,e),this._ctx&&i&&(this._needsDash()?this._dashedLineTo(t,e):this._ctx.lineTo(t,e)),i&&(this._xi=t,this._yi=e),this},bezierCurveTo:function(t,e,i,n,o,a){return this.addData(SS.C,t,e,i,n,o,a),this._ctx&&(this._needsDash()?this._dashedBezierTo(t,e,i,n,o,a):this._ctx.bezierCurveTo(t,e,i,n,o,a)),this._xi=o,this._yi=a,this},quadraticCurveTo:function(t,e,i,n){return this.addData(SS.Q,t,e,i,n),this._ctx&&(this._needsDash()?this._dashedQuadraticTo(t,e,i,n):this._ctx.quadraticCurveTo(t,e,i,n)),this._xi=i,this._yi=n,this},arc:function(t,e,i,n,o,a){return this.addData(SS.A,t,e,i,i,n,o-n,0,a?0:1),this._ctx&&this._ctx.arc(t,e,i,n,o,a),this._xi=LS(o)*i+t,this._yi=kS(o)*i+e,this},arcTo:function(t,e,i,n,o){return this._ctx&&this._ctx.arcTo(t,e,i,n,o),this},rect:function(t,e,i,n){return this._ctx&&this._ctx.rect(t,e,i,n),this.addData(SS.R,t,e,i,n),this},closePath:function(){this.addData(SS.Z);var t=this._ctx,e=this._x0,i=this._y0;return t&&(this._needsDash()&&this._dashedLineTo(e,i),t.closePath()),this._xi=e,this._yi=i,this},fill:function(t){t&&t.fill(),this.toStatic()},stroke:function(t){t&&t.stroke(),this.toStatic()},setLineDash:function(t){if(t instanceof Array){this._lineDash=t,this._dashIdx=0;for(var e=0,i=0;ie.length&&(this._expandData(),e=this.data);for(var i=0;i0&&f<=t||h<0&&f>=t||0===h&&(c>0&&p<=e||c<0&&p>=e);)f+=h*(i=r[n=this._dashIdx]),p+=c*i,this._dashIdx=(n+1)%g,h>0&&fl||c>0&&pu||s[n%2?"moveTo":"lineTo"](h>=0?DS(f,t):CS(f,t),c>=0?DS(p,e):CS(p,e));h=f-t,c=p-e,this._dashOffset=-PS(h*h+c*c)},_dashedBezierTo:function(t,e,i,n,o,a){var r,s,l,u,h,c=this._dashSum,d=this._dashOffset,f=this._lineDash,p=this._ctx,g=this._xi,m=this._yi,v=Qi,y=0,x=this._dashIdx,_=f.length,w=0;for(d<0&&(d=c+d),d%=c,r=0;r<1;r+=.1)s=v(g,t,i,o,r+.1)-v(g,t,i,o,r),l=v(m,e,n,a,r+.1)-v(m,e,n,a,r),y+=PS(s*s+l*l);for(;x<_&&!((w+=f[x])>d);x++);for(r=(w-d)/y;r<=1;)u=v(g,t,i,o,r),h=v(m,e,n,a,r),x%2?p.moveTo(u,h):p.lineTo(u,h),r+=f[x]/y,x=(x+1)%_;x%2!=0&&p.lineTo(o,a),s=o-u,l=a-h,this._dashOffset=-PS(s*s+l*l)},_dashedQuadraticTo:function(t,e,i,n){var o=i,a=n;i=(i+2*t)/3,n=(n+2*e)/3,t=(this._xi+2*t)/3,e=(this._yi+2*e)/3,this._dashedBezierTo(t,e,i,n,o,a)},toStatic:function(){var t=this.data;t instanceof Array&&(t.length=this._len,OS&&(this.data=new Float32Array(t)))},getBoundingRect:function(){MS[0]=MS[1]=TS[0]=TS[1]=Number.MAX_VALUE,IS[0]=IS[1]=AS[0]=AS[1]=-Number.MAX_VALUE;for(var t=this.data,e=0,i=0,n=0,o=0,a=0;al||NS(r-o)>u||c===h-1)&&(t.lineTo(a,r),n=a,o=r);break;case SS.C:t.bezierCurveTo(s[c++],s[c++],s[c++],s[c++],s[c++],s[c++]),n=s[c-2],o=s[c-1];break;case SS.Q:t.quadraticCurveTo(s[c++],s[c++],s[c++],s[c++]),n=s[c-2],o=s[c-1];break;case SS.A:var f=s[c++],p=s[c++],g=s[c++],m=s[c++],v=s[c++],y=s[c++],x=s[c++],_=s[c++],w=g>m?g:m,b=g>m?1:g/m,S=g>m?m/g:1,M=v+y;Math.abs(g-m)>.001?(t.translate(f,p),t.rotate(x),t.scale(b,S),t.arc(0,0,w,v,M,1-_),t.scale(1/b,1/S),t.rotate(-x),t.translate(-f,-p)):t.arc(f,p,w,v,M,1-_),1===c&&(e=LS(v)*g+f,i=kS(v)*m+p),n=LS(M)*g+f,o=kS(M)*m+p;break;case SS.R:e=n=s[c],i=o=s[c+1],t.rect(s[c++],s[c++],s[c++],s[c++]);break;case SS.Z:t.closePath(),n=e,o=i}}}},ES.CMD=SS;var RS=2*Math.PI,zS=2*Math.PI,BS=ES.CMD,VS=2*Math.PI,GS=1e-4,FS=[-1,-1,-1],WS=[-1,-1],HS=fb.prototype.getCanvasPattern,ZS=Math.abs,US=new ES(!0);kn.prototype={constructor:kn,type:"path",__dirtyPath:!0,strokeContainThreshold:5,subPixelOptimize:!1,brush:function(t,e){var i=this.style,n=this.path||US,o=i.hasStroke(),a=i.hasFill(),r=i.fill,s=i.stroke,l=a&&!!r.colorStops,u=o&&!!s.colorStops,h=a&&!!r.image,c=o&&!!s.image;if(i.bind(t,this,e),this.setTransform(t),this.__dirty){var d;l&&(d=d||this.getBoundingRect(),this._fillGradient=i.getGradient(t,r,d)),u&&(d=d||this.getBoundingRect(),this._strokeGradient=i.getGradient(t,s,d))}l?t.fillStyle=this._fillGradient:h&&(t.fillStyle=HS.call(r,t)),u?t.strokeStyle=this._strokeGradient:c&&(t.strokeStyle=HS.call(s,t));var f=i.lineDash,p=i.lineDashOffset,g=!!t.setLineDash,m=this.getGlobalScale();if(n.setScale(m[0],m[1]),this.__dirtyPath||f&&!g&&o?(n.beginPath(t),f&&!g&&(n.setLineDash(f),n.setLineDashOffset(p)),this.buildPath(n,this.shape,!1),this.path&&(this.__dirtyPath=!1)):(t.beginPath(),this.path.rebuildPath(t)),a)if(null!=i.fillOpacity){v=t.globalAlpha;t.globalAlpha=i.fillOpacity*i.opacity,n.fill(t),t.globalAlpha=v}else n.fill(t);if(f&&g&&(t.setLineDash(f),t.lineDashOffset=p),o)if(null!=i.strokeOpacity){var v=t.globalAlpha;t.globalAlpha=i.strokeOpacity*i.opacity,n.stroke(t),t.globalAlpha=v}else n.stroke(t);f&&g&&t.setLineDash([]),null!=i.text&&(this.restoreTransform(t),this.drawRectText(t,this.getBoundingRect()))},buildPath:function(t,e,i){},createPathProxy:function(){this.path=new ES},getBoundingRect:function(){var t=this._rect,e=this.style,i=!t;if(i){var n=this.path;n||(n=this.path=new ES),this.__dirtyPath&&(n.beginPath(),this.buildPath(n,this.shape,!1)),t=n.getBoundingRect()}if(this._rect=t,e.hasStroke()){var o=this._rectWithStroke||(this._rectWithStroke=t.clone());if(this.__dirty||i){o.copy(t);var a=e.lineWidth,r=e.strokeNoScale?this.getLineScale():1;e.hasFill()||(a=Math.max(a,this.strokeContainThreshold||4)),r>1e-10&&(o.width+=a/r,o.height+=a/r,o.x-=a/r/2,o.y-=a/r/2)}return o}return t},contain:function(t,e){var i=this.transformCoordToLocal(t,e),n=this.getBoundingRect(),o=this.style;if(t=i[0],e=i[1],n.contain(t,e)){var a=this.path.data;if(o.hasStroke()){var r=o.lineWidth,s=o.strokeNoScale?this.getLineScale():1;if(s>1e-10&&(o.hasFill()||(r=Math.max(r,this.strokeContainThreshold)),Ln(a,r/s,t,e)))return!0}if(o.hasFill())return Cn(a,t,e)}return!1},dirty:function(t){null==t&&(t=!0),t&&(this.__dirtyPath=t,this._rect=null),this.__dirty=this.__dirtyText=!0,this.__zr&&this.__zr.refresh(),this.__clipTarget&&this.__clipTarget.dirty()},animateShape:function(t){return this.animate("shape",t)},attrKV:function(t,e){"shape"===t?(this.setShape(e),this.__dirtyPath=!0,this._rect=null):di.prototype.attrKV.call(this,t,e)},setShape:function(t,e){var i=this.shape;if(i){if(w(t))for(var n in t)t.hasOwnProperty(n)&&(i[n]=t[n]);else i[t]=e;this.dirty(!0)}return this},getLineScale:function(){var t=this.transform;return t&&ZS(t[0]-1)>1e-10&&ZS(t[3]-1)>1e-10?Math.sqrt(ZS(t[0]*t[3]-t[2]*t[1])):1}},kn.extend=function(t){var e=function(e){kn.call(this,e),t.style&&this.style.extendFrom(t.style,!1);var i=t.shape;if(i){this.shape=this.shape||{};var n=this.shape;for(var o in i)!n.hasOwnProperty(o)&&i.hasOwnProperty(o)&&(n[o]=i[o])}t.init&&t.init.call(this,e)};u(e,kn);for(var i in t)"style"!==i&&"shape"!==i&&(e.prototype[i]=t[i]);return e},u(kn,di);var XS=ES.CMD,jS=[[],[],[]],YS=Math.sqrt,qS=Math.atan2,KS=function(t,e){var i,n,o,a,r,s,l=t.data,u=XS.M,h=XS.C,c=XS.L,d=XS.R,f=XS.A,p=XS.Q;for(o=0,a=0;o=11?function(){var e,i=this.__clipPaths,n=this.style;if(i)for(var o=0;oi-2?i-1:c+1],u=t[c>i-3?i-1:c+2]);var p=d*d,g=d*p;n.push([zn(s[0],f[0],l[0],u[0],d,p,g),zn(s[1],f[1],l[1],u[1],d,p,g)])}return n},fM=function(t,e,i,n){var o,a,r,s,l=[],u=[],h=[],c=[];if(n){r=[1/0,1/0],s=[-1/0,-1/0];for(var d=0,f=t.length;d=i&&a>=o)return{x:i,y:o,width:n-i,height:a-o}},createIcon:ko,Group:tb,Image:fi,Text:rM,Circle:sM,Sector:hM,Ring:cM,Polygon:pM,Polyline:gM,Rect:yM,Line:_M,BezierCurve:bM,Arc:SM,IncrementalDisplayable:Hn,CompoundPath:MM,LinearGradient:TM,RadialGradient:AM,BoundingRect:de}),BM=["textStyle","color"],VM={getTextColor:function(t){var e=this.ecModel;return this.getShallow("color")||(!t&&e?e.get(BM):null)},getFont:function(){return bo({fontStyle:this.getShallow("fontStyle"),fontWeight:this.getShallow("fontWeight"),fontSize:this.getShallow("fontSize"),fontFamily:this.getShallow("fontFamily")},this.ecModel)},getTextRect:function(t){return ke(t,this.getFont(),this.getShallow("align"),this.getShallow("verticalAlign")||this.getShallow("baseline"),this.getShallow("padding"),this.getShallow("rich"),this.getShallow("truncateText"))}},GM=Qb([["fill","color"],["stroke","borderColor"],["lineWidth","borderWidth"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"],["textPosition"],["textAlign"]]),FM={getItemStyle:function(t,e){var i=GM(this,t,e),n=this.getBorderLineDash();return n&&(i.lineDash=n),i},getBorderLineDash:function(){var t=this.get("borderType");return"solid"===t||null==t?null:"dashed"===t?[5,5]:[1,1]}},WM=h,HM=Bi();Po.prototype={constructor:Po,init:null,mergeOption:function(t){n(this.option,t,!0)},get:function(t,e){return null==t?this.option:No(this.option,this.parsePath(t),!e&&Oo(this,t))},getShallow:function(t,e){var i=this.option,n=null==i?i:i[t],o=!e&&Oo(this,t);return null==n&&o&&(n=o.getShallow(t)),n},getModel:function(t,e){var i,n=null==t?this.option:No(this.option,t=this.parsePath(t));return e=e||(i=Oo(this,t))&&i.getModel(t),new Po(n,e,this.ecModel)},isEmpty:function(){return null==this.option},restoreData:function(){},clone:function(){return new(0,this.constructor)(i(this.option))},setReadOnly:function(t){},parsePath:function(t){return"string"==typeof t&&(t=t.split(".")),t},customizeGetParent:function(t){HM(this).getParent=t},isAnimationEnabled:function(){if(!U_.node){if(null!=this.option.animation)return!!this.option.animation;if(this.parentModel)return this.parentModel.isAnimationEnabled()}}},Xi(Po),ji(Po),WM(Po,eS),WM(Po,nS),WM(Po,VM),WM(Po,FM);var ZM=0,UM=1e-4,XM=9007199254740991,jM=/^(?:(\d{4})(?:[-\/](\d{1,2})(?:[-\/](\d{1,2})(?:[T ](\d{1,2})(?::(\d\d)(?::(\d\d)(?:[.,](\d+))?)?)?(Z|[\+\-]\d\d:?\d\d)?)?)?)?)?$/,YM=(Object.freeze||Object)({linearMap:zo,parsePercent:Bo,round:Vo,asc:Go,getPrecision:Fo,getPrecisionSafe:Wo,getPixelPrecision:Ho,getPercentWithPrecision:Zo,MAX_SAFE_INTEGER:XM,remRadian:Uo,isRadianAroundZero:Xo,parseDate:jo,quantity:Yo,nice:Ko,quantile:function(t,e){var i=(t.length-1)*e+1,n=Math.floor(i),o=+t[n-1],a=i-n;return a?o+a*(t[n]-o):o},reformIntervals:$o,isNumeric:Jo}),qM=L,KM=/([&<>"'])/g,$M={"&":"&","<":"<",">":">",'"':""","'":"'"},JM=["a","b","c","d","e","f","g"],QM=function(t,e){return"{"+t+(null==e?"":e)+"}"},tI=ze,eI=ke,iI=(Object.freeze||Object)({addCommas:Qo,toCamelCase:ta,normalizeCssArray:qM,encodeHTML:ea,formatTpl:ia,formatTplSimple:na,getTooltipMarker:oa,formatTime:ra,capitalFirst:sa,truncateText:tI,getTextRect:eI}),nI=d,oI=["left","right","top","bottom","width","height"],aI=[["width","left","right"],["height","top","bottom"]],rI=la,sI=(v(la,"vertical"),v(la,"horizontal"),Bi()),lI=Po.extend({type:"component",id:"",name:"",mainType:"",subType:"",componentIndex:0,defaultOption:null,ecModel:null,dependentModels:[],uid:null,layoutMode:null,$constructor:function(t,e,i,n){Po.call(this,t,e,i,n),this.uid=Eo("ec_cpt_model")},init:function(t,e,i,n){this.mergeDefaultAndTheme(t,i)},mergeDefaultAndTheme:function(t,e){var i=this.layoutMode,o=i?pa(t):{};n(t,e.getTheme().get(this.mainType)),n(t,this.getDefaultOption()),i&&fa(t,o,i)},mergeOption:function(t,e){n(this.option,t,!0);var i=this.layoutMode;i&&fa(this.option,t,i)},optionUpdated:function(t,e){},getDefaultOption:function(){var t=sI(this);if(!t.defaultOption){for(var e=[],i=this.constructor;i;){var o=i.prototype.defaultOption;o&&e.push(o),i=i.superClass}for(var a={},r=e.length-1;r>=0;r--)a=n(a,e[r],!0);t.defaultOption=a}return t.defaultOption},getReferringComponents:function(t){return this.ecModel.queryComponents({mainType:t,index:this.get(t+"Index",!0),id:this.get(t+"Id",!0)})}});Ki(lI,{registerWhenExtend:!0}),function(t){var e={};t.registerSubTypeDefaulter=function(t,i){t=Zi(t),e[t.main]=i},t.determineSubType=function(i,n){var o=n.type;if(!o){var a=Zi(i).main;t.hasSubTypes(i)&&e[a]&&(o=e[a](n))}return o}}(lI),function(t,e){function i(t){var i={},a=[];return d(t,function(r){var s=n(i,r),u=o(s.originalDeps=e(r),t);s.entryCount=u.length,0===s.entryCount&&a.push(r),d(u,function(t){l(s.predecessor,t)<0&&s.predecessor.push(t);var e=n(i,t);l(e.successor,t)<0&&e.successor.push(r)})}),{graph:i,noEntryList:a}}function n(t,e){return t[e]||(t[e]={predecessor:[],successor:[]}),t[e]}function o(t,e){var i=[];return d(t,function(t){l(e,t)>=0&&i.push(t)}),i}t.topologicalTravel=function(t,e,n,o){function a(t){s[t].entryCount--,0===s[t].entryCount&&l.push(t)}if(t.length){var r=i(e),s=r.graph,l=r.noEntryList,u={};for(d(t,function(t){u[t]=!0});l.length;){var h=l.pop(),c=s[h],f=!!u[h];f&&(n.call(o,h,c.originalDeps.slice()),delete u[h]),d(c.successor,f?function(t){u[t]=!0,a(t)}:a)}d(u,function(){throw new Error("Circle dependency may exists")})}}}(lI,function(t){var e=[];return d(lI.getClassesByMainType(t),function(t){e=e.concat(t.prototype.dependencies||[])}),e=f(e,function(t){return Zi(t).main}),"dataset"!==t&&l(e,"dataset")<=0&&e.unshift("dataset"),e}),h(lI,{getBoxLayoutParams:function(){return{left:this.get("left"),top:this.get("top"),right:this.get("right"),bottom:this.get("bottom"),width:this.get("width"),height:this.get("height")}}});var uI="";"undefined"!=typeof navigator&&(uI=navigator.platform||"");var hI={color:["#c23531","#2f4554","#61a0a8","#d48265","#91c7ae","#749f83","#ca8622","#bda29a","#6e7074","#546570","#c4ccd3"],gradientColor:["#f6efa6","#d88273","#bf444c"],textStyle:{fontFamily:uI.match(/^Win/)?"Microsoft YaHei":"sans-serif",fontSize:12,fontStyle:"normal",fontWeight:"normal"},blendMode:null,animation:"auto",animationDuration:1e3,animationDurationUpdate:300,animationEasing:"exponentialOut",animationEasingUpdate:"cubicOut",animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3,useUTC:!1},cI=Bi(),dI={clearColorPalette:function(){cI(this).colorIdx=0,cI(this).colorNameMap={}},getColorFromPalette:function(t,e,i){var n=cI(e=e||this),o=n.colorIdx||0,a=n.colorNameMap=n.colorNameMap||{};if(a.hasOwnProperty(t))return a[t];var r=Di(this.get("color",!0)),s=this.get("colorLayer",!0),l=null!=i&&s?ma(s,i):r;if((l=l||r)&&l.length){var u=l[o];return t&&(a[t]=u),n.colorIdx=(o+1)%l.length,u}}},fI={cartesian2d:function(t,e,i,n){var o=t.getReferringComponents("xAxis")[0],a=t.getReferringComponents("yAxis")[0];e.coordSysDims=["x","y"],i.set("x",o),i.set("y",a),ya(o)&&(n.set("x",o),e.firstCategoryDimIndex=0),ya(a)&&(n.set("y",a),e.firstCategoryDimIndex=1)},singleAxis:function(t,e,i,n){var o=t.getReferringComponents("singleAxis")[0];e.coordSysDims=["single"],i.set("single",o),ya(o)&&(n.set("single",o),e.firstCategoryDimIndex=0)},polar:function(t,e,i,n){var o=t.getReferringComponents("polar")[0],a=o.findAxisModel("radiusAxis"),r=o.findAxisModel("angleAxis");e.coordSysDims=["radius","angle"],i.set("radius",a),i.set("angle",r),ya(a)&&(n.set("radius",a),e.firstCategoryDimIndex=0),ya(r)&&(n.set("angle",r),e.firstCategoryDimIndex=1)},geo:function(t,e,i,n){e.coordSysDims=["lng","lat"]},parallel:function(t,e,i,n){var o=t.ecModel,a=o.getComponent("parallel",t.get("parallelIndex")),r=e.coordSysDims=a.dimensions.slice();d(a.parallelAxisIndex,function(t,a){var s=o.getComponent("parallelAxis",t),l=r[a];i.set(l,s),ya(s)&&null==e.firstCategoryDimIndex&&(n.set(l,s),e.firstCategoryDimIndex=a)})}},pI="original",gI="arrayRows",mI="objectRows",vI="keyedColumns",yI="unknown",xI="typedArray",_I="column",wI="row";xa.seriesDataToSource=function(t){return new xa({data:t,sourceFormat:S(t)?xI:pI,fromDataset:!1})},ji(xa);var bI=Bi(),SI="\0_ec_inner",MI=Po.extend({init:function(t,e,i,n){i=i||{},this.option=null,this._theme=new Po(i),this._optionManager=n},setOption:function(t,e){k(!(SI in t),"please use chart.getOption()"),this._optionManager.setOption(t,e),this.resetOption(null)},resetOption:function(t){var e=!1,i=this._optionManager;if(!t||"recreate"===t){var n=i.mountOption("recreate"===t);this.option&&"recreate"!==t?(this.restoreData(),this.mergeOption(n)):Oa.call(this,n),e=!0}if("timeline"!==t&&"media"!==t||this.restoreData(),!t||"recreate"===t||"timeline"===t){var o=i.getTimelineOption(this);o&&(this.mergeOption(o),e=!0)}if(!t||"recreate"===t||"media"===t){var a=i.getMediaOption(this,this._api);a.length&&d(a,function(t){this.mergeOption(t,e=!0)},this)}return e},mergeOption:function(t){var e=this.option,o=this._componentsMap,r=[];ba(this),d(t,function(t,o){null!=t&&(lI.hasClass(o)?o&&r.push(o):e[o]=null==e[o]?i(t):n(e[o],t,!0))}),lI.topologicalTravel(r,lI.getAllClassMainTypes(),function(i,n){var r=Di(t[i]),s=Pi(o.get(i),r);Ni(s),d(s,function(t,e){var n=t.option;w(n)&&(t.keyInfo.mainType=i,t.keyInfo.subType=Ra(i,n,t.exist))});var l=Ea(o,n);e[i]=[],o.set(i,[]),d(s,function(t,n){var r=t.exist,s=t.option;if(k(w(s)||r,"Empty component definition"),s){var u=lI.getClass(i,t.keyInfo.subType,!0);if(r&&r instanceof u)r.name=t.keyInfo.name,r.mergeOption(s,this),r.optionUpdated(s,!1);else{var h=a({dependentModels:l,componentIndex:n},t.keyInfo);a(r=new u(s,this,this,h),h),r.init(s,this,this,h),r.optionUpdated(null,!0)}}else r.mergeOption({},this),r.optionUpdated({},!1);o.get(i)[n]=r,e[i][n]=r.option},this),"series"===i&&za(this,o.get("series"))},this),this._seriesIndicesMap=R(this._seriesIndices=this._seriesIndices||[])},getOption:function(){var t=i(this.option);return d(t,function(e,i){if(lI.hasClass(i)){for(var n=(e=Di(e)).length-1;n>=0;n--)Ei(e[n])&&e.splice(n,1);t[i]=e}}),delete t[SI],t},getTheme:function(){return this._theme},getComponent:function(t,e){var i=this._componentsMap.get(t);if(i)return i[e||0]},queryComponents:function(t){var e=t.mainType;if(!e)return[];var i=t.index,n=t.id,o=t.name,a=this._componentsMap.get(e);if(!a||!a.length)return[];var r;if(null!=i)y(i)||(i=[i]),r=g(f(i,function(t){return a[t]}),function(t){return!!t});else if(null!=n){var s=y(n);r=g(a,function(t){return s&&l(n,t.id)>=0||!s&&t.id===n})}else if(null!=o){var u=y(o);r=g(a,function(t){return u&&l(o,t.name)>=0||!u&&t.name===o})}else r=a.slice();return Ba(r,t)},findComponents:function(t){var e=t.query,i=t.mainType,n=function(t){var e=i+"Index",n=i+"Id",o=i+"Name";return!t||null==t[e]&&null==t[n]&&null==t[o]?null:{mainType:i,index:t[e],id:t[n],name:t[o]}}(e);return function(e){return t.filter?g(e,t.filter):e}(Ba(n?this.queryComponents(n):this._componentsMap.get(i),t))},eachComponent:function(t,e,i){var n=this._componentsMap;"function"==typeof t?(i=e,e=t,n.each(function(t,n){d(t,function(t,o){e.call(i,n,t,o)})})):_(t)?d(n.get(t),e,i):w(t)&&d(this.findComponents(t),e,i)},getSeriesByName:function(t){return g(this._componentsMap.get("series"),function(e){return e.name===t})},getSeriesByIndex:function(t){return this._componentsMap.get("series")[t]},getSeriesByType:function(t){return g(this._componentsMap.get("series"),function(e){return e.subType===t})},getSeries:function(){return this._componentsMap.get("series").slice()},getSeriesCount:function(){return this._componentsMap.get("series").length},eachSeries:function(t,e){d(this._seriesIndices,function(i){var n=this._componentsMap.get("series")[i];t.call(e,n,i)},this)},eachRawSeries:function(t,e){d(this._componentsMap.get("series"),t,e)},eachSeriesByType:function(t,e,i){d(this._seriesIndices,function(n){var o=this._componentsMap.get("series")[n];o.subType===t&&e.call(i,o,n)},this)},eachRawSeriesByType:function(t,e,i){return d(this.getSeriesByType(t),e,i)},isSeriesFiltered:function(t){return null==this._seriesIndicesMap.get(t.componentIndex)},getCurrentSeriesIndices:function(){return(this._seriesIndices||[]).slice()},filterSeries:function(t,e){za(this,g(this._componentsMap.get("series"),t,e))},restoreData:function(t){var e=this._componentsMap;za(this,e.get("series"));var i=[];e.each(function(t,e){i.push(e)}),lI.topologicalTravel(i,lI.getAllClassMainTypes(),function(i,n){d(e.get(i),function(e){("series"!==i||!Pa(e,t))&&e.restoreData()})})}});h(MI,dI);var II=["getDom","getZr","getWidth","getHeight","getDevicePixelRatio","dispatchAction","isDisposed","on","off","getDataURL","getConnectedDataURL","getModel","getOption","getViewOfComponentModel","getViewOfSeriesModel"],TI={};Ga.prototype={constructor:Ga,create:function(t,e){var i=[];d(TI,function(n,o){var a=n.create(t,e);i=i.concat(a||[])}),this._coordinateSystems=i},update:function(t,e){d(this._coordinateSystems,function(i){i.update&&i.update(t,e)})},getCoordinateSystems:function(){return this._coordinateSystems.slice()}},Ga.register=function(t,e){TI[t]=e},Ga.get=function(t){return TI[t]};var AI=d,DI=i,CI=f,LI=n,kI=/^(min|max)?(.+)$/;Fa.prototype={constructor:Fa,setOption:function(t,e){t&&d(Di(t.series),function(t){t&&t.data&&S(t.data)&&N(t.data)}),t=DI(t,!0);var i=this._optionBackup,n=Wa.call(this,t,e,!i);this._newBaseOption=n.baseOption,i?(Xa(i.baseOption,n.baseOption),n.timelineOptions.length&&(i.timelineOptions=n.timelineOptions),n.mediaList.length&&(i.mediaList=n.mediaList),n.mediaDefault&&(i.mediaDefault=n.mediaDefault)):this._optionBackup=n},mountOption:function(t){var e=this._optionBackup;return this._timelineOptions=CI(e.timelineOptions,DI),this._mediaList=CI(e.mediaList,DI),this._mediaDefault=DI(e.mediaDefault),this._currentMediaIndices=[],DI(t?e.baseOption:this._newBaseOption)},getTimelineOption:function(t){var e,i=this._timelineOptions;if(i.length){var n=t.getComponent("timeline");n&&(e=DI(i[n.getCurrentIndex()],!0))}return e},getMediaOption:function(t){var e=this._api.getWidth(),i=this._api.getHeight(),n=this._mediaList,o=this._mediaDefault,a=[],r=[];if(!n.length&&!o)return r;for(var s=0,l=n.length;s=1)&&(t=1),t}var i=this._upstream,n=t&&t.skip;if(this._dirty&&i){var o=this.context;o.data=o.outputData=i.context.outputData}this.__pipeline&&(this.__pipeline.currentTask=this);var a;this._plan&&!n&&(a=this._plan(this.context));var r=e(this._modBy),s=this._modDataCount||0,l=e(t&&t.modBy),u=t&&t.modDataCount||0;r===l&&s===u||(a="reset");var h;(this._dirty||"reset"===a)&&(this._dirty=!1,h=vr(this,n)),this._modBy=l,this._modDataCount=u;var c=t&&t.step;if(this._dueEnd=i?i._outputDueEnd:this._count?this._count(this.context):1/0,this._progress){var d=this._dueIndex,f=Math.min(null!=c?this._dueIndex+c:1/0,this._dueEnd);if(!n&&(h||d=i?null:t1&&a>0?e:t}};return s}();UI.dirty=function(){this._dirty=!0,this._onDirty&&this._onDirty(this.context)},UI.unfinished=function(){return this._progress&&this._dueIndex":"\n",s="richText"===n,l={},u=0,h=this.getData(),c=h.mapDimension("defaultedTooltip",!0),f=c.length,g=this.getRawValue(t),m=y(g),v=h.getItemVisual(t,"color");w(v)&&v.colorStops&&(v=(v.colorStops[0]||{}).color),v=v||"transparent";var x=(f>1||m&&!f?function(i){function o(t,i){var o=h.getDimensionInfo(i);if(o&&!1!==o.otherDims.tooltip){var c=o.type,d="sub"+a.seriesIndex+"at"+u,p=oa({color:v,type:"subItem",renderMode:n,markerId:d}),g="string"==typeof p?p:p.content,m=(r?g+ea(o.displayName||"-")+": ":"")+ea("ordinal"===c?t+"":"time"===c?e?"":ra("yyyy/MM/dd hh:mm:ss",t):Qo(t));m&&f.push(m),s&&(l[d]=v,++u)}}var r=p(i,function(t,e,i){var n=h.getDimensionInfo(i);return t|=n&&!1!==n.tooltip&&null!=n.displayName},0),f=[];c.length?d(c,function(e){o(dr(h,t,e),e)}):d(i,o);var g=r?s?"\n":"
":"",m=g+f.join(g||", ");return{renderMode:n,content:m,style:l}}(g):o(f?dr(h,t,c[0]):m?g[0]:g)).content,_=a.seriesIndex+"at"+u,b=oa({color:v,type:"item",renderMode:n,markerId:_});l[_]=v,++u;var S=h.getName(t),M=this.name;Oi(this)||(M=""),M=M?ea(M)+(e?": ":r):"";var I="string"==typeof b?b:b.content;return{html:e?I+M+x:M+I+(S?ea(S)+": "+x:x),markers:l}},isAnimationEnabled:function(){if(U_.node)return!1;var t=this.getShallow("animation");return t&&this.getData().count()>this.getShallow("animationThreshold")&&(t=!1),t},restoreData:function(){this.dataTask.dirty()},getColorFromPalette:function(t,e,i){var n=this.ecModel,o=dI.getColorFromPalette.call(this,t,e,i);return o||(o=n.getColorFromPalette(t,e,i)),o},coordDimToDataDim:function(t){return this.getRawData().mapDimension(t,!0)},getProgressive:function(){return this.get("progressive")},getProgressiveThreshold:function(){return this.get("progressiveThreshold")},getAxisTooltipData:null,getTooltipPosition:null,pipeTask:null,preventIncremental:null,pipelineContext:null});h(YI,ZI),h(YI,dI);var qI=function(){this.group=new tb,this.uid=Eo("viewComponent")};qI.prototype={constructor:qI,init:function(t,e){},render:function(t,e,i,n){},dispose:function(){},filterForExposedEvent:null};var KI=qI.prototype;KI.updateView=KI.updateLayout=KI.updateVisual=function(t,e,i,n){},Xi(qI),Ki(qI,{registerWhenExtend:!0});var $I=function(){var t=Bi();return function(e){var i=t(e),n=e.pipelineContext,o=i.large,a=i.progressiveRender,r=i.large=n.large,s=i.progressiveRender=n.progressiveRender;return!!(o^r||a^s)&&"reset"}},JI=Bi(),QI=$I();Tr.prototype={type:"chart",init:function(t,e){},render:function(t,e,i,n){},highlight:function(t,e,i,n){Dr(t.getData(),n,"emphasis")},downplay:function(t,e,i,n){Dr(t.getData(),n,"normal")},remove:function(t,e){this.group.removeAll()},dispose:function(){},incrementalPrepareRender:null,incrementalRender:null,updateTransform:null,filterForExposedEvent:null};var tT=Tr.prototype;tT.updateView=tT.updateLayout=tT.updateVisual=function(t,e,i,n){this.render(t,e,i,n)},Xi(Tr),Ki(Tr,{registerWhenExtend:!0}),Tr.markUpdateMethod=function(t,e){JI(t).updateMethod=e};var eT={incrementalPrepareRender:{progress:function(t,e){e.view.incrementalRender(t,e.model,e.ecModel,e.api,e.payload)}},render:{forceFirstProgress:!0,progress:function(t,e){e.view.render(e.model,e.ecModel,e.api,e.payload)}}},iT="\0__throttleOriginMethod",nT="\0__throttleRate",oT="\0__throttleType",aT={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){var i=t.getData(),n=(t.visualColorAccessPath||"itemStyle.color").split("."),o=t.get(n)||t.getColorFromPalette(t.name,null,e.getSeriesCount());if(i.setVisual("color",o),!e.isSeriesFiltered(t)){"function"!=typeof o||o instanceof IM||i.each(function(e){i.setItemVisual(e,"color",o(t.getDataParams(e)))});return{dataEach:i.hasItemOption?function(t,e){var i=t.getItemModel(e).get(n,!0);null!=i&&t.setItemVisual(e,"color",i)}:null}}}},rT={toolbox:{brush:{title:{rect:"矩形选择",polygon:"圈选",lineX:"横向选择",lineY:"纵向选择",keep:"保持选择",clear:"清除选择"}},dataView:{title:"数据视图",lang:["数据视图","关闭","刷新"]},dataZoom:{title:{zoom:"区域缩放",back:"区域缩放还原"}},magicType:{title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"}},restore:{title:"还原"},saveAsImage:{title:"保存为图片",lang:["右键另存为图片"]}},series:{typeNames:{pie:"饼图",bar:"柱状图",line:"折线图",scatter:"散点图",effectScatter:"涟漪散点图",radar:"雷达图",tree:"树图",treemap:"矩形树图",boxplot:"箱型图",candlestick:"K线图",k:"K线图",heatmap:"热力图",map:"地图",parallel:"平行坐标图",lines:"线图",graph:"关系图",sankey:"桑基图",funnel:"漏斗图",gauge:"仪表盘图",pictorialBar:"象形柱图",themeRiver:"主题河流图",sunburst:"旭日图"}},aria:{general:{withTitle:"这是一个关于“{title}”的图表。",withoutTitle:"这是一个图表,"},series:{single:{prefix:"",withName:"图表类型是{seriesType},表示{seriesName}。",withoutName:"图表类型是{seriesType}。"},multiple:{prefix:"它由{seriesCount}个图表系列组成。",withName:"第{seriesId}个系列是一个表示{seriesName}的{seriesType},",withoutName:"第{seriesId}个系列是一个{seriesType},",separator:{middle:";",end:"。"}}},data:{allData:"其数据是——",partialData:"其中,前{displayCnt}项是——",withName:"{name}的数据是{value}",withoutName:"{value}",separator:{middle:",",end:""}}}},sT=function(t,e){function i(t,e){if("string"!=typeof t)return t;var i=t;return d(e,function(t,e){i=i.replace(new RegExp("\\{\\s*"+e+"\\s*\\}","g"),t)}),i}function n(t){var e=a.get(t);if(null==e){for(var i=t.split("."),n=rT.aria,o=0;o1?"series.multiple.prefix":"series.single.prefix"),{seriesCount:r}),e.eachSeries(function(t,e){if(e1?"multiple":"single")+".";a=i(a=n(s?u+"withName":u+"withoutName"),{seriesId:t.seriesIndex,seriesName:t.get("name"),seriesType:o(t.subType)});var c=t.getData();window.data=c,c.count()>l?a+=i(n("data.partialData"),{displayCnt:l}):a+=n("data.allData");for(var d=[],p=0;pi.blockIndex?i.step:null,a=n&&n.modDataCount;return{step:o,modBy:null!=a?Math.ceil(a/o):null,modDataCount:a}}},uT.getPipeline=function(t){return this._pipelineMap.get(t)},uT.updateStreamModes=function(t,e){var i=this._pipelineMap.get(t.uid),n=t.getData().count(),o=i.progressiveEnabled&&e.incrementalPrepareRender&&n>=i.threshold,a=t.get("large")&&n>=t.get("largeThreshold"),r="mod"===t.get("progressiveChunkMode")?n:null;t.pipelineContext=i.context={progressiveRender:o,modDataCount:r,large:a}},uT.restorePipelines=function(t){var e=this,i=e._pipelineMap=R();t.eachSeries(function(t){var n=t.getProgressive(),o=t.uid;i.set(o,{id:o,head:null,tail:null,threshold:t.getProgressiveThreshold(),progressiveEnabled:n&&!(t.preventIncremental&&t.preventIncremental()),blockIndex:-1,step:Math.round(n||700),count:0}),Xr(e,t,t.dataTask)})},uT.prepareStageTasks=function(){var t=this._stageTaskMap,e=this.ecInstance.getModel(),i=this.api;d(this._allHandlers,function(n){var o=t.get(n.uid)||t.set(n.uid,[]);n.reset&&Rr(this,n,o,e,i),n.overallReset&&zr(this,n,o,e,i)},this)},uT.prepareView=function(t,e,i,n){var o=t.renderTask,a=o.context;a.model=e,a.ecModel=i,a.api=n,o.__block=!t.incrementalPrepareRender,Xr(this,e,o)},uT.performDataProcessorTasks=function(t,e){Er(this,this._dataProcessorHandlers,t,e,{block:!0})},uT.performVisualTasks=function(t,e,i){Er(this,this._visualHandlers,t,e,i)},uT.performSeriesTasks=function(t){var e;t.eachSeries(function(t){e|=t.dataTask.perform()}),this.unfinished|=e},uT.plan=function(){this._pipelineMap.each(function(t){var e=t.tail;do{if(e.__block){t.blockIndex=e.__idxInPipeline;break}e=e.getUpstream()}while(e)})};var hT=uT.updatePayload=function(t,e){"remain"!==e&&(t.context.payload=e)},cT=Zr(0);Or.wrapStageHandler=function(t,e){return x(t)&&(t={overallReset:t,seriesType:jr(t)}),t.uid=Eo("stageHandler"),e&&(t.visualType=e),t};var dT,fT={},pT={};Yr(fT,MI),Yr(pT,Va),fT.eachSeriesByType=fT.eachRawSeriesByType=function(t){dT=t},fT.eachComponent=function(t){"series"===t.mainType&&t.subType&&(dT=t.subType)};var gT=["#37A2DA","#32C5E9","#67E0E3","#9FE6B8","#FFDB5C","#ff9f7f","#fb7293","#E062AE","#E690D1","#e7bcf3","#9d96f5","#8378EA","#96BFFF"],mT={color:gT,colorLayer:[["#37A2DA","#ffd85c","#fd7b5f"],["#37A2DA","#67E0E3","#FFDB5C","#ff9f7f","#E062AE","#9d96f5"],["#37A2DA","#32C5E9","#9FE6B8","#FFDB5C","#ff9f7f","#fb7293","#e7bcf3","#8378EA","#96BFFF"],gT]},vT=["#dd6b66","#759aa0","#e69d87","#8dc1a9","#ea7e53","#eedd78","#73a373","#73b9bc","#7289ab","#91ca8c","#f49f42"],yT={color:vT,backgroundColor:"#333",tooltip:{axisPointer:{lineStyle:{color:"#eee"},crossStyle:{color:"#eee"}}},legend:{textStyle:{color:"#eee"}},textStyle:{color:"#eee"},title:{textStyle:{color:"#eee"}},toolbox:{iconStyle:{normal:{borderColor:"#eee"}}},dataZoom:{textStyle:{color:"#eee"}},visualMap:{textStyle:{color:"#eee"}},timeline:{lineStyle:{color:"#eee"},itemStyle:{normal:{color:vT[1]}},label:{normal:{textStyle:{color:"#eee"}}},controlStyle:{normal:{color:"#eee",borderColor:"#eee"}}},timeAxis:{axisLine:{lineStyle:{color:"#eee"}},axisTick:{lineStyle:{color:"#eee"}},axisLabel:{textStyle:{color:"#eee"}},splitLine:{lineStyle:{type:"dashed",color:"#aaa"}},splitArea:{areaStyle:{color:"#eee"}}},logAxis:{axisLine:{lineStyle:{color:"#eee"}},axisTick:{lineStyle:{color:"#eee"}},axisLabel:{textStyle:{color:"#eee"}},splitLine:{lineStyle:{type:"dashed",color:"#aaa"}},splitArea:{areaStyle:{color:"#eee"}}},valueAxis:{axisLine:{lineStyle:{color:"#eee"}},axisTick:{lineStyle:{color:"#eee"}},axisLabel:{textStyle:{color:"#eee"}},splitLine:{lineStyle:{type:"dashed",color:"#aaa"}},splitArea:{areaStyle:{color:"#eee"}}},categoryAxis:{axisLine:{lineStyle:{color:"#eee"}},axisTick:{lineStyle:{color:"#eee"}},axisLabel:{textStyle:{color:"#eee"}},splitLine:{lineStyle:{type:"dashed",color:"#aaa"}},splitArea:{areaStyle:{color:"#eee"}}},line:{symbol:"circle"},graph:{color:vT},gauge:{title:{textStyle:{color:"#eee"}}},candlestick:{itemStyle:{normal:{color:"#FD1050",color0:"#0CF49B",borderColor:"#FD1050",borderColor0:"#0CF49B"}}}};yT.categoryAxis.splitLine.show=!1,lI.extend({type:"dataset",defaultOption:{seriesLayoutBy:_I,sourceHeader:null,dimensions:null,source:null},optionUpdated:function(){_a(this)}}),qI.extend({type:"dataset"});var xT=kn.extend({type:"ellipse",shape:{cx:0,cy:0,rx:0,ry:0},buildPath:function(t,e){var i=.5522848,n=e.cx,o=e.cy,a=e.rx,r=e.ry,s=a*i,l=r*i;t.moveTo(n-a,o),t.bezierCurveTo(n-a,o-l,n-s,o-r,n,o-r),t.bezierCurveTo(n+s,o-r,n+a,o-l,n+a,o),t.bezierCurveTo(n+a,o+l,n+s,o+r,n,o+r),t.bezierCurveTo(n-s,o+r,n-a,o+l,n-a,o),t.closePath()}}),_T=/[\s,]+/;Kr.prototype.parse=function(t,e){e=e||{};var i=qr(t);if(!i)throw new Error("Illegal svg");var n=new tb;this._root=n;var o=i.getAttribute("viewBox")||"",a=parseFloat(i.getAttribute("width")||e.width),r=parseFloat(i.getAttribute("height")||e.height);isNaN(a)&&(a=null),isNaN(r)&&(r=null),ts(i,n,null,!0);for(var s=i.firstChild;s;)this._parseNode(s,n),s=s.nextSibling;var l,u;if(o){var h=P(o).split(_T);h.length>=4&&(l={x:parseFloat(h[0]||0),y:parseFloat(h[1]||0),width:parseFloat(h[2]),height:parseFloat(h[3])})}if(l&&null!=a&&null!=r&&(u=os(l,a,r),!e.ignoreViewBox)){var c=n;(n=new tb).add(c),c.scale=u.scale.slice(),c.position=u.position.slice()}return e.ignoreRootClip||null==a||null==r||n.setClipPath(new yM({shape:{x:0,y:0,width:a,height:r}})),{root:n,width:a,height:r,viewBoxRect:l,viewBoxTransform:u}},Kr.prototype._parseNode=function(t,e){var i=t.nodeName.toLowerCase();"defs"===i?this._isDefine=!0:"text"===i&&(this._isText=!0);var n;if(this._isDefine){if(r=bT[i]){var o=r.call(this,t),a=t.getAttribute("id");a&&(this._defs[a]=o)}}else{var r=wT[i];r&&(n=r.call(this,t,e),e.add(n))}for(var s=t.firstChild;s;)1===s.nodeType&&this._parseNode(s,n),3===s.nodeType&&this._isText&&this._parseText(s,n),s=s.nextSibling;"defs"===i?this._isDefine=!1:"text"===i&&(this._isText=!1)},Kr.prototype._parseText=function(t,e){if(1===t.nodeType){var i=t.getAttribute("dx")||0,n=t.getAttribute("dy")||0;this._textX+=parseFloat(i),this._textY+=parseFloat(n)}var o=new rM({style:{text:t.textContent,transformText:!0},position:[this._textX||0,this._textY||0]});Jr(e,o),ts(t,o,this._defs);var a=o.style.fontSize;a&&a<9&&(o.style.fontSize=9,o.scale=o.scale||[1,1],o.scale[0]*=a/9,o.scale[1]*=a/9);var r=o.getBoundingRect();return this._textX+=r.width,e.add(o),o};var wT={g:function(t,e){var i=new tb;return Jr(e,i),ts(t,i,this._defs),i},rect:function(t,e){var i=new yM;return Jr(e,i),ts(t,i,this._defs),i.setShape({x:parseFloat(t.getAttribute("x")||0),y:parseFloat(t.getAttribute("y")||0),width:parseFloat(t.getAttribute("width")||0),height:parseFloat(t.getAttribute("height")||0)}),i},circle:function(t,e){var i=new sM;return Jr(e,i),ts(t,i,this._defs),i.setShape({cx:parseFloat(t.getAttribute("cx")||0),cy:parseFloat(t.getAttribute("cy")||0),r:parseFloat(t.getAttribute("r")||0)}),i},line:function(t,e){var i=new _M;return Jr(e,i),ts(t,i,this._defs),i.setShape({x1:parseFloat(t.getAttribute("x1")||0),y1:parseFloat(t.getAttribute("y1")||0),x2:parseFloat(t.getAttribute("x2")||0),y2:parseFloat(t.getAttribute("y2")||0)}),i},ellipse:function(t,e){var i=new xT;return Jr(e,i),ts(t,i,this._defs),i.setShape({cx:parseFloat(t.getAttribute("cx")||0),cy:parseFloat(t.getAttribute("cy")||0),rx:parseFloat(t.getAttribute("rx")||0),ry:parseFloat(t.getAttribute("ry")||0)}),i},polygon:function(t,e){var i=t.getAttribute("points");i&&(i=Qr(i));var n=new pM({shape:{points:i||[]}});return Jr(e,n),ts(t,n,this._defs),n},polyline:function(t,e){var i=new kn;Jr(e,i),ts(t,i,this._defs);var n=t.getAttribute("points");return n&&(n=Qr(n)),new gM({shape:{points:n||[]}})},image:function(t,e){var i=new fi;return Jr(e,i),ts(t,i,this._defs),i.setStyle({image:t.getAttribute("xlink:href"),x:t.getAttribute("x"),y:t.getAttribute("y"),width:t.getAttribute("width"),height:t.getAttribute("height")}),i},text:function(t,e){var i=t.getAttribute("x")||0,n=t.getAttribute("y")||0,o=t.getAttribute("dx")||0,a=t.getAttribute("dy")||0;this._textX=parseFloat(i)+parseFloat(o),this._textY=parseFloat(n)+parseFloat(a);var r=new tb;return Jr(e,r),ts(t,r,this._defs),r},tspan:function(t,e){var i=t.getAttribute("x"),n=t.getAttribute("y");null!=i&&(this._textX=parseFloat(i)),null!=n&&(this._textY=parseFloat(n));var o=t.getAttribute("dx")||0,a=t.getAttribute("dy")||0,r=new tb;return Jr(e,r),ts(t,r,this._defs),this._textX+=o,this._textY+=a,r},path:function(t,e){var i=En(t.getAttribute("d")||"");return Jr(e,i),ts(t,i,this._defs),i}},bT={lineargradient:function(t){var e=parseInt(t.getAttribute("x1")||0,10),i=parseInt(t.getAttribute("y1")||0,10),n=parseInt(t.getAttribute("x2")||10,10),o=parseInt(t.getAttribute("y2")||0,10),a=new TM(e,i,n,o);return $r(t,a),a},radialgradient:function(t){}},ST={fill:"fill",stroke:"stroke","stroke-width":"lineWidth",opacity:"opacity","fill-opacity":"fillOpacity","stroke-opacity":"strokeOpacity","stroke-dasharray":"lineDash","stroke-dashoffset":"lineDashOffset","stroke-linecap":"lineCap","stroke-linejoin":"lineJoin","stroke-miterlimit":"miterLimit","font-family":"fontFamily","font-size":"fontSize","font-style":"fontStyle","font-weight":"fontWeight","text-align":"textAlign","alignment-baseline":"textBaseline"},MT=/url\(\s*#(.*?)\)/,IT=/(translate|scale|rotate|skewX|skewY|matrix)\(([\-\s0-9\.e,]*)\)/g,TT=/([^\s:;]+)\s*:\s*([^:;]+)/g,AT=R(),DT={registerMap:function(t,e,i){var n;return y(e)?n=e:e.svg?n=[{type:"svg",source:e.svg,specialAreas:e.specialAreas}]:(e.geoJson&&!e.features&&(i=e.specialAreas,e=e.geoJson),n=[{type:"geoJSON",source:e,specialAreas:i}]),d(n,function(t){var e=t.type;"geoJson"===e&&(e=t.type="geoJSON"),(0,CT[e])(t)}),AT.set(t,n)},retrieveMap:function(t){return AT.get(t)}},CT={geoJSON:function(t){var e=t.source;t.geoJSON=_(e)?"undefined"!=typeof JSON&&JSON.parse?JSON.parse(e):new Function("return ("+e+");")():e},svg:function(t){t.svgXML=qr(t.source)}},LT=k,kT=d,PT=x,NT=w,OT=lI.parseClassType,ET=1e3,RT=1e3,zT=3e3,BT={PROCESSOR:{FILTER:ET,STATISTIC:5e3},VISUAL:{LAYOUT:RT,GLOBAL:2e3,CHART:zT,COMPONENT:4e3,BRUSH:5e3}},VT="__flagInMainProcess",GT="__optionUpdated",FT=/^[a-zA-Z0-9_]+$/;ss.prototype.on=rs("on"),ss.prototype.off=rs("off"),ss.prototype.one=rs("one"),h(ss,fw);var WT=ls.prototype;WT._onframe=function(){if(!this._disposed){var t=this._scheduler;if(this[GT]){var e=this[GT].silent;this[VT]=!0,hs(this),HT.update.call(this),this[VT]=!1,this[GT]=!1,ps.call(this,e),gs.call(this,e)}else if(t.unfinished){var i=1,n=this._model;this._api;t.unfinished=!1;do{var o=+new Date;t.performSeriesTasks(n),t.performDataProcessorTasks(n),ds(this,n),t.performVisualTasks(n),ws(this,this._model,0,"remain"),i-=+new Date-o}while(i>0&&t.unfinished);t.unfinished||this._zr.flush()}}},WT.getDom=function(){return this._dom},WT.getZr=function(){return this._zr},WT.setOption=function(t,e,i){var n;if(NT(e)&&(i=e.lazyUpdate,n=e.silent,e=e.notMerge),this[VT]=!0,!this._model||e){var o=new Fa(this._api),a=this._theme,r=this._model=new MI(null,null,a,o);r.scheduler=this._scheduler,r.init(null,null,a,o)}this._model.setOption(t,YT),i?(this[GT]={silent:n},this[VT]=!1):(hs(this),HT.update.call(this),this._zr.flush(),this[GT]=!1,this[VT]=!1,ps.call(this,n),gs.call(this,n))},WT.setTheme=function(){console.error("ECharts#setTheme() is DEPRECATED in ECharts 3.0")},WT.getModel=function(){return this._model},WT.getOption=function(){return this._model&&this._model.getOption()},WT.getWidth=function(){return this._zr.getWidth()},WT.getHeight=function(){return this._zr.getHeight()},WT.getDevicePixelRatio=function(){return this._zr.painter.dpr||window.devicePixelRatio||1},WT.getRenderedCanvas=function(t){if(U_.canvasSupported)return(t=t||{}).pixelRatio=t.pixelRatio||1,t.backgroundColor=t.backgroundColor||this._model.get("backgroundColor"),this._zr.painter.getRenderedCanvas(t)},WT.getSvgDataUrl=function(){if(U_.svgSupported){var t=this._zr;return d(t.storage.getDisplayList(),function(t){t.stopAnimation(!0)}),t.painter.pathToDataUrl()}},WT.getDataURL=function(t){var e=(t=t||{}).excludeComponents,i=this._model,n=[],o=this;kT(e,function(t){i.eachComponent({mainType:t},function(t){var e=o._componentsMap[t.__viewId];e.group.ignore||(n.push(e),e.group.ignore=!0)})});var a="svg"===this._zr.painter.getType()?this.getSvgDataUrl():this.getRenderedCanvas(t).toDataURL("image/"+(t&&t.type||"png"));return kT(n,function(t){t.group.ignore=!1}),a},WT.getConnectedDataURL=function(t){if(U_.canvasSupported){var e=this.group,n=Math.min,o=Math.max;if(tA[e]){var a=1/0,r=1/0,s=-1/0,l=-1/0,u=[],h=t&&t.pixelRatio||1;d(QT,function(h,c){if(h.group===e){var d=h.getRenderedCanvas(i(t)),f=h.getDom().getBoundingClientRect();a=n(f.left,a),r=n(f.top,r),s=o(f.right,s),l=o(f.bottom,l),u.push({dom:d,left:f.left,top:f.top})}});var c=(s*=h)-(a*=h),f=(l*=h)-(r*=h),p=iw();p.width=c,p.height=f;var g=Ii(p);return kT(u,function(t){var e=new fi({style:{x:t.left*h-a,y:t.top*h-r,image:t.dom}});g.add(e)}),g.refreshImmediately(),p.toDataURL("image/"+(t&&t.type||"png"))}return this.getDataURL(t)}},WT.convertToPixel=v(us,"convertToPixel"),WT.convertFromPixel=v(us,"convertFromPixel"),WT.containPixel=function(t,e){var i;return t=Vi(this._model,t),d(t,function(t,n){n.indexOf("Models")>=0&&d(t,function(t){var o=t.coordinateSystem;if(o&&o.containPoint)i|=!!o.containPoint(e);else if("seriesModels"===n){var a=this._chartsMap[t.__viewId];a&&a.containPoint&&(i|=a.containPoint(e,t))}},this)},this),!!i},WT.getVisual=function(t,e){var i=(t=Vi(this._model,t,{defaultMainType:"series"})).seriesModel.getData(),n=t.hasOwnProperty("dataIndexInside")?t.dataIndexInside:t.hasOwnProperty("dataIndex")?i.indexOfRawIndex(t.dataIndex):null;return null!=n?i.getItemVisual(n,e):i.getVisual(e)},WT.getViewOfComponentModel=function(t){return this._componentsMap[t.__viewId]},WT.getViewOfSeriesModel=function(t){return this._chartsMap[t.__viewId]};var HT={prepareAndUpdate:function(t){hs(this),HT.update.call(this,t)},update:function(t){var e=this._model,i=this._api,n=this._zr,o=this._coordSysMgr,a=this._scheduler;if(e){a.restoreData(e,t),a.performSeriesTasks(e),o.create(e,i),a.performDataProcessorTasks(e,t),ds(this,e),o.update(e,i),ys(e),a.performVisualTasks(e,t),xs(this,e,i,t);var r=e.get("backgroundColor")||"transparent";if(U_.canvasSupported)n.setBackgroundColor(r);else{var s=Gt(r);r=qt(s,"rgb"),0===s[3]&&(r="transparent")}bs(e,i)}},updateTransform:function(t){var e=this._model,i=this,n=this._api;if(e){var o=[];e.eachComponent(function(a,r){var s=i.getViewOfComponentModel(r);if(s&&s.__alive)if(s.updateTransform){var l=s.updateTransform(r,e,n,t);l&&l.update&&o.push(s)}else o.push(s)});var a=R();e.eachSeries(function(o){var r=i._chartsMap[o.__viewId];if(r.updateTransform){var s=r.updateTransform(o,e,n,t);s&&s.update&&a.set(o.uid,1)}else a.set(o.uid,1)}),ys(e),this._scheduler.performVisualTasks(e,t,{setDirty:!0,dirtyMap:a}),ws(i,e,0,t,a),bs(e,this._api)}},updateView:function(t){var e=this._model;e&&(Tr.markUpdateMethod(t,"updateView"),ys(e),this._scheduler.performVisualTasks(e,t,{setDirty:!0}),xs(this,this._model,this._api,t),bs(e,this._api))},updateVisual:function(t){HT.update.call(this,t)},updateLayout:function(t){HT.update.call(this,t)}};WT.resize=function(t){this._zr.resize(t);var e=this._model;if(this._loadingFX&&this._loadingFX.resize(),e){var i=e.resetOption("media"),n=t&&t.silent;this[VT]=!0,i&&hs(this),HT.update.call(this),this[VT]=!1,ps.call(this,n),gs.call(this,n)}},WT.showLoading=function(t,e){if(NT(t)&&(e=t,t=""),t=t||"default",this.hideLoading(),JT[t]){var i=JT[t](this._api,e),n=this._zr;this._loadingFX=i,n.add(i)}},WT.hideLoading=function(){this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null},WT.makeActionFromEvent=function(t){var e=a({},t);return e.type=XT[t.type],e},WT.dispatchAction=function(t,e){NT(e)||(e={silent:!!e}),UT[t.type]&&this._model&&(this[VT]?this._pendingActions.push(t):(fs.call(this,t,e.silent),e.flush?this._zr.flush(!0):!1!==e.flush&&U_.browser.weChat&&this._throttledZrFlush(),ps.call(this,e.silent),gs.call(this,e.silent)))},WT.appendData=function(t){var e=t.seriesIndex;this.getModel().getSeriesByIndex(e).appendData(t),this._scheduler.unfinished=!0},WT.on=rs("on"),WT.off=rs("off"),WT.one=rs("one");var ZT=["click","dblclick","mouseover","mouseout","mousemove","mousedown","mouseup","globalout","contextmenu"];WT._initEvents=function(){kT(ZT,function(t){var e=function(e){var i,n=this.getModel(),o=e.target;if("globalout"===t)i={};else if(o&&null!=o.dataIndex){var r=o.dataModel||n.getSeriesByIndex(o.seriesIndex);i=r&&r.getDataParams(o.dataIndex,o.dataType,o)||{}}else o&&o.eventData&&(i=a({},o.eventData));if(i){var s=i.componentType,l=i.componentIndex;"markLine"!==s&&"markPoint"!==s&&"markArea"!==s||(s="series",l=i.seriesIndex);var u=s&&null!=l&&n.getComponent(s,l),h=u&&this["series"===u.mainType?"_chartsMap":"_componentsMap"][u.__viewId];i.event=e,i.type=t,this._ecEventProcessor.eventInfo={targetEl:o,packedEvent:i,model:u,view:h},this.trigger(t,i)}};e.zrEventfulCallAtLast=!0,this._zr.on(t,e,this)},this),kT(XT,function(t,e){this._messageCenter.on(e,function(t){this.trigger(e,t)},this)},this)},WT.isDisposed=function(){return this._disposed},WT.clear=function(){this.setOption({series:[]},!0)},WT.dispose=function(){if(!this._disposed){this._disposed=!0,Fi(this.getDom(),nA,"");var t=this._api,e=this._model;kT(this._componentsViews,function(i){i.dispose(e,t)}),kT(this._chartsViews,function(i){i.dispose(e,t)}),this._zr.dispose(),delete QT[this.id]}},h(ls,fw),As.prototype={constructor:As,normalizeQuery:function(t){var e={},i={},n={};if(_(t)){var o=OT(t);e.mainType=o.main||null,e.subType=o.sub||null}else{var a=["Index","Name","Id"],r={name:1,dataIndex:1,dataType:1};d(t,function(t,o){for(var s=!1,l=0;l0&&h===o.length-u.length){var c=o.slice(0,h);"data"!==c&&(e.mainType=c,e[u.toLowerCase()]=t,s=!0)}}r.hasOwnProperty(o)&&(i[o]=t,s=!0),s||(n[o]=t)})}return{cptQuery:e,dataQuery:i,otherQuery:n}},filter:function(t,e,i){function n(t,e,i,n){return null==t[i]||e[n||i]===t[i]}var o=this.eventInfo;if(!o)return!0;var a=o.targetEl,r=o.packedEvent,s=o.model,l=o.view;if(!s||!l)return!0;var u=e.cptQuery,h=e.dataQuery;return n(u,s,"mainType")&&n(u,s,"subType")&&n(u,s,"index","componentIndex")&&n(u,s,"name")&&n(u,s,"id")&&n(h,r,"name")&&n(h,r,"dataIndex")&&n(h,r,"dataType")&&(!l.filterForExposedEvent||l.filterForExposedEvent(t,e.otherQuery,a,r))},afterTrigger:function(){this.eventInfo=null}};var UT={},XT={},jT=[],YT=[],qT=[],KT=[],$T={},JT={},QT={},tA={},eA=new Date-0,iA=new Date-0,nA="_echarts_instance_",oA=Cs;zs(2e3,aT),Ps(BI),Ns(5e3,function(t){var e=R();t.eachSeries(function(t){var i=t.get("stack");if(i){var n=e.get(i)||e.set(i,[]),o=t.getData(),a={stackResultDimension:o.getCalculationInfo("stackResultDimension"),stackedOverDimension:o.getCalculationInfo("stackedOverDimension"),stackedDimension:o.getCalculationInfo("stackedDimension"),stackedByDimension:o.getCalculationInfo("stackedByDimension"),isStackedByIndex:o.getCalculationInfo("isStackedByIndex"),data:o,seriesModel:t};if(!a.stackedDimension||!a.isStackedByIndex&&!a.stackedByDimension)return;n.length&&o.setCalculationInfo("stackedOnSeries",n[n.length-1].seriesModel),n.push(a)}}),e.each(or)}),Vs("default",function(t,e){r(e=e||{},{text:"loading",color:"#c23531",textColor:"#000",maskColor:"rgba(255, 255, 255, 0.8)",zlevel:0});var i=new yM({style:{fill:e.maskColor},zlevel:e.zlevel,z:1e4}),n=new SM({shape:{startAngle:-lT/2,endAngle:-lT/2+.1,r:10},style:{stroke:e.color,lineCap:"round",lineWidth:5},zlevel:e.zlevel,z:10001}),o=new yM({style:{fill:"none",text:e.text,textPosition:"right",textDistance:10,textFill:e.textColor},zlevel:e.zlevel,z:10001});n.animateShape(!0).when(1e3,{endAngle:3*lT/2}).start("circularInOut"),n.animateShape(!0).when(1e3,{startAngle:3*lT/2}).delay(300).start("circularInOut");var a=new tb;return a.add(n),a.add(o),a.add(i),a.resize=function(){var e=t.getWidth()/2,a=t.getHeight()/2;n.setShape({cx:e,cy:a});var r=n.shape.r;o.setShape({x:e-r,y:a-r,width:2*r,height:2*r}),i.setShape({x:0,y:0,width:t.getWidth(),height:t.getHeight()})},a.resize(),a}),Os({type:"highlight",event:"highlight",update:"highlight"},B),Os({type:"downplay",event:"downplay",update:"downplay"},B),ks("light",mT),ks("dark",yT);Us.prototype={constructor:Us,add:function(t){return this._add=t,this},update:function(t){return this._update=t,this},remove:function(t){return this._remove=t,this},execute:function(){var t=this._old,e=this._new,i={},n=[],o=[];for(Xs(t,{},n,"_oldKeyGetter",this),Xs(e,i,o,"_newKeyGetter",this),a=0;ax[1]&&(x[1]=y)}e&&(this._nameList[d]=e[f])}this._rawCount=this._count=l,this._extent={},tl(this)},mA._initDataFromProvider=function(t,e){if(!(t>=e)){for(var i,n=this._chunkSize,o=this._rawData,a=this._storage,r=this.dimensions,s=r.length,l=this._dimensionInfos,u=this._nameList,h=this._idList,c=this._rawExtent,d=this._nameRepeatCount={},f=this._chunkCount,p=0;pM[1]&&(M[1]=S)}if(!o.pure){var I=u[v];if(m&&null==I)if(null!=m.name)u[v]=I=m.name;else if(null!=i){var T=r[i],A=a[T][y];if(A){I=A[x];var D=l[T].ordinalMeta;D&&D.categories.length&&(I=D.categories[I])}}var C=null==m?null:m.id;null==C&&null!=I&&(d[I]=d[I]||0,C=I,d[I]>0&&(C+="__ec__"+d[I]),d[I]++),null!=C&&(h[v]=C)}}!o.persistent&&o.clean&&o.clean(),this._rawCount=this._count=e,this._extent={},tl(this)}},mA.count=function(){return this._count},mA.getIndices=function(){var t=this._indices;if(t){var e=t.constructor,i=this._count;if(e===Array){n=new e(i);for(o=0;o=0&&e=0&&ea&&(a=s)}return i=[o,a],this._extent[t]=i,i},mA.getApproximateExtent=function(t){return t=this.getDimension(t),this._approximateExtent[t]||this.getDataExtent(t)},mA.setApproximateExtent=function(t,e){e=this.getDimension(e),this._approximateExtent[e]=t.slice()},mA.getCalculationInfo=function(t){return this._calculationInfo[t]},mA.setCalculationInfo=function(t,e){rA(t)?a(this._calculationInfo,t):this._calculationInfo[t]=e},mA.getSum=function(t){var e=0;if(this._storage[t])for(var i=0,n=this.count();i=this._rawCount||t<0)return-1;var e=this._indices,i=e[t];if(null!=i&&it))return a;o=a-1}}return-1},mA.indicesOfNearest=function(t,e,i){var n=[];if(!this._storage[t])return n;null==i&&(i=1/0);for(var o=Number.MAX_VALUE,a=-1,r=0,s=this.count();r=0&&a<0)&&(o=u,a=l,n.length=0),n.push(r))}return n},mA.getRawIndex=il,mA.getRawDataItem=function(t){if(this._rawData.persistent)return this._rawData.getItem(this.getRawIndex(t));for(var e=[],i=0;i=l&&w<=u||isNaN(w))&&(a[r++]=c),c++;h=!0}else if(2===n){for(var d=this._storage[s],v=this._storage[e[1]],y=t[e[1]][0],x=t[e[1]][1],f=0;f=l&&w<=u||isNaN(w))&&(b>=y&&b<=x||isNaN(b))&&(a[r++]=c),c++}h=!0}}if(!h)if(1===n)for(m=0;m=l&&w<=u||isNaN(w))&&(a[r++]=M)}else for(m=0;mt[I][1])&&(S=!1)}S&&(a[r++]=this.getRawIndex(m))}return rb[1]&&(b[1]=w)}}}return o},mA.downSample=function(t,e,i,n){for(var o=rl(this,[t]),a=o._storage,r=[],s=Math.floor(1/e),l=a[t],u=this.count(),h=this._chunkSize,c=o._rawExtent[t],d=new(Ks(this))(u),f=0,p=0;pu-p&&(s=u-p,r.length=s);for(var g=0;gc[1]&&(c[1]=x),d[f++]=_}return o._count=f,o._indices=d,o.getRawIndex=nl,o},mA.getItemModel=function(t){var e=this.hostModel;return new Po(this.getRawDataItem(t),e,e&&e.ecModel)},mA.diff=function(t){var e=this;return new Us(t?t.getIndices():[],this.getIndices(),function(e){return ol(t,e)},function(t){return ol(e,t)})},mA.getVisual=function(t){var e=this._visual;return e&&e[t]},mA.setVisual=function(t,e){if(rA(t))for(var i in t)t.hasOwnProperty(i)&&this.setVisual(i,t[i]);else this._visual=this._visual||{},this._visual[t]=e},mA.setLayout=function(t,e){if(rA(t))for(var i in t)t.hasOwnProperty(i)&&this.setLayout(i,t[i]);else this._layout[t]=e},mA.getLayout=function(t){return this._layout[t]},mA.getItemLayout=function(t){return this._itemLayouts[t]},mA.setItemLayout=function(t,e,i){this._itemLayouts[t]=i?a(this._itemLayouts[t]||{},e):e},mA.clearItemLayouts=function(){this._itemLayouts.length=0},mA.getItemVisual=function(t,e,i){var n=this._itemVisuals[t],o=n&&n[e];return null!=o||i?o:this.getVisual(e)},mA.setItemVisual=function(t,e,i){var n=this._itemVisuals[t]||{},o=this.hasItemVisual;if(this._itemVisuals[t]=n,rA(e))for(var a in e)e.hasOwnProperty(a)&&(n[a]=e[a],o[a]=!0);else n[e]=i,o[e]=!0},mA.clearAllVisual=function(){this._visual={},this._itemVisuals=[],this.hasItemVisual={}};var vA=function(t){t.seriesIndex=this.seriesIndex,t.dataIndex=this.dataIndex,t.dataType=this.dataType};mA.setItemGraphicEl=function(t,e){var i=this.hostModel;e&&(e.dataIndex=t,e.dataType=this.dataType,e.seriesIndex=i&&i.seriesIndex,"group"===e.type&&e.traverse(vA,e)),this._graphicEls[t]=e},mA.getItemGraphicEl=function(t){return this._graphicEls[t]},mA.eachItemGraphicEl=function(t,e){d(this._graphicEls,function(i,n){i&&t&&t.call(e,i,n)})},mA.cloneShallow=function(t){if(!t){var e=f(this.dimensions,this.getDimensionInfo,this);t=new gA(e,this.hostModel)}if(t._storage=this._storage,Js(t,this),this._indices){var i=this._indices.constructor;t._indices=new i(this._indices)}else t._indices=null;return t.getRawIndex=t._indices?nl:il,t},mA.wrapMethod=function(t,e){var i=this[t];"function"==typeof i&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var t=i.apply(this,arguments);return e.apply(this,[t].concat(C(arguments)))})},mA.TRANSFERABLE_METHODS=["cloneShallow","downSample","map"],mA.CHANGABLE_METHODS=["filterSelf","selectRange"];var yA=function(t,e){return e=e||{},ul(e.coordDimensions||[],t,{dimsDef:e.dimensionsDefine||t.dimensionsDefine,encodeDef:e.encodeDefine||t.encodeDefine,dimCount:e.dimensionsCount,generateCoord:e.generateCoord,generateCoordCount:e.generateCoordCount})};yl.prototype.parse=function(t){return t},yl.prototype.getSetting=function(t){return this._setting[t]},yl.prototype.contain=function(t){var e=this._extent;return t>=e[0]&&t<=e[1]},yl.prototype.normalize=function(t){var e=this._extent;return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])},yl.prototype.scale=function(t){var e=this._extent;return t*(e[1]-e[0])+e[0]},yl.prototype.unionExtent=function(t){var e=this._extent;t[0]e[1]&&(e[1]=t[1])},yl.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},yl.prototype.getExtent=function(){return this._extent.slice()},yl.prototype.setExtent=function(t,e){var i=this._extent;isNaN(t)||(i[0]=t),isNaN(e)||(i[1]=e)},yl.prototype.isBlank=function(){return this._isBlank},yl.prototype.setBlank=function(t){this._isBlank=t},yl.prototype.getLabel=null,Xi(yl),Ki(yl,{registerWhenExtend:!0}),xl.createByAxisModel=function(t){var e=t.option,i=e.data,n=i&&f(i,wl);return new xl({categories:n,needCollect:!n,deduplication:!1!==e.dedplication})};var xA=xl.prototype;xA.getOrdinal=function(t){return _l(this).get(t)},xA.parseAndCollect=function(t){var e,i=this._needCollect;if("string"!=typeof t&&!i)return t;if(i&&!this._deduplication)return e=this.categories.length,this.categories[e]=t,e;var n=_l(this);return null==(e=n.get(t))&&(i?(e=this.categories.length,this.categories[e]=t,n.set(t,e)):e=NaN),e};var _A=yl.prototype,wA=yl.extend({type:"ordinal",init:function(t,e){t&&!y(t)||(t=new xl({categories:t})),this._ordinalMeta=t,this._extent=e||[0,t.categories.length-1]},parse:function(t){return"string"==typeof t?this._ordinalMeta.getOrdinal(t):Math.round(t)},contain:function(t){return t=this.parse(t),_A.contain.call(this,t)&&null!=this._ordinalMeta.categories[t]},normalize:function(t){return _A.normalize.call(this,this.parse(t))},scale:function(t){return Math.round(_A.scale.call(this,t))},getTicks:function(){for(var t=[],e=this._extent,i=e[0];i<=e[1];)t.push(i),i++;return t},getLabel:function(t){if(!this.isBlank())return this._ordinalMeta.categories[t]},count:function(){return this._extent[1]-this._extent[0]+1},unionExtentFromData:function(t,e){this.unionExtent(t.getApproximateExtent(e))},getOrdinalMeta:function(){return this._ordinalMeta},niceTicks:B,niceExtent:B});wA.create=function(){return new wA};var bA=Vo,SA=Vo,MA=yl.extend({type:"interval",_interval:0,_intervalPrecision:2,setExtent:function(t,e){var i=this._extent;isNaN(t)||(i[0]=parseFloat(t)),isNaN(e)||(i[1]=parseFloat(e))},unionExtent:function(t){var e=this._extent;t[0]e[1]&&(e[1]=t[1]),MA.prototype.setExtent.call(this,e[0],e[1])},getInterval:function(){return this._interval},setInterval:function(t){this._interval=t,this._niceExtent=this._extent.slice(),this._intervalPrecision=Sl(t)},getTicks:function(){return Tl(this._interval,this._extent,this._niceExtent,this._intervalPrecision)},getLabel:function(t,e){if(null==t)return"";var i=e&&e.precision;return null==i?i=Wo(t)||0:"auto"===i&&(i=this._intervalPrecision),t=SA(t,i,!0),Qo(t)},niceTicks:function(t,e,i){t=t||5;var n=this._extent,o=n[1]-n[0];if(isFinite(o)){o<0&&(o=-o,n.reverse());var a=bl(n,t,e,i);this._intervalPrecision=a.intervalPrecision,this._interval=a.interval,this._niceExtent=a.niceTickExtent}},niceExtent:function(t){var e=this._extent;if(e[0]===e[1])if(0!==e[0]){var i=e[0];t.fixMax?e[0]-=i/2:(e[1]+=i/2,e[0]-=i/2)}else e[1]=1;var n=e[1]-e[0];isFinite(n)||(e[0]=0,e[1]=1),this.niceTicks(t.splitNumber,t.minInterval,t.maxInterval);var o=this._interval;t.fixMin||(e[0]=SA(Math.floor(e[0]/o)*o)),t.fixMax||(e[1]=SA(Math.ceil(e[1]/o)*o))}});MA.create=function(){return new MA};var IA="__ec_stack_",TA="undefined"!=typeof Float32Array?Float32Array:Array,AA={seriesType:"bar",plan:$I(),reset:function(t){if(El(t)&&Rl(t)){var e=t.getData(),i=t.coordinateSystem,n=i.getBaseAxis(),o=i.getOtherAxis(n),a=e.mapDimension(o.dim),r=e.mapDimension(n.dim),s=o.isHorizontal(),l=s?0:1,u=Nl(kl([t]),n,t).width;return u>.5||(u=.5),{progress:function(t,e){for(var n,h=new TA(2*t.count),c=[],d=[],f=0;null!=(n=t.next());)d[l]=e.get(a,n),d[1-l]=e.get(r,n),c=i.dataToPoint(d,null,c),h[f++]=c[0],h[f++]=c[1];e.setLayout({largePoints:h,barWidth:u,valueAxisStart:zl(0,o),valueAxisHorizontal:s})}}}}},DA=MA.prototype,CA=Math.ceil,LA=Math.floor,kA=function(t,e,i,n){for(;i>>1;t[o][1]i&&(a=i);var r=NA.length,s=kA(NA,a,0,r),l=NA[Math.min(s,r-1)],u=l[1];"year"===l[0]&&(u*=Ko(o/u/t,!0));var h=this.getSetting("useUTC")?0:60*new Date(+n[0]||+n[1]).getTimezoneOffset()*1e3,c=[Math.round(CA((n[0]-h)/u)*u+h),Math.round(LA((n[1]-h)/u)*u+h)];Il(c,n),this._stepLvl=l,this._interval=u,this._niceExtent=c},parse:function(t){return+jo(t)}});d(["contain","normalize"],function(t){PA.prototype[t]=function(e){return DA[t].call(this,this.parse(e))}});var NA=[["hh:mm:ss",1e3],["hh:mm:ss",5e3],["hh:mm:ss",1e4],["hh:mm:ss",15e3],["hh:mm:ss",3e4],["hh:mm\nMM-dd",6e4],["hh:mm\nMM-dd",3e5],["hh:mm\nMM-dd",6e5],["hh:mm\nMM-dd",9e5],["hh:mm\nMM-dd",18e5],["hh:mm\nMM-dd",36e5],["hh:mm\nMM-dd",72e5],["hh:mm\nMM-dd",216e5],["hh:mm\nMM-dd",432e5],["MM-dd\nyyyy",864e5],["MM-dd\nyyyy",1728e5],["MM-dd\nyyyy",2592e5],["MM-dd\nyyyy",3456e5],["MM-dd\nyyyy",432e6],["MM-dd\nyyyy",5184e5],["week",6048e5],["MM-dd\nyyyy",864e6],["week",12096e5],["week",18144e5],["month",26784e5],["week",36288e5],["month",53568e5],["week",6048e6],["quarter",8208e6],["month",107136e5],["month",13392e6],["half-year",16416e6],["month",214272e5],["month",26784e6],["year",32832e6]];PA.create=function(t){return new PA({useUTC:t.ecModel.get("useUTC")})};var OA=yl.prototype,EA=MA.prototype,RA=Wo,zA=Vo,BA=Math.floor,VA=Math.ceil,GA=Math.pow,FA=Math.log,WA=yl.extend({type:"log",base:10,$constructor:function(){yl.apply(this,arguments),this._originalScale=new MA},getTicks:function(){var t=this._originalScale,e=this._extent,i=t.getExtent();return f(EA.getTicks.call(this),function(n){var o=Vo(GA(this.base,n));return o=n===e[0]&&t.__fixMin?Bl(o,i[0]):o,o=n===e[1]&&t.__fixMax?Bl(o,i[1]):o},this)},getLabel:EA.getLabel,scale:function(t){return t=OA.scale.call(this,t),GA(this.base,t)},setExtent:function(t,e){var i=this.base;t=FA(t)/FA(i),e=FA(e)/FA(i),EA.setExtent.call(this,t,e)},getExtent:function(){var t=this.base,e=OA.getExtent.call(this);e[0]=GA(t,e[0]),e[1]=GA(t,e[1]);var i=this._originalScale,n=i.getExtent();return i.__fixMin&&(e[0]=Bl(e[0],n[0])),i.__fixMax&&(e[1]=Bl(e[1],n[1])),e},unionExtent:function(t){this._originalScale.unionExtent(t);var e=this.base;t[0]=FA(t[0])/FA(e),t[1]=FA(t[1])/FA(e),OA.unionExtent.call(this,t)},unionExtentFromData:function(t,e){this.unionExtent(t.getApproximateExtent(e))},niceTicks:function(t){t=t||10;var e=this._extent,i=e[1]-e[0];if(!(i===1/0||i<=0)){var n=Yo(i);for(t/i*n<=.5&&(n*=10);!isNaN(n)&&Math.abs(n)<1&&Math.abs(n)>0;)n*=10;var o=[Vo(VA(e[0]/n)*n),Vo(BA(e[1]/n)*n)];this._interval=n,this._niceExtent=o}},niceExtent:function(t){EA.niceExtent.call(this,t);var e=this._originalScale;e.__fixMin=t.fixMin,e.__fixMax=t.fixMax}});d(["contain","normalize"],function(t){WA.prototype[t]=function(e){return e=FA(e)/FA(this.base),OA[t].call(this,e)}}),WA.create=function(){return new WA};var HA={getMin:function(t){var e=this.option,i=t||null==e.rangeStart?e.min:e.rangeStart;return this.axis&&null!=i&&"dataMin"!==i&&"function"!=typeof i&&!I(i)&&(i=this.axis.scale.parse(i)),i},getMax:function(t){var e=this.option,i=t||null==e.rangeEnd?e.max:e.rangeEnd;return this.axis&&null!=i&&"dataMax"!==i&&"function"!=typeof i&&!I(i)&&(i=this.axis.scale.parse(i)),i},getNeedCrossZero:function(){var t=this.option;return null==t.rangeStart&&null==t.rangeEnd&&!t.scale},getCoordSysModel:B,setRange:function(t,e){this.option.rangeStart=t,this.option.rangeEnd=e},resetRange:function(){this.option.rangeStart=this.option.rangeEnd=null}},ZA=Zn({type:"triangle",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var i=e.cx,n=e.cy,o=e.width/2,a=e.height/2;t.moveTo(i,n-a),t.lineTo(i+o,n+a),t.lineTo(i-o,n+a),t.closePath()}}),UA=Zn({type:"diamond",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var i=e.cx,n=e.cy,o=e.width/2,a=e.height/2;t.moveTo(i,n-a),t.lineTo(i+o,n),t.lineTo(i,n+a),t.lineTo(i-o,n),t.closePath()}}),XA=Zn({type:"pin",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var i=e.x,n=e.y,o=e.width/5*3,a=Math.max(o,e.height),r=o/2,s=r*r/(a-r),l=n-a+r+s,u=Math.asin(s/r),h=Math.cos(u)*r,c=Math.sin(u),d=Math.cos(u),f=.6*r,p=.7*r;t.moveTo(i-h,l+s),t.arc(i,l,r,Math.PI-u,2*Math.PI+u),t.bezierCurveTo(i+h-c*f,l+s+d*f,i,n-p,i,n),t.bezierCurveTo(i,n-p,i-h+c*f,l+s+d*f,i-h,l+s),t.closePath()}}),jA=Zn({type:"arrow",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var i=e.height,n=e.width,o=e.x,a=e.y,r=n/3*2;t.moveTo(o,a),t.lineTo(o+r,a+i),t.lineTo(o,a+i/4*3),t.lineTo(o-r,a+i),t.lineTo(o,a),t.closePath()}}),YA={line:function(t,e,i,n,o){o.x1=t,o.y1=e+n/2,o.x2=t+i,o.y2=e+n/2},rect:function(t,e,i,n,o){o.x=t,o.y=e,o.width=i,o.height=n},roundRect:function(t,e,i,n,o){o.x=t,o.y=e,o.width=i,o.height=n,o.r=Math.min(i,n)/4},square:function(t,e,i,n,o){var a=Math.min(i,n);o.x=t,o.y=e,o.width=a,o.height=a},circle:function(t,e,i,n,o){o.cx=t+i/2,o.cy=e+n/2,o.r=Math.min(i,n)/2},diamond:function(t,e,i,n,o){o.cx=t+i/2,o.cy=e+n/2,o.width=i,o.height=n},pin:function(t,e,i,n,o){o.x=t+i/2,o.y=e+n/2,o.width=i,o.height=n},arrow:function(t,e,i,n,o){o.x=t+i/2,o.y=e+n/2,o.width=i,o.height=n},triangle:function(t,e,i,n,o){o.cx=t+i/2,o.cy=e+n/2,o.width=i,o.height=n}},qA={};d({line:_M,rect:yM,roundRect:yM,square:yM,circle:sM,diamond:UA,pin:XA,arrow:jA,triangle:ZA},function(t,e){qA[e]=new t});var KA=Zn({type:"symbol",shape:{symbolType:"",x:0,y:0,width:0,height:0},beforeBrush:function(){var t=this.style;"pin"===this.shape.symbolType&&"inside"===t.textPosition&&(t.textPosition=["50%","40%"],t.textAlign="center",t.textVerticalAlign="middle")},buildPath:function(t,e,i){var n=e.symbolType,o=qA[n];"none"!==e.symbolType&&(o||(o=qA[n="rect"]),YA[n](e.x,e.y,e.width,e.height,o.shape),o.buildPath(t,o.shape,i))}}),$A={isDimensionStacked:fl,enableDataStack:dl,getStackedDimension:pl},JA=(Object.freeze||Object)({createList:function(t){return gl(t.getSource(),t)},getLayoutRect:ha,dataStack:$A,createScale:function(t,e){var i=e;Po.isInstance(e)||h(i=new Po(e),HA);var n=Wl(i);return n.setExtent(t[0],t[1]),Fl(n,i),n},mixinAxisModelCommonMethods:function(t){h(t,HA)},completeDimensions:ul,createDimensions:yA,createSymbol:$l}),QA=1e-8;tu.prototype={constructor:tu,properties:null,getBoundingRect:function(){var t=this._rect;if(t)return t;for(var e=Number.MAX_VALUE,i=[e,e],n=[-e,-e],o=[],a=[],r=this.geometries,s=0;s0}),function(t){var e=t.properties,i=t.geometry,n=i.coordinates,o=[];"Polygon"===i.type&&o.push({type:"polygon",exterior:n[0],interiors:n.slice(1)}),"MultiPolygon"===i.type&&d(n,function(t){t[0]&&o.push({type:"polygon",exterior:t[0],interiors:t.slice(1)})});var a=new tu(e.name,o,e.cp);return a.properties=e,a})},eD=Bi(),iD=[0,1],nD=function(t,e,i){this.dim=t,this.scale=e,this._extent=i||[0,0],this.inverse=!1,this.onBand=!1};nD.prototype={constructor:nD,contain:function(t){var e=this._extent,i=Math.min(e[0],e[1]),n=Math.max(e[0],e[1]);return t>=i&&t<=n},containData:function(t){return this.contain(this.dataToCoord(t))},getExtent:function(){return this._extent.slice()},getPixelPrecision:function(t){return Ho(t||this.scale.getExtent(),this._extent)},setExtent:function(t,e){var i=this._extent;i[0]=t,i[1]=e},dataToCoord:function(t,e){var i=this._extent,n=this.scale;return t=n.normalize(t),this.onBand&&"ordinal"===n.type&&vu(i=i.slice(),n.count()),zo(t,iD,i,e)},coordToData:function(t,e){var i=this._extent,n=this.scale;this.onBand&&"ordinal"===n.type&&vu(i=i.slice(),n.count());var o=zo(t,i,iD,e);return this.scale.scale(o)},pointToData:function(t,e){},getTicksCoords:function(t){var e=(t=t||{}).tickModel||this.getTickModel(),i=ou(this,e),n=f(i.ticks,function(t){return{coord:this.dataToCoord(t),tickValue:t}},this),o=e.get("alignWithLabel");return yu(this,n,i.tickCategoryInterval,o,t.clamp),n},getViewLabels:function(){return nu(this).labels},getLabelModel:function(){return this.model.getModel("axisLabel")},getTickModel:function(){return this.model.getModel("axisTick")},getBandWidth:function(){var t=this._extent,e=this.scale.getExtent(),i=e[1]-e[0]+(this.onBand?1:0);0===i&&(i=1);var n=Math.abs(t[1]-t[0]);return Math.abs(n)/i},isHorizontal:null,getRotate:null,calculateCategoryInterval:function(){return fu(this)}};var oD=tD,aD={};d(["map","each","filter","indexOf","inherits","reduce","filter","bind","curry","isArray","isString","isObject","isFunction","extend","defaults","clone","merge"],function(t){aD[t]=aw[t]});var rD={};d(["extendShape","extendPath","makePath","makeImage","mergePath","resizePath","createIcon","setHoverStyle","setLabelStyle","setTextStyle","setText","getFont","updateProps","initProps","getTransform","clipPointsByRect","clipRectByRect","Group","Image","Text","Circle","Sector","Ring","Polygon","Polyline","Rect","Line","BezierCurve","Arc","IncrementalDisplayable","CompoundPath","LinearGradient","RadialGradient","BoundingRect"],function(t){rD[t]=zM[t]}),YI.extend({type:"series.line",dependencies:["grid","polar"],getInitialData:function(t,e){return gl(this.getSource(),this)},defaultOption:{zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,hoverAnimation:!0,clipOverflow:!0,label:{position:"top"},lineStyle:{width:2,type:"solid"},step:!1,smooth:!1,smoothMonotone:null,symbol:"emptyCircle",symbolSize:4,symbolRotate:null,showSymbol:!0,showAllSymbol:"auto",connectNulls:!1,sampling:"none",animationEasing:"linear",progressive:0,hoverLayerThreshold:1/0}});var sD=_u.prototype,lD=_u.getSymbolSize=function(t,e){var i=t.getItemVisual(e,"symbolSize");return i instanceof Array?i.slice():[+i,+i]};sD._createSymbol=function(t,e,i,n,o){this.removeAll();var a=$l(t,-1,-1,2,2,e.getItemVisual(i,"color"),o);a.attr({z2:100,culling:!0,scale:wu(n)}),a.drift=bu,this._symbolType=t,this.add(a)},sD.stopSymbolAnimation=function(t){this.childAt(0).stopAnimation(t)},sD.getSymbolPath=function(){return this.childAt(0)},sD.getScale=function(){return this.childAt(0).scale},sD.highlight=function(){this.childAt(0).trigger("emphasis")},sD.downplay=function(){this.childAt(0).trigger("normal")},sD.setZ=function(t,e){var i=this.childAt(0);i.zlevel=t,i.z=e},sD.setDraggable=function(t){var e=this.childAt(0);e.draggable=t,e.cursor=t?"move":"pointer"},sD.updateData=function(t,e,i){this.silent=!1;var n=t.getItemVisual(e,"symbol")||"circle",o=t.hostModel,a=lD(t,e),r=n!==this._symbolType;if(r){var s=t.getItemVisual(e,"symbolKeepAspect");this._createSymbol(n,t,e,a,s)}else(l=this.childAt(0)).silent=!1,Mo(l,{scale:wu(a)},o,e);if(this._updateCommon(t,e,a,i),r){var l=this.childAt(0),u=i&&i.fadeIn,h={scale:l.scale.slice()};u&&(h.style={opacity:l.style.opacity}),l.scale=[0,0],u&&(l.style.opacity=0),Io(l,h,o,e)}this._seriesModel=o};var uD=["itemStyle"],hD=["emphasis","itemStyle"],cD=["label"],dD=["emphasis","label"];sD._updateCommon=function(t,e,i,n){var o=this.childAt(0),r=t.hostModel,s=t.getItemVisual(e,"color");"image"!==o.type&&o.useStyle({strokeNoScale:!0});var l=n&&n.itemStyle,u=n&&n.hoverItemStyle,h=n&&n.symbolRotate,c=n&&n.symbolOffset,d=n&&n.labelModel,f=n&&n.hoverLabelModel,p=n&&n.hoverAnimation,g=n&&n.cursorStyle;if(!n||t.hasItemOption){var m=n&&n.itemModel?n.itemModel:t.getItemModel(e);l=m.getModel(uD).getItemStyle(["color"]),u=m.getModel(hD).getItemStyle(),h=m.getShallow("symbolRotate"),c=m.getShallow("symbolOffset"),d=m.getModel(cD),f=m.getModel(dD),p=m.getShallow("hoverAnimation"),g=m.getShallow("cursor")}else u=a({},u);var v=o.style;o.attr("rotation",(h||0)*Math.PI/180||0),c&&o.attr("position",[Bo(c[0],i[0]),Bo(c[1],i[1])]),g&&o.attr("cursor",g),o.setColor(s,n&&n.symbolInnerColor),o.setStyle(l);var y=t.getItemVisual(e,"opacity");null!=y&&(v.opacity=y);var x=t.getItemVisual(e,"liftZ"),_=o.__z2Origin;null!=x?null==_&&(o.__z2Origin=o.z2,o.z2+=x):null!=_&&(o.z2=_,o.__z2Origin=null);var w=n&&n.useNameLabel;po(v,u,d,f,{labelFetcher:r,labelDataIndex:e,defaultText:function(e,i){return w?t.getName(e):xu(t,e)},isRectText:!0,autoColor:s}),o.off("mouseover").off("mouseout").off("emphasis").off("normal"),o.hoverStyle=u,co(o),o.__symbolOriginalScale=wu(i),p&&r.isAnimationEnabled()&&o.on("mouseover",Su).on("mouseout",Mu).on("emphasis",Iu).on("normal",Tu)},sD.fadeOut=function(t,e){var i=this.childAt(0);this.silent=i.silent=!0,!(e&&e.keepLabel)&&(i.style.text=null),Mo(i,{style:{opacity:0},scale:[0,0]},this._seriesModel,this.dataIndex,t)},u(_u,tb);var fD=Au.prototype;fD.updateData=function(t,e){e=Cu(e);var i=this.group,n=t.hostModel,o=this._data,a=this._symbolCtor,r=Lu(t);o||i.removeAll(),t.diff(o).add(function(n){var o=t.getItemLayout(n);if(Du(t,o,n,e)){var s=new a(t,n,r);s.attr("position",o),t.setItemGraphicEl(n,s),i.add(s)}}).update(function(s,l){var u=o.getItemGraphicEl(l),h=t.getItemLayout(s);Du(t,h,s,e)?(u?(u.updateData(t,s,r),Mo(u,{position:h},n)):(u=new a(t,s)).attr("position",h),i.add(u),t.setItemGraphicEl(s,u)):i.remove(u)}).remove(function(t){var e=o.getItemGraphicEl(t);e&&e.fadeOut(function(){i.remove(e)})}).execute(),this._data=t},fD.isPersistent=function(){return!0},fD.updateLayout=function(){var t=this._data;t&&t.eachItemGraphicEl(function(e,i){var n=t.getItemLayout(i);e.attr("position",n)})},fD.incrementalPrepareUpdate=function(t){this._seriesScope=Lu(t),this._data=null,this.group.removeAll()},fD.incrementalUpdate=function(t,e,i){i=Cu(i);for(var n=t.start;n0&&Eu(i[o-1]);o--);for(;n0&&Eu(i[a-1]);a--);for(;o=0){var r=o.getItemGraphicEl(a);if(!r){var s=o.getItemLayout(a);if(!s)return;(r=new _u(o,a)).position=s,r.setZ(t.get("zlevel"),t.get("z")),r.ignore=isNaN(s[0])||isNaN(s[1]),r.__temp=!0,o.setItemGraphicEl(a,r),r.stopSymbolAnimation(!0),this.group.add(r)}r.highlight()}else Tr.prototype.highlight.call(this,t,e,i,n)},downplay:function(t,e,i,n){var o=t.getData(),a=zi(o,n);if(null!=a&&a>=0){var r=o.getItemGraphicEl(a);r&&(r.__temp?(o.setItemGraphicEl(a,null),this.group.remove(r)):r.downplay())}else Tr.prototype.downplay.call(this,t,e,i,n)},_newPolyline:function(t){var e=this._polyline;return e&&this._lineGroup.remove(e),e=new bD({shape:{points:t},silent:!0,z2:10}),this._lineGroup.add(e),this._polyline=e,e},_newPolygon:function(t,e){var i=this._polygon;return i&&this._lineGroup.remove(i),i=new SD({shape:{points:t,stackedOnPoints:e},silent:!0}),this._lineGroup.add(i),this._polygon=i,i},_updateAnimation:function(t,e,i,n,o,a){var r=this._polyline,s=this._polygon,l=t.hostModel,u=pD(this._data,t,this._stackedOnPoints,e,this._coordSys,i,this._valueOrigin,a),h=u.current,c=u.stackedOnCurrent,d=u.next,f=u.stackedOnNext;o&&(h=ju(u.current,i,o),c=ju(u.stackedOnCurrent,i,o),d=ju(u.next,i,o),f=ju(u.stackedOnNext,i,o)),r.shape.__points=u.current,r.shape.points=h,Mo(r,{shape:{points:d}},l),s&&(s.setShape({points:h,stackedOnPoints:c}),Mo(s,{shape:{points:d,stackedOnPoints:f}},l));for(var p=[],g=u.status,m=0;me&&(e=t[i]);return isFinite(e)?e:NaN},min:function(t){for(var e=1/0,i=0;ie[1]&&e.reverse(),e},getOtherAxis:function(){this.grid.getOtherAxis()},pointToData:function(t,e){return this.coordToData(this.toLocalCoord(t["x"===this.dim?0:1]),e)},toLocalCoord:null,toGlobalCoord:null},u(CD,nD);var LD={show:!0,zlevel: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:"#333",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:["#ccc"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.3)","rgba(200,200,200,0.3)"]}}},kD={};kD.categoryAxis=n({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},LD),kD.valueAxis=n({boundaryGap:[0,0],splitNumber:5},LD),kD.timeAxis=r({scale:!0,min:"dataMin",max:"dataMax"},kD.valueAxis),kD.logAxis=r({scale:!0,logBase:10},kD.valueAxis);var PD=["value","category","time","log"],ND=function(t,e,i,a){d(PD,function(r){e.extend({type:t+"Axis."+r,mergeDefaultAndTheme:function(e,o){var a=this.layoutMode,s=a?pa(e):{};n(e,o.getTheme().get(r+"Axis")),n(e,this.getDefaultOption()),e.type=i(t,e),a&&fa(e,s,a)},optionUpdated:function(){"category"===this.option.type&&(this.__ordinalMeta=xl.createByAxisModel(this))},getCategories:function(t){var e=this.option;if("category"===e.type)return t?e.data:this.__ordinalMeta.categories},getOrdinalMeta:function(){return this.__ordinalMeta},defaultOption:o([{},kD[r+"Axis"],a],!0)})}),lI.registerSubTypeDefaulter(t+"Axis",v(i,t))},OD=lI.extend({type:"cartesian2dAxis",axis:null,init:function(){OD.superApply(this,"init",arguments),this.resetRange()},mergeOption:function(){OD.superApply(this,"mergeOption",arguments),this.resetRange()},restoreData:function(){OD.superApply(this,"restoreData",arguments),this.resetRange()},getCoordSysModel:function(){return this.ecModel.queryComponents({mainType:"grid",index:this.option.gridIndex,id:this.option.gridId})[0]}});n(OD.prototype,HA);var ED={offset:0};ND("x",OD,Qu,ED),ND("y",OD,Qu,ED),lI.extend({type:"grid",dependencies:["xAxis","yAxis"],layoutMode:"box",coordinateSystem:null,defaultOption:{show:!1,zlevel:0,z:0,left:"10%",top:60,right:"10%",bottom:60,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"}});var RD=eh.prototype;RD.type="grid",RD.axisPointerEnabled=!0,RD.getRect=function(){return this._rect},RD.update=function(t,e){var i=this._axesMap;this._updateScale(t,this.model),d(i.x,function(t){Fl(t.scale,t.model)}),d(i.y,function(t){Fl(t.scale,t.model)});var n={};d(i.x,function(t){ih(i,"y",t,n)}),d(i.y,function(t){ih(i,"x",t,n)}),this.resize(this.model,e)},RD.resize=function(t,e,i){function n(){d(a,function(t){var e=t.isHorizontal(),i=e?[0,o.width]:[0,o.height],n=t.inverse?1:0;t.setExtent(i[n],i[1-n]),oh(t,e?o.x:o.y)})}var o=ha(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()});this._rect=o;var a=this._axesList;n(),!i&&t.get("containLabel")&&(d(a,function(t){if(!t.model.get("axisLabel.inside")){var e=Xl(t);if(e){var i=t.isHorizontal()?"height":"width",n=t.model.get("axisLabel.margin");o[i]-=e[i]+n,"top"===t.position?o.y+=e.height+n:"left"===t.position&&(o.x+=e.width+n)}}}),n())},RD.getAxis=function(t,e){var i=this._axesMap[t];if(null!=i){if(null==e)for(var n in i)if(i.hasOwnProperty(n))return i[n];return i[e]}},RD.getAxes=function(){return this._axesList.slice()},RD.getCartesian=function(t,e){if(null!=t&&null!=e){var i="x"+t+"y"+e;return this._coordsMap[i]}w(t)&&(e=t.yAxisIndex,t=t.xAxisIndex);for(var n=0,o=this._coordsList;nu[1]?-1:1,c=["start"===o?u[0]-h*l:"end"===o?u[1]+h*l:(u[0]+u[1])/2,fh(o)?t.labelOffset+r*l:0],d=e.get("nameRotate");null!=d&&(d=d*BD/180);var f;fh(o)?n=FD(t.rotation,null!=d?d:t.rotation,r):(n=lh(t,o,d||0,u),null!=(f=t.axisNameAvailableWidth)&&(f=Math.abs(f/Math.sin(n.rotation)),!isFinite(f)&&(f=null)));var p=s.getFont(),g=e.get("nameTruncate",!0)||{},m=g.ellipsis,v=T(t.nameTruncateMaxWidth,g.maxWidth,f),y=null!=m&&null!=v?tI(i,v,p,m,{minChar:2,placeholder:g.placeholder}):i,x=e.get("tooltip",!0),_=e.mainType,w={componentType:_,name:i,$vars:["name"]};w[_+"Index"]=e.componentIndex;var b=new rM({anid:"name",__fullText:i,__truncatedText:y,position:c,rotation:n.rotation,silent:uh(e),z2:1,tooltip:x&&x.show?a({content:i,formatter:function(){return i},formatterParams:w},x):null});go(b.style,s,{text:y,textFont:p,textFill:s.getTextColor()||e.get("axisLine.lineStyle.color"),textAlign:n.textAlign,textVerticalAlign:n.textVerticalAlign}),e.get("triggerEvent")&&(b.eventData=sh(e),b.eventData.targetType="axisName",b.eventData.name=i),this._dumbGroup.add(b),b.updateTransform(),this.group.add(b),b.decomposeTransform()}}},FD=VD.innerTextLayout=function(t,e,i){var n,o,a=Uo(e-t);return Xo(a)?(o=i>0?"top":"bottom",n="center"):Xo(a-BD)?(o=i>0?"bottom":"top",n="center"):(o="middle",n=a>0&&a0?"right":"left":i>0?"left":"right"),{rotation:a,textAlign:n,textVerticalAlign:o}},WD=d,HD=v,ZD=Fs({type:"axis",_axisPointer:null,axisPointerClass:null,render:function(t,e,i,n){this.axisPointerClass&&bh(t),ZD.superApply(this,"render",arguments),Ah(this,t,0,i,0,!0)},updateAxisPointer:function(t,e,i,n,o){Ah(this,t,0,i,0,!1)},remove:function(t,e){var i=this._axisPointer;i&&i.remove(e),ZD.superApply(this,"remove",arguments)},dispose:function(t,e){Dh(this,e),ZD.superApply(this,"dispose",arguments)}}),UD=[];ZD.registerAxisPointerClass=function(t,e){UD[t]=e},ZD.getAxisPointerClass=function(t){return t&&UD[t]};var XD=["axisLine","axisTickLabel","axisName"],jD=["splitArea","splitLine"],YD=ZD.extend({type:"cartesianAxis",axisPointerClass:"CartesianAxisPointer",render:function(t,e,i,n){this.group.removeAll();var o=this._axisGroup;if(this._axisGroup=new tb,this.group.add(this._axisGroup),t.get("show")){var a=t.getCoordSysModel(),r=Ch(a,t),s=new VD(t,r);d(XD,s.add,s),this._axisGroup.add(s.getGroup()),d(jD,function(e){t.get(e+".show")&&this["_"+e](t,a)},this),Co(o,this._axisGroup,t),YD.superCall(this,"render",t,e,i,n)}},remove:function(){this._splitAreaColors=null},_splitLine:function(t,e){var i=t.axis;if(!i.scale.isBlank()){var n=t.getModel("splitLine"),o=n.getModel("lineStyle"),a=o.get("color");a=y(a)?a:[a];for(var s=e.coordinateSystem.getRect(),l=i.isHorizontal(),u=0,h=i.getTicksCoords({tickModel:n}),c=[],d=[],f=o.getLineStyle(),p=0;p1){var c;"string"==typeof o?c=TD[o]:"function"==typeof o&&(c=o),c&&t.setData(n.downSample(n.mapDimension(s.dim),1/h,c,AD))}}}}}("line"));var qD=YI.extend({type:"series.__base_bar__",getInitialData:function(t,e){return gl(this.getSource(),this)},getMarkerPosition:function(t){var e=this.coordinateSystem;if(e){var i=e.dataToPoint(e.clampData(t)),n=this.getData(),o=n.getLayout("offset"),a=n.getLayout("size");return i[e.getBaseAxis().isHorizontal()?0:1]+=o+a/2,i}return[NaN,NaN]},defaultOption:{zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,barMinHeight:0,barMinAngle:0,large:!1,largeThreshold:400,progressive:3e3,progressiveChunkMode:"mod",itemStyle:{},emphasis:{}}});qD.extend({type:"series.bar",dependencies:["grid","polar"],brushSelector:"rect",getProgressive:function(){return!!this.get("large")&&this.get("progressive")},getProgressiveThreshold:function(){var t=this.get("progressiveThreshold"),e=this.get("largeThreshold");return e>t&&(t=e),t}});var KD=Qb([["fill","color"],["stroke","borderColor"],["lineWidth","borderWidth"],["stroke","barBorderColor"],["lineWidth","barBorderWidth"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]),$D={getBarItemStyle:function(t){var e=KD(this,t);if(this.getBorderLineDash){var i=this.getBorderLineDash();i&&(e.lineDash=i)}return e}},JD=["itemStyle","barBorderWidth"];a(Po.prototype,$D),Hs({type:"bar",render:function(t,e,i){this._updateDrawMode(t);var n=t.get("coordinateSystem");return"cartesian2d"!==n&&"polar"!==n||(this._isLargeDraw?this._renderLarge(t,e,i):this._renderNormal(t,e,i)),this.group},incrementalPrepareRender:function(t,e,i){this._clear(),this._updateDrawMode(t)},incrementalRender:function(t,e,i,n){this._incrementalRenderLarge(t,e)},_updateDrawMode:function(t){var e=t.pipelineContext.large;(null==this._isLargeDraw||e^this._isLargeDraw)&&(this._isLargeDraw=e,this._clear())},_renderNormal:function(t,e,i){var n,o=this.group,a=t.getData(),r=this._data,s=t.coordinateSystem,l=s.getBaseAxis();"cartesian2d"===s.type?n=l.isHorizontal():"polar"===s.type&&(n="angle"===l.dim);var u=t.isAnimationEnabled()?t:null;a.diff(r).add(function(e){if(a.hasValue(e)){var i=a.getItemModel(e),r=tC[s.type](a,e,i),l=QD[s.type](a,e,i,r,n,u);a.setItemGraphicEl(e,l),o.add(l),Oh(l,a,e,i,r,t,n,"polar"===s.type)}}).update(function(e,i){var l=r.getItemGraphicEl(i);if(a.hasValue(e)){var h=a.getItemModel(e),c=tC[s.type](a,e,h);l?Mo(l,{shape:c},u,e):l=QD[s.type](a,e,h,c,n,u,!0),a.setItemGraphicEl(e,l),o.add(l),Oh(l,a,e,h,c,t,n,"polar"===s.type)}else o.remove(l)}).remove(function(t){var e=r.getItemGraphicEl(t);"cartesian2d"===s.type?e&&Ph(t,u,e):e&&Nh(t,u,e)}).execute(),this._data=a},_renderLarge:function(t,e,i){this._clear(),Rh(t,this.group)},_incrementalRenderLarge:function(t,e){Rh(e,this.group,!0)},dispose:B,remove:function(t){this._clear(t)},_clear:function(t){var e=this.group,i=this._data;t&&t.get("animation")&&i&&!this._isLargeDraw?i.eachItemGraphicEl(function(e){"sector"===e.type?Nh(e.dataIndex,t,e):Ph(e.dataIndex,t,e)}):e.removeAll(),this._data=null}});var QD={cartesian2d:function(t,e,i,n,o,r,s){var l=new yM({shape:a({},n)});if(r){var u=l.shape,h=o?"height":"width",c={};u[h]=0,c[h]=n[h],zM[s?"updateProps":"initProps"](l,{shape:c},r,e)}return l},polar:function(t,e,i,n,o,a,s){var l=n.startAngle0?1:-1,r=n.height>0?1:-1;return{x:n.x+a*o/2,y:n.y+r*o/2,width:n.width-a*o,height:n.height-r*o}},polar:function(t,e,i){var n=t.getItemLayout(e);return{cx:n.cx,cy:n.cy,r0:n.r0,r:n.r,startAngle:n.startAngle,endAngle:n.endAngle}}},eC=kn.extend({type:"largeBar",shape:{points:[]},buildPath:function(t,e){for(var i=e.points,n=this.__startPoint,o=this.__valueIdx,a=0;a0&&"scale"!==u){var d=o.getItemLayout(0),f=Math.max(i.getWidth(),i.getHeight())/2,p=m(r.removeClipPath,r);r.setClipPath(this._createClipPath(d.cx,d.cy,f,d.startAngle,d.clockwise,p,t))}else r.removeClipPath();this._data=o}},dispose:function(){},_createClipPath:function(t,e,i,n,o,a,r){var s=new hM({shape:{cx:t,cy:e,r0:0,r:i,startAngle:n,endAngle:n,clockwise:o}});return Io(s,{shape:{endAngle:n+(o?1:-1)*Math.PI*2}},r,a),s},containPoint:function(t,e){var i=e.getData().getItemLayout(0);if(i){var n=t[0]-i.cx,o=t[1]-i.cy,a=Math.sqrt(n*n+o*o);return a<=i.r&&a>=i.r0}}});var rC=function(t,e){d(e,function(e){e.update="updateView",Os(e,function(i,n){var o={};return n.eachComponent({mainType:"series",subType:t,query:i},function(t){t[e.method]&&t[e.method](i.name,i.dataIndex);var n=t.getData();n.each(function(e){var i=n.getName(e);o[i]=t.isSelected(i)||!1})}),{name:i.name,selected:o}})})},sC=function(t){return{getTargetSeries:function(e){var i={},n=R();return e.eachSeriesByType(t,function(t){t.__paletteScope=i,n.set(t.uid,t)}),n},reset:function(t,e){var i=t.getRawData(),n={},o=t.getData();o.each(function(t){var e=o.getRawIndex(t);n[e]=t}),i.each(function(e){var a=n[e],r=null!=a&&o.getItemVisual(a,"color",!0);if(r)i.setItemVisual(e,"color",r);else{var s=i.getItemModel(e).get("itemStyle.color")||t.getColorFromPalette(i.getName(e)||e+"",t.__paletteScope,i.count());i.setItemVisual(e,"color",s),null!=a&&o.setItemVisual(a,"color",s)}})}}},lC=function(t,e,i,n){var o,a,r=t.getData(),s=[],l=!1;r.each(function(i){var n,u,h,c,d=r.getItemLayout(i),f=r.getItemModel(i),p=f.getModel("label"),g=p.get("position")||f.get("emphasis.label.position"),m=f.getModel("labelLine"),v=m.get("length"),y=m.get("length2"),x=(d.startAngle+d.endAngle)/2,_=Math.cos(x),w=Math.sin(x);o=d.cx,a=d.cy;var b="inside"===g||"inner"===g;if("center"===g)n=d.cx,u=d.cy,c="center";else{var S=(b?(d.r+d.r0)/2*_:d.r*_)+o,M=(b?(d.r+d.r0)/2*w:d.r*w)+a;if(n=S+3*_,u=M+3*w,!b){var I=S+_*(v+e-d.r),T=M+w*(v+e-d.r),A=I+(_<0?-1:1)*y,D=T;n=A+(_<0?-5:5),u=D,h=[[S,M],[I,T],[A,D]]}c=b?"center":_>0?"left":"right"}var C=p.getFont(),L=p.get("rotate")?_<0?-x+Math.PI:-x:0,k=ke(t.getFormattedLabel(i,"normal")||r.getName(i),C,c,"top");l=!!L,d.label={x:n,y:u,position:g,height:k.height,len:v,len2:y,linePoints:h,textAlign:c,verticalAlign:"middle",rotation:L,inside:b},b||s.push(d.label)}),!l&&t.get("avoidLabelOverlap")&&Wh(s,o,a,e,i,n)},uC=2*Math.PI,hC=Math.PI/180,cC=function(t){return{seriesType:t,reset:function(t,e){var i=e.findComponents({mainType:"legend"});if(i&&i.length){var n=t.getData();n.filterSelf(function(t){for(var e=n.getName(t),o=0;o=0;s--){var l=2*s,u=n[l]-a/2,h=n[l+1]-r/2;if(t>=u&&e>=h&&t<=u+a&&e<=h+r)return s}return-1}}),fC=Zh.prototype;fC.isPersistent=function(){return!this._incremental},fC.updateData=function(t){this.group.removeAll();var e=new dC({rectHover:!0,cursor:"default"});e.setShape({points:t.getLayout("symbolPoints")}),this._setCommon(e,t),this.group.add(e),this._incremental=null},fC.updateLayout=function(t){if(!this._incremental){var e=t.getLayout("symbolPoints");this.group.eachChild(function(t){if(null!=t.startIndex){var i=2*(t.endIndex-t.startIndex),n=4*t.startIndex*2;e=new Float32Array(e.buffer,n,i)}t.setShape("points",e)})}},fC.incrementalPrepareUpdate=function(t){this.group.removeAll(),this._clearIncremental(),t.count()>2e6?(this._incremental||(this._incremental=new Hn({silent:!0})),this.group.add(this._incremental)):this._incremental=null},fC.incrementalUpdate=function(t,e){var i;this._incremental?(i=new dC,this._incremental.addDisplayable(i,!0)):((i=new dC({rectHover:!0,cursor:"default",startIndex:t.start,endIndex:t.end})).incremental=!0,this.group.add(i)),i.setShape({points:e.getLayout("symbolPoints")}),this._setCommon(i,e,!!this._incremental)},fC._setCommon=function(t,e,i){var n=e.hostModel,o=e.getVisual("symbolSize");t.setShape("size",o instanceof Array?o:[o,o]),t.symbolProxy=$l(e.getVisual("symbol"),0,0,0,0),t.setColor=t.symbolProxy.setColor;var a=t.shape.size[0]<4;t.useStyle(n.getModel("itemStyle").getItemStyle(a?["color","shadowBlur","shadowColor"]:["color"]));var r=e.getVisual("color");r&&t.setColor(r),i||(t.seriesIndex=n.seriesIndex,t.on("mousemove",function(e){t.dataIndex=null;var i=t.findDataIndex(e.offsetX,e.offsetY);i>=0&&(t.dataIndex=i+(t.startIndex||0))}))},fC.remove=function(){this._clearIncremental(),this._incremental=null,this.group.removeAll()},fC._clearIncremental=function(){var t=this._incremental;t&&t.clearDisplaybles()},Hs({type:"scatter",render:function(t,e,i){var n=t.getData();this._updateSymbolDraw(n,t).updateData(n),this._finished=!0},incrementalPrepareRender:function(t,e,i){var n=t.getData();this._updateSymbolDraw(n,t).incrementalPrepareUpdate(n),this._finished=!1},incrementalRender:function(t,e,i){this._symbolDraw.incrementalUpdate(t,e.getData()),this._finished=t.end===e.getData().count()},updateTransform:function(t,e,i){var n=t.getData();if(this.group.dirty(),!this._finished||n.count()>1e4||!this._symbolDraw.isPersistent())return{update:!0};var o=ID().reset(t);o.progress&&o.progress({start:0,end:n.count()},n),this._symbolDraw.updateLayout(n)},_updateSymbolDraw:function(t,e){var i=this._symbolDraw,n=e.pipelineContext.large;return i&&n===this._isLargeDraw||(i&&i.remove(),i=this._symbolDraw=n?new Zh:new Au,this._isLargeDraw=n,this.group.removeAll()),this.group.add(i.group),i},remove:function(t,e){this._symbolDraw&&this._symbolDraw.remove(!0),this._symbolDraw=null},dispose:function(){}}),zs(MD("scatter","circle")),Rs(ID("scatter")),u(Uh,nD),Xh.prototype.getIndicatorAxes=function(){return this._indicatorAxes},Xh.prototype.dataToPoint=function(t,e){var i=this._indicatorAxes[e];return this.coordToPoint(i.dataToCoord(t),e)},Xh.prototype.coordToPoint=function(t,e){var i=this._indicatorAxes[e].angle;return[this.cx+t*Math.cos(i),this.cy-t*Math.sin(i)]},Xh.prototype.pointToData=function(t){var e=t[0]-this.cx,i=t[1]-this.cy,n=Math.sqrt(e*e+i*i);e/=n,i/=n;for(var o,a=Math.atan2(-i,e),r=1/0,s=-1,l=0;ln[0]&&isFinite(c)&&isFinite(n[0]))}else{r.getTicks().length-1>a&&(u=i(u));var d=Math.round((n[0]+n[1])/2/u)*u,f=Math.round(a/2);r.setExtent(Vo(d-f*u),Vo(d+(a-f)*u)),r.setInterval(u)}})},Xh.dimensions=[],Xh.create=function(t,e){var i=[];return t.eachComponent("radar",function(n){var o=new Xh(n,t,e);i.push(o),n.coordinateSystem=o}),t.eachSeriesByType("radar",function(t){"radar"===t.get("coordinateSystem")&&(t.coordinateSystem=i[t.get("radarIndex")||0])}),i},Ga.register("radar",Xh);var pC=kD.valueAxis,gC=(Gs({type:"radar",optionUpdated:function(){var t=this.get("boundaryGap"),e=this.get("splitNumber"),o=this.get("scale"),s=this.get("axisLine"),l=this.get("axisTick"),u=this.get("axisLabel"),h=this.get("name"),c=this.get("name.show"),d=this.get("name.formatter"),p=this.get("nameGap"),g=this.get("triggerEvent"),m=f(this.get("indicator")||[],function(f){null!=f.max&&f.max>0&&!f.min?f.min=0:null!=f.min&&f.min<0&&!f.max&&(f.max=0);var m=h;if(null!=f.color&&(m=r({color:f.color},h)),f=n(i(f),{boundaryGap:t,splitNumber:e,scale:o,axisLine:s,axisTick:l,axisLabel:u,name:f.text,nameLocation:"end",nameGap:p,nameTextStyle:m,triggerEvent:g},!1),c||(f.name=""),"string"==typeof d){var v=f.name;f.name=d.replace("{value}",null!=v?v:"")}else"function"==typeof d&&(f.name=d(f.name,f));var y=a(new Po(f,null,this.ecModel),HA);return y.mainType="radar",y.componentIndex=this.componentIndex,y},this);this.getIndicatorModels=function(){return m}},defaultOption:{zlevel:0,z:0,center:["50%","50%"],radius:"75%",startAngle:90,name:{show:!0},boundaryGap:[0,0],splitNumber:5,nameGap:15,scale:!1,shape:"polygon",axisLine:n({lineStyle:{color:"#bbb"}},pC.axisLine),axisLabel:jh(pC.axisLabel,!1),axisTick:jh(pC.axisTick,!1),splitLine:jh(pC.splitLine,!0),splitArea:jh(pC.splitArea,!0),indicator:[]}}),["axisLine","axisTickLabel","axisName"]);Fs({type:"radar",render:function(t,e,i){this.group.removeAll(),this._buildAxes(t),this._buildSplitLineAndArea(t)},_buildAxes:function(t){var e=t.coordinateSystem;d(f(e.getIndicatorAxes(),function(t){return new VD(t.model,{position:[e.cx,e.cy],rotation:t.angle,labelDirection:-1,tickDirection:-1,nameDirection:1})}),function(t){d(gC,t.add,t),this.group.add(t.getGroup())},this)},_buildSplitLineAndArea:function(t){function e(t,e,i){var n=i%e.length;return t[n]=t[n]||[],n}var i=t.coordinateSystem,n=i.getIndicatorAxes();if(n.length){var o=t.get("shape"),a=t.getModel("splitLine"),s=t.getModel("splitArea"),l=a.getModel("lineStyle"),u=s.getModel("areaStyle"),h=a.get("show"),c=s.get("show"),p=l.get("color"),g=u.get("color");p=y(p)?p:[p],g=y(g)?g:[g];var m=[],v=[];if("circle"===o)for(var x=n[0].getTicksCoords(),_=i.cx,w=i.cy,b=0;b"+f(i,function(i,n){var o=e.get(e.mapDimension(i.dim),t);return ea(i.name+" : "+o)}).join("
")},defaultOption:{zlevel:0,z:2,coordinateSystem:"radar",legendHoverLink:!0,radarIndex:0,lineStyle:{width:2,type:"solid"},label:{position:"top"},symbol:"emptyCircle",symbolSize:4}});Hs({type:"radar",render:function(t,e,n){function o(t,e){var i=t.getItemVisual(e,"symbol")||"circle",n=t.getItemVisual(e,"color");if("none"!==i){var o=Yh(t.getItemVisual(e,"symbolSize")),a=$l(i,-1,-1,2,2,n);return a.attr({style:{strokeNoScale:!0},z2:100,scale:[o[0]/2,o[1]/2]}),a}}function a(e,i,n,a,r,s){n.removeAll();for(var l=0;l"+ea(n+" : "+i)},getTooltipPosition:function(t){if(null!=t){var e=this.getData().getName(t),i=this.coordinateSystem,n=i.getRegion(e);return n&&i.dataToPoint(n.center)}},setZoom:function(t){this.option.zoom=t},setCenter:function(t){this.option.center=t},defaultOption:{zlevel:0,z:2,coordinateSystem:"geo",map:"",left:"center",top:"center",aspectScale:.75,showLegendSymbol:!0,dataRangeHoverLink:!0,boundingCoords:null,center:null,zoom:1,scaleLimit:null,label:{show:!1,color:"#000"},itemStyle:{borderWidth:.5,borderColor:"#444",areaColor:"#eee"},emphasis:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{areaColor:"rgba(255,215,0,0.8)"}}}}),nC);var NC="\0_ec_interaction_mutex";Os({type:"takeGlobalCursor",event:"globalCursorTaken",update:"update"},function(){}),h(nc,fw);var OC={axisPointer:1,tooltip:1,brush:1};yc.prototype={constructor:yc,draw:function(t,e,i,n,o){var a="geo"===t.mainType,r=t.getData&&t.getData();a&&e.eachComponent({mainType:"series",subType:"map"},function(e){r||e.getHostGeoModel()!==t||(r=e.getData())});var s=t.coordinateSystem;this._updateBackground(s);var l=this._regionsGroup,u=this.group,h=s.scale,c={position:s.position,scale:h};!l.childAt(0)||o?u.attr(c):Mo(u,c,t),l.removeAll();var f=["itemStyle"],p=["emphasis","itemStyle"],g=["label"],m=["emphasis","label"],v=R();d(s.regions,function(e){var i=v.get(e.name)||v.set(e.name,new tb),n=new MM({shape:{paths:[]}});i.add(n);var o,s=(C=t.getRegionModel(e.name)||t).getModel(f),u=C.getModel(p),c=gc(s),y=gc(u),x=C.getModel(g),_=C.getModel(m);if(r){o=r.indexOfName(e.name);var w=r.getItemVisual(o,"color",!0);w&&(c.fill=w)}d(e.geometries,function(t){if("polygon"===t.type){n.shape.paths.push(new pM({shape:{points:t.exterior}}));for(var e=0;e<(t.interiors?t.interiors.length:0);e++)n.shape.paths.push(new pM({shape:{points:t.interiors[e]}}))}}),n.setStyle(c),n.style.strokeNoScale=!0,n.culling=!0;var b=x.get("show"),S=_.get("show"),M=r&&isNaN(r.get(r.mapDimension("value"),o)),I=r&&r.getItemLayout(o);if(a||M&&(b||S)||I&&I.showLabel){var T,A=a?e.name:o;(!r||o>=0)&&(T=t);var D=new rM({position:e.center.slice(),scale:[1/h[0],1/h[1]],z2:10,silent:!0});po(D.style,D.hoverStyle={},x,_,{labelFetcher:T,labelDataIndex:A,defaultText:e.name,useInsideStyle:!1},{textAlign:"center",textVerticalAlign:"middle"}),i.add(D)}if(r)r.setItemGraphicEl(o,i);else{var C=t.getRegionModel(e.name);n.eventData={componentType:"geo",componentIndex:t.componentIndex,geoIndex:t.componentIndex,name:e.name,region:C&&C.option||{}}}(i.__regions||(i.__regions=[])).push(e),co(i,y,{hoverSilentOnTouch:!!t.get("selectedMode")}),l.add(i)}),this._updateController(t,e,i),mc(this,t,l,i,n),vc(t,l)},remove:function(){this._regionsGroup.removeAll(),this._backgroundGroup.removeAll(),this._controller.dispose(),this._mapName&&PC.removeGraphic(this._mapName,this.uid),this._mapName=null,this._controllerHost={}},_updateBackground:function(t){var e=t.map;this._mapName!==e&&d(PC.makeGraphic(e,this.uid),function(t){this._backgroundGroup.add(t)},this),this._mapName=e},_updateController:function(t,e,i){function n(){var e={type:"geoRoam",componentType:l};return e[l+"Id"]=t.id,e}var o=t.coordinateSystem,r=this._controller,s=this._controllerHost;s.zoomLimit=t.get("scaleLimit"),s.zoom=o.getZoom(),r.enable(t.get("roam")||!1);var l=t.mainType;r.off("pan").on("pan",function(t){this._mouseDownFlag=!1,dc(s,t.dx,t.dy),i.dispatchAction(a(n(),{dx:t.dx,dy:t.dy}))},this),r.off("zoom").on("zoom",function(t){if(this._mouseDownFlag=!1,fc(s,t.scale,t.originX,t.originY),i.dispatchAction(a(n(),{zoom:t.scale,originX:t.originX,originY:t.originY})),this._updateGroup){var e=this.group.scale;this._regionsGroup.traverse(function(t){"text"===t.type&&t.attr("scale",[1/e[0],1/e[1]])})}},this),r.setPointerChecker(function(e,n,a){return o.getViewRectAfterRoam().contain(n,a)&&!pc(e,i,t)})}};var EC="__seriesMapHighDown",RC="__seriesMapCallKey";Hs({type:"map",render:function(t,e,i,n){if(!n||"mapToggleSelect"!==n.type||n.from!==this.uid){var o=this.group;if(o.removeAll(),!t.getHostGeoModel()){if(n&&"geoRoam"===n.type&&"series"===n.componentType&&n.seriesId===t.id)(a=this._mapDraw)&&o.add(a.group);else if(t.needsDrawMap){var a=this._mapDraw||new yc(i,!0);o.add(a.group),a.draw(t,e,i,this,n),this._mapDraw=a}else this._mapDraw&&this._mapDraw.remove(),this._mapDraw=null;t.get("showLegendSymbol")&&e.getComponent("legend")&&this._renderSymbols(t,e,i)}}},remove:function(){this._mapDraw&&this._mapDraw.remove(),this._mapDraw=null,this.group.removeAll()},dispose:function(){this._mapDraw&&this._mapDraw.remove(),this._mapDraw=null},_renderSymbols:function(t,e,i){var n=t.originalData,o=this.group;n.each(n.mapDimension("value"),function(e,i){if(!isNaN(e)){var r=n.getItemLayout(i);if(r&&r.point){var s=r.point,l=r.offset,u=new sM({style:{fill:t.getData().getVisual("color")},shape:{cx:s[0]+9*l,cy:s[1],r:3},silent:!0,z2:8+(l?0:NM+1)});if(!l){var h=t.mainSeries.getData(),c=n.getName(i),d=h.indexOfName(c),f=n.getItemModel(i),p=f.getModel("label"),g=f.getModel("emphasis.label"),m=h.getItemGraphicEl(d),y=A(t.getFormattedLabel(d,"normal"),c),x=A(t.getFormattedLabel(d,"emphasis"),y),_=m[EC],w=Math.random();if(!_){_=m[EC]={};var b=v(xc,!0),S=v(xc,!1);m.on("mouseover",b).on("mouseout",S).on("emphasis",b).on("normal",S)}m[RC]=w,a(_,{recordVersion:w,circle:u,labelModel:p,hoverLabelModel:g,emphasisText:x,normalText:y}),_c(_,!1)}o.add(u)}}})}}),Os({type:"geoRoam",event:"geoRoam",update:"updateTransform"},function(t,e){var i=t.componentType||"series";e.eachComponent({mainType:i,query:t},function(e){var n=e.coordinateSystem;if("geo"===n.type){var o=wc(n,t,e.get("scaleLimit"));e.setCenter&&e.setCenter(o.center),e.setZoom&&e.setZoom(o.zoom),"series"===i&&d(e.seriesGroup,function(t){t.setCenter(o.center),t.setZoom(o.zoom)})}})});var zC=Q;h(bc,Tw),Sc.prototype={constructor:Sc,type:"view",dimensions:["x","y"],setBoundingRect:function(t,e,i,n){return this._rect=new de(t,e,i,n),this._rect},getBoundingRect:function(){return this._rect},setViewRect:function(t,e,i,n){this.transformTo(t,e,i,n),this._viewRect=new de(t,e,i,n)},transformTo:function(t,e,i,n){var o=this.getBoundingRect(),a=this._rawTransformable;a.transform=o.calculateTransform(new de(t,e,i,n)),a.decomposeTransform(),this._updateTransform()},setCenter:function(t){t&&(this._center=t,this._updateCenterAndZoom())},setZoom:function(t){t=t||1;var e=this.zoomLimit;e&&(null!=e.max&&(t=Math.min(e.max,t)),null!=e.min&&(t=Math.max(e.min,t))),this._zoom=t,this._updateCenterAndZoom()},getDefaultCenter:function(){var t=this.getBoundingRect();return[t.x+t.width/2,t.y+t.height/2]},getCenter:function(){return this._center||this.getDefaultCenter()},getZoom:function(){return this._zoom||1},getRoamTransform:function(){return this._roamTransformable.getLocalTransform()},_updateCenterAndZoom:function(){var t=this._rawTransformable.getLocalTransform(),e=this._roamTransformable,i=this.getDefaultCenter(),n=this.getCenter(),o=this.getZoom();n=Q([],n,t),i=Q([],i,t),e.origin=n,e.position=[i[0]-n[0],i[1]-n[1]],e.scale=[o,o],this._updateTransform()},_updateTransform:function(){var t=this._roamTransformable,e=this._rawTransformable;e.parent=t,t.updateTransform(),e.updateTransform(),wt(this.transform||(this.transform=[]),e.transform||xt()),this._rawTransform=e.getLocalTransform(),this.invTransform=this.invTransform||[],Tt(this.invTransform,this.transform),this.decomposeTransform()},getViewRect:function(){return this._viewRect},getViewRectAfterRoam:function(){var t=this.getBoundingRect().clone();return t.applyTransform(this.transform),t},dataToPoint:function(t,e,i){var n=e?this._rawTransform:this.transform;return i=i||[],n?zC(i,t,n):G(i,t)},pointToData:function(t){var e=this.invTransform;return e?zC([],t,e):[t[0],t[1]]},convertToPixel:v(Mc,"dataToPoint"),convertFromPixel:v(Mc,"pointToData"),containPoint:function(t){return this.getViewRectAfterRoam().contain(t[0],t[1])}},h(Sc,Tw),Ic.prototype={constructor:Ic,type:"geo",dimensions:["lng","lat"],containCoord:function(t){for(var e=this.regions,i=0;ie&&(e=n.height)}this.height=e+1},getNodeById:function(t){if(this.getId()===t)return this;for(var e=0,i=this.children,n=i.length;e=0&&this.hostTree.data.setItemLayout(this.dataIndex,t,e)},getLayout:function(){return this.hostTree.data.getItemLayout(this.dataIndex)},getModel:function(t){if(!(this.dataIndex<0)){var e,i=this.hostTree,n=i.data.getItemModel(this.dataIndex),o=this.getLevelModel();return o||0!==this.children.length&&(0===this.children.length||!1!==this.isExpand)||(e=this.getLeavesModel()),n.getModel(t,(o||e||i.hostModel).getModel(t))}},getLevelModel:function(){return(this.hostTree.levelModels||[])[this.depth]},getLeavesModel:function(){return this.hostTree.leavesModel},setVisual:function(t,e){this.dataIndex>=0&&this.hostTree.data.setItemVisual(this.dataIndex,t,e)},getVisual:function(t,e){return this.hostTree.data.getItemVisual(this.dataIndex,t,e)},getRawIndex:function(){return this.hostTree.data.getRawIndex(this.dataIndex)},getId:function(){return this.hostTree.data.getId(this.dataIndex)},isAncestorOf:function(t){for(var e=t.parentNode;e;){if(e===this)return!0;e=e.parentNode}return!1},isDescendantOf:function(t){return t!==this&&t.isAncestorOf(this)}},Bc.prototype={constructor:Bc,type:"tree",eachNode:function(t,e,i){this.root.eachNode(t,e,i)},getNodeByDataIndex:function(t){var e=this.data.getRawIndex(t);return this._nodes[e]},getNodeByName:function(t){return this.root.getNodeByName(t)},update:function(){for(var t=this.data,e=this._nodes,i=0,n=e.length;ia&&(a=t.depth)});var r=t.expandAndCollapse&&t.initialTreeDepth>=0?t.initialTreeDepth:a;return o.root.eachNode("preorder",function(t){var e=t.hostTree.data.getRawDataItem(t.dataIndex);t.isExpand=e&&null!=e.collapsed?!e.collapsed:t.depth<=r}),o.data},getOrient:function(){var t=this.get("orient");return"horizontal"===t?t="LR":"vertical"===t&&(t="TB"),t},setZoom:function(t){this.option.zoom=t},setCenter:function(t){this.option.center=t},formatTooltip:function(t){for(var e=this.getData().tree,i=e.root.children[0],n=e.getNodeByDataIndex(t),o=n.getValue(),a=n.name;n&&n!==i;)a=n.parentNode.name+"."+a,n=n.parentNode;return ea(a+(isNaN(o)||null==o?"":" : "+o))},defaultOption:{zlevel:0,z:2,coordinateSystem:"view",left:"12%",top:"12%",right:"12%",bottom:"12%",layout:"orthogonal",roam:!1,nodeScaleRatio:.4,center:null,zoom:1,orient:"LR",symbol:"emptyCircle",symbolSize:7,expandAndCollapse:!0,initialTreeDepth:2,lineStyle:{color:"#ccc",width:1.5,curveness:.5},itemStyle:{color:"lightsteelblue",borderColor:"#c23531",borderWidth:1.5},label:{show:!0,color:"#555"},leaves:{label:{show:!0}},animationEasing:"linear",animationDuration:700,animationDurationUpdate:1e3}}),Hs({type:"tree",init:function(t,e){this._oldTree,this._mainGroup=new tb,this._controller=new nc(e.getZr()),this._controllerHost={target:this.group},this.group.add(this._mainGroup)},render:function(t,e,i,n){var o=t.getData(),a=t.layoutInfo,r=this._mainGroup,s=t.get("layout");"radial"===s?r.attr("position",[a.x+a.width/2,a.y+a.height/2]):r.attr("position",[a.x,a.y]),this._updateViewCoordSys(t),this._updateController(t,e,i);var l=this._data,u={expandAndCollapse:t.get("expandAndCollapse"),layout:s,orient:t.getOrient(),curvature:t.get("lineStyle.curveness"),symbolRotate:t.get("symbolRotate"),symbolOffset:t.get("symbolOffset"),hoverAnimation:t.get("hoverAnimation"),useNameLabel:!0,fadeIn:!0};o.diff(l).add(function(e){Qc(o,e)&&ed(o,e,null,r,t,u)}).update(function(e,i){var n=l.getItemGraphicEl(i);Qc(o,e)?ed(o,e,n,r,t,u):n&&id(l,i,n,r,t,u)}).remove(function(e){var i=l.getItemGraphicEl(e);i&&id(l,e,i,r,t,u)}).execute(),this._nodeScaleRatio=t.get("nodeScaleRatio"),this._updateNodeAndLinkScale(t),!0===u.expandAndCollapse&&o.eachItemGraphicEl(function(e,n){e.off("click").on("click",function(){i.dispatchAction({type:"treeExpandAndCollapse",seriesId:t.id,dataIndex:n})})}),this._data=o},_updateViewCoordSys:function(t){var e=t.getData(),i=[];e.each(function(t){var n=e.getItemLayout(t);!n||isNaN(n.x)||isNaN(n.y)||i.push([+n.x,+n.y])});var n=[],o=[];dn(i,n,o),o[0]-n[0]==0&&(o[0]+=1,n[0]-=1),o[1]-n[1]==0&&(o[1]+=1,n[1]-=1);var a=t.coordinateSystem=new Sc;a.zoomLimit=t.get("scaleLimit"),a.setBoundingRect(n[0],n[1],o[0]-n[0],o[1]-n[1]),a.setCenter(t.get("center")),a.setZoom(t.get("zoom")),this.group.attr({position:a.position,scale:a.scale}),this._viewCoordSys=a},_updateController:function(t,e,i){var n=this._controller,o=this._controllerHost,a=this.group;n.setPointerChecker(function(e,n,o){var r=a.getBoundingRect();return r.applyTransform(a.transform),r.contain(n,o)&&!pc(e,i,t)}),n.enable(t.get("roam")),o.zoomLimit=t.get("scaleLimit"),o.zoom=t.coordinateSystem.getZoom(),n.off("pan").off("zoom").on("pan",function(e){dc(o,e.dx,e.dy),i.dispatchAction({seriesId:t.id,type:"treeRoam",dx:e.dx,dy:e.dy})},this).on("zoom",function(e){fc(o,e.scale,e.originX,e.originY),i.dispatchAction({seriesId:t.id,type:"treeRoam",zoom:e.scale,originX:e.originX,originY:e.originY}),this._updateNodeAndLinkScale(t)},this)},_updateNodeAndLinkScale:function(t){var e=t.getData(),i=this._getNodeGlobalScale(t),n=[i,i];e.eachItemGraphicEl(function(t,e){t.attr("scale",n)})},_getNodeGlobalScale:function(t){var e=t.coordinateSystem;if("view"!==e.type)return 1;var i=this._nodeScaleRatio,n=e.scale,o=n&&n[0]||1;return((e.getZoom()-1)*i+1)/o},dispose:function(){this._controller&&this._controller.dispose(),this._controllerHost={}},remove:function(){this._mainGroup.removeAll(),this._data=null}}),Os({type:"treeExpandAndCollapse",event:"treeExpandAndCollapse",update:"update"},function(t,e){e.eachComponent({mainType:"series",subType:"tree",query:t},function(e){var i=t.dataIndex,n=e.getData().tree.getNodeByDataIndex(i);n.isExpand=!n.isExpand})}),Os({type:"treeRoam",event:"treeRoam",update:"none"},function(t,e){e.eachComponent({mainType:"series",subType:"tree",query:t},function(e){var i=wc(e.coordinateSystem,t);e.setCenter&&e.setCenter(i.center),e.setZoom&&e.setZoom(i.zoom)})});zs(MD("tree","circle")),Rs(function(t,e){t.eachSeriesByType("tree",function(t){rd(t,e)})}),YI.extend({type:"series.treemap",layoutMode:"box",dependencies:["grid","polar"],_viewRoot:null,defaultOption:{progressive:0,hoverLayerThreshold:1/0,left:"center",top:"middle",right:null,bottom:null,width:"80%",height:"80%",sort:!0,clipWindow:"origin",squareRatio:.5*(1+Math.sqrt(5)),leafDepth:null,drillDownIcon:"▶",zoomToNodeRatio:.1024,roam:!0,nodeClick:"zoomToNode",animation:!0,animationDurationUpdate:900,animationEasing:"quinticInOut",breadcrumb:{show:!0,height:22,left:"center",top:"bottom",emptyItemWidth:25,itemStyle:{color:"rgba(0,0,0,0.7)",borderColor:"rgba(255,255,255,0.7)",borderWidth:1,shadowColor:"rgba(150,150,150,1)",shadowBlur:3,shadowOffsetX:0,shadowOffsetY:0,textStyle:{color:"#fff"}},emphasis:{textStyle:{}}},label:{show:!0,distance:0,padding:5,position:"inside",color:"#fff",ellipsis:!0},upperLabel:{show:!1,position:[0,"50%"],height:20,color:"#fff",ellipsis:!0,verticalAlign:"middle"},itemStyle:{color:null,colorAlpha:null,colorSaturation:null,borderWidth:0,gapWidth:0,borderColor:"#fff",borderColorSaturation:null},emphasis:{upperLabel:{show:!0,position:[0,"50%"],color:"#fff",ellipsis:!0,verticalAlign:"middle"}},visualDimension:0,visualMin:null,visualMax:null,color:[],colorAlpha:null,colorSaturation:null,colorMappingBy:"index",visibleMin:10,childrenVisibleMin:null,levels:[]},getInitialData:function(t,e){var i={name:t.name,children:t.data};cd(i);var n=t.levels||[];n=t.levels=dd(n,e);var o={};return o.levels=n,Bc.createTree(i,this,o).data},optionUpdated:function(){this.resetViewRoot()},formatTooltip:function(t){var e=this.getData(),i=this.getRawValue(t),n=Qo(y(i)?i[0]:i);return ea(e.getName(t)+": "+n)},getDataParams:function(t){var e=YI.prototype.getDataParams.apply(this,arguments),i=this.getData().tree.getNodeByDataIndex(t);return e.treePathInfo=hd(i,this),e},setLayoutInfo:function(t){this.layoutInfo=this.layoutInfo||{},a(this.layoutInfo,t)},mapIdToIndex:function(t){var e=this._idIndexMap;e||(e=this._idIndexMap=R(),this._idIndexMapCount=0);var i=e.get(t);return null==i&&e.set(t,i=this._idIndexMapCount++),i},getViewRoot:function(){return this._viewRoot},resetViewRoot:function(t){t?this._viewRoot=t:t=this._viewRoot;var e=this.getRawData().tree.root;t&&(t===e||e.contains(t))||(this._viewRoot=e)}});var HC=5;fd.prototype={constructor:fd,render:function(t,e,i,n){var o=t.getModel("breadcrumb"),a=this.group;if(a.removeAll(),o.get("show")&&i){var r=o.getModel("itemStyle"),s=r.getModel("textStyle"),l={pos:{left:o.get("left"),right:o.get("right"),top:o.get("top"),bottom:o.get("bottom")},box:{width:e.getWidth(),height:e.getHeight()},emptyItemWidth:o.get("emptyItemWidth"),totalWidth:0,renderList:[]};this._prepare(i,l,s),this._renderContent(t,l,r,s,n),ca(a,l.pos,l.box)}},_prepare:function(t,e,i){for(var n=t;n;n=n.parentNode){var o=n.getModel().get("name"),a=i.getTextRect(o),r=Math.max(a.width+16,e.emptyItemWidth);e.totalWidth+=r+8,e.renderList.push({node:n,text:o,width:r})}},_renderContent:function(t,e,i,n,o){for(var a=0,s=e.emptyItemWidth,l=t.get("breadcrumb.height"),u=ua(e.pos,e.box),h=e.totalWidth,c=e.renderList,d=c.length-1;d>=0;d--){var f=c[d],p=f.node,g=f.width,m=f.text;h>u.width&&(h-=g-s,g=s,m=null);var y=new pM({shape:{points:pd(a,0,g,l,d===c.length-1,0===d)},style:r(i.getItemStyle(),{lineJoin:"bevel",text:m,textFill:n.getTextColor(),textFont:n.getFont()}),z:10,onclick:v(o,p)});this.group.add(y),gd(y,t,p),a+=g+8}},remove:function(){this.group.removeAll()}};var ZC=m,UC=tb,XC=yM,jC=d,YC=["label"],qC=["emphasis","label"],KC=["upperLabel"],$C=["emphasis","upperLabel"],JC=10,QC=1,tL=2,eL=Qb([["fill","color"],["stroke","strokeColor"],["lineWidth","strokeWidth"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]),iL=function(t){var e=eL(t);return e.stroke=e.fill=e.lineWidth=null,e};Hs({type:"treemap",init:function(t,e){this._containerGroup,this._storage={nodeGroup:[],background:[],content:[]},this._oldTree,this._breadcrumb,this._controller,this._state="ready"},render:function(t,e,i,n){if(!(l(e.findComponents({mainType:"series",subType:"treemap",query:n}),t)<0)){this.seriesModel=t,this.api=i,this.ecModel=e;var o=sd(n,["treemapZoomToNode","treemapRootToNode"],t),a=n&&n.type,r=t.layoutInfo,s=!this._oldTree,u=this._storage,h="treemapRootToNode"===a&&o&&u?{rootNodeGroup:u.nodeGroup[o.node.getRawIndex()],direction:n.direction}:null,c=this._giveContainerGroup(r),d=this._doRender(c,t,h);s||a&&"treemapZoomToNode"!==a&&"treemapRootToNode"!==a?d.renderFinally():this._doAnimation(c,d,t,h),this._resetController(i),this._renderBreadcrumb(t,i,o)}},_giveContainerGroup:function(t){var e=this._containerGroup;return e||(e=this._containerGroup=new UC,this._initEvents(e),this.group.add(e)),e.attr("position",[t.x,t.y]),e},_doRender:function(t,e,i){function n(t,e,i,o,a){function r(t){return t.getId()}function s(r,s){var l=null!=r?t[r]:null,u=null!=s?e[s]:null,c=h(l,u,i,a);c&&n(l&&l.viewChildren||[],u&&u.viewChildren||[],c,o,a+1)}o?(e=t,jC(t,function(t,e){!t.isRemoved()&&s(e,e)})):new Us(e,t,r,r).add(s).update(s).remove(v(s,null)).execute()}var o=e.getData().tree,a=this._oldTree,r={nodeGroup:[],background:[],content:[]},s={nodeGroup:[],background:[],content:[]},l=this._storage,u=[],h=v(vd,e,s,l,i,r,u);n(o.root?[o.root]:[],a&&a.root?[a.root]:[],t,o===a||!a,0);var c=function(t){var e={nodeGroup:[],background:[],content:[]};return t&&jC(t,function(t,i){var n=e[i];jC(t,function(t){t&&(n.push(t),t.__tmWillDelete=1)})}),e}(l);return this._oldTree=o,this._storage=s,{lastsForAnimation:r,willDeleteEls:c,renderFinally:function(){jC(c,function(t){jC(t,function(t){t.parent&&t.parent.remove(t)})}),jC(u,function(t){t.invisible=!0,t.dirty()})}}},_doAnimation:function(t,e,i,n){if(i.get("animation")){var o=i.get("animationDurationUpdate"),r=i.get("animationEasing"),s=md();jC(e.willDeleteEls,function(t,e){jC(t,function(t,i){if(!t.invisible){var a,l=t.parent;if(n&&"drillDown"===n.direction)a=l===n.rootNodeGroup?{shape:{x:0,y:0,width:l.__tmNodeWidth,height:l.__tmNodeHeight},style:{opacity:0}}:{style:{opacity:0}};else{var u=0,h=0;l.__tmWillDelete||(u=l.__tmNodeWidth/2,h=l.__tmNodeHeight/2),a="nodeGroup"===e?{position:[u,h],style:{opacity:0}}:{shape:{x:u,y:h,width:0,height:0},style:{opacity:0}}}a&&s.add(t,a,o,r)}})}),jC(this._storage,function(t,i){jC(t,function(t,n){var l=e.lastsForAnimation[i][n],u={};l&&("nodeGroup"===i?l.old&&(u.position=t.position.slice(),t.attr("position",l.old)):(l.old&&(u.shape=a({},t.shape),t.setShape(l.old)),l.fadein?(t.setStyle("opacity",0),u.style={opacity:1}):1!==t.style.opacity&&(u.style={opacity:1})),s.add(t,u,o,r))})},this),this._state="animating",s.done(ZC(function(){this._state="ready",e.renderFinally()},this)).start()}},_resetController:function(t){var e=this._controller;e||((e=this._controller=new nc(t.getZr())).enable(this.seriesModel.get("roam")),e.on("pan",ZC(this._onPan,this)),e.on("zoom",ZC(this._onZoom,this)));var i=new de(0,0,t.getWidth(),t.getHeight());e.setPointerChecker(function(t,e,n){return i.contain(e,n)})},_clearController:function(){var t=this._controller;t&&(t.dispose(),t=null)},_onPan:function(t){if("animating"!==this._state&&(Math.abs(t.dx)>3||Math.abs(t.dy)>3)){var e=this.seriesModel.getData().tree.root;if(!e)return;var i=e.getLayout();if(!i)return;this.api.dispatchAction({type:"treemapMove",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:i.x+t.dx,y:i.y+t.dy,width:i.width,height:i.height}})}},_onZoom:function(t){var e=t.originX,i=t.originY;if("animating"!==this._state){var n=this.seriesModel.getData().tree.root;if(!n)return;var o=n.getLayout();if(!o)return;var a=new de(o.x,o.y,o.width,o.height),r=this.seriesModel.layoutInfo;e-=r.x,i-=r.y;var s=xt();St(s,s,[-e,-i]),It(s,s,[t.scale,t.scale]),St(s,s,[e,i]),a.applyTransform(s),this.api.dispatchAction({type:"treemapRender",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:a.x,y:a.y,width:a.width,height:a.height}})}},_initEvents:function(t){t.on("click",function(t){if("ready"===this._state){var e=this.seriesModel.get("nodeClick",!0);if(e){var i=this.findTarget(t.offsetX,t.offsetY);if(i){var n=i.node;if(n.getLayout().isLeafRoot)this._rootToNode(i);else if("zoomToNode"===e)this._zoomToNode(i);else if("link"===e){var o=n.hostTree.data.getItemModel(n.dataIndex),a=o.get("link",!0),r=o.get("target",!0)||"blank";a&&window.open(a,r)}}}}},this)},_renderBreadcrumb:function(t,e,i){i||(i=null!=t.get("leafDepth",!0)?{node:t.getViewRoot()}:this.findTarget(e.getWidth()/2,e.getHeight()/2))||(i={node:t.getData().tree.root}),(this._breadcrumb||(this._breadcrumb=new fd(this.group))).render(t,e,i.node,ZC(function(e){"animating"!==this._state&&(ud(t.getViewRoot(),e)?this._rootToNode({node:e}):this._zoomToNode({node:e}))},this))},remove:function(){this._clearController(),this._containerGroup&&this._containerGroup.removeAll(),this._storage={nodeGroup:[],background:[],content:[]},this._state="ready",this._breadcrumb&&this._breadcrumb.remove()},dispose:function(){this._clearController()},_zoomToNode:function(t){this.api.dispatchAction({type:"treemapZoomToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:t.node})},_rootToNode:function(t){this.api.dispatchAction({type:"treemapRootToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:t.node})},findTarget:function(t,e){var i;return this.seriesModel.getViewRoot().eachNode({attr:"viewChildren",order:"preorder"},function(n){var o=this._storage.background[n.getRawIndex()];if(o){var a=o.transformCoordToLocal(t,e),r=o.shape;if(!(r.x<=a[0]&&a[0]<=r.x+r.width&&r.y<=a[1]&&a[1]<=r.y+r.height))return!1;i={node:n,offsetX:a[0],offsetY:a[1]}}},this),i}});for(var nL=["treemapZoomToNode","treemapRender","treemapMove"],oL=0;oL=0&&t.call(e,i[o],o)},ML.eachEdge=function(t,e){for(var i=this.edges,n=i.length,o=0;o=0&&i[o].node1.dataIndex>=0&&i[o].node2.dataIndex>=0&&t.call(e,i[o],o)},ML.breadthFirstTraverse=function(t,e,i,n){if($d.isInstance(e)||(e=this._nodesMap[Kd(e)]),e){for(var o="out"===i?"outEdges":"in"===i?"inEdges":"edges",a=0;a=0&&i.node2.dataIndex>=0});for(var o=0,a=n.length;o=0&&this[t][e].setItemVisual(this.dataIndex,i,n)},getVisual:function(i,n){return this[t][e].getItemVisual(this.dataIndex,i,n)},setLayout:function(i,n){this.dataIndex>=0&&this[t][e].setItemLayout(this.dataIndex,i,n)},getLayout:function(){return this[t][e].getItemLayout(this.dataIndex)},getGraphicEl:function(){return this[t][e].getItemGraphicEl(this.dataIndex)},getRawIndex:function(){return this[t][e].getRawIndex(this.dataIndex)}}};h($d,IL("hostGraph","data")),h(Jd,IL("hostGraph","edgeData")),SL.Node=$d,SL.Edge=Jd,ji($d),ji(Jd);var TL=function(t,e,i,n,o){for(var a=new SL(n),r=0;r "+f)),h++)}var p,g=i.get("coordinateSystem");if("cartesian2d"===g||"polar"===g)p=gl(t,i);else{var m=Ga.get(g),v=m&&"view"!==m.type?m.dimensions||[]:[];l(v,"value")<0&&v.concat(["value"]);var y=yA(t,{coordDimensions:v});(p=new gA(y,i)).initData(t)}var x=new gA(["value"],i);return x.initData(u,s),o&&o(p,x),Lc({mainData:p,struct:a,structAttr:"graph",datas:{node:p,edge:x},datasAttr:{node:"data",edge:"edgeData"}}),a.update(),a},AL=Ws({type:"series.graph",init:function(t){AL.superApply(this,"init",arguments),this.legendDataProvider=function(){return this._categoriesData},this.fillDataTextStyle(t.edges||t.links),this._updateCategoriesData()},mergeOption:function(t){AL.superApply(this,"mergeOption",arguments),this.fillDataTextStyle(t.edges||t.links),this._updateCategoriesData()},mergeDefaultAndTheme:function(t){AL.superApply(this,"mergeDefaultAndTheme",arguments),Ci(t,["edgeLabel"],["show"])},getInitialData:function(t,e){var i=t.edges||t.links||[],n=t.data||t.nodes||[],o=this;if(n&&i)return TL(n,i,this,!0,function(t,i){function n(t){return(t=this.parsePath(t))&&"label"===t[0]?r:t&&"emphasis"===t[0]&&"label"===t[1]?l:this.parentModel}t.wrapMethod("getItemModel",function(t){var e=o._categoriesModels[t.getShallow("category")];return e&&(e.parentModel=t.parentModel,t.parentModel=e),t});var a=o.getModel("edgeLabel"),r=new Po({label:a.option},a.parentModel,e),s=o.getModel("emphasis.edgeLabel"),l=new Po({emphasis:{label:s.option}},s.parentModel,e);i.wrapMethod("getItemModel",function(t){return t.customizeGetParent(n),t})}).data},getGraph:function(){return this.getData().graph},getEdgeData:function(){return this.getGraph().edgeData},getCategoriesData:function(){return this._categoriesData},formatTooltip:function(t,e,i){if("edge"===i){var n=this.getData(),o=this.getDataParams(t,i),a=n.graph.getEdgeByIndex(t),r=n.getName(a.node1.dataIndex),s=n.getName(a.node2.dataIndex),l=[];return null!=r&&l.push(r),null!=s&&l.push(s),l=ea(l.join(" > ")),o.value&&(l+=" : "+ea(o.value)),l}return AL.superApply(this,"formatTooltip",arguments)},_updateCategoriesData:function(){var t=f(this.option.categories||[],function(t){return null!=t.value?t:a({value:0},t)}),e=new gA(["value"],this);e.initData(t),this._categoriesData=e,this._categoriesModels=e.mapArray(function(t){return e.getItemModel(t,!0)})},setZoom:function(t){this.option.zoom=t},setCenter:function(t){this.option.center=t},isAnimationEnabled:function(){return AL.superCall(this,"isAnimationEnabled")&&!("force"===this.get("layout")&&this.get("force.layoutAnimation"))},defaultOption:{zlevel:0,z:2,coordinateSystem:"view",legendHoverLink:!0,hoverAnimation:!0,layout:null,focusNodeAdjacency:!1,circular:{rotateLabel:!1},force:{initLayout:null,repulsion:[0,50],gravity:.1,edgeLength:30,layoutAnimation:!0},left:"center",top:"center",symbol:"circle",symbolSize:10,edgeSymbol:["none","none"],edgeSymbolSize:10,edgeLabel:{position:"middle"},draggable:!1,roam:!1,center:null,zoom:1,nodeScaleRatio:.6,label:{show:!1,formatter:"{b}"},itemStyle:{},lineStyle:{color:"#aaa",width:1,curveness:0,opacity:.5},emphasis:{label:{show:!0}}}}),DL=_M.prototype,CL=bM.prototype,LL=Zn({type:"ec-line",style:{stroke:"#000",fill:null},shape:{x1:0,y1:0,x2:0,y2:0,percent:1,cpx1:null,cpy1:null},buildPath:function(t,e){(Qd(e)?DL:CL).buildPath(t,e)},pointAt:function(t){return Qd(this.shape)?DL.pointAt.call(this,t):CL.pointAt.call(this,t)},tangentAt:function(t){var e=this.shape,i=Qd(e)?[e.x2-e.x1,e.y2-e.y1]:CL.tangentAt.call(this,t);return q(i,i)}}),kL=["fromSymbol","toSymbol"],PL=af.prototype;PL.beforeUpdate=function(){var t=this,e=t.childOfName("fromSymbol"),i=t.childOfName("toSymbol"),n=t.childOfName("label");if(e||i||!n.ignore){for(var o=1,a=this.parent;a;)a.scale&&(o/=a.scale[0]),a=a.parent;var r=t.childOfName("line");if(this.__dirty||r.__dirty){var s=r.shape.percent,l=r.pointAt(0),u=r.pointAt(s),h=U([],u,l);if(q(h,h),e&&(e.attr("position",l),c=r.tangentAt(0),e.attr("rotation",Math.PI/2-Math.atan2(c[1],c[0])),e.attr("scale",[o*s,o*s])),i){i.attr("position",u);var c=r.tangentAt(1);i.attr("rotation",-Math.PI/2-Math.atan2(c[1],c[0])),i.attr("scale",[o*s,o*s])}if(!n.ignore){n.attr("position",u);var d,f,p,g=5*o;if("end"===n.__position)d=[h[0]*g+u[0],h[1]*g+u[1]],f=h[0]>.8?"left":h[0]<-.8?"right":"center",p=h[1]>.8?"top":h[1]<-.8?"bottom":"middle";else if("middle"===n.__position){var m=s/2,v=[(c=r.tangentAt(m))[1],-c[0]],y=r.pointAt(m);v[1]>0&&(v[0]=-v[0],v[1]=-v[1]),d=[y[0]+v[0]*g,y[1]+v[1]*g],f="center",p="bottom";var x=-Math.atan2(c[1],c[0]);u[0].8?"right":h[0]<-.8?"left":"center",p=h[1]>.8?"bottom":h[1]<-.8?"top":"middle";n.attr({style:{textVerticalAlign:n.__verticalAlign||p,textAlign:n.__textAlign||f},position:d,scale:[o,o]})}}}},PL._createLine=function(t,e,i){var n=t.hostModel,o=nf(t.getItemLayout(e));o.shape.percent=0,Io(o,{shape:{percent:1}},n,e),this.add(o);var a=new rM({name:"label",lineLabelOriginalOpacity:1});this.add(a),d(kL,function(i){var n=ef(i,t,e);this.add(n),this[tf(i)]=t.getItemVisual(e,i)},this),this._updateCommonStl(t,e,i)},PL.updateData=function(t,e,i){var n=t.hostModel,o=this.childOfName("line"),a=t.getItemLayout(e),r={shape:{}};of(r.shape,a),Mo(o,r,n,e),d(kL,function(i){var n=t.getItemVisual(e,i),o=tf(i);if(this[o]!==n){this.remove(this.childOfName(i));var a=ef(i,t,e);this.add(a)}this[o]=n},this),this._updateCommonStl(t,e,i)},PL._updateCommonStl=function(t,e,i){var n=t.hostModel,o=this.childOfName("line"),a=i&&i.lineStyle,s=i&&i.hoverLineStyle,l=i&&i.labelModel,u=i&&i.hoverLabelModel;if(!i||t.hasItemOption){var h=t.getItemModel(e);a=h.getModel("lineStyle").getLineStyle(),s=h.getModel("emphasis.lineStyle").getLineStyle(),l=h.getModel("label"),u=h.getModel("emphasis.label")}var c=t.getItemVisual(e,"color"),f=D(t.getItemVisual(e,"opacity"),a.opacity,1);o.useStyle(r({strokeNoScale:!0,fill:"none",stroke:c,opacity:f},a)),o.hoverStyle=s,d(kL,function(t){var e=this.childOfName(t);e&&(e.setColor(c),e.setStyle({opacity:f}))},this);var p,g,m=l.getShallow("show"),v=u.getShallow("show"),y=this.childOfName("label");if((m||v)&&(p=c||"#000",null==(g=n.getFormattedLabel(e,"normal",t.dataType)))){var x=n.getRawValue(e);g=null==x?t.getName(e):isFinite(x)?Vo(x):x}var _=m?g:null,w=v?A(n.getFormattedLabel(e,"emphasis",t.dataType),g):null,b=y.style;null==_&&null==w||(go(y.style,l,{text:_},{autoColor:p}),y.__textAlign=b.textAlign,y.__verticalAlign=b.textVerticalAlign,y.__position=l.get("position")||"middle"),y.hoverStyle=null!=w?{text:w,textFill:u.getTextColor(!0),fontStyle:u.getShallow("fontStyle"),fontWeight:u.getShallow("fontWeight"),fontSize:u.getShallow("fontSize"),fontFamily:u.getShallow("fontFamily")}:{text:null},y.ignore=!m&&!v,co(this)},PL.highlight=function(){this.trigger("emphasis")},PL.downplay=function(){this.trigger("normal")},PL.updateLayout=function(t,e){this.setLinePoints(t.getItemLayout(e))},PL.setLinePoints=function(t){var e=this.childOfName("line");of(e.shape,t),e.dirty()},u(af,tb);var NL=rf.prototype;NL.isPersistent=function(){return!0},NL.updateData=function(t){var e=this,i=e.group,n=e._lineData;e._lineData=t,n||i.removeAll();var o=uf(t);t.diff(n).add(function(i){sf(e,t,i,o)}).update(function(i,a){lf(e,n,t,a,i,o)}).remove(function(t){i.remove(n.getItemGraphicEl(t))}).execute()},NL.updateLayout=function(){var t=this._lineData;t&&t.eachItemGraphicEl(function(e,i){e.updateLayout(t,i)},this)},NL.incrementalPrepareUpdate=function(t){this._seriesScope=uf(t),this._lineData=null,this.group.removeAll()},NL.incrementalUpdate=function(t,e){for(var i=t.start;i=o/3?1:2),l=e.y-n(r)*a*(a>=o/3?1:2);r=e.angle-Math.PI/2,t.moveTo(s,l),t.lineTo(e.x+i(r)*a,e.y+n(r)*a),t.lineTo(e.x+i(e.angle)*o,e.y+n(e.angle)*o),t.lineTo(e.x-i(r)*a,e.y-n(r)*a),t.lineTo(s,l)}}),XL=2*Math.PI,jL=(Tr.extend({type:"gauge",render:function(t,e,i){this.group.removeAll();var n=t.get("axisLine.lineStyle.color"),o=bf(t,i);this._renderMain(t,e,i,n,o)},dispose:function(){},_renderMain:function(t,e,i,n,o){for(var a=this.group,r=t.getModel("axisLine").getModel("lineStyle"),s=t.get("clockwise"),l=-t.get("startAngle")/180*Math.PI,u=-t.get("endAngle")/180*Math.PI,h=(u-l)%XL,c=l,d=r.get("width"),f=0;f=t&&(0===e?0:n[e-1][0]).4?"bottom":"middle",textAlign:A<-.4?"left":A>.4?"right":"center"},{autoColor:P}),silent:!0}))}if(g.get("show")&&T!==v){for(var N=0;N<=y;N++){var A=Math.cos(w),D=Math.sin(w),O=new _M({shape:{x1:A*c+u,y1:D*c+h,x2:A*(c-_)+u,y2:D*(c-_)+h},silent:!0,style:I});"auto"===I.stroke&&O.setStyle({stroke:n((T+N/y)/v)}),l.add(O),w+=S}w-=S}else w+=b}},_renderPointer:function(t,e,i,n,o,a,r,s){var l=this.group,u=this._data;if(t.get("pointer.show")){var h=[+t.get("min"),+t.get("max")],c=[a,r],d=t.getData(),f=d.mapDimension("value");d.diff(u).add(function(e){var i=new UL({shape:{angle:a}});Io(i,{shape:{angle:zo(d.get(f,e),h,c,!0)}},t),l.add(i),d.setItemGraphicEl(e,i)}).update(function(e,i){var n=u.getItemGraphicEl(i);Mo(n,{shape:{angle:zo(d.get(f,e),h,c,!0)}},t),l.add(n),d.setItemGraphicEl(e,n)}).remove(function(t){var e=u.getItemGraphicEl(t);l.remove(e)}).execute(),d.eachItemGraphicEl(function(t,e){var i=d.getItemModel(e),a=i.getModel("pointer");t.setShape({x:o.cx,y:o.cy,width:Bo(a.get("width"),o.r),r:Bo(a.get("length"),o.r)}),t.useStyle(i.getModel("itemStyle").getItemStyle()),"auto"===t.style.fill&&t.setStyle("fill",n(zo(d.get(f,e),h,[0,1],!0))),co(t,i.getModel("emphasis.itemStyle").getItemStyle())}),this._data=d}else u&&u.eachItemGraphicEl(function(t){l.remove(t)})},_renderTitle:function(t,e,i,n,o){var a=t.getData(),r=a.mapDimension("value"),s=t.getModel("title");if(s.get("show")){var l=s.get("offsetCenter"),u=o.cx+Bo(l[0],o.r),h=o.cy+Bo(l[1],o.r),c=+t.get("min"),d=+t.get("max"),f=n(zo(t.getData().get(r,0),[c,d],[0,1],!0));this.group.add(new rM({silent:!0,style:go({},s,{x:u,y:h,text:a.getName(0),textAlign:"center",textVerticalAlign:"middle"},{autoColor:f,forceRich:!0})}))}},_renderDetail:function(t,e,i,n,o){var a=t.getModel("detail"),r=+t.get("min"),s=+t.get("max");if(a.get("show")){var l=a.get("offsetCenter"),u=o.cx+Bo(l[0],o.r),h=o.cy+Bo(l[1],o.r),c=Bo(a.get("width"),o.r),d=Bo(a.get("height"),o.r),f=t.getData(),p=f.get(f.mapDimension("value"),0),g=n(zo(p,[r,s],[0,1],!0));this.group.add(new rM({silent:!0,style:go({},a,{x:u,y:h,text:Sf(p,a.get("formatter")),textWidth:isNaN(c)?null:c,textHeight:isNaN(d)?null:d,textAlign:"center",textVerticalAlign:"middle"},{autoColor:g,forceRich:!0})}))}}}),Ws({type:"series.funnel",init:function(t){jL.superApply(this,"init",arguments),this.legendDataProvider=function(){return this.getRawData()},this._defaultLabelLine(t)},getInitialData:function(t,e){return iC(this,["value"])},_defaultLabelLine:function(t){Ci(t,"labelLine",["show"]);var e=t.labelLine,i=t.emphasis.labelLine;e.show=e.show&&t.label.show,i.show=i.show&&t.emphasis.label.show},getDataParams:function(t){var e=this.getData(),i=jL.superCall(this,"getDataParams",t),n=e.mapDimension("value"),o=e.getSum(n);return i.percent=o?+(e.get(n,t)/o*100).toFixed(2):0,i.$vars.push("percent"),i},defaultOption:{zlevel:0,z:2,legendHoverLink:!0,left:80,top:60,right:80,bottom:60,minSize:"0%",maxSize:"100%",sort:"descending",gap:0,funnelAlign:"center",label:{show:!0,position:"outer"},labelLine:{show:!0,length:20,lineStyle:{width:1,type:"solid"}},itemStyle:{borderColor:"#fff",borderWidth:1},emphasis:{label:{show:!0}}}})),YL=Mf.prototype,qL=["itemStyle","opacity"];YL.updateData=function(t,e,i){var n=this.childAt(0),o=t.hostModel,a=t.getItemModel(e),s=t.getItemLayout(e),l=t.getItemModel(e).get(qL);l=null==l?1:l,n.useStyle({}),i?(n.setShape({points:s.points}),n.setStyle({opacity:0}),Io(n,{style:{opacity:l}},o,e)):Mo(n,{style:{opacity:l},shape:{points:s.points}},o,e);var u=a.getModel("itemStyle"),h=t.getItemVisual(e,"color");n.setStyle(r({lineJoin:"round",fill:h},u.getItemStyle(["opacity"]))),n.hoverStyle=u.getModel("emphasis").getItemStyle(),this._updateLabel(t,e),co(this)},YL._updateLabel=function(t,e){var i=this.childAt(1),n=this.childAt(2),o=t.hostModel,a=t.getItemModel(e),r=t.getItemLayout(e).label,s=t.getItemVisual(e,"color");Mo(i,{shape:{points:r.linePoints||r.linePoints}},o,e),Mo(n,{style:{x:r.x,y:r.y}},o,e),n.attr({rotation:r.rotation,origin:[r.x,r.y],z2:10});var l=a.getModel("label"),u=a.getModel("emphasis.label"),h=a.getModel("labelLine"),c=a.getModel("emphasis.labelLine"),s=t.getItemVisual(e,"color");po(n.style,n.hoverStyle={},l,u,{labelFetcher:t.hostModel,labelDataIndex:e,defaultText:t.getName(e),autoColor:s,useInsideStyle:!!r.inside},{textAlign:r.textAlign,textVerticalAlign:r.verticalAlign}),n.ignore=n.normalIgnore=!l.get("show"),n.hoverIgnore=!u.get("show"),i.ignore=i.normalIgnore=!h.get("show"),i.hoverIgnore=!c.get("show"),i.setStyle({stroke:s}),i.setStyle(h.getModel("lineStyle").getLineStyle()),i.hoverStyle=c.getModel("lineStyle").getLineStyle()},u(Mf,tb);Tr.extend({type:"funnel",render:function(t,e,i){var n=t.getData(),o=this._data,a=this.group;n.diff(o).add(function(t){var e=new Mf(n,t);n.setItemGraphicEl(t,e),a.add(e)}).update(function(t,e){var i=o.getItemGraphicEl(e);i.updateData(n,t),a.add(i),n.setItemGraphicEl(t,i)}).remove(function(t){var e=o.getItemGraphicEl(t);a.remove(e)}).execute(),this._data=n},remove:function(){this.group.removeAll(),this._data=null},dispose:function(){}});zs(sC("funnel")),Rs(function(t,e,i){t.eachSeriesByType("funnel",function(t){var i=t.getData(),n=i.mapDimension("value"),o=t.get("sort"),a=If(t,e),r=Tf(i,o),s=[Bo(t.get("minSize"),a.width),Bo(t.get("maxSize"),a.width)],l=i.getDataExtent(n),u=t.get("min"),h=t.get("max");null==u&&(u=Math.min(l[0],0)),null==h&&(h=l[1]);var c=t.get("funnelAlign"),d=t.get("gap"),f=(a.height-d*(i.count()-1))/i.count(),p=a.y,g=function(t,e){var o,r=zo(i.get(n,t)||0,[u,h],s,!0);switch(c){case"left":o=a.x;break;case"center":o=a.x+(a.width-r)/2;break;case"right":o=a.x+a.width-r}return[[o,e],[o+r,e]]};"ascending"===o&&(f=-f,d=-d,p+=a.height,r=r.reverse());for(var m=0;ma&&(e[1-n]=e[n]+h.sign*a),e},JL=d,QL=Math.min,tk=Math.max,ek=Math.floor,ik=Math.ceil,nk=Vo,ok=Math.PI;Pf.prototype={type:"parallel",constructor:Pf,_init:function(t,e,i){var n=t.dimensions,o=t.parallelAxisIndex;JL(n,function(t,i){var n=o[i],a=e.getComponent("parallelAxis",n),r=this._axesMap.set(t,new KL(t,Wl(a),[0,0],a.get("type"),n)),s="category"===r.type;r.onBand=s&&a.get("boundaryGap"),r.inverse=a.get("inverse"),a.axis=r,r.model=a,r.coordinateSystem=a.coordinateSystem=this},this)},update:function(t,e){this._updateAxesFromSeries(this._model,t)},containPoint:function(t){var e=this._makeLayoutInfo(),i=e.axisBase,n=e.layoutBase,o=e.pixelDimIndex,a=t[1-o],r=t[o];return a>=i&&a<=i+e.axisLength&&r>=n&&r<=n+e.layoutLength},getModel:function(){return this._model},_updateAxesFromSeries:function(t,e){e.eachSeries(function(i){if(t.contains(i,e)){var n=i.getData();JL(this.dimensions,function(t){var e=this._axesMap.get(t);e.scale.unionExtentFromData(n,n.mapDimension(t)),Fl(e.scale,e.model)},this)}},this)},resize:function(t,e){this._rect=ha(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()}),this._layoutAxes()},getRect:function(){return this._rect},_makeLayoutInfo:function(){var t,e=this._model,i=this._rect,n=["x","y"],o=["width","height"],a=e.get("layout"),r="horizontal"===a?0:1,s=i[o[r]],l=[0,s],u=this.dimensions.length,h=Nf(e.get("axisExpandWidth"),l),c=Nf(e.get("axisExpandCount")||0,[0,u]),d=e.get("axisExpandable")&&u>3&&u>c&&c>1&&h>0&&s>0,f=e.get("axisExpandWindow");f?(t=Nf(f[1]-f[0],l),f[1]=f[0]+t):(t=Nf(h*(c-1),l),(f=[h*(e.get("axisExpandCenter")||ek(u/2))-t/2])[1]=f[0]+t);var p=(s-t)/(u-c);p<3&&(p=0);var g=[ek(nk(f[0]/h,1))+1,ik(nk(f[1]/h,1))-1],m=p/h*f[0];return{layout:a,pixelDimIndex:r,layoutBase:i[n[r]],layoutLength:s,axisBase:i[n[1-r]],axisLength:i[o[1-r]],axisExpandable:d,axisExpandWidth:h,axisCollapseWidth:p,axisExpandWindow:f,axisCount:u,winInnerIndices:g,axisExpandWindow0Pos:m}},_layoutAxes:function(){var t=this._rect,e=this._axesMap,i=this.dimensions,n=this._makeLayoutInfo(),o=n.layout;e.each(function(t){var e=[0,n.axisLength],i=t.inverse?1:0;t.setExtent(e[i],e[1-i])}),JL(i,function(e,i){var a=(n.axisExpandable?Ef:Of)(i,n),r={horizontal:{x:a.position,y:n.axisLength},vertical:{x:0,y:a.position}},s={horizontal:ok/2,vertical:0},l=[r[o].x+t.x,r[o].y+t.y],u=s[o],h=xt();Mt(h,h,u),St(h,h,l),this._axesLayout[e]={position:l,rotation:u,transform:h,axisNameAvailableWidth:a.axisNameAvailableWidth,axisLabelShow:a.axisLabelShow,nameTruncateMaxWidth:a.nameTruncateMaxWidth,tickDirection:1,labelDirection:1}},this)},getAxis:function(t){return this._axesMap.get(t)},dataToPoint:function(t,e){return this.axisCoordToPoint(this._axesMap.get(e).dataToCoord(t),e)},eachActiveState:function(t,e,i,n){null==i&&(i=0),null==n&&(n=t.count());var o=this._axesMap,a=this.dimensions,r=[],s=[];d(a,function(e){r.push(t.mapDimension(e)),s.push(o.get(e).model)});for(var l=this.hasAxisBrushed(),u=i;uo*(1-h[0])?(l="jump",r=s-o*(1-h[2])):(r=s-o*h[1])>=0&&(r=s-o*(1-h[1]))<=0&&(r=0),(r*=e.axisExpandWidth/u)?$L(r,n,a,"all"):l="none";else{o=n[1]-n[0];(n=[tk(0,a[1]*s/o-o/2)])[1]=QL(a[1],n[0]+o),n[0]=n[1]-o}return{axisExpandWindow:n,behavior:l}}},Ga.register("parallel",{create:function(t,e){var i=[];return t.eachComponent("parallel",function(n,o){var a=new Pf(n,t,e);a.name="parallel_"+o,a.resize(n,e),n.coordinateSystem=a,a.model=n,i.push(a)}),t.eachSeries(function(e){if("parallel"===e.get("coordinateSystem")){var i=t.queryComponents({mainType:"parallel",index:e.get("parallelIndex"),id:e.get("parallelId")})[0];e.coordinateSystem=i.coordinateSystem}}),i}});var ak=lI.extend({type:"baseParallelAxis",axis:null,activeIntervals:[],getAreaSelectStyle:function(){return Qb([["fill","color"],["lineWidth","borderWidth"],["stroke","borderColor"],["width","width"],["opacity","opacity"]])(this.getModel("areaSelectStyle"))},setActiveIntervals:function(t){var e=this.activeIntervals=i(t);if(e)for(var n=e.length-1;n>=0;n--)Go(e[n])},getActiveState:function(t){var e=this.activeIntervals;if(!e.length)return"normal";if(null==t||isNaN(t))return"inactive";if(1===e.length){var i=e[0];if(i[0]<=t&&t<=i[1])return"active"}else for(var n=0,o=e.length;n5)return;var n=this._model.coordinateSystem.getSlidedAxisExpandWindow([t.offsetX,t.offsetY]);"none"!==n.behavior&&this._dispatchExpand({axisExpandWindow:n.axisExpandWindow})}this._mouseDownPoint=null},mousemove:function(t){if(!this._mouseDownPoint&&Mp(this,"mousemove")){var e=this._model,i=e.coordinateSystem.getSlidedAxisExpandWindow([t.offsetX,t.offsetY]),n=i.behavior;"jump"===n&&this._throttledDispatchExpand.debounceNextCall(e.get("axisExpandDebounce")),this._throttledDispatchExpand("none"===n?null:{axisExpandWindow:i.axisExpandWindow,animation:"jump"===n&&null})}}};Ps(function(t){Df(t),Cf(t)}),YI.extend({type:"series.parallel",dependencies:["parallel"],visualColorAccessPath:"lineStyle.color",getInitialData:function(t,e){var i=this.getSource();return Ip(i,this),gl(i,this)},getRawIndicesByActiveState:function(t){var e=this.coordinateSystem,i=this.getData(),n=[];return e.eachActiveState(i,function(e,o){t===e&&n.push(i.getRawIndex(o))}),n},defaultOption:{zlevel:0,z:2,coordinateSystem:"parallel",parallelIndex:0,label:{show:!1},inactiveOpacity:.05,activeOpacity:1,lineStyle:{width:1,opacity:.45,type:"solid"},emphasis:{label:{show:!1}},progressive:500,smooth:!1,animationEasing:"linear"}});var Ik=.3,Tk=(Tr.extend({type:"parallel",init:function(){this._dataGroup=new tb,this.group.add(this._dataGroup),this._data,this._initialized},render:function(t,e,i,n){var o=this._dataGroup,a=t.getData(),r=this._data,s=t.coordinateSystem,l=s.dimensions,u=Lp(t);if(a.diff(r).add(function(t){kp(Cp(a,o,t,l,s),a,t,u)}).update(function(e,i){var o=r.getItemGraphicEl(i),h=Dp(a,e,l,s);a.setItemGraphicEl(e,o),Mo(o,{shape:{points:h}},n&&!1===n.animation?null:t,e),kp(o,a,e,u)}).remove(function(t){var e=r.getItemGraphicEl(t);o.remove(e)}).execute(),!this._initialized){this._initialized=!0;var h=Ap(s,t,function(){setTimeout(function(){o.removeClipPath()})});o.setClipPath(h)}this._data=a},incrementalPrepareRender:function(t,e,i){this._initialized=!0,this._data=null,this._dataGroup.removeAll()},incrementalRender:function(t,e,i){for(var n=e.getData(),o=e.coordinateSystem,a=o.dimensions,r=Lp(e),s=t.start;sn&&(n=e)}),d(e,function(e){var o=new lL({type:"color",mappingMethod:"linear",dataExtent:[i,n],visual:t.get("color")}).mapValueToVisual(e.getLayout().value);e.setVisual("color",o);var a=e.getModel().get("itemStyle.color");null!=a&&e.setVisual("color",a)})}})});var kk={_baseAxisDim:null,getInitialData:function(t,e){var i,n,o=e.getComponent("xAxis",this.get("xAxisIndex")),a=e.getComponent("yAxis",this.get("yAxisIndex")),r=o.get("type"),s=a.get("type");"category"===r?(t.layout="horizontal",i=o.getOrdinalMeta(),n=!0):"category"===s?(t.layout="vertical",i=a.getOrdinalMeta(),n=!0):t.layout=t.layout||"horizontal";var l=["x","y"],u="horizontal"===t.layout?0:1,h=this._baseAxisDim=l[u],c=l[1-u],f=[o,a],p=f[u].get("type"),g=f[1-u].get("type"),m=t.data;if(m&&n){var v=[];d(m,function(t,e){var i;t.value&&y(t.value)?(i=t.value.slice(),t.value.unshift(e)):y(t)?(i=t.slice(),t.unshift(e)):i=t,v.push(i)}),t.data=v}var x=this.defaultValueDimensions;return iC(this,{coordDimensions:[{name:h,type:Ys(p),ordinalMeta:i,otherDims:{tooltip:!1,itemName:0},dimsDef:["base"]},{name:c,type:Ys(g),dimsDef:x.slice()}],dimensionsCount:x.length+1})},getBaseAxis:function(){var t=this._baseAxisDim;return this.ecModel.getComponent(t+"Axis",this.get(t+"AxisIndex")).axis}};h(YI.extend({type:"series.boxplot",dependencies:["xAxis","yAxis","grid"],defaultValueDimensions:[{name:"min",defaultTooltip:!0},{name:"Q1",defaultTooltip:!0},{name:"median",defaultTooltip:!0},{name:"Q3",defaultTooltip:!0},{name:"max",defaultTooltip:!0}],dimensions:null,defaultOption:{zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,hoverAnimation:!0,layout:null,boxWidth:[7,50],itemStyle:{color:"#fff",borderWidth:1},emphasis:{itemStyle:{borderWidth:2,shadowBlur:5,shadowOffsetX:2,shadowOffsetY:2,shadowColor:"rgba(0,0,0,0.4)"}},animationEasing:"elasticOut",animationDuration:800}}),kk,!0);var Pk=["itemStyle"],Nk=["emphasis","itemStyle"],Ok=(Tr.extend({type:"boxplot",render:function(t,e,i){var n=t.getData(),o=this.group,a=this._data;this._data||o.removeAll();var r="horizontal"===t.get("layout")?1:0;n.diff(a).add(function(t){if(n.hasValue(t)){var e=ig(n.getItemLayout(t),n,t,r,!0);n.setItemGraphicEl(t,e),o.add(e)}}).update(function(t,e){var i=a.getItemGraphicEl(e);if(n.hasValue(t)){var s=n.getItemLayout(t);i?ng(s,i,n,t):i=ig(s,n,t,r),o.add(i),n.setItemGraphicEl(t,i)}else o.remove(i)}).remove(function(t){var e=a.getItemGraphicEl(t);e&&o.remove(e)}).execute(),this._data=n},remove:function(t){var e=this.group,i=this._data;this._data=null,i&&i.eachItemGraphicEl(function(t){t&&e.remove(t)})},dispose:B}),kn.extend({type:"boxplotBoxPath",shape:{},buildPath:function(t,e){var i=e.points,n=0;for(t.moveTo(i[n][0],i[n][1]),n++;n<4;n++)t.lineTo(i[n][0],i[n][1]);for(t.closePath();n0?Zk:Uk)}function n(t,e){return e.get(t>0?Wk:Hk)}var o=t.getData(),a=t.pipelineContext.large;if(o.setVisual({legendSymbol:"roundRect",colorP:i(1,t),colorN:i(-1,t),borderColorP:n(1,t),borderColorN:n(-1,t)}),!e.isSeriesFiltered(t))return!a&&{progress:function(t,e){for(var o;null!=(o=t.next());){var a=e.getItemModel(o),r=e.getItemLayout(o).sign;e.setItemVisual(o,{color:i(r,a),borderColor:n(r,a)})}}}}},jk="undefined"!=typeof Float32Array?Float32Array:Array,Yk={seriesType:"candlestick",plan:$I(),reset:function(t){var e=t.coordinateSystem,i=t.getData(),n=pg(t,i),o=0,a=1,r=["x","y"],s=i.mapDimension(r[o]),l=i.mapDimension(r[a],!0),u=l[0],h=l[1],c=l[2],d=l[3];if(i.setLayout({candleWidth:n,isSimpleBox:n<=1.3}),!(null==s||l.length<4))return{progress:t.pipelineContext.large?function(t,i){for(var n,r,l=new jk(5*t.count),f=0,p=[],g=[];null!=(r=t.next());){var m=i.get(s,r),v=i.get(u,r),y=i.get(h,r),x=i.get(c,r),_=i.get(d,r);isNaN(m)||isNaN(x)||isNaN(_)?(l[f++]=NaN,f+=4):(l[f++]=fg(i,r,v,y,h),p[o]=m,p[a]=x,n=e.dataToPoint(p,null,g),l[f++]=n?n[0]:NaN,l[f++]=n?n[1]:NaN,p[a]=_,n=e.dataToPoint(p,null,g),l[f++]=n?n[1]:NaN)}i.setLayout("largePoints",l)}:function(t,i){function r(t,i){var n=[];return n[o]=i,n[a]=t,isNaN(i)||isNaN(t)?[NaN,NaN]:e.dataToPoint(n)}function l(t,e,i){var a=e.slice(),r=e.slice();a[o]=$n(a[o]+n/2,1,!1),r[o]=$n(r[o]-n/2,1,!0),i?t.push(a,r):t.push(r,a)}function f(t){return t[o]=$n(t[o],1),t}for(var p;null!=(p=t.next());){var g=i.get(s,p),m=i.get(u,p),v=i.get(h,p),y=i.get(c,p),x=i.get(d,p),_=Math.min(m,v),w=Math.max(m,v),b=r(_,g),S=r(w,g),M=r(y,g),I=r(x,g),T=[];l(T,S,0),l(T,b,1),T.push(f(I),f(S),f(M),f(b)),i.setItemLayout(p,{sign:fg(i,p,m,v,h),initBaseline:m>v?S[a]:b[a],ends:T,brushRect:function(t,e,i){var s=r(t,i),l=r(e,i);return s[o]-=n/2,l[o]-=n/2,{x:s[0],y:s[1],width:a?n:l[0]-s[0],height:a?l[1]-s[1]:n}}(y,x,g)})}}}}};Ps(function(t){t&&y(t.series)&&d(t.series,function(t){w(t)&&"k"===t.type&&(t.type="candlestick")})}),zs(Xk),Rs(Yk),YI.extend({type:"series.effectScatter",dependencies:["grid","polar"],getInitialData:function(t,e){return gl(this.getSource(),this)},brushSelector:"point",defaultOption:{coordinateSystem:"cartesian2d",zlevel:0,z:2,legendHoverLink:!0,effectType:"ripple",progressive:0,showEffectOn:"render",rippleEffect:{period:4,scale:2.5,brushType:"fill"},symbolSize:10}});var qk=vg.prototype;qk.stopEffectAnimation=function(){this.childAt(1).removeAll()},qk.startEffectAnimation=function(t){for(var e=t.symbolType,i=t.color,n=this.childAt(1),o=0;o<3;o++){var a=$l(e,-1,-1,2,2,i);a.attr({style:{strokeNoScale:!0},z2:99,silent:!0,scale:[.5,.5]});var r=-o/3*t.period+t.effectOffset;a.animate("",!0).when(t.period,{scale:[t.rippleScale/2,t.rippleScale/2]}).delay(r).start(),a.animateStyle(!0).when(t.period,{opacity:0}).delay(r).start(),n.add(a)}mg(n,t)},qk.updateEffectAnimation=function(t){for(var e=this._effectCfg,i=this.childAt(1),n=["symbolType","period","rippleScale"],o=0;o "))},preventIncremental:function(){return!!this.get("effect.show")},getProgressive:function(){var t=this.option.progressive;return null==t?this.option.large?1e4:this.get("progressive"):t},getProgressiveThreshold:function(){var t=this.option.progressiveThreshold;return null==t?this.option.large?2e4:this.get("progressiveThreshold"):t},defaultOption:{coordinateSystem:"geo",zlevel:0,z:2,legendHoverLink:!0,hoverAnimation:!0,xAxisIndex:0,yAxisIndex:0,symbol:["none","none"],symbolSize:[10,10],geoIndex:0,effect:{show:!1,period:4,constantSpeed:0,symbol:"circle",symbolSize:3,loop:!0,trailLength:.2},large:!1,largeThreshold:2e3,polyline:!1,label:{show:!1,position:"end"},lineStyle:{opacity:.5}}}),Qk=xg.prototype;Qk.createLine=function(t,e,i){return new af(t,e,i)},Qk._updateEffectSymbol=function(t,e){var i=t.getItemModel(e).getModel("effect"),n=i.get("symbolSize"),o=i.get("symbol");y(n)||(n=[n,n]);var a=i.get("color")||t.getItemVisual(e,"color"),r=this.childAt(1);this._symbolType!==o&&(this.remove(r),(r=$l(o,-.5,-.5,1,1,a)).z2=100,r.culling=!0,this.add(r)),r&&(r.setStyle("shadowColor",a),r.setStyle(i.getItemStyle(["color"])),r.attr("scale",n),r.setColor(a),r.attr("scale",n),this._symbolType=o,this._updateEffectAnimation(t,i,e))},Qk._updateEffectAnimation=function(t,e,i){var n=this.childAt(1);if(n){var o=this,a=t.getItemLayout(i),r=1e3*e.get("period"),s=e.get("loop"),l=e.get("constantSpeed"),u=T(e.get("delay"),function(e){return e/t.count()*r/3}),h="function"==typeof u;if(n.ignore=!0,this.updateAnimationPoints(n,a),l>0&&(r=this.getLineLength(n)/l*1e3),r!==this._period||s!==this._loop){n.stopAnimation();var c=u;h&&(c=u(i)),n.__t>0&&(c=-r*n.__t),n.__t=0;var d=n.animate("",s).when(r,{__t:1}).delay(c).during(function(){o.updateSymbolPosition(n)});s||d.done(function(){o.remove(n)}),d.start()}this._period=r,this._loop=s}},Qk.getLineLength=function(t){return uw(t.__p1,t.__cp1)+uw(t.__cp1,t.__p2)},Qk.updateAnimationPoints=function(t,e){t.__p1=e[0],t.__p2=e[1],t.__cp1=e[2]||[(e[0][0]+e[1][0])/2,(e[0][1]+e[1][1])/2]},Qk.updateData=function(t,e,i){this.childAt(0).updateData(t,e,i),this._updateEffectSymbol(t,e)},Qk.updateSymbolPosition=function(t){var e=t.__p1,i=t.__p2,n=t.__cp1,o=t.__t,a=t.position,r=rn,s=sn;a[0]=r(e[0],n[0],i[0],o),a[1]=r(e[1],n[1],i[1],o);var l=s(e[0],n[0],i[0],o),u=s(e[1],n[1],i[1],o);t.rotation=-Math.atan2(u,l)-Math.PI/2,t.ignore=!1},Qk.updateLayout=function(t,e){this.childAt(0).updateLayout(t,e);var i=t.getItemModel(e).getModel("effect");this._updateEffectAnimation(t,i,e)},u(xg,tb);var tP=_g.prototype;tP._createPolyline=function(t,e,i){var n=t.getItemLayout(e),o=new gM({shape:{points:n}});this.add(o),this._updateCommonStl(t,e,i)},tP.updateData=function(t,e,i){var n=t.hostModel;Mo(this.childAt(0),{shape:{points:t.getItemLayout(e)}},n,e),this._updateCommonStl(t,e,i)},tP._updateCommonStl=function(t,e,i){var n=this.childAt(0),o=t.getItemModel(e),a=t.getItemVisual(e,"color"),s=i&&i.lineStyle,l=i&&i.hoverLineStyle;i&&!t.hasItemOption||(s=o.getModel("lineStyle").getLineStyle(),l=o.getModel("emphasis.lineStyle").getLineStyle()),n.useStyle(r({strokeNoScale:!0,fill:"none",stroke:a},s)),n.hoverStyle=l,co(this)},tP.updateLayout=function(t,e){this.childAt(0).setShape("points",t.getItemLayout(e))},u(_g,tb);var eP=wg.prototype;eP.createLine=function(t,e,i){return new _g(t,e,i)},eP.updateAnimationPoints=function(t,e){this._points=e;for(var i=[0],n=0,o=1;o=0&&!(n[r]<=e);r--);r=Math.min(r,o-2)}else{for(var r=a;re);r++);r=Math.min(r-1,o-2)}J(t.position,i[r],i[r+1],(e-n[r])/(n[r+1]-n[r]));var s=i[r+1][0]-i[r][0],l=i[r+1][1]-i[r][1];t.rotation=-Math.atan2(l,s)-Math.PI/2,this._lastFrame=r,this._lastFramePercent=e,t.ignore=!1}},u(wg,xg);var iP=Zn({shape:{polyline:!1,curveness:0,segs:[]},buildPath:function(t,e){var i=e.segs,n=e.curveness;if(e.polyline)for(r=0;r0){t.moveTo(i[r++],i[r++]);for(var a=1;a0){var c=(s+u)/2-(l-h)*n,d=(l+h)/2-(u-s)*n;t.quadraticCurveTo(c,d,u,h)}else t.lineTo(u,h)}},findDataIndex:function(t,e){var i=this.shape,n=i.segs,o=i.curveness;if(i.polyline)for(var a=0,r=0;r0)for(var l=n[r++],u=n[r++],h=1;h0){if(xn(l,u,(l+c)/2-(u-d)*o,(u+d)/2-(c-l)*o,c,d))return a}else if(vn(l,u,c,d))return a;a++}return-1}}),nP=bg.prototype;nP.isPersistent=function(){return!this._incremental},nP.updateData=function(t){this.group.removeAll();var e=new iP({rectHover:!0,cursor:"default"});e.setShape({segs:t.getLayout("linesPoints")}),this._setCommon(e,t),this.group.add(e),this._incremental=null},nP.incrementalPrepareUpdate=function(t){this.group.removeAll(),this._clearIncremental(),t.count()>5e5?(this._incremental||(this._incremental=new Hn({silent:!0})),this.group.add(this._incremental)):this._incremental=null},nP.incrementalUpdate=function(t,e){var i=new iP;i.setShape({segs:e.getLayout("linesPoints")}),this._setCommon(i,e,!!this._incremental),this._incremental?this._incremental.addDisplayable(i,!0):(i.rectHover=!0,i.cursor="default",i.__startIndex=t.start,this.group.add(i))},nP.remove=function(){this._clearIncremental(),this._incremental=null,this.group.removeAll()},nP._setCommon=function(t,e,i){var n=e.hostModel;t.setShape({polyline:n.get("polyline"),curveness:n.get("lineStyle.curveness")}),t.useStyle(n.getModel("lineStyle").getLineStyle()),t.style.strokeNoScale=!0;var o=e.getVisual("color");o&&t.setStyle("stroke",o),t.setStyle("fill"),i||(t.seriesIndex=n.seriesIndex,t.on("mousemove",function(e){t.dataIndex=null;var i=t.findDataIndex(e.offsetX,e.offsetY);i>0&&(t.dataIndex=i+t.__startIndex)}))},nP._clearIncremental=function(){var t=this._incremental;t&&t.clearDisplaybles()};var oP={seriesType:"lines",plan:$I(),reset:function(t){var e=t.coordinateSystem,i=t.get("polyline"),n=t.pipelineContext.large;return{progress:function(o,a){var r=[];if(n){var s,l=o.end-o.start;if(i){for(var u=0,h=o.start;h0){var I=a(v)?s:l;v>0&&(v=v*S+b),x[_++]=I[M],x[_++]=I[M+1],x[_++]=I[M+2],x[_++]=I[M+3]*v*256}else _+=4}return c.putImageData(y,0,0),h},_getBrush:function(){var t=this._brushCanvas||(this._brushCanvas=iw()),e=this.pointSize+this.blurSize,i=2*e;t.width=i,t.height=i;var n=t.getContext("2d");return n.clearRect(0,0,i,i),n.shadowOffsetX=i,n.shadowBlur=this.blurSize,n.shadowColor="#000",n.beginPath(),n.arc(-e,e,this.pointSize,0,2*Math.PI,!0),n.closePath(),n.fill(),t},_getGradient:function(t,e,i){for(var n=this._gradientPixels,o=n[i]||(n[i]=new Uint8ClampedArray(1024)),a=[0,0,0,0],r=0,s=0;s<256;s++)e[i](s/255,!0,a),o[r++]=a[0],o[r++]=a[1],o[r++]=a[2],o[r++]=a[3];return o}},Hs({type:"heatmap",render:function(t,e,i){var n;e.eachComponent("visualMap",function(e){e.eachTargetSeries(function(i){i===t&&(n=e)})}),this.group.removeAll(),this._incrementalDisplayable=null;var o=t.coordinateSystem;"cartesian2d"===o.type||"calendar"===o.type?this._renderOnCartesianAndCalendar(t,i,0,t.getData().count()):Ag(o)&&this._renderOnGeo(o,t,n,i)},incrementalPrepareRender:function(t,e,i){this.group.removeAll()},incrementalRender:function(t,e,i,n){e.coordinateSystem&&this._renderOnCartesianAndCalendar(e,n,t.start,t.end,!0)},_renderOnCartesianAndCalendar:function(t,e,i,n,o){var r,s,l=t.coordinateSystem;if("cartesian2d"===l.type){var u=l.getAxis("x"),h=l.getAxis("y");r=u.getBandWidth(),s=h.getBandWidth()}for(var c=this.group,d=t.getData(),f=t.getModel("itemStyle").getItemStyle(["color"]),p=t.getModel("emphasis.itemStyle").getItemStyle(),g=t.getModel("label"),m=t.getModel("emphasis.label"),v=l.type,y="cartesian2d"===v?[d.mapDimension("x"),d.mapDimension("y"),d.mapDimension("value")]:[d.mapDimension("time"),d.mapDimension("value")],x=i;x=e.y&&t[1]<=e.y+e.height:i.contain(i.toLocalCoord(t[1]))&&t[0]>=e.y&&t[0]<=e.y+e.height},pointToData:function(t){var e=this.getAxis();return[e.coordToData(e.toLocalCoord(t["horizontal"===e.orient?0:1]))]},dataToPoint:function(t){var e=this.getAxis(),i=this.getRect(),n=[],o="horizontal"===e.orient?0:1;return t instanceof Array&&(t=t[0]),n[o]=e.toGlobalCoord(e.dataToCoord(+t)),n[1-o]=0===o?i.y+i.height/2:i.x+i.width/2,n}},Ga.register("single",{create:function(t,e){var i=[];return t.eachComponent("singleAxis",function(n,o){var a=new $g(n,t,e);a.name="single_"+o,a.resize(n,e),n.coordinateSystem=a,i.push(a)}),t.eachSeries(function(e){if("singleAxis"===e.get("coordinateSystem")){var i=t.queryComponents({mainType:"singleAxis",index:e.get("singleAxisIndex"),id:e.get("singleAxisId")})[0];e.coordinateSystem=i&&i.coordinateSystem}}),i},dimensions:$g.prototype.dimensions});var dP=["axisLine","axisTickLabel","axisName"],fP=ZD.extend({type:"singleAxis",axisPointerClass:"SingleAxisPointer",render:function(t,e,i,n){var o=this.group;o.removeAll();var a=Jg(t),r=new VD(t,a);d(dP,r.add,r),o.add(r.getGroup()),t.get("splitLine.show")&&this._splitLine(t),fP.superCall(this,"render",t,e,i,n)},_splitLine:function(t){var e=t.axis;if(!e.scale.isBlank()){var i=t.getModel("splitLine"),n=i.getModel("lineStyle"),o=n.get("width"),a=n.get("color");a=a instanceof Array?a:[a];for(var r=t.coordinateSystem.getRect(),s=e.isHorizontal(),l=[],u=0,h=e.getTicksCoords({tickModel:i}),c=[],d=[],f=0;f=0)&&i({type:"updateAxisPointer",currTrigger:t,x:e&&e.offsetX,y:e&&e.offsetY})})},remove:function(t,e){gm(e.getZr(),"axisPointer"),wP.superApply(this._model,"remove",arguments)},dispose:function(t,e){gm("axisPointer",e),wP.superApply(this._model,"dispose",arguments)}}),bP=Bi(),SP=i,MP=m;(mm.prototype={_group:null,_lastGraphicKey:null,_handle:null,_dragging:!1,_lastValue:null,_lastStatus:null,_payloadInfo:null,animationThreshold:15,render:function(t,e,i,n){var o=e.get("value"),a=e.get("status");if(this._axisModel=t,this._axisPointerModel=e,this._api=i,n||this._lastValue!==o||this._lastStatus!==a){this._lastValue=o,this._lastStatus=a;var r=this._group,s=this._handle;if(!a||"hide"===a)return r&&r.hide(),void(s&&s.hide());r&&r.show(),s&&s.show();var l={};this.makeElOption(l,o,t,e,i);var u=l.graphicKey;u!==this._lastGraphicKey&&this.clear(i),this._lastGraphicKey=u;var h=this._moveAnimation=this.determineAnimation(t,e);if(r){var c=v(vm,e,h);this.updatePointerEl(r,l,c,e),this.updateLabelEl(r,l,c,e)}else r=this._group=new tb,this.createPointerEl(r,l,t,e),this.createLabelEl(r,l,t,e),i.getZr().add(r);wm(r,e,!0),this._renderHandle(o)}},remove:function(t){this.clear(t)},dispose:function(t){this.clear(t)},determineAnimation:function(t,e){var i=e.get("animation"),n=t.axis,o="category"===n.type,a=e.get("snap");if(!a&&!o)return!1;if("auto"===i||null==i){var r=this.animationThreshold;if(o&&n.getBandWidth()>r)return!0;if(a){var s=Sh(t).seriesDataCount,l=n.getExtent();return Math.abs(l[0]-l[1])/s>r}return!1}return!0===i},makeElOption:function(t,e,i,n,o){},createPointerEl:function(t,e,i,n){var o=e.pointer;if(o){var a=bP(t).pointerEl=new zM[o.type](SP(e.pointer));t.add(a)}},createLabelEl:function(t,e,i,n){if(e.label){var o=bP(t).labelEl=new yM(SP(e.label));t.add(o),xm(o,n)}},updatePointerEl:function(t,e,i){var n=bP(t).pointerEl;n&&(n.setStyle(e.pointer.style),i(n,{shape:e.pointer.shape}))},updateLabelEl:function(t,e,i,n){var o=bP(t).labelEl;o&&(o.setStyle(e.label.style),i(o,{shape:e.label.shape,position:e.label.position}),xm(o,n))},_renderHandle:function(t){if(!this._dragging&&this.updateHandleTransform){var e=this._axisPointerModel,i=this._api.getZr(),n=this._handle,o=e.getModel("handle"),a=e.get("status");if(!o.get("show")||!a||"hide"===a)return n&&i.remove(n),void(this._handle=null);var r;this._handle||(r=!0,n=this._handle=ko(o.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(t){mw(t.event)},onmousedown:MP(this._onHandleDragMove,this,0,0),drift:MP(this._onHandleDragMove,this),ondragend:MP(this._onHandleDragEnd,this)}),i.add(n)),wm(n,e,!1);n.setStyle(o.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var s=o.get("size");y(s)||(s=[s,s]),n.attr("scale",[s[0]/2,s[1]/2]),Pr(this,"_doDispatchAxisPointer",o.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,r)}},_moveHandleToValue:function(t,e){vm(this._axisPointerModel,!e&&this._moveAnimation,this._handle,_m(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},_onHandleDragMove:function(t,e){var i=this._handle;if(i){this._dragging=!0;var n=this.updateHandleTransform(_m(i),[t,e],this._axisModel,this._axisPointerModel);this._payloadInfo=n,i.stopAnimation(),i.attr(_m(n)),bP(i).lastProp=null,this._doDispatchAxisPointer()}},_doDispatchAxisPointer:function(){if(this._handle){var t=this._payloadInfo,e=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:t.cursorPoint[0],y:t.cursorPoint[1],tooltipOption:t.tooltipOption,axesInfo:[{axisDim:e.axis.dim,axisIndex:e.componentIndex}]})}},_onHandleDragEnd:function(t){if(this._dragging=!1,this._handle){var e=this._axisPointerModel.get("value");this._moveHandleToValue(e),this._api.dispatchAction({type:"hideTip"})}},getHandleTransform:null,updateHandleTransform:null,clear:function(t){this._lastValue=null,this._lastStatus=null;var e=t.getZr(),i=this._group,n=this._handle;e&&i&&(this._lastGraphicKey=null,i&&e.remove(i),n&&e.remove(n),this._group=null,this._handle=null,this._payloadInfo=null)},doClear:function(){},buildLabel:function(t,e,i){return i=i||0,{x:t[i],y:t[1-i],width:e[i],height:e[1-i]}}}).constructor=mm,Xi(mm);var IP=mm.extend({makeElOption:function(t,e,i,n,o){var a=i.axis,r=a.grid,s=n.get("type"),l=km(r,a).getOtherAxis(a).getGlobalExtent(),u=a.toGlobalCoord(a.dataToCoord(e,!0));if(s&&"none"!==s){var h=bm(n),c=TP[s](a,u,l,h);c.style=h,t.graphicKey=c.type,t.pointer=c}Am(e,t,Ch(r.model,i),i,n,o)},getHandleTransform:function(t,e,i){var n=Ch(e.axis.grid.model,e,{labelInside:!1});return n.labelMargin=i.get("handle.margin"),{position:Tm(e.axis,t,n),rotation:n.rotation+(n.labelDirection<0?Math.PI:0)}},updateHandleTransform:function(t,e,i,n){var o=i.axis,a=o.grid,r=o.getGlobalExtent(!0),s=km(a,o).getOtherAxis(o).getGlobalExtent(),l="x"===o.dim?0:1,u=t.position;u[l]+=e[l],u[l]=Math.min(r[1],u[l]),u[l]=Math.max(r[0],u[l]);var h=(s[1]+s[0])/2,c=[h,h];c[l]=u[l];return{position:u,rotation:t.rotation,cursorPoint:c,tooltipOption:[{verticalAlign:"middle"},{align:"center"}][l]}}}),TP={line:function(t,e,i,n){var o=Dm([e,i[0]],[e,i[1]],Pm(t));return qn({shape:o,style:n}),{type:"Line",shape:o}},shadow:function(t,e,i,n){var o=Math.max(1,t.getBandWidth()),a=i[1]-i[0];return{type:"Rect",shape:Cm([e-o/2,i[0]],[o,a],Pm(t))}}};ZD.registerAxisPointerClass("CartesianAxisPointer",IP),Ps(function(t){if(t){(!t.axisPointer||0===t.axisPointer.length)&&(t.axisPointer={});var e=t.axisPointer.link;e&&!y(e)&&(t.axisPointer.link=[e])}}),Ns(BT.PROCESSOR.STATISTIC,function(t,e){t.getComponent("axisPointer").coordSysAxesInfo=mh(t,e)}),Os({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},function(t,e,i){var n=t.currTrigger,o=[t.x,t.y],a=t,r=t.dispatchAction||m(i.dispatchAction,i),s=e.getComponent("axisPointer").coordSysAxesInfo;if(s){lm(o)&&(o=gP({seriesIndex:a.seriesIndex,dataIndex:a.dataIndex},e).point);var l=lm(o),u=a.axesInfo,h=s.axesInfo,c="leave"===n||lm(o),d={},f={},p={list:[],map:{}},g={showPointer:vP(em,f),showTooltip:vP(im,p)};mP(s.coordSysMap,function(t,e){var i=l||t.containPoint(o);mP(s.coordSysAxesInfo[e],function(t,e){var n=t.axis,a=rm(u,t);if(!c&&i&&(!u||a)){var r=a&&a.value;null!=r||l||(r=n.pointToData(o)),null!=r&&Qg(t,r,g,!1,d)}})});var v={};return mP(h,function(t,e){var i=t.linkGroup;i&&!f[e]&&mP(i.axesInfo,function(e,n){var o=f[n];if(e!==t&&o){var a=o.value;i.mapper&&(a=t.axis.scale.parse(i.mapper(a,sm(e),sm(t)))),v[t.key]=a}})}),mP(v,function(t,e){Qg(h[e],t,g,!0,d)}),nm(f,h,d),om(p,o,t,r),am(h,0,i),d}});var AP=["x","y"],DP=["width","height"],CP=mm.extend({makeElOption:function(t,e,i,n,o){var a=i.axis,r=a.coordinateSystem,s=Om(r,1-Nm(a)),l=r.dataToPoint(e)[0],u=n.get("type");if(u&&"none"!==u){var h=bm(n),c=LP[u](a,l,s,h);c.style=h,t.graphicKey=c.type,t.pointer=c}Am(e,t,Jg(i),i,n,o)},getHandleTransform:function(t,e,i){var n=Jg(e,{labelInside:!1});return n.labelMargin=i.get("handle.margin"),{position:Tm(e.axis,t,n),rotation:n.rotation+(n.labelDirection<0?Math.PI:0)}},updateHandleTransform:function(t,e,i,n){var o=i.axis,a=o.coordinateSystem,r=Nm(o),s=Om(a,r),l=t.position;l[r]+=e[r],l[r]=Math.min(s[1],l[r]),l[r]=Math.max(s[0],l[r]);var u=Om(a,1-r),h=(u[1]+u[0])/2,c=[h,h];return c[r]=l[r],{position:l,rotation:t.rotation,cursorPoint:c,tooltipOption:{verticalAlign:"middle"}}}}),LP={line:function(t,e,i,n){var o=Dm([e,i[0]],[e,i[1]],Nm(t));return qn({shape:o,style:n}),{type:"Line",shape:o}},shadow:function(t,e,i,n){var o=t.getBandWidth(),a=i[1]-i[0];return{type:"Rect",shape:Cm([e-o/2,i[0]],[o,a],Nm(t))}}};ZD.registerAxisPointerClass("SingleAxisPointer",CP),Fs({type:"single"});var kP=YI.extend({type:"series.themeRiver",dependencies:["singleAxis"],nameMap:null,init:function(t){kP.superApply(this,"init",arguments),this.legendDataProvider=function(){return this.getRawData()}},fixData:function(t){for(var e=t.length,i=f(zp().key(function(t){return t[2]}).entries(t),function(t){return{name:t.key,dataList:t.values}}),n=i.length,o=-1,a=-1,r=0;ro&&(o=s,a=r)}for(var l=0;lMath.PI/2?"right":"left"):x&&"center"!==x?"left"===x?(f=u.r0+y,p>Math.PI/2&&(x="right")):"right"===x&&(f=u.r-y,p>Math.PI/2&&(x="left")):(f=(u.r+u.r0)/2,x="center"),d.attr("style",{text:l,textAlign:x,textVerticalAlign:n("verticalAlign")||"middle",opacity:n("opacity")});var _=f*g+u.cx,w=f*m+u.cy;d.attr("position",[_,w]);var b=n("rotate"),S=0;"radial"===b?(S=-p)<-Math.PI/2&&(S+=Math.PI):"tangential"===b?(S=Math.PI/2-p)>Math.PI/2?S-=Math.PI:S<-Math.PI/2&&(S+=Math.PI):"number"==typeof b&&(S=b*Math.PI/180),d.attr("rotation",S)},EP._initEvents=function(t,e,i,n){t.off("mouseover").off("mouseout").off("emphasis").off("normal");var o=this,a=function(){o.onEmphasis(n)},r=function(){o.onNormal()};i.isAnimationEnabled()&&t.on("mouseover",a).on("mouseout",r).on("emphasis",a).on("normal",r).on("downplay",function(){o.onDownplay()}).on("highlight",function(){o.onHighlight()})},u(Vm,tb);Tr.extend({type:"sunburst",init:function(){},render:function(t,e,i,n){function o(i,n){if(c||!i||i.getValue()||(i=null),i!==l&&n!==l)if(n&&n.piece)i?(n.piece.updateData(!1,i,"normal",t,e),s.setItemGraphicEl(i.dataIndex,n.piece)):a(n);else if(i){var o=new Vm(i,t,e);h.add(o),s.setItemGraphicEl(i.dataIndex,o)}}function a(t){t&&t.piece&&(h.remove(t.piece),t.piece=null)}var r=this;this.seriesModel=t,this.api=i,this.ecModel=e;var s=t.getData(),l=s.tree.root,u=t.getViewRoot(),h=this.group,c=t.get("renderLabelForZeroData"),d=[];u.eachNode(function(t){d.push(t)});var f=this._oldChildren||[];if(function(t,e){function i(t){return t.getId()}function n(i,n){o(null==i?null:t[i],null==n?null:e[n])}0===t.length&&0===e.length||new Us(e,t,i,i).add(n).update(n).remove(v(n,null)).execute()}(d,f),function(i,n){if(n.depth>0){r.virtualPiece?r.virtualPiece.updateData(!1,i,"normal",t,e):(r.virtualPiece=new Vm(i,t,e),h.add(r.virtualPiece)),n.piece._onclickEvent&&n.piece.off("click",n.piece._onclickEvent);var o=function(t){r._rootToNode(n.parentNode)};n.piece._onclickEvent=o,r.virtualPiece.on("click",o)}else r.virtualPiece&&(h.remove(r.virtualPiece),r.virtualPiece=null)}(l,u),n&&n.highlight&&n.highlight.piece){var p=t.getShallow("highlightPolicy");n.highlight.piece.onEmphasis(p)}else if(n&&n.unhighlight){var g=this.virtualPiece;!g&&l.children.length&&(g=l.children[0].piece),g&&g.onNormal()}this._initEvents(),this._oldChildren=d},dispose:function(){},_initEvents:function(){var t=this,e=function(e){var i=!1;t.seriesModel.getViewRoot().eachNode(function(n){if(!i&&n.piece&&n.piece.childAt(0)===e.target){var o=n.getModel().get("nodeClick");if("rootToNode"===o)t._rootToNode(n);else if("link"===o){var a=n.getModel(),r=a.get("link");if(r){var s=a.get("target",!0)||"_blank";window.open(r,s)}}i=!0}})};this.group._onclickEvent&&this.group.off("click",this.group._onclickEvent),this.group.on("click",e),this.group._onclickEvent=e},_rootToNode:function(t){t!==this.seriesModel.getViewRoot()&&this.api.dispatchAction({type:"sunburstRootToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:t})},containPoint:function(t,e){var i=e.getData().getItemLayout(0);if(i){var n=t[0]-i.cx,o=t[1]-i.cy,a=Math.sqrt(n*n+o*o);return a<=i.r&&a>=i.r0}}});var RP="sunburstRootToNode";Os({type:RP,update:"updateView"},function(t,e){e.eachComponent({mainType:"series",subType:"sunburst",query:t},function(e,i){var n=sd(t,[RP],e);if(n){var o=e.getViewRoot();o&&(t.direction=ud(o,n.node)?"rollUp":"drillDown"),e.resetViewRoot(n.node)}})});var zP="sunburstHighlight";Os({type:zP,update:"updateView"},function(t,e){e.eachComponent({mainType:"series",subType:"sunburst",query:t},function(e,i){var n=sd(t,[zP],e);n&&(t.highlight=n.node)})});Os({type:"sunburstUnhighlight",update:"updateView"},function(t,e){e.eachComponent({mainType:"series",subType:"sunburst",query:t},function(e,i){t.unhighlight=!0})});var BP=Math.PI/180;zs(v(sC,"sunburst")),Rs(v(function(t,e,i,n){e.eachSeriesByType(t,function(t){var e=t.get("center"),n=t.get("radius");y(n)||(n=[0,n]),y(e)||(e=[e,e]);var o=i.getWidth(),a=i.getHeight(),r=Math.min(o,a),s=Bo(e[0],o),l=Bo(e[1],a),u=Bo(n[0],r/2),h=Bo(n[1],r/2),c=-t.get("startAngle")*BP,f=t.get("minAngle")*BP,p=t.getData().tree.root,g=t.getViewRoot(),m=g.depth,v=t.get("sort");null!=v&&Zm(g,v);var x=0;d(g.children,function(t){!isNaN(t.getValue())&&x++});var _=g.getValue(),w=Math.PI/(_||x)*2,b=g.depth>0,S=g.height-(b?-1:1),M=(h-u)/(S||1),I=t.get("clockwise"),T=t.get("stillShowZeroSum"),A=I?1:-1,D=function(t,e){if(t){var i=e;if(t!==p){var n=t.getValue(),o=0===_&&T?w:n*w;on[1]&&n.reverse(),{coordSys:{type:"polar",cx:t.cx,cy:t.cy,r:n[1],r0:n[0]},api:{coord:m(function(n){var o=e.dataToRadius(n[0]),a=i.dataToAngle(n[1]),r=t.coordToPoint([o,a]);return r.push(o,a*Math.PI/180),r}),size:m(qm,t)}}},calendar:function(t){var e=t.getRect(),i=t.getRangeInfo();return{coordSys:{type:"calendar",x:e.x,y:e.y,width:e.width,height:e.height,cellWidth:t.getCellWidth(),cellHeight:t.getCellHeight(),rangeInfo:{start:i.start,end:i.end,weeks:i.weeks,dayCount:i.allDay}},api:{coord:function(e,i){return t.dataToPoint(e,i)}}}}};YI.extend({type:"series.custom",dependencies:["grid","polar","geo","singleAxis","calendar"],defaultOption:{coordinateSystem:"cartesian2d",zlevel:0,z:2,legendHoverLink:!0,useTransform:!0},getInitialData:function(t,e){return gl(this.getSource(),this)},getDataParams:function(t,e,i){var n=YI.prototype.getDataParams.apply(this,arguments);return i&&(n.info=i.info),n}}),Tr.extend({type:"custom",_data:null,render:function(t,e,i,n){var o=this._data,a=t.getData(),r=this.group,s=Qm(t,a,e,i);a.diff(o).add(function(e){ev(null,e,s(e,n),t,r,a)}).update(function(e,i){ev(o.getItemGraphicEl(i),e,s(e,n),t,r,a)}).remove(function(t){var e=o.getItemGraphicEl(t);e&&r.remove(e)}).execute(),this._data=a},incrementalPrepareRender:function(t,e,i){this.group.removeAll(),this._data=null},incrementalRender:function(t,e,i,n,o){for(var a=e.getData(),r=Qm(e,a,i,n),s=t.start;s=0;l--)null==o[l]?o.splice(l,1):delete o[l].$action},_flatten:function(t,e,i){d(t,function(t){if(t){i&&(t.parentOption=i),e.push(t);var n=t.children;"group"===t.type&&n&&this._flatten(n,e,t),delete t.children}},this)},useElOptionsToUpdate:function(){var t=this._elOptionsToUpdate;return this._elOptionsToUpdate=null,t}});Fs({type:"graphic",init:function(t,e){this._elMap=R(),this._lastGraphicModel},render:function(t,e,i){t!==this._lastGraphicModel&&this._clear(),this._lastGraphicModel=t,this._updateElements(t),this._relocate(t,i)},_updateElements:function(t){var e=t.useElOptionsToUpdate();if(e){var i=this._elMap,n=this.group;d(e,function(e){var o=e.$action,a=e.id,r=i.get(a),s=e.parentId,l=null!=s?i.get(s):n,u=e.style;"text"===e.type&&u&&(e.hv&&e.hv[1]&&(u.textVerticalAlign=u.textBaseline=null),!u.hasOwnProperty("textFill")&&u.fill&&(u.textFill=u.fill),!u.hasOwnProperty("textStroke")&&u.stroke&&(u.textStroke=u.stroke));var h=fv(e);o&&"merge"!==o?"replace"===o?(dv(r,i),cv(a,l,h,i)):"remove"===o&&dv(r,i):r?r.attr(h):cv(a,l,h,i);var c=i.get(a);c&&(c.__ecGraphicWidth=e.width,c.__ecGraphicHeight=e.height,yv(c,t))})}},_relocate:function(t,e){for(var i=t.option.elements,n=this.group,o=this._elMap,a=i.length-1;a>=0;a--){var r=i[a],s=o.get(r.id);if(s){var l=s.parent;ca(s,r,l===n?{width:e.getWidth(),height:e.getHeight()}:{width:l.__ecGraphicWidth||0,height:l.__ecGraphicHeight||0},null,{hv:r.hv,boundingMode:r.bounding})}}},_clear:function(){var t=this._elMap;t.each(function(e){dv(e,t)}),this._elMap=R()},dispose:function(){this._clear()}});var XP=Gs({type:"legend.plain",dependencies:["series"],layoutMode:{type:"box",ignoreSize:!0},init:function(t,e,i){this.mergeDefaultAndTheme(t,i),t.selected=t.selected||{}},mergeOption:function(t){XP.superCall(this,"mergeOption",t)},optionUpdated:function(){this._updateData(this.ecModel);var t=this._data;if(t[0]&&"single"===this.get("selectedMode")){for(var e=!1,i=0;i=0},defaultOption:{zlevel:0,z:4,show:!0,orient:"horizontal",left:"center",top:0,align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,inactiveColor:"#ccc",textStyle:{color:"#333"},selectedMode:!0,tooltip:{show:!1}}});Os("legendToggleSelect","legendselectchanged",v(xv,"toggleSelected")),Os("legendSelect","legendselected",v(xv,"select")),Os("legendUnSelect","legendunselected",v(xv,"unSelect"));var jP=v,YP=d,qP=tb,KP=Fs({type:"legend.plain",newlineDisabled:!1,init:function(){this.group.add(this._contentGroup=new qP),this._backgroundEl,this._isFirstRender=!0},getContentGroup:function(){return this._contentGroup},render:function(t,e,i){var n=this._isFirstRender;if(this._isFirstRender=!1,this.resetInner(),t.get("show",!0)){var o=t.get("align");o&&"auto"!==o||(o="right"===t.get("left")&&"vertical"===t.get("orient")?"right":"left"),this.renderInner(o,t,e,i);var a=t.getBoxLayoutParams(),s={width:i.getWidth(),height:i.getHeight()},l=t.get("padding"),u=ha(a,s,l),h=this.layoutInner(t,o,u,n),c=ha(r({width:h.width,height:h.height},a),s,l);this.group.attr("position",[c.x-h.x,c.y-h.y]),this.group.add(this._backgroundEl=wv(h,t))}},resetInner:function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl)},renderInner:function(t,e,i,n){var o=this.getContentGroup(),a=R(),r=e.get("selectedMode"),s=[];i.eachRawSeries(function(t){!t.get("legendHoverLink")&&s.push(t.id)}),YP(e.getData(),function(l,u){var h=l.get("name");if(this.newlineDisabled||""!==h&&"\n"!==h){var c=i.getSeriesByName(h)[0];if(!a.get(h))if(c){var d=c.getData(),f=d.getVisual("color");"function"==typeof f&&(f=f(c.getDataParams(0)));var p=d.getVisual("legendSymbol")||"roundRect",g=d.getVisual("symbol");this._createItem(h,u,l,e,p,g,t,f,r).on("click",jP(bv,h,n)).on("mouseover",jP(Sv,c.name,null,n,s)).on("mouseout",jP(Mv,c.name,null,n,s)),a.set(h,!0)}else i.eachRawSeries(function(i){if(!a.get(h)&&i.legendDataProvider){var o=i.legendDataProvider(),c=o.indexOfName(h);if(c<0)return;var d=o.getItemVisual(c,"color");this._createItem(h,u,l,e,"roundRect",null,t,d,r).on("click",jP(bv,h,n)).on("mouseover",jP(Sv,null,h,n,s)).on("mouseout",jP(Mv,null,h,n,s)),a.set(h,!0)}},this)}else o.add(new qP({newline:!0}))},this)},_createItem:function(t,e,i,n,o,r,s,l,u){var h=n.get("itemWidth"),c=n.get("itemHeight"),d=n.get("inactiveColor"),f=n.get("symbolKeepAspect"),p=n.isSelected(t),g=new qP,m=i.getModel("textStyle"),v=i.get("icon"),y=i.getModel("tooltip"),x=y.parentModel;if(o=v||o,g.add($l(o,0,0,h,c,p?l:d,null==f||f)),!v&&r&&(r!==o||"none"===r)){var _=.8*c;"none"===r&&(r="circle"),g.add($l(r,(h-_)/2,(c-_)/2,_,_,p?l:d,null==f||f))}var w="left"===s?h+5:-5,b=s,S=n.get("formatter"),M=t;"string"==typeof S&&S?M=S.replace("{name}",null!=t?t:""):"function"==typeof S&&(M=S(t)),g.add(new rM({style:go({},m,{text:M,x:w,y:c/2,textFill:p?m.getTextColor():d,textAlign:b,textVerticalAlign:"middle"})}));var I=new yM({shape:g.getBoundingRect(),invisible:!0,tooltip:y.get("show")?a({content:t,formatter:x.get("formatter",!0)||function(){return t},formatterParams:{componentType:"legend",legendIndex:n.componentIndex,name:t,$vars:["name"]}},y.option):null});return g.add(I),g.eachChild(function(t){t.silent=!0}),I.silent=!u,this.getContentGroup().add(g),co(g),g.__legendDataIndex=e,g},layoutInner:function(t,e,i){var n=this.getContentGroup();rI(t.get("orient"),n,t.get("itemGap"),i.width,i.height);var o=n.getBoundingRect();return n.attr("position",[-o.x,-o.y]),this.group.getBoundingRect()},remove:function(){this.getContentGroup().removeAll(),this._isFirstRender=!0}});Ns(function(t){var e=t.findComponents({mainType:"legend"});e&&e.length&&t.filterSeries(function(t){for(var i=0;ii[l],p=[-c.x,-c.y];n||(p[s]=o.position[s]);var g=[0,0],m=[-d.x,-d.y],v=A(t.get("pageButtonGap",!0),t.get("itemGap",!0));f&&("end"===t.get("pageButtonPosition",!0)?m[s]+=i[l]-d[l]:g[s]+=d[l]+v),m[1-s]+=c[u]/2-d[u]/2,o.attr("position",p),a.attr("position",g),r.attr("position",m);var y=this.group.getBoundingRect();if((y={x:0,y:0})[l]=f?i[l]:c[l],y[u]=Math.max(c[u],d[u]),y[h]=Math.min(0,d[h]+m[1-s]),a.__rectSize=i[l],f){var x={x:0,y:0};x[l]=Math.max(i[l]-d[l]-v,0),x[u]=y[u],a.setClipPath(new yM({shape:x})),a.__rectSize=x[l]}else r.eachChild(function(t){t.attr({invisible:!0,silent:!0})});var _=this._getPageInfo(t);return null!=_.pageIndex&&Mo(o,{position:_.contentPosition},!!f&&t),this._updatePageInfoView(t,_),y},_pageGo:function(t,e,i){var n=this._getPageInfo(e)[t];null!=n&&i.dispatchAction({type:"legendScroll",scrollDataIndex:n,legendId:e.id})},_updatePageInfoView:function(t,e){var i=this._controllerGroup;d(["pagePrev","pageNext"],function(n){var o=null!=e[n+"DataIndex"],a=i.childOfName(n);a&&(a.setStyle("fill",o?t.get("pageIconColor",!0):t.get("pageIconInactiveColor",!0)),a.cursor=o?"pointer":"default")});var n=i.childOfName("pageText"),o=t.get("pageFormatter"),a=e.pageIndex,r=null!=a?a+1:0,s=e.pageCount;n&&o&&n.setStyle("text",_(o)?o.replace("{current}",r).replace("{total}",s):o({current:r,total:s}))},_getPageInfo:function(t){function e(t){if(t){var e=t.getBoundingRect(),i=e[l]+t.position[r];return{s:i,e:i+e[s],i:t.__legendDataIndex}}}function i(t,e){return t.e>=e&&t.s<=e+a}var n=t.get("scrollDataIndex",!0),o=this.getContentGroup(),a=this._containerGroup.__rectSize,r=t.getOrient().index,s=QP[r],l=tN[r],u=this._findTargetItemIndex(n),h=o.children(),c=h[u],d=h.length,f=d?1:0,p={contentPosition:o.position.slice(),pageCount:f,pageIndex:f-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!c)return p;var g=e(c);p.contentPosition[r]=-g.s;for(var m=u+1,v=g,y=g,x=null;m<=d;++m)(!(x=e(h[m]))&&y.e>v.s+a||x&&!i(x,v.s))&&(v=y.i>v.i?y:x)&&(null==p.pageNextDataIndex&&(p.pageNextDataIndex=v.i),++p.pageCount),y=x;for(var m=u-1,v=g,y=g,x=null;m>=-1;--m)(x=e(h[m]))&&i(y,x.s)||!(v.i=0;){var r=o.indexOf("|}"),s=o.substr(a+"{marker".length,r-a-"{marker".length);s.indexOf("sub")>-1?n["marker"+s]={textWidth:4,textHeight:4,textBorderRadius:2,textBackgroundColor:e[s],textOffset:[3,0]}:n["marker"+s]={textWidth:10,textHeight:10,textBorderRadius:5,textBackgroundColor:e[s]},a=(o=o.substr(r+1)).indexOf("{marker")}this.el=new rM({style:{rich:n,text:t,textLineHeight:20,textBackgroundColor:i.get("backgroundColor"),textBorderRadius:i.get("borderRadius"),textFill:i.get("textStyle.color"),textPadding:i.get("padding")},z:i.get("z")}),this._zr.add(this.el);var l=this;this.el.on("mouseover",function(){l._enterable&&(clearTimeout(l._hideTimeout),l._show=!0),l._inContent=!0}),this.el.on("mouseout",function(){l._enterable&&l._show&&l.hideLater(l._hideDelay),l._inContent=!1})},setEnterable:function(t){this._enterable=t},getSize:function(){var t=this.el.getBoundingRect();return[t.width,t.height]},moveTo:function(t,e){this.el&&this.el.attr("position",[t,e])},hide:function(){this.el.hide(),this._show=!1},hideLater:function(t){!this._show||this._inContent&&this._enterable||(t?(this._hideDelay=t,this._show=!1,this._hideTimeout=setTimeout(m(this.hide,this),t)):this.hide())},isShow:function(){return this._show},getOuterSize:function(){return this.getSize()}};var aN=m,rN=d,sN=Bo,lN=new yM({shape:{x:-1,y:-1,width:2,height:2}});Fs({type:"tooltip",init:function(t,e){if(!U_.node){var i=t.getComponent("tooltip").get("renderMode");this._renderMode=Hi(i);var n;"html"===this._renderMode?(n=new Cv(e.getDom(),e),this._newLine="
"):(n=new Lv(e),this._newLine="\n"),this._tooltipContent=n}},render:function(t,e,i){if(!U_.node){this.group.removeAll(),this._tooltipModel=t,this._ecModel=e,this._api=i,this._lastDataByCoordSys=null,this._alwaysShowContent=t.get("alwaysShowContent");var n=this._tooltipContent;n.update(),n.setEnterable(t.get("enterable")),this._initGlobalListener(),this._keepShow()}},_initGlobalListener:function(){var t=this._tooltipModel.get("triggerOn");um("itemTooltip",this._api,aN(function(e,i,n){"none"!==t&&(t.indexOf(e)>=0?this._tryShow(i,n):"leave"===e&&this._hide(n))},this))},_keepShow:function(){var t=this._tooltipModel,e=this._ecModel,i=this._api;if(null!=this._lastX&&null!=this._lastY&&"none"!==t.get("triggerOn")){var n=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout(function(){n.manuallyShowTip(t,e,i,{x:n._lastX,y:n._lastY})})}},manuallyShowTip:function(t,e,i,n){if(n.from!==this.uid&&!U_.node){var o=Pv(n,i);this._ticket="";var a=n.dataByCoordSys;if(n.tooltip&&null!=n.x&&null!=n.y){var r=lN;r.position=[n.x,n.y],r.update(),r.tooltip=n.tooltip,this._tryShow({offsetX:n.x,offsetY:n.y,target:r},o)}else if(a)this._tryShow({offsetX:n.x,offsetY:n.y,position:n.position,event:{},dataByCoordSys:n.dataByCoordSys,tooltipOption:n.tooltipOption},o);else if(null!=n.seriesIndex){if(this._manuallyAxisShowTip(t,e,i,n))return;var s=gP(n,e),l=s.point[0],u=s.point[1];null!=l&&null!=u&&this._tryShow({offsetX:l,offsetY:u,position:n.position,target:s.el,event:{}},o)}else null!=n.x&&null!=n.y&&(i.dispatchAction({type:"updateAxisPointer",x:n.x,y:n.y}),this._tryShow({offsetX:n.x,offsetY:n.y,position:n.position,target:i.getZr().findHover(n.x,n.y).target,event:{}},o))}},manuallyHideTip:function(t,e,i,n){var o=this._tooltipContent;!this._alwaysShowContent&&this._tooltipModel&&o.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=null,n.from!==this.uid&&this._hide(Pv(n,i))},_manuallyAxisShowTip:function(t,e,i,n){var o=n.seriesIndex,a=n.dataIndex,r=e.getComponent("axisPointer").coordSysAxesInfo;if(null!=o&&null!=a&&null!=r){var s=e.getSeriesByIndex(o);if(s&&"axis"===(t=kv([s.getData().getItemModel(a),s,(s.coordinateSystem||{}).model,t])).get("trigger"))return i.dispatchAction({type:"updateAxisPointer",seriesIndex:o,dataIndex:a,position:n.position}),!0}},_tryShow:function(t,e){var i=t.target;if(this._tooltipModel){this._lastX=t.offsetX,this._lastY=t.offsetY;var n=t.dataByCoordSys;n&&n.length?this._showAxisTooltip(n,t):i&&null!=i.dataIndex?(this._lastDataByCoordSys=null,this._showSeriesItemTooltip(t,i,e)):i&&i.tooltip?(this._lastDataByCoordSys=null,this._showComponentItemTooltip(t,i,e)):(this._lastDataByCoordSys=null,this._hide(e))}},_showOrMove:function(t,e){var i=t.get("showDelay");e=m(e,this),clearTimeout(this._showTimout),i>0?this._showTimout=setTimeout(e,i):e()},_showAxisTooltip:function(t,e){var i=this._ecModel,o=this._tooltipModel,a=[e.offsetX,e.offsetY],r=[],s=[],l=kv([e.tooltipOption,o]),u=this._renderMode,h=this._newLine,c={};rN(t,function(t){rN(t.dataByAxis,function(t){var e=i.getComponent(t.axisDim+"Axis",t.axisIndex),o=t.value,a=[];if(e&&null!=o){var l=Im(o,e.axis,i,t.seriesDataIndices,t.valueLabelOpt);d(t.seriesDataIndices,function(r){var h=i.getSeriesByIndex(r.seriesIndex),d=r.dataIndexInside,f=h&&h.getDataParams(d);if(f.axisDim=t.axisDim,f.axisIndex=t.axisIndex,f.axisType=t.axisType,f.axisId=t.axisId,f.axisValue=Ul(e.axis,o),f.axisValueLabel=l,f){s.push(f);var p,g=h.formatTooltip(d,!0,null,u);if(w(g)){p=g.html;var m=g.markers;n(c,m)}else p=g;a.push(p)}});var f=l;"html"!==u?r.push(a.join(h)):r.push((f?ea(f)+h:"")+a.join(h))}})},this),r.reverse(),r=r.join(this._newLine+this._newLine);var f=e.position;this._showOrMove(l,function(){this._updateContentNotChangedOnAxis(t)?this._updatePosition(l,f,a[0],a[1],this._tooltipContent,s):this._showTooltipContent(l,r,s,Math.random(),a[0],a[1],f,void 0,c)})},_showSeriesItemTooltip:function(t,e,i){var n=this._ecModel,o=e.seriesIndex,a=n.getSeriesByIndex(o),r=e.dataModel||a,s=e.dataIndex,l=e.dataType,u=r.getData(),h=kv([u.getItemModel(s),r,a&&(a.coordinateSystem||{}).model,this._tooltipModel]),c=h.get("trigger");if(null==c||"item"===c){var d,f,p=r.getDataParams(s,l),g=r.formatTooltip(s,!1,l,this._renderMode);w(g)?(d=g.html,f=g.markers):(d=g,f=null);var m="item_"+r.name+"_"+s;this._showOrMove(h,function(){this._showTooltipContent(h,d,p,m,t.offsetX,t.offsetY,t.position,t.target,f)}),i({type:"showTip",dataIndexInside:s,dataIndex:u.getRawIndex(s),seriesIndex:o,from:this.uid})}},_showComponentItemTooltip:function(t,e,i){var n=e.tooltip;if("string"==typeof n){var o=n;n={content:o,formatter:o}}var a=new Po(n,this._tooltipModel,this._ecModel),r=a.get("content"),s=Math.random();this._showOrMove(a,function(){this._showTooltipContent(a,r,a.get("formatterParams")||{},s,t.offsetX,t.offsetY,t.position,e)}),i({type:"showTip",from:this.uid})},_showTooltipContent:function(t,e,i,n,o,a,r,s,l){if(this._ticket="",t.get("showContent")&&t.get("show")){var u=this._tooltipContent,h=t.get("formatter");r=r||t.get("position");var c=e;if(h&&"string"==typeof h)c=ia(h,i,!0);else if("function"==typeof h){var d=aN(function(e,n){e===this._ticket&&(u.setContent(n,l,t),this._updatePosition(t,r,o,a,u,i,s))},this);this._ticket=n,c=h(i,n,d)}u.setContent(c,l,t),u.show(t),this._updatePosition(t,r,o,a,u,i,s)}},_updatePosition:function(t,e,i,n,o,a,r){var s=this._api.getWidth(),l=this._api.getHeight();e=e||t.get("position");var u=o.getSize(),h=t.get("align"),c=t.get("verticalAlign"),d=r&&r.getBoundingRect().clone();if(r&&d.applyTransform(r.transform),"function"==typeof e&&(e=e([i,n],a,o.el,d,{viewSize:[s,l],contentSize:u.slice()})),y(e))i=sN(e[0],s),n=sN(e[1],l);else if(w(e)){e.width=u[0],e.height=u[1];var f=ha(e,{width:s,height:l});i=f.x,n=f.y,h=null,c=null}else"string"==typeof e&&r?(i=(p=Ev(e,d,u))[0],n=p[1]):(i=(p=Nv(i,n,o,s,l,h?null:20,c?null:20))[0],n=p[1]);if(h&&(i-=Rv(h)?u[0]/2:"right"===h?u[0]:0),c&&(n-=Rv(c)?u[1]/2:"bottom"===c?u[1]:0),t.get("confine")){var p=Ov(i,n,o,s,l);i=p[0],n=p[1]}o.moveTo(i,n)},_updateContentNotChangedOnAxis:function(t){var e=this._lastDataByCoordSys,i=!!e&&e.length===t.length;return i&&rN(e,function(e,n){var o=e.dataByAxis||{},a=(t[n]||{}).dataByAxis||[];(i&=o.length===a.length)&&rN(o,function(t,e){var n=a[e]||{},o=t.seriesDataIndices||[],r=n.seriesDataIndices||[];(i&=t.value===n.value&&t.axisType===n.axisType&&t.axisId===n.axisId&&o.length===r.length)&&rN(o,function(t,e){var n=r[e];i&=t.seriesIndex===n.seriesIndex&&t.dataIndex===n.dataIndex})})}),this._lastDataByCoordSys=t,!!i},_hide:function(t){this._lastDataByCoordSys=null,t({type:"hideTip",from:this.uid})},dispose:function(t,e){U_.node||(this._tooltipContent.hide(),gm("itemTooltip",e))}}),Os({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},function(){}),Os({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},function(){}),Gv.prototype={constructor:Gv,pointToData:function(t,e){return this.polar.pointToData(t,e)["radius"===this.dim?0:1]},dataToRadius:nD.prototype.dataToCoord,radiusToData:nD.prototype.coordToData},u(Gv,nD);var uN=Bi();Fv.prototype={constructor:Fv,pointToData:function(t,e){return this.polar.pointToData(t,e)["radius"===this.dim?0:1]},dataToAngle:nD.prototype.dataToCoord,angleToData:nD.prototype.coordToData,calculateCategoryInterval:function(){var t=this,e=t.getLabelModel(),i=t.scale,n=i.getExtent(),o=i.count();if(n[1]-n[0]<1)return 0;var a=n[0],r=t.dataToCoord(a+1)-t.dataToCoord(a),s=Math.abs(r),l=ke(a,e.getFont(),"center","top"),u=Math.max(l.height,7)/s;isNaN(u)&&(u=1/0);var h=Math.max(0,Math.floor(u)),c=uN(t.model),d=c.lastAutoInterval,f=c.lastTickCount;return null!=d&&null!=f&&Math.abs(d-h)<=1&&Math.abs(f-o)<=1&&d>h?h=d:(c.lastTickCount=o,c.lastAutoInterval=h),h}},u(Fv,nD);var hN=function(t){this.name=t||"",this.cx=0,this.cy=0,this._radiusAxis=new Gv,this._angleAxis=new Fv,this._radiusAxis.polar=this._angleAxis.polar=this};hN.prototype={type:"polar",axisPointerEnabled:!0,constructor:hN,dimensions:["radius","angle"],model:null,containPoint:function(t){var e=this.pointToCoord(t);return this._radiusAxis.contain(e[0])&&this._angleAxis.contain(e[1])},containData:function(t){return this._radiusAxis.containData(t[0])&&this._angleAxis.containData(t[1])},getAxis:function(t){return this["_"+t+"Axis"]},getAxes:function(){return[this._radiusAxis,this._angleAxis]},getAxesByScale:function(t){var e=[],i=this._angleAxis,n=this._radiusAxis;return i.scale.type===t&&e.push(i),n.scale.type===t&&e.push(n),e},getAngleAxis:function(){return this._angleAxis},getRadiusAxis:function(){return this._radiusAxis},getOtherAxis:function(t){var e=this._angleAxis;return t===e?this._radiusAxis:e},getBaseAxis:function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAngleAxis()},getTooltipAxes:function(t){var e=null!=t&&"auto"!==t?this.getAxis(t):this.getBaseAxis();return{baseAxes:[e],otherAxes:[this.getOtherAxis(e)]}},dataToPoint:function(t,e){return this.coordToPoint([this._radiusAxis.dataToRadius(t[0],e),this._angleAxis.dataToAngle(t[1],e)])},pointToData:function(t,e){var i=this.pointToCoord(t);return[this._radiusAxis.radiusToData(i[0],e),this._angleAxis.angleToData(i[1],e)]},pointToCoord:function(t){var e=t[0]-this.cx,i=t[1]-this.cy,n=this.getAngleAxis(),o=n.getExtent(),a=Math.min(o[0],o[1]),r=Math.max(o[0],o[1]);n.inverse?a=r-360:r=a+360;var s=Math.sqrt(e*e+i*i);e/=s,i/=s;for(var l=Math.atan2(-i,e)/Math.PI*180,u=lr;)l+=360*u;return[s,l]},coordToPoint:function(t){var e=t[0],i=t[1]/180*Math.PI;return[Math.cos(i)*e+this.cx,-Math.sin(i)*e+this.cy]}};var cN=lI.extend({type:"polarAxis",axis:null,getCoordSysModel:function(){return this.ecModel.queryComponents({mainType:"polar",index:this.option.polarIndex,id:this.option.polarId})[0]}});n(cN.prototype,HA);var dN={angle:{startAngle:90,clockwise:!0,splitNumber:12,axisLabel:{rotate:!1}},radius:{splitNumber:5}};ND("angle",cN,Wv,dN.angle),ND("radius",cN,Wv,dN.radius),Gs({type:"polar",dependencies:["polarAxis","angleAxis"],coordinateSystem:null,findAxisModel:function(t){var e;return this.ecModel.eachComponent(t,function(t){t.getCoordSysModel()===this&&(e=t)},this),e},defaultOption:{zlevel:0,z:0,center:["50%","50%"],radius:"80%"}});var fN={dimensions:hN.prototype.dimensions,create:function(t,e){var i=[];return t.eachComponent("polar",function(t,n){var o=new hN(n);o.update=Zv;var a=o.getRadiusAxis(),r=o.getAngleAxis(),s=t.findAxisModel("radiusAxis"),l=t.findAxisModel("angleAxis");Uv(a,s),Uv(r,l),Hv(o,t,e),i.push(o),t.coordinateSystem=o,o.model=t}),t.eachSeries(function(e){if("polar"===e.get("coordinateSystem")){var i=t.queryComponents({mainType:"polar",index:e.get("polarIndex"),id:e.get("polarId")})[0];e.coordinateSystem=i.coordinateSystem}}),i}};Ga.register("polar",fN);var pN=["axisLine","axisLabel","axisTick","splitLine","splitArea"];ZD.extend({type:"angleAxis",axisPointerClass:"PolarAxisPointer",render:function(t,e){if(this.group.removeAll(),t.get("show")){var n=t.axis,o=n.polar,a=o.getRadiusAxis().getExtent(),r=n.getTicksCoords(),s=f(n.getViewLabels(),function(t){return(t=i(t)).coord=n.dataToCoord(t.tickValue),t});Yv(s),Yv(r),d(pN,function(e){!t.get(e+".show")||n.scale.isBlank()&&"axisLine"!==e||this["_"+e](t,o,r,a,s)},this)}},_axisLine:function(t,e,i,n){var o=t.getModel("axisLine.lineStyle"),a=new sM({shape:{cx:e.cx,cy:e.cy,r:n[jv(e)]},style:o.getLineStyle(),z2:1,silent:!0});a.style.fill=null,this.group.add(a)},_axisTick:function(t,e,i,n){var o=t.getModel("axisTick"),a=(o.get("inside")?-1:1)*o.get("length"),s=n[jv(e)],l=f(i,function(t){return new _M({shape:Xv(e,[s,s+a],t.coord)})});this.group.add(OM(l,{style:r(o.getModel("lineStyle").getLineStyle(),{stroke:t.get("axisLine.lineStyle.color")})}))},_axisLabel:function(t,e,i,n,o){var a=t.getCategories(!0),r=t.getModel("axisLabel"),s=r.get("margin");d(o,function(i,o){var l=r,u=i.tickValue,h=n[jv(e)],c=e.coordToPoint([h+s,i.coord]),d=e.cx,f=e.cy,p=Math.abs(c[0]-d)/h<.3?"center":c[0]>d?"left":"right",g=Math.abs(c[1]-f)/h<.3?"middle":c[1]>f?"top":"bottom";a&&a[u]&&a[u].textStyle&&(l=new Po(a[u].textStyle,r,r.ecModel));var m=new rM({silent:!0});this.group.add(m),go(m.style,l,{x:c[0],y:c[1],textFill:l.getTextColor()||t.get("axisLine.lineStyle.color"),text:i.formattedLabel,textAlign:p,textVerticalAlign:g})},this)},_splitLine:function(t,e,i,n){var o=t.getModel("splitLine").getModel("lineStyle"),a=o.get("color"),s=0;a=a instanceof Array?a:[a];for(var l=[],u=0;u=0?"p":"n",M=y;v&&(n[r][b]||(n[r][b]={p:y,n:y}),M=n[r][b][S]);var I,T,A,D;if("radius"===h.dim){var C=h.dataToRadius(w)-y,L=a.dataToAngle(b);Math.abs(C)=0},AN.findTargetInfo=function(t,e){for(var i=this._targetInfoList,n=dy(e,t),o=0;o=0||SN(n,t.getAxis("y").model)>=0)&&a.push(t)}),e.push({panelId:"grid--"+t.id,gridModel:t,coordSysModel:t,coordSys:a[0],coordSyses:a,getPanelRect:LN.grid,xAxisDeclared:r[t.id],yAxisDeclared:s[t.id]})}))},geo:function(t,e){bN(t.geoModels,function(t){var i=t.coordinateSystem;e.push({panelId:"geo--"+t.id,geoModel:t,coordSysModel:t,coordSys:i,coordSyses:[i],getPanelRect:LN.geo})})}},CN=[function(t,e){var i=t.xAxisModel,n=t.yAxisModel,o=t.gridModel;return!o&&i&&(o=i.axis.grid.model),!o&&n&&(o=n.axis.grid.model),o&&o===e.gridModel},function(t,e){var i=t.geoModel;return i&&i===e.geoModel}],LN={grid:function(){return this.coordSys.grid.getRect().clone()},geo:function(){var t=this.coordSys,e=t.getBoundingRect().clone();return e.applyTransform(To(t)),e}},kN={lineX:MN(fy,0),lineY:MN(fy,1),rect:function(t,e,i){var n=e[IN[t]]([i[0][0],i[1][0]]),o=e[IN[t]]([i[0][1],i[1][1]]),a=[cy([n[0],o[0]]),cy([n[1],o[1]])];return{values:a,xyMinMax:a}},polygon:function(t,e,i){var n=[[1/0,-1/0],[1/0,-1/0]];return{values:f(i,function(i){var o=e[IN[t]](i);return n[0][0]=Math.min(n[0][0],o[0]),n[1][0]=Math.min(n[1][0],o[1]),n[0][1]=Math.max(n[0][1],o[0]),n[1][1]=Math.max(n[1][1],o[1]),o}),xyMinMax:n}}},PN={lineX:MN(py,0),lineY:MN(py,1),rect:function(t,e,i){return[[t[0][0]-i[0]*e[0][0],t[0][1]-i[0]*e[0][1]],[t[1][0]-i[1]*e[1][0],t[1][1]-i[1]*e[1][1]]]},polygon:function(t,e,i){return f(t,function(t,n){return[t[0]-i[0]*e[n][0],t[1]-i[1]*e[n][1]]})}},NN=["inBrush","outOfBrush"],ON="__ecBrushSelect",EN="__ecInBrushSelectEvent",RN=BT.VISUAL.BRUSH;Rs(RN,function(t,e,i){t.eachComponent({mainType:"brush"},function(e){i&&"takeGlobalCursor"===i.type&&e.setBrushOption("brush"===i.key?i.brushOption:{brushType:!1}),(e.brushTargetManager=new hy(e.option,t)).setInputRanges(e.areas,t)})}),zs(RN,function(t,e,n){var o,a,s=[];t.eachComponent({mainType:"brush"},function(e,n){function l(t){return"all"===m||v[t]}function u(t){return!!t.length}function h(t,e){var i=t.coordinateSystem;w|=i.hasAxisBrushed(),l(e)&&i.eachActiveState(t.getData(),function(t,e){"active"===t&&(x[e]=1)})}function c(i,n,o){var a=_y(i);if(a&&!wy(e,n)&&(d(b,function(n){a[n.brushType]&&e.brushTargetManager.controlSeries(n,i,t)&&o.push(n),w|=u(o)}),l(n)&&u(o))){var r=i.getData();r.each(function(t){xy(a,o,r,t)&&(x[t]=1)})}}var p={brushId:e.id,brushIndex:n,brushName:e.name,areas:i(e.areas),selected:[]};s.push(p);var g=e.option,m=g.brushLink,v=[],x=[],_=[],w=0;n||(o=g.throttleType,a=g.throttleDelay);var b=f(e.areas,function(t){return by(r({boundingRect:zN[t.brushType](t)},t))}),S=ty(e.option,NN,function(t){t.mappingMethod="fixed"});y(m)&&d(m,function(t){v[t]=1}),t.eachSeries(function(t,e){var i=_[e]=[];"parallel"===t.subType?h(t,e):c(t,e,i)}),t.eachSeries(function(t,e){var i={seriesId:t.id,seriesIndex:e,seriesName:t.name,dataIndex:[]};p.selected.push(i);var n=_y(t),o=_[e],a=t.getData(),r=l(e)?function(t){return x[t]?(i.dataIndex.push(a.getRawIndex(t)),"inBrush"):"outOfBrush"}:function(t){return xy(n,o,a,t)?(i.dataIndex.push(a.getRawIndex(t)),"inBrush"):"outOfBrush"};(l(e)?w:u(o))&&iy(NN,S,a,r)})}),vy(e,o,a,s,n)});var zN={lineX:B,lineY:B,rect:function(t){return Sy(t.range)},polygon:function(t){for(var e,i=t.range,n=0,o=i.length;ne[0][1]&&(e[0][1]=a[0]),a[1]e[1][1]&&(e[1][1]=a[1])}return e&&Sy(e)}},BN=["#ddd"];Gs({type:"brush",dependencies:["geo","grid","xAxis","yAxis","parallel","series"],defaultOption:{toolbox:null,brushLink:null,seriesIndex:"all",geoIndex:null,xAxisIndex:null,yAxisIndex:null,brushType:"rect",brushMode:"single",transformable:!0,brushStyle:{borderWidth:1,color:"rgba(120,140,180,0.3)",borderColor:"rgba(120,140,180,0.8)"},throttleType:"fixRate",throttleDelay:0,removeOnClick:!0,z:1e4},areas:[],brushType:null,brushOption:{},coordInfoList:[],optionUpdated:function(t,e){var i=this.option;!e&&ey(i,t,["inBrush","outOfBrush"]);var n=i.inBrush=i.inBrush||{};i.outOfBrush=i.outOfBrush||{color:BN},n.hasOwnProperty("liftZ")||(n.liftZ=5)},setAreas:function(t){t&&(this.areas=f(t,function(t){return My(this.option,t)},this))},setBrushOption:function(t){this.brushOption=My(this.option,t),this.brushType=this.brushOption.brushType}});Fs({type:"brush",init:function(t,e){this.ecModel=t,this.api=e,this.model,(this._brushController=new Rf(e.getZr())).on("brush",m(this._onBrush,this)).mount()},render:function(t){return this.model=t,Iy.apply(this,arguments)},updateTransform:Iy,updateView:Iy,dispose:function(){this._brushController.dispose()},_onBrush:function(t,e){var n=this.model.id;this.model.brushTargetManager.setOutputRanges(t,this.ecModel),(!e.isEnd||e.removeOnClick)&&this.api.dispatchAction({type:"brush",brushId:n,areas:i(t),$from:n})}}),Os({type:"brush",event:"brush"},function(t,e){e.eachComponent({mainType:"brush",query:t},function(e){e.setAreas(t.areas)})}),Os({type:"brushSelect",event:"brushSelected",update:"none"},function(){});var VN={},GN=rT.toolbox.brush;Dy.defaultOption={show:!0,type:["rect","polygon","lineX","lineY","keep","clear"],icon:{rect:"M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13",polygon:"M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2",lineX:"M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4",lineY:"M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4",keep:"M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z",clear:"M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2"},title:i(GN.title)};var FN=Dy.prototype;FN.render=FN.updateView=function(t,e,i){var n,o,a;e.eachComponent({mainType:"brush"},function(t){n=t.brushType,o=t.brushOption.brushMode||"single",a|=t.areas.length}),this._brushType=n,this._brushMode=o,d(t.get("type",!0),function(e){t.setIconStatus(e,("keep"===e?"multiple"===o:"clear"===e?a:e===n)?"emphasis":"normal")})},FN.getIcons=function(){var t=this.model,e=t.get("icon",!0),i={};return d(t.get("type",!0),function(t){e[t]&&(i[t]=e[t])}),i},FN.onclick=function(t,e,i){var n=this._brushType,o=this._brushMode;"clear"===i?(e.dispatchAction({type:"axisAreaSelect",intervals:[]}),e.dispatchAction({type:"brush",command:"clear",areas:[]})):e.dispatchAction({type:"takeGlobalCursor",key:"brush",brushOption:{brushType:"keep"===i?n:n!==i&&i,brushMode:"keep"===i?"multiple"===o?"single":"multiple":o}})},Ty("brush",Dy),Ps(function(t,e){var i=t&&t.brush;if(y(i)||(i=i?[i]:[]),i.length){var n=[];d(i,function(t){var e=t.hasOwnProperty("toolbox")?t.toolbox:[];e instanceof Array&&(n=n.concat(e))});var o=t&&t.toolbox;y(o)&&(o=o[0]),o||(o={feature:{}},t.toolbox=[o]);var a=o.feature||(o.feature={}),r=a.brush||(a.brush={}),s=r.type||(r.type=[]);s.push.apply(s,n),Jv(s),e&&!s.length&&s.push.apply(s,xN)}});Cy.prototype={constructor:Cy,type:"calendar",dimensions:["time","value"],getDimensionsInfo:function(){return[{name:"time",type:"time"},"value"]},getRangeInfo:function(){return this._rangeInfo},getModel:function(){return this._model},getRect:function(){return this._rect},getCellWidth:function(){return this._sw},getCellHeight:function(){return this._sh},getOrient:function(){return this._orient},getFirstDayOfWeek:function(){return this._firstDayOfWeek},getDateInfo:function(t){var e=(t=jo(t)).getFullYear(),i=t.getMonth()+1;i=i<10?"0"+i:i;var n=t.getDate();n=n<10?"0"+n:n;var o=t.getDay();return o=Math.abs((o+7-this.getFirstDayOfWeek())%7),{y:e,m:i,d:n,day:o,time:t.getTime(),formatedDate:e+"-"+i+"-"+n,date:t}},getNextNDay:function(t,e){return 0===(e=e||0)?this.getDateInfo(t):((t=new Date(this.getDateInfo(t).time)).setDate(t.getDate()+e),this.getDateInfo(t))},update:function(t,e){function i(t,e){return null!=t[e]&&"auto"!==t[e]}this._firstDayOfWeek=+this._model.getModel("dayLabel").get("firstDay"),this._orient=this._model.get("orient"),this._lineWidth=this._model.getModel("itemStyle").getItemStyle().lineWidth||0,this._rangeInfo=this._getRangeInfo(this._initRangeOption());var n=this._rangeInfo.weeks||1,o=["width","height"],a=this._model.get("cellSize").slice(),r=this._model.getBoxLayoutParams(),s="horizontal"===this._orient?[n,7]:[7,n];d([0,1],function(t){i(a,t)&&(r[o[t]]=a[t]*s[t])});var l={width:e.getWidth(),height:e.getHeight()},u=this._rect=ha(r,l);d([0,1],function(t){i(a,t)||(a[t]=u[o[t]]/s[t])}),this._sw=a[0],this._sh=a[1]},dataToPoint:function(t,e){y(t)&&(t=t[0]),null==e&&(e=!0);var i=this.getDateInfo(t),n=this._rangeInfo,o=i.formatedDate;if(e&&!(i.time>=n.start.time&&i.timea.end.time&&t.reverse(),t},_getRangeInfo:function(t){var e;(t=[this.getDateInfo(t[0]),this.getDateInfo(t[1])])[0].time>t[1].time&&(e=!0,t.reverse());var i=Math.floor(t[1].time/864e5)-Math.floor(t[0].time/864e5)+1,n=new Date(t[0].time),o=n.getDate(),a=t[1].date.getDate();if(n.setDate(o+i-1),n.getDate()!==a)for(var r=n.getTime()-t[1].time>0?1:-1;n.getDate()!==a&&(n.getTime()-t[1].time)*r>0;)i-=r,n.setDate(o+i-1);var s=Math.floor((i+t[0].day+6)/7),l=e?1-s:s-1;return e&&t.reverse(),{range:[t[0].formatedDate,t[1].formatedDate],start:t[0],end:t[1],allDay:i,weeks:s,nthWeek:l,fweek:t[0].day,lweek:t[1].day}},_getDateByWeeksAndDay:function(t,e,i){var n=this._getRangeInfo(i);if(t>n.weeks||0===t&&en.lweek)return!1;var o=7*(t-1)-n.fweek+e,a=new Date(n.start.time);return a.setDate(n.start.d+o),this.getDateInfo(a)}},Cy.dimensions=Cy.prototype.dimensions,Cy.getDimensionsInfo=Cy.prototype.getDimensionsInfo,Cy.create=function(t,e){var i=[];return t.eachComponent("calendar",function(n){var o=new Cy(n,t,e);i.push(o),n.coordinateSystem=o}),t.eachSeries(function(t){"calendar"===t.get("coordinateSystem")&&(t.coordinateSystem=i[t.get("calendarIndex")||0])}),i},Ga.register("calendar",Cy);var WN=lI.extend({type:"calendar",coordinateSystem:null,defaultOption:{zlevel:0,z:2,left:80,top:60,cellSize:20,orient:"horizontal",splitLine:{show:!0,lineStyle:{color:"#000",width:1,type:"solid"}},itemStyle:{color:"#fff",borderWidth:1,borderColor:"#ccc"},dayLabel:{show:!0,firstDay:0,position:"start",margin:"50%",nameMap:"en",color:"#000"},monthLabel:{show:!0,position:"start",margin:5,align:"center",nameMap:"en",formatter:null,color:"#000"},yearLabel:{show:!0,position:null,margin:30,formatter:null,color:"#ccc",fontFamily:"sans-serif",fontWeight:"bolder",fontSize:20}},init:function(t,e,i,n){var o=pa(t);WN.superApply(this,"init",arguments),ky(t,o)},mergeOption:function(t,e){WN.superApply(this,"mergeOption",arguments),ky(this.option,t)}}),HN={EN:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],CN:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},ZN={EN:["S","M","T","W","T","F","S"],CN:["日","一","二","三","四","五","六"]};Fs({type:"calendar",_tlpoints:null,_blpoints:null,_firstDayOfMonth:null,_firstDayPoints:null,render:function(t,e,i){var n=this.group;n.removeAll();var o=t.coordinateSystem,a=o.getRangeInfo(),r=o.getOrient();this._renderDayRect(t,a,n),this._renderLines(t,a,r,n),this._renderYearText(t,a,r,n),this._renderMonthText(t,r,n),this._renderWeekText(t,a,r,n)},_renderDayRect:function(t,e,i){for(var n=t.coordinateSystem,o=t.getModel("itemStyle").getItemStyle(),a=n.getCellWidth(),r=n.getCellHeight(),s=e.start.time;s<=e.end.time;s=n.getNextNDay(s,1).time){var l=n.dataToRect([s],!1).tl,u=new yM({shape:{x:l[0],y:l[1],width:a,height:r},cursor:"default",style:o});i.add(u)}},_renderLines:function(t,e,i,n){function o(e){a._firstDayOfMonth.push(r.getDateInfo(e)),a._firstDayPoints.push(r.dataToRect([e],!1).tl);var o=a._getLinePointsOfOneWeek(t,e,i);a._tlpoints.push(o[0]),a._blpoints.push(o[o.length-1]),l&&a._drawSplitline(o,s,n)}var a=this,r=t.coordinateSystem,s=t.getModel("splitLine.lineStyle").getLineStyle(),l=t.get("splitLine.show"),u=s.lineWidth;this._tlpoints=[],this._blpoints=[],this._firstDayOfMonth=[],this._firstDayPoints=[];for(var h=e.start,c=0;h.time<=e.end.time;c++){o(h.formatedDate),0===c&&(h=r.getDateInfo(e.start.y+"-"+e.start.m));var d=h.date;d.setMonth(d.getMonth()+1),h=r.getDateInfo(d)}o(r.getNextNDay(e.end.time,1).formatedDate),l&&this._drawSplitline(a._getEdgesPoints(a._tlpoints,u,i),s,n),l&&this._drawSplitline(a._getEdgesPoints(a._blpoints,u,i),s,n)},_getEdgesPoints:function(t,e,i){var n=[t[0].slice(),t[t.length-1].slice()],o="horizontal"===i?0:1;return n[0][o]=n[0][o]-e/2,n[1][o]=n[1][o]+e/2,n},_drawSplitline:function(t,e,i){var n=new gM({z2:20,shape:{points:t},style:e});i.add(n)},_getLinePointsOfOneWeek:function(t,e,i){var n=t.coordinateSystem;e=n.getDateInfo(e);for(var o=[],a=0;a<7;a++){var r=n.getNextNDay(e.time,a),s=n.dataToRect([r.time],!1);o[2*r.day]=s.tl,o[2*r.day+1]=s["horizontal"===i?"bl":"tr"]}return o},_formatterLabel:function(t,e){return"string"==typeof t&&t?na(t,e):"function"==typeof t?t(e):e.nameMap},_yearTextPositionControl:function(t,e,i,n,o){e=e.slice();var a=["center","bottom"];"bottom"===n?(e[1]+=o,a=["center","top"]):"left"===n?e[0]-=o:"right"===n?(e[0]+=o,a=["center","top"]):e[1]-=o;var r=0;return"left"!==n&&"right"!==n||(r=Math.PI/2),{rotation:r,position:e,style:{textAlign:a[0],textVerticalAlign:a[1]}}},_renderYearText:function(t,e,i,n){var o=t.getModel("yearLabel");if(o.get("show")){var a=o.get("margin"),r=o.get("position");r||(r="horizontal"!==i?"top":"left");var s=[this._tlpoints[this._tlpoints.length-1],this._blpoints[0]],l=(s[0][0]+s[1][0])/2,u=(s[0][1]+s[1][1])/2,h="horizontal"===i?0:1,c={top:[l,s[h][1]],bottom:[l,s[1-h][1]],left:[s[1-h][0],u],right:[s[h][0],u]},d=e.start.y;+e.end.y>+e.start.y&&(d=d+"-"+e.end.y);var f=o.get("formatter"),p={start:e.start.y,end:e.end.y,nameMap:d},g=this._formatterLabel(f,p),m=new rM({z2:30});go(m.style,o,{text:g}),m.attr(this._yearTextPositionControl(m,c[r],i,r,a)),n.add(m)}},_monthTextPositionControl:function(t,e,i,n,o){var a="left",r="top",s=t[0],l=t[1];return"horizontal"===i?(l+=o,e&&(a="center"),"start"===n&&(r="bottom")):(s+=o,e&&(r="middle"),"start"===n&&(a="right")),{x:s,y:l,textAlign:a,textVerticalAlign:r}},_renderMonthText:function(t,e,i){var n=t.getModel("monthLabel");if(n.get("show")){var o=n.get("nameMap"),r=n.get("margin"),s=n.get("position"),l=n.get("align"),u=[this._tlpoints,this._blpoints];_(o)&&(o=HN[o.toUpperCase()]||[]);var h="start"===s?0:1,c="horizontal"===e?0:1;r="start"===s?-r:r;for(var d="center"===l,f=0;f=r[0]&&t<=r[1]}if(t===this._dataZoomModel){var n=this._dimName,o=this.getTargetSeriesModels(),a=t.get("filterMode"),r=this._valueWindow;"none"!==a&&jN(o,function(t){var e=t.getData(),o=e.mapDimension(n,!0);o.length&&("weakFilter"===a?e.filterSelf(function(t){for(var i,n,a,s=0;sr[1];if(u&&!h&&!c)return!0;u&&(a=!0),h&&(i=!0),c&&(n=!0)}return a&&i&&n}):jN(o,function(n){if("empty"===a)t.setData(e.map(n,function(t){return i(t)?t:NaN}));else{var o={};o[n]=r,e.selectRange(o)}}),jN(o,function(t){e.setApproximateExtent(r,t)}))})}}};var KN=d,$N=XN,JN=Gs({type:"dataZoom",dependencies:["xAxis","yAxis","zAxis","radiusAxis","angleAxis","singleAxis","series"],defaultOption:{zlevel:0,z:4,orient:null,xAxisIndex:null,yAxisIndex:null,filterMode:"filter",throttle:null,start:0,end:100,startValue:null,endValue:null,minSpan:null,maxSpan:null,minValueSpan:null,maxValueSpan:null,rangeMode:null},init:function(t,e,i){this._dataIntervalByAxis={},this._dataInfo={},this._axisProxies={},this.textStyleModel,this._autoThrottle=!0,this._rangePropMode=["percent","percent"];var n=By(t);this.mergeDefaultAndTheme(t,i),this.doInit(n)},mergeOption:function(t){var e=By(t);n(this.option,t,!0),this.doInit(e)},doInit:function(t){var e=this.option;U_.canvasSupported||(e.realtime=!1),this._setDefaultThrottle(t),Vy(this,t),KN([["start","startValue"],["end","endValue"]],function(t,i){"value"===this._rangePropMode[i]&&(e[t[0]]=null)},this),this.textStyleModel=this.getModel("textStyle"),this._resetTarget(),this._giveAxisProxies()},_giveAxisProxies:function(){var t=this._axisProxies;this.eachTargetAxis(function(e,i,n,o){var a=this.dependentModels[e.axis][i],r=a.__dzAxisProxy||(a.__dzAxisProxy=new qN(e.name,i,this,o));t[e.name+"_"+i]=r},this)},_resetTarget:function(){var t=this.option,e=this._judgeAutoMode();$N(function(e){var i=e.axisIndex;t[i]=Di(t[i])},this),"axisIndex"===e?this._autoSetAxisIndex():"orient"===e&&this._autoSetOrient()},_judgeAutoMode:function(){var t=this.option,e=!1;$N(function(i){null!=t[i.axisIndex]&&(e=!0)},this);var i=t.orient;return null==i&&e?"orient":e?void 0:(null==i&&(t.orient="horizontal"),"axisIndex")},_autoSetAxisIndex:function(){var t=!0,e=this.get("orient",!0),i=this.option,n=this.dependentModels;if(t){var o="vertical"===e?"y":"x";n[o+"Axis"].length?(i[o+"AxisIndex"]=[0],t=!1):KN(n.singleAxis,function(n){t&&n.get("orient",!0)===e&&(i.singleAxisIndex=[n.componentIndex],t=!1)})}t&&$N(function(e){if(t){var n=[],o=this.dependentModels[e.axis];if(o.length&&!n.length)for(var a=0,r=o.length;a0?100:20}},getFirstTargetAxisModel:function(){var t;return $N(function(e){if(null==t){var i=this.get(e.axisIndex);i.length&&(t=this.dependentModels[e.axis][i[0]])}},this),t},eachTargetAxis:function(t,e){var i=this.ecModel;$N(function(n){KN(this.get(n.axisIndex),function(o){t.call(e,n,o,this,i)},this)},this)},getAxisProxy:function(t,e){return this._axisProxies[t+"_"+e]},getAxisModel:function(t,e){var i=this.getAxisProxy(t,e);return i&&i.getAxisModel()},setRawRange:function(t,e){var i=this.option;KN([["start","startValue"],["end","endValue"]],function(e){null==t[e[0]]&&null==t[e[1]]||(i[e[0]]=t[e[0]],i[e[1]]=t[e[1]])},this),!e&&Vy(this,t)},getPercentRange:function(){var t=this.findRepresentativeAxisProxy();if(t)return t.getDataPercentWindow()},getValueRange:function(t,e){if(null!=t||null!=e)return this.getAxisProxy(t,e).getDataValueWindow();var i=this.findRepresentativeAxisProxy();return i?i.getDataValueWindow():void 0},findRepresentativeAxisProxy:function(t){if(t)return t.__dzAxisProxy;var e=this._axisProxies;for(var i in e)if(e.hasOwnProperty(i)&&e[i].hostedBy(this))return e[i];for(var i in e)if(e.hasOwnProperty(i)&&!e[i].hostedBy(this))return e[i]},getRangePropMode:function(){return this._rangePropMode.slice()}}),QN=qI.extend({type:"dataZoom",render:function(t,e,i,n){this.dataZoomModel=t,this.ecModel=e,this.api=i},getTargetCoordInfo:function(){function t(t,e,i,n){for(var o,a=0;a0&&e%g)p+=f;else{var i=null==t||isNaN(t)||""===t,n=i?0:eO(t,a,u,!0);i&&!l&&e?(c.push([c[c.length-1][0],0]),d.push([d[d.length-1][0],0])):!i&&l&&(c.push([p,0]),d.push([p,0])),c.push([p,n]),d.push([p,n]),p+=f,l=i}});var m=this.dataZoomModel;this._displayables.barGroup.add(new pM({shape:{points:c},style:r({fill:m.get("dataBackgroundColor")},m.getModel("dataBackground.areaStyle").getAreaStyle()),silent:!0,z2:-20})),this._displayables.barGroup.add(new gM({shape:{points:d},style:m.getModel("dataBackground.lineStyle").getLineStyle(),silent:!0,z2:-19}))}}},_prepareDataShadowInfo:function(){var t=this.dataZoomModel,e=t.get("showDataShadow");if(!1!==e){var i,n=this.ecModel;return t.eachTargetAxis(function(o,a){d(t.getAxisProxy(o.name,a).getTargetSeriesModels(),function(t){if(!(i||!0!==e&&l(sO,t.get("type"))<0)){var r,s=n.getComponent(o.axis,a).axis,u=Gy(o.name),h=t.coordinateSystem;null!=u&&h.getOtherAxis&&(r=h.getOtherAxis(s).inverse),u=t.getData().mapDimension(u),i={thisAxis:s,series:t,thisDim:o.name,otherDim:u,otherAxisInverse:r}}},this)},this),i}},_renderHandle:function(){var t=this._displayables,e=t.handles=[],i=t.handleLabels=[],n=this._displayables.barGroup,o=this._size,a=this.dataZoomModel;n.add(t.filler=new tO({draggable:!0,cursor:Fy(this._orient),drift:nO(this._onDragMove,this,"all"),onmousemove:function(t){mw(t.event)},ondragstart:nO(this._showDataInfo,this,!0),ondragend:nO(this._onDragEnd,this),onmouseover:nO(this._showDataInfo,this,!0),onmouseout:nO(this._showDataInfo,this,!1),style:{fill:a.get("fillerColor"),textPosition:"inside"}})),n.add(new tO(Kn({silent:!0,shape:{x:0,y:0,width:o[0],height:o[1]},style:{stroke:a.get("dataBackgroundColor")||a.get("borderColor"),lineWidth:1,fill:"rgba(0,0,0,0)"}}))),oO([0,1],function(t){var o=ko(a.get("handleIcon"),{cursor:Fy(this._orient),draggable:!0,drift:nO(this._onDragMove,this,t),onmousemove:function(t){mw(t.event)},ondragend:nO(this._onDragEnd,this),onmouseover:nO(this._showDataInfo,this,!0),onmouseout:nO(this._showDataInfo,this,!1)},{x:-1,y:0,width:2,height:2}),r=o.getBoundingRect();this._handleHeight=Bo(a.get("handleSize"),this._size[1]),this._handleWidth=r.width/r.height*this._handleHeight,o.setStyle(a.getModel("handleStyle").getItemStyle());var s=a.get("handleColor");null!=s&&(o.style.fill=s),n.add(e[t]=o);var l=a.textStyleModel;this.group.add(i[t]=new rM({silent:!0,invisible:!0,style:{x:0,y:0,text:"",textVerticalAlign:"middle",textAlign:"center",textFill:l.getTextColor(),textFont:l.getFont()},z2:10}))},this)},_resetInterval:function(){var t=this._range=this.dataZoomModel.getPercentRange(),e=this._getViewExtent();this._handleEnds=[eO(t[0],[0,100],e,!0),eO(t[1],[0,100],e,!0)]},_updateInterval:function(t,e){var i=this.dataZoomModel,n=this._handleEnds,o=this._getViewExtent(),a=i.findRepresentativeAxisProxy().getMinMaxSpan(),r=[0,100];$L(e,n,o,i.get("zoomLock")?"all":t,null!=a.minSpan?eO(a.minSpan,r,o,!0):null,null!=a.maxSpan?eO(a.maxSpan,r,o,!0):null);var s=this._range,l=this._range=iO([eO(n[0],o,r,!0),eO(n[1],o,r,!0)]);return!s||s[0]!==l[0]||s[1]!==l[1]},_updateView:function(t){var e=this._displayables,i=this._handleEnds,n=iO(i.slice()),o=this._size;oO([0,1],function(t){var n=e.handles[t],a=this._handleHeight;n.attr({scale:[a/2,a/2],position:[i[t],o[1]/2-a/2]})},this),e.filler.setShape({x:n[0],y:0,width:n[1]-n[0],height:o[1]}),this._updateDataInfo(t)},_updateDataInfo:function(t){function e(t){var e=To(n.handles[t].parent,this.group),i=Do(0===t?"right":"left",e),s=this._handleWidth/2+rO,l=Ao([c[t]+(0===t?-s:s),this._size[1]/2],e);o[t].setStyle({x:l[0],y:l[1],textVerticalAlign:a===aO?"middle":i,textAlign:a===aO?i:"center",text:r[t]})}var i=this.dataZoomModel,n=this._displayables,o=n.handleLabels,a=this._orient,r=["",""];if(i.get("showDetail")){var s=i.findRepresentativeAxisProxy();if(s){var l=s.getAxisModel().axis,u=this._range,h=t?s.calculateDataWindow({start:u[0],end:u[1]}).valueWindow:s.getDataValueWindow();r=[this._formatLabel(h[0],l),this._formatLabel(h[1],l)]}}var c=iO(this._handleEnds.slice());e.call(this,0),e.call(this,1)},_formatLabel:function(t,e){var i=this.dataZoomModel,n=i.get("labelFormatter"),o=i.get("labelPrecision");null!=o&&"auto"!==o||(o=e.getPixelPrecision());var a=null==t||isNaN(t)?"":"category"===e.type||"time"===e.type?e.scale.getLabel(Math.round(t)):t.toFixed(Math.min(o,20));return x(n)?n(t,a):_(n)?n.replace("{value}",a):a},_showDataInfo:function(t){t=this._dragging||t;var e=this._displayables.handleLabels;e[0].attr("invisible",!t),e[1].attr("invisible",!t)},_onDragMove:function(t,e,i){this._dragging=!0;var n=Ao([e,i],this._displayables.barGroup.getLocalTransform(),!0),o=this._updateInterval(t,n[0]),a=this.dataZoomModel.get("realtime");this._updateView(!a),o&&a&&this._dispatchZoomAction()},_onDragEnd:function(){this._dragging=!1,this._showDataInfo(!1),!this.dataZoomModel.get("realtime")&&this._dispatchZoomAction()},_onClickPanelClick:function(t){var e=this._size,i=this._displayables.barGroup.transformCoordToLocal(t.offsetX,t.offsetY);if(!(i[0]<0||i[0]>e[0]||i[1]<0||i[1]>e[1])){var n=this._handleEnds,o=(n[0]+n[1])/2,a=this._updateInterval("all",i[0]-o);this._updateView(),a&&this._dispatchZoomAction()}},_dispatchZoomAction:function(){var t=this._range;this.api.dispatchAction({type:"dataZoom",from:this.uid,dataZoomId:this.dataZoomModel.id,start:t[0],end:t[1]})},_findCoordRect:function(){var t;if(oO(this.getTargetCoordInfo(),function(e){if(!t&&e.length){var i=e[0].model.coordinateSystem;t=i.getRect&&i.getRect()}}),!t){var e=this.api.getWidth(),i=this.api.getHeight();t={x:.2*e,y:.2*i,width:.6*e,height:.6*i}}return t}});JN.extend({type:"dataZoom.inside",defaultOption:{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}});var uO="\0_ec_dataZoom_roams",hO=m,cO=QN.extend({type:"dataZoom.inside",init:function(t,e){this._range},render:function(t,e,i,n){cO.superApply(this,"render",arguments),this._range=t.getPercentRange(),d(this.getTargetCoordInfo(),function(e,n){var o=f(e,function(t){return Zy(t.model)});d(e,function(e){var a=e.model,r={};d(["pan","zoom","scrollMove"],function(t){r[t]=hO(dO[t],this,e,n)},this),Wy(i,{coordId:Zy(a),allCoordIds:o,containsPoint:function(t,e,i){return a.coordinateSystem.containPoint([e,i])},dataZoomId:t.id,dataZoomModel:t,getRange:r})},this)},this)},dispose:function(){Hy(this.api,this.dataZoomModel.id),cO.superApply(this,"dispose",arguments),this._range=null}}),dO={zoom:function(t,e,i,n){var o=this._range,a=o.slice(),r=t.axisModels[0];if(r){var s=fO[e](null,[n.originX,n.originY],r,i,t),l=(s.signal>0?s.pixelStart+s.pixelLength-s.pixel:s.pixel-s.pixelStart)/s.pixelLength*(a[1]-a[0])+a[0],u=Math.max(1/n.scale,0);a[0]=(a[0]-l)*u+l,a[1]=(a[1]-l)*u+l;var h=this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();return $L(0,a,[0,100],0,h.minSpan,h.maxSpan),this._range=a,o[0]!==a[0]||o[1]!==a[1]?a:void 0}},pan:Ky(function(t,e,i,n,o,a){var r=fO[n]([a.oldX,a.oldY],[a.newX,a.newY],e,o,i);return r.signal*(t[1]-t[0])*r.pixel/r.pixelLength}),scrollMove:Ky(function(t,e,i,n,o,a){return fO[n]([0,0],[a.scrollDelta,a.scrollDelta],e,o,i).signal*(t[1]-t[0])*a.scrollDelta})},fO={grid:function(t,e,i,n,o){var a=i.axis,r={},s=o.model.coordinateSystem.getRect();return t=t||[0,0],"x"===a.dim?(r.pixel=e[0]-t[0],r.pixelLength=s.width,r.pixelStart=s.x,r.signal=a.inverse?1:-1):(r.pixel=e[1]-t[1],r.pixelLength=s.height,r.pixelStart=s.y,r.signal=a.inverse?-1:1),r},polar:function(t,e,i,n,o){var a=i.axis,r={},s=o.model.coordinateSystem,l=s.getRadiusAxis().getExtent(),u=s.getAngleAxis().getExtent();return t=t?s.pointToCoord(t):[0,0],e=s.pointToCoord(e),"radiusAxis"===i.mainType?(r.pixel=e[0]-t[0],r.pixelLength=l[1]-l[0],r.pixelStart=l[0],r.signal=a.inverse?1:-1):(r.pixel=e[1]-t[1],r.pixelLength=u[1]-u[0],r.pixelStart=u[0],r.signal=a.inverse?-1:1),r},singleAxis:function(t,e,i,n,o){var a=i.axis,r=o.model.coordinateSystem.getRect(),s={};return t=t||[0,0],"horizontal"===a.orient?(s.pixel=e[0]-t[0],s.pixelLength=r.width,s.pixelStart=r.x,s.signal=a.inverse?1:-1):(s.pixel=e[1]-t[1],s.pixelLength=r.height,s.pixelStart=r.y,s.signal=a.inverse?-1:1),s}};Ns({getTargetSeries:function(t){var e=R();return t.eachComponent("dataZoom",function(t){t.eachTargetAxis(function(t,i,n){d(n.getAxisProxy(t.name,i).getTargetSeriesModels(),function(t){e.set(t.uid,t)})})}),e},modifyOutputEnd:!0,overallReset:function(t,e){t.eachComponent("dataZoom",function(t){t.eachTargetAxis(function(t,i,n){n.getAxisProxy(t.name,i).reset(n,e)}),t.eachTargetAxis(function(t,i,n){n.getAxisProxy(t.name,i).filterData(n,e)})}),t.eachComponent("dataZoom",function(t){var e=t.findRepresentativeAxisProxy(),i=e.getDataPercentWindow(),n=e.getDataValueWindow();t.setRawRange({start:i[0],end:i[1],startValue:n[0],endValue:n[1]},!0)})}}),Os("dataZoom",function(t,e){var i=Ny(m(e.eachComponent,e,"dataZoom"),XN,function(t,e){return t.get(e.axisIndex)}),n=[];e.eachComponent({mainType:"dataZoom",query:t},function(t,e){n.push.apply(n,i(t).nodes)}),d(n,function(e,i){e.setRawRange({start:t.start,end:t.end,startValue:t.startValue,endValue:t.endValue})})});var pO=d,gO=function(t){var e=t&&t.visualMap;y(e)||(e=e?[e]:[]),pO(e,function(t){if(t){$y(t,"splitList")&&!$y(t,"pieces")&&(t.pieces=t.splitList,delete t.splitList);var e=t.pieces;e&&y(e)&&pO(e,function(t){w(t)&&($y(t,"start")&&!$y(t,"min")&&(t.min=t.start),$y(t,"end")&&!$y(t,"max")&&(t.max=t.end))})}})};lI.registerSubTypeDefaulter("visualMap",function(t){return t.categories||(t.pieces?t.pieces.length>0:t.splitNumber>0)&&!t.calculable?"piecewise":"continuous"});var mO=BT.VISUAL.COMPONENT;zs(mO,{createOnAllSeries:!0,reset:function(t,e){var i=[];return e.eachComponent("visualMap",function(e){var n=t.pipelineContext;!e.isTargetSeries(t)||n&&n.large||i.push(ny(e.stateList,e.targetVisuals,m(e.getValueState,e),e.getDataDimension(t.getData())))}),i}}),zs(mO,{createOnAllSeries:!0,reset:function(t,e){var i=t.getData(),n=[];e.eachComponent("visualMap",function(e){if(e.isTargetSeries(t)){var o=e.getVisualMeta(m(Jy,null,t,e))||{stops:[],outerColors:[]},a=e.getDataDimension(i),r=i.getDimensionInfo(a);null!=r&&(o.dimension=r.index,n.push(o))}}),t.getData().setVisual("visualMeta",n)}});var vO={get:function(t,e,n){var o=i((yO[t]||{})[e]);return n&&y(o)?o[o.length-1]:o}},yO={color:{active:["#006edd","#e0ffff"],inactive:["rgba(0,0,0,0)"]},colorHue:{active:[0,360],inactive:[0,0]},colorSaturation:{active:[.3,1],inactive:[0,0]},colorLightness:{active:[.9,.5],inactive:[0,0]},colorAlpha:{active:[.3,1],inactive:[0,0]},opacity:{active:[.3,1],inactive:[0,0]},symbol:{active:["circle","roundRect","diamond"],inactive:["none"]},symbolSize:{active:[10,50],inactive:[0,0]}},xO=lL.mapVisual,_O=lL.eachVisual,wO=y,bO=d,SO=Go,MO=zo,IO=B,TO=Gs({type:"visualMap",dependencies:["series"],stateList:["inRange","outOfRange"],replacableOptionKeys:["inRange","outOfRange","target","controller","color"],dataBound:[-1/0,1/0],layoutMode:{type:"box",ignoreSize:!0},defaultOption:{show:!0,zlevel:0,z:4,seriesIndex:"all",min:0,max:200,dimension:null,inRange:null,outOfRange:null,left:0,right:null,top:null,bottom:0,itemWidth:null,itemHeight:null,inverse:!1,orient:"vertical",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",contentColor:"#5793f3",inactiveColor:"#aaa",borderWidth:0,padding:5,textGap:10,precision:0,color:null,formatter:null,text:null,textStyle:{color:"#333"}},init:function(t,e,i){this._dataExtent,this.targetVisuals={},this.controllerVisuals={},this.textStyleModel,this.itemSize,this.mergeDefaultAndTheme(t,i)},optionUpdated:function(t,e){var i=this.option;U_.canvasSupported||(i.realtime=!1),!e&&ey(i,t,this.replacableOptionKeys),this.textStyleModel=this.getModel("textStyle"),this.resetItemSize(),this.completeVisualOption()},resetVisual:function(t){var e=this.stateList;t=m(t,this),this.controllerVisuals=ty(this.option.controller,e,t),this.targetVisuals=ty(this.option.target,e,t)},getTargetSeriesIndices:function(){var t=this.option.seriesIndex,e=[];return null==t||"all"===t?this.ecModel.eachSeries(function(t,i){e.push(i)}):e=Di(t),e},eachTargetSeries:function(t,e){d(this.getTargetSeriesIndices(),function(i){t.call(e,this.ecModel.getSeriesByIndex(i))},this)},isTargetSeries:function(t){var e=!1;return this.eachTargetSeries(function(i){i===t&&(e=!0)}),e},formatValueText:function(t,e,i){function n(t){return t===l[0]?"min":t===l[1]?"max":(+t).toFixed(Math.min(s,20))}var o,a,r=this.option,s=r.precision,l=this.dataBound,u=r.formatter;return i=i||["<",">"],y(t)&&(t=t.slice(),o=!0),a=e?t:o?[n(t[0]),n(t[1])]:n(t),_(u)?u.replace("{value}",o?a[0]:a).replace("{value2}",o?a[1]:a):x(u)?o?u(t[0],t[1]):u(t):o?t[0]===l[0]?i[0]+" "+a[1]:t[1]===l[1]?i[1]+" "+a[0]:a[0]+" - "+a[1]:a},resetExtent:function(){var t=this.option,e=SO([t.min,t.max]);this._dataExtent=e},getDataDimension:function(t){var e=this.option.dimension,i=t.dimensions;if(null!=e||i.length){if(null!=e)return t.getDimension(e);for(var n=t.dimensions,o=n.length-1;o>=0;o--){var a=n[o];if(!t.getDimensionInfo(a).isCalculationCoord)return a}}},getExtent:function(){return this._dataExtent.slice()},completeVisualOption:function(){function t(t){wO(o.color)&&!t.inRange&&(t.inRange={color:o.color.slice().reverse()}),t.inRange=t.inRange||{color:e.get("gradientColor")},bO(this.stateList,function(e){var i=t[e];if(_(i)){var n=vO.get(i,"active",l);n?(t[e]={},t[e][i]=n):delete t[e]}},this)}var e=this.ecModel,o=this.option,a={inRange:o.inRange,outOfRange:o.outOfRange},r=o.target||(o.target={}),s=o.controller||(o.controller={});n(r,a),n(s,a);var l=this.isCategory();t.call(this,r),t.call(this,s),function(t,e,i){var n=t[e],o=t[i];n&&!o&&(o=t[i]={},bO(n,function(t,e){if(lL.isValidType(e)){var i=vO.get(e,"inactive",l);null!=i&&(o[e]=i,"color"!==e||o.hasOwnProperty("opacity")||o.hasOwnProperty("colorAlpha")||(o.opacity=[0,0]))}}))}.call(this,r,"inRange","outOfRange"),function(t){var e=(t.inRange||{}).symbol||(t.outOfRange||{}).symbol,n=(t.inRange||{}).symbolSize||(t.outOfRange||{}).symbolSize,o=this.get("inactiveColor");bO(this.stateList,function(a){var r=this.itemSize,s=t[a];s||(s=t[a]={color:l?o:[o]}),null==s.symbol&&(s.symbol=e&&i(e)||(l?"roundRect":["roundRect"])),null==s.symbolSize&&(s.symbolSize=n&&i(n)||(l?r[0]:[r[0],r[0]])),s.symbol=xO(s.symbol,function(t){return"none"===t||"square"===t?"roundRect":t});var u=s.symbolSize;if(null!=u){var h=-1/0;_O(u,function(t){t>h&&(h=t)}),s.symbolSize=xO(u,function(t){return MO(t,[0,h],[0,r[0]],!0)})}},this)}.call(this,s)},resetItemSize:function(){this.itemSize=[parseFloat(this.get("itemWidth")),parseFloat(this.get("itemHeight"))]},isCategory:function(){return!!this.option.categories},setSelected:IO,getValueState:IO,getVisualMeta:IO}),AO=[20,140],DO=TO.extend({type:"visualMap.continuous",defaultOption:{align:"auto",calculable:!1,range:null,realtime:!0,itemHeight:null,itemWidth:null,hoverLink:!0,hoverLinkDataSize:null,hoverLinkOnHandle:null},optionUpdated:function(t,e){DO.superApply(this,"optionUpdated",arguments),this.resetExtent(),this.resetVisual(function(t){t.mappingMethod="linear",t.dataExtent=this.getExtent()}),this._resetRange()},resetItemSize:function(){DO.superApply(this,"resetItemSize",arguments);var t=this.itemSize;"horizontal"===this._orient&&t.reverse(),(null==t[0]||isNaN(t[0]))&&(t[0]=AO[0]),(null==t[1]||isNaN(t[1]))&&(t[1]=AO[1])},_resetRange:function(){var t=this.getExtent(),e=this.option.range;!e||e.auto?(t.auto=1,this.option.range=t):y(e)&&(e[0]>e[1]&&e.reverse(),e[0]=Math.max(e[0],t[0]),e[1]=Math.min(e[1],t[1]))},completeVisualOption:function(){TO.prototype.completeVisualOption.apply(this,arguments),d(this.stateList,function(t){var e=this.option.controller[t].symbolSize;e&&e[0]!==e[1]&&(e[0]=0)},this)},setSelected:function(t){this.option.range=t.slice(),this._resetRange()},getSelected:function(){var t=this.getExtent(),e=Go((this.get("range")||[]).slice());return e[0]>t[1]&&(e[0]=t[1]),e[1]>t[1]&&(e[1]=t[1]),e[0]=i[1]||t<=e[1])?"inRange":"outOfRange"},findTargetDataIndices:function(t){var e=[];return this.eachTargetSeries(function(i){var n=[],o=i.getData();o.each(this.getDataDimension(o),function(e,i){t[0]<=e&&e<=t[1]&&n.push(i)},this),e.push({seriesId:i.id,dataIndex:n})},this),e},getVisualMeta:function(t){function e(e,i){o.push({value:e,color:t(e,i)})}for(var i=Qy(0,0,this.getExtent()),n=Qy(0,0,this.option.range.slice()),o=[],a=0,r=0,s=n.length,l=i.length;rt[1])break;i.push({color:this.getControllerVisual(a,"color",e),offset:o/100})}return i.push({color:this.getControllerVisual(t[1],"color",e),offset:1}),i},_createBarPoints:function(t,e){var i=this.visualMapModel.itemSize;return[[i[0]-e[0],t[0]],[i[0],t[0]],[i[0],t[1]],[i[0]-e[1],t[1]]]},_createBarGroup:function(t){var e=this._orient,i=this.visualMapModel.get("inverse");return new tb("horizontal"!==e||i?"horizontal"===e&&i?{scale:"bottom"===t?[-1,1]:[1,1],rotation:-Math.PI/2}:"vertical"!==e||i?{scale:"left"===t?[1,1]:[-1,1]}:{scale:"left"===t?[1,-1]:[-1,-1]}:{scale:"bottom"===t?[1,1]:[-1,1],rotation:Math.PI/2})},_updateHandle:function(t,e){if(this._useHandle){var i=this._shapes,n=this.visualMapModel,o=i.handleThumbs,a=i.handleLabels;kO([0,1],function(r){var s=o[r];s.setStyle("fill",e.handlesColor[r]),s.position[1]=t[r];var l=Ao(i.handleLabelPoints[r],To(s,this.group));a[r].setStyle({x:l[0],y:l[1],text:n.formatValueText(this._dataInterval[r]),textVerticalAlign:"middle",textAlign:this._applyTransform("horizontal"===this._orient?0===r?"bottom":"top":"left",i.barGroup)})},this)}},_showIndicator:function(t,e,i,n){var o=this.visualMapModel,a=o.getExtent(),r=o.itemSize,s=[0,r[1]],l=LO(t,a,s,!0),u=this._shapes,h=u.indicator;if(h){h.position[1]=l,h.attr("invisible",!1),h.setShape("points",ox(!!i,n,l,r[1]));var c=this.getControllerVisual(t,"color",{convertOpacityToAlpha:!0});h.setStyle("fill",c);var d=Ao(u.indicatorLabelPoint,To(h,this.group)),f=u.indicatorLabel;f.attr("invisible",!1);var p=this._applyTransform("left",u.barGroup),g=this._orient;f.setStyle({text:(i||"")+o.formatValueText(e),textVerticalAlign:"horizontal"===g?p:"middle",textAlign:"horizontal"===g?"center":p,x:d[0],y:d[1]})}},_enableHoverLinkToSeries:function(){var t=this;this._shapes.barGroup.on("mousemove",function(e){if(t._hovering=!0,!t._dragging){var i=t.visualMapModel.itemSize,n=t._applyTransform([e.offsetX,e.offsetY],t._shapes.barGroup,!0,!0);n[1]=PO(NO(0,n[1]),i[1]),t._doHoverLinkToSeries(n[1],0<=n[0]&&n[0]<=i[0])}}).on("mouseout",function(){t._hovering=!1,!t._dragging&&t._clearHoverLinkToSeries()})},_enableHoverLinkFromSeries:function(){var t=this.api.getZr();this.visualMapModel.option.hoverLink?(t.on("mouseover",this._hoverLinkFromSeriesMouseOver,this),t.on("mouseout",this._hideIndicator,this)):this._clearHoverLinkFromSeries()},_doHoverLinkToSeries:function(t,e){var i=this.visualMapModel,n=i.itemSize;if(i.option.hoverLink){var o=[0,n[1]],a=i.getExtent();t=PO(NO(o[0],t),o[1]);var r=ax(i,a,o),s=[t-r,t+r],l=LO(t,o,a,!0),u=[LO(s[0],o,a,!0),LO(s[1],o,a,!0)];s[0]o[1]&&(u[1]=1/0),e&&(u[0]===-1/0?this._showIndicator(l,u[1],"< ",r):u[1]===1/0?this._showIndicator(l,u[0],"> ",r):this._showIndicator(l,l,"≈ ",r));var h=this._hoverLinkDataIndices,c=[];(e||rx(i))&&(c=this._hoverLinkDataIndices=i.findTargetDataIndices(u));var d=Ri(h,c);this._dispatchHighDown("downplay",ex(d[0])),this._dispatchHighDown("highlight",ex(d[1]))}},_hoverLinkFromSeriesMouseOver:function(t){var e=t.target,i=this.visualMapModel;if(e&&null!=e.dataIndex){var n=this.ecModel.getSeriesByIndex(e.seriesIndex);if(i.isTargetSeries(n)){var o=n.getData(e.dataType),a=o.get(i.getDataDimension(o),e.dataIndex,!0);isNaN(a)||this._showIndicator(a,a)}}},_hideIndicator:function(){var t=this._shapes;t.indicator&&t.indicator.attr("invisible",!0),t.indicatorLabel&&t.indicatorLabel.attr("invisible",!0)},_clearHoverLinkToSeries:function(){this._hideIndicator();var t=this._hoverLinkDataIndices;this._dispatchHighDown("downplay",ex(t)),t.length=0},_clearHoverLinkFromSeries:function(){this._hideIndicator();var t=this.api.getZr();t.off("mouseover",this._hoverLinkFromSeriesMouseOver),t.off("mouseout",this._hideIndicator)},_applyTransform:function(t,e,i,n){var o=To(e,n?null:this.group);return zM[y(t)?"applyTransform":"transformDirection"](t,o,i)},_dispatchHighDown:function(t,e){e&&e.length&&this.api.dispatchAction({type:t,batch:e})},dispose:function(){this._clearHoverLinkFromSeries(),this._clearHoverLinkToSeries()},remove:function(){this._clearHoverLinkFromSeries(),this._clearHoverLinkToSeries()}});Os({type:"selectDataRange",event:"dataRangeSelected",update:"update"},function(t,e){e.eachComponent({mainType:"visualMap",query:t},function(e){e.setSelected(t.selected)})}),Ps(gO);var zO=TO.extend({type:"visualMap.piecewise",defaultOption:{selected:null,minOpen:!1,maxOpen:!1,align:"auto",itemWidth:20,itemHeight:14,itemSymbol:"roundRect",pieceList:null,categories:null,splitNumber:5,selectedMode:"multiple",itemGap:10,hoverLink:!0,showLabel:null},optionUpdated:function(t,e){zO.superApply(this,"optionUpdated",arguments),this._pieceList=[],this.resetExtent();var n=this._mode=this._determineMode();BO[this._mode].call(this),this._resetSelected(t,e);var o=this.option.categories;this.resetVisual(function(t,e){"categories"===n?(t.mappingMethod="category",t.categories=i(o)):(t.dataExtent=this.getExtent(),t.mappingMethod="piecewise",t.pieceList=f(this._pieceList,function(t){var t=i(t);return"inRange"!==e&&(t.visual=null),t}))})},completeVisualOption:function(){function t(t,e,i){return t&&t[e]&&(w(t[e])?t[e].hasOwnProperty(i):t[e]===i)}var e=this.option,i={},n=lL.listVisualTypes(),o=this.isCategory();d(e.pieces,function(t){d(n,function(e){t.hasOwnProperty(e)&&(i[e]=1)})}),d(i,function(i,n){var a=0;d(this.stateList,function(i){a|=t(e,i,n)||t(e.target,i,n)},this),!a&&d(this.stateList,function(t){(e[t]||(e[t]={}))[n]=vO.get(n,"inRange"===t?"active":"inactive",o)})},this),TO.prototype.completeVisualOption.apply(this,arguments)},_resetSelected:function(t,e){var i=this.option,n=this._pieceList,o=(e?i:t).selected||{};if(i.selected=o,d(n,function(t,e){var i=this.getSelectedMapKey(t);o.hasOwnProperty(i)||(o[i]=!0)},this),"single"===i.selectedMode){var a=!1;d(n,function(t,e){var i=this.getSelectedMapKey(t);o[i]&&(a?o[i]=!1:a=!0)},this)}},getSelectedMapKey:function(t){return"categories"===this._mode?t.value+"":t.index+""},getPieceList:function(){return this._pieceList},_determineMode:function(){var t=this.option;return t.pieces&&t.pieces.length>0?"pieces":this.option.categories?"categories":"splitNumber"},setSelected:function(t){this.option.selected=i(t)},getValueState:function(t){var e=lL.findPieceIndex(t,this._pieceList);return null!=e&&this.option.selected[this.getSelectedMapKey(this._pieceList[e])]?"inRange":"outOfRange"},findTargetDataIndices:function(t){var e=[];return this.eachTargetSeries(function(i){var n=[],o=i.getData();o.each(this.getDataDimension(o),function(e,i){lL.findPieceIndex(e,this._pieceList)===t&&n.push(i)},this),e.push({seriesId:i.id,dataIndex:n})},this),e},getRepresentValue:function(t){var e;if(this.isCategory())e=t.value;else if(null!=t.value)e=t.value;else{var i=t.interval||[];e=i[0]===-1/0&&i[1]===1/0?0:(i[0]+i[1])/2}return e},getVisualMeta:function(t){function e(e,a){var r=o.getRepresentValue({interval:e});a||(a=o.getValueState(r));var s=t(r,a);e[0]===-1/0?n[0]=s:e[1]===1/0?n[1]=s:i.push({value:e[0],color:s},{value:e[1],color:s})}if(!this.isCategory()){var i=[],n=[],o=this,a=this._pieceList.slice();if(a.length){var r=a[0].interval[0];r!==-1/0&&a.unshift({interval:[-1/0,r]}),(r=a[a.length-1].interval[1])!==1/0&&a.push({interval:[r,1/0]})}else a.push({interval:[-1/0,1/0]});var s=-1/0;return d(a,function(t){var i=t.interval;i&&(i[0]>s&&e([s,i[0]],"outOfRange"),e(i.slice()),s=i[1])},this),{stops:i,outerColors:n}}}}),BO={splitNumber:function(){var t=this.option,e=this._pieceList,i=Math.min(t.precision,20),n=this.getExtent(),o=t.splitNumber;o=Math.max(parseInt(o,10),1),t.splitNumber=o;for(var a=(n[1]-n[0])/o;+a.toFixed(i)!==a&&i<5;)i++;t.precision=i,a=+a.toFixed(i);var r=0;t.minOpen&&e.push({index:r++,interval:[-1/0,n[0]],close:[0,0]});for(var s=n[0],l=r+o;r","≥"][e[0]]];t.text=t.text||this.formatValueText(null!=t.value?t.value:t.interval,!1,i)},this)}};CO.extend({type:"visualMap.piecewise",doRender:function(){var t=this.group;t.removeAll();var e=this.visualMapModel,i=e.get("textGap"),n=e.textStyleModel,o=n.getFont(),a=n.getTextColor(),r=this._getItemAlign(),s=e.itemSize,l=this._getViewData(),u=l.endsText,h=T(e.get("showLabel",!0),!u);u&&this._renderEndsText(t,u[0],s,h,r),d(l.viewPieceList,function(n){var l=n.piece,u=new tb;u.onclick=m(this._onItemClick,this,l),this._enableHoverLink(u,n.indexInModelPieceList);var c=e.getRepresentValue(l);if(this._createItemSymbol(u,c,[0,0,s[0],s[1]]),h){var d=this.visualMapModel.getValueState(c);u.add(new rM({style:{x:"right"===r?-i:s[0]+i,y:s[1]/2,text:l.text,textVerticalAlign:"middle",textAlign:r,textFont:o,textFill:a,opacity:"outOfRange"===d?.5:1}}))}t.add(u)},this),u&&this._renderEndsText(t,u[1],s,h,r),rI(e.get("orient"),t,e.get("itemGap")),this.renderBackground(t),this.positionGroup(t)},_enableHoverLink:function(t,e){function i(t){var i=this.visualMapModel;i.option.hoverLink&&this.api.dispatchAction({type:t,batch:ex(i.findTargetDataIndices(e))})}t.on("mouseover",m(i,this,"highlight")).on("mouseout",m(i,this,"downplay"))},_getItemAlign:function(){var t=this.visualMapModel,e=t.option;if("vertical"===e.orient)return tx(t,this.api,t.itemSize);var i=e.align;return i&&"auto"!==i||(i="left"),i},_renderEndsText:function(t,e,i,n,o){if(e){var a=new tb,r=this.visualMapModel.textStyleModel;a.add(new rM({style:{x:n?"right"===o?i[0]:0:i[0]/2,y:i[1]/2,textVerticalAlign:"middle",textAlign:n?o:"center",text:e,textFont:r.getFont(),textFill:r.getTextColor()}})),t.add(a)}},_getViewData:function(){var t=this.visualMapModel,e=f(t.getPieceList(),function(t,e){return{piece:t,indexInModelPieceList:e}}),i=t.get("text"),n=t.get("orient"),o=t.get("inverse");return("horizontal"===n?o:!o)?e.reverse():i&&(i=i.slice().reverse()),{viewPieceList:e,endsText:i}},_createItemSymbol:function(t,e,i){t.add($l(this.getControllerVisual(e,"symbol"),i[0],i[1],i[2],i[3],this.getControllerVisual(e,"color")))},_onItemClick:function(t){var e=this.visualMapModel,n=e.option,o=i(n.selected),a=e.getSelectedMapKey(t);"single"===n.selectedMode?(o[a]=!0,d(o,function(t,e){o[e]=e===a})):o[a]=!o[a],this.api.dispatchAction({type:"selectDataRange",from:this.uid,visualMapId:this.visualMapModel.id,selected:o})}});Ps(gO);var VO=Qo,GO=ea,FO=Gs({type:"marker",dependencies:["series","grid","polar","geo"],init:function(t,e,i,n){this.mergeDefaultAndTheme(t,i),this.mergeOption(t,i,n.createdBySelf,!0)},isAnimationEnabled:function(){if(U_.node)return!1;var t=this.__hostSeries;return this.getShallow("animation")&&t&&t.isAnimationEnabled()},mergeOption:function(t,e,i,n){var o=this.constructor,r=this.mainType+"Model";i||e.eachSeries(function(t){var i=t.get(this.mainType,!0),s=t[r];i&&i.data?(s?s.mergeOption(i,e,!0):(n&&ux(i),d(i.data,function(t){t instanceof Array?(ux(t[0]),ux(t[1])):ux(t)}),a(s=new o(i,this,e),{mainType:this.mainType,seriesIndex:t.seriesIndex,name:t.name,createdBySelf:!0}),s.__hostSeries=t),t[r]=s):t[r]=null},this)},formatTooltip:function(t){var e=this.getData(),i=this.getRawValue(t),n=y(i)?f(i,VO).join(", "):VO(i),o=e.getName(t),a=GO(this.name);return(null!=i||o)&&(a+="
"),o&&(a+=GO(o),null!=i&&(a+=" : ")),null!=i&&(a+=GO(n)),a},getData:function(){return this._data},setData:function(t){this._data=t}});h(FO,ZI),FO.extend({type:"markPoint",defaultOption:{zlevel:0,z:5,symbol:"pin",symbolSize:50,tooltip:{trigger:"item"},label:{show:!0,position:"inside"},itemStyle:{borderWidth:2},emphasis:{label:{show:!0}}}});var WO=l,HO=v,ZO={min:HO(dx,"min"),max:HO(dx,"max"),average:HO(dx,"average")},UO=Fs({type:"marker",init:function(){this.markerGroupMap=R()},render:function(t,e,i){var n=this.markerGroupMap;n.each(function(t){t.__keep=!1});var o=this.type+"Model";e.eachSeries(function(t){var n=t[o];n&&this.renderSeries(t,n,e,i)},this),n.each(function(t){!t.__keep&&this.group.remove(t.group)},this)},renderSeries:function(){}});UO.extend({type:"markPoint",updateTransform:function(t,e,i){e.eachSeries(function(t){var e=t.markPointModel;e&&(xx(e.getData(),t,i),this.markerGroupMap.get(t.id).updateLayout(e))},this)},renderSeries:function(t,e,i,n){var o=t.coordinateSystem,a=t.id,r=t.getData(),s=this.markerGroupMap,l=s.get(a)||s.set(a,new Au),u=_x(o,t,e);e.setData(u),xx(e.getData(),t,n),u.each(function(t){var i=u.getItemModel(t),n=i.getShallow("symbolSize");"function"==typeof n&&(n=n(e.getRawValue(t),e.getDataParams(t))),u.setItemVisual(t,{symbolSize:n,color:i.get("itemStyle.color")||r.getVisual("color"),symbol:i.getShallow("symbol")})}),l.updateData(u),this.group.add(l.group),u.eachItemGraphicEl(function(t){t.traverse(function(t){t.dataModel=e})}),l.__keep=!0,l.group.silent=e.get("silent")||t.get("silent")}}),Ps(function(t){t.markPoint=t.markPoint||{}}),FO.extend({type:"markLine",defaultOption:{zlevel:0,z:5,symbol:["circle","arrow"],symbolSize:[8,16],precision:2,tooltip:{trigger:"item"},label:{show:!0,position:"end"},lineStyle:{type:"dashed"},emphasis:{label:{show:!0},lineStyle:{width:3}},animationEasing:"linear"}});var XO=function(t,e,o,r){var s=t.getData(),l=r.type;if(!y(r)&&("min"===l||"max"===l||"average"===l||"median"===l||null!=r.xAxis||null!=r.yAxis)){var u,h;if(null!=r.yAxis||null!=r.xAxis)u=null!=r.yAxis?"y":"x",e.getAxis(u),h=T(r.yAxis,r.xAxis);else{var c=px(r,s,e,t);u=c.valueDataDim,c.valueAxis,h=yx(s,u,l)}var d="x"===u?0:1,f=1-d,p=i(r),g={};p.type=null,p.coord=[],g.coord=[],p.coord[f]=-1/0,g.coord[f]=1/0;var m=o.get("precision");m>=0&&"number"==typeof h&&(h=+h.toFixed(Math.min(m,20))),p.coord[d]=g.coord[d]=h,r=[p,g,{type:l,valueIndex:r.valueIndex,value:h}]}return r=[fx(t,r[0]),fx(t,r[1]),a({},r[2])],r[2].type=r[2].type||"",n(r[2],r[0]),n(r[2],r[1]),r};UO.extend({type:"markLine",updateTransform:function(t,e,i){e.eachSeries(function(t){var e=t.markLineModel;if(e){var n=e.getData(),o=e.__from,a=e.__to;o.each(function(e){Ix(o,e,!0,t,i),Ix(a,e,!1,t,i)}),n.each(function(t){n.setItemLayout(t,[o.getItemLayout(t),a.getItemLayout(t)])}),this.markerGroupMap.get(t.id).updateLayout()}},this)},renderSeries:function(t,e,i,n){function o(e,i,o){var a=e.getItemModel(i);Ix(e,i,o,t,n),e.setItemVisual(i,{symbolSize:a.get("symbolSize")||g[o?0:1],symbol:a.get("symbol",!0)||p[o?0:1],color:a.get("itemStyle.color")||s.getVisual("color")})}var a=t.coordinateSystem,r=t.id,s=t.getData(),l=this.markerGroupMap,u=l.get(r)||l.set(r,new rf);this.group.add(u.group);var h=Tx(a,t,e),c=h.from,d=h.to,f=h.line;e.__from=c,e.__to=d,e.setData(f);var p=e.get("symbol"),g=e.get("symbolSize");y(p)||(p=[p,p]),"number"==typeof g&&(g=[g,g]),h.from.each(function(t){o(c,t,!0),o(d,t,!1)}),f.each(function(t){var e=f.getItemModel(t).get("lineStyle.color");f.setItemVisual(t,{color:e||c.getItemVisual(t,"color")}),f.setItemLayout(t,[c.getItemLayout(t),d.getItemLayout(t)]),f.setItemVisual(t,{fromSymbolSize:c.getItemVisual(t,"symbolSize"),fromSymbol:c.getItemVisual(t,"symbol"),toSymbolSize:d.getItemVisual(t,"symbolSize"),toSymbol:d.getItemVisual(t,"symbol")})}),u.updateData(f),h.line.eachItemGraphicEl(function(t,i){t.traverse(function(t){t.dataModel=e})}),u.__keep=!0,u.group.silent=e.get("silent")||t.get("silent")}}),Ps(function(t){t.markLine=t.markLine||{}}),FO.extend({type:"markArea",defaultOption:{zlevel:0,z:1,tooltip:{trigger:"item"},animation:!1,label:{show:!0,position:"top"},itemStyle:{borderWidth:0},emphasis:{label:{show:!0,position:"top"}}}});var jO=function(t,e,i,n){var a=fx(t,n[0]),r=fx(t,n[1]),s=T,l=a.coord,u=r.coord;l[0]=s(l[0],-1/0),l[1]=s(l[1],-1/0),u[0]=s(u[0],1/0),u[1]=s(u[1],1/0);var h=o([{},a,r]);return h.coord=[a.coord,r.coord],h.x0=a.x,h.y0=a.y,h.x1=r.x,h.y1=r.y,h},YO=[["x0","y0"],["x1","y0"],["x1","y1"],["x0","y1"]];UO.extend({type:"markArea",updateTransform:function(t,e,i){e.eachSeries(function(t){var e=t.markAreaModel;if(e){var n=e.getData();n.each(function(e){var o=f(YO,function(o){return Lx(n,e,o,t,i)});n.setItemLayout(e,o),n.getItemGraphicEl(e).setShape("points",o)})}},this)},renderSeries:function(t,e,i,n){var o=t.coordinateSystem,a=t.id,s=t.getData(),l=this.markerGroupMap,u=l.get(a)||l.set(a,{group:new tb});this.group.add(u.group),u.__keep=!0;var h=kx(o,t,e);e.setData(h),h.each(function(e){h.setItemLayout(e,f(YO,function(i){return Lx(h,e,i,t,n)})),h.setItemVisual(e,{color:s.getVisual("color")})}),h.diff(u.__data).add(function(t){var e=new pM({shape:{points:h.getItemLayout(t)}});h.setItemGraphicEl(t,e),u.group.add(e)}).update(function(t,i){var n=u.__data.getItemGraphicEl(i);Mo(n,{shape:{points:h.getItemLayout(t)}},e,t),u.group.add(n),h.setItemGraphicEl(t,n)}).remove(function(t){var e=u.__data.getItemGraphicEl(t);u.group.remove(e)}).execute(),h.eachItemGraphicEl(function(t,i){var n=h.getItemModel(i),o=n.getModel("label"),a=n.getModel("emphasis.label"),s=h.getItemVisual(i,"color");t.useStyle(r(n.getModel("itemStyle").getItemStyle(),{fill:Yt(s,.4),stroke:s})),t.hoverStyle=n.getModel("emphasis.itemStyle").getItemStyle(),po(t.style,t.hoverStyle,o,a,{labelFetcher:e,labelDataIndex:i,defaultText:h.getName(i)||"",isRectText:!0,autoColor:s}),co(t,{}),t.dataModel=e}),u.__data=h,u.group.silent=e.get("silent")||t.get("silent")}}),Ps(function(t){t.markArea=t.markArea||{}});lI.registerSubTypeDefaulter("timeline",function(){return"slider"}),Os({type:"timelineChange",event:"timelineChanged",update:"prepareAndUpdate"},function(t,e){var i=e.getComponent("timeline");return i&&null!=t.currentIndex&&(i.setCurrentIndex(t.currentIndex),!i.get("loop",!0)&&i.isIndexMax()&&i.setPlayState(!1)),e.resetOption("timeline"),r({currentIndex:i.option.currentIndex},t)}),Os({type:"timelinePlayChange",event:"timelinePlayChanged",update:"update"},function(t,e){var i=e.getComponent("timeline");i&&null!=t.playState&&i.setPlayState(t.playState)});var qO=lI.extend({type:"timeline",layoutMode:"box",defaultOption:{zlevel:0,z:4,show:!0,axisType:"time",realtime:!0,left:"20%",top:null,right:"20%",bottom:0,width:null,height:40,padding:5,controlPosition:"left",autoPlay:!1,rewind:!1,loop:!0,playInterval:2e3,currentIndex:0,itemStyle:{},label:{color:"#000"},data:[]},init:function(t,e,i){this._data,this._names,this.mergeDefaultAndTheme(t,i),this._initData()},mergeOption:function(t){qO.superApply(this,"mergeOption",arguments),this._initData()},setCurrentIndex:function(t){null==t&&(t=this.option.currentIndex);var e=this._data.count();this.option.loop?t=(t%e+e)%e:(t>=e&&(t=e-1),t<0&&(t=0)),this.option.currentIndex=t},getCurrentIndex:function(){return this.option.currentIndex},isIndexMax:function(){return this.getCurrentIndex()>=this._data.count()-1},setPlayState:function(t){this.option.autoPlay=!!t},getPlayState:function(){return!!this.option.autoPlay},_initData:function(){var t=this.option,e=t.data||[],n=t.axisType,o=this._names=[];if("category"===n){var a=[];d(e,function(t,e){var n,r=Li(t);w(t)?(n=i(t)).value=e:n=e,a.push(n),_(r)||null!=r&&!isNaN(r)||(r=""),o.push(r+"")}),e=a}var r={category:"ordinal",time:"time"}[n]||"number";(this._data=new gA([{name:"value",type:r}],this)).initData(e,o)},getData:function(){return this._data},getCategories:function(){if("category"===this.get("axisType"))return this._names.slice()}});h(qO.extend({type:"timeline.slider",defaultOption:{backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,orient:"horizontal",inverse:!1,tooltip:{trigger:"item"},symbol:"emptyCircle",symbolSize:10,lineStyle:{show:!0,width:2,color:"#304654"},label:{position:"auto",show:!0,interval:"auto",rotate:0,color:"#304654"},itemStyle:{color:"#304654",borderWidth:1},checkpointStyle:{symbol:"circle",symbolSize:13,color:"#c23531",borderWidth:5,borderColor:"rgba(194,53,49, 0.5)",animation:!0,animationDuration:300,animationEasing:"quinticInOut"},controlStyle:{show:!0,showPlayBtn:!0,showPrevBtn:!0,showNextBtn:!0,itemSize:22,itemGap:12,position:"left",playIcon:"path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z",stopIcon:"path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z",nextIcon:"path://M18.6,50.8l22.5-22.5c0.2-0.2,0.3-0.4,0.3-0.7c0-0.3-0.1-0.5-0.3-0.7L18.7,4.4c-0.1-0.1-0.2-0.3-0.2-0.5 c0-0.4,0.3-0.8,0.8-0.8c0.2,0,0.5,0.1,0.6,0.3l23.5,23.5l0,0c0.2,0.2,0.3,0.4,0.3,0.7c0,0.3-0.1,0.5-0.3,0.7l-0.1,0.1L19.7,52 c-0.1,0.1-0.3,0.2-0.5,0.2c-0.4,0-0.8-0.3-0.8-0.8C18.4,51.2,18.5,51,18.6,50.8z",prevIcon:"path://M43,52.8L20.4,30.3c-0.2-0.2-0.3-0.4-0.3-0.7c0-0.3,0.1-0.5,0.3-0.7L42.9,6.4c0.1-0.1,0.2-0.3,0.2-0.5 c0-0.4-0.3-0.8-0.8-0.8c-0.2,0-0.5,0.1-0.6,0.3L18.3,28.8l0,0c-0.2,0.2-0.3,0.4-0.3,0.7c0,0.3,0.1,0.5,0.3,0.7l0.1,0.1L41.9,54 c0.1,0.1,0.3,0.2,0.5,0.2c0.4,0,0.8-0.3,0.8-0.8C43.2,53.2,43.1,53,43,52.8z",color:"#304654",borderColor:"#304654",borderWidth:1},emphasis:{label:{show:!0,color:"#c23531"},itemStyle:{color:"#c23531"},controlStyle:{color:"#c23531",borderColor:"#c23531",borderWidth:2}},data:[]}}),ZI);var KO=qI.extend({type:"timeline"}),$O=function(t,e,i,n){nD.call(this,t,e,i),this.type=n||"value",this.model=null};$O.prototype={constructor:$O,getLabelModel:function(){return this.model.getModel("label")},isHorizontal:function(){return"horizontal"===this.model.get("orient")}},u($O,nD);var JO=m,QO=d,tE=Math.PI;KO.extend({type:"timeline.slider",init:function(t,e){this.api=e,this._axis,this._viewRect,this._timer,this._currentPointer,this._mainGroup,this._labelGroup},render:function(t,e,i,n){if(this.model=t,this.api=i,this.ecModel=e,this.group.removeAll(),t.get("show",!0)){var o=this._layout(t,i),a=this._createGroup("mainGroup"),r=this._createGroup("labelGroup"),s=this._axis=this._createAxis(o,t);t.formatTooltip=function(t){return ea(s.scale.getLabel(t))},QO(["AxisLine","AxisTick","Control","CurrentPointer"],function(e){this["_render"+e](o,a,s,t)},this),this._renderAxisLabel(o,r,s,t),this._position(o,t)}this._doPlayStop()},remove:function(){this._clearTimer(),this.group.removeAll()},dispose:function(){this._clearTimer()},_layout:function(t,e){var i=t.get("label.position"),n=t.get("orient"),o=Ex(t,e);null==i||"auto"===i?i="horizontal"===n?o.y+o.height/2=0||"+"===i?"left":"right"},r={horizontal:i>=0||"+"===i?"top":"bottom",vertical:"middle"},s={horizontal:0,vertical:tE/2},l="vertical"===n?o.height:o.width,u=t.getModel("controlStyle"),h=u.get("show",!0),c=h?u.get("itemSize"):0,d=h?u.get("itemGap"):0,f=c+d,p=t.get("label.rotate")||0;p=p*tE/180;var g,m,v,y,x=u.get("position",!0),_=h&&u.get("showPlayBtn",!0),w=h&&u.get("showPrevBtn",!0),b=h&&u.get("showNextBtn",!0),S=0,M=l;return"left"===x||"bottom"===x?(_&&(g=[0,0],S+=f),w&&(m=[S,0],S+=f),b&&(v=[M-c,0],M-=f)):(_&&(g=[M-c,0],M-=f),w&&(m=[0,0],S+=f),b&&(v=[M-c,0],M-=f)),y=[S,M],t.get("inverse")&&y.reverse(),{viewRect:o,mainLength:l,orient:n,rotation:s[n],labelRotation:p,labelPosOpt:i,labelAlign:t.get("label.align")||a[n],labelBaseline:t.get("label.verticalAlign")||t.get("label.baseline")||r[n],playPosition:g,prevBtnPosition:m,nextBtnPosition:v,axisExtent:y,controlSize:c,controlGap:d}},_position:function(t,e){function i(t){var e=t.position;t.origin=[c[0][0]-e[0],c[1][0]-e[1]]}function n(t){return[[t.x,t.x+t.width],[t.y,t.y+t.height]]}function o(t,e,i,n,o){t[n]+=i[n][o]-e[n][o]}var a=this._mainGroup,r=this._labelGroup,s=t.viewRect;if("vertical"===t.orient){var l=xt(),u=s.x,h=s.y+s.height;St(l,l,[-u,-h]),Mt(l,l,-tE/2),St(l,l,[u,h]),(s=s.clone()).applyTransform(l)}var c=n(s),d=n(a.getBoundingRect()),f=n(r.getBoundingRect()),p=a.position,g=r.position;g[0]=p[0]=c[0][0];var m=t.labelPosOpt;if(isNaN(m))o(p,d,c,1,v="+"===m?0:1),o(g,f,c,1,1-v);else{var v=m>=0?0:1;o(p,d,c,1,v),g[1]=p[1]+m}a.attr("position",p),r.attr("position",g),a.rotation=r.rotation=t.rotation,i(a),i(r)},_createAxis:function(t,e){var i=e.getData(),n=e.get("axisType"),o=Wl(e,n);o.getTicks=function(){return i.mapArray(["value"],function(t){return t})};var a=i.getDataExtent("value");o.setExtent(a[0],a[1]),o.niceTicks();var r=new $O("value",o,t.axisExtent,n);return r.model=e,r},_createGroup:function(t){var e=this["_"+t]=new tb;return this.group.add(e),e},_renderAxisLine:function(t,e,i,n){var o=i.getExtent();n.get("lineStyle.show")&&e.add(new _M({shape:{x1:o[0],y1:0,x2:o[1],y2:0},style:a({lineCap:"round"},n.getModel("lineStyle").getLineStyle()),silent:!0,z2:1}))},_renderAxisTick:function(t,e,i,n){var o=n.getData(),a=i.scale.getTicks();QO(a,function(t){var a=i.dataToCoord(t),r=o.getItemModel(t),s=r.getModel("itemStyle"),l=r.getModel("emphasis.itemStyle"),u={position:[a,0],onclick:JO(this._changeTimeline,this,t)},h=zx(r,s,e,u);co(h,l.getItemStyle()),r.get("tooltip")?(h.dataIndex=t,h.dataModel=n):h.dataIndex=h.dataModel=null},this)},_renderAxisLabel:function(t,e,i,n){if(i.getLabelModel().get("show")){var o=n.getData(),a=i.getViewLabels();QO(a,function(n){var a=n.tickValue,r=o.getItemModel(a),s=r.getModel("label"),l=r.getModel("emphasis.label"),u=i.dataToCoord(n.tickValue),h=new rM({position:[u,0],rotation:t.labelRotation-t.rotation,onclick:JO(this._changeTimeline,this,a),silent:!1});go(h.style,s,{text:n.formattedLabel,textAlign:t.labelAlign,textVerticalAlign:t.labelBaseline}),e.add(h),co(h,go({},l))},this)}},_renderControl:function(t,e,i,n){function o(t,i,o,h){if(t){var c=Rx(n,i,u,{position:t,origin:[a/2,0],rotation:h?-r:0,rectHover:!0,style:s,onclick:o});e.add(c),co(c,l)}}var a=t.controlSize,r=t.rotation,s=n.getModel("controlStyle").getItemStyle(),l=n.getModel("emphasis.controlStyle").getItemStyle(),u=[0,-a/2,a,a],h=n.getPlayState(),c=n.get("inverse",!0);o(t.nextBtnPosition,"controlStyle.nextIcon",JO(this._changeTimeline,this,c?"-":"+")),o(t.prevBtnPosition,"controlStyle.prevIcon",JO(this._changeTimeline,this,c?"+":"-")),o(t.playPosition,"controlStyle."+(h?"stopIcon":"playIcon"),JO(this._handlePlayClick,this,!h),!0)},_renderCurrentPointer:function(t,e,i,n){var o=n.getData(),a=n.getCurrentIndex(),r=o.getItemModel(a).getModel("checkpointStyle"),s=this,l={onCreate:function(t){t.draggable=!0,t.drift=JO(s._handlePointerDrag,s),t.ondragend=JO(s._handlePointerDragend,s),Bx(t,a,i,n,!0)},onUpdate:function(t){Bx(t,a,i,n)}};this._currentPointer=zx(r,r,this._mainGroup,{},this._currentPointer,l)},_handlePlayClick:function(t){this._clearTimer(),this.api.dispatchAction({type:"timelinePlayChange",playState:t,from:this.uid})},_handlePointerDrag:function(t,e,i){this._clearTimer(),this._pointerChangeTimeline([i.offsetX,i.offsetY])},_handlePointerDragend:function(t){this._pointerChangeTimeline([t.offsetX,t.offsetY],!0)},_pointerChangeTimeline:function(t,e){var i=this._toAxisCoord(t)[0],n=Go(this._axis.getExtent().slice());i>n[1]&&(i=n[1]),ii.getHeight()&&(n.textPosition="top",l=!0);var u=l?-5-o.height:s+8;a+o.width/2>i.getWidth()?(n.textPosition=["100%",u],n.textAlign="right"):a-o.width/2<0&&(n.textPosition=[0,u],n.textAlign="left")}})}},updateView:function(t,e,i,n){d(this._features,function(t){t.updateView&&t.updateView(t.model,e,i,n)})},remove:function(t,e){d(this._features,function(i){i.remove&&i.remove(t,e)}),this.group.removeAll()},dispose:function(t,e){d(this._features,function(i){i.dispose&&i.dispose(t,e)})}});var iE=rT.toolbox.saveAsImage;Gx.defaultOption={show:!0,icon:"M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0",title:iE.title,type:"png",name:"",excludeComponents:["toolbox"],pixelRatio:1,lang:iE.lang.slice()},Gx.prototype.unusable=!U_.canvasSupported,Gx.prototype.onclick=function(t,e){var i=this.model,n=i.get("name")||t.get("title.0.text")||"echarts",o=document.createElement("a"),a=i.get("type",!0)||"png";o.download=n+"."+a,o.target="_blank";var r=e.getConnectedDataURL({type:a,backgroundColor:i.get("backgroundColor",!0)||t.get("backgroundColor")||"#fff",excludeComponents:i.get("excludeComponents"),pixelRatio:i.get("pixelRatio")});if(o.href=r,"function"!=typeof MouseEvent||U_.browser.ie||U_.browser.edge)if(window.navigator.msSaveOrOpenBlob){for(var s=atob(r.split(",")[1]),l=s.length,u=new Uint8Array(l);l--;)u[l]=s.charCodeAt(l);var h=new Blob([u]);window.navigator.msSaveOrOpenBlob(h,n+"."+a)}else{var c=i.get("lang"),d='';window.open().document.write(d)}else{var f=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1});o.dispatchEvent(f)}},Ty("saveAsImage",Gx);var nE=rT.toolbox.magicType;Fx.defaultOption={show:!0,type:[],icon:{line:"M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4",bar:"M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7",stack:"M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z",tiled:"M2.3,2.2h22.8V25H2.3V2.2z M35,2.2h22.8V25H35V2.2zM2.3,35h22.8v22.8H2.3V35z M35,35h22.8v22.8H35V35z"},title:i(nE.title),option:{},seriesIndex:{}};var oE=Fx.prototype;oE.getIcons=function(){var t=this.model,e=t.get("icon"),i={};return d(t.get("type"),function(t){e[t]&&(i[t]=e[t])}),i};var aE={line:function(t,e,i,o){if("bar"===t)return n({id:e,type:"line",data:i.get("data"),stack:i.get("stack"),markPoint:i.get("markPoint"),markLine:i.get("markLine")},o.get("option.line")||{},!0)},bar:function(t,e,i,o){if("line"===t)return n({id:e,type:"bar",data:i.get("data"),stack:i.get("stack"),markPoint:i.get("markPoint"),markLine:i.get("markLine")},o.get("option.bar")||{},!0)},stack:function(t,e,i,o){if("line"===t||"bar"===t)return n({id:e,stack:"__ec_magicType_stack__"},o.get("option.stack")||{},!0)},tiled:function(t,e,i,o){if("line"===t||"bar"===t)return n({id:e,stack:""},o.get("option.tiled")||{},!0)}},rE=[["line","bar"],["stack","tiled"]];oE.onclick=function(t,e,i){var n=this.model,o=n.get("seriesIndex."+i);if(aE[i]){var a={series:[]};d(rE,function(t){l(t,i)>=0&&d(t,function(t){n.setIconStatus(t,"normal")})}),n.setIconStatus(i,"emphasis"),t.eachComponent({mainType:"series",query:null==o?null:{seriesIndex:o}},function(e){var o=e.subType,s=e.id,l=aE[i](o,s,e,n);l&&(r(l,e.option),a.series.push(l));var u=e.coordinateSystem;if(u&&"cartesian2d"===u.type&&("line"===i||"bar"===i)){var h=u.getAxesByScale("ordinal")[0];if(h){var c=h.dim+"Axis",d=t.queryComponents({mainType:c,index:e.get(name+"Index"),id:e.get(name+"Id")})[0].componentIndex;a[c]=a[c]||[];for(var f=0;f<=d;f++)a[c][d]=a[c][d]||{};a[c][d].boundaryGap="bar"===i}}}),e.dispatchAction({type:"changeMagicType",currentType:i,newOption:a})}},Os({type:"changeMagicType",event:"magicTypeChanged",update:"prepareAndUpdate"},function(t,e){e.mergeOption(t.newOption)}),Ty("magicType",Fx);var sE=rT.toolbox.dataView,lE=new Array(60).join("-"),uE="\t",hE=new RegExp("["+uE+"]+","g");$x.defaultOption={show:!0,readOnly:!1,optionToContent:null,contentToOption:null,icon:"M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28",title:i(sE.title),lang:i(sE.lang),backgroundColor:"#fff",textColor:"#000",textareaColor:"#fff",textareaBorderColor:"#333",buttonColor:"#c23531",buttonTextColor:"#fff"},$x.prototype.onclick=function(t,e){function i(){n.removeChild(a),x._dom=null}var n=e.getDom(),o=this.model;this._dom&&n.removeChild(this._dom);var a=document.createElement("div");a.style.cssText="position:absolute;left:5px;top:5px;bottom:5px;right:5px;",a.style.backgroundColor=o.get("backgroundColor")||"#fff";var r=document.createElement("h4"),s=o.get("lang")||[];r.innerHTML=s[0]||o.get("title"),r.style.cssText="margin: 10px 20px;",r.style.color=o.get("textColor");var l=document.createElement("div"),u=document.createElement("textarea");l.style.cssText="display:block;width:100%;overflow:auto;";var h=o.get("optionToContent"),c=o.get("contentToOption"),d=Ux(t);if("function"==typeof h){var f=h(e.getOption());"string"==typeof f?l.innerHTML=f:M(f)&&l.appendChild(f)}else l.appendChild(u),u.readOnly=o.get("readOnly"),u.style.cssText="width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;",u.style.color=o.get("textColor"),u.style.borderColor=o.get("textareaBorderColor"),u.style.backgroundColor=o.get("textareaColor"),u.value=d.value;var p=d.meta,g=document.createElement("div");g.style.cssText="position:absolute;bottom:0;left:0;right:0;";var m="float:right;margin-right:20px;border:none;cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px",v=document.createElement("div"),y=document.createElement("div");m+=";background-color:"+o.get("buttonColor"),m+=";color:"+o.get("buttonTextColor");var x=this;ht(v,"click",i),ht(y,"click",function(){var t;try{t="function"==typeof c?c(l,e.getOption()):Kx(u.value,p)}catch(t){throw i(),new Error("Data view format error "+t)}t&&e.dispatchAction({type:"changeDataView",newOption:t}),i()}),v.innerHTML=s[1],y.innerHTML=s[2],y.style.cssText=m,v.style.cssText=m,!o.get("readOnly")&&g.appendChild(y),g.appendChild(v),ht(u,"keydown",function(t){if(9===(t.keyCode||t.which)){var e=this.value,i=this.selectionStart,n=this.selectionEnd;this.value=e.substring(0,i)+uE+e.substring(n),this.selectionStart=this.selectionEnd=i+1,mw(t)}}),a.appendChild(r),a.appendChild(l),a.appendChild(g),l.style.height=n.clientHeight-80+"px",n.appendChild(a),this._dom=a},$x.prototype.remove=function(t,e){this._dom&&e.getDom().removeChild(this._dom)},$x.prototype.dispose=function(t,e){this.remove(t,e)},Ty("dataView",$x),Os({type:"changeDataView",event:"dataViewChanged",update:"prepareAndUpdate"},function(t,e){var i=[];d(t.newOption.series,function(t){var n=e.getSeriesByName(t.name)[0];if(n){var o=n.get("data");i.push({name:t.name,data:Jx(t.data,o)})}else i.push(a({type:"scatter"},t))}),e.mergeOption(r({series:i},t.newOption))});var cE=d,dE="\0_ec_hist_store";JN.extend({type:"dataZoom.select"}),QN.extend({type:"dataZoom.select"});var fE=rT.toolbox.dataZoom,pE=d,gE="\0_ec_\0toolbox-dataZoom_";o_.defaultOption={show:!0,icon:{zoom:"M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1",back:"M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26"},title:i(fE.title)};var mE=o_.prototype;mE.render=function(t,e,i,n){this.model=t,this.ecModel=e,this.api=i,s_(t,e,this,n,i),r_(t,e)},mE.onclick=function(t,e,i){vE[i].call(this)},mE.remove=function(t,e){this._brushController.unmount()},mE.dispose=function(t,e){this._brushController.dispose()};var vE={zoom:function(){var t=!this._isZoomActive;this.api.dispatchAction({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:t})},back:function(){this._dispatchZoomAction(t_(this.ecModel))}};mE._onBrush=function(t,e){function i(t,e,i){var r=e.getAxis(t),s=r.model,l=n(t,s,a),u=l.findRepresentativeAxisProxy(s).getMinMaxSpan();null==u.minValueSpan&&null==u.maxValueSpan||(i=$L(0,i.slice(),r.scale.getExtent(),0,u.minValueSpan,u.maxValueSpan)),l&&(o[l.id]={dataZoomId:l.id,startValue:i[0],endValue:i[1]})}function n(t,e,i){var n;return i.eachComponent({mainType:"dataZoom",subType:"select"},function(i){i.getAxisModel(t,e.componentIndex)&&(n=i)}),n}if(e.isEnd&&t.length){var o={},a=this.ecModel;this._brushController.updateCovers([]),new hy(a_(this.model.option),a,{include:["grid"]}).matchOutputRanges(t,a,function(t,e,n){if("cartesian2d"===n.type){var o=t.brushType;"rect"===o?(i("x",n,e[0]),i("y",n,e[1])):i({lineX:"x",lineY:"y"}[o],n,e)}}),Qx(a,o),this._dispatchZoomAction(o)}},mE._dispatchZoomAction=function(t){var e=[];pE(t,function(t,n){e.push(i(t))}),e.length&&this.api.dispatchAction({type:"dataZoom",from:this.uid,batch:e})},Ty("dataZoom",o_),Ps(function(t){function e(t,e){if(e){var o=t+"Index",a=e[o];null==a||"all"===a||y(a)||(a=!1===a||"none"===a?[]:[a]),i(t,function(e,i){if(null==a||"all"===a||-1!==l(a,i)){var r={type:"select",$fromToolbox:!0,id:gE+t+i};r[o]=i,n.push(r)}})}}function i(e,i){var n=t[e];y(n)||(n=n?[n]:[]),pE(n,i)}if(t){var n=t.dataZoom||(t.dataZoom=[]);y(n)||(t.dataZoom=n=[n]);var o=t.toolbox;if(o&&(y(o)&&(o=o[0]),o&&o.feature)){var a=o.feature.dataZoom;e("xAxis",a),e("yAxis",a)}}});var yE=rT.toolbox.restore;l_.defaultOption={show:!0,icon:"M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5",title:yE.title},l_.prototype.onclick=function(t,e,i){e_(t),e.dispatchAction({type:"restore",from:this.uid})},Ty("restore",l_),Os({type:"restore",event:"restore",update:"prepareAndUpdate"},function(t,e){e.resetOption("recreate")});var xE,_E="urn:schemas-microsoft-com:vml",wE="undefined"==typeof window?null:window,bE=!1,SE=wE&&wE.document;if(SE&&!U_.canvasSupported)try{!SE.namespaces.zrvml&&SE.namespaces.add("zrvml",_E),xE=function(t){return SE.createElement("')}}catch(t){xE=function(t){return SE.createElement("<"+t+' xmlns="'+_E+'" class="zrvml">')}}var ME=ES.CMD,IE=Math.round,TE=Math.sqrt,AE=Math.abs,DE=Math.cos,CE=Math.sin,LE=Math.max;if(!U_.canvasSupported){var kE=21600,PE=kE/2,NE=function(t){t.style.cssText="position:absolute;left:0;top:0;width:1px;height:1px;",t.coordsize=kE+","+kE,t.coordorigin="0,0"},OE=function(t){return String(t).replace(/&/g,"&").replace(/"/g,""")},EE=function(t,e,i){return"rgb("+[t,e,i].join(",")+")"},RE=function(t,e){e&&t&&e.parentNode!==t&&t.appendChild(e)},zE=function(t,e){e&&t&&e.parentNode===t&&t.removeChild(e)},BE=function(t,e,i){return 1e5*(parseFloat(t)||0)+1e3*(parseFloat(e)||0)+i},VE=function(t,e){return"string"==typeof t?t.lastIndexOf("%")>=0?parseFloat(t)/100*e:parseFloat(t):t},GE=function(t,e,i){var n=Gt(e);i=+i,isNaN(i)&&(i=1),n&&(t.color=EE(n[0],n[1],n[2]),t.opacity=i*n[3])},FE=function(t){var e=Gt(t);return[EE(e[0],e[1],e[2]),e[3]]},WE=function(t,e,i){var n=e.fill;if(null!=n)if(n instanceof IM){var o,a=0,r=[0,0],s=0,l=1,u=i.getBoundingRect(),h=u.width,c=u.height;if("linear"===n.type){o="gradient";var d=i.transform,f=[n.x*h,n.y*c],p=[n.x2*h,n.y2*c];d&&(Q(f,f,d),Q(p,p,d));var g=p[0]-f[0],m=p[1]-f[1];(a=180*Math.atan2(g,m)/Math.PI)<0&&(a+=360),a<1e-6&&(a=0)}else{o="gradientradial";var f=[n.x*h,n.y*c],d=i.transform,v=i.scale,y=h,x=c;r=[(f[0]-u.x)/y,(f[1]-u.y)/x],d&&Q(f,f,d),y/=v[0]*kE,x/=v[1]*kE;var _=LE(y,x);s=0/_,l=2*n.r/_-s}var w=n.colorStops.slice();w.sort(function(t,e){return t.offset-e.offset});for(var b=w.length,S=[],M=[],I=0;I=2){var D=S[0][0],C=S[1][0],L=S[0][1]*e.opacity,k=S[1][1]*e.opacity;t.type=o,t.method="none",t.focus="100%",t.angle=a,t.color=D,t.color2=C,t.colors=M.join(","),t.opacity=k,t.opacity2=L}"radial"===o&&(t.focusposition=r.join(","))}else GE(t,n,e.opacity)},HE=function(t,e){null!=e.lineDash&&(t.dashstyle=e.lineDash.join(" ")),null==e.stroke||e.stroke instanceof IM||GE(t,e.stroke,e.opacity)},ZE=function(t,e,i,n){var o="fill"===e,a=t.getElementsByTagName(e)[0];null!=i[e]&&"none"!==i[e]&&(o||!o&&i.lineWidth)?(t[o?"filled":"stroked"]="true",i[e]instanceof IM&&zE(t,a),a||(a=u_(e)),o?WE(a,i,n):HE(a,i),RE(t,a)):(t[o?"filled":"stroked"]="false",zE(t,a))},UE=[[],[],[]],XE=function(t,e){var i,n,o,a,r,s,l=ME.M,u=ME.C,h=ME.L,c=ME.A,d=ME.Q,f=[],p=t.data,g=t.len();for(a=0;a.01?N&&(O+=.0125):Math.abs(E-D)<1e-4?N&&OA?x-=.0125:x+=.0125:N&&ED?y+=.0125:y-=.0125),f.push(R,IE(((A-C)*M+b)*kE-PE),",",IE(((D-L)*I+S)*kE-PE),",",IE(((A+C)*M+b)*kE-PE),",",IE(((D+L)*I+S)*kE-PE),",",IE((O*M+b)*kE-PE),",",IE((E*I+S)*kE-PE),",",IE((y*M+b)*kE-PE),",",IE((x*I+S)*kE-PE)),r=y,s=x;break;case ME.R:var z=UE[0],B=UE[1];z[0]=p[a++],z[1]=p[a++],B[0]=z[0]+p[a++],B[1]=z[1]+p[a++],e&&(Q(z,z,e),Q(B,B,e)),z[0]=IE(z[0]*kE-PE),B[0]=IE(B[0]*kE-PE),z[1]=IE(z[1]*kE-PE),B[1]=IE(B[1]*kE-PE),f.push(" m ",z[0],",",z[1]," l ",B[0],",",z[1]," l ",B[0],",",B[1]," l ",z[0],",",B[1]);break;case ME.Z:f.push(" x ")}if(i>0){f.push(n);for(var V=0;V100&&(KE=0,qE={});var i,n=$E.style;try{n.font=t,i=n.fontFamily.split(",")[0]}catch(t){}e={style:n.fontStyle||"normal",variant:n.fontVariant||"normal",weight:n.fontWeight||"normal",size:0|parseFloat(n.fontSize||12),family:i||"Microsoft YaHei"},qE[t]=e,KE++}return e};!function(t,e){bb[t]=e}("measureText",function(t,e){var i=SE;YE||((YE=i.createElement("div")).style.cssText="position:absolute;top:-20000px;left:0;padding:0;margin:0;border:none;white-space:pre;",SE.body.appendChild(YE));try{YE.style.font=e}catch(t){}return YE.innerHTML="",YE.appendChild(i.createTextNode(t)),{width:YE.offsetWidth}});for(var QE=new de,tR=[Db,di,fi,kn,rM],eR=0;eR=o&&u+1>=a){for(var h=[],c=0;c=o&&c+1>=a)return T_(0,s.components);l[i]=s}else l[i]=void 0}r++}();if(d)return d}},pushComponent:function(t,e,i){var n=t[t.length-1];n&&n.added===e&&n.removed===i?t[t.length-1]={count:n.count+1,added:e,removed:i}:t.push({count:1,added:e,removed:i})},extractCommon:function(t,e,i,n){for(var o=e.length,a=i.length,r=t.newPos,s=r-n,l=0;r+1=0;--n)if(e[n]===t)return!0;return!1}),i):null:i[0]},D_.prototype.update=function(t,e){if(t){var i=this.getDefs(!1);if(t[this._domName]&&i.contains(t[this._domName]))"function"==typeof e&&e(t);else{var n=this.add(t);n&&(t[this._domName]=n)}}},D_.prototype.addDom=function(t){this.getDefs(!0).appendChild(t)},D_.prototype.removeDom=function(t){var e=this.getDefs(!1);e&&t[this._domName]&&(e.removeChild(t[this._domName]),t[this._domName]=null)},D_.prototype.getDoms=function(){var t=this.getDefs(!1);if(!t)return[];var e=[];return d(this._tagNames,function(i){var n=t.getElementsByTagName(i);e=e.concat([].slice.call(n))}),e},D_.prototype.markAllUnused=function(){var t=this;d(this.getDoms(),function(e){e[t._markLabel]="0"})},D_.prototype.markUsed=function(t){t&&(t[this._markLabel]="1")},D_.prototype.removeUnused=function(){var t=this.getDefs(!1);if(t){var e=this;d(this.getDoms(),function(i){"1"!==i[e._markLabel]&&t.removeChild(i)})}},D_.prototype.getSvgProxy=function(t){return t instanceof kn?pR:t instanceof fi?gR:t instanceof rM?mR:pR},D_.prototype.getTextSvgElement=function(t){return t.__textSvgEl},D_.prototype.getSvgElement=function(t){return t.__svgEl},u(C_,D_),C_.prototype.addWithoutUpdate=function(t,e){if(e&&e.style){var i=this;d(["fill","stroke"],function(n){if(e.style[n]&&("linear"===e.style[n].type||"radial"===e.style[n].type)){var o,a=e.style[n],r=i.getDefs(!0);a._dom?(o=a._dom,r.contains(a._dom)||i.addDom(o)):o=i.add(a),i.markUsed(e);var s=o.getAttribute("id");t.setAttribute(n,"url(#"+s+")")}})}},C_.prototype.add=function(t){var e;if("linear"===t.type)e=this.createElement("linearGradient");else{if("radial"!==t.type)return Yw("Illegal gradient type."),null;e=this.createElement("radialGradient")}return t.id=t.id||this.nextId++,e.setAttribute("id","zr"+this._zrId+"-gradient-"+t.id),this.updateDom(t,e),this.addDom(e),e},C_.prototype.update=function(t){var e=this;D_.prototype.update.call(this,t,function(){var i=t.type,n=t._dom.tagName;"linear"===i&&"linearGradient"===n||"radial"===i&&"radialGradient"===n?e.updateDom(t,t._dom):(e.removeDom(t),e.add(t))})},C_.prototype.updateDom=function(t,e){if("linear"===t.type)e.setAttribute("x1",t.x),e.setAttribute("y1",t.y),e.setAttribute("x2",t.x2),e.setAttribute("y2",t.y2);else{if("radial"!==t.type)return void Yw("Illegal gradient type.");e.setAttribute("cx",t.x),e.setAttribute("cy",t.y),e.setAttribute("r",t.r)}t.global?e.setAttribute("gradientUnits","userSpaceOnUse"):e.setAttribute("gradientUnits","objectBoundingBox"),e.innerHTML="";for(var i=t.colorStops,n=0,o=i.length;n0){var n,o,a=this.getDefs(!0),r=e[0],s=i?"_textDom":"_dom";r[s]?(o=r[s].getAttribute("id"),n=r[s],a.contains(n)||a.appendChild(n)):(o="zr"+this._zrId+"-clip-"+this.nextId,++this.nextId,(n=this.createElement("clipPath")).setAttribute("id",o),a.appendChild(n),r[s]=n);var l=this.getSvgProxy(r);if(r.transform&&r.parent.invTransform&&!i){var u=Array.prototype.slice.call(r.transform);bt(r.transform,r.parent.invTransform,r.transform),l.brush(r),r.transform=u}else l.brush(r);var h=this.getSvgElement(r);n.innerHTML="",n.appendChild(h.cloneNode()),t.setAttribute("clip-path","url(#"+o+")"),e.length>1&&this.updateDom(n,e.slice(1),i)}else t&&t.setAttribute("clip-path","none")},L_.prototype.markUsed=function(t){var e=this;t.__clipPaths&&t.__clipPaths.length>0&&d(t.__clipPaths,function(t){t._dom&&D_.prototype.markUsed.call(e,t._dom),t._textDom&&D_.prototype.markUsed.call(e,t._textDom)})},u(k_,D_),k_.prototype.addWithoutUpdate=function(t,e){if(e&&P_(e.style)){var i,n=e.style;n._shadowDom?(i=n._shadowDom,this.getDefs(!0).contains(n._shadowDom)||this.addDom(i)):i=this.add(e),this.markUsed(e);var o=i.getAttribute("id");t.style.filter="url(#"+o+")"}},k_.prototype.add=function(t){var e=this.createElement("filter"),i=t.style;return i._shadowDomId=i._shadowDomId||this.nextId++,e.setAttribute("id","zr"+this._zrId+"-shadow-"+i._shadowDomId),this.updateDom(t,e),this.addDom(e),e},k_.prototype.update=function(t,e){var i=e.style;if(P_(i)){var n=this;D_.prototype.update.call(this,e,function(t){n.updateDom(e,t._shadowDom)})}else this.remove(t,i)},k_.prototype.remove=function(t,e){null!=e._shadowDomId&&(this.removeDom(e),t.style.filter="")},k_.prototype.updateDom=function(t,e){var i=e.getElementsByTagName("feDropShadow");i=0===i.length?this.createElement("feDropShadow"):i[0];var n,o,a,r,s=t.style,l=t.scale?t.scale[0]||1:1,u=t.scale?t.scale[1]||1:1;if(s.shadowBlur||s.shadowOffsetX||s.shadowOffsetY)n=s.shadowOffsetX||0,o=s.shadowOffsetY||0,a=s.shadowBlur,r=s.shadowColor;else{if(!s.textShadowBlur)return void this.removeDom(e,s);n=s.textShadowOffsetX||0,o=s.textShadowOffsetY||0,a=s.textShadowBlur,r=s.textShadowColor}i.setAttribute("dx",n/l),i.setAttribute("dy",o/u),i.setAttribute("flood-color",r);var h=a/2/l+" "+a/2/u;i.setAttribute("stdDeviation",h),e.setAttribute("x","-100%"),e.setAttribute("y","-100%"),e.setAttribute("width",Math.ceil(a/2*200)+"%"),e.setAttribute("height",Math.ceil(a/2*200)+"%"),e.appendChild(i),s._shadowDom=e},k_.prototype.markUsed=function(t){var e=t.style;e&&e._shadowDom&&D_.prototype.markUsed.call(this,e._shadowDom)};var wR=function(t,e,i,n){this.root=t,this.storage=e,this._opts=i=a({},i||{});var o=p_("svg");o.setAttribute("xmlns","http://www.w3.org/2000/svg"),o.setAttribute("version","1.1"),o.setAttribute("baseProfile","full"),o.style.cssText="user-select:none;position:absolute;left:0;top:0;",this.gradientManager=new C_(n,o),this.clipPathManager=new L_(n,o),this.shadowManager=new k_(n,o);var r=document.createElement("div");r.style.cssText="overflow:hidden;position:relative",this._svgRoot=o,this._viewport=r,t.appendChild(r),r.appendChild(o),this.resize(i.width,i.height),this._visibleList=[]};wR.prototype={constructor:wR,getType:function(){return"svg"},getViewportRoot:function(){return this._viewport},getViewportRootOffset:function(){var t=this.getViewportRoot();if(t)return{offsetLeft:t.offsetLeft||0,offsetTop:t.offsetTop||0}},refresh:function(){var t=this.storage.getDisplayList(!0);this._paintList(t)},setBackgroundColor:function(t){this._viewport.style.background=t},_paintList:function(t){this.gradientManager.markAllUnused(),this.clipPathManager.markAllUnused(),this.shadowManager.markAllUnused();var e,i=this._svgRoot,n=this._visibleList,o=t.length,a=[];for(e=0;e=0;--n)if(e[n]===t)return!0;return!1}),i):null:i[0]},resize:function(t,e){var i=this._viewport;i.style.display="none";var n=this._opts;if(null!=t&&(n.width=t),null!=e&&(n.height=e),t=this._getSize(0),e=this._getSize(1),i.style.display="",this._width!==t||this._height!==e){this._width=t,this._height=e;var o=i.style;o.width=t+"px",o.height=e+"px";var a=this._svgRoot;a.setAttribute("width",t),a.setAttribute("height",e)}},getWidth:function(){return this._width},getHeight:function(){return this._height},_getSize:function(t){var e=this._opts,i=["width","height"][t],n=["clientWidth","clientHeight"][t],o=["paddingLeft","paddingTop"][t],a=["paddingRight","paddingBottom"][t];if(null!=e[i]&&"auto"!==e[i])return parseFloat(e[i]);var r=this.root,s=document.defaultView.getComputedStyle(r);return(r[n]||N_(s[i])||N_(r.style[i]))-(N_(s[o])||0)-(N_(s[a])||0)|0},dispose:function(){this.root.innerHTML="",this._svgRoot=this._viewport=this.storage=null},clear:function(){this._viewport&&this.root.removeChild(this._viewport)},pathToDataUrl:function(){return this.refresh(),"data:image/svg+xml;charset=UTF-8,"+this._svgRoot.outerHTML}},d(["getLayer","insertLayer","eachLayer","eachBuiltinLayer","eachOtherLayer","getLayers","modLayer","delLayer","clearLayer","toDataURL","pathToImage"],function(t){wR.prototype[t]=F_(t)}),Ti("svg",wR),t.version="4.2.1",t.dependencies={zrender:"4.0.6"},t.PRIORITY=BT,t.init=function(t,e,i){var n=Ls(t);if(n)return n;var o=new ls(t,e,i);return o.id="ec_"+eA++,QT[o.id]=o,Fi(t,nA,o.id),Ds(o),o},t.connect=function(t){if(y(t)){var e=t;t=null,kT(e,function(e){null!=e.group&&(t=e.group)}),t=t||"g_"+iA++,kT(e,function(e){e.group=t})}return tA[t]=!0,t},t.disConnect=Cs,t.disconnect=oA,t.dispose=function(t){"string"==typeof t?t=QT[t]:t instanceof ls||(t=Ls(t)),t instanceof ls&&!t.isDisposed()&&t.dispose()},t.getInstanceByDom=Ls,t.getInstanceById=function(t){return QT[t]},t.registerTheme=ks,t.registerPreprocessor=Ps,t.registerProcessor=Ns,t.registerPostUpdate=function(t){qT.push(t)},t.registerAction=Os,t.registerCoordinateSystem=Es,t.getCoordinateSystemDimensions=function(t){var e=Ga.get(t);if(e)return e.getDimensionsInfo?e.getDimensionsInfo():e.dimensions.slice()},t.registerLayout=Rs,t.registerVisual=zs,t.registerLoading=Vs,t.extendComponentModel=Gs,t.extendComponentView=Fs,t.extendSeriesModel=Ws,t.extendChartView=Hs,t.setCanvasCreator=function(t){e("createCanvas",t)},t.registerMap=function(t,e,i){DT.registerMap(t,e,i)},t.getMap=function(t){var e=DT.retrieveMap(t);return e&&e[0]&&{geoJson:e[0].geoJSON,specialAreas:e[0].specialAreas}},t.dataTool={},t.zrender=Hb,t.number=YM,t.format=iI,t.throttle=kr,t.helper=JA,t.matrix=Sw,t.vector=cw,t.color=Ww,t.parseGeoJSON=tD,t.parseGeoJson=oD,t.util=aD,t.graphic=rD,t.List=gA,t.Model=Po,t.Axis=nD,t.env=U_}); diff --git a/web/views/client/edit.html b/web/views/client/edit.html index f9518c6..fbfc852 100755 --- a/web/views/client/edit.html +++ b/web/views/client/edit.html @@ -1,7 +1,7 @@
-

添加

+

修改

diff --git a/web/views/index/add.html b/web/views/index/add.html index 96fd935..c1eb1e6 100755 --- a/web/views/index/add.html +++ b/web/views/index/add.html @@ -1,12 +1,4 @@
-
-
-
- - -
-
-

添加

diff --git a/web/views/index/edit.html b/web/views/index/edit.html index 670f603..407e888 100755 --- a/web/views/index/edit.html +++ b/web/views/index/edit.html @@ -1,7 +1,7 @@
-

添加

+

修改

diff --git a/web/views/index/hadd.html b/web/views/index/hadd.html index 530012d..98b66aa 100755 --- a/web/views/index/hadd.html +++ b/web/views/index/hadd.html @@ -20,7 +20,7 @@
+ placeholder="内网隧道目标,例如10.1.50.203:22,如需负载均衡多个地址换行分隔">