From 3c77228c6013f6d20e250043d68af5259f4ae3b8 Mon Sep 17 00:00:00 2001 From: unknown <331404948@qq.com> Date: Mon, 12 Aug 2024 18:55:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B6=E8=97=8F=E5=A4=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/nodata/nodata.vue | 38 + components/oneBtn/oneBtn.vue | 37 + components/privacyRadion/privacyRadion.vue | 48 + components/searchRow/searchRow.vue | 73 + pages.json | 29 +- pages/exercises/beforeExam/beforeExam.vue | 131 + .../brushQuestions/brushQuestions - 副本 (2).vue | 262 - .../brushQuestions/brushQuestions - 副本.vue | 162 - pages/exercises/brushQuestions/brushQuestions.vue | 7 +- pages/exercises/exam/exam.vue | 64 +- pages/exercises/examResults/examResults.vue | 186 + pages/exercises/wrongQuestion/wrongQuestion.vue | 196 + static/css/app.scss | 7 + static/images/avatarbg.png | Bin 0 -> 21440 bytes static/images/backIcon.png | Bin 0 -> 2343 bytes static/images/beforeExamebg.png | Bin 0 -> 444971 bytes static/images/topbg.png | Bin 0 -> 71413 bytes uni_modules/qiun-data-charts/changelog.md | 320 + .../qiun-data-charts/qiun-data-charts.vue | 1618 ++++ .../components/qiun-error/qiun-error.vue | 46 + .../components/qiun-loading/loading1.vue | 162 + .../components/qiun-loading/loading2.vue | 170 + .../components/qiun-loading/loading3.vue | 173 + .../components/qiun-loading/loading4.vue | 222 + .../components/qiun-loading/loading5.vue | 229 + .../components/qiun-loading/qiun-loading.vue | 36 + .../js_sdk/u-charts/config-echarts.js | 422 ++ .../js_sdk/u-charts/config-ucharts.js | 606 ++ .../qiun-data-charts/js_sdk/u-charts/readme.md | 5 + .../qiun-data-charts/js_sdk/u-charts/u-charts.js | 7706 ++++++++++++++++++++ .../js_sdk/u-charts/u-charts.min.js | 18 + uni_modules/qiun-data-charts/license.md | 201 + uni_modules/qiun-data-charts/package.json | 80 + uni_modules/qiun-data-charts/readme.md | 84 + .../static/app-plus/echarts.min.js | 23 + .../qiun-data-charts/static/h5/echarts.min.js | 23 + utils/utils.js | 38 +- 37 files changed, 12938 insertions(+), 484 deletions(-) create mode 100644 components/nodata/nodata.vue create mode 100644 components/oneBtn/oneBtn.vue create mode 100644 components/privacyRadion/privacyRadion.vue create mode 100644 components/searchRow/searchRow.vue create mode 100644 pages/exercises/beforeExam/beforeExam.vue delete mode 100644 pages/exercises/brushQuestions/brushQuestions - 副本 (2).vue delete mode 100644 pages/exercises/brushQuestions/brushQuestions - 副本.vue create mode 100644 pages/exercises/examResults/examResults.vue create mode 100644 pages/exercises/wrongQuestion/wrongQuestion.vue create mode 100644 static/images/avatarbg.png create mode 100644 static/images/backIcon.png create mode 100644 static/images/beforeExamebg.png create mode 100644 static/images/topbg.png create mode 100644 uni_modules/qiun-data-charts/changelog.md create mode 100644 uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue create mode 100644 uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue create mode 100644 uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue create mode 100644 uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue create mode 100644 uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue create mode 100644 uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue create mode 100644 uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue create mode 100644 uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue create mode 100644 uni_modules/qiun-data-charts/js_sdk/u-charts/config-echarts.js create mode 100644 uni_modules/qiun-data-charts/js_sdk/u-charts/config-ucharts.js create mode 100644 uni_modules/qiun-data-charts/js_sdk/u-charts/readme.md create mode 100644 uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js create mode 100644 uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.min.js create mode 100644 uni_modules/qiun-data-charts/license.md create mode 100644 uni_modules/qiun-data-charts/package.json create mode 100644 uni_modules/qiun-data-charts/readme.md create mode 100644 uni_modules/qiun-data-charts/static/app-plus/echarts.min.js create mode 100644 uni_modules/qiun-data-charts/static/h5/echarts.min.js diff --git a/components/nodata/nodata.vue b/components/nodata/nodata.vue new file mode 100644 index 0000000..68534fd --- /dev/null +++ b/components/nodata/nodata.vue @@ -0,0 +1,38 @@ + + + + + \ No newline at end of file diff --git a/components/oneBtn/oneBtn.vue b/components/oneBtn/oneBtn.vue new file mode 100644 index 0000000..2714cab --- /dev/null +++ b/components/oneBtn/oneBtn.vue @@ -0,0 +1,37 @@ + + + + + \ No newline at end of file diff --git a/components/privacyRadion/privacyRadion.vue b/components/privacyRadion/privacyRadion.vue new file mode 100644 index 0000000..6190570 --- /dev/null +++ b/components/privacyRadion/privacyRadion.vue @@ -0,0 +1,48 @@ + + + + + \ No newline at end of file diff --git a/components/searchRow/searchRow.vue b/components/searchRow/searchRow.vue new file mode 100644 index 0000000..14be7e5 --- /dev/null +++ b/components/searchRow/searchRow.vue @@ -0,0 +1,73 @@ + + + + + \ No newline at end of file diff --git a/pages.json b/pages.json index d43daca..e3e4df8 100644 --- a/pages.json +++ b/pages.json @@ -27,7 +27,6 @@ "enablePullDownRefresh": false, "backgroundTextStyle": "dark" , "navigationStyle": "custom" - // "landscape": true } }, { @@ -37,7 +36,33 @@ "enablePullDownRefresh": false, "backgroundTextStyle": "dark" , "navigationStyle": "custom" - // "landscape": true + } + }, + { + "path": "beforeExam/beforeExam", + "style": { + "navigationBarTitleText": "考试须知", + "enablePullDownRefresh": false, + "backgroundTextStyle": "dark" , + "navigationStyle": "custom" + } + }, + { + "path": "examResults/examResults", + "style": { + "navigationBarTitleText": "模拟考试成绩", + "enablePullDownRefresh": false, + "backgroundTextStyle": "dark" , + "navigationStyle": "custom" + } + }, + { + "path": "wrongQuestion/wrongQuestion", + "style": { + "navigationBarTitleText": "模拟考试成绩", + "enablePullDownRefresh": false, + "backgroundTextStyle": "dark" , + "navigationStyle": "custom" } } diff --git a/pages/exercises/beforeExam/beforeExam.vue b/pages/exercises/beforeExam/beforeExam.vue new file mode 100644 index 0000000..a93c3ab --- /dev/null +++ b/pages/exercises/beforeExam/beforeExam.vue @@ -0,0 +1,131 @@ + + + + + \ No newline at end of file diff --git a/pages/exercises/brushQuestions/brushQuestions - 副本 (2).vue b/pages/exercises/brushQuestions/brushQuestions - 副本 (2).vue deleted file mode 100644 index 28ef1f8..0000000 --- a/pages/exercises/brushQuestions/brushQuestions - 副本 (2).vue +++ /dev/null @@ -1,262 +0,0 @@ - - - - - \ No newline at end of file diff --git a/pages/exercises/brushQuestions/brushQuestions - 副本.vue b/pages/exercises/brushQuestions/brushQuestions - 副本.vue deleted file mode 100644 index c08aaa4..0000000 --- a/pages/exercises/brushQuestions/brushQuestions - 副本.vue +++ /dev/null @@ -1,162 +0,0 @@ - - - - - \ No newline at end of file diff --git a/pages/exercises/brushQuestions/brushQuestions.vue b/pages/exercises/brushQuestions/brushQuestions.vue index 581ba9a..f7e8236 100644 --- a/pages/exercises/brushQuestions/brushQuestions.vue +++ b/pages/exercises/brushQuestions/brushQuestions.vue @@ -51,7 +51,12 @@ }, goEmam() { uni.navigateTo({ - url: '/pages/exercises/exam/exam' + // url: '/pages/exercises/exam/exam', + // url: '/pages/exercises/beforeExam/beforeExam', + // url: '/pages/exercises/examResults/examResults', + url: '/pages/exercises/wrongQuestion/wrongQuestion', + + }) } } diff --git a/pages/exercises/exam/exam.vue b/pages/exercises/exam/exam.vue index 6b21b22..e7e72cf 100644 --- a/pages/exercises/exam/exam.vue +++ b/pages/exercises/exam/exam.vue @@ -53,7 +53,7 @@ {{index+1}}列 - {{index+1}} 行 + {{index+1}}行 {{ item2 }} @@ -100,56 +100,19 @@ - - \ No newline at end of file diff --git a/pages/exercises/wrongQuestion/wrongQuestion.vue b/pages/exercises/wrongQuestion/wrongQuestion.vue new file mode 100644 index 0000000..b922c2d --- /dev/null +++ b/pages/exercises/wrongQuestion/wrongQuestion.vue @@ -0,0 +1,196 @@ + + + + + \ No newline at end of file diff --git a/static/css/app.scss b/static/css/app.scss index 863ab82..6f12b93 100644 --- a/static/css/app.scss +++ b/static/css/app.scss @@ -3,6 +3,7 @@ page { background-color: #fff; font-size: 32rpx; + color: #333; font-family: -apple-system-font, Helvetica Neue, Helvetica, sans-serif; } view { @@ -41,4 +42,10 @@ view { .padding { padding: 0 20px; +} + +image { + display: block; + width: 100%; + height: 100%; } \ No newline at end of file diff --git a/static/images/avatarbg.png b/static/images/avatarbg.png new file mode 100644 index 0000000000000000000000000000000000000000..a1de1b97867ab3323d029bcba4babc6a2b5aad8e GIT binary patch literal 21440 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≧3|$TYrClOE5lc}nzdR3=_ zJFA6kvJ7Z%qmG7bu#HTPKj(@lFm76W`}+EJW@KbM zCPm6_x4+_aIy*H&aKaW}>Y+<)EC+x~mo9CXKYxC}N<4o2cx`EEDTiUyrU{$Oseqx! z9D=pKjg5`nF_}!iR~bFoV-D2A(1SMZ?d@xFb94QQVH(Vd$R4y2AEcp2z1TmUmzVc6 zm2GQlYb-1*d|Sm881bkVbzz-^>3+_R{FsTuhG#>ar4VXXP6TXf+!cs=+*Jfo^X@GJ zE%%rQu4&8E$bXn8I?*dE-a2*YLj{z2R{Hlac5wb26Rh zv&y1K0VGp`$ENgqWJ!phiw6JK>c=!yM7`P307yu9%I-n{_r(uBVKx0HfDeU}f+I31 zS^&k}Ia^49MI_W<7xRqOFDE)+CzQ^y04VZgL5gW6uF7~Ko=eR`b-s;7X(a#@zl(IZ z4SP(A1SH0`OvFZX)Lk&3l>$)YJ#`3eEX!HAm-$4N2Ii{W`5J+)adQl^uT4`2aYyik z!(GbH#MDvn3V}KG&j=I(Qe+eE-(m0*K)^|CrC?%{t_LFp!~8pp{{mE6YW(ZS;ynNW N002ovPDHLkV1llVZEFAk literal 0 HcmV?d00001 diff --git a/static/images/beforeExamebg.png b/static/images/beforeExamebg.png new file mode 100644 index 0000000000000000000000000000000000000000..705ca2b3ae043f44ff3165aa6d4729eeeee4d8d3 GIT binary patch literal 444971 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¬XHH)#-bkXHy9pQeh$o}C*5*hsuS`{ikqw`0 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

CD{-Ov`m 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

44KzcJAcnW*xHI+Dkwr?pm9qVY7KD z8K>HNcAkt|7qW2~%U`x3f&gBur8jH}L9Ex@fi*3x;qPzD{`GBndEGDjmltk~*#mn@ zc6(#Nm31Nj`W%PIHk{v51@pH6ys}|LH`wT205y@VDf2-BjMGZ9I44Z=jMoO_#VmJM z*UR1G!}9d)+w$$V@5|G-r{(eCak;;LSnlqzIp$WGc(0cWY!(Or-mgUfy#M2Wct@_t zKC0_30hJU04<#Camq8xWrFCtW2|h!}H$g_fE&DwHyeNJYy=+ckDCqFI7%fpMpqnjA zf>TpbVeXPL2!TinMrS);3n%Jp?=PB6{DSbcehg0yNAsY);&xpa+m1N^Z+T&!V_CeH z>dF}dsrj;+-ja2sYH_lfakV%qg0G)c1_SjiVeMv@A%hGXcDFrkyObfu9&^=9>#ue2tMHNGa{9GN21`o-&YTGzD zhb+g`-L!hvR*m0ocO27PZ`$it$RJ4HE|1p)@OJ0v;$je|{aShd5XJ-I@-^eM^^wPr`2Z413Dr4lE)h8^ptoRfc*V~$>w!z+JH4ieQ>-D#q@G&V+u<$D>i>i8F8AjrwcPxs1?eftC#ZCiB7g zqKWyRrAe56Wz0gkv)w+s^@G*P959a+jU3Gkz0x$ z=baUE(Fli zNS8f%6Ej!7Q0T{E|6t759_`Nw3|je`ePO^IJD=DAGU8=sP666D0I#v-$ulqk?gF?1 zVBWj2+#~?6f%pWpnTE{|d8jsn?Gl)T?*xeF5+ne<0>A^VN8!y zW3>Z)RXvzV1;BR!)?9r%xib8LHCMoR03ZWgdI1oZ%Aw#nuyzv6x?8RVz^edKd(H@4 zi~w7~7Wlk8zx=W6pI?QE7yVPOto;F+O!I31ctr<>k+El(t}saUNXPuMSHt~MllT{W zs;tZPnPM6<0bBuE1RE)U%U1&8-CYAr2;ix)xsp+rSY#3_$x~55NvRJ3fGf{U)z8vf zOrzgg-GKLVvngjuu+@hET8)jCET?4P1t{AXF=eviL%FCD0GHTXfxC%?Sr@H)c1(6& zFx@IYT)KbD(sa*&XDDVWt*aRtB&FfRaWZwlZQaGH$H z|B2s|c~?Ms0CEQVDxeb+*7F2QD?=-IR+b0XtT0|0E3^Q!*@n#8#yY9bxk31-gV{4Q z0veV1SD&j}<-%v=`UKq=Ho?FwAY%H4L>4PT-Lu%4dQ_~Oz;jr;p9|u|C zp({77tUo;a#}C<)p%RT53fhK05uAS`ue9Icwf5Hpt_!Q~*M-OqKp_Bx_>CC?uq)>Y zh!^d_@T;u7VD5#zG@eKtD4tcPrLDkOlal~m1!KbB_07T%CHbD5ql8B}$W8)y)whb8 zl>TDZarrads9;IXVTL}cBxjkmR5OT=|AtRUFbRv*?d!!9DQr_k7r?8UOb)~%CQQ%P zMVgieD|4ai3^j^aoN$cC7GFZ%=Nyb&jSTLF6EUnv{(B9;oAJ{*hjC`6A8xW>{3F0y z=Bcqxd`8)LHF9JZv)MV>V}5XX!;KkBm%trYX_b4c;4nl&tF3iIk;Z(t^MfjvWFWw#3pr-RsVwZUS-^_H+HIW&CuigE z_;0efyCs*401vLwbne$v>LqTun6`nkcc7pLila6Jj^`#eT& z>CXx0_ijX2>wePuvrEU~XLyiML-g0yLoHEDGmYr$^GX>c~@KXRab=Q1$5V!W3Z6FoT<~_ zJ@BAvpzG*%yy<1de0!ZV<6+8O*|(Y?rm9mb*Lfg#W+zAlTc%>m#~c4Zb-d>5+*vFO zFPI!E!NL7_>Mx`ky;j0$1P#w7YkkiKsQ%nbpPGLb+MDY@rtdE%K$0l{~U}NY1(Jdx#&~Fm!V6fGuQ4Vfw_fBU!82Q6iZy5C# z5mtuo1i+$ z>O>>X3_EMqVZJI~Xer|nm5{>@?og8TNnfrt3wcR?+t@dwfrvMuD>gVcO319f< zYrIwscaMWAba5vZS394-`Mf}ZyvmfC8B-0Eri><%rK;hyf*lmbC+3QP020zDpn`z9RsS;5`6n2s|W!m&}4nW+SYGWZ0B*6>v%R zP6P4~xGZd^mjL@I&kvp(US0?&4}d-a@Pe6E7<~zz!jEY0gW$f`m*?gA`49R1_O@4W zaJEs%j|sqQPgy<{k0-EYiNoSvsynIP6TPEWS5`|I#!}!XXi3M+r567V&vO)aD@TOc z(->;?b?lhu?sB=g0UNIZc;!{$_J(d{Ru!A->(C)AX_yJXZ2=YmxKaQn-`-7I0l+KM zOFU=n9}LNSBRHP}8-SN=q&6>|U3xf~L2Up(@)hMu_4%**7`;#ZUD$iw zaebq!f#fKI`m%iB^Jf1qu#+l?j5-A93;J{b-gg7=S|V1vTo?oI6+yC9-j$7)>xVYr@-grs7phrCR-u5Lty2Z?>KYJy805k^V2l(zm;#3Z zZo|(zL2d%jQy{Oe*Rrqvf9$>4awN&JBo+WNu~zlD|Nl!IZXYm1;pNkekU}9TbGxup zOjXU?e2FcQsO20~3mV8s4`0k}^Kf;Ir6i<0!vHWG;Q06Ha5a%N`r2Mge?46tuBcJa zSNaKm_Q7lJ=eX|=8#geW**O5bH^H`Tb8UhIK+iyg_Ve-xJQ@JJha(uejky;9UIX%i z$+rOgsi)2qUI&42iGFxMGNr#FBQ_5ph@ll&2FEM7t?S@}u6JQ(W}njmpkBU*a=9)W zK$qGk=Un}E9e0LPD+icn0J&9sX}?SgFiKCuCYuDmvb2HPRNt?y@r7}$>vSjVjK?~R zF^K!cw+2mX!GEPNn4iJ4)r@w2BZSKr8HnFl;Vlk1z6FGJ>7W7*HYmnAm?YS;t2rz^ zfG%{0M%o@WiquVj`_4`S(-iVxkmU_H`11TbJw86-$AG+c=ml6*%P$PTYuBEQb@v$n zU$BRZQ9OpCN3#GhyNWskuRtcuPR*6$s${ zKVE==#i&rGNIbwp@Pl;XP614Mb(Q9^69r>BKLhbn*ft5IW9La54U$;_srlm!0`W@@ z;KjKwJNbcj>Fi%kFz9f4O@o7^5L-0)8b%q7SQp{kK!i;{Qy}f=kDo|s)r&^rFL20N zZ*gGdp3=DIr3D%66W>k<6}x}kx0iRtFKw6Pr#7MRdkDV zqIW|x=DYE-5&?mObqHkw*Vm9buGvc8;=zZnV^Ldl6otW`|?R@$Av{;pwEeUuf%|Yarpk5jz%KD}ku+mx_YihaN2F1FgP&Bzvgh z^w#0;QuwWvs@z8hg8^;m;5phE4Q;93LAP)zeBKUOowNTN#I@eDbsxW8$9YPeWjN>Q z%4{urrf)Q!J@Us*Ux+_!|7()}HR!`iX#*xKr&M)Qo?+S2}KE8R!DP2?^K_AI?u5n-aK!SWt0VLmyc|&Y_H@tmR}O^ zxrM*6OH0Lamz+OjOE-VEm}3pHrE_PH%fC_;n9C&BQ&re?;>^0y0{-e0z3q4Id|qt% zbpj#z&pSGox7&4~F>nv?7I=p~yEq-Si02F5dh9@%%v{0e4GE2FnY8xDp5-pA?j$A6z5AAbaZS2VSp5nF@V zp0OBSxz;OhI_2J^_Whkm+6it0z?+OW19<(>MgZa1$NaC-ghW(Lf+MmwI?x$7nkxf0 z`gqw_G9-#g74z-;V1zXV1GMuuJJW4!_ay+Y-3#5L4myArSRAk<8@`AjE6*(mY9tG7 z;x}d639(8-CW5vdz#S%$7?H@{OmiWIt*nwOhD+6VWqZXSOmt!>+L{C8vb<~C=3J1u z*Z^eGU&B4&b@BXpHD+tPHeDcO$219`C(7T(#?zx-cMHM5%l^H;Q>MUJgAH2xpZ2$b zVZ;5@6cgt=UhVGSK7v_Mquy!@lo!~LH9la$_(Pz)$RRa8%%_dh_a~h^3r)U3t_kuE z*JC~4wR8yC?$dt#@#=CqUK>mH^>n5}<%)2)R(!ZH* zu5SPYCi6D^hKU0JUSkS<`~kL5uz#9=IM{s!z)QeCeTD&vjgc25m;hi>Q|f=tR;*D= z7vsPJK*3i5LMKbFv%(g@zT1PFyj)9as!wJC^vosNu7&^L+vR7!Rvk_n715~Kg9bb8 z(!b=d`Y@a0T_-|bXm0A)PYc02`O>ILq@-SV?Chs%`VmDk7xq@kxRU|PS5U>7Su@{b zItRvR97@oEf$9K;AO2_#$T-+O3n|8-!v`$^!Dz1XfGcs<^J8BXPfEXo;yNUNnEm=X zJw889fB*e=0C=Cp@(w=%@UAi0J1ejG5*-dnX%5b25T>fpd1T-K=yMHcD#l&0fqUM7 z-#CZ_uUGt?4#RYFtOF=y6E{FGfyd@!p5?pE2i)G?P2awKoBsOiuj%32x9R@wVS0FY znC`zlOgHzp(~TVzxIWT92te+>mjK>>ehu0O~5a0%!_>hY2R`Pl`rGDW`_) zRS7t4Q0`fQ2rg2T-YVkItY98Mpg zvLhX~A&KeWk~#PaMz*0}^HQ1t@Gb_AzP3#OUI{37H{#6JF$|}w2d$4cZRh4WUq3H^ zcQhk=#qE-of4%pw!;1&Oiva?yZi z11T2yt3Y^gMI%(g8vZfOJ;2K|kcFrr4X&MD|2)!$4D_vRxH_;?+Yigt_JvU-kTAY& zK*P1f<^Li)rTP*+*N0U@Y*n_^sX8?&`iXK}+;x`LfR{bduE#jCi~Q1^n8s9p?QCn= z>XdG}=%p8#f>Zzb@T%NZ+esEgKM!+0s&qaxM2AL7Q(Ko&rP}GstREZv$$~e@Uv2e- zGo6(JjQZ1Gqur>*p)Zzy3OiOET~z|sdbv4qgbml8suIme0F@e)$6&J}-7+16@vg0* z>-M%ZvT@RXgJNgjVB9CnUn2om{f&p2MqcvNj_DwnOLa;MRe#+*yXRugQ~2ZtlG>)n{qL$x60i);ARSkdzy7RcjTrU3Z|0$2qS$Sq3|LU#H#b+MIy=RizsQ zxbP5s7QmaFOVO__W7#99I;V`)MXI8=$vocCLT9CYyM1Hcv1PQMUFHkG``HryUFxS^ z4_wmk(!pWEu_gWdRRaj$ru`7_M|hB5F6@!7+Uh^ImRpg2`xs)Scol6ngr3iz`?eEx z@c88i6wWkFA;-49Q|4gPJ*80f*H!?p^|MWF_sAmOKT@Ljey-9jjcqA&1`V#7DbjQ- zMi7wBGzB)um3_xE^s=r(N#9SB(Am5H+gAvjQrgH^5_JA@FMBRue~n7R|8lYlPv)qWM?CAkAyq^w(OBK3~b4t z@@=e1M5h+?Z^ljuW?TY90XTLrjsbX$+4J4{;Y_fG`YQn53`{j_3gIN`GvG1C#QF}V zUz$FBfU&m%j0Z5E19%Av_5ZB<0Ps4v&j5bUkJF17c-2_7&qKI}umT!Cfx{x5tH^D{ zdY7;TlvoDA7yw9D6X>o5=#^!r096jE!oH}3cQ3h53g9#ML;+Yuy~O$u_(ak@ikx6g zPw_y7mnYM)8oqz(Z!gWd)$HnFf7KWbUz{D0^%KBLe31dzToxux;(laN0IU)0Yk+It z`-L08KCQj_T%h&9ZEsRXuO+|f z!UkKIcR5Yvc}M_C)fWKTY)nqJXh3BH&tiNAa(lvWvSAi{NWD%-&sx*IIi{)Lt*1)^ zmm5p;;d;8cz2+jF^+La<#TMS)@ud0-THFgQgp5&5)*E( zF0nuic`AU{8)#y4t5Y4qw;GJon1^@mpIzl=d#b!kCDI~24hQ6RF#J9)&jEPzttxI}(Cg#V z%vXq!*UGxz1V*$0sf6rw@TSVCoNUixv;lX`HyMu9LA=4_ zkK`rryA(zNxL5N`=R)$?cVpcZ1FwxqjJan2xA*q|@P7Yp47}f_`}+q1c^?SiCCL9s zaDON(TM~fxZ+p`LX9ayBkjWfREK=OaWw3mRX<%As9;8EY>R{MPIDev{0}KrX@F41d z*<#|(zROc4qDg)=YUG#c8C1rs56&?X1OZW;z8~%NToO(>4m5LqL4(gOB;-M?0AgK3 z8J7&qIda@S^YSc-Le+yQtj);9Xh~ z*WaxHaN6(ZUQs_coTd81UYn_#7mfGb-<7f^MAx>ufyyTJRml;y)VZQ-Bk@;&w{ldo z-#}3NRkEi9D7q&9UmdkAsbn7CrN6^?0>7$@1=%BB*q6@cY5J$ZrB3^W!bK7Jn=T22el zJllRA76%IwI6BUYv>WQ_Fi-ftB=B0=nz>A*>%lW6x7lvW@rD_j_Xa%7`e*&l=X;A{ zFsirq>DO9-Y@Ngp0K6J6n{540j^@d?B{LY^=XW*3!Q{7+Xdvwvmz&PW+VOqo7o>Ly z*vujWZzA2v`cy_)ayLq2$ycxVnXKpAi;hd?$u6#>o39vg2jIoqzcBq%WV)x#r71Y2?XJF2XU^5Z4f=D=xV5jjlS^-v z&fN5Dz5nD6jx&*uRJZZoJhHMj@H~CI@a?5^_Bb-iA2yDtF19jrpFOcn$`iS4wA<#> z1BW$EL{E~&>`k+B82g&Cudq#kbNG){U`VWUww@N)>R?MA-!8Erqug%3FgW0euR{z= zn=vl^`b{h6oyhan_66WQuRMS6+I*w`H|}L)-doeppFN_=Kf*WI|BA1y-GAdl^8<`e z?fBf&leI>-`q;I4Mt*krp1H>m8(R9LBDqIx?4BcO_@u6ksy*XWRbeoNvfZQElrq$X z_(?WozanT4D$8TeX6M)2@0W7TQD6DMi+2s5duVhn9)bH(dO4}$6F&W-`DQ}Y!+s| zTcTH90ubw9MzQk3n*;YjmR{I?u2tCyEnKll8=!g@)t=;87z zz`J1NG%%9U%CG*MD2zC~AUmh=KLJDhWt{t}X(otTz4#veaw7iQiF- zNIswBL-M(yT-C{Vyp16)}Jz^;l_HyCg=3L{|xYz-i6fnPBW0eBs3D**4?yMaha zBIuYW=mfyxz6VUES#QhPiNVx71K{n~__S}BffEqA9Ppa}UIJVlWaf;w0wD`o7YxPz z##7}9#ky&1ombF?FR$}vV%3W5VKp#uC%HOKmsiFPd7MnLoI{(35)FRhj9dC{R?%v$oPPaG4 zXn6qO6>p6PfcIs3{_$h_@%P`;kH3F_CHut~bWL~7j=;csn2uHlUTc3pUEkeIH#gS+ zNjezVe2jtepPn8Q2w3-DT}{V>`~*OGtj_>?1_UMm*TCNn_-<{|{Vy4=Vdt7`>hINb z3HEO?0z?0RVGy&gv4X=c>sQ0;Dv!UM;*obz1BklwZ*`D=>T4V z{dKs&na4S^tdW3x_lrqx>A*pb6?qxaNjb;!s>3DVJNK_MnA7KQ9t^zuZU=5GX1=~m zKOTQffB*O~Jw826&+rWd@4h}8DAvHS&j8yZ-pKz%7o@NLR_}{ook|?Z-bY4Yq zJ;~9@m6+6|c}mu4tG?KCrT28w$3CapCEa96FV~u6a$yzQq}N}$xC(S7m29w;jZvQL}KlyXbkN5@P)tn3$AnqVqR@eejt1_weSTiVb4gl{U5t{3ZV(RQe;yF1iMx8YP z?`p`Zdb_r9x&^?yFr5K}%#G&q?Y&EN6+hs5v|hT0^YviWdVaRlxmWo{$rV?-L*1yR zP#;F!!dG&(sY`juVGDub_*5T)<}jo1t7^Xk@G8mi!zES>$*-Tbq|3JC*iTh@f?OrE zO6YiUkP9GxRS1}PeL<3@yzOz-|7I|(bL@Ax&KdFVmd0Ay*!k+bJBvChmtWhTpTrz$ zO!TdZQEh!m1=^IG-f_X^N6Dejy_Wgi{3n6!wT896bl;~2D68s%#MX~*)`zTgxSXCH z+wi583J4t8>L#`%ev~OFmgS=NvX- zEo64VYo^DWCSp%xd*jT{FTa*Q?C#O;x}#nVr0CNics}%OMxm4$F1sGK}*O_y5a;s3b#ER{8eOAdmQdydwJ@uS2mYnyW za{p=f^v^$**Hh(Xe$k$8IE!kZ-F8-H?PpAClOxyZe$#>Wfp;6AK10ZhGU)ZA-p^PU zV3ZgX-3s7k_PzzgyG1~yBW>xbi&ehqC9B09wY9xz)ezHyaJB5OE${{4{k8J{*{%D= z*3WKtb9;@!ZcRTo*MEkBoqwzxU~v|`Uu=N=>#p^Ky&d_=HUGKx{mw2eoOjri`F^^L zc8;fsQKP4`C)9ZQEoYvtZoPbp{5Ri|3)VZBMIa5m|6)Mjl0P(}Zu{CgoNg>z1iq!r z=~G_aIcVx5tuH?B+&r%fV{4MUkM#9S68tBuMpE_pI+u{oG5;a$IZYcr4ftM={0we)|)#m_=8o0&500PmFLC@ck?96qAnb$FSf@ch!Oa}1gWrb7B5g5ik z`|nF*$~AUMuvI!BhwOI*13DNJ=wR~I2~=8MF`r;f0>KdwCstJlpbEfybxGhHSPu=P z2OwUVFMtH~x^H9l1Z$uH6klIrZ?FhJ07wTTT_)JnSc~n)afFyb5FHT=PT-R# z4zAw<6H5-*R|SCgMY7~Q1P7CWH$b&`jXWpN`VQO`=G?|~iTScQ^tW;Y6K^0>fxijh zb(UX&w;h-&fTy$VRsdeT&c1-J3h~p>iE5}|xehrFm>Fu}G z8US8_cLC-F3$DPbo@Y1)1?tp4D+;-RiJ1W2>ziwU;co5c`WAp*1I+Txxdz~Uot_N9 z`yc-?{rw+*Pme!-OfOFc3WSga;Jw1D>CwGQ8P`&*8>cO+&)eGDbO0hQF9CQ> z|5x(mF@Trjj?`Lp%%Huh9u5J#4tkdV>jAuMfLPr|z8!$KL}DM>V#<#%^E`U&B7TzX zfjgXs2Ed&EGQEqj_W9)%47@*n`~WEa*$%zLZwxNTr9c8;stNFx(~*J8cJD(kQLKZ~UV@RD)&`?tTQ zZvgQ=1QV|v5HP0hi!1Z*F83l!0C@kGfB*m9;ipn(AkdJ2fVYk|j`g9a@)Ll!7^2gw zJ42x+DN8k-9_2$aXXCZNX|Eix-%P*=;(eW-K_hQM@RL*EPfUh~yD~#< zLa@3I%mCC@p^Lvty^2P1vQiF`yNic=?lQSMM~!@vz|?yudTJ3KI**&>E$>dJx4=%Fnj77xt_g~ zu&2E>q3>;bSl?2I&e_?u!Tj@mzcf9cE!p+_>@(zDk7^YVr8j=mJ^AG@m3hIe#p|Cl zsnNfNx1i6ipaj206XtW!=9`e&NO<+N>WPbeXl~hb0B(oR+?LPmnDixp8LBCr!^aJ8 zqNol*?ikx=SpQm`UjW`U3H@_@|K|aCe+L6y8O&i=aNCZy&9) zJ3Ph;cY{7Y+K;dMKT!g|KsUFVtamMy?{96M>Nmq-{F-}S?*^Q|C#4JS!5;~*i_IB= zU<1UPKMQ~faG73%ZR~IW#sG_9w>uka*;nY!0DyIuz394+Z8&4|WFL(gnE%)(fOo+b ztaioZ2QVgB^z04ANha0|*ivcNz<2s?4537&>3TEC@g`*!>9TDgRaYYIDZjvd+}Irvs>^ zMQ8?U>CM*E0TCDh6C?ny0hF%w!_$r^W2>`H|FS#x142WcNHU{Ki zO_VO8rw-s1?g$Kw0&rO|pAP_P1!BCM44lh1rxIvuER|_2&e&@pNEw)cHw|~he%YK6 zH0j_}LVs8|+Oqorn3Ns~{OKSy0EAYr z3j?pSY|>T?$VXtE*u7&c#lGk$%H}aiiQWQu3+CKA1K!>RfcF3fUNVjW!29?(J^oDq z?~^g`THCTq*B7hj`sQZ3eR!B|@9(EOFk~8l_kdoRk1;mTmmdb;eFR&mvyGd+5#WC) zKSzOguT7Q*+J=~&6AUn{*$*TTWJtfk0~I0{bAJ>-UNZU~jD6Rb!4F5YV?bYj`+Eh+ z8$dlAWa*tC=)Py|hP|3DR{IO|9r<6qUXssReaKqZu~6ggTyu9W*8+GQ0GK;9u(9C? z{MqKrBC^d)wg7ld;06STt~mp*`yDWl(?1!An=_dnLW09|3BcRW{V3h9ujTxNe=D*} z*QtvH@cKas>bEm;8-Uk-3>XjgU9gc05Nmi)I|%bCc3giRFBR=FpX_J-?btdzLgrrr zcO4My0A9pc2L}gd;B6Ljv&rzwbsBY$)ZR$qtcfDi}Ev^*+1DL0KmWPIB-lfvx4ViJwlfN%GXI zSaxCNErYf|B7m^<4Z+j^ymtEJwF2-W1Tm_l;QKZig})~@fa@A4Sj@fXFJ7tOCx$q_ z7{BV{iJ_v7ynG=nAHV205 zG+(ONmz)p&OL{L;jBf_HHt$K%FNv%Iq-ny2U1|DH-=0cFo&HDrJ5`X|AIc?}p^tJUpYbQ06|AWfK?(=BuDeh->A zd&8hJaYUd7ZPrrsl)hEmw!TsQjb5)#e72{$7sZXLj5DxDoeJ*mGqW8Alc}GU@L1!z z>tmxGSH2^nQr2Gg8~&OZw|Uab=cJQ<+!y%8Rl~!BjhC-%iPxogzkP8EGq!|)@sf)f ze~pi1BoHN@&BiGOdGLruvcwB#_GQP=za}Yh*U_p{6%(q3T3C7YsAtGN8wX%!9?K>$ zVAa0VE6yxPRh{&Hvvy67I;Z_f30USzQ8TX-av`cn>@UrB2Bgcx0^33EoR}?rCx2NKtf|-!U?oNL9H$z7<8LcF&c3LDr;Lnd^Z+)MJ4M>9 zw6*~~+PfN~UQ(jp<+~LX&2refxG!svnL%QLG)viytWDe~B(L3bqMX^qmhsBxH#Iss zVYBA}jNdPrw8L4*LUxaAk2jiYcWs^9_(Rg>{5mug$FrxclYq*Y2Vqn;)_&WsI&D^-x|Tq>Sdi^Y!A(Y zTy7!%=$enR{Kidf6L`npT9eYG9kcTji{`ig8=?}NAq+>@tzoTCE z!7*K#SrhFT@@mnaux_3+v*C1XnWMJMTuPdso0nu_RU~ICQ2Cs}gVin%64PaL;Ah3R zfzaC&Dix{CzUV0a^3+I|0rDyd&Vpz^bF5pG>TI+APg>Du&d-X-)~3(8CiAKYWx8rP zh8Rg}pNVjdw}$ejsFrWy^L3iBT_-RW+?xXM;xm9U2Efx^7SXwd<<tipbn^Z^(cM{&AN5Qst`FhR;-HZ>40K+0vm6?hup zf&^5G*N?L<1CQDLxcBNxSs?WW04I_40pJASuw#y#_15t?{%Uf{(d23XP?Mtdseot+ zz$VbzSYsVLOn@6fl@7Y)Z)m+^j+}v4uXHCUTmW$NQ5FTDw}8R67YuMS^(n>x+3|)l zm&pnE9<-^*mM_TeNFi>Cn z8u;%B=G_e7HQ9>Ziu!Cr^L=jUsRNUpeb?|;WZxx#_jP)Hd6}M#!Pb~Hp9$at+wAL$ zF*=g5_m#fK@M^?onGbL|l2O+W*@AiYU`&_C>H6k&y1Bgr0M{6A0gMA^@Euq%WA`-R zt}%T+KR&@;VZXw%5q!&fZofU?758_ychm98WI>Mv0I&7km_m(#*Vsbk+@SXk-Zi~5 zz^*ay8e{k2NQPYKr`uYcbO1WwjKu*6bcRr|iUTx8a6K7!$t-<1ToN>VB!CxSUSJnw zPh~;V#}NQ?9V~8BOqoFH)n1PKZGw2ASv}4->6`XklWxt0#44nvzK)+Q?ThJK_xK|0 zjsU#=WtX$}Hdc~JH_397{e{CPwU>xs&_?cIhGD+Q=G*kue2&QG+=q7nUQaIA_zZwI zN8h|w?`N!etQmeMJPlag-7g9^p~D(rv-KZ4Boqw1 z$_*qem#&9aXFPUdJ@*%e4F<fVT8UI7lIX!h;QVK#2Y4x}X4f@mWmc{7ya({>1^o zVhOhIuP&wo7Ro^atmIwb;l^8yYkqhz}n zUw%l%K{DvrAD3*adfmCkkARebd~N2Y_YSa4y|W%|7mEA>rLIlfdlZUL=MO5JHu34X zt4at~SaFi+>*!~$#S_J$2jayrxPezM)vvp>d3KL>Tuo=XcGapkUWuUjF3Yt!(Nxd* zSOD$}x^H7Xa_0sD>gF{^J^h{ZitUAxmu8z_N!OVE?TeK&v)yirEGR{MwJ>+drb_qI zK$@wlPYk62&gorcv!$=65)L3h2Giv(ullI z<1*#+t%G}Q?F`KY}dH}9w0#i?x#}Sk0y8ejs<^;8%Q3CA{J~fQiVXm6D~VVk&LzmGjqpx6ZTmQ8PNT z#id7|=QOMC&!#FX3t71%>2wcf&Ev{{YZ2PYJ3I93mBSE<1+=ELl7A0Y12o(dnEub#FWPk%?aNkJ(XM8}0b)6`&zkzT1jl1wO)VGaxMTeXCx2Q7LdQ!XY^OW0L!qySsv#{!S^x zjGC;jLw@QE)&iqfN^dZ1lhoaI`3Zw*d>I(%)J)D2s&&h`O?FRxzmrbRPDdlbJ>xrd ziudT!eEK(ReJ!TWPRZI_&Gosuo-0}2Og~k0i}$q)$96790A7JPSnto6d>=t0a7-Mp zMK4kj{8_OM^670oWWM^HTflZlyI(rHiur`;SW~D^X!4(?%Acu+1EI}Lop&qpLEal? z)e+XW`q}8;kl;QyZVffE&~wT}6;=Se0pun4E_QRo#7lCT!nzB>8Zl^+B~M^802B$9 z>YR@HN&S^q~xtzG&nwAvB82 z!9^IS1N`c_M70jmf-a~n>@yOS90~?-5+zHJHOo5CkNcbsP$p2&{i(g0oLC?Np@7fP z>%#Fo-7wOS<&{`?fq*vH6%&KeR`g z02oyTj(0tET#>$uSGv=D^doylSF8@73pcH#6MmAe-q8ya6fCLQHFwMp_r+{{1n^#6 z-HL(t2=-M1lnG`nd*}qz62MFQ4kS}lAl~Ek?R2;nh!uctW1HKnD+9hB z0N}m5CxF)&eVx(P#som&({nI|0t5&hxFlfLK(q#|bnv(Vi4ABA-Q@28-N&;^&RqfU z(w~x{)BuMsI3VD%MSF(1vvC77EY{!S0l?+!BN>3LUDyX0sY`t7-dLU=x&gPvXI4ZY zWB|FSIn9RLr6)GmNMS?&sJzu1jk4=%Q#bdAaeV|5*dNpP?(?+-Z`EFV*Z<lyFy+2w5ZX#n2)hv}OEcmMh}eK+>q z`+NA7o4dQ|`e*>&gXS-jz)~Lo;QgQe_y0Qpyo%&V20&k50adFP5>`a(9ZzyzD&i@A+!cwJ%Pthr6D|kv7KD_am7}klb7swJ!7Jxop{=A2b+WH;!tdsqNY|;zsSb#< z@y?BrZTYy>rH$Jfx4-WGE0ngn>CtN3>u}-j0T#h;66w+tB2UI^H(NK}2IRJD)$o%( zlz1~7O!Y7$lz+=?EtSat-X*2-I_kM==WH2#r3W;*JMHwXBoRwYg(Ll0)2ZZIRs@;H zJ(u0A0eDC9U9rWrr6mz5s7XcnUYH*`w*nEhPGKn8wC z3uJElT#0Fr^LO@qQ8chbRI#bD~^VzUSld{i9K3@BOr&Iv9-o#ztM3GiW!|!2=Z3ycRG9v8&j^ z-cieERJU#Ez@In23t{R6p*1=%<8Q|mZ;|gpmp*v=(5K^KUg!M8`Q4dc^uzCi&8YWF zVms$(MK zpE9VGN`D6c?^2$VO|MSJHc0C;Wj^N<2G{Eyk@{&@RlI-2VE>4IFs2>DTo13!TBMb7 zJ3MDs$>mZR{Mn3gZQ_>SlC^gC2ftsHWxKvwYHzi&<<5>|`@!LT-TpBNG`k)jtL!J- z9nTLwsEX(7YU@DsoIsc7p0S*-{hc*+zH21NPZsW;>i@JBg4|;JZB%+|ZxZB00a=usRnpl~+3g@QR~@ zBv0*LX5@Z9dz`C+_$u%xNT5-hydOZINIQs?__PVY+tgVBNehaWY`gxMZ!jhkuk|4@ z@v0oz?re|C81jg(0Mi`+rw-(8_SBs`&RvC^wf(Z8^M%_!W~VI^fcO11-f)RF3~UL; z&KCkp1rjQtF;$*0tRUhs237lk?6~3QV&^^|-^f|eEVlnAkSV};@6!RGUjl^umE6wo z=Y0dX7~_1O-f&RJ$%6_c(NUVN2M&tN0I$pF4&!Yv?P3f1(0KrAp63-s$iMkh@2 z0~0trK^SuAANNoh`>dQ}fdDwxf)oH?Fe4MxXuprne43bev9lR0xav>5{ygcw=@uH~ z%n(~#a7ZNcEexlox5j>%_y8-TgC@#WYz{AsJvwhmIoJ#`C8maZjjlt5=n8LCPkWtp z)H8wDWO3#^7b@}2Bed(3>x=f=0pLAM7nj%5<>ifjAE(O;GRQiB*|B55k!jBuZOQ%( zzvWHyxy>E+o#dV2Nz^Xv3xpAA?mCf>r*>;QYpyNugjQ||&K0dHaY+Sfl^68L(&zL{=sAEvv9hw0|_b~+ph1jd`;!M;ntAsKuH zBERCj_%YzDYzPd{0W7ENfEjKQ609?Mg zK1?^p!V3oCLokJBJE;Q<{f7Hq_Zx&E@+wQvs|0}EUzBWDU0Uh zxlWi^KM{U027fI&nS1$)0hW!QP%{wfKpmAuf zH*;~u6Z+XW6!z1OyCh@_J4URwy0v^jR~P0q`tJ6%Qhs&})fX**ciUZFs_R0?JINzg z*#`U;)He*oMcuaocsH2FtPPEGl59hH0@c!7gYp~Y>sD`Om0eP6>tD9FqCi?^H!S0E z;&U|3@~!kO<94~MNnPu@pOV8|)XS}P-vV@1rZfQWoB+H?(DAAq#US&Qb`sZ51ZvU9 z)wLF#79+4|&GBMhTf*(9g?FX%=~g~38J$d{vmTji=vsb`lIxTVT_g&TX%6bXvyJ+( zQ=YEbsq;|HuGasOD$INpc|hBikI$<2)C+%C71c(c4}DbOFM1{4(r&mmv0*p}cfh&H zM%C-CttsrxRCIBDGz;rw`q|i`Un3uhYuo#}&&z*a>3&Q#_`e@hJ;pVFPp``(D@-as ztCwS&XeBf6NosdKf8S~if8;#RYS5P9uBu-?VY*iM0}X!Q*7;tgJSpn`8FtLZ@&@Yq z@aB&t*5ljX|NVE2CAzhTYg+P|-$%^<%tp4>y*}w%Yf9xdYjzGk!ysHv19>k_ zL0-71UvmInucu{Ns)n<{ckNK0Va~p{y=|!{<9YmVZi4%{Qzo!Hshh{VxgguyTYRzn z&dLTOUV6Ut8Cw5U=duL;SOD*K^ZQ9Eko}tdt?o?wzGCo`X1b5> zi|g}vep_aFM5tijlD(2(zB--yh;Tno3|}?RNMMga|3o3q>FKI=wGOQgvm2h>5|rrw zc)NXedawfEC7}*KU+8y$eB~z!$kc#wV&Dt_uYq~N$Ri{n+jT5T;0C-qMtB-~YwpF> zHv{ilAB@?SbhKhrGsHz=3wBVkkR+&DZj|6pW9}@Vz<>+8>jF@>yziK|^B|^!N3SlY z1mHDHu~>M;N~_m#iV4`|s~H!=Y=Q7PP?dXoUm}5#uVh8mC;|(^Z_%#UM*-kH9;YKfmBvWQe);~i%Nigq14xQNkzir= zn?OYEtO7i23iM8(vLxy3#nfw)rNh2?uT3ZF&^|fA-PMG~^s(s#tOa3HV%r54N%$fn zx&?Ahj;nDX@mALg(Cf-n?z7RlW`Lw>GGG}2ycZV+G$Vl5ew+Q+J~*-Og&o%i411Ub z@EQPC47`%Nf%y!q3Xm-Tb_7zx4#9@)OwtBk4G$5#yznPvlAH`Qi#`FMPmCIL*1_Xo z_!ScT${4i;0=_Ut+rxA`+)OvO_tT95c<*kes{_3i7<`|e&`$&Mnw^66+1P)N*97k# z37Q4SS=a!uq@oSOo6+(L3u?WuM2wl3eqUcEV<$}azCE7kt z*Efgh=Gs_z#X>9)FZ<&R%IpJe+x{-{bVYAQjC?Ryfi z3QuEtk7~*RAG_i>NC0cimqVv%M;LbYzaVinf3M#nb@fL80j;?--xD4kZ2a_z2H+(V zK5fy)!9xLvClIKyy1%UTI{g?j}0N$c^E@I6zLq@(~n1yU%^QB%TxvbRgfV;Yw=Dh-G zQNaCZO4(6URHL!8rW0BTNTHCbT^*>B^61n+)-&JbxvK9fPMBRgHDLOEUi-3~D%s`3 z<*9j3r)iXR{gphtvgm&~xwfhfD!{hZ0mnN1UkSLyY9L z5VDXMyQ}rz=_H>s@iKAM>viG=^-HIK{Pj6_B}(Y#{NqI{V<$Xa&D)Y?%{K<{y6(1P z_fZD;x3UvGS4q<9aMeiUYjM_0@JUhShu!zZZLR;R>PxfGu$TAKDETCN%|MGHXIFu` z248B<19-DW#9EpPg{pEeWhZLwPs*I5#$d|4XWc7J^w1(Cp6x?_k3h%a_8Qf%u7@4; z9xThQ^~*_pXAEnrhdpz-nKT2Js}suEf#syhD_B@n20L<+nQjZah@8=5)Hp);Toik1 z%C#MD#-Wd6-&TE@1e4wSg7{}dS=})n)tTq?9M#q7$Nm~;;s>7lWZxqXP;7OFgj#`* z>fTXZH^>N%rNdrb-Sn23pA+F&Q0^0(^aN`oifq(oeJrGFu?;2-Kw!%xe`KWSwg<<# zipB!o(zQmbcJ{PscWrsGqeJH@`eC`W-540pQcp)}+Ub*3uv6~mkxo;~*@g89y|g}V zk=48dtJd`%esdBssD72nbBo_^y42@KDc1{|-|2`wj;~67B*Qhijsp5jz#6UN$0ycS zd-|aQBb6Rpi%UDjy{&J#(niK@pz3s61yY~e7q73)TJ#aRo=cAuQl;^rqHFr<-Q5yD7l+0Q_?)x0pCY9cO#6H+pINBFWO8eRR z(AB^3Sgmz2gG7|W)G0w>t@Kp6Z7w$1xBAsn_4ez&{Suf-tv71O{`Pjx*zBx(~o5tsP0@Sq>RPOvxF^$MI4^zzSDD)=Ytt^_Ecp0r5isB7umB z!B<@e9^2lI?Qz-zKKfUN0;0b~!HYsW2lv-AP<1?;Op+|LBJ&rbv#TEDG-mj|-l9u15q241rpNBe^)QUGDQP5`-V(to?~g%7i_8%_;? zVZ*ISW&{dKUuC<{cY&749(E$0$pD-@Dk6i&PVQ%kCJ%ot^G&-6rs7pN`)e)!*60N*O>+acweVC z=&}I3rr*y`)05b(U!Dk%2U|7{e9({3OPQ@kz|b`@!XtK?r}3Pj))yz#gCCH;2a~zj z%sp>{d@e1Ypq)Ap9|r@(0B)F0!NxA~Eqo9pT3=63r2{oC~IukX{h zzX;^LyStxmZ*Sl;F0T&s$;}&>UEVjx%jx1j{pbG%05AS^2IkkLavFOHjRn!f@yx8u zQWOXfYSwo6S=Cj6c!fTWlQAtw)gN{X^sAGN6HW5~03ZNKL_t(Xp?h%}M?HR@NNsFj z-WNL+MT%xB1OdDN;)?qG>Vl^={GrVMTb)aG3&9>?}YSv-TX?#0O?lxw& zvzbPy`J=zKA)l8G?^YL#F35TlfY*Yx9!t0@l*gg}6;Rg!yXKC;1YhDI7Y%Aq3opDj z2MdQfd27d4x+%}@_`*ux6PPrC1#5Q09b( zaPY3$sHROt^0fknt37K6{!Pl0J-d(1-D!0WtdX53KefN(r|Lmi@-UVAuR2~^Ni(|* z*qLn%yA$bWBbl;+&-#Mt>CF$zk3fJv2KTR1$$RI!%%na&o@`Ge|qxpnQWW%6VmzEd&rx)5H z%7_CWn6f|O);WV2biVSGt4YqFf@Fa09Gp^J-9rDQB-Fj@${r0^(uAQ$sT@o8+qIG| zJmeS!ldR{SL~L{!o2NLvTCdAXx(RC<-!0N)=zBnRc`zPIHV^QRu*jKCu1&zm`8G>Q z$f>Po_r#r9h=U0|a|<73iC}K`0klcR%Bnsv%kYO*v^e;`Q-V zm3u6o751E-t?6Hr5JdeO`?trpd`wYx-(AJ0jl-EubmEIHInp=jx>y^!_}NZq6F}$V z>3HbwZt6|QnFOs_77S}_Wn`bT`s|ir-O941pTf4cWS~`=FsnNs98y{kE!Pxz3VPDh z2+ZbZbLQ)2`|-qXw_SbRur7gB5bv5>UT@-jB^Fh;c%>?%UNfAX>C|{IHQ-|$-+!eb zM?$b`Yrin&Wa zK2f+8fVVZ7x%fNu6=KD86eP;j`$w~T=31A=E6=sNU|>tKjxygRfR}q?#=Z*%UMIgH zd`>T4cbtR(zW|^Tg9`RuFt!pXgT1Hdt5IX};k8I<(X#WG@;SKoL#(u7)x98!6tCsB zS6*M}t(sWI`5Q3x7EDg3z^@=p^H*Y9({_XQ?))Y zggXM=0thMquY*C0EY%AisPyz%)UZWK0F{(e4G7nE+nH z<4{flWV!f*5J@by8ZsGg9S0-q^BdoE8aSPVvmmLGv7#D)_#g(}BLKVxcq2>d6~K$Y z*ht=xIdDBMmNS8j1Kg4`liiU~yX^bc?#1sVfcJemPVZ9z@LpaXz%B`Wv7dv3Qp;=R zQ8{$jK<%d2oNxO9K-X9|1=0mL&*c6pV4r|-0Kpp_qC>`9=fV7Iz|$*=(BuFR@H5zZ z1L!A^pRx5)Rcy>=&(c%V6S4Y|L0LWm%+puX_4Vy^dwVw>Z*E~1W~acAp|2bdL9nJ% z2H+**?E!4K{zi4_qL_HE9CK#4Xf|iZ0oXsy2$-!QC$jK9Jv~iN01Xp3OdFzK65%ib zyccF~2Qac43$XuO9|T-CW?*A%)sKzo02=Wtyp0|*fL|apuOBjSE%9d|<}V4s6BQjP zN6VIF0^_^pb>V9i&yqQfaXY8ym*)cTj(Sk$t=L&E7vFDLUpnR_ne5!3Hjf1G62A!M zY5N7RI5C3GG+szS9ao+v00BczxSFtjl43QY0ak}&s`0tD6n1Nc9fJDJPNByJetn*d zZTIo%Y5MW_G(G)zoE*Sw-#rUxYjKeWPCP~>A19k8(3i1vByOe>mN(E(1e&#o35`9$UhJX;m63VF7v|go8y%OcooUFEG}mgOBt=4-JEjO3mYm& zg=z2;3IZq+5$^9ckm6~Rf!$3&#RL+Hq)%hAUuZ{QRldbRC!^rxc>?GKK}8N*&YKU^ zmB`@~8vBfcR7yZiK}?}ub@IrlogIwnDvLU7dLLvh{j`%WW~dfi-8B^Bb0$9kiD%|H9C0;yxo|uA>q{TzprwxUFz^;{QhKzYy!vX) z*4y6KjIsTg@iU%`Rr1;jz!i+NYi|4ft`pvTPh2)g))wruovYr4(`mB}fn*%E2DL85 z-wiA?CI9V~L?s&vAvH{HJ7Pcb<_!$I(UksJYJ$FRi{qUU_y=yCoxz3Bt=-`2?5FWpjsC>9v1qNOK)>phI-0Hq@G9z*R}kprlD`%p zu;Ti|7aI78`KAuWsh`w^F@U#Ds?fVMNB%J{)T7E&SWP$HD$iAasDLhR90MrAGy!RC zTG>DX1t8PNbJ*mIQR6_DcYespUVYxxF;>&!6Fxb_Ja6g&X^5jAMCcj?N;PTGqUQ^N+VI)Hc(# z+1U2LLzPPlRaG`vRWdNTL3iuXZ4>DpUEEgVZ&qsO06mxg$S68%QXh79C3Ru1eeNxP zO3!%DSoNFlDu3Eac5h!lGBYdpdRI;nNAHL}Fn^048JEx8d-RbhXrj9z7+&Qk3rf%(~rRN75`u7_Hcu!ZO4db5E zjYV<$muqvf!w)(OM%*%36wIe@eM4(QU;BPX*Sn&7-%q}!t(E?McsOZ2u+|-KYi{;; z_eC4)Ywi9v-|rsaZ`1Q#9a#lqozeVvb?k(ArjzB#yKGoMj>dP=+&7GE=*6h=UnS6X zQ2u%2V1HJ(H+JVNy7X1a=@J;t(-s|BDuX(6fejU=A{$CCj(1@tKE7`)fj(Wjo9^7U zgORGL(&w?EZ3TU-#*IxQ_$u_764KCqCRKh zbp#nd6C!ApV3Z8+eKjD?OAcD#kPNdPL?I*AUf0KB-xSbPO`1t8D5 ziQyV9M1Wgo_(MHqEOtMqir5eb#k{}11H5ZMM*@GzBsd8u=%60%(izw;&?>Aw{Fxs@ zuzqpx(Kmx)D^#FgcC2OKB{0&!N=6iC@*?PvGlLn4=~aIX1LI(7pO0xG+ou5pagV)r z+!$C5ylWU72k>eiRsb}}NAGU%9m%5G!kGaGZY7IsV~;XS!oZ9KE8;cf2IMuS)T<)_ zz1IZt0>CR^IbNxb`Foz;lKvOHCSW~eR;_!pff@))d#r}Ck9mYxsSpX$8t#rhs- zHUnVRO*b4cPe5w4Co2Ldec>5TMRe5pI-mfRe+a;Pahxvf$H2R$AHnE)FP%bm_njQeKi@rN!x3hN>9Bvq?i;GvWg$gJSFr5K!sh@B)hQ~4n&nIK5 zeF|_ZLAe5HLx!d=I8hLD=x@;t5dgGDX4>QNX1YG|HTMQs28%Sngk<{!SRFw1D}eO? z-Zfw|}!2>5GdHs1vd6W3hpk#i{XNJoMk(~U@Ad|>dhpg z?n~yw>>hm7da&M_%N0FvKzFITHrXb4FMmw2Y(rl+o)ZOt7wpPpg$00DOx2jX65xUz z8!;9|+lg^a@(E12#3*%W{8vl3=7;+T>7-7%9|wRJAovEr`}j2d{rBVa_~Xa)^7ss} zJOI2FFLYQ0_7(tMXW^D@3s*`1$ozu`l+xJbm&puH_HWp;$4dE6L{~sKjs4qgw*ZID zg&2|Rvjgm(AE!rS%6=vDzRBNg&e(S!zJHtk`nP|Z{`$9nO#d(z-tPqP-rnB>^l$%w zD}6R_K3V(m?~+oyC4l$8z8h%u9RG5jSn8`4qF>Y);56;r((9zNR-$l5cBITIa#DRK zhE=p=j@vVrG(Uc>h%rO}T$J?_Lp&j609=y?4ta#rDJQhvjXqgmZ3iCPZ`}9#4nY&d zs}mhc(=Lp1K7yE#+7_UoD0Ip=iKGB!e^YYVVJV^XOD=Gnl3)-ZeZ0o#XW$fcnNK?6 zM)T6xYi6rl*NFxU+1{XpquNxPaom3E7-T!&lTDypwMk#P(t)KxyOEd9j;VGlr#-hC zD@ku|(m~(lTE2h9xpr94p0TiJBu5_{MbGsyO z6}5b6mGLr=%LC_=;0P$-=uL?No%6RjN~A7VeC{ZrBoA0Bd{yyifPn z;MBtC+b_CS3(m*g9C)ebs?=TEz`SLRSl6r4jd(@?-nF(CEq2TLryXN8XDjjZ1L1YI z?_0WI-EHaa#{S#G6sz?#{>~p>=KHET{NYk+zCwgo(XYw>TqnB;nw7+;`&G`grYxv= zFsTdk{EPQ&&ZULjRILJwrB21Tk&SIMOk?w82cXPqMtBYgwFP8;To{679 zU^}O%Tkq@@#aj8Z3~8;AH0Xt*8Dc~+%0dC{7--Z1akZ60uGYFO)z-!E^WDvAJFdu;N7%;E^ zC=E1a?4d8O&j2Xe9whoEKv@kcqfj+62`lL%2o_V`mH@MMl`VgQ!pOC3dA1DT5?2mYK)*^4+*}GJ-`H_u4Zi2$d#2gX5au`GBvZGXs>c) zH6~;fjq|nsdsvIXu&3$bIK5w7Pw$ro;x&LO8F)=UoQ2oH+PLNbUT2jy(5bUE<88Eh z8@a!oR=8yvBwKu%8%-0pLxaAv@Yq1~nF}9G!^+ znhi7d^85m3QUZ9%z-tV~?_dTmKG+#nz3upIZJ7;RA13Jh^|ipf2Iwt})W#U>EWQLJ zi>>z{>|J`o=sFJn6ztXVC)p-Lzq58ZLp(ird2U$_kQ5tPGLQ|%lk8zXfVYXkIURQg zo9bWR3vDfIWRV<`{eN|IcCZ2r%2xnk8z6-~kKkM|@H&89wU+dtU!P}&-Yxl1eP&+= zb&?12wxH`6kltVo#&ZYG(%-&5Q@5XfJWW3gz-x94F#dC}wUcq$@v9skSfllp30Px;_ zdzk+E$3MWp`;UM8HGTi~ZMy&V4FKNjn`_7hxKgldmxC=Ht8WjNJ%D%X1OM5)FKZYI z)hZWG374gkNFY255dta_Cpu`-;{vjvfbnJc8Nl^dcoj z`<~#X=ew8DrRZo!jH0il)WZLrrY<3=Om)zX~f zaAchas-5^A0B_QSrmwx5E4ZBUo&Pm*nZve6?SXLAhFb_?K5FWipXFv|@8R zkk2Rp?vd;6U3xc8f7(#I^!y{qI4P+T z-dcb2EOWj}EAtP-20h`lcJnnJ{ATI6kK6*RYZLL_y*8cMtl6`J@T6>M{wSAF*rNV^ zQ~t^(v{8ZnP)B|NkINj^GG-9fFo&b9+Vbd@XGb1K zKF|r{wsO#?4vt(r)SaI@643!U)uA}yq;59wK=hnAWVRDWbz(^DlaI0moatFhoPf?# zIs)+K@A-GBpY04@t%~^1e;Gi{YqC)nQv&$*^IiLg7){?%PY+h{&a z)2K?N=idKOM&G!oY>c=qJHferxcvO)TGdLG^?4u(J-1lYy&kH68pWY>|H{`*OP}yD z^?K+KvVi&m9fMy}q?dy7o63rki_5M<78tL+(&NB*u<3^Abs;Zn14EOwERL}kZ`heD zXLtWxg`Lx0oV)df>nBY8XIGg;)9U%sJXEaVtZna`bwCxdTeV%6;5vsH-9$jnmpFFBu$HQLUg?Tlp%m7EqO=oC5Uth;Tph z){d&(kJ`(OUPrZi^*;N#4fmpW8iVIqvyVClbq-`XdvHyGZIC%Am+At(q`gzl8{Fig z`sn`ZdEQ6sY()JL^^JR%*1c7{ok_%IJ8`D?Hk4U=ad~d@0nf9@Y)2)tk#vJ;?vUrXi|!cpxtrczU%Tj8%yqX{`&*XW>88&! zhNVV#YRJywUH>C~a--Y-Ret2;HrfrstXOmT?0F>I*Ro}zt$!yD_SEo`?>n*S&yv_z zy(daw9GLc3mUCUyImk6}DU!cUx#vDr9j$4thVpFQ-9{lR_=A)>{9j&H)DKO+0KEHE z_v?-w5=ge4Bam59n}X-GyvorB&H3xJt4i7!lT6k2vV{1I9ikS%TbOsPL1(??ecVe* zKiJFR=WtV4dzV+V+tVvzH?2$pqiWlbdxhM^@?Ao98B}bOG4HaE#>VSlO5gP&MJ#}h zV$gMvr~`O`J`pA`WDl}F`$Q(+k_)K>z9)Dn0E=MYbp}5Hlf*J>;M-vLOER)HGASU2 zB{pIMqY#)WkfVT0+=Js}+r0)H&hTe`Qb^?Gb-W@)B<;b<(ISU4A7Ns zk#@G|mBxao6#7^8s0}M~b#<5wNaZY~*VhHad%QZJJpy8#5t7WX2H+*&)8lUArt#|;$@;);r%?-ME0PY`4&p;|D23})rcCfK*tz_B>q3*gduyzhn+&}~1MYWFQf z0ETeF2JQO0VX>a4r^l!1#}Bc0zC4jN`|<+%3l?5YW6Y5w5S^^gnn2#8fV>9O1(4U~k@E?5Ub7k4%~e?+YX2TK zNq`wZmB7)-p6T;5QE0(k&_><9<@X)LE8VBx6^^n+Bjki^?{jgJ^^E=xFK75lpjFlP zHYX2U%$^437JW`ZI$sw=Wii0!6)fWd@Is%ck2aTqrF~Mr~+1(epJhw zW_jRtRs2thRa8R?6e=Lxqyg`NhkSVjldXYvAAgW(+Q7RnZ!e57iTIRp#^SyQZ^fSQ zC%%`iSfPMvV;9yJQ3G|_Jz&huO!cx;=^$8m5tjrQ_I9ln^S@@J7U%W*1;F}u_yGf0 zgN66@cDjG~2Ik$rzJHs(e}9O0B9a zvzQ0}^2KGSjex2tK!rh;G6-#ucGeK4XxRiEbQ=j|>R2GqlaqAJD_n~O7SR5S5x0F^ zw(Gh|& zp9Q?T?o!KLqq6n2)Scp+8n->?Ha)m-WH zpi;Kj*$jYJa-21hnAa*Wm4^}`et)o#Y6=!!S6M}|W+*sI0&4sA2!h5Y+jDR*$5i_d znpeN&T3kslKPJDdion2H3Snu!An~b+FXRtYN9)rHez43Dx-H)~$0%ERQTrSEsNBcm z1BsZbgl6Z>%6M%TZ<|?Bu8GEXxC_MV)btR)2sk$G2sE1$GmE%o` zIkmkH`;ljUrtO$|tDr5D`?T2)HLhdT7mZ!b`L3ox%sZjQ=9U1wZI$u_$>PH@&<4Iw zvW#d~9d<}M6ULSg{LBG(mz>`G5bJ4f(cn2Y=Q?I4c45B%sR6um<6hFaSWEPUMy6O_ zOP`Xu^s~HI>DzdCK1-ahX~j8tT$!nWBb*b0)&0wzQ0lqQ$KH9_IuC1_GnRFZ&0Aag zDi)MzUvX&5t6E)89Vc@1xCZv^Q=E1v>LA7aG zwAeh%Qq?EO_>>sq-K)~YG~T6dEXg{Di4%shoN)2muKDVMKI{%xyKm^bIvj6%aZM=w zYxjPZ&zL_7v(t^`HN$BA(3{b=By`4-HpypX%Dpw0E1ou_O}b6(d}5(3F76YX-(Gb) z|8sZ#F$0PNc&O+6zTgCg?T0uDw8bN zFe$HkWw-Vsf(_TfVFd9Ka7_IIL=ViT_9p3?F&IVO$qspSbunGo>)jz^f=$V|Xs<*! zV5fnd92CvDaiAA8!NyPYYA`&LRoKW zO+T9bWSYJcAG(b<&tFo$+C4)<1qATE8w2mw6rHeY-RH@V61jB!Y&0OF0UC|r(|!QpHGnz#$pZ|&FYTTcy%8SY zgmhtk3M{Ba%P2LjoRg%<#2l`&bFeHhUFaBbg_b(E1r6Jfsyq@!K?+vqW$KBpPP z>o!s_48h3W1UG_9)mk*y83*s$^ISXucnfs6j-J)0u+hAzQ-m69dak~4x2k+;p*RoV zjk|h{?sN=_C4G!e69O8)E2*9&10^d6ms~rj{`{~v$Xx#tZNEsauI z=GN&Vg_x(wjs`)}$pHlQe`(N8XgFG*r*zmFfWDxY_E#k^F(4Y<9k=M&{iKsSaLiva zE`VYSd#6nlCP}Y5D2nAuOWJ-od;~gzmfl`0$WRfD`uz3Xl9!k1Z6e)r0Z(xZej;9P zrI?-*0bQ2*QFmGM z)Pc8>3@dS#46$n?b!2e_St*Bb!>xXylnWm)Xt!Sbwg9vG7S}r2em?+x%9n4pmw_7g z{qhAup8M?Q%Y%Wau9%#Bp5m0k6T*}y$$k?95Itl|kk{Bx!L#ZbsK9YzCSGNyko&>?Wk!Ez&kIFcHm9P z(PULR)D#GM-ZU9YbFsxCr}4K{t>4~Htkq#ZTDSD!W3TS)n4jOi=*nERfSPS)lS&P3 z_@7JQ#a)jg_L_ZdljzUWqtBijA8*^vvK+d+;^ztEtEF>FV9&$KbGExwSEYI%)c>{H z+x6|5duaQO@}-g?cy}&_4}qsm;ZxkvmV4&p(k%~F@YFiD-1iZ^noHZ_`kDfKr11^+ zE{@;7ToV$%-}Go}LzngxSp@JlYneUuc4gN@kZ-7_^n>$z;_XGfPORWV!YVia+SWfX zh`Emcu>;z$e*S>Cw%s~1qMZWWS$tc+vc9T;o$VCgx8x}HIFY?QKehbMfu7pT*L`0S z*ql>u5!Gkf(qLVF&X~Sscwc3{B=FBFfoe^(E&hbHcV?epv9X;|KTj-+6ShSFt}hP6 z3X9K%y?6~UEy@PO*zU0(2k`R#cndL_RQ>M;gb@%fV7mmZmUbKbu-Yk*-@*@yss)|| z;^AHFyI`~}c##0`3Q!gsxq5XyUy0rD%cQ3R94pyZ%dD^;0Oc4vr}AUJD67Quuj$?@M`t2 z-}AVnA8%~K0la)Qxj@d?-xOF;Kuv(~SI+pXjFH#zs%M@&z8ZeY*( z(%x}Pc?AG0*iK&s;3dm6ULBt_p@1!GM==cFsSi;F`e0UeHN9UNfR{f2@H$)TCH2NIf$9^*IL7AwjhU;-$?vW4E@~#bgTr?<-$p|M=s_ z^yBXzV66oUrZZ*ZZRkWj0*opoAL@m@lFSjnXaNK<-~JY1vj^FP+o>@Sn{GRkE}(h> z@WM|3s7t0@zZZ1ld30Pl+!OJO?>+IA8k0Y4oF z=RW3&Z-aMcT?6JCK=5 zK_K>h*1h5}fVV_y{)PEK%;1m9$o*#l@M^wHf72;}ilyJrZfr|Ia>@|yqP|t}znUld zsMl8={?I`e9Oy6rIQ%fNkuL_+HIVQ71+tL03o+&jz-xy_jIr130yd$;GH@^s1a%;+ zaC|(NBiSN=32ZKX#laAIGtks zy1Tyvi1*>net!cCul<-^+98P0b@+4+=jL!RUHqs2{9oT+FhKj~0!|)(@1Nadw-z!; z9u=#4W>^Ami=>!cA>oN0H!3oSLB)->}{1KK3I$$q+F%qKB@xF?z#ZunRDO+ zPd9tXmB%eldOicti@>D>zZXrhD^1~GhO<4@HEi|KaWcwpU%7F;-mFQZ32$qtgSg|V z=i6!hLvhGSg{vfYPVG4LO?@l=u~U`70vl#BJAk4W*=D2J{PoE9t@Llt*Tp~NyXI^` zWh#KdAX}PApvsw;5p7@$SJiS63f>{_K3a$a(xXbySK5d(*p|}fb_geBO6@zu}S~e06)>TYF(>* z#oqS#mk*a+>uZXL*(1c9;(p~ky@8Co*UGb9+;#FE7_^wpSg1n4O~?lee+m&n>pxUw&)am1H$@%Q^u4b4T*$ z)m~d|FV-)s{`2Pa96hcwj1wyS==~=&IlN`0zw-|nivDxWKlCRlFKE{Vo&ETQB{OQ* z1LqpLqH|T<;9+yu+@@UktevdVue$lU{OFU~pR0D08_b1PCj55=@Q%j6Bb~^gDSw8k_x8>! zY0(+w#*T%cSGVKxs`CoKtDY4wli!m8yne0m3C>JeU@;EwtjDXp9zBtFG=oMn0PtQI zx`5!AO8|t$xR=I4@F&5tp8I2m$3Ue5@>ZRQm*M$yb^>_$uRN&)l0^3dyax(S078iE zFkmGBcrOHpYU8@RL6hvjWDg~{&j6*DhXUZWTL91#vnAPOYXGTp1l7A%cB5lVnz!x+ z3o;N<1XJquW^WGFix5CNS<6AnE~F zCo=LL0N^DM6jlR!Fg-DwFx9la8!4hY71f?r@ZvDQ^K&qh27o*HHhL5HU5*ncgQ(-t09-e4 zEI@R?p4AzQea;Qjb^(T9l@S=bxKjeO zt9>5bl*b0-7QDE{ocmjQe82$E~;zH{+u}+Snddc z(t%A$*oG`;KR{9dyrz=|>UH3_ehc?V0CoiPI!}=Km0tK?DV~p>{}gqLSP8#fWhb(0 z4c!j7;J^W5q%rZnFph{R-~5^3R1LuUZ1{Tf2nOH<*3$5fc1Y%ZdNJ1C7X$DbJGC9W zAoD#mPW}YGkpNBLI(<||yvM*J4K}d5*?K^G2H+mu%qf#i3)C(s?{s0lP1sNXcrBh9 zfcNTZx;|V_H^#zye>>efi1*=Py1##zZtskR*X&I!ydL{xH`j9jUJr(yo~1;H-wiaq zTffyxIER!gsZhN|QUiGFCMo8o!6Cqo>JzVQ5WTrM+dx*Q;RFy0ldg#tu&czilp=X7 z#SV~xxJ~g=K!W4;6DsA^0sfYP9D@+lbaJgp%_2o{240*hGQ|1o%k*p~g+Mp09{_r- zAI>t2C5A*&Zf7ZNlKd>^#R_rd&%$-)0}$ zxo2SCWA>xXWKDAPY^QACaqW;_A;9lFOE!6tbLIp_WI>OB|9XU;Vq!*yFp(hu-vt(l=EE|y|OgH~z=*M0-9W#y&1 zv0T#77<)Rc#p67+&11-eI61h6D3#9+wCdlbwq+6Mxd-hbTT*E|s>@%yOLZ@(!zius z)}!YHhtG^UihqkWLp9|BNwk|lm3Wx!)KVh4%mICyW|NQK}c8ArP&V0nTi(O%}6xSva zYrZ9cl;o={!MFhWG#uK>;7$gpZj}2U1K>^Trfdo)%V)DvEf?G<<} zvwYn-<+0YsbGEfpT~4>9GN^8NxUg|iyV~D)g0foj!v%ifJbbwC=c-^Wo}R0nKeV1! zMP^NV&E^-!ubVeL;Mpihud>teKV0cYa{j}Iv~fniiv3O!m|4EEi_L;*957k5`K|&4 zE-pxF;4OOp<0IGolj2L-20d(^J0y_9d{hlAG*5p2^3v`2uX_3XeZz)+Dg60-_1P8vu(0 z%;S_&R_rr@KnCgq`z}Cqsts(i1Ukh#x-lNgu^<=nZU^OO-x(f+I0T;?$sd400eGEd zSlAbWgnfKAM#HcOI}=h8(6X3n0oL^S?Jf1|f%x9CJ}UesFnfOc}^4058ChKFytfqwH9V>wp@l zHlf=aFQ#`;O<&<{-qY1#nl6t3@D>JM;+>3P5)7{bdlE3~a!BmR=)3SzV!;kqr#F#L z&?m7X1H5a@$O7=nHXML|={Oq${24at>3MnqQ?2P3?{RRrTOOF9?Fa1>;AeUpjK5}g z28$LmFI*gqp3Kk&kc90!_!dBQ$;6m$aov8~EwpJc@EQPC47UXK9thyg{u_+Lw0k3H zG>n%46W=u+1C~28HyD`F*POVNzp*#1=VAbRn*M`r_b?q33pD}lHZJ#N7nsMxp#|`o zpE5>mXBDn(8^dtl1=IDz6NYuj{#}+GjN%!2PM_${(L8kdwOT{#;OU^vr0f+))xBnl zPCW&CG~j+Ew-_fpHCZ9Bx7Y{ z8wJ_Iy?BqQ?w!jm281t=AA>@>{o6cTK>)(MXgsF>1`0O088f*Z9=W-`nQm`yr@Onm z>Hgtv`u6PsY`g~GHNdH^QaUD66Xs;8ef(+hZFuiRzyvi3+E|P6p<_0CXWb z6A6E5iH`$ugv?I0;UtQpt|81(ZyLnA0djRD!<5`kEE#q5>zf5M{usr&1*>NSI3`U< z4lay^m#o7rA$I}rmJ?7osHVP!6V83{@1){>aw(f9EAXVKmL1d>`Yq=iQE>!%Q?35X z<gq=0A<-P! zHq=m-t$7&&c%hVod2X&@q~_jThSTO1^b1JD8Kx#8bxZOTz7DDx^J)s#H~#y zdvK^gzG12*xaRg+mlWr!XVf<9S2;|O`rDd|KO9L0Tk2S_4YzB5G?SFSmVd2cRo!XM z>MUl^ZX3r2MW7#5oy-2bo%~{tNt;tU#RAgB1rcp<8NW@DJa+F?8+$9Y?(Dr8%DLpy zEYk4cs^;0Y%jF>x7e<`?~2%0zXv(WzE(l!Er(BrJU}h zJaO3F4Zdj8FhAYA)X}b;nE}j=>$CgW<+DvkPL;R%osL&-niixuqcLxiL%s6!HBr3Q zb6XG2TIzIA-EwLfIdr{LT<`lZ4_d$NY$dWj+1fDPDt5LOc2#t$dhcrFGYW6Ybw8uw zPpWg1eSe_sb4~PGKhM?9i9O_T|GLKBO~E_g6JPO9HK(clwtWOhca#3!h<+V?8w3 zN9GOrZOo~00Ah{3awCAZ1M#wUZmW35^*e}E`G#O_w|P&UM2$BaKsUN5_B>Q4CRzvZ zS|JDV;s$Th0A#`>u`e!9f`R>Y?UmRC7RG*LdN$80b)Rkkwh{Oe7e59=Kq`Lxb>6%| z-^QbL0-%YD0A9pEkBM)LcvOLRg;B|C*0N*TzU!D^j*xGo9iDv^USrLdgFtPZE{AxP zy8t`kqw%ov5Qa|j0IOrtw#&sya1F+U1>X?9b;Dn=u z?f<|Lqke+S0iXmJnLugCTBQl#wYOQ@k1_D-4c7)V4(8*sA?LaP7RdyV29z>nXzj<0 zb1)9hwF(S)hc{-|+`9znNq$gujD`eu4oY^tbg*Y?bAF4c!4c3P8WyRnC{};~UcAK{ z%6^#MFOLN8;)jf~WC9h4*VtSoXAPMEM1VELSZrgV0T$Z<_}ktzPDW<~dV>{Nz&vB) z3?mXa5CDAX09lmzmU1vCgY3}2xn%DpyC>&^4AahxOZgKBD;pIt7Wykdy4wnnWU^8G z_P4qNJSl*zftWAthkAA)S%JYeWaaGEg&COg;`j|b>|jIycm*bQSvrU}GqM%|xfM8I zlWfIg(G}b7@i-kW4+LI2OE64=a<=(2z+q@?qLv7qni~hqG_yoRD z7YR-!vv~WqZ&PWIILE>KQ2th>Y1t!%|4#9@ItxO* zcFQJfdHE-a@$iCo2cpsi!vZ>Uwb*1Mf+R9EhKpi<#2o6N!htsG4A0KKYrm=RnhpF) z0NxSkIHv|N3|;i_r0dj2##WkViG6HX_6GkCtU9)*(;>CYp-nAd51RzZ{ zFfZ&|q^5B&!~na1`-0e%_9MnpVP;_M@V(x@uzpU7@)Gx9=%n%o9|i0IjPc52*fIJq zF{Cn%UQEVPez-bL*GFUFy_s%ruBZFEyXnCIyx;DpyZig;cw_AF2eHBnz^lU=H^&aZ z+v|8z-Snl6WMn*w&|NjDY{$4!2Z*fHb*Ph2E3KdDL(|i`g#@~iDpB|vkpZYe$9#jw zji{x0cVjC_0%tm9T;aGBSlZKP`plTm1U9R88LnvNk=UXzlO-r49Xlxg0p7JAJ8@#C zg=CjH8DbvL0lcMdy)r;_)OHH$^@S%;+Ku$gi0q+~;$rH^6D!3?Jp!U1qj{+Syz*Qz zt^P;8Q*`o5YS>ck3bjhm>AUQlGk}-Z>zX@FNkBDzw;d=jQ**l9mPomB>k<=oCNwqt z{G8R&AD8m;W1YAA_M2*M7jG-z^Qzs}WE+9@eQdAP<1Z_qB`8y}s8;?9LK%IP*-i0% z($!8k;$-DOuc~_+FS{tPa$}5YNvGC;XxpcLQ^~69t*@^IHm5@Lt-WuPMKYOy#y@uA~K@H3ebIaY!^;~HM8oj3At z?f1#E#|hx5vt_Cc>84D!9YZtUaXw<*efo2eT8~=&(ZZ_~nghQl8?4fm9&p~uun}qb z7<03j^psf{+Dl_5T~(tTsK2MoTRZ-d87?@KO&$7>%l(EoM!wS8cpZeF7Y(F+3@ zef8OW>{88kg0_n@N~S*V2JnuW`;ZKp=M^Um=OeeA4yaSBEBc<7w3|$0Y4P-tfo{FG zQ?FmU*4ZSptz-LH<<>gA_WjT5=hk*UWZzpGSxxn~RkYUEUo896{7o5DH@vm+Zj;*2 zE%l4%;O7o@(AwPi|HQfc1Ys_z$D)W%kzas`&NqGtEu7+n8@Jas*uPY5_GXl&hDn#&FU+wtIA%Q(|p(gO%|=?YC6bb&J1UfLi54wj8+w zv0V;Vc6nwtC;m_*h{Eu%TM! zI9nKb_8h?LLShLAWm?l{ z87^_UoUW`c!*dF>YjK2tVIG8mzmdJ0OcObO*ZZ&P7#H0at1jnbRG zs#I#lCcR{Yv2^+cE$0S{y)k#F>Mollpo+h2!J({TS$ZcLQ|=aUl20r}h}5HOebZg*|y*In#`<0eCAb&#|I<43e7CYc7(Fc@@LCi^bKQ!L00ujF6O zJiTbx>y3WMFP!~mjepH{I8U{Jx_kDHebi{1y5s@333k(??328=B|OS{bRnwh2hkdE zA2afm+4#}Rt8phavG~?`IJ*M;Mis6qVf%pP41M3y<{6rydp}2G^L2DN!_MaRn(w*9 z^5@nwcsNs%m1W?)5{SK&l(UYK`6Ws1^iN$?D@((!{91eM^RBb_>ni>I zxZZU6Mtz}szOXjtwnyDFza2u}QFNOi>P?C<@xiv5ywqB{x0L*?-PWSl6>F}QMjC$}h z#`wWL?z8cFK;7{6j@SCW_ns4HdUtF-S3AFZJ#+f=tL9~^yw1_TGnoHsH%0|MXtP^I z^pl#|+MTa*UlRDB1b!opo-_P90bLpI9ssXZmG(RWfaVR_?*hPODr-AN36yI9U4dYo zL$L*owJGqde**%^fGE*?SZ1NOoOIETkM%b>9DfkK65DtL^1a@beEm ze?XU%nUWW!ZvsPx5kmbQ^(hc#ze*1kPV_eGgY9>oD2i{`8-sB4akqSeojgNTf9W#6f)Y! zQ*p2+Zlup}xy?G%TAd)?K(f5e818cdBOq6=Utx)4Z#KQ)RD;Hx59yx(`vs>cY`g+& z7vH9ST%|H;W1@0*Y*=jU!;;H zs|yRCeOfa}!dkEdTlNT!zS5=obRs#HQF*)Y%sTb-1mM{9ew$c5;V=*{b*A80m;qB$ zLU?1YNT}g*3TjexxBgEUdBwoZP?2yL*q5~TG=}6!(uO;NCN4I)@$^qZ)$1@C;5fzy zxjrb+?Ie<&7ShR+CrGmQ+TZFb-AM>0T5f?_TI;tU>?g~TqNAQ*+l?9+taN~i-Bt8| zpY(;;^VVN1T_alrXBRQ@Sc?}Kv}yplS;K?oJ?Q)EKk6hWm2xyy zl#ZqeHct?9t!l#1_NA3((APZvj;0&S*Y3a6&z6KyhRzJG0q}C5JEVW#dt@ZI?tK~A zVCp-+=3>h33qY~;r8sD6dW#uvHJFi4r&EFBrp8z6!~ayqUo{ffvMY^ko>y6G*o0ou z3Q$YG92>}I3;yC#Y1pW09i_(ae27N?ULF2+UK}g`8USzc9NI^&R#lMZsdPA$bB_Mb zKHc~l^jLcCX3RQrlj(6#*TLaypSC!hB##GspI z<}-h|<(3Y$xx+1WG!sKxh1>MT4z7wYuICHDyQ;Vc7Z}eU&9S9!m0hNWo9k-MaHlZ2p`1#Os$C1eP3|#b^yv{!Yn3KJW>W84HPGcP zE=t;nO6NxM`mnHPV;pZV}{MALEG9tsS zErrbXhPC-~Q|AYTda>sN>#c3vb>CVnTr!$F2YXAN@-u99Nq^Va&|E!R=8G%be@>)X zRk7~&rC^^hd~+%oxxr6t{w@#MY94L5zoCDhrnuj@;_VUdHyGh9@lnNGll58vuhc1x z%a7E}9UA$YKY2e3?6w6st5l}ACJ?Onu33XMd0L&S>ubCnk3s+>3%d@uQ*1J7IWVIV z7eF}$zzYUhc?WyKkPQI5N@&BfgZwrR6Vl1DgO|>&Kzw8*AkhY}k4Pz(9H0p@k?VA3|WNy$qz*s@vti865>N5qA?IO4i4r?7W|ssR`uOp>u|f-mYbm_|v7gCrKB=#TmlhRABX89fxeS1205%Rf zUQy3I$~v0E3^6^NfUd(j6$EIOWNHb*C&iOJPm_Sl6u@gNyGlVRU_t?R3P^P~?S*|- z!M!_`?OnjR#$>EOUIV$wwUfO`{46ZHr;~zqPXge*fHn6+^$$|Qc6~8Q{h@x*9bRJ( zAT}5|iH-7*Dga&$5F$TtTz00wo|6bV3-;9dF4~qh5}sD{prBk~rWN+xgM#q{=nMd_ zuoDY2>P`W*C`%x(F)^D1aLXI@1BYT*&g4G=&JDmd%^yaJ&R}?g@fU2#>CNOe#i-4R z{Ts+pKI^;Ncf0AZ2dl7v4s}cw^JaiuWqAd=r~(v$I}9){(W?RmR#DBu(o5^nCim6h zXC89sKt5$vOilpi&C8O%>7NV-#Sd9o;4mWY<${T%vznj9L&hDj-U8HYU~JW%&5wyq z9q}T34u=CwcAJtFf2!k+IZVe;L7y@P$LV-@nGV8!y?dSnZ?6DPEgBUmI6cL}tlwxb zA2P6cFoA$E2E>BW;yK?ShU!%%hc@tT#sM|)Tl=l4gV~<}=wXir3(-qF)D2v$#%LB(?*5++}fR+9tqe=~ZXD$(5Dz`)i99omD8#yA+hIG0ktGw~1_ zduPlIP&m3!AMFREj#DMma;9ILX=3fsPU^0sWCWNt>G|&O=vTux*pLvEYDRD{A zdMVp>>2GEiI@_d)nf};xZWh2h0$QfiRqo$|?l;~Z3?()p&yGwVB4U`ynI5567#1p95p~vcCF(jWy<# zM@fs+0B?ByfpDq9CEruaE}KPhLGH8gtWB4CvW>LSDjleCU$78a^s9A5MG>_udg}!! zq}-Rf8`sAJG#t;Z0Nz}scRqPys(e<*HeM}wDO83=>iuTxbH>;Lc>4+%nIeFt@!AaF zU2{&)>9=@dYh-Jc|Jv`BoshCyu1Hp_Kl6Ob5H^Mk7} zr#xoq?{*5A8LGy;XQDT~zSrT<{eG=k{QTB8+6{EQvG8gyngF|6eoKKywldt0l6zcF z2S&QGxreEBi<bC_t$j4?Z{{S`X;>cn5Efo`pB`Q2!rOclUQ#z@r$3E^$3 z8m$dSj<*&Mn|rnac(3r@t-)ZU7KR6pQXl0{Z_?8muy=I-nmo(%CDt&Pm*t8c+`k^c zYj(7{5#RQ%6|8>lLA>*ZGS+Ecu0C7|-kJLWytLK9`)4=W+-k8I)p2un_WlguU9!)$ zpm7Z#bhR^&E@01NI}^FnW(GR%)^)8;iy`Oj+?hVBh-(4#Mt!B&v|7WXM7UGspDpM7 zvbPT0%JMh{c1~||YurcaXVmV-b@i%_A5vg#V%wsKM;T@6(CWZGr1R^QEag#KRKpgQ z$~Mnx=7d^O$!2w}4fnc6)=SLT_huQ_TlgyRrGa0nfrxmY5c{s}*_Jqj2Zt*)-vZ#x zYZ9qH|77s4lp}zbvRGMtB|3nO%?^;uJI7rEJi>TA=XFUl&i(=&kn#-AQX$s}z+0Gk z$uY++j~IA6051#oIi>@H6AUW`sAa?rz#3`V+NlMP0ief(lC7ZW_Ia$CL`BjVz{7^Wld`&*RP2<+0rUIDy;jjNBo6(s5%Ky&Rg44-t8Z8y(o3`1_W zqXPYJ2O7)3Xly5=bbxpRz$>_!^Ys29KLC#c04g9-6Us0FI&O~T;GQ7&mr=j|Z+1i8 z*mn(R2|FMTPjEB_Ks6R%fYPA<00n<21Ejtwo50ATk--`%k<6)-4$>o1ChSDLOH+3M z?u0q^>3Kgr9RN(-3HvI+oC4UDYYIv`7=ZQJAojw9OF;Dd^e)W0m&33P4v`iShF!0A69L-Ghl&J`=zzWx-%eHehoe8!MU+7?>m4kO|k@ z74Rq{rQ#q{ozk|Bm37e8#+YIN5Lb3n0Xklc-CO{c3dqLK!NypaU;)}Trq>-o=my|5 z3?>+kjagV^A;?wYklr7@2stp$uu1c&4B+)Lv7NRVz{}|?0-S@KO9-lT@Zmstnsrk& zzfcBZV<%QHDt;6|D!_4dT;SNCU$d`{c7S#VpH`sf?pc2X{Czkc6~Oy)6sFewv^!uN z$dc}0G6lXev?8*A#hDD$02YI-nxu<02m>^Zm_un9pwxYU+sCYI#GUP49P|+ON&qjf zP)}fPHh&@MsDhJ$@)n@(=p^2O~5ib3`FKpn~&3$V&_mDQ$y=S3taEOqbthGg@OvRv)ng55lT^07zZ{yaHe* zi?Z)QJbg^xkC}ltjY|oRiK0HMzWi+iSHI^3$LY~LW&q&re2GPqK_?%n!F!I4&xNs+ zBn9Fk=Pf(Ftjn>QDFIO{X2eHJKIH001}xN9MFfxkhZw3;!gB;@O#DqR;f!MeTC1^% zL+i12iB8v(Avo0~MlV==ZHu}iZMY!V4Hb{%%n~$77CeAra0oQzT`apy>TW-MoCz$$ZH_t2Z;&}4%h{3=^}TQ+}AGo`Ax zJqFFVmJ^FCL#ivwS}$(^@Y1|!1HHZVzB%i;vtQKo$TOVV0lbLq)%ElfH&a}B*MhOKlhb&b$=@jF1S7ELTU%rzqRq}Z#cN0FuYNln`G zQm2}E5p^^-l#h(zNv%x>hX7tay0D;GZb=_Tqe4bjkGD@PuA;e0N#0p z)!Ih!6zscWpB)%)PW%~aM%dJD47T|!)R4BM#~m1_<9V9ws) zg}3BH4~QMNR-xlCXY_tza9b4Wfe;&{Y8`8XigT@AyzL0>W7IeI!7>{S5dItFr>mJB z$I(04(dc38_GbRBl55Hug{6o3SDyzwM#0vx;e2{;3-d}V0H0wzU2glKs=c?Hf5QE9 zhsLgqVeIM+?(ipQ=}X4HQ3J!nva_dpp#cZ!MUJ+*r+Sa>mLFgAHMh%)O@4fZ*KVqB zdxs-lw+o$_I;7YwGAunx7$#%e`>bV3Rg+h)m{!(8E;cXWC2)?^YxpoQOjr|k^78kd&qUTwK9vOY&s z#RnIfc;t|-cKpt+K2p{@MY-wrd-e0%_kV3-+p2)yzN0q{|4q5VsHH7x{A?9chHKlo zw)~d9-ZmOvcYSH#=W8I_KcBms6y=ST*ZRq$d$JbFwY@bVZw2t?&ICwBuGZAHW!Oy* zsTB=*;VxUz&JuW+3%c>HOX{!E5Jt5C%5Yy^smJUy3&}2C^aV_-4FONL39}qz`^TX< zLv7i3xf=$V^7rgzQeKI!9!tpEIwqOae9p@v9+d`YI%9sU`BPre13U}%@Jw={no z9P&U)j)?)g1*pdMZD`2M$Q^rWUt}4Yd;9#N@i8*wY7?!gD}W07k8BHemn*F}jsWl` zy_rettJ;;d^<+V}F*2wO>Pz6^89&CW(k)1lc~d}Yik}e{ zM*xTcNHelM;QR3YZtJQ7c%7`zSWaDER;cI(jD!FgWB(iQq@+8;i|W`3Fmb=1o)tKF zFkq^%s>&X@fK=tXgM!cmz`GZquK@2RA@(~ffcO0NHoXfr=meJCAE&qJ?d@%PeSMwI zr#IER=>PI@2AQBSYr+3k%qf6R%CsfyD^y(gs-5&y?{so;#G!FV-E&^*TA?0jS{?X z47-ZKR2u=97@$qzJqCbRNk$73w~ZjfjQM?NKjsAD)hd2*Fk=qEw^pN$Q~Kv0lD*MH zN@TGSpbkVY)<2jf0JG<_*tD>+0>~?@(&w{*$;F5W_RSIaLl{~Gv}?dl^{bt-wH}TK z{1%Y>eh=Md`9&!N5sPdV8Q~8CZUu-}4=Bk0EUu}|SV)xb)ejSxJH#`OA+}NDh7nP! z>A6P%yd5*4OBv4uflLhBkOKnn4W(;-exBZ+!Ne;7US;A{058V)UH98SBVnK?6m0Ftz?amvkxA!Oz1AeaUjJHR49TJ%eD=FM6Tm4Go%-y7UI2J) zqPOw)SKv9DFDLIXdN{v)Hqh;}y?Q}U*&wD%4y!@f0wcT5c}`4SS$GvxEA;^<&VPRX zjZVw6ZG0eUoy6qC1kPA~jWRyRRR&Tp|4NWD>VF0BMoD#a0)_n*1DL338~BT$FrE~E z-u>_#fm;6L+tQ^EqusWSDmXYNQSc*A;V~@PaJJb*@%N0d^V3bp>dLtIO%({NKAxIw zT?_d}ma8UMYoX}s?=8t=A_SYyiD+)0e}{(_FlW;lgqnPj?8@w44*2pn>ut4SpDh6m zujK1cEJ&ujk9rsbK47Cg6DLl0MEzo4Rikktkt3eRiczWof0yB$vp>1s>P0~K(SCY4 zNPrxDft%_b#p|mLV|)Yr*&M4Wg6Y|U-$Hw^@!YQ*XvbTC5r^AGIreDR!&h2TQCSu> zTtZL58L}i1%5gKysy1q}!*v>Ej{v;s+G519&|Awe)&&Fa(5CICwtkPnjFC+N>cl&U z0oISBk@WC4u(3YA_T${io-Qz66cLv~Ve-}Nw#xwEk>9st2yLLwfju??b~^Onlg!5N zNehxbTWOra9A(jH(k-?yUwsDnhoRt>H@rDFP!G$&?;!x*CVs7jR+T7^f4-qTH`I*H z*k5LxeMXShpVrK2o}qfJr+?x1YswmQdG3JAZQ5A@oZVJw+|?azzoEmO4D)q(G|fe> zXz~vWUH6X8{rAtl_2D+4+!aH0zwBQ%d}-hw4GaOiYm;})A2i;4rqK@{04#Lc%j1tV zT;Z1WSZVFSYsb2t9!-|_4Df~+){fnS`=?Ll9$M#M(dp?PJ2Ns!URx7p?fd)2@8cz{u&!vS&wb#Ua8@lrib0x(BPaJ ze4JP6xTA@#>AU;8GNzA|b*uS2vfRD;`R)7v*LUzfYq(cE_uhY>^!ML=ul@e%{l8y> zUp4#<8kq5e`t0*wXSqXBOMccqpj~X{kpNz4C^3_2yDh^mh12&%+xM9ka&8UUb~wGp zJ@q&EEJUpjzSFUfxlJZx_P)_YZ^SQi1nJ9@>=#<6dTW%(2=Tx2J!>UhAglEV$$ z5yt)lciZ#B1^%6{+4v-i7zGhob5fG4MOTrFV$TQcbC5JPn(yIzlH*^R6l)tOhb zOSfdHGDJ7Wh=_1S=8B$ydOG)#!w&eEoT5{jezbfOtAL%2U%Qsr^0vYF1Is+ z>ig7*Kw(=gARYHR9!l{uWa%V;*MM|gm2zWS2DY(F|?!UlRcPWzVw0K5iB6@Z}p{iN)>0Prg4^LelRzkIwaSod^(n@(@1 z>HK!m-vZqI@%m$WdzI_Lz-!FMnT^`|Jbd7maW~1`oQ2oM6WbYPF%IUZ6{g*N(`RMc zHOpFz)%nZzZ{^W6wpsZN5UqkLg_+kFjh~fe70kT)^NimDjCO>!+i2kPRC)oRDwC~Q zwweLJzZib`65wI5CG%i`5lyNa1LvXuPX%up1Ftdo3Tv>iz3vTQEb=P*uYrQuR=h44 za|i*tUd31+;q>;QIMAoiA^Oi!+Ay=fJxGR`@g>cKhid z{&YM{djrM`ORIo(<+A{(bzEdj2pBgYr~qK~J7Mlsur(B*pm<@1RaRhth-JL>pB=#^0A9g2NGzv3 z001BWNklV?o}dC?Gs};`p3f%0pK-#tUbt=c&xZio1@9* zFMdT@)B@m*gC0+p0QDm3BK8Bo3mBYeLGY3UDbcQgF|pZ=<1$UtKQH^~>HqrA|N1xs z0cr}3iB2zB19iGj5i(N@cp`6Q^xy&R20 z4bRSX86Z5eo`_~Ri4l`op4?eyY*-;#6@a=7_s%GCiQKCJr)DC z;lJ4;Lo|YMO=qq0)z;&ro8OoFToTqc-i_p{V-w&mrucQS%s4l{N!3nZ7E63=QZ_X^ zU}a#6(1cZ|`LJf;Td+P*V^MpyQhwD~ZMp^i)M~RWzhsGe```xF3;XIHRJ8Xop5|GF z@rxta0`^F$j~>{`3O`rTyy_>NE`lq!4mNn0k~jP6#56S7qNkkeaQZV{>*P^2Nz zI2w1rX{ppm3xJ}YIHEW-5m(##=E6)wi}3>{)-wm-^>#R?Ef`SLk)&&MQrhVPdDcmM z8L>Av-gtX4fjoC4&CJDNyPj(t0@BL;H4mCoOXzn)5E%IH6*I?AFFL>B-OsJVz>@9X z66>2fF&7+HDsw4EdJo63TB;#;x3q|&Ia@1zt{>KKsWIawUHvULtt+eR=@)=^UTL!c z`i*-20`OkxSVKnkAamF&${OMr;-khqeGqJ}l8S*#>#$+SzdHdXdin@HQRu=P{IK<77D$ zev87^dp*Anxkt7^t+6n?U8uDQtt=x4@(&Q&MT>s~fR{>W#~+^;Lt^V^s-mrSv|MgW zKG!YZ@3Mpq_9;bX9)QK&3-xShVsjU^s(EvTO~FUXdaDfg+;^{je(V0<+c{C}Z{5Lr zMjrRxtD<}FzrP3f*Kq3){|$Y=UwdCQ{KXoG_1mpZ@&M&*^|MXS<*l-rIsx)plR0l< z8)m_8Aq#9vy9V$sLA;(#a__7(*$aRaTK-el*Z!ngm#KBF3IH$1jWWMa&kBIG&nv=pH_}UM7R_g(7|=ao)QbWHpbhg=D^}=Yq#*CNz7_zp?T?oor&cGKVK`5J1+$!< z57@Y<=0{0>T3`7PWZjkat#D_j)*kz|V1N1*+hn=svsp=!JWurj!mQh^A=pSopXbYIdOMw_*SA*%?J9Wp^@pR*cx}lGXXX7K)1p@4crJU z!;`X%f_c-xy9$6lOo#mofY7RAMdwB|F8Dl*C0VNTG8N3u@_%E!Ra-EYUdJh!?J3lT zz()aW!V(mqD>5cPsE)S)c(tyb)-U{!IW}uu5|fQ#SDAm6YS&~@nJqvmfcHtkrp^%T zgvbCLgNc}NB9wtpl&rQ+7ZJ5GPNO@^VPmAqQiNr-8Vf2BFA+Eunk_(1l4vSE9+)Kn zcFzE;TMRj$F0lU-egxPq{{XN~flmS0PihA;{s&>bRu*Kjhv(^O_hf9&I~^ARRUZUQ zFF$(#dj<3>etJ~kFX~Y_g#p$;v;gzUSlbj#8xWrr*-rwp4*;^q5X#B}1=hlU@G7T$6&}tnrD;s#SvLoX3Z7&_h5?B@pr#}`Ut85Y1>@BG zp3H?O5~++KW^g3rb<2asoMa3V*-?@~nq%!!prJuq-^cF!riUCuXjFPfQXKM~LEuk0 zho3%RE|d~3#NPogi| za~x9sdw%9%N@|FK*G_*ZW3WvmX@i1xCQ)6kxVU zkChKroe$tRPT*3?;#_2o9GA5AfmLQ5rpYD&d5aa=x~L5$(eLC}#ro!g&x*YdTp&7? z<}Q03f$LZS&&j&kfA{rZo2Ev&cpUYOHSzpewYt_p|Ka(z)Xt{m6~-hCRj=_iw)0C`o_d|uGUEY*XR}bsVbtxXRhQL4t$AzIK_W-? z*I_V$v_v;%8^aNoNziA`&W)gt-hL%P%R?~d$rg@Ey|Hdd?85DaVXClgXDfi0_i-KC zLgj0Gs-Bdh#PB$Fk*Ny~^{4<(EQQrKUYp`i`DOrW?rhv+Ll59BVl~cFzRQ6i2^nQ( z;&FG`e0t6p{Cf8DaRjUS-2mXtlk`$h{Efbg=VorHGs4)Z~!u zj&*UK-k@4@YaeoM-JhE=+nG*4hqG~Nd)NQ`k~b(}7NmNUHrD2#x> zw*Wrw(#PL+^A~{kZyV9C{%qC22*6v`9HWYAyxk1o&5NhD+U1mFy*FLn5fu)wg?++& z%}jo;tZnNW*8rtJTECm%-p2Y-n@eSwGs%5hawfOUjdbSM9T$#=Ny|IydLdlIy zKJ>PG_4C{I|K5&K%fD?0A7cjhs_EYQAJdEbYq@rq|CWB=ueq-p{$dRT=;s%9@)}=T zO^B?rnL5`2ybKiicV*#qaICM}r0neg-dLli1)DWL2JqrbE$#ZiqK`ZNl_@yD#(IzH zhKocS_qj1><7V@@MY9Mfio#_&G`FtYjxhy$XHtJOJ5_*HZV-B|1TXPDn1z#Wl1cju zqH|+qCwvLOi#k>*Vsn|fU1nL0PZT&tMFsLzbo^u009-S`}Q`yz6tB@ z>vVekp=`X$P%2<)C6xraQoBK)b^oG*W9?W?GtnTrztc7Iq3Wb0`eQU09z=cdO5?|+ zV3|s+V208a?3($81tw*0eI^6%aoQh_(^2&-AYK7v3W(PgqL`&3ikYLkkr5LrVB0WP z0yqQ%E|^gP<~FPt#U)O{K!^%FRQnciDCAQxuU@0w8_h1Gg$;;+t_7F!^la?9#;|JM z2rt%K3G$WtpN!SnfV>7a2EaMD6TOEk=C^<6=QfQ$(ri*VipXi`LhgNe6F^@oXfy4L zX}gLM3D#hZ)S~;#`*aqTU16O*NgRovR|W8becF*rfw2pF3A12R(pje%~%^dPgu2N-z&rvi8*>FCl}PB_+B+dogF{Kovw zUrZ3?9{ZfHG*;*l8O^7_L@0kXQxqt5Ue+tJUZQBVEKB$>7$0#wze zi4k4Be<`7|oFS5>K;oJV_4Eah{|p=!l*3pHOm~hc901D*&mxXk8FoFE*eR$qGiOSCpy!crTxjUl8IR8&w%kZLq@Lo@ zL6XFXfkWzmbHvyffY-pvQYWmNAtE(qf5yaV4Hg@V$(*%hZ;7f?{qBDO44sEW^3@xW z)S%9hp*MD2{5K~@(MM=IK=V}-uxir-?5)JPx7{PWAof}&^DyywiaHB%0K73)n}X9ol)FN{=^47 zKSyMbiZO<*1GGbs=aFV~e7qJw$P2^S4)=V~(BYqB9iKFyHz=SxG;)_{$)0bJWwq(w z1;D#86m5zDtDXKA6&S_Cb=2STl=LrB-&a@vU=7Ryc$ad78gH+TH*JhwPDgH3ZdAJN z%3X%O+~$MjZJ+OH<0au=5QpVjnYP}atDdXt#u13yt{IChjr9Z2+u%Kkz=H?4>Czty z;5EA(%I_*$(Oowz%i}ckjV&f}*X-Q(fy_NKl`eI;>)saIYMujaFy(T`mL~35)2_&a zuQv#NMX|*p-_+kbjAmn3?r7n2Z@pJPzh(dL?bK-E``lspWwqa{s(bJMWgQ*6FLESwMqb|@XB=n*aUock=MuzpjR0Ztug^8$~^=!8WU~oL(@9ZHr^s_ zLg+8_LE5_rg!l43T?8n1I!yu;1{*4H6~L!pf2UF#SvSlbL^iF}$fuMgRY8CT+%(ou zlrb+80Nuqv!uDorv_e1~Y*E0U0^kI&RDSl#0!oTi{a${IR8af&F6_Gkf;Ir}>D55I zKc>^`EBdP7HGu2LvYYz=B?+*X&LY2Q%X4z6(CpK!tN11B4cP@6Iz};dCXqT8W ze-m+vuLSVQ*zfkj{0er}3LX~m%6Dlu8gMZE$fHW0DL z8;(>vTtrhU4o|VQh`VGTm$>mU2^aTt5g@Mucmn57)T23fMG5w}#SO_^-`SSIUcD2Y3mdrrc$JA){0Mfg;9g_u6`XW1G@I|`*ducG$5bUg!-c6EUeAK4mkn> zroP$Croq@IRRm@Pno9R>NOp@|kpR?3jR5zs4M3@VzG7e$0I#1$fv0nl#py31gA)*n zAa2ZFNm z(Nmk3N495!<(5goa(^neHPpdzHbrSp&VbJrN_~N{4iKI#N9OXCtVo#>ax7`-X3f<|)w%b^+X%XlWtVW=ZT^+&uPj+6E_f2J38cwSNKNolgZ@ z8*CRbwMH00uf-gbaz7|*n~Q`W`kf9oX2w^IK_@^Mmj@>8pBqGuUIPs_uNKfzXp*GN zI^Nabr}`|owFMj-Y;k3jfSKerb##He-PGcA5b>Sy&m$8i_@vHYk!JNA1D->}Sm-H9 zOSyxMJjRQ04-03;SkrMLwMSTGEUhto1g#!UU^?XeoWR79_q6j*_kB~j#>UoI8@K7^ z;MT2DENf-A83C6&->(-tG17ck>RkX~W^gvVBCa^}nPTb)ssm5Z{$5D0Z+E^Pidc1Y;{*?RfG!2i@*-7uNb3PtCM6JIQfS2)d zp<}cA8*_Q{LzMKBDjD^mrW2hYtNT4O>*eJh%?Gx-&G{#(@~fFI4a~38woKg6pC49T zQs*5`(ele&m0oP>#!T`**Pl&wZnv$wK#COo!7^=^eoILRw+^Jgs@kl;C|6$@_HM&`io+a8)Zcq``BS=l?SOq!BJxxE`hZ66 zRoA`uKcEX=ReWjSO9MYi0}kLw?S1CF@R0a&O~O$1xDCLY>zBXrIhbo5a+ttI#+XSa zUIJGQKp0Z=3aD$N^a@P5i5prWM%gsc*Hagy1z2kd?+GSetqj)_!=YYFBDI>0uUffH zC!&|U4#^uj`d!_Ds-RBF6xzZ5RhFUw@D5pdqkNz?P^U-@$?+!P{07VVeUzW`yz%m7 z!CCaHG;p5Jgmnr8RFE7%ehTCw_%Z7RLRZ~# z&;mLFJ2JB+)2agM_&+j+n($(K&hl%o5hr+;QcE++sJYushr?ky3e)HQs9;X8fdU+= z?3Bh1Dvm-KnhF3sC-~4nyjq=H z6L37_6dRSg$mF}<33ypR!t%3MTT_2}0$7rM#Rxn%E?RdJPexI^gxgdAal{TVn=b=| zDY_Cp3(y|m){6iy1)y#~R%KBY=3TRQjTz$C^24%kC$QFDKBkKSRskMTPjvkN%xY}l zu1_nc;|(3__z45=w}aY?fOUnr`5++h{b4%19H!$DKQ98jKMKRMFy$UyzhwAzhGiLZ zi)|VUbUHHDX7zJp*H&=;SwoJ>a5(6XfW!f&G1AQbgoZQAD!VKhWkNfHA|7ZZbHav~t>-1Ns`!Ogv zlGz6Wm3(fBa+T>a-5&Fpb&4>_!Q)=fwqho)n;byyPPCX#Gl<+65- zomhw1CR(jCnlb$LN^+HtzQRklx$Q^V2YOQ zvgR+4SAo==@a=SsmSb3;_7eR+zGip~U(dc5ZCQfYsJzNzbr6Wo?q&OJW^@cC3UcY# zvLd%OS~gX>*p=hmz;Dwf_@d7;__Ks3`g$P4F{U}ounGyH6noZ{jKvX~+1wTsl!`dx zag%ne?Gv)fQ3wOq8c71)0?&{aLbi@p+GKPE(mhv9<`+k@>L+~z3iye0DTg)8;keb{h`Hf4O z{JQvWjs-dV`Sm=%!j9-39n%;L5s6AG zq}gK&eqQJc#LVrX@MzY^kuJtHUo9OPeR1=())vPVRjKFiN#6|Sk5wU;JKx`)PD;}* z>YQ2E7els)H3j5_Y)i0C^Rm9Wzhyr$sY4yT1SJ5>4-}w;7AO>r2DI ze6EbpBN~{mqdkDp8OKWV!}($u=YN9Pt;LTOx%}%vz}0@HscNn_MWcv6 zKMOp zZdJ=h+lu&fWz^^uwXwx*#aiI>YSP>2Gq2Mh1KyPemX&|AF2@$NO;J~tdKiGW8-H`K zZ4=&hsoQngT>b4_-wsuG=ybci7nZG?jA=t#gZL34t66iZ_IN`Jnw`r>xxlbzm3n(# zYcGku~XZGt6a(f-u4%l4de@ut()84)6%J=^a`@FBW+wQ(aC;t+2*`~m+ zQh$X8=KT3*f_N=|>s)fhNBi8qbLtGJKK9?8iB|Wy z@@i@v+pB*3u@A{$i$uYYNo$JdzvU!VVY!UNZ7VjwXA1O&ud%K(X76)4mCYg5cIO{;W>WVe|iM49`+}c;$TlIeO7PFtc z@2y{{(0En70$r_x0-6(m-kX4SPp=7(CvR?!1q$#sqFk`kDrid?Lk(nU$N~q*D*ohs z5_V?pEnftGVr;+4%BhUB!R#pmryxs$=M1>kKLie9y4Wj9wyJ6zfHsc@k zT4RpdKJiTi9upd5eP9ivXAO=)8-z~>Y^s^n0^7j5IU+QE#&v1)2Gkthe9zcCNp&cU zstUd|0IxD0A64f9vJ|${Lb9enPpoqlr(}JRKVjxJ{>s1$&@OB$fY&Hz{$K$?bg68j zV&4Yf4SO^ci~5h0%Iziqui}INL{(;KdF8nrNN~Rq=GNzFzmuQcv_AmAt3L{eHvq2@ zRdOudmXpdeMsJkTGg>jEP(L5yXG8#|xIlazej}cq-!Ieo?V@0G1^J)erqdg2TR`e3 zW8HlhF#bgVslu@OKAi=G`+iZI7ab_eD#wce-H(f6)0BNx-Y_rs%RSEaYtJ$=fL8#u z`~7qfkghQ{?{)|1PVMCxplAW#3ov{Srd+kB!(rMPI9#t8gD%R+eRjVBslkdYz-k@_ zkb?&zqi9cLco6{a@u+sCwrBuk%*U_^rV{RH#x$<>@gacc_vu{#((mun>HT9m2}5mS zm-iB_|p*ntrRcZ0o|I*S-#xKoqm`^(M%yfPW( zNpF_nE(Nui`5FLHO>8{Xu<~u{(dLS1x(-1JrA@MBQ&A54_`3w)K6B3rj>W5}Lz2i5 zNX|+)!rKFtvFUb`O#rF7v~_0DK(VV9voxtD3ouBKaf+e@UIW0KC#O<={?PV9AsX zU#R!kBu4y$CDj1FjcFAf`R7MAf~TFuvZh%u4str zjs%DkzzYg`?OCD0Wi||r0N*TSWib>daS)PZ0T6324Q8W3w(c;AVJPgOy$IjhM-7}@ zd`SB=G*+fg*zc-*R!JPiPIU;}?4Oy!b8|qaJGQRkd z5y^`+7Uj%tv8HGbb|eGi-i`I0fZsTifta9+fc&U{;wb<<>NiuL7_Rw>20@bhxXOw( zD}G0Lh$e=uphX;h@QzWzp%w>p4jjiGKp-B4{G4=StZ-Ti)*4}?HHf6;0-~%fhmS_= z$)U;el$2Dr_xFHv#;_RaDqAaQ#Js)_m}{uiu-3k0vT<6rA3|ugoopR}-B2TYqbrX^mPqa9ccOgeQY<4NroZYc2QNKpQppRqRUxKSu+L z0N(k$p$ZoO-WoEuIQ+Pq)vwq6%xl>a5V|H?IadPg72<3e#2TMAPPU_B50vY6@NP=3nD(Zgh0uL%0ws7D{5^?J9A<(4uJ1Msq&!+G@D{x3-0RJD4*C|6aNy=k_-Qa*o} zanCqyXmc@sG;gxWL8mOi+BIlWNPZ2{$VLfnnT^Y~?(fuqzPT8)Y8q5LREt!wL0=A6 zK-sv%1SoQBsEt%7#)>Og zQ}&Yp-lq>I(j$ZA(-Xk03QZxCrZJO}X;Z%BtJ2S>%XBjKT_uzwaLmA#3ZPW>N9@JZ z0u_g5eoAbMp*W!e-#`k3*In-n;8k`@0mbKoj^XLlrLgS^P*VVa0_GE7Ah1Wz>h;() z#YU3=6~Rm@ptK6&y(qBpJY7!0L@EH@uxo;M3G5HVojp+TZlwMU9<;R9nLWqt!rYuF z0FQoVYumxQytBr*B9`HmqK$;dNw^X;En^JurGj{cG4&__USU3d(Q5*%l(C?VDT}EQ z5#lZ8_V)2a6a=syyu;&G_ zS;t5iOa-_r0NyxZB zg8WTlJD*?`z6Y?f{+!PadOp2R(^;5!1;i@=-|1tz2v$e{!px5xhZeX?W&t?uVZJ~x zl;Hp)m5B(zsK>(@v^Le9+3G=Jp!D~{7?*^{1tIZ_F43QQxKb%%0_BPkPA9oe=?Ry*nV*(6T8R#h-TX zbFkA2Z8<@%8X)zkKx%y;2y#dS@R9(S|LEDjgqK0$hH=NK1A@~5^oxAdto=hyEHr={ z+zeWEV@M67usWC(Gl|oAh5%l)|7`Wr9^1S&8ycoUwi|JwO^AHT^aXGLy#gF-{cpx3 z+6zzbHb|^LvC7R0yk?<5VZ34s!&XecP6r$jUcyF)&Tgj7ac>s`=7Mp#pqv+8S#N%o z_1TGE`T@XqlTuj;yOVaqjL|@%I+8ZnmA5tpBd-}%!sT$9&e7@gOdpf@#@``Ql-M~? z0k-nwSj)dk%phg;6L-pf%c&{>r6rasP}e&d<(QmnNaqC3T~&OElf2-)Pir#Fodqm! zc5EmAysOEC;L{xUoLZ3m8-C0&Q4oL8S@VeomdfN3LjZ4D=a#a3rABVgSJU*tI%ax* zS~RyYgR=?B_1G&N!vx@6hJn%&VjN3*X?SO!dZ|8pyNhm&wve0hX~mUK`Q_;w#?eNM zoUzzKC9@H#

N9hThg%o2k|9yy|q1Mo@@*Cgw| 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Ⓢ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 z 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ν^NPZ5&9)-IY$3uz8v6j+t2 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�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 literal 0 HcmV?d00001 diff --git a/static/images/topbg.png b/static/images/topbg.png new file mode 100644 index 0000000000000000000000000000000000000000..c5fce4b3e907aad6921ed3a86c6eb528f77f7106 GIT binary patch literal 71413 zcmeEvX*`r|`#;mDL0QV$!cdW2h)S5OWiLczDcO=OTVXJzsFX?~JC%Lk8D^#w6+*Hb zl*%@??55#=UV~EIzt{ga&x_}C-;e9M&huEm$8sL$+_&|0HMTMAWT2s;*>>`T>S-Dp zx*i%DcnD%M_zS)Hwu9gwwC<-hlxcE4>>j3}LDHO5J#Ki_f<)~08aVNUr=Nxp{+tv) zKY7!IVrWrk?C%h!fX>Jer-xU{qVx@UgoIASDt2_97Cwpm(*5v|5nfsT&dL8qo((pyw|GtZ-)Gdn48h^!9I*f6;aeoqwJ~sr{s#{K1Bd^C!(T!E zfAMtHB>o2u{{x5rfy4j6;Xlij|AE8*z~TQ3I1q&Cx@2F-+V++ZYnP{&t$&_f(Vz%M z2FO<0qIOxh`xA$mZ~0bkDLsHg&n{}IJ-pQz-0q2&s95PUe=`}~(*DJB%8uBMcb}LK zZE&Qg*4r3MMnq45(^vLCEM4+EhVO7#KY4cApI{k~O{Sk#UbIIq^seY#<9^SK z56g{H#J{8Ic}$gr=s8qBZW0#5vt}98TK)S0$)GQ+59IPkE6JV=pSmAM-<3q)pN^@H z3MNk3knT$u+zB&3VL6k~eNZV_c;{Z|+a5DizrTxHdL_%H#tl(E%=iZ{O)hFI zMdwDjml%W*s)WgVroO$=aQbRzc6yT_*bgH@2Ol?9zQ(kSQ)!dB)$)r%w)zXj5``nb<$6 zfI)mF)8I}R1x-%TaZ-1QN)IHUQ*KIM-bl5dx)q`ct54aTH~+cfE};X)TA{IkOJ71- zz?HnzjwL`l<*>7qS&Dq~+^Dyxr-VF}Du<=Gk!p>krFsU3GGfj=UtsB`-s@21hYXBP2W&*5PIQ~YIS#O3iJ2KEVi2FLw^WWzFlH49u_94cIM9PxZ2Rzb z)o7@cn><9l9vp0wP|5ROD&ya5uz&I%swlQIwyUv&;*5ce3lI*Q&ll-m+(_esCh|Ji z&c*X(#UbT>VNCK68RwE|f82VMY-Det3K`B>poX(Yh@l$=+Rk{6$E2(H25XjO*kA|~|m_X{(h=+;Re zB!_rT+5>rK9S25xOE`vVcx&A!?;ZBtk8f3LjhW(iVYjfBnIcUaR2O)%?f65yfgpeo zV*yjK(c@}=?04&lBs#Bm!Xk`7R0|}`(D6G?ELFM8_$K%lhduy&OtZ3-HKv|X*WB<` z2rP2TQ=XVlvu2UmVJ0kL0uN3lcF*F5y>VD-;3e3B-c~~Mw8aL~;1F^xx320g=P~Ov zha*HSkf!w{SsTtuN4dg| z&O!yqp%oaDF&<8{COBw~6x42ut_f2Y1NhifGbW`jtN1KyS#V%Kh39=dXy0KL!6$>3 zD$>76%k#ku<@FZdIx=e()>v$ANhzQ~^$Wn{vu&NfjHEzo-T`z8MaVG!rb}ddlQ&xJ zjjR!D2V2OvRI{zXEALfjDq~|QGh+r{t#6=h+OOjn)$y|T(l+Vg>)g9B?DVRZ^N8MO z#L&A`>k0}a5Rb0E4O!D^mG@`RNwCy{W}@(2j}DG>kAjS1h>3ss=F;mQ z?Hy&3-IL1^uN_Djq^npS@0RMESiYv^4b~={1NQ8m9qYE^*G5rE1RLL|&w(x6y44SW zPfe;|I=9~IcC3iFo{7G1#x@jI5HQOjKoOL!Ymn8JC^fA3}&uU?U-;B7}sc8;o0AI z@>blnGoVVbB;BEl&C(q*c7hpZXp9F-1g6G<%<}_|_QUb=t>5x3Kn&sIZ#L@yHKn7@ zauA)pV~EBTG}lCL<;Bp*XN+ z6b@*5>5!E2Z%uo%vgGyM>{J1}KPZaIM?h4Z15{jbbhQ0Vg}*S;suTsDNyZaWL@S8n zZh0A0?LOHHkXcu(A&9DK$S4R#w7$fmVXolV5fUK=PHq zy({C#)qgpvl@tI-FIw_N%?n7d>4G}atE~2XMnsEYHWMIKR2hIsh*UJ33W|`1F^?}) z`;g8l$vRzmo6ZiI%r$z|Azb=Q; z1X;GksORPA)O%W3Q0=ar{;>A!QNdhDOi@7D2WJ&xAa;NOp{x$V%nAONTk?miSB1n< zb~CWr&?RXk9z1_52+lC?!tr>*Q+ zcgS}-UBGW|sDm~F7-w_#d9C@=FZxDQZD?x%!Ni$z(f<<6YdF8*MEC0=Vp8hPH`-aK zTM+0*059fA@(r30hX{_k1zcvQr{phF!q6jB6M0@PHH8ty=jhqquu%6(1^I&#={=j1 z?Ky~aNyyQD?&PBVwN(gAXSY{Z<@iNjw*x#nR3lK_$8w5%-Z({PzsCwoq8zXz}Kp?!D~YKfHyn z>K@Edi4ULm*s$ z|LZJ_^uP<{#sIWP+ySB>;upow5ccfS4A@`@=n3!XW;`qxVUlR@g*fn)Bl%l?ndw$o zB(@{w2_uzkq~xu@CiGU%#(gL&G2kV|hF!YKt9Ol#M5c#R68 z48*~+$DRp5OTy;gMZ6AN7hnrp8L5`%ICeD;U@^H*0M_nglS;lKd`SR~2;Gl#<<;tS zU*}nxr6~-(SxrinO3j0l{ow6;O$y;D-5@5N0YGIc;?lb&a||ycmYgpqbZBRRnIQFV zRz|QevXs$_xbaNkig(+Q4~$U#@ewTz>%>g6rAaU;w1%PM56N6w-9ZJJJhvsumq~LT zz|spqd;~{t(VCz=84u5R5NG9lS4AU@Nj@>`W}Na-*PHPsFop>L=lGcVUB6d%9U4A1 zYWr!GmaP~BF=5W=P8bzK$}E6`Rz(=E>&jM;g^yg9uQQvk(;TxJsljJuXP~I3>zza{ zzF+~u1m-b({LDIlSe=JG%+w%=U$itizg7l?B3ZVi)f~@Q-9i^^5f^T}jvNAFO)^gS z@T!wSimN#_Q2Q17%NhI%q@eNgW5i$@j1BO+NOQ}=wMvCUltt{qtvHg@935xZCn{eA zIJ_i=e@}_>JpJQW0Oz900IGeVlR8F~2{82+C^TzdasZ zB+IV$uv(m;uV2waV%M6>r|e@1POCY;%KE|?5DARd?Nk8ClC+c;ZvIvgbDeALq#UGv zkoGM1KgFs+u8hGRT8ECPP*hQHIq99^Qw%p^%{BTtVXP$@Lp+~X4cCH>PpRGQ_#4xCuJ++q@fbxrtdz8hXI16~YmyMt8B@_DTy6`~V+L+>WZT{td(&2lE#I$Y|Cx`)K3b!8<4 zQC3O7W^Zz|6|E6KW>kI4L+eYr$XU?W*SBNMlBeK2K*EN~^Hak8??4b$13(a=$pryB z_)b!bmX9o2XWK+I+(48qCZy|Gf-iS!dIflzcLBKFox3h0t4|5F@S?kmQ8DW#RmTyM zMRBuyq5K_3QjP&xjuNPt&7c$xQWQo69z-%mUR#T|pbp6pt%w_k>@^EGC$8;%jNB>_ zlMoRSw=38190|(Y-HAK5tdgJ(NZ6U_{9%m*X1X8}#~Sgd{%KgS`O^}nQLnk2hvu9;)aOT0CJeogU`1mrNSAz>abMm zD`9R|N5WMMr;{so(Za$xS<3Wqs+&)&()e|IhzZE!2QACTM-|uj1xY8TYe+`K@jyZs z$ow5M%NAE{oSi}S?edk&EmIu=zMaNpG}=#Bx8*WI`jl(vQ7fx9FuY-@64CIG`Y21k zzrb9(D9ml$pAn>{qPtu+5F=N`|XaAXse&!Ah$OI2o1L7{=W({(`B?|nJeeZ?IXlW~H1sXTzG8B5O+RRrAk0yD04qv&KH$*Og^fNi>AI}iV9GK7nC$;{-9AqH&ogl{rWqD8=`9*R17 zl0d_+7%m;9E@w3kV=ZWRTW}zHQJ`Xd4Fu|T9Jup1e#YI>;(S904Q8KfDOA=#7THY4 ze}wdiJXTgF1mEFjagGuKq|tFax^ufsZm4=WDFA7$=^YS33w7X zz*5x_Tn)T?hv);obtS8_fwxut!URxAEQr4H>ATkao)5%}CMor|&N^!x!Vy2UQA*yU zH)t>~KsFS4`s6gkA1!PLi+vZ)re2Hqe4*!e`=s9#itNoTP^`fmfjR`|6s)0k9P~j5 zakN@@uA`M&7p&`e4Y+gQjHX8IZwZIk< z#RcD2DVCy_VJ+Y#Z_@V+eHSz$`%A4#>>&h&>r`*~4jO_9W^Y2Fnh7Mp$B|yS8gF^< z{I2WB1U>>5t2!1IEbK7oujkpwk3t3mnFc5Ou37>eLN%**)+V?6>tqWZ+b6bl^-6Pw zR2vMiP%DP-03{L(ibGdXq6bCzoGOR%)LK@KctYm7tne#f`9dOzw0@D?T`DfLxB9!Hwy<3HW2){{1=fKogvNdyX< z-!b5*;k<96Ah47E9l$>I`mc#lpGQ>?To)XQ?lniEM_Q#6e-Xw@|0@y^K0#$_?t>|+ zkztq-TgNW&+iwt)$@RcCDXp~RBP=FR(Xx0*Rs~we}l%CU_V-p&M-mfO7vrf+) z_#Jz(!raq-9$-bQ3_wo$nYE;zzz%B|o^0u89-nLxAyoeA30SpJwH?R zNGtY1mDj@XB~Hw3kd9Mr4dDSZtup~hx%OEQ;l7P<0n`SO#-g7~%zDPgl5&)0?LE*7 zI)ifL7P(G?Ne7^qYRXLw*_c)a)ySyGieb~5p*mcb&1wow{RYp{WLmSG4`p=+uq$-t zO%$XWD^HL?YY=#xtS=a^r?^y*Nno@Wv%U$Uks2VHE%SmlmFS(A&yy`19S7Bq1_W0& z)@6cjVO1c3GFKD7N?|YJHPalQeY;f6mv!C%%|~dnZ4?IwiJ%J)++}dqLyoGFNpsB5 z_LiF@&v1{>{1fYD3|`s+p*gdW@DJk0IPmAm^MIP*;mXwj^Ya`s`t=MS7DsAhST{8q zj2XjaIklsg>&z5iRRI8WjQ~^$3qaitpqF+=)w(D|=ibZhPboffxlkdx`sE}ygccbc z;}C)nLV$=^rxc>0hfnq<+SFgUL+f1ZRWiRc%sFfOqW$s?vBp4>gscyz8zMjzjU9ag7hjM6)n7P z8nYiG1ZmZT-5R1B^Nt>n4YaycP&-IXmDfa?BE*93d6q!coHfAETK#!#>e@HK+Jy(g zkFQ}b*lt0+KToX1YkTPy*$u2c)i0 ztUxV+1Vn&1E^1j@{SpUUabI5c9ghwNv1z_zF8rweY9Kx4mTS~@x#;o!ZyhO-6*~Eu zzlsD%PzCVhNZ%O`$cI6~4V(8p>B|IZLR&r2k=y+;c9Xu@5%R?mYAbDx*(;2yZOa~M zSNhs0kSVDA>HuVd2wm0J(7P|D)A-bt@ZU;pq9>KwbR9vpUIM%5f?ec~`)-AH3Ej(r z?Fc5420{r2)F8QP1zZNmo$rtFWIQjdk20FP3>yVtn48*W3({H8sFX>4a*(yik-IRu zAm&$JiUz~W097Q1QLPMosD37B6QnP-$=73HWzW4szH3jQkFSf~8WVtWNx5HLhW;nu zeY24YY6{tN4pkQwv%`1IA|bu2Ar7NFS#4zK|4iL18DA%*f{Y<(j0sh&xNep}A!TO> zv>EN1*FYA_3;Zj<@BP@{v+|uPs zTr8{J1U)EcJT_iusAfQoby6T+OW&vfbiomR=a627O6?TqUnLjS37z-rKT-4PiY%?D zB5(gAX^*-dxJf@%pU(QX4D%E*)g{{9_sqvfGb_1wlw|`aFTst2#w2tJX?rA3A9sbK3SSxTdz~0MM^n4obD9$T@rKm zbfGBjU!VbWQRSnFmu(9mw zEvk%H-zPBB-Qj<67-jU;`5~|mZoskKOeK`hh_G^b6>0>`4Yh2@$bcrc(?KmcS^oL` zZEdlL9xYJtOE@(0fhYBFe&Y$R!gi;lBiz!3Bi!P@ED6{$Ye-sE_cw9(6-2^3=<%Q4 zUS_r#B4JWJ(V=U`?=m)z=qud|$mhqzOli{f-@czCZ8G9o&f40EExUOF`7xAoX9M&nDcgs1vO*g+80TjZv*BNb zVN+W9p4^BZN5Nz5a|GwP+njGF*UbW=@dcqeM>{4X>RZRQ=szOJTVX3X-!r;$zvBnc z=Ppcv=*Mt#YNO8>aGD$RLke2?Bv@Id+B3at<4tW3KX;Y3DiX znCO%$;*FlQx_8Ydd&R6G$=G+57{Un9O{PdW{SGK+!gj95?sbw0W0L@drFcRmj^dez`OT&BQLfn#%(ahlu}ant0&!(v>uSigGSBVT8@MM)U-Me6N_0 z7o%`}4$1_P{{X;8yh^hI_~V1qm!fet+U+ssA2t+#fH13Om`}Mx zMWuko#=PNlyMO>}F0#wnYZODJVvPmI9jowEtkdlW!q9CHhJHX6umuuiQRr<;ufhPD zCbJF3h0LP?LiNZohg!tlm*!js{aPSW9C=aK-ONzIpkBAz;xVv z`Emnvvj2M%MPXnv8s93z2tR?Z^j2@j!v zOBRqe$%-MSoFHdgjPvFL#Mfd0MS0Sl?;xuYWRV92T0qV&Y-cw826a#)x@@V2gg3TF z=_W5h6IKdEOr(%^ltfFcf;~ojfoA&50r8YmS3&lRe=SzlmPq_eMrt4c9(@3 z^t|j6#gm^4Y)C+8FmDjA$LEH=fpBDn1|~Aw+7n7&Z<=_UNNSF$at@c)w=>tgv2h1N zG95TVbrJ!lYko0&@8lkUS~j35Ckh8xs6|Y%=Ur{l{$|90^FSTH!q}epqq9f3c`-d; zo1WxxjX;zv=55#23$8Y~J2!fj-(x*Vf1vJzD1Q3*!0}QM4aLx?C$Qk2lzRA6S zc`#E!H~?chzUL-UWh3&T`ai&$Un+Q&bDEa-o$Va}xji_MsU;fFXPriN)f|(Ddqxxk zJl|j?S!Y)dDS)llfsUvIz6SKnJTUgVrq6-5XOy{qn;^t^C_jrrk98#EP2YfNL|R%) z?~}ZP^0=5gis;&N{ir7GvDM+Wbz2wM51~j(K^^+E+CeUu9I(MYnpQFTth0$nitpXd zBOXk1w4ndKF+|bABG)rDt4^RfoA!1R5OkvAoRjsxz6A0JWY>FDU&veQpte(KiLE*S zb~nU`7H5&%hU1cTAXMTAxnTfmzdt^(h2`I+yl@7|(_dzRI47td%cNKQj&f8YmtRr? zK+f(=+j_V<%MjCXh2ndlTf?0M>?1QxL!Je zAOogME?rWGD~d|)zP?kw%k$o%tawYeBpmbYMXp;2taA1)xkLhB13>#EVtl7x=@ zH++%F35XeqqzR-0{>*7&Xu!_`tO!DYsq(dB%(d(VWOXS7&frwtLP>SCU%?CX9$t&j z4OZy5ajg!>tXmPF2~6Kq8>Cw9-MeoRs)>AyDxVNk>5A?>wLic0ueEfXF=HV1rh9kBqJ2M084&#-68WNDJMWw((%`G?$0l2E6fvjwLDEk@zNs>_FDZqR{M z3;VxB@7y3Tz*iZ|)s6@U0|yc7Q!G)Sag82lmswV00Pnsnh-Ulq-GwAn&=@O({ZXah z&E8q*rJMBN&AjV>)DvLUtHG$Eh}&~gpbGdd0{XBnW1)V0u&x@>=MPdg#s{#zq7Vqc zHMG!i;ICJ|!yN|`U z0|fL@0f)wT`c|hu86YswK{G}2PBv#ud<-lCfz)Z$WNy0A@t+HOpzzA;o^?(3&D39w zG%E9${fO7SbE(0?oddX_OVQQq$62;J4yy;uRp>M;{>#Q&Ar|=_>r@EpuYp>8&`9Fh zp0mj0*@|&y<$Ie>{S8N;*@(FO9vnv(N0i^p_T66g0<xL9 z!%dKqdbCb9-_OcDv&aRKttytA4hIR=(z#Oejz7wGD#&P`w8D$E=$bthig;~;_-P2# zhsipVIPO*GxT~;>ZbQeJ3Sm~8VO{U*6HnYa(NCRr%F;y6<$<6dS#h$fFgIgHKFKCd%ny(x=Y0MnXHNl`M^`jODwjMR>`zH12 z?SnbUR_7UZuAD`hz5$Kc!HQAXF}ptby@M1Z@JETVGRLQ;Gj?GQs&cxY zyVaX!I75?R8@>UDbVg^NYdG1o8F>`O0mDH*v5_8PX-fEG&Xmew+di;zbcR#T+9{R@ zk9VJJijK}@r@!)kK>rzj@UA9=;&UAhJlL*(4ZfHWO34qjX_u=Gh*V5#U|ONaZc zw&`9IeUOqyV0A;0!dGr;MHcP(&#F#dnPV5HG59Mo!u^E+2hce>Aq^nasYQij@MI<5 zAX2le!0$1T-=h3!f->XIys?%%GujtO78? zD4*!{0giRAkQBp=rJM-PE|F@7Uyk&0Am&MUDkHgvw}ZOv43uL>ZnAjG!l%NwSy!#xAe#RTuAP`|CvsL z++7bs0q4E0_=GY+)`en#GwtdYQxT}k7pOMB&#v^?ZzZi6{s2@3bx^CIqk!|_PZxgd zJrd8P+?s&?@j?pqhf{;jzEU`w=HLEmm;KI6@#Ob_S3^6gWNG7|4Qj@c2*)s z*juQt>tH=!hP^ejv{V6Iuqisny=0xdJszkZqS76=k3%oIoo z2imPZvA(8FYg{S}Gu_0zvDBlYD!9r~D)iAmGrQhyYgHsl90UdNcicol(>I?y;bS^i zm_|Yw?9%?(W#YF)p|R_QLuK8FFUU`bPRsjFcN+h3Ur;WvgeZrrC^KSdy@Y2{?)&($@i|beWjQm8$+5Tz6YpXuPNu8qr zQCgG%W(};UHixh+eggSvS7OCq*b21!3f8PE(Dfb+L~t1ce9Z|cN!2Kfvge)#^j}VK zrrz+_$Zu3Qp#`UHlb&54d&xGd4vZo+R;Dm1$6ce{M!o2=k(vk87zM1e@%6AQIG+MO zz|y_oGQy;ccKBG=d^~NyxO#1zVuL3SFj9m0tQ#+WyLz52kY{}cp#CX)z3X2-4BBgK z3w1XX$GyMK9f0)#^RX*9usi5zxH7lEh6SnQTd6`Pi^Aw0jjTY8Tqu-$X75LSqUWq_ z+DJ0h#=u1dp7G{7NIQoi?eqjJ8E#3^%{y@GUvXeiBOvt%+7zH@e4rxm>@(4->f^ihN-Oil9FXz4ob1m)FvtL^hQ zAGgTZfE@yAvp@_Q2U@^PV54VD^bp_Q4GKsa;OYu! zmpu>jRXNhQw?HSj2O4e0+<`2ewC%;<*(sI$RP@0NVe_(aes@pxM8 znI?a0$I^d1iDigx#;tTawGV)Q=<9KJ`1)Lz*W4~vtk^nxzltRSGaS4tLw&cA zu(b;|>n~A1!;~`&4Jfw1=bncyxNt_??Ikrz=sYTH^gOal?jMnWc}%D$V5tncsk*RC z<{oQi-x=F5o-wxr|EZYM@ZK`|R*zuiU)KXj1QPs9)2GA7S^?@f(b?`P( zCpG`EUPbXdBHM6(|EI7`K7wGxQ-HfnqiNX=v{nBTwV)AACS6Kpk~}DM3C{uPa6tN_ zScqEf|bhM+K)$9&w^QH3n8Ir!qg-WP=0uq5ah&UF{2 z8ECrQS`HenzCPE@)^7d}mBf@;^k{ zx7rHZzZ1;egK0tnXu6|wx}7!t3&bGgP?dX{s^Yn_#g`uwf#^BrsuX{H&a?^lXunPL zzbqJVEd0>luVa&Pj?X%#kk9~F=vwh}F!=L0dffpex6y7%)qTdKp0AA|VZf|!Slhwt zb2j2!g}+Dg*6{|kSZ){$nkzj^C_$C1xrtitp9k;j8fam2bsdozy_9-w3t0%vZ29zB}{XCz2+K;9i=Aq z8tS0)Bj6c)EN{gp1zcUky^8Dt9<9%1{=upwJv3!r_wr?W_<>u;MKu!{dtwBZ3QNrs z{#)X8oa^I^i|{)u%lP|FV)l)KBfqac{a)P`Nj+P8nJ%67nD4{M#08g?!jf#XF1z%Z z|FBl>Uzmha1i7%HmiND=ft1{ZaWZ;dofF$|b=zaYZV*D<(;glC7kpUWic)7w7<;4( zD~Rtw6cVwdNzq$3$8}Rf=2>9y#|%f~DxdBs!+_|$InDXc9ygU6D<+s;uy90IS!0r6 z&EXv&CDCTEiCSY6qlH;;NiMKIeX1z^7)AJWOh&R!dPtbgPK)r<%~jx1KD*k_oH6Iw zr9n!2MQ*~f-_?f6`efgg;X9?Z?iJm!%cG*brgM!$xVE`~UJju{Q%Y|0%lSmlDThnl z{BP_VOSPRYbuBc1_h+M!2XrW-OAl+L#r^x@acxz&WBBiW3FF27=eqi!D^(CI5!zQr z5N~56jw2(%>}ce3@;Y4k^RpyfHIg+)D*E-JMWd%DGC!phTsC+bZTO~EivP>P^rtEb z1K6#dSiS^Ylae*p%qVZ{pyy5l&Vqy*pOciMeRYxnQT4-)L^#>a z`;ODo`@?MYrEym-VZ+`CDebscd>0yf-|u#I+34nsZ?7#39-uyPH%c(Q`AQ%}Bm;2mXDeAydOZHf1ry0a`m ziMpjQ#yMZ+H=&m2fA*^j{-o=&_{-s4h^dCa7V*WpBOc75cIN)OKF^XFQ_seIZwru4 z!Y{cXJoJQm{Rck()VX!nMfTj4`4+#~39rrsuV&uvk(q1rPLCFzoaF5FPAF}C(>|jf z_r~(djnxr05jN<^l=O37KZBObdpT%W9?|Bs8VxWGjH*|0_Yx~F_4Gv7c zPV3IN*OOBO-#geX2sJAN_l((y_V}ujAJ>U}ML+4TeO;XpYfVaucz=X6HsSptKtgJP zPg{{V9@>ZhI)f|gyS9rw`H0U?(Iq6Hd*a*fEK8ZEN9+c2r{;v-`R{mz&k1Zn;JUsj z`tA7KAS3>0{CF;Nr5?6BSU@(iFYItkW$$pqGhJM@+@1;-Tff<7w5d#oQ~9?A?8YwX zP4nRBe|$$%DsR2_EG|!TnSXrOjfwAPKI3}jE>M50|9hDVo)$tRp2-7im9+{%86aFz@s3l)#_?wAW=~YE_v&RcQD-{dJe4e%I z{H!&q-{0Fke=01$t+t(4a}~*_>==P$Q?EJV;6R)HQCr>vAg= z$LiK;?SH`5_=XGalw|1Qk6pql6f(`SQ=H}C)n(gvZ{ip0a%VG+(jV(vjLu;`GJ1ps-GG-Uxxvimvx0N) zj!KHqoR3!w^1mkZF+t~P{Af$AHSa|Y6CU1#QA9tRI1j0_z9fHVd++iwpK-8suum@!erv5});8>~OBz`= z?*#enAi(|vIgc%?r~yvA@&^|3?!^t(7WK{XEse8f%+va=6eBbn%fB8uGJ%&03a307 zYRQ?syXReG(xPh&E?{wZDdW(|fEE|uAZ9VMWj~>o1kZ@&th$+r@#$q_KOXtYgfJt{ zSns4IA=R)jrCz?}+O@n4Y#;13n*E z^JxLoI?zU004-C>^sVu=aOS6h^m?mmD9YguEF-z|lMAgI1( zxNvwC+r?pSi9^+MQ9NF(X}m4fELjP#S@1h6cd8q=7~)DqCwy`iw~ncYSx)(IV$$h7 z#2&q`U>ul_IXadZshF5M;*n-iv1dARYy!)>RCaiKe}n&m3)8qlF&K#cj>RhtPUy0u zwW7s?@Q5#3*e|Iix}mGT>++S2IybsRUlyA(UTgvQ@NsncPUWLN6=t4@lTWENNaMly z{9HcY?Ey|?K62%_9JP4O>tRXqjr2~4v-lLSc*SnXwSUOwqvCGiuD-oYlRw3-&nRV1 z*CIXyTPfg{YlY4kpMhy{hTx4@-!mWg3z{-NY+2=z^fSkA*r#DWpxuIbi$8_Yw^M8R z%YnWY*3By9=Xdcnl=Bs-JX21cTc#+rXw91|hb@<)rK!JyV}b)ei14wxcSXn2|3$+j z4`@C49`N0~+HpukUF>B|QBqF>q^Gvj`nUT8ocLP)aHdJ5N~^!u1G89CHDjacoqrN- zFNz*7=gAd0y)@P+Mad)^y$D!7<(cH;$Ahm3q%;aE@Q$e_^lz7XPS2=18ja|mPeuCU zZ#O2i$4S**9o1y~i6bCo_p?S(%y;rbxqP0uuby%9bZ|=8G4mt@moLT#f^0`M&TkEME`< z%rS!o2l@g+y$*Gce4EiJDy4iGP@r%#QaqQ_pX9LXtb~iY;CC6P*dqGs(3(W&g*f8m zgwW%5Y9fk}XY{+4cFVnc;^)P%y?LU*A__(vs276rlrc`NDH3Gsc@eMlfFqxV-P%2{ zZ3BrP{WX@FbSSgPn)W?|=&N&{i5!-@yIxif7w}k0fH^vT%0L+6lN|BG41VPlkTG@y zHWv`9$eEJsdOZ3^7TtS(ro;Za!6S=oZ|4(ga~6{AdvA?SHAdVGc1UBv`yGLIwB3DeiSTg(jBsoL^L0 z?s$%;Sft=r@`sgY#@mJT!=6Z3&O777Zh@bLaCO0SRQFEYSt(@v!keMg;y)eh_04@{ ztkNCVD>zBHKQC9yH{VQF%Z;8+&EJ9RNG-V&HyQl+%QK4Symo{bhJa?BSr^H zfF|FmW9onrlmKQZok#xD%9X<@c%G5zoLPxr`<3luyDh>q+UK@$W}mB&5xJ1xUaf&` ztcdjM{;_{q)U@K~*u2gXdBSL^n-}~K{F6KpGd|ssEw0~ac&?N$Pajj@s5fnQ)G#0= zxPu#iJ8VVQ=8iN{cZGD@OQ!lKp0ms{HnPVhRHC9u!Rr;LIZeQc^iMndleFFzQL|O$ z)k{|xa**bQ1JZ!r#v<2S)bYA$_6|d*rP1?OpM*0Iy2C%|pX>nI}` z;`qD@=c^U0qgG*NeB*iYgF^3>`if(ro*lG(ltf+l%v3%}d7l5(d_&TT2?CL#Z%4fg z0Db@kDsAVNCx)R;lmY02>%G`sL!GQBWDnV-xiawi>XK0^UU4_p5-WUt*1z_ew`WYd z9_3!Jti+(z@Xtr?eFN=@l_zRb#$Ypu7VukImgqbl;542|OP3?VFgr|&QM|8Kn#Y0y zdVV(3O&JwE8}@%cSj_mdsilg%7}s(>i*kF%RQ9`N-aNJ4H5J!LujVi84YZtnC3OuF z)WQQ4X=U+Bn&ONFbTbCr7=~t$LC6EYAr?QUl4p@nJ&Wj)BjUs3_2_pO%(lZR{O(Fy zCaOO_w{)_E!q&=Sqs~%efYZknig7DtNol3$`N|SHJbIFS{hPC1m~VwbN$sP^lFM2JUgF6oZo^NC z!b8w~h{Tfm!|rh*Z?j+r7>h63sM-D;kU9tF;&%Hm5ft(s8}E0&Z&$=7S~v^W70i`> zIUAko`LB+7(Uf_Qy%;_JsHZsWx8=Swd6cNvy&h{6fZ$YQ=*z)-%emkW2>RtG48W`d-N1lLg zSJOWBNlfl7%O|;^eMQx395@%h&Kb+kq`@S00nxf8hJ`fo0l5p`pp7A_^yoj;ooOp@ z6As%9105FEzI!~mYS1$-ds_Upbmo@YQQRJFtsS!^HJ6->UKKs|bDvra7c={)zPVHU z#V(BRkL&kvq|8wP`j0Nh5aCut;|#&pkucaBJ;M@anY}kOz*LjWhpKok#M#{Nu6Fy=MTC7JRP z>TAaqUw96l(7@!`CaVyXniq;D^LT*_v3srE8OB{dX1|`CBMO-ZWKgsQ`xIDl-b((2!3?!c?c|cgP zb*|@p*JlCnN<_xq&A6qiXhVF9zpdF!Y$!yZRQCFH({$@cnjL$H*1VnrkYt@$p&`o`+ zx9}HZ#MnZr{jhLZVGhV-s8-^+`}bcQ0zakW+W3-R5>C}`9KDQ4zQ8UAktkil_)1nx zxXZ;6J(-Z>c=x%`!pzRf@h2; zZdQ0nXlAsd%lrpVJuo^t=WxAeGi0raxv+0mYP0=GmtH=*xVP=A(h}~4$&VG;xnW7- zz5GJG<4^UErwf=}IuLT{5#NKM(N}KLR2e96PEJ&fu$x+sACZycx&*G=Cs|ks1Ox82 z#-l!NPiby5{2{Wf6WuY6pVE@ur=$FEAN#cevHF&n0nbh0MS+y&jMfO>q@12@9<$D- z#r~AziDzP#gKo?}mb?IwxP+c1TX&MSlzlkN-M0ldJz%lY-k8EW*Oiw{2%h+MOBCHlF1ygfKoxE~ z?4IU>Plw%*fdudi4L#o9Yche80BaP|za48E?W7Y{BtyKs|G4k7ovGIi|HcQto2b2x`gTT%Ss zLbA8Xk5c0~@2Ka&6-s_|z*B#C6klx%`?_qGHe~0fAftS8*;R+7i;Z7GLjW~LJFMAB@KEGSqlHs{B zI=1yWPw;fPOp#n_kE#iTBday54j}mpZ-~r3%GIkmYHysNagJV#tIS zYV>F2RfC-qa@Mo66S5g1Su*TT{1$WrdU~@r8!LkyS%zMqjuZ&rgpXIrd^3Hs9qB63 z<|Aze3CtLFzF(xhJ9>|kqu1+|OAbXX90IpLy(n`J&idLIy!G9~%U)e#7bcdQ8@3$Z zo<-e;PQ1EAMVqo`Nix27_Y=vQ?n(%Y3=Xh%_K-(YJ8&%FY^>pZkX{vOmc< zS@-n$58|ZCH=H<^oC-wD!cEvId&Aoc*xR*mOdJD{km3Dy$h1|&`_1NbWV)iKUoP2; z(02;%8v7voVprh=$+4>wFY~T7d`uS`yfS$BNlqWL2VeR*y-i*#o;Go==(oK4Qy`aQ z(?m*&wPv}1p-K%^4GWq#9O4fFr$lA9ek7w*DDy4oE%71lV~iLowE}L3dBC zRwNi-Wqu`mP#ru;WQJK6AI?6<=WBybno6)DDB7(gsiUxwE4-iQrsJ~>-{dMu6x<2xZ*z8#7Xk}%xFQjdw*w6$2nVj#Nc zh3410qyqoZvzsShYxK*czpAvV*2(i-!WE+ z)M)1`&hoT%pWl4MMAF$&(vJ9Exla2-W7F}Jgjc6^PI(%hFBck+JN9`so+s+TmUH9O zZ&s-4*2r4PIZ!5JY0X(oow&oSzqtr_Dlspo7z zqVzq!a!OD4WFywCPvGU!qS^WF1(ua6-;V0-h5(!f*3Ek0sZHyREg4;N;gg1fZLob8K3j29v~Y zZ}>$9#O?x)gQxPQ@;ytBSn07n@~Ie4Nm5)?51{E?Em3sb3V02qx#9>)8${I1n1>A~axD z=L+C#jtQW;Dk=27(mc-fP{x_lR=E_jHmy z?TS90-kz0!WgU68%fUCwH*B~&GUkmfk}3ujF)OxIF*}k%ME$_U9KD}aaTj@p`#P6h z=F)of%N29-R9ngVN?h7ZfQ$}7TD(I>-!UjUmPmlPA+)pwWH_W4RQA^*$=;8c+a`Ah z#2W4wu?x^SceXh?jJ6Ag=_<{ANNtH@)2i^3Zz_**C>vLq%bbV3N${D%=|t?>3qcuD z-vrZ?C15mh$XCMQ$n;Ebi!9n%=eXgi@}u#Wi!^iRUnxpy?*=3cm813-+);+j$5&r@ zsSLb?^TN}o`#|hV4s=OSB+j&sI*Em*8j*I)7IkW!F6?!xipP!hrd`(xpKa(|jMF$X zm=k<7=H}?2%VtxjsfHG$B4;Q!q~pZHFx-=>3%me(JCBiMFr%=2PG63a^Wm8H5eFki ztqYDD?%rp62ck7k5cZ-eZTHmeL4}v!l2w2p6lb*R;jAbteYj?l)+>P0{iUXmo#^*mhLxYqF;Kx303}D|@sddjy!hkA+S>V*A8i@1WYd41ffS z1r6{YiDK!Hz}UWVa7)g<5uW{ZbmoK^QNiIONA}s8-r@G>s_;3ARRPR9;dMa4WsfDF z=hE%UapmK_xm!%1`JnMnBFNOZg3KF)*-V>w`f9L~Z^zyZPbBgVhxN%RzO=pZNO;yQ z;u4Pd|M+_EK&t!qe>?|ebt6Q{C}mb=W;hLd?`%b6WQTBYlBN-oJ<2%t-ZG->QMQaD zWRD8xaE|ePzEt;(&+q;F&plq}Ij-w^T>E-bylqL~r4WI3@wra!hyn1%gVB(~ zB9nB`NlJ;gP}QgyC(Q~U$8*OAo92HuPN&81%*T%L#j38X+jqp!HmOFgJP}7+k*|Ni zQfOM0DC9KrTk?+}ACVGS8ej3!yW*mUw6==Pl&ToY+$E^dNzz0p_cf*jUbxCNXkPCM zbPtk=^p>qQ@2Y!a@DC4-Z$LW8cS()_rt&&Vb?X9RAdcrfEwvQhwVaZtmf{MvSBWEg~1~3;>Gv2SXg|;$=Tk%Vk|DA3OUhHmAKrs zR?Y+Q17He@XK;%*J#K=YtkE7WA(a+KcZOf&YwMWXsb0Iq{7RpHk0FrTRQGgAN3ad? zUjNhpJ9RwotROf8g6aoj9L{X}v$mm<)_o=h+cw;ajJMx%_qp{Be4Jb6*B)slp56h2 zZaER*`Uhy{=??;Z3;6uFJz~JVXNjKaCAGjDk@X~7h)Y7#r;`_DJA^Yo@ zM77K@z-N%s9=xc|V@SLcJ`BFf2W4Q``%X>*U|E?Y4JYxdqy2ANO8@C94m+;aL9=~( zYj|KeH_iGBuF)Y}q!7y-ZC}1jh#@b#N2&FC=IO)VT>nZ0312u}FrY1vcwVB_6%*Q` zNThA8n%N)s?yIB&d6Ngk6$sk&H`(=o#w?M3hLq{xxPF(9JmGVON4 zD@!{152P$-8nDIllFwRgHf*rzg~P)?Jogy#ELHkVT@CqhDI%p7THHnW_?VTWJuosh zseaHcC=lbdB{t^?v7OUt)~R~Bn|HhOtO>kOG+tj(+ucj*E2fxBcVN{ZBpLsdXmRtF zvFvZ+9f8#X`E_S0(9^*%X4wnXE7i^vXy%CJ*to!M?k)R>{Pp!@=a2Z2N76@?eL!pcFlw{~?yUo|a^Mn{73oPAY zV)l>loey3o82JCNwJTAWjk}AAY)gp=9#S+M zK+#C@c7i)5pk~OaIBzB`KHU9fu2k06XPlA16BSb}!8B7SwP<|_Z__rvb|ou3vOYzn z{iz;dPA*M8W%Dn=KbT212$aO79w9v)ery$*>w!Ug6sxkZ_9dNp!}q6Aduo{?+;0WF zj4yWqOo#z~L)pxyArjVCS_GyA2}Fy6_nBg!Ul|JY1TD3aZ$#^c-rcocDPiZ#VC5_+fxcKqC%V1+MN*Sw zYvd@8OYxC6!d=)vKXYuV8PLu7Oh}uSxn|dF^CGb9eQV3!mJRL)=rfHeC5zT8>l|K1 z99YM014G;on{;>H$DY_bNj+e3aj&QMtytq;?x_<9KAyvqt^^G#k&QZkwd2jw{(;t$ z`5q(7PTBm`Oy06hXiu6FE|>*r=lwu$TZ#Q#q4qEUGsLW51Vl%#C((*CB?LdXN;)_k z!}9X`?l1I+tkWUJcAE`X?s72h3o`aK9QtnbzBkSqQ413OC*nxuJ^c) z4}^3yii-}tSx>Z3(piC`-GXev8@+2gdR_q6tp(UIU^_zG1WO zAFfY~H!^&hHau_lq^9CUHBFg&ttEl?VqmAy@h~zsmcqpMwD$s3RK04|ji~oj1OX8l z8`V8yw&{1*FLB&GZe3L~m8hK&k|8F=G1gP=*6Ee6CgR>2o3NM40pal?YP(Af zA0L9bm=`3(+AdT)tR1q>c8;oHpZl0l5}+W}xM-yLF#*wnD^jw`JLZXfL^*V$+MWON zl7{huzu^xYCWm~ZRN#S&iq2?DjoN~DiaME+PLK+dyg>&r6Cui@;MI0_5dmj_ z>uIMCAgfI~4#cCX=om7@tZS73^?*eiD5ZCdU z!Ac52SX9a^tI-i_2o|o@^TV_8eFRaaxedFxfW-n!xd~P5dWz9#wCcL2K~2pUmfok! zvU8FrH2A(1lNlm%U^rdzS{$*+R_--YWg1No`U ze6ehaUb-9UqM0i7F7)|BVXe_rK3>Rg|8;J>!HuO7!m57ADX{+(O~T5WVc_g(f4P5^ zd`C}7E2x-G85KD*tw!&l+O;jVaDT3$&AM(mYf$?AiS#AL67cQ6KoRFhIfD3+;3E>H zQz?<5oonstsnLIwP=w>?UX<`h3Y_+|4#~*Fi&TSefZi)D7d?fXAU%KoPMUW)_(gN3 z7#qBByujt*i#&J>{jaClSLfcN1-b(aWu-Sc6^B21pE<9y^skOT0&6%+HTO2Al5=vx zm8WmYJV^E$gSEFM*JkUUF!PneYJ96!COg4D83J%XSJGLXQ)fUHRQ6c?lR{9HXOSmc zV{dJ4elhZOfjbN%1Yfax=($_aXE^g{Z9wj=J>q(uNz}2Y&wnd-KloYV>pAHeA$PYe zGiyT4Frjkhgh5>wxw&=7=ju}+aJWtN2Z$+bTh8Es))|wwU49I=Cx-Db#Ri4H+Wz$E z*6O5_X3p5qSE14AUW=9Z?&(GADf{Bm<+bHhAtT=fqjWIs#*=v;@7yK|>(Cx04lqz{ z6ABD>k?m&)QoWREltbV6Xm4i?ptnd$IjhA8cL6NOYrX6b?<8VpR87=ZCdACleC3Yp zzLPR_Tyth2t@Qy*F6zE{T<2)M=cHXqS*L!r*V$eh9;^{^|HQtrDrPSbnD)dki~Dx*=S&PUhvjs2ZwA59Xa!-{a}@Cg)KnOQl)8 zU+ux#Pk!uc3=^V|Lh>Q+YvRS4(-~T0%U!ssg0=olb?F_>&#_iFM!n&&QT0;tdtTX| zMFzqsst?>%=tfmL=Y5*yQl>v<&v%e+?cvo?`MQ;F5Y{KrnWuwUH;!Em+*Ix3nN43}e zg?FHRZzg5qGn*m{-2&q8P$esx-!u;=Cj_w?$W^2@tSfu{Gv}@-IIJyDD~2u;7m1wN z)Svg}nC-UT$^PkyavOC}F8RXOSoUIQgD`w8xWcV#{tB9X+BK=Hli0vy(xH9i;zh!1 zkcG16$7!=VQ}#L1-&KzDR*Pv|mhJP@GS@ox#I;`;vSb)Qfx}QM`z0I5&*Ons)R;I! zgwe0V-to0=(JN?D;KkJWc*1K|JY(`v8CAQZt(9w-hgk!vD8>Yn@^u%J@-CN2%zup9 zz)Lk>5VLH4s-y~?h11uwVLP2@K$RNauuH)Q_>{p2X)weMIA(;{VhRCS2NGf;H-X;N zV2!`^Y~A@}p<2*Y{pztLhH&H7r%Toks=jQ-vd=Z_;O5jYh%}MqIW5Bg;ouDOU#@JDeZIHW|i~v|I}OfB9^{-r}Z6cSKV&^Kz$v;Mdv6c!e2_ zItNEww`QDnVXX(NE*GCQFGe+exz>KG6d%H4tBA|r{h^)C6913uDuFNQv=ibK&A)5< zy?(Mh6aKjx-;opETJoe3MNc~VP#)r?Gi2I|y3|OofApT5{jLLQIP-WK%Ac6j`JP^w zwabpA+*HKedPx&Ix!%E;m`1D6pFq4ExqPeIjr%jD6vdjb&f<;TY`$y1=?2IVMU>qy zbRseGivbpIbYoUZS*hI!{Oe}G?>by5I{nK3b#KK>|`XeOb8_ZGAEym{;+u*EB!u_*23V%DisOm;WvVEbx>026{bul~p>M zD~RoHwXeA!sI;F+=|=bsym`y!SN8)jKP5UwAi0_jK(?W2Zm{3h6I9Kk?e7f*35mAu z?ikfF(RH1rwD2;kP_NT<=!bS|4U~wiD7Zr$>6&9eBKxZ7o+19*f(e12uEZxS+r~<8 zWNK#E#(hS3oQ#PE`mTJO|VOu?+-iSZhB{;mN-{C z_OumSAA!CMBytUxsRCr_VA$KHmeT__fSPB%k^J1G^?kjFYGuyLb_yW6( z)4Y$i@Mew@TKTF;xQPVQtQ-o4*!72(v1ooW89_aZ{vGlHJo$-M{yG*TMy#e&skgwU zFbgR=z=^dmp9bw(C&&h|1MrNnRgDX%LlLpZs+x+P;iy$T^Nj8&BY>`d`XprL<5kpn zNBMDM_@O7L8N!^h4|@sE-*J?rL725ybcn@>CpOjw?O8C!&@QEVkH^Dl<#{hRdVZJB?qYF^NpG^YWnjrhRV7%GdSR9BIATM;xEFC_22>3t zO)gllR6g}5{f|4=jOuK3Ixu3VO1f=1a!$p|Hm3ERiCx~@E@y>Au&#(0W~(gQ+s%esx-~ju&f6Pls{!)TqdRK4m_RUs*4j=8He!X4*HVfDT&w@*wu{VvTWo z*X8_gT$CrFU;1MqNl=3)Eeb<3Ut>&^rBvnv8`)>HSx%u_E<8NGx87wa&xCAJBIg3p zxaPZ7-D>3RL1KuX>F70~{-0u~Iso?5GunCX*WHuLmw+mTqw#g~5**fa4O&og@~^p> zM+7U&u3VW*5VljMhMvsCnhPSADd@)ktlQjftHyU%MxR`;d_xw(Sq6WbWa%oMrxp{qes`z9L6{ zmeiD#;^pcTRtO7>V7Gdso!jriFMAYXN7`$33>nwPO&+IO21|lW%?kDT$d+2am8P8v z|AHEii~T%u@v_|U+LBq8E6Qh;M#Gtx!gA5!H7)|5-Nz``riWOEi2kHg|7aSF3D7j! zFL^CHMz*)T&nhQnY+i_H?W<-v;=aeWR7eR*0@yGOK#&A_E6ON%$$7+%W42z%riz-m zj^dmps>KAg+nR>D{6?yLV)*0Wd5hg~0Y-m{!9qc!|FG)p3C;?M%tpPi{LwOm&<=i+ z^>h2y?EnqyXO^wn5DIUR31t<(ZdsYRa%!C#=S|1R!-CZE&?ueuT>3}k|MCY3>t{CPi>eG~JdQ?>{GGhu zs+k;r4g~JVejs>a{0N{-v28`~$Ifgcn!MrQHsn!ltl5#qTfD zrYT!Crk8)4*k0`8Ugao#a=<26l|U7#{`D>V>FDFMe`^6o$j&6Vd9Hh8^D?=Ji+&f; z{6)7YyCayUpyH+5J(gjI_2nJ$Fk4%~!Vq}LERoL7A(CY;+xD3!R2#4Tw64^oYkEs_ z<<2cOYiC>$y5dE}3lRV*NehT~!|1Z4D>&_qvXlmiv$iQT%{$$a>KZU*M)d8w_OcQl$+h! zw0^Qf4deXqih*&JT=N*}`-JdcaR1oLCUqOQURB+tmUGVsl9+;p%j7i z(-Y$)lhVT1<&<~gD@a{$A_eS2Q$v3eZkROx>IQA>RFhVEr!@_ z0CuMYN6xY|y9Iib`-cs*??2LaRF2iLEwikvrNRw>8SewiNARB2r*sjm{({u9P=15L z51wNO3fL&?6!|}bj{owR+jL~&PdsIC-^~kZoX_>QDXG>Vlts+Cx-oW?y~|JJDc=Ou ztP5s2)L5t(Ui=#qT6faB2dbGc)Flk@BcgQCpLp6VlMOpHi#8k>Ly!3YaJPVq1 ztzRrlwDE83=l7Z$o3K8NjLfnLW~bhl-zG5F*4z0Xfju^1Cec>Xy$$Cz)-ZPpNn!{hNJfw!S5S&|`OJ7F2d{vY+AB+LOUgCG^u4U(wUS6}6vhW?7 zYqpC!8SctGP(?Q%e^kI)3lkoRkao**c+WJOyx@K2`S0S0zclk?8|N8W$O)-LR_*rM zQ4z;TIBH*`!c4Op5rflnCIM5NfIgmUqrP#S&1vdq1*#&eyS$DEF&FyiC^P$*>`&wUDg*X8QnGIbL_IIiYkJuN(xy@ze6}n znuv{&a0tX$da;9!!UjAHIwY<>*-J{!tfV_kKvlj zUXrc_x!V5R`*{F$Swr6gu0Bp{s2FRZb2Od1Pt@htdlmU@}HieBs> zs%=&5@B1xU17+IAJrvR!K zbC_pOpA6yTjwo}Z?%b>5kOvmeLn^AlO0Zym&J#>~2K9yQ!CKtAp68o`k-jO`o}~mf zF*#Or%c?dK;l(e1p2bVQzyH8r5%U%y9L4aj$pdPIE>e{@WnPF)PwU{_#>a4S+hXdd z^=*$mv?ZdZO~q;-QH*^iz(aMUWU@n||@>e5cE zX7Zre_C{bI8t=xxLRGjzmPo%Ji{NOYcN@XnOFTY38QFo&>HYU?Y}^VQ%*SORa7Y4} zPKhHE*zti(R4uQ>l`FcDHMmDT4&IG(0mK~U;VWWQ5zH+=yl;DH;zFM+I#@2<0r85C zV`~=ZnF~|<{99mP6CxEC-ko#j9lCl&GOiId-FJow{h`l;6dYU~jOxTrf8Km+}+ZqYwF9EV_EAO`${sBye(-T%E6PYV7I;1BKlLOv})qr;p@{;>{cf|-6$_Z zHY-Ik;5NQoZkMm%u?cK-*iyrT8$5`eXMjZgb9#y4Hs4)ol2kw2i=V=$6~tBAgehWb z5k2!G$FF0gF4Fuiiut21kY`9=8%EN7au26|P^uB1V62_PAC{~kKnrAz6*OEgZyHd_ zhC6^|yz{zHvNKg5-oJnSWU&_WNJvvfZB9GK!RH!>hqU|X(?wa|Rm-FvJ<_3Lb}gqa z@8fKeHEmYi``g*sD>KV4UkB1g!CjQ(=$>e(t$h3h&WyZG%^4so0z|-aIR>)_T43VNc7L%henEjZX+=Lg2J$4eM=Z&9W)V z-F_Q8Z-Zo-9=ssyGGs$c0j!p6dfD*V8N^W&iY`Q-4)s|mx=i{tq|=RiNaSer$K@Tt z5PiDFYPs&+jpu!)wf5^@t+O^-;x%1_C7$f%5&k=nTvB&s5^GIjO?9gj-_=?V(F`|m zUw|_QA@;WZYg2zM5{%WE8!&OijdqDuyK+{mV7AB7O8Kpa0(Muw)1iE~GWrI_@^O*j zx(hjyjHl^k|7xH;<^!pk^qhH|b+m`1?J!q>M*60Ilf`|$;#JE#5Hz?!A$Fd|O_`Ix zY(Vw#KJAWF6W#7q>dtD4dpF*au&7VqC1T-FlIl=PKWm#8d*06XeWe=VOzA$-?3o`# zKiPB)X1cfY3n^&^Vv}QHB>8R@S#U#ZEJH5jOjFiNC>Y$dUMh>L*FayE#m$qe_Gy-O zWw6|c^Lfla#}M9EhR5*b#S1G`Mb&z>wU&kaDVh5BK(jgU41}@9f^1n%U@dNKkzjND zw=Drb=QzXl?~VP8<~{SuXXXM5y_MbLF-otx(fV9PV%37c>#J(o|sTbSl0kjaP zVU=)ba-Rt}a2Sw0zEzh|>89IwiNm39%TO4tX?c4ty`B#SC1g0?1I7J~h2TgjnEO$4 zJbNjwlJD&HPMd1&c34k+xx%Bh4tzAuVO*HSD(}>`Zyu^|amJpi(4i^DvqvJ>v3oU0|4-x?{=T62H=x*=2p;! zxU7Nf8f=ZmFxLJzoBn5=HV42TZnFg}Ym|Ako{lYj^IWllfyE#C@0c4&XNFQjB>wYZ z62%*^YhKn0IDb=TTu_&2A9wumrJmg%uELTkZt#fWv9O)*k}QRc+YQ6IZMG8STp*XZ zAFZhdT?i)oyZZ&crUz$g+r$`NeLsVpJ_^nRHvzo7S}73769N!n_*O*fTrn?xrTU^u zhDiApLC^Q9y6_+nQj>@q@dA&yjU*P_nLK`B>5k9JUDV9UuwUzo&DSyKtwr?l z45*?3Kpi>u49ndOc9xP;#k<$|O!k>ORPZ`-?fx#VXDn_v+-(Ujoe@vt3p@f@AY=et zOv*1<)mH%^*cJ2mE{|KMPepsR%=MXvk%nEB?D&ef?Nx|S{TeY!UxwcLIGblGf_urL zUyTTUg`n?Z zD4nm*YKPXycp$c&yx7yJRYYzR7)StxfM^v#GDf|v!@`|QeWMO>``qYO@3AHFN%s3~ z2}0&8+L`V zvPXOala`JU@p%F9y)s%#fM59vS(Rt9o70tctt!t3+qX2zMm{WJP$CguVYyB(EreT< zF0SX=ofE2>bNQk@#mv6YEM7`v!g~X*Yo@Wf5jbhS*q~50ho@zlyT>Sc**fo$< zxj|EI$X4yFjl<@NBi3b-HDBp6xdx|P@d_(JsbDXUzJWk&7bBV6qqj-fsLOn^^PtGT zxJXr!%WX3{Uo#-oX!C8HI-)h=ToIo;0AoMMi#i$2g;6#eC&UucbhG$;n4_#U6Ox!F zACTbpLcNe&YFQ5X4qB@aZL_q)J#7 z3V3_CWUcN*#K7!=gMp;MP#8G}#6kNx;0G6yb?0Vk$?8xdYDISDE3H3F(%18Blts!+ZFg?#xM@p*y&vvphvcitu>C&` z@hUB6j&F9-b`oBy_bdG6(?l&QqJTBCZt(M4u)ac_S-cpOTo)vEW+_(-lHZ+Pt%(_( z`&=B-E3zFTp)?=?CX#-dvvn9uiP@GzDT{dfrolM&Ny*+}@?`)D>*z~f;8G>4^`^e% zVxbHq-tawauj0u60#wFEwCrDUFVGE5)(zMSX)9l%Kp zPda9vXH3s!&-;;j`>wG1XdyGlIlnqHsO9Pn8TNyLkZhF$49{F1q8+hjvFn~E&vCMl z8{=BrvmELJS2HkqfWw94>@2tk)p&Jt`iKXhMP%*wDhvLjIVeD9l-7Q@6t~Oi_A9Ng zRwh0s!HTf&og_&+JrYLJ%Y$qlCeQz@T)+XtpD4%gB5OR2aFlt9rU;D}^{Dy>92LdB z$|p){5o5E`zHPI4CW4+n$~ji2&mAH>$)Z70vCp+@3qA&u_R57$^B-`h~d-=v(m#^6x3N0-DFx2?f z>Mke$^@HT_fcX&i{hEK;!Z^Iv@KrTAIXosVnuqzQ;GeQ_*r|z%x5lRI{f0j*zWB5+Hd$ri-)#<`X3e0^A?b8! zZmVeRZj=)44DUrItqkqu^_+5MK*fAsSdh)DE%i_UeF>NHt&n)6!kn*X-)xA9Q_Sg> z>+6fY(fX*U<=L&H={3A~-%a`~^0EZUd!7H8Ex-R_m4>N)@6!_a8PnZ7nr>iw&&P>N z`i8}Mu${WgL@|A;#7mbi*DFzTK7*?fx}#rii%79;H}RgT_Uu*YcQ+Gp&RzW?&hnnI zr98!Rd&S3Y%?izrn@KDru(_5XlJ>g*`mgv?q{2VfVgTe&gUUx z-*@9~GVd7$X@RmY!J{kQmHd8BdAd!vn#%$~^?(plVri*R+`eQEbR0f;n6QcN!*ykx z+hEGdOO)mG6#-#>`5v=u=;CMqj$Nf9u~Rb}2IJ5+i|@9x_*}Em-72GwkCL=yGVcz4 zu(N9-ZNA2V7Q!tI1Tp8>Ihe)mi&pR5SX~n7>waGDd!rpTp93GUe*VDL)nXuVPwV!3 zum=1bsP046$D;_4m&on79P{3!NN;!>bnH}INKCc5=2eK#*sTtAvW~znJyrF^7$-|_ zzv;{1F=Rdl1pF^Se#08y4_IS~w#lZtX4Pt^zBx@#OjOLNjS7Cq+)wi>kzE&%7P>e+ zFSrm-vQ=NV-JHEv>+@+AT{F>}Zdd$Bfe@R0t*ZODTJ0_}&oZ)R=gF6Ooa&Q$+x^Zz z5I`yhZ)E<18@CrKU(==Oo4fvKb_%#Hv=MF&j8}D0WZmgLP~=^i@RP)`bfIc@U3OM`BoyBw!Do7;-ZEY z5WjK7i!#zr>5#6ZNc3yV9MLPvIHhBIyo2}hakO?c2-Z@Rz-bvk+169fplBlp;`Ze4 zZl&vU(N2V;g<2TzQ4NO#Z;Fq8y!Dnw=@$!!XRX9SvZQ6$%f;K^IdO7*xYZn z>Rbas_9&uvpVLohe3MePZ8gH^nz1>qye?6y-2OaQ>)kf5mTrkQMC3v?+CFv2*9%MS zD=PdsnG#+lof%E7K8k@a0?OQx$W zgVI?0ehK2r#anfaA+$LOD$=qE0n4k${>jjFSloztPX$gfi}Ir!M(m~24QcoWR!T>G z@ihvMFo|i2u9Jsh4OH*};puEEl?rVWz&clCe`;v*bbW9c3PLRAfMC-Y&UyVC4PVD@ zM}^v(rw(`8Ne*5Vcshn8%0mV~!Bmi|b|zE0aEVDuH3HvHDh661FrYoOlqZ`e(`%JJu4=~8fZJU}8`8!9I z$LF}+6W@2Ke+NaU&5qQZZ{S6zX>IGpM&aM# za4<&h0C|oe6G+Zij~Kcaopv|x3VJui%lD6Pk)?Xd_HX46yLZ4{}X!1A>#3GE^nwwj! zck06CgDll@yJR39ABD)O`)Yt*16<#;tj@SY1adx0mE&`f2Caw6Q%*JLndlBR3JltF zs-ecqbjKM5i2Fe(;>*N;3H(3T=gDa{aaV??CbDYIK53rNo#p)=YTz&ZMh$#5#fUF> zSbgM}-3NvPfma}Jj--#XX6_DCb}NV_dnUi#{FM4F=6n$-`9{+IxLrj#3e~dx$;bcg z5%^c2JTIFKQ_|)5ympIFa8r+X6MRMw*i@UK`vjZpFK?4M zXrFvb7zud^X=6j`^oSgo(s&IWPv^BHV5xQ%9b^=6>>6@WnGosMUktu#HHxVytJvPL zu|&%?9@&f1uPd_t!c622_bxI2tp$)4L`MT)=p6B&I}8kxbR-64wAsdUx)sBGpF@*5 zEV7s85am$r2FR@Jg;#Iu5LrfXPvKw`MyLPboxquijIz61@nN=j7&C2$WR(;>6#6OU z9_JZG1VHgJJ2j9P^fLLsMo|JO!+_@62B8>DTX}I+d;J99+3AGQaB_&brPb=N_E^ci zzBMn1_f{wD4hk#)KW$c{D$e1`*p#JC`92%tmr75uYY9dW@Ol`q=F64{c**~;V9hrM z_`3AM2`VEza0Olv?*_D?!rur;IbuKH-?BC7a7SW)=Kx_+@KXS0h0eaxZVa%TPecj^yTBjSC>08x57dg9Fe_dLQ@} z{1oO^UFiy!QN^n@N9@xAS-B8NUdGRA4@2fEuEIzxpf*P3@y=DKSr4$XN+bFHrJsMDmBZboaJrH*%z5aE(SR;J?Wec|WMia|R(!1SN~)@;eZjTgnoJ=a`7gQyS@fgsO&*A3ltu)XKt!IPw6xv8^1kA+PvZ=XCFsqG+y zckx|*1f2GhzXiZ#_NiaXiaa2_oZb8XqmirWNpyKzN|)soMBI}-tKSCrKgH}cj(}oa zGN@PtsG}|OBf!W9@pivPrNhStKm9zCE;ml~7v{XPd-u1=F0L1f+vSo_3Ks@ifsyGB zygvx*dfh=6R*kv1$?q{A|LKalG4jW4Ru&U-&H@S>-$hi{8Pfr_gBnz>&)G-49zM(s zs{0HelX9tBV6UX)zoUaP6dZk`CLv6=d0tm7%G0Ur1wy)GN-DXBTpZA`2P`0+Z@-?7@<`M^ zoG+N|=GPWuM0?71Ln1pe?Mn z#3LngBgt%UDoLT*%@1$l=P-cK)pDsfe5SMh_qMc>D%Ua8<`hM*ERpHwL8L%zy$Q1u2TvV&}d3se}t@8&=cF|XNx1J|vp zcPUwcDb5+$H{?QAcIu6wg7#Na5-q(vz%!*FSp?-y2$b`Cr~!Qc_n_s}@sdmkI?`b( z;qkJpc)9D%K7;$xvJH};5xSWOs=XXO8%x)7Ey)*v({|Cc>LG9>S-Z)4Yx7nqLVEOS zpJ-5Uu&vt;TrIZ)SQMac_4hCYdOVjI=D;MMeOoYNAyUR8A4RN=N*FTE4!U%;otMbi zlQRi=kW~HttPU~r=zZZVSYE~#7A1WUo$HQ}i3Ws7y((rGV=0t?i0@)yab%|c6*ZJ7 zm9oRWg>=i}|6*7KUB0c}-2r=c$q|GgR<Hjrm`C70(T6h7dJ{ zM$S>GKKA=}AF&P&I5~lO6$U$k+S{3EQK)9p4XP3m6xo|yvtP3S4Nug@(ps!%F?GY; z+S1;{e3Aw)b@?cO7=ND6=|np-9uQ1GRmx2DKljR!_EQgISeHAhp6_;rbQob9t(cmd z+8~GVx-|k&{phVE{qI@=gzvp6B%xkUv0Fq>4yZIh#5z^T+J9x2@Kr1>_>A;hPVS{C z=l4J|$u5uoW*cH(im09cC31smNVCmA<*i%JHJzjPoIMS~wFL2E=a+%{C*&UYD#J5F zC5-tlVDs_AKNSyh9Z+e;b-Cy_#?^7f5kK!owtX-Bhe@(#W%AAu5NYv%X_#qqQI}JW zwen9~1xjhg`U(S(=KXgECO^mX#^_dL0UO_ zAE)h!jaeP>qX-v)9JMh04Ml85hP8?+cxw6&|=i%>5&yIg3 zV@Z5%G;(~Dl1VJrIkhn8r6V^0D^MXwYSA+Ma)*I$_kTG&uZ|(jzQ0#qxF$@CdfsBK z($PMB`(7XrcF<>{aXhRe5;BHo0LdlFCL<2r7|E1uU0Fndg5fD&1{sZ%a*kx@K;7dBkNkA|3<+okba*o_qVgT`Jph?kIz#jhJ1nml z3DCOiw<=gU!q;vG1Akh~?W)M6Iq0l?Ws20iryUGZpjFoc?bM-N-%VxU_&>Wo(fqYl z-U(F@7<@)DSF>U(TkqEjaK*=A5zX9WLjon^Ap|`uNDx`4q^kHo;qr&nByYMDmX3u9 z{)%N)RqeXxY$MLwU=BF@l@`)wh`SibmND~_E8vNwWy0cH6mPL3@w+XXxqi)R$7~W$vvX_Bnbbx4ZRU#v$4-Mf0jV)qq z==SZwpEP92oE(G}3}6RxNXskDllcrZFhXE^OF1ev`W^Dvs5U;q+%~iA@EZM1#xc?H zJsTg-+d;D5MfW3O3H19z=me7QHC{Jz590$omuT^;N_0t<=7|c%KAQ(1k|C;RZovl@ zW`Tltt-{iTcg~Yg72^vI7)H-Q06>M4eT zS&Bd}F_NrZ2NnVS3nQ?RgL)~Bbg&7+#_kTSAfZ}EI9sy07~_Qo;PqYI>(spWi;uR^ z544Z~18nPrz@g6xh@>u=4dk|DkI4(Gtfwxsv6;t6=aWE=(GM;H)6wOuJ&yqk$W|pX zMRwrM0STs5>pr%TF(;~iZ55rg@K^7O_mG;K+w1GFJNaXK7{Rg^QLY9@Up`&|J4mx5 zunJldASWZ9{cWSOU0XbJ6YLMJS9fel$`P{D$AGJfZ4Avih=+hK5(GV!yj9*(q$3E! zXy=S~Y)!#4_Hh)ztj4I-m4*Gh1T~r^iGV{_J552QDhIf2O0BMh?&?*pQ|RW=mQ%^* zO$l1s+}|Ct1EKF_{u9;zxx5n42-&@!DcPY_mebQhQvA_v1p)y7W^4DxLr)LwNz zqYI9G+gN`u&$xdFeh%zKZdz_jie({Q)nlJ0y3g7{0(3LUppc9Z=FWT!1XzHO@F?US zzA!MDZ$gJSL|R^MI?y6e_5F`Wfo}tDGDp7TKl|AM>UT4MVSTDxYQKTneU`D3yOxJf zejfHA8GE5D!7U;*j123UjD(srl4P$?IZ05$VAY@ib0z-5?~zyg)Cp@O%x%4}{p+O* z88PAP>?k2giO4?(PW0o~Og^!;@??Y*B)s-&hNBPRDZGGKc>%fjt0KE@G+p!Z!jFQ< zPqMc`?P?w$#j2=5BdDuGoOlLH zRs?3g+Q>*6EBKsP|6ba`oD8eF9RYp=XzujkCIkp_CYzh@Elg{abVfhox;SX8=QqPi z0_C~F&l$O|dVf!SvW9>|R~GviH*Usj1;r#M8;IsdHN6#J2V@S1msrppC0a&IObZi( z@rb<5*9BD$iS-@wC=A=scR^qAzhFCaja#tPa7<3vt!kqhOX zz5f4i+XFDm?cnxSnds~SCs)qv08IYdQ~ve%vR8wB!zg@=mmW_`x(sQ7&OTvlB{N@2fy~a7h^xEA<=(C zx*@gPSrW#)EOlDcb>ms)6e&ilHs4-_ zot&NhVb>pwM*v7R)Ys;`EA8c8uifNyg<@lEgy|I=MykMyBswAQP8+-+M`Sb*Q7Di`>_pY8o&!~F`gdveZBxTQH~N~ z`}M0)p7*b^obVtdAjXQoe}NqF@5BCnT1{OB=~_u+y&Jx>gn2hRHs?Aq*SN}^#?1jE zI`^)8P-dr?5@ys)^~#p`nTwmOPhW>nCT6 z3-5`nJLF-xUTvon(~ihpvhz8#^E=4JA8pSjS@31US}Eo3D?S&;s`MtF1<3lX5|O8B!LFt zx_j%V4?SLZfnFZZA}2n)Wa`|d^`ft@$!P(z6ef4+Dp>g3XPdOyQreNcJJV%Exok<} zK1^2*-!>U(N`u3>_$|I>&aTPM3C)Yr9_nu?Qm^~LHSBm_EQ5jm$#m+DEID~Y2cHy! z&k=Xeb%p*T#Z>I1MqNE-mo14fz?BmN28$)9U9xylD)7I*-6Z}M-t2}Bd4F%5nX6Ft zq~Y+e|9sUoKllZr7ss@=X^fxeyuR52D6CX-t)A_mTuf3myX~IY+?>__$(_alPoh$HbpK~RSA(BH${$O-DUOhQ)y&46o87oo4+9-d z+^nDNQf5meqYRKauj^?6Q>uMnCk_28!oTShXu!&ZV4T~i+8KR+^;fxrBxs0+>c-uJ%YcY0CjV7ojI(FasE{r5ih_q*NHOySv`e*UU%_hi(9@K*BT zD=LO?z*133mu?*Rl&JOctEC$EO-CCIcl4k)^O7oR@%GD*Bgoye>RZwJ8jd31%0j@G z9&tH`m{E}zLLR5eo|Q=x+BxQ&?8c?d&F-d4z?Jkdt@F=NJ%;>A1|;bJ!d)?domhD} zbd!u;^ev-GdTeB*5@TK+7;0{goG9p>_@WJ@?& zBnu703$ST*29-mk%{==`)t!yWd&Gf5Yb$4Xsj(-h!{$5(IqV9}4>Ow%VWY}aAUM3A zgh?J9-0bU{tkOZnt0uI^@4k5FrN~ukQZv7cy5?86M&iNuz!RgG(sx4LF|XgJ^~u2x zM{cnWKji(jwdkA>)X{OzU0ft#fQX1BP%SAsb@n0O1MhL&bBxkrfD2r!;(e6GL3yj|AnyL67aF|7yeVTI?S)-w z>aNC%Bo0!5MO6UznkSc1Ax(h>kf1t9P`|pom&6>q&qOzV6^7se%iq#RC_g`f#WwCR1T%=W)-CQcL+L@T3o3X&J_T?l&Q z#lbIuwi@d6qIUY~D_Y_q@nCZE<-M}u)DS~IB9fb~2KuxiX{W(~O@Y$bn%4dOIM}~G zkh-Td;+9PsH$CoOnx3|gkg_K@!Aiy7)ABBqt6YMdh#gQwiu8f)!H4mXVdN8Nr0e=YXbafn)Xm9&_)Hq>r$frcgKOayzabJK@RAez)g@Cr=Z= z0^ns4GHw1D|NPGn+hGq=;@#PPtv>S+nZ0UaR~smMBkP60O3WZ&`My)EeENX@T5yK( z2O0jgF6)vHt&@+(!#2eBP|@tVrQ#k0J}d8AeR`*p0I2}5Q%w{7_5bYCdbj6UQ6k&- zPurMhPkFKm^7GXp(&gGwDYnGs~gwg5&_^P#+XP{$A{a=lXZ2^8I!D17>d>y27( z5zF|&Z|23z6luJ#Fat&pBx?#ShLMNPYCLWy(!KNl>bmlHsPi{ovtvUSa&#hci=t8} z)8-~JDM`&`HXKrZ5r(oGJ?Ylv6IL?XXTUn^)2(^R~a6jgRkktM^{^kPU zURLg06l6!mZO8CSd)_xE%eoLRhpIa|k)*923kl&;tggtiBknO0Vvyvgq>rc=B!}hw zsMi9W9L$hfw&d>Gu~Dtk&?UatUP8b4p~TsStpFA#U;u^7Ca9<>gIBX0i80UB#@4rm zh7Ni9W`vo!Vn@XFl^>l|j<<&c|I6i`6{H4mxs}Ni2a+_ND*NxO`S(-PeFl3}ya+L$WET!HDk9xSetUGmlu!I*5XWGd}yzOBxz> zNj34arO#rnQPd~GGa<@j!$M^Dob5N%W^H%@2i5wsVs`T?bOk4@+&kZE!&*l$@5mlD zPL8b*I4H3(FL<+>!L8{lp!Rr|#j-7RxGgp=E<+tz;%q24rF5Ap@|k@%5(@q!C{y9p zTufGfynJK6MnfuhKk4~+y}$y?T8uE?P-)?ngENuajuf-7R{U{u2hD|b;4<^7DbFy& zn9*0ZxB&q5ueasKXvxEj0d<6(~m4T*$Aoedw0c`?+R~E zijp@m;LMJ|6-A_G1^9+~T0ChJ1nk~ez6XAE_V4eIKkPe+FQRMu1`KOF804flD&gi^Y!T$(MB-OEIgtgE0X|&zqbDoMhezqJIR9=N>ri!J07B{WDZdHn%i`m7c|jdU zONI;gR)RVV6Ewm5{HzYvlbGQd@~vNKb-6hb7e)tiUl%$~;_u(Y>97P{HXQU>Ahf$L zW}LeKTFB)RhWc@PoEi2#ZIN@Z9)9%Nn}0`3vPM>$#Hs6jg8EAMK3m@vKuobfLZr^k ztv{~{fxaPodL>EyF?B|k$QR&SSjB(s+O>=jV}0z1U`l}RE>E+tHgS+rXt}5@N=mkP z_i^vqH{fV2-J|Z`3pcs&r8#lG#`z-<{Bph{QOpGObz!?#X~Ee{N4*JG|Ne^tr$*1* zB7yJXa5tUk#qiI$z`X&l$kz3qRH;ke+b#j}O-^m%f&%-`f{Kl;p4c3*iNs$Vbw5za zYwT6cy>L<9usduY%y5iZ#j&ccMwyge%h_FA0?Z$Z->Qb4ZaOx~*A;wh(lN3)0=oLY ztOW~y{>Jd}SvY16MG=quxYz$+AHSddv4C19-CEyOk26nQKFP%;eE*tL5NromTjWnP zUSrn>hZG0u@aB-}>aX$r_v@6XRdo3Ej{!~zK!?#h!@H8=7-Qadq{@bJDS{*zjOls4 zfuGld1HTe{U`g8I{dmsh6R(qvrK6KZQOC}jhDQ+Z^1)_7ZwGimZ|9Z+!~VBVL{L%c zDLsbYmWJe#F0Uktr?w>HSU((3X@8R%#}n|~hC@(a9S$i+3yMYEB^wLm@kz8gS<}_P zzRQA5n1>5L!amevNvVuBI|%lfTM%BzBpL)fAj4GiUux?uc*Q+&#pd8QK3?^zXDkpE zu@3dn_Hc+paO68br+NG5>xW!|8}KCebvT1lLe^3zl*s5kE-fPyEp+HONA@jTRM{Ss$`??S6V87@@=J;LG~*+?c&ACs(lZ_K=<#F;>`XYyj=5UVXFW24#Uik&h_7> z_#(qkVX^jzNpC!478DIYpI>`O3zfQr9A8DRfwY{Qh&qU{FP{0#g&o=Zz_8ZBlrig* zjOow|h6RhiM;%5jSj#f0ncow()YtlY^t31P}gRc*{GI-=$(v(S7cqKYv8V zKVVk8)21oJFZ}a%j7PrvSM~L&^Ph6U`WU>kRIo{#fMc|^)NNevW{@o7!RyV;$_JEg z0KRn*$pSNrL_R)pvXirVRvU}z&1zN_+w#!YAIKWwj`o$=R zORA-k38Qwq9WWO;t{gOUCwFW$Da5YD)PRr$?xr3=Evtil|8kI1Oa&ZMx-z0g5aSy~ ze$O~*y@XLKs1z>)Ao`bU#Yw=orkr8{WA%nzSFQZVkZ0ZA0>k)xa5MXJSR+j_o@47NC-$lj|QZ zZ5{3nem#}ig{0v(ARbg6&VH(w@(@$$$*V&rOT8dGeDVwo&tuNSmRZ`?KQLnX!m}#F zE#^^Omz|sHIy)D}+xH8v#q4i)m}VT2XXS|HhjoWLq#{u3zFGg63IOcTPdD8;1wr@3 zbjPdyuUu>KL2L&Kx#brKrjDi=M(f~X#qWhXQ5yXm+q_9=_Si^I*m|C{k&}1SHYOQxjG zFe$b#8oo7p;q*JIpd88dTG*0w^o+7V#p8v^kLD2zM=2XI*t@&m*{2Vc7M<6&*#s^^ z8oar!Ya?pi9KP#xUDd}{vu-^;^K#oa65O)dj3>bOx(txOY;Q%R@u8q?@VbD;cu@h|})UVuQ--okd;8 z)oR~_Pc-J{Y!)~c1ffs2qplT%q+mZycRl68FnBv~?aALLTa=h1pV-^gUt%J{7@YGd zY1&Y<<_JD@Dl)J(9xEvVS0vH7lKdg{!f9IKYm}5PVKD zCs;`#edVaL%CSiLM?v7GG9VR|IDX|jydcvzL~itmc|@BDMsk#PzLmbjITun@iY!~y ziT|76?mLR9qt5m{@=af^$?@Xl`}(rxUfULuCR>!gbtySeyR!1OlJFjkDPTG&J_aQ4 zvx8rYsfVi6(&T%HM9U|}TZLt?tQJNo;>CO{NH=4c4KBx-vZ{wI(<{T%#0i5EsqNG{s0z5LTkpk0b3*ZNA>cX^D{h2M+ka1! zMs4~B0;y2)@n!`1@+Vp<96EHUo=_FddRjFlA|rMfJWvER>Q{UfWcIh1uNAIQ2f9WV z=4y`rG8Z`Hu2?X!H2?A2I6SzV+SZVomlzU>OECmVM|bMJK}AseSs@Jne&d~0HnG3k zv9xdg)2FSxrC7W@+gr~a5q4rmc{kR%K3HVBo;I<^W5S4tUK{Mih@#3JBVuNZ?M+l!eInAn_9V-c#_*b>%^eIsO zvx^ctQ2OMvTHRS3g*thWx^Ssg)lMYZ)8GBSrhq*lgsFpy4XTNuF8d%^&4=#X&sXv% z_!xnsWjuhv6@L4&61AgCPs?Cs;Doz=WnK^0YmWhcK1hN7<%RU9z5#QWb55H`qWTw+ zVj&?fQ9CsJ<_9T6jlMKRLoM)U@ZWmBn$+V;5-%eykQh7O7>bHOJJeDs*!F}{oFpyp zF;av0<>wE;RI5L-STb@LI%Uw%Jnc#<`$HB=P*KqI3qAWy#t!3w#HBSdji{c|2J_y* z<1dfO$P8EcG;W+bza=3*{=XF++(9^4?u-0FA!d~k=FwDP3{SRxxUidLF5+rJ#cvq3 zvDwsn$i4l`Cuuy_=~>GIvwdGa^r@6YZQD!e$Q9n#?xbqylHYu{;dXTZawe{So+*f* z=1uDFW_(J^F%_Fuqhq(51;vGV%FU3yx3!;ytJW>wYsw@%=&|7Y?)v&0Tni7R#^eh% za&z6Qb4aphcQ-dHj((-Jyp`5JLz-|Mk{TLK!RIKuqEzv9;lu zivQ4`mH*w{pVwP5Xg#MnzfNUXs*Al)N}{&Tp|kPW>Hkx{8f8sK1kLZAG^a9mWyFKq z&xjA-;VfL(r>XB$+nNXYNh zFFI`u_x6PLw1Rc16mTyRRRUwRFcYlwUn~spohaa^nTk#y--rdz@KW?t#J^}`G?aQ( zHquHr%MhiAR%Y+kd2qbb&D>Njt$`sygy1E_49aWpx$7&IjTi~;2JSsRGm?eUA4+>>Sms(XmA>9AYwv>RhKXQkC%1<0m2}68&m&Xy5FHd0Yzs#xj zl78V5l;lY_yd$^yodR#v`R25}lE?{YHL}x8`z9|kOAseG*%p{M_bZ3DYFcaHUKX!) zw{TV|9h$8Umk+RVWaogn=qOmCdLO-=D?OSXfe+-VK-;2ivZaLlqluf@PM=I6H>ZAt z6G9NlhcV@Z69zr%VGexPVmSF&<|?e*!mkj_p;#Tf0sadlQQTv!kaK=G4LFs#L)M9T zo32jysjsllMYTF$xY(EU%|H5mvE-=VnQh3;6-9IHc69 zX>zEzvtXi6O=o|)POsGp4i7<5UEd16T%c9HMH$Ep)?b2XW#KmFUS3e}!n^Xt4Yd>@ zOr6T6A`s~%g^c693n0>V!W6uC`mRRuyoe8XMqRL&R(1#p|}^MOe`@JaBE>fA#%hj1c$nd7I61 z^={scoIR zb!jSaU|`@(g;&1ln^Te1xD@fCmf7ue1{f+-a{;!Cm=S0tTpe%JtY>UR3f1ev`Cn1W zgH01^^4YXs;M|HTiAYZgd8_+J4iz_G3TZj%S6{K zsaOjKX>|X3swJWf9=OXyacznb19z! zl0&gBB_Yc351)P#e7e%)Yhj+fHios0P%PD=Em^X)hG!Y33{fnn5ylY``k@GxYcVUH z&9i%(g_B;Z>`GFL`^XZcxainUdSfu-_ecPrz)t+)Z*;r|<)IYW`m-WDyGJiS9+cP~ zDh-^Jr;#@;93%R8?fKw>d9d@me%-4E>Rb0qJ3h;J@Meaa>#HRddKy7 zG4gmR=(AhJy+t8R$}7y}av&nmRFD>PXF}rrnXDH34MH=DtlV|Lvs^KqaJWx~=4%ED zC|H+H^+J&a>NKS52Rxiw!r;Z3iHnL@NvZ#qI&i%@uxO9!8y6-eg1-{K+I9XYTgn$uUVa_nkgDFp*{l?y z-6M0pFKdNVKL=aCx7Yp{vkL0l;M2y0!m2`3mt!@8GBPrVqza3HkO7m6c$eKb6#wP| z*gi^acPp=arGXp4K7(}3-$qX0XAcH@SYS`D$rn~xKELLH#$RQg8I}m|3>FafFg1GT zzY$>L5wr=66c83tOB$RQYE3&s^d-ccPYr`;56WSF!3MP^pnLn_>=q@RID`s|4KqZ+O@EP1PX;Amg{Ebr156pRo^Buo?lk z12R29bUhU%23_6yIc<$l8C_4K`|W<5q@-buDaE_}4>6Q5y|I zsB+{w^PF1|8WldHdHxd=L46+ND;u$ap zWuW8qBWrNhTjApx{R60!CHq!2(yU=rygpD@b8qw4W=groYl|=*K7_?09*;DQIfy{; z_&*`b2vmF#Zs@gEL(vN}6JLpbzEv{AjYX*#wLdDwSH9eeP@MO1H=+E)h~V=%gWBPj zf^FOdRm%r#Z7+{Lc(GGT`oGm9j(_>kUhu&ROwUac`rR%_>>6{n(O%y^7NVF@WM^vFstPSz&dHC^0 z<^b)qaqrUM_sxqjEWk(Qku5EK5}#LLze+TwIOo4KfjsvNz)yXH(|)FF72KDBxx5(R z$uM+(I2`Uw*wJ$6P}YHM=eGnRSL0eqF@PlgHC*b6Uk~nL)`;x%>S5hW2|iQC9>CSnn|v6#=Q-@GRNQ zoLj_~H-^HL!mB#cv*WkngeSN`$U>PpC?VUhgarh;k9#mYeYH5f#$;Yi*4&HMF}?7S zN4$B=f?z8&aB)MeybC(t34v*2z!*}mr7t!XxQ}(aV`a543{hY(3>8Bd zEDr7SP|&F>7EM~r#x5!H&PD9nuFn0Pf?(s>FWHzC0ot9kPfN{g0OCfexcCEyb`!<2$xrv*j!dLC0RVGc<+ur8B3(D8W zUE}4sd_%D?`q4d?*LwFPcoPrF_TG*BR+~0nL$9?^F8)2<MNPti4fM?1=|1x2k{V z<|6SIr0WGdO(wZ;-uzcTp*R#37KwFvDEFGFB^W-vka#?&GP^V@5Me}UZNI4Z@z5vf z&#BSct%k3VayStInZ3?OnHSxsgPFHWr$B+tpyDkQcrQ3C4jix%{1ndySxHd6A(B~W zBlgNQ@(E?HZ9))q)A?!ih*XMQ{i|G8L zo&EF1)2GK|+^T=eEkfLSd5)KFV$01gHf>}o=e?4(-#@-~Upi6S+8*PQDI)`bc z*qJLHJmTFGdwmE}g!UOMkOhwb#55LcPDPceGq`~rsKKo^7wqQZedN(2TC|+W@sH-! zU^8Q+?`%%Fewx^VP7kYLbRQ(~XMRJqR&e{*1v#lawLy-)3hAW_NPz z<_s$Iz0U$L!8w0k)zV^D^Vi{`(4kqMl@oKvUMsH*Bg(6S-z6&a08RB`)};PNmj@ksY~;HFFpjSBjv`@#x2R3&?iI~1vAe1 z(4j=wwd^#J&JBN{q-4kj__oB? zvnuy11WxhG7eQmQ%JS~(TAW~)Gtiwl#1Y2uHZL`8rVGWTZ1^j8OV^AT^zKSZ4v(%6 zZ{&#E%32GQ3+*XSF?bx}A)s%JgsBgTyyrMg!2S#OjJy$y%*X4&k6N(aNOc9=G>5Z?ajqO-H}g^4q< zxZS;;$VenE4zQ%LLg@mExwC~EVQ}}~SRWoRQW_;aH(?2Tfgp3r~3rmp{Dzc`}4q0j#?)m)Awi9xJ;d8kyQ=S6|dL_%-ZL zAM66gnV`f9X!$R+wZklk>kZ%{S-2&~B?gzw%&hdXV=zUD(sGsLL{?Z4ikW`whfW5f zR{V|xf}Z1Q{d6T7CnUZXZ9F`_pFi^e#M%so+qMS|s8cRt@{a?$FZtDeQQ+HaBSe#t zse{>&i)Sfv*kuv8#x`&X2aq74&G~*bv-O9Zgt@w1Zqqdb_H!`;wSDj3$C?l};PJ4W zE(Vqph2@--L{UN5zF$|NPDR$#r?`-7YQ5L1=Y=9rBms}hnzwpB=ui5^d!BlVI-fSi zj`20HtupZSqSP@n^YD%rFZSm-Z^HnUHON`%1X4-KK}fn!s9e&_{&s6PWa<0*zKa|7 z(;qIbP7QoD>ypF@{Ymw#hwtnF;F4dR+aizpt^n8REi0rFYGtY8S5>mB$@W@pZhR7y zTR&>II=!F(!%T3WALv^f;j$2l`y|Z!TG*HF*`G5c-o`L@B>6}gN-mclx1I(C2=D&P z4ii4=aLxnIY*ATh8&I{l?B?i=%hbPS1gv)=IZqgw`Zc8#iuJ+>jc@G}36yo525y-~ z>0C_kprNp0qO&r&>+whwR%I8aj&#DH%Xv=LNW0$u{zI4|M4E1r%oqT~MYi;|_6P*$ zvVFdJzin!+`#R&Hg;fU(SbTkdFX%xan6t(PM<0~_I3c6Afi<#0pQ!ZxDkP3@6Vt4{ z8z*$*a1(<{bTZY5m*5Ip9UlWZHKVv2g5y$n_vv%B69oG2z6MJbMMUn#&HVa8`wWq2 zeuX9u`iIQEOwsP6+PWb)&_5oxrMbo(w7(RP)kIDNkH>ksl_w%;b0(4;c6#YAp%m#g z6qt$vBa>w=`xO^%pIX2Egk_yO==(dT%dPeRmD+HtbmUe^_vBFi{RGd-%r1ov%p54> zAv*ZSv-5Ho5(2S^yAuKElB8x@FpIaE16x?RSx7}G%*v-hnesUVK;U+q&hcK-%3uck z8%%tihAKs+&<+VyO&I#}j&qd2siNQ=G>Ie^CpBPDf13Wb+f`zPlqM$xr_27A*|x1P z!=B$$^;kSSFb4dr=7PiK6YV=myy8JrwN@a9-NYF~9FtoZIf*)F4F@v4I(O@J@FG8R)5I&Ol=KJm`if0b2EBSZqNatS_Wjc_$uomP;rr@~xkA~LSv*zIo8v*pK1 z_HE(p1;IczG&p=edY(SUd^f$Kn5=wZYJgnqZnd|~Z|fpwW)j{GnPV6tD+AHsbCFgg z)UbVLW>2f5zFqhW02zyYcNhQs^EVj0uUx)SwP#!aY~Uzj1JXCspi9dGikwT#y^7*z zv;(75rZCM#SoR53qK`&FS~|UDMKJCjzy@P^#R>dc9?0sMu=>F{V-wWsXJLRgS5qS( ze0k=pa^Lc;0b)7PJ@3U0)m{~rpoN0G78UDUn6O$ivw?=hu1Y#a^NIhQA7yPUC0D}>9H0yG{Dyo8@ zj&NG-#^{=L4mlATX&oVhKx;bJ_C1>Kih_~*S!aT&f0~HqO&knTQjVka8*1xNtD!Ou zF3>LtrM6LLeWCvKObU4Aj#&mvja*1i)E)*YErXpN?O}Eb*MGscCBq!+pD^xMD-P@&*6%$6%WMs<7)` zeClQ2*76mTOoZc(7L%`{`~u^I;I05Zw`pqc{SV50tMmTVA=M?=mC-H&IseX}Fkl`s zHD^!I?Pb1WYa%kG5Ex0C0~KMJTipEUE3NOnE8l+ey+1WqpYfZtB zLs8MS3Ra7gDcARuT$lcc0MITlMr2eQ*{_>D^Fp)Z#n ztid-xRAcIVN(9wmeJ1S6-_cwS+|*mX>C%=}J|2npZx|Wj)gN8ROpDgmAy@$c!UE|+ zg9m5IFL1T^%>TyU;O$jE^K(s&($zNo9pu((%;#%LcR5TQS6!++6LX-b(caWHagCpzG zA2;tAt_~(-M}Tlb51Bt<-e~U}_Wgv4&@O+Th+kzhn}J?h6K!mbUDi(l-Xisn4=V1H zKq?(Ult0|>5sJ|8BN+oPDZn!U>iiOhN%a(@J+yRlJAM^sjz*0{flPYgc@fHaw8g=S z+lKoEIK3w>+4F;!e?_TNgD5i#_PdJ%JjfE{5fG>abr)N#ky{3;T8Pk1t`7Y8Qwql(sR8 z<|gh^xqxbaJu;DSHK1%lSut_bHVjFk_m9&n%~l9tm}6jATnW=bQ{o)F~U?iVg zWKKD?ZS+;!mgiW-bbb-;?BGzIwT}C<6^Eq4FpX)_DWzvEb5yTkhP&!2P31*iy!1g zuupM8W-@BQscTGTZyoeK4)W%>jHpS)y&afc;9nEBMQ|TCIMP4%#UqWEpJc9`g;QJ- zdjBT;R_|2c;tB%R4Qs1^Xy<*W^{vzW7*tNH^FgV1L6Q&G_TQC({Omq%2M?^R6Rt~( z{zyEkVs$ZMA>&!JHhtFO6(o|n;Pc%}ZBd4h!S{NWvE8k-CtN;UIqB)q(2kA{cnYTa z3((99Ur#^W#-9xnXxY%S@XaGwF;}^uVI8>+f>wDZm`e@Q1{VL-T|L2`CjI zcHlMmZgR~UUcHm5$4|3v(0~mb4zooO7>pzyP%E}@4$=V|cg+pTBHF2IBlCMzJkBk* zl1M>l6E~~J;l%eY+o8&C`_8Q@=ZwIqz3N(==K0<6&vvT%Iw6D0YK&E6y^ECfl~2i| z%y^jVuu72QSWR&36vU!HEA%b9%0Vr`7C(H!n-GrJ!#%Kv0L^|h%L9l9jh(Tp?JDYZmPv_z+qAI> z`LGA<-s{lMcM5i;1DXg=1Na@hzVBem#pUM2>p!k!WNx3)G?$9=`CcT=#_=z2YKTfc z0DcBkZPJy;NC{;`cUjtAS-k_I!Qr|%skp!1w;~}i%6cX}!lh(F6xax`OoS0fH^!G+ z@ETG<=Jt>Svx%HA5yn*E;_p2&DX!`!~XR& zALI$8zd{wPx)j{VS*s!xYvDcnrNw~zhn0rrTx2_mDrUah<%^0kLQSpPw}8zB-COA& z{97kWOXA&U`ZZ{H0FkT9EueHlxie8$;v&z78ElXeRi2_gwC5UF1Smo86WF>b&lLP* z!_T6IVJOEz>T&rvWuAb#U`S97Z0C8SyZz2h6S-z&@a7e=X-k(}lp0+H4s8Ur%9rz0 zP?QkxlZ?YYtM2Dsc?K;n`mO#xNMY=@ctri)6?aJPL)2CW1;UxENv8b;lBh zNNHW?9y{urkRn!Q=Ng<3+zUt6>qX)Pg{i57%<_uW!hi3L3~Xx$ikq;Bi9kKfE@eR% zPlI6sd~hVCT7!RsJlyiBX9RU*A$SMMN+^-4k(3n}RUbK%wO?Ld2};U7^7vG|b}QkW zSX{!9g?QNR|DT<$j$#7`s?lE`bF?ej=~%dDxx9@TD}e*)ZXKL<^4boE*8dd_E%*KR ztv~A|;9e}tcBL^@{y|Q#r`KPBq7Y$o_F;(k4(AFBByTQtQMh{mQO~wT`-q>WMIf&`Tpu5A)oed7?}`ob zrxq=gZeF*#G9FfD)z?8~-wo0Loc94ZxhbS6<+}HDU!W}b$DQCM-&u`$T*`kz%E*PF zEioRKYf-Ij^*s-E`Ew5UC-WWcnt}l(=oV`f$J^Z#NpV?xzNZP=IREA$qA(pVdxR2c z7C`zfT-XD&=yUK+&q0oN1j(w8F>MYZNH|PkG83++owe_@U%SGzSlSFq9 zk?!A>(w}xphFfksX-j-=3+PkL3T{;6ro9#l`)u*AXp0epVss6o;M7IvLbN&)8h2jJ zyVypk{6v<8=5nSsIPZo-+C*mC=*>hT%ZNVZ$(Kbr6BibZFPV9^+4-qpkf4-ceM&pkG?4L?= zChG?n%-r#j_ylHghs5F(JMLeYE1IHFB}B8b`d%*7aGGZf43TLHh{;WGa}dJ^tISaN zLyUqaoV>Uft&$R5^9{RV%QNIaUu1waa_3x&zY}H$i_0??YJpR(5)DFdqin- zmoP71%!TuA!}(RT7i-!3tElpoa+9Q$O7d2{wfM#Bv;kJK~a)IRW0~Gj4-nPQEKtD#TIHaM*9_cT;* zq&j*1>3V|-`q1|mlBv?c*Qb9BCzA&6<5~L;$-P)%@UF!)adHq9F3TFD-t1e}7fhsS z_$<1q_CFv5SrYhmn1^SdyM?O~JZKdKv&s+!7GbfprcS+&D17eW(G*iM_IvI9c+`e<0|@CDx2*sw?rxWT5Ec+}VXSfCw(llNPx*vp z*E#d@#_6~CW<+v~jq8^3?wqMA zdVeb3s2hza951*VX z{{$}HaOeL_RV+WOGo8dsBoZ7L~6azN}hS$_{ zkq1?LKAUoV@nm{irJ`%gMZb&kqFI?k8}tPU4#}P;N7mfYK|-ZgF3{mm{%1Ba;WEe8 zSX{xBf$C1RC(S-Ym!q9w&9$}FRqeC)+q^&1!akHTxIXCJ#3jJhI(0ggFfEG4zU=_3xR(3>*nwWy;lDC;N5qS>F_a_rh>*)Na#F&cQ^HpU zdnS8I7$zUvGmv65atD8_3GN!OYNo_>JxA6XUE_G}8E_OxvkB(o42;rY5-R9 z2Y_AN%e3wqJTGgMi%Q7IbU!5{CxILenR{`{!Ju0Jv&K73`i<+jj&M)2>s6bTg+xo*_x|fccFw@|R&!s2^T^$tg zc*ma;q}y>nk1FP5`rR)fZ@Z9P+)XP{Y+n4D*M1KFE3v(YhC%p zc#c%@=Dv`q;-9n2jq%9X_P;>0zmeds%CNrP(IOhvIB4#h^Q(pt$-MQf?n)9qTk2T4 z$HkF778}5ZU!5~$&W4M%1b0;hxsRt-$sJ5?NwPWcFR4ouo_SBDX+dye^NjBSfr05cA@v#pHsdCzDQ{TAUHHu z)yagEDLk0EWxj|of5rTgpy-dj9_HJ=hO-3iEcFW3>?~c(K`yo03IY{|ns_)WqjlpE z_e|D+5Jz%=pT;>S@U(vV?RVlM`6!RU2Y#8R?Bsi?RAErVD`9}NM|^X*n00bI0W&}o zr@FC{t^vsNC(2(b2M*+o( z&B#5ShmY?%WncZ-e&G^iA)O9L{k*6w)Pp^%_V#UaZRO(V1OMF*Zq4po4X%)a1!gXn z-6wg~4F1;dkmoo>pIvn?+mTHhc0DfN1^^T`9(1p~xa&7j!o!u~!A+bBXczq-0|HwO z@a{j(aj%mV?t6N!A@2^kfLNiNn!AfuI606#|8RwIk7b=c1)`EYIfcRiPHyo{kRbi2 zG3&Nela}eZZ@zxLF!B8tnVi+QqsDmdAR=fh`1+qHa3-Z|QK;`n*5eY5AW0LG_P)v& zFL;Ah`=7%FKTe)^Id}(xSrAwYoch?UcvK@f5g!&GoDk^=cDxvRbD0JL%{G7wF)+7i=R%;hH zYkk=E@i+0P7N(z5^Ee5an?jNtlx9@qN+pS)(*f9^v z;S*_8P*vcqle=yC^0m*$KJHEBF5N89!v|u1XSf#cdrHBwgUPSFy8-^(h})O(WJj#2 zaqaie4kBSTW&TdG6{ph2Ev1ADMLdu*<2jMA=bh~t)a1$#6tEX|H_%;DwTyQWTPTmi zqsw#YOSPKK(FygeWR0s1(g;N~ln;Vo|6m^GIZ!7a@lB*q_a9EGr#X#-%n2^_eebWP n9l1>n?Y67~q_Xa3Szf=V?rQyHnmTq3{Bu%GSM}L%*1!J;ZW*ZA literal 0 HcmV?d00001 diff --git a/uni_modules/qiun-data-charts/changelog.md b/uni_modules/qiun-data-charts/changelog.md new file mode 100644 index 0000000..4d470a4 --- /dev/null +++ b/uni_modules/qiun-data-charts/changelog.md @@ -0,0 +1,320 @@ +## 2.5.0-20230101(2023-01-01) +- 秋云图表组件 修改条件编译顺序,确保uniapp的cli方式的项目依赖不完整时可以正常显示 +- 秋云图表组件 恢复props属性directory的使用,以修复vue3项目中,开启echarts后,echarts目录识别错误的bug +- uCharts.js 修复区域图、混合图只有一个数据时图表显示不正确的bug +- uCharts.js 修复折线图、区域图中时间轴类别图表tooltip指示点显示不正确的bug +- uCharts.js 修复x轴使用labelCount时,并且boundaryGap = 'justify' 并且关闭Y轴显示的时候,最后一个坐标值不显示的bug +- uCharts.js 修复折线图只有一组数据时 ios16 渲染颜色不正确的bug +- uCharts.js 修复玫瑰图半径显示不正确的bug +- uCharts.js 柱状图、山峰图增加正负图功能,y轴网格如果需要显示0轴则由 min max 及 splitNumber 确定,后续版本优化自动显示0轴 +- uCharts.js 柱状图column增加 opts.extra.column.labelPosition,数据标签位置,有效值为 outside外部, insideTop内顶部, center内中间, bottom内底部 +- uCharts.js 雷达图radar增加 opts.extra.radar.labelShow,否显示各项标识文案是,默认true +- uCharts.js 提示窗tooltip增加 opts.extra.tooltip.boxPadding,提示窗边框填充距离,默认3px +- uCharts.js 提示窗tooltip增加 opts.extra.tooltip.fontSize,提示窗字体大小配置,默认13px +- uCharts.js 提示窗tooltip增加 opts.extra.tooltip.lineHeight,提示窗文字行高,默认20px +- uCharts.js 提示窗tooltip增加 opts.extra.tooltip.legendShow,是否显示左侧图例,默认true +- uCharts.js 提示窗tooltip增加 opts.extra.tooltip.legendShape,图例形状,图例标识样式,有效值为 auto自动跟随图例, diamond◆, circle●, triangle▲, square■, rect▬, line- +- uCharts.js 标记线markLine增加 opts.extra.markLine.labelFontSize,字体大小配置,默认13px +- uCharts.js 标记线markLine增加 opts.extra.markLine.labelPadding,标签边框内填充距离,默认6px +- uCharts.js 折线图line增加 opts.extra.line.linearType,渐变色类型,可选值 none关闭渐变色,custom 自定义渐变色。使用自定义渐变色时请赋值serie.linearColor作为颜色值 +- uCharts.js 折线图line增加 serie.linearColor,渐变色数组,格式为2维数组[起始位置,颜色值],例如[[0,'#0EE2F8'],[0.3,'#2BDCA8'],[0.6,'#1890FF'],[1,'#9A60B4']] +- uCharts.js 折线图line增加 opts.extra.line.onShadow,是否开启折线阴影,开启后请赋值serie.setShadow阴影设置 +- uCharts.js 折线图line增加 serie.setShadow,阴影配置,格式为4位数组:[offsetX,offsetY,blur,color] +- uCharts.js 折线图line增加 opts.extra.line.animation,动画效果方向,可选值为vertical 垂直动画效果,horizontal 水平动画效果 +- uCharts.js X轴xAxis增加 opts.xAxis.lineHeight,X轴字体行高,默认20px +- uCharts.js X轴xAxis增加 opts.xAxis.marginTop,X轴文字距离轴线的距离,默认0px +- uCharts.js X轴xAxis增加 opts.xAxis.title,当前X轴标题 +- uCharts.js X轴xAxis增加 opts.xAxis.titleFontSize,标题字体大小,默认13px +- uCharts.js X轴xAxis增加 opts.xAxis.titleOffsetY,标题纵向偏移距离,负数为向上偏移,正数向下偏移 +- uCharts.js X轴xAxis增加 opts.xAxis.titleOffsetX,标题横向偏移距离,负数为向左偏移,正数向右偏移 +- uCharts.js X轴xAxis增加 opts.xAxis.titleFontColor,标题字体颜色,默认#666666 + +## 报错TypeError: Cannot read properties of undefined (reading 'length') +- 如果是uni-modules版本组件,请先登录HBuilderX账号; +- 在HBuilderX中的manifest.json,点击重新获取uniapp的appid,或者删除appid重新粘贴,重新运行; +- 如果是cli项目请使用码云上的非uniCloud版本组件; +- 或者添加uniCloud的依赖; +- 或者使用原生uCharts; +## 2.4.5-20221130(2022-11-30) +- uCharts.js 优化tooltip当文字很多变为左侧显示时,如果画布仍显显示不下,提示框错位置变为以左侧0位置起画 +- uCharts.js 折线图修复特殊情况下只有单点数据,并改变线宽后点变为圆形的bug +- uCharts.js 修复Y轴disabled启用后无效并报错的bug +- uCharts.js 修复仪表盘起始结束角度特殊情况下显示不正确的bug +- uCharts.js 雷达图新增参数 opts.extra.radar.radius , 自定义雷达图半径 +- uCharts.js 折线图、区域图增加tooltip指示点,opts.extra.line.activeType/opts.extra.area.activeType,可选值"none"不启用激活指示点,"hollow"空心点模式,"solid"实心点模式 +## 2.4.4-20221102(2022-11-02) +- 秋云图表组件 修复使用echarts时reload、reshow无法调用重新渲染的bug,[详见码云PR](https://gitee.com/uCharts/uCharts/pulls/40) +- 秋云图表组件 修复使用echarts时,初始化时宽高不正确的bug,[详见码云PR](https://gitee.com/uCharts/uCharts/pulls/42) +- 秋云图表组件 修复uniapp的h5使用history模式时,无法加载echarts的bug +- 秋云图表组件 小程序端@complete、@scrollLeft、@scrollRight、@getTouchStart、@getTouchMove、@getTouchEnd事件增加opts参数传出,方便一些特殊需求的交互获取数据。 + +- uCharts.js 修复calTooltipYAxisData方法内formatter格式化方法未与y轴方法同步的问题,[详见码云PR](https://gitee.com/uCharts/uCharts/pulls/43) +- uCharts.js 地图新增参数opts.series[i].fillOpacity,以透明度方式来设置颜色过度效果,[详见码云PR](https://gitee.com/uCharts/uCharts/pulls/38) +- uCharts.js 地图新增参数opts.extra.map.active,是否启用点击激活变色 +- uCharts.js 地图新增参数opts.extra.map.activeTextColor,是否启用点击激活变色 +- uCharts.js 地图新增渲染完成事件renderComplete +- uCharts.js 漏斗图修复当部分数据相同时tooltip提示窗点击错误的bug +- uCharts.js 漏斗图新增参数series.data[i].centerText 居中标签文案 +- uCharts.js 漏斗图新增参数series.data[i].centerTextSize 居中标签文案字体大小,默认opts.fontSize +- uCharts.js 漏斗图新增参数series.data[i].centerTextColor 居中标签文案字体颜色,默认#FFFFFF +- uCharts.js 漏斗图新增参数opts.extra.funnel.minSize 最小值的最小宽度,默认0 +- uCharts.js 进度条新增参数opts.extra.arcbar.direction,动画方向,可选值为cw顺时针、ccw逆时针 +- uCharts.js 混合图新增参数opts.extra.mix.line.width,折线的宽度,默认2 +- uCharts.js 修复tooltip开启horizentalLine水平横线标注时,图表显示错位的bug +- uCharts.js 优化tooltip当文字很多变为左侧显示时,如果画布仍显显示不下,提示框错位置变为以左侧0位置起画 +- uCharts.js 修复开启滚动条后X轴文字超出绘图区域后的隐藏逻辑 +- uCharts.js 柱状图、条状图修复堆叠模式不能通过{value,color}赋值单个柱子颜色的问题 +- uCharts.js 气泡图修复不识别series.textSize和series.textColor的bug + +## 报错TypeError: Cannot read properties of undefined (reading 'length') +1. 如果是uni-modules版本组件,请先登录HBuilderX账号; +2. 在HBuilderX中的manifest.json,点击重新获取uniapp的appid,或者删除appid重新粘贴,重新运行; +3. 如果是cli项目请使用码云上的非uniCloud版本组件; +4. 或者添加uniCloud的依赖; +5. 或者使用原生uCharts; +## 2.4.3-20220505(2022-05-05) +- 秋云图表组件 修复开启canvas2d后将series赋值为空数组显示加载图标时,再次赋值后画布闪动的bug +- 秋云图表组件 修复升级hbx最新版后ECharts的highlight方法报错的bug +- uCharts.js 雷达图新增参数opts.extra.radar.gridEval,数据点位网格抽希,默认1 +- uCharts.js 雷达图新增参数opts.extra.radar.axisLabel, 是否显示刻度点值,默认false +- uCharts.js 雷达图新增参数opts.extra.radar.axisLabelTofix,刻度点值小数位数,默认0 +- uCharts.js 雷达图新增参数opts.extra.radar.labelPointShow,是否显示末端刻度圆点,默认false +- uCharts.js 雷达图新增参数opts.extra.radar.labelPointRadius,刻度圆点的半径,默认3 +- uCharts.js 雷达图新增参数opts.extra.radar.labelPointColor,刻度圆点的颜色,默认#cccccc +- uCharts.js 雷达图新增参数opts.extra.radar.linearType,渐变色类型,可选值"none"关闭渐变,"custom"开启渐变 +- uCharts.js 雷达图新增参数opts.extra.radar.customColor,自定义渐变颜色,数组类型对应series的数组长度以匹配不同series颜色的不同配色方案,例如["#FA7D8D", "#EB88E2"] +- uCharts.js 雷达图优化支持series.textColor、series.textSize属性 +- uCharts.js 柱状图中温度计式图标,优化支持全圆角类型,修复边框有缝隙的bug,详见官网【演示】中的温度计图表 +- uCharts.js 柱状图新增参数opts.extra.column.activeWidth,当前点击柱状图的背景宽度,默认一个单元格单位 +- uCharts.js 混合图增加opts.extra.mix.area.gradient 区域图是否开启渐变色 +- uCharts.js 混合图增加opts.extra.mix.area.opacity 区域图透明度,默认0.2 +- uCharts.js 饼图、圆环图、玫瑰图、漏斗图,增加opts.series[0].data[i].labelText,自定义标签文字,避免formatter格式化的繁琐,详见官网【演示】中的饼图 +- uCharts.js 饼图、圆环图、玫瑰图、漏斗图,增加opts.series[0].data[i].labelShow,自定义是否显示某一个指示标签,避免因饼图类别太多导致标签重复或者居多导致图形变形的问题,详见官网【演示】中的饼图 +- uCharts.js 增加opts.series[i].legendText/opts.series[0].data[i].legendText(与series.name同级)自定义图例显示文字的方法 +- uCharts.js 优化X轴、Y轴formatter格式化方法增加形参,统一为fromatter:function(value,index,opts){} +- uCharts.js 修复横屏模式下无法使用双指缩放方法的bug +- uCharts.js 修复当只有一条数据或者多条数据值相等的时候Y轴自动计算的最大值错误的bug +- 【官网模板】增加外部自定义图例与图表交互的例子,[点击跳转](https://www.ucharts.cn/v2/#/layout/info?id=2) + +## 注意:非unimodules 版本如因更新 hbx 至 3.4.7 导致报错如下,请到码云更新非 unimodules 版本组件,[点击跳转](https://gitee.com/uCharts/uCharts/tree/master/uni-app/uCharts-%E7%BB%84%E4%BB%B6) +> Error in callback for immediate watcher "uchartsOpts": "SyntaxError: Unexpected token u in JSON at position 0" +## 2.4.2-20220421(2022-04-21) +- 秋云图表组件 修复HBX升级3.4.6.20220420版本后echarts报错的问题 +## 2.4.2-20220420(2022-04-20) +## 重要!此版本uCharts新增了很多功能,修复了诸多已知问题 +- 秋云图表组件 新增onzoom开启双指缩放功能(仅uCharts),前提需要直角坐标系类图表类型,并且ontouch为true、opts.enableScroll为true,详见实例项目K线图 +- 秋云图表组件 新增optsWatch是否监听opts变化,关闭optsWatch后,动态修改opts不会触发图表重绘 +- 秋云图表组件 修复开启canvas2d功能后,动态更新数据后画布闪动的bug +- 秋云图表组件 去除directory属性,改为自动获取echarts.min.js路径(升级不受影响) +- 秋云图表组件 增加getImage()方法及@getImage事件,通过ref调用getImage()方法获,触发@getImage事件获取当前画布的base64图片文件流。 +- 秋云图表组件 支付宝、字节跳动、飞书、快手小程序支持开启canvas2d同层渲染设置。 +- 秋云图表组件 新增加【非uniCloud】版本组件,避免有些不需要uniCloud的使用组件发布至小程序需要提交隐私声明问题,请到码云[【非uniCloud版本】](https://gitee.com/uCharts/uCharts/tree/master/uni-app/uCharts-%E7%BB%84%E4%BB%B6),或npm[【非uniCloud版本】](https://www.npmjs.com/package/@qiun/uni-ucharts)下载使用。 +- uCharts.js 新增dobuleZoom双指缩放功能 +- uCharts.js 新增山峰图type="mount",数据格式为饼图类格式,不需要传入categories,具体详见新版官网在线演示 +- uCharts.js 修复折线图当数据中存在null时tooltip报错的bug +- uCharts.js 修复饼图类当画布比较小时自动计算的半径是负数报错的bug +- uCharts.js 统一各图表类型的series.formatter格式化方法的形参为(val, index, series, opts),方便格式化时有更多参数可用 +- uCharts.js 标记线功能增加labelText自定义显示文字,增加labelAlign标签显示位置(左侧或右侧),增加标签显示位置微调labelOffsetX、labelOffsetY +- uCharts.js 修复条状图当数值很小时开启圆角后样式错误的bug +- uCharts.js 修复X轴开启disabled后,X轴仍占用空间的bug +- uCharts.js 修复X轴开启滚动条并且开启rotateLabel后,X轴文字与滚动条重叠的bug +- uCharts.js 增加X轴rotateAngle文字旋转自定义角度,取值范围(-90至90) +- uCharts.js 修复地图文字标签层级显示不正确的bug +- uCharts.js 修复饼图、圆环图、玫瑰图当数据全部为0的时候不显示数据标签的bug +- uCharts.js 修复当opts.padding上边距为0时,Y轴顶部刻度标签位置不正确的bug + +## 另外我们还开发了各大原生小程序组件,已发布至码云和npm +[https://gitee.com/uCharts/uCharts](https://gitee.com/uCharts/uCharts) +[https://www.npmjs.com/~qiun](https://www.npmjs.com/~qiun) + +## 对于原生uCharts文档我们已上线新版官方网站,详情点击下面链接进入官网 +[https://www.uCharts.cn/v2/](https://www.ucharts.cn/v2/) +## 2.3.7-20220122(2022-01-22) +## 重要!使用vue3编译,请使用cli模式并升级至最新依赖,HbuilderX编译需要使用3.3.8以上版本 +- uCharts.js 修复uni-app平台组件模式使用vue3编译到小程序报错的bug。 +## 2.3.7-20220118(2022-01-18) +## 注意,使用vue3的前提是需要3.3.8.20220114-alpha版本的HBuilder! +## 2.3.67-20220118(2022-01-18) +- 秋云图表组件 组件初步支持vue3,全端编译会有些问题,具体详见下面修改: +1. 小程序端运行时,在uni_modules文件夹的qiun-data-charts.js中搜索 new uni_modules_qiunDataCharts_js_sdk_uCharts_uCharts.uCharts,将.uCharts去掉。 +2. 小程序端发行时,在uni_modules文件夹的qiun-data-charts.js中搜索 new e.uCharts,将.uCharts去掉,变为 new e。 +3. 如果觉得上述步骤比较麻烦,如果您的项目只编译到小程序端,可以修改u-charts.js最后一行导出方式,将 export default uCharts;变更为 export default { uCharts: uCharts }; 这样变更后,H5和App端的renderjs会有问题,请开发者自行选择。(此问题非组件问题,请等待DC官方修复Vue3的小程序端) +## 2.3.6-20220111(2022-01-11) +- 秋云图表组件 修改组件 props 属性中的 background 默认值为 rgba(0,0,0,0) +## 2.3.6-20211201(2021-12-01) +- uCharts.js 修复bar条状图开启圆角模式时,值很小时圆角渲染错误的bug +## 2.3.5-20211014(2021-10-15) +- uCharts.js 增加vue3的编译支持(仅原生uCharts,qiun-data-charts组件后续会支持,请关注更新) +## 2.3.4-20211012(2021-10-12) +- 秋云图表组件 修复 mac os x 系统 mouseover 事件丢失的 bug +## 2.3.3-20210706(2021-07-06) +- uCharts.js 增加雷达图开启数据点值(opts.dataLabel)的显示 +## 2.3.2-20210627(2021-06-27) +- 秋云图表组件 修复tooltipCustom个别情况下传值不正确报错TypeError: Cannot read property 'name' of undefined的bug +## 2.3.1-20210616(2021-06-16) +- uCharts.js 修复圆角柱状图使用4角圆角时,当数值过大时不正确的bug +## 2.3.0-20210612(2021-06-12) +- uCharts.js 【重要】uCharts增加nvue兼容,可在nvue项目中使用gcanvas组件渲染uCharts,[详见码云uCharts-demo-nvue](https://gitee.com/uCharts/uCharts) +- 秋云图表组件 增加tapLegend属性,是否开启图例点击交互事件 +- 秋云图表组件 getIndex事件中增加返回uCharts实例中的opts参数,以便在页面中调用参数 +- 示例项目 pages/other/other.vue增加app端自定义tooltip的方法,详见showOptsTooltip方法 +## 2.2.1-20210603(2021-06-03) +- uCharts.js 修复饼图、圆环图、玫瑰图,当起始角度不为0时,tooltip位置不准确的bug +- uCharts.js 增加温度计式柱状图开启顶部半圆形的配置 +## 2.2.0-20210529(2021-05-29) +- uCharts.js 增加条状图type="bar" +- 示例项目 pages/ucharts/ucharts.vue增加条状图的demo +## 2.1.7-20210524(2021-05-24) +- uCharts.js 修复大数据量模式下曲线图不平滑的bug +## 2.1.6-20210523(2021-05-23) +- 秋云图表组件 修复小程序端开启滚动条更新数据后滚动条位置不符合预期的bug +## 2.1.5-2021051702(2021-05-17) +- uCharts.js 修复自定义Y轴min和max值为0时不能正确显示的bug +## 2.1.5-20210517(2021-05-17) +- uCharts.js 修复Y轴自定义min和max时,未按指定的最大值最小值显示坐标轴刻度的bug +## 2.1.4-20210516(2021-05-16) +- 秋云图表组件 优化onWindowResize防抖方法 +- 秋云图表组件 修复APP端uCharts更新数据时,清空series显示loading图标后再显示图表,图表抖动的bug +- uCharts.js 修复开启canvas2d后,x轴、y轴、series自定义字体大小未按比例缩放的bug +- 示例项目 修复format-e.vue拼写错误导致app端使用uCharts渲染图表 +## 2.1.3-20210513(2021-05-13) +- 秋云图表组件 修改uCharts变更chartData数据为updateData方法,支持带滚动条的数据动态打点 +- 秋云图表组件 增加onWindowResize防抖方法 fix by ど誓言,如尘般染指流年づ +- 秋云图表组件 H5或者APP变更chartData数据显示loading图表时,原数据闪现的bug +- 秋云图表组件 props增加errorReload禁用错误点击重新加载的方法 +- uCharts.js 增加tooltip显示category(x轴对应点位)标题的功能,opts.extra.tooltip.showCategory,默认为false +- uCharts.js 修复mix混合图只有柱状图时,tooltip的分割线显示位置不正确的bug +- uCharts.js 修复开启滚动条,图表在拖动中动态打点,滚动条位置不正确的bug +- uCharts.js 修复饼图类数据格式为echarts数据格式,series为空数组报错的bug +- 示例项目 修改uCharts.js更新到v2.1.2版本后,@getIndex方法获取索引值变更为e.currentIndex.index +- 示例项目 pages/updata/updata.vue增加滚动条拖动更新(数据动态打点)的demo +- 示例项目 pages/other/other.vue增加errorReload禁用错误点击重新加载的demo +## 2.1.2-20210509(2021-05-09) +秋云图表组件 修复APP端初始化时就传入chartData或lacaldata不显示图表的bug +## 2.1.1-20210509(2021-05-09) +- 秋云图表组件 变更ECharts的eopts配置在renderjs内执行,支持在config-echarts.js配置文件内写function配置。 +- 秋云图表组件 修复APP端报错Prop being mutated: "onmouse"错误的bug。 +- 秋云图表组件 修复APP端报错Error: Not Found:Page[6][-1,27] at view.umd.min.js:1的bug。 +## 2.1.0-20210507(2021-05-07) +- 秋云图表组件 修复初始化时就有数据或者数据更新的时候loading加载动画闪动的bug +- uCharts.js 修复x轴format方法categories为字符串类型时返回NaN的bug +- uCharts.js 修复series.textColor、legend.fontColor未执行全局默认颜色的bug +## 2.1.0-20210506(2021-05-06) +- 秋云图表组件 修复极个别情况下报错item.properties undefined的bug +- 秋云图表组件 修复极个别情况下关闭加载动画reshow不起作用,无法显示图表的bug +- 示例项目 pages/ucharts/ucharts.vue 增加时间轴折线图(type="tline")、时间轴区域图(type="tarea")、散点图(type="scatter")、气泡图demo(type="bubble")、倒三角形漏斗图(opts.extra.funnel.type="triangle")、金字塔形漏斗图(opts.extra.funnel.type="pyramid") +- 示例项目 pages/format-u/format-u.vue 增加X轴format格式化示例 +- uCharts.js 升级至v2.1.0版本 +- uCharts.js 修复 玫瑰图面积模式点击tooltip位置不正确的bug +- uCharts.js 修复 玫瑰图点击图例,只剩一个类别显示空白的bug +- uCharts.js 修复 饼图类图点击图例,其他图表tooltip位置某些情况下不准的bug +- uCharts.js 修复 x轴为矢量轴(时间轴)情况下,点击tooltip位置不正确的bug +- uCharts.js 修复 词云图获取点击索引偶尔不准的bug +- uCharts.js 增加 直角坐标系图表X轴format格式化方法(原生uCharts.js用法请使用formatter) +- uCharts.js 增加 漏斗图扩展配置,倒三角形(opts.extra.funnel.type="triangle"),金字塔形(opts.extra.funnel.type="pyramid") +- uCharts.js 增加 散点图(opts.type="scatter")、气泡图(opts.type="bubble") +- 后期计划 完善散点图、气泡图,增加markPoints标记点,增加横向条状图。 +## 2.0.0-20210502(2021-05-02) +- uCharts.js 修复词云图获取点击索引不正确的bug +## 2.0.0-20210501(2021-05-01) +- 秋云图表组件 修复QQ小程序、百度小程序在关闭动画效果情况下,v-for循环使用图表,显示不正确的bug +## 2.0.0-20210426(2021-04-26) +- 秋云图表组件 修复QQ小程序不支持canvas2d的bug +- 秋云图表组件 修复钉钉小程序某些情况点击坐标计算错误的bug +- uCharts.js 增加 extra.column.categoryGap 参数,柱状图类每个category点位(X轴点)柱子组之间的间距 +- uCharts.js 增加 yAxis.data[i].titleOffsetY 参数,标题纵向偏移距离,负数为向上偏移,正数向下偏移 +- uCharts.js 增加 yAxis.data[i].titleOffsetX 参数,标题横向偏移距离,负数为向左偏移,正数向右偏移 +- uCharts.js 增加 extra.gauge.labelOffset 参数,仪表盘标签文字径向便宜距离,默认13px +## 2.0.0-20210422-2(2021-04-22) +秋云图表组件 修复 formatterAssign 未判断 args[key] == null 的情况导致栈溢出的 bug +## 2.0.0-20210422(2021-04-22) +- 秋云图表组件 修复H5、APP、支付宝小程序、微信小程序canvas2d模式下横屏模式的bug +## 2.0.0-20210421(2021-04-21) +- uCharts.js 修复多行图例的情况下,图例在上方或者下方时,图例float为左侧或者右侧时,第二行及以后的图例对齐方式不正确的bug +## 2.0.0-20210420(2021-04-20) +- 秋云图表组件 修复微信小程序开启canvas2d模式后,windows版微信小程序不支持canvas2d模式的bug +- 秋云图表组件 修改非uni_modules版本为v2.0版本qiun-data-charts组件 +## 2.0.0-20210419(2021-04-19) +## v1.0版本已停更,建议转uni_modules版本组件方式调用,点击右侧绿色【使用HBuilderX导入插件】即可使用,示例项目请点击右侧蓝色按钮【使用HBuilderX导入示例项目】。 +## 初次使用如果提示未注册<qiun-data-charts>组件,请重启HBuilderX,如仍不好用,请重启电脑; +## 如果是cli项目,请尝试清理node_modules,重新install,还不行就删除项目,再重新install。 +## 此问题已于DCloud官方确认,HBuilderX下个版本会修复。 +## 其他图表不显示问题详见[常见问题选项卡](https://demo.ucharts.cn) +## 新手请先完整阅读帮助文档及常见问题3遍,右侧蓝色按钮示例项目请看2遍! +## [DEMO演示及在线生成工具(v2.0文档)https://demo.ucharts.cn](https://demo.ucharts.cn) +## [图表组件在项目中的应用参见 UReport数据报表](https://ext.dcloud.net.cn/plugin?id=4651) +- uCharts.js 修复混合图中柱状图单独设置颜色不生效的bug +- uCharts.js 修复多Y轴单独设置fontSize时,开启canvas2d后,未对应放大字体的bug +## 2.0.0-20210418(2021-04-18) +- 秋云图表组件 增加directory配置,修复H5端history模式下如果发布到二级目录无法正确加载echarts.min.js的bug +## 2.0.0-20210416(2021-04-16) +## v1.0版本已停更,建议转uni_modules版本组件方式调用,点击右侧绿色【使用HBuilderX导入插件】即可使用,示例项目请点击右侧蓝色按钮【使用HBuilderX导入示例项目】。 +## 初次使用如果提示未注册<qiun-data-charts>组件,请重启HBuilderX,如仍不好用,请重启电脑; +## 如果是cli项目,请尝试清理node_modules,重新install,还不行就删除项目,再重新install。 +## 此问题已于DCloud官方确认,HBuilderX下个版本会修复。 +## 其他图表不显示问题详见[常见问题选项卡](https://demo.ucharts.cn) +## 新手请先完整阅读帮助文档及常见问题3遍,右侧蓝色按钮示例项目请看2遍! +## [DEMO演示及在线生成工具(v2.0文档)https://demo.ucharts.cn](https://demo.ucharts.cn) +## [图表组件在项目中的应用参见 UReport数据报表](https://ext.dcloud.net.cn/plugin?id=4651) +- 秋云图表组件 修复APP端某些情况下报错`Not Found Page`的bug,fix by 高级bug开发技术员 +- 示例项目 修复APP端v-for循环某些情况下报错`Not Found Page`的bug,fix by 高级bug开发技术员 +- uCharts.js 修复非直角坐标系tooltip提示窗右侧超出未变换方向显示的bug +## 2.0.0-20210415(2021-04-15) +- 秋云图表组件 修复H5端发布到二级目录下echarts无法加载的bug +- 秋云图表组件 修复某些情况下echarts.off('finished')移除监听事件报错的bug +## 2.0.0-20210414(2021-04-14) +## v1.0版本已停更,建议转uni_modules版本组件方式调用,点击右侧绿色【使用HBuilderX导入插件】即可使用,示例项目请点击右侧蓝色按钮【使用HBuilderX导入示例项目】。 +## 初次使用如果提示未注册<qiun-data-charts>组件,请重启HBuilderX,如仍不好用,请重启电脑; +## 如果是cli项目,请尝试清理node_modules,重新install,还不行就删除项目,再重新install。 +## 此问题已于DCloud官方确认,HBuilderX下个版本会修复。 +## 其他图表不显示问题详见[常见问题选项卡](https://demo.ucharts.cn) +## 新手请先完整阅读帮助文档及常见问题3遍,右侧蓝色按钮示例项目请看2遍! +## [DEMO演示及在线生成工具(v2.0文档)https://demo.ucharts.cn](https://demo.ucharts.cn) +## [图表组件在项目中的应用参见 UReport数据报表](https://ext.dcloud.net.cn/plugin?id=4651) +- 秋云图表组件 修复H5端在cli项目下ECharts引用地址错误的bug +- 示例项目 增加ECharts的formatter用法的示例(详见示例项目format-e.vue) +- uCharts.js 增加圆环图中心背景色的配置extra.ring.centerColor +- uCharts.js 修复微信小程序安卓端柱状图开启透明色后显示不正确的bug +## 2.0.0-20210413(2021-04-13) +- 秋云图表组件 修复百度小程序多个图表真机未能正确获取根元素dom尺寸的bug +- 秋云图表组件 修复百度小程序横屏模式方向不正确的bug +- 秋云图表组件 修改ontouch时,@getTouchStart@getTouchMove@getTouchEnd的触发条件 +- uCharts.js 修复饼图类数据格式series属性不生效的bug +- uCharts.js 增加时序区域图 详见示例项目中ucharts.vue +## 2.0.0-20210412-2(2021-04-12) +## v1.0版本已停更,建议转uni_modules版本组件方式调用,点击右侧绿色【使用HBuilderX导入插件】即可使用,示例项目请点击右侧蓝色按钮【使用HBuilderX导入示例项目】。 +## 初次使用如果提示未注册<qiun-data-charts>组件,请重启HBuilderX。如仍不好用,请重启电脑,此问题已于DCloud官方确认,HBuilderX下个版本会修复。 +## [DEMO演示及在线生成工具(v2.0文档)https://demo.ucharts.cn](https://demo.ucharts.cn) +## [图表组件在uniCloudAdmin中的应用 UReport数据报表](https://ext.dcloud.net.cn/plugin?id=4651) +- 秋云图表组件 修复uCharts在APP端横屏模式下不能正确渲染的bug +- 示例项目 增加ECharts柱状图渐变色、圆角柱状图、横向柱状图(条状图)的示例 +## 2.0.0-20210412(2021-04-12) +- 秋云图表组件 修复created中判断echarts导致APP端无法识别,改回mounted中判断echarts初始化 +- uCharts.js 修复2d模式下series.textOffset未乘像素比的bug +## 2.0.0-20210411(2021-04-11) +## v1.0版本已停更,建议转uni_modules版本组件方式调用,点击右侧绿色【使用HBuilderX导入插件】即可使用,示例项目请点击右侧蓝色按钮【使用HBuilderX导入示例项目】。 +## 初次使用如果提示未注册组件,请重启HBuilderX,并清空小程序开发者工具缓存。 +## [DEMO演示及在线生成工具(v2.0文档)https://demo.ucharts.cn](https://demo.ucharts.cn) +## [图表组件在uniCloudAdmin中的应用 UReport数据报表](https://ext.dcloud.net.cn/plugin?id=4651) +- uCharts.js 折线图区域图增加connectNulls断点续连的功能,详见示例项目中ucharts.vue +- 秋云图表组件 变更初始化方法为created,变更type2d默认值为true,优化2d模式下组件初始化后dom获取不到的bug +- 秋云图表组件 修复左右布局时,右侧图表点击坐标错误的bug,修复tooltip柱状图自定义颜色显示object的bug +## 2.0.0-20210410(2021-04-10) +- 修复左右布局时,右侧图表点击坐标错误的bug,修复柱状图自定义颜色tooltip显示object的bug +- 增加标记线及柱状图自定义颜色的demo +## 2.0.0-20210409(2021-04-08) +## v1.0版本已停更,建议转uni_modules版本组件方式调用,点击右侧【使用HBuilderX导入插件】即可体验,DEMO演示及在线生成工具(v2.0文档)[https://demo.ucharts.cn](https://demo.ucharts.cn) +## 图表组件在uniCloudAdmin中的应用 [UReport数据报表](https://ext.dcloud.net.cn/plugin?id=4651) +- uCharts.js 修复钉钉小程序百度小程序measureText不准确的bug,修复2d模式下饼图类activeRadius为按比例放大的bug +- 修复组件在支付宝小程序端点击位置不准确的bug +## 2.0.0-20210408(2021-04-07) +- 修复组件在支付宝小程序端不能显示的bug(目前支付宝小程不能点击交互,后续修复) +- uCharts.js 修复高分屏下柱状图类,圆弧进度条 自定义宽度不能按比例放大的bug +## 2.0.0-20210407(2021-04-06) +## v1.0版本已停更,建议转uni_modules版本组件方式调用,点击右侧【使用HBuilderX导入插件】即可体验,DEMO演示及在线生成工具(v2.0文档)[https://demo.ucharts.cn](https://demo.ucharts.cn) +## 增加 通过tofix和unit快速格式化y轴的demo add by `howcode` +## 增加 图表组件在uniCloudAdmin中的应用 [UReport数据报表](https://ext.dcloud.net.cn/plugin?id=4651) +## 2.0.0-20210406(2021-04-05) +# 秋云图表组件+uCharts v2.0版本同步上线,使用方法详见https://demo.ucharts.cn帮助页 +## 2.0.0(2021-04-05) +# 秋云图表组件+uCharts v2.0版本同步上线,使用方法详见https://demo.ucharts.cn帮助页 diff --git a/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue b/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue new file mode 100644 index 0000000..5678f7d --- /dev/null +++ b/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue @@ -0,0 +1,1618 @@ + + + + + + + + + + diff --git a/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue b/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue new file mode 100644 index 0000000..b15b19f --- /dev/null +++ b/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue b/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue new file mode 100644 index 0000000..b701394 --- /dev/null +++ b/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue @@ -0,0 +1,162 @@ + + + + + diff --git a/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue b/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue new file mode 100644 index 0000000..7541b31 --- /dev/null +++ b/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue @@ -0,0 +1,170 @@ + + + + + diff --git a/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue b/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue new file mode 100644 index 0000000..8e14db3 --- /dev/null +++ b/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue @@ -0,0 +1,173 @@ + + + + + diff --git a/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue b/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue new file mode 100644 index 0000000..77c55b7 --- /dev/null +++ b/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue @@ -0,0 +1,222 @@ + + + + + diff --git a/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue b/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue new file mode 100644 index 0000000..cb93a55 --- /dev/null +++ b/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue @@ -0,0 +1,229 @@ + + + + diff --git a/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue b/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue new file mode 100644 index 0000000..7789060 --- /dev/null +++ b/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/uni_modules/qiun-data-charts/js_sdk/u-charts/config-echarts.js b/uni_modules/qiun-data-charts/js_sdk/u-charts/config-echarts.js new file mode 100644 index 0000000..7b8168f --- /dev/null +++ b/uni_modules/qiun-data-charts/js_sdk/u-charts/config-echarts.js @@ -0,0 +1,422 @@ +/* + * uCharts® + * 高性能跨平台图表库,支持H5、APP、小程序(微信/支付宝/百度/头条/QQ/360)、Vue、Taro等支持canvas的框架平台 + * Copyright (c) 2021 QIUN®秋云 https://www.ucharts.cn All rights reserved. + * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 ) + * 复制使用请保留本段注释,感谢支持开源! + * + * uCharts®官方网站 + * https://www.uCharts.cn + * + * 开源地址: + * https://gitee.com/uCharts/uCharts + * + * uni-app插件市场地址: + * http://ext.dcloud.net.cn/plugin?id=271 + * + */ + +// 通用配置项 + +// 主题颜色配置:如每个图表类型需要不同主题,请在对应图表类型上更改color属性 +const color = ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc']; + +const cfe = { + //demotype为自定义图表类型 + "type": ["pie", "ring", "rose", "funnel", "line", "column", "area", "radar", "gauge","candle","demotype"], + //增加自定义图表类型,如果需要categories,请在这里加入您的图表类型例如最后的"demotype" + "categories": ["line", "column", "area", "radar", "gauge", "candle","demotype"], + //instance为实例变量承载属性,option为eopts承载属性,不要删除 + "instance": {}, + "option": {}, + //下面是自定义format配置,因除H5端外的其他端无法通过props传递函数,只能通过此属性对应下标的方式来替换 + "formatter":{ + "tooltipDemo1":function(res){ + let result = '' + for (let i in res) { + if (i == 0) { + result += res[i].axisValueLabel + '年销售额' + } + let value = '--' + if (res[i].data !== null) { + value = res[i].data + } + // #ifdef H5 + result += '\n' + res[i].seriesName + ':' + value + ' 万元' + // #endif + + // #ifdef APP-PLUS + result += '
' + res[i].marker + res[i].seriesName + ':' + value + ' 万元' + // #endif + } + return result; + }, + legendFormat:function(name){ + return "自定义图例+"+name; + }, + yAxisFormatDemo:function (value, index) { + return value + '元'; + }, + seriesFormatDemo:function(res){ + return res.name + '年' + res.value + '元'; + } + }, + //这里演示了自定义您的图表类型的option,可以随意命名,之后在组件上 type="demotype" 后,组件会调用这个花括号里的option,如果组件上还存在eopts参数,会将demotype与eopts中option合并后渲染图表。 + "demotype":{ + "color": color, + //在这里填写echarts的option即可 + + }, + //下面是自定义配置,请添加项目所需的通用配置 + "column": { + "color": color, + "title": { + "text": '' + }, + "tooltip": { + "trigger": 'axis' + }, + "grid": { + "top": 30, + "bottom": 50, + "right": 15, + "left": 40 + }, + "legend": { + "bottom": 'left', + }, + "toolbox": { + "show": false, + }, + "xAxis": { + "type": 'category', + "axisLabel": { + "color": '#666666' + }, + "axisLine": { + "lineStyle": { + "color": '#CCCCCC' + } + }, + "boundaryGap": true, + "data": [] + }, + "yAxis": { + "type": 'value', + "axisTick": { + "show": false, + }, + "axisLabel": { + "color": '#666666' + }, + "axisLine": { + "lineStyle": { + "color": '#CCCCCC' + } + }, + }, + "seriesTemplate": { + "name": '', + "type": 'bar', + "data": [], + "barwidth": 20, + "label": { + "show": true, + "color": "#666666", + "position": 'top', + }, + }, + }, + "line": { + "color": color, + "title": { + "text": '' + }, + "tooltip": { + "trigger": 'axis' + }, + "grid": { + "top": 30, + "bottom": 50, + "right": 15, + "left": 40 + }, + "legend": { + "bottom": 'left', + }, + "toolbox": { + "show": false, + }, + "xAxis": { + "type": 'category', + "axisLabel": { + "color": '#666666' + }, + "axisLine": { + "lineStyle": { + "color": '#CCCCCC' + } + }, + "boundaryGap": true, + "data": [] + }, + "yAxis": { + "type": 'value', + "axisTick": { + "show": false, + }, + "axisLabel": { + "color": '#666666' + }, + "axisLine": { + "lineStyle": { + "color": '#CCCCCC' + } + }, + }, + "seriesTemplate": { + "name": '', + "type": 'line', + "data": [], + "barwidth": 20, + "label": { + "show": true, + "color": "#666666", + "position": 'top', + }, + }, + }, + "area": { + "color": color, + "title": { + "text": '' + }, + "tooltip": { + "trigger": 'axis' + }, + "grid": { + "top": 30, + "bottom": 50, + "right": 15, + "left": 40 + }, + "legend": { + "bottom": 'left', + }, + "toolbox": { + "show": false, + }, + "xAxis": { + "type": 'category', + "axisLabel": { + "color": '#666666' + }, + "axisLine": { + "lineStyle": { + "color": '#CCCCCC' + } + }, + "boundaryGap": true, + "data": [] + }, + "yAxis": { + "type": 'value', + "axisTick": { + "show": false, + }, + "axisLabel": { + "color": '#666666' + }, + "axisLine": { + "lineStyle": { + "color": '#CCCCCC' + } + }, + }, + "seriesTemplate": { + "name": '', + "type": 'line', + "data": [], + "areaStyle": {}, + "label": { + "show": true, + "color": "#666666", + "position": 'top', + }, + }, + }, + "pie": { + "color": color, + "title": { + "text": '' + }, + "tooltip": { + "trigger": 'item' + }, + "grid": { + "top": 40, + "bottom": 30, + "right": 15, + "left": 15 + }, + "legend": { + "bottom": 'left', + }, + "seriesTemplate": { + "name": '', + "type": 'pie', + "data": [], + "radius": '50%', + "label": { + "show": true, + "color": "#666666", + "position": 'top', + }, + }, + }, + "ring": { + "color": color, + "title": { + "text": '' + }, + "tooltip": { + "trigger": 'item' + }, + "grid": { + "top": 40, + "bottom": 30, + "right": 15, + "left": 15 + }, + "legend": { + "bottom": 'left', + }, + "seriesTemplate": { + "name": '', + "type": 'pie', + "data": [], + "radius": ['40%', '70%'], + "avoidLabelOverlap": false, + "label": { + "show": true, + "color": "#666666", + "position": 'top', + }, + "labelLine": { + "show": true + }, + }, + }, + "rose": { + "color": color, + "title": { + "text": '' + }, + "tooltip": { + "trigger": 'item' + }, + "legend": { + "top": 'bottom' + }, + "seriesTemplate": { + "name": '', + "type": 'pie', + "data": [], + "radius": "55%", + "center": ['50%', '50%'], + "roseType": 'area', + }, + }, + "funnel": { + "color": color, + "title": { + "text": '' + }, + "tooltip": { + "trigger": 'item', + "formatter": "{b} : {c}%" + }, + "legend": { + "top": 'bottom' + }, + "seriesTemplate": { + "name": '', + "type": 'funnel', + "left": '10%', + "top": 60, + "bottom": 60, + "width": '80%', + "min": 0, + "max": 100, + "minSize": '0%', + "maxSize": '100%', + "sort": 'descending', + "gap": 2, + "label": { + "show": true, + "position": 'inside' + }, + "labelLine": { + "length": 10, + "lineStyle": { + "width": 1, + "type": 'solid' + } + }, + "itemStyle": { + "bordercolor": '#fff', + "borderwidth": 1 + }, + "emphasis": { + "label": { + "fontSize": 20 + } + }, + "data": [], + }, + }, + "gauge": { + "color": color, + "tooltip": { + "formatter": '{a}
{b} : {c}%' + }, + "seriesTemplate": { + "name": '业务指标', + "type": 'gauge', + "detail": {"formatter": '{value}%'}, + "data": [{"value": 50, "name": '完成率'}] + }, + }, + "candle": { + "xAxis": { + "data": [] + }, + "yAxis": {}, + "color": color, + "title": { + "text": '' + }, + "dataZoom": [{ + "type": 'inside', + "xAxisIndex": [0, 1], + "start": 10, + "end": 100 + }, + { + "show": true, + "xAxisIndex": [0, 1], + "type": 'slider', + "bottom": 10, + "start": 10, + "end": 100 + } + ], + "seriesTemplate": { + "name": '', + "type": 'k', + "data": [], + }, + } +} + +export default cfe; \ No newline at end of file diff --git a/uni_modules/qiun-data-charts/js_sdk/u-charts/config-ucharts.js b/uni_modules/qiun-data-charts/js_sdk/u-charts/config-ucharts.js new file mode 100644 index 0000000..17b28b3 --- /dev/null +++ b/uni_modules/qiun-data-charts/js_sdk/u-charts/config-ucharts.js @@ -0,0 +1,606 @@ +/* + * uCharts® + * 高性能跨平台图表库,支持H5、APP、小程序(微信/支付宝/百度/头条/QQ/360)、Vue、Taro等支持canvas的框架平台 + * Copyright (c) 2021 QIUN®秋云 https://www.ucharts.cn All rights reserved. + * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 ) + * 复制使用请保留本段注释,感谢支持开源! + * + * uCharts®官方网站 + * https://www.uCharts.cn + * + * 开源地址: + * https://gitee.com/uCharts/uCharts + * + * uni-app插件市场地址: + * http://ext.dcloud.net.cn/plugin?id=271 + * + */ + +// 主题颜色配置:如每个图表类型需要不同主题,请在对应图表类型上更改color属性 +const color = ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc']; + +//事件转换函数,主要用作格式化x轴为时间轴,根据需求自行修改 +const formatDateTime = (timeStamp, returnType)=>{ + var date = new Date(); + date.setTime(timeStamp * 1000); + var y = date.getFullYear(); + var m = date.getMonth() + 1; + m = m < 10 ? ('0' + m) : m; + var d = date.getDate(); + d = d < 10 ? ('0' + d) : d; + var h = date.getHours(); + h = h < 10 ? ('0' + h) : h; + var minute = date.getMinutes(); + var second = date.getSeconds(); + minute = minute < 10 ? ('0' + minute) : minute; + second = second < 10 ? ('0' + second) : second; + if(returnType == 'full'){return y + '-' + m + '-' + d + ' '+ h +':' + minute + ':' + second;} + if(returnType == 'y-m-d'){return y + '-' + m + '-' + d;} + if(returnType == 'h:m'){return h +':' + minute;} + if(returnType == 'h:m:s'){return h +':' + minute +':' + second;} + return [y, m, d, h, minute, second]; +} + +const cfu = { + //demotype为自定义图表类型,一般不需要自定义图表类型,只需要改根节点上对应的类型即可 + "type":["pie","ring","rose","word","funnel","map","arcbar","line","column","mount","bar","area","radar","gauge","candle","mix","tline","tarea","scatter","bubble","demotype"], + "range":["饼状图","圆环图","玫瑰图","词云图","漏斗图","地图","圆弧进度条","折线图","柱状图","山峰图","条状图","区域图","雷达图","仪表盘","K线图","混合图","时间轴折线","时间轴区域","散点图","气泡图","自定义类型"], + //增加自定义图表类型,如果需要categories,请在这里加入您的图表类型,例如最后的"demotype" + //自定义类型时需要注意"tline","tarea","scatter","bubble"等时间轴(矢量x轴)类图表,没有categories,不需要加入categories + "categories":["line","column","mount","bar","area","radar","gauge","candle","mix","demotype"], + //instance为实例变量承载属性,不要删除 + "instance":{}, + //option为opts及eopts承载属性,不要删除 + "option":{}, + //下面是自定义format配置,因除H5端外的其他端无法通过props传递函数,只能通过此属性对应下标的方式来替换 + "formatter":{ + "yAxisDemo1":function(val, index, opts){return val+'元'}, + "yAxisDemo2":function(val, index, opts){return val.toFixed(2)}, + "xAxisDemo1":function(val, index, opts){return val+'年';}, + "xAxisDemo2":function(val, index, opts){return formatDateTime(val,'h:m')}, + "seriesDemo1":function(val, index, series, opts){return val+'元'}, + "tooltipDemo1":function(item, category, index, opts){ + if(index==0){ + return '随便用'+item.data+'年' + }else{ + return '其他我没改'+item.data+'天' + } + }, + "pieDemo":function(val, index, series, opts){ + if(index !== undefined){ + return series[index].name+':'+series[index].data+'元' + } + }, + }, + //这里演示了自定义您的图表类型的option,可以随意命名,之后在组件上 type="demotype" 后,组件会调用这个花括号里的option,如果组件上还存在opts参数,会将demotype与opts中option合并后渲染图表。 + "demotype":{ + //我这里把曲线图当做了自定义图表类型,您可以根据需要随意指定类型或配置 + "type": "line", + "color": color, + "padding": [15,10,0,15], + "xAxis": { + "disableGrid": true, + }, + "yAxis": { + "gridType": "dash", + "dashLength": 2, + }, + "legend": { + }, + "extra": { + "line": { + "type": "curve", + "width": 2 + }, + } + }, + //下面是自定义配置,请添加项目所需的通用配置 + "pie":{ + "type": "pie", + "color": color, + "padding": [5,5,5,5], + "extra": { + "pie": { + "activeOpacity": 0.5, + "activeRadius": 10, + "offsetAngle": 0, + "labelWidth": 15, + "border": true, + "borderWidth": 3, + "borderColor": "#FFFFFF" + }, + } + }, + "ring":{ + "type": "ring", + "color": color, + "padding": [5,5,5,5], + "rotate": false, + "dataLabel": true, + "legend": { + "show": true, + "position": "right", + "lineHeight": 25, + }, + "title": { + "name": "收益率", + "fontSize": 15, + "color": "#666666" + }, + "subtitle": { + "name": "70%", + "fontSize": 25, + "color": "#7cb5ec" + }, + "extra": { + "ring": { + "ringWidth":30, + "activeOpacity": 0.5, + "activeRadius": 10, + "offsetAngle": 0, + "labelWidth": 15, + "border": true, + "borderWidth": 3, + "borderColor": "#FFFFFF" + }, + }, + }, + "rose":{ + "type": "rose", + "color": color, + "padding": [5,5,5,5], + "legend": { + "show": true, + "position": "left", + "lineHeight": 25, + }, + "extra": { + "rose": { + "type": "area", + "minRadius": 50, + "activeOpacity": 0.5, + "activeRadius": 10, + "offsetAngle": 0, + "labelWidth": 15, + "border": false, + "borderWidth": 2, + "borderColor": "#FFFFFF" + }, + } + }, + "word":{ + "type": "word", + "color": color, + "extra": { + "word": { + "type": "normal", + "autoColors": false + } + } + }, + "funnel":{ + "type": "funnel", + "color": color, + "padding": [15,15,0,15], + "extra": { + "funnel": { + "activeOpacity": 0.3, + "activeWidth": 10, + "border": true, + "borderWidth": 2, + "borderColor": "#FFFFFF", + "fillOpacity": 1, + "labelAlign": "right" + }, + } + }, + "map":{ + "type": "map", + "color": color, + "padding": [0,0,0,0], + "dataLabel": true, + "extra": { + "map": { + "border": true, + "borderWidth": 1, + "borderColor": "#666666", + "fillOpacity": 0.6, + "activeBorderColor": "#F04864", + "activeFillColor": "#FACC14", + "activeFillOpacity": 1 + }, + } + }, + "arcbar":{ + "type": "arcbar", + "color": color, + "title": { + "name": "百分比", + "fontSize": 25, + "color": "#00FF00" + }, + "subtitle": { + "name": "默认标题", + "fontSize": 15, + "color": "#666666" + }, + "extra": { + "arcbar": { + "type": "default", + "width": 12, + "backgroundColor": "#E9E9E9", + "startAngle": 0.75, + "endAngle": 0.25, + "gap": 2 + } + } + }, + "line":{ + "type": "line", + "color": color, + "padding": [15,10,0,15], + "xAxis": { + "disableGrid": true, + }, + "yAxis": { + "gridType": "dash", + "dashLength": 2, + }, + "legend": { + }, + "extra": { + "line": { + "type": "straight", + "width": 2, + "activeType": "hollow" + }, + } + }, + "tline":{ + "type": "line", + "color": color, + "padding": [15,10,0,15], + "xAxis": { + "disableGrid": false, + "boundaryGap":"justify", + }, + "yAxis": { + "gridType": "dash", + "dashLength": 2, + "data":[ + { + "min":0, + "max":80 + } + ] + }, + "legend": { + }, + "extra": { + "line": { + "type": "curve", + "width": 2, + "activeType": "hollow" + }, + } + }, + "tarea":{ + "type": "area", + "color": color, + "padding": [15,10,0,15], + "xAxis": { + "disableGrid": true, + "boundaryGap":"justify", + }, + "yAxis": { + "gridType": "dash", + "dashLength": 2, + "data":[ + { + "min":0, + "max":80 + } + ] + }, + "legend": { + }, + "extra": { + "area": { + "type": "curve", + "opacity": 0.2, + "addLine": true, + "width": 2, + "gradient": true, + "activeType": "hollow" + }, + } + }, + "column":{ + "type": "column", + "color": color, + "padding": [15,15,0,5], + "xAxis": { + "disableGrid": true, + }, + "yAxis": { + "data":[{"min":0}] + }, + "legend": { + }, + "extra": { + "column": { + "type": "group", + "width": 30, + "activeBgColor": "#000000", + "activeBgOpacity": 0.08 + }, + } + }, + "mount":{ + "type": "mount", + "color": color, + "padding": [15,15,0,5], + "xAxis": { + "disableGrid": true, + }, + "yAxis": { + "data":[{"min":0}] + }, + "legend": { + }, + "extra": { + "mount": { + "type": "mount", + "widthRatio": 1.5, + }, + } + }, + "bar":{ + "type": "bar", + "color": color, + "padding": [15,30,0,5], + "xAxis": { + "boundaryGap":"justify", + "disableGrid":false, + "min":0, + "axisLine":false + }, + "yAxis": { + }, + "legend": { + }, + "extra": { + "bar": { + "type": "group", + "width": 30, + "meterBorde": 1, + "meterFillColor": "#FFFFFF", + "activeBgColor": "#000000", + "activeBgOpacity": 0.08 + }, + } + }, + "area":{ + "type": "area", + "color": color, + "padding": [15,15,0,15], + "xAxis": { + "disableGrid": true, + }, + "yAxis": { + "gridType": "dash", + "dashLength": 2, + }, + "legend": { + }, + "extra": { + "area": { + "type": "straight", + "opacity": 0.2, + "addLine": true, + "width": 2, + "gradient": false, + "activeType": "hollow" + }, + } + }, + "radar":{ + "type": "radar", + "color": color, + "padding": [5,5,5,5], + "dataLabel": false, + "legend": { + "show": true, + "position": "right", + "lineHeight": 25, + }, + "extra": { + "radar": { + "gridType": "radar", + "gridColor": "#CCCCCC", + "gridCount": 3, + "opacity": 0.2, + "max": 200, + "labelShow": true + }, + } + }, + "gauge":{ + "type": "gauge", + "color": color, + "title": { + "name": "66Km/H", + "fontSize": 25, + "color": "#2fc25b", + "offsetY": 50 + }, + "subtitle": { + "name": "实时速度", + "fontSize": 15, + "color": "#1890ff", + "offsetY": -50 + }, + "extra": { + "gauge": { + "type": "default", + "width": 30, + "labelColor": "#666666", + "startAngle": 0.75, + "endAngle": 0.25, + "startNumber": 0, + "endNumber": 100, + "labelFormat": "", + "splitLine": { + "fixRadius": 0, + "splitNumber": 10, + "width": 30, + "color": "#FFFFFF", + "childNumber": 5, + "childWidth": 12 + }, + "pointer": { + "width": 24, + "color": "auto" + } + } + } + }, + "candle":{ + "type": "candle", + "color": color, + "padding": [15,15,0,15], + "enableScroll": true, + "enableMarkLine": true, + "dataLabel": false, + "xAxis": { + "labelCount": 4, + "itemCount": 40, + "disableGrid": true, + "gridColor": "#CCCCCC", + "gridType": "solid", + "dashLength": 4, + "scrollShow": true, + "scrollAlign": "left", + "scrollColor": "#A6A6A6", + "scrollBackgroundColor": "#EFEBEF" + }, + "yAxis": { + }, + "legend": { + }, + "extra": { + "candle": { + "color": { + "upLine": "#f04864", + "upFill": "#f04864", + "downLine": "#2fc25b", + "downFill": "#2fc25b" + }, + "average": { + "show": true, + "name": ["MA5","MA10","MA30"], + "day": [5,10,20], + "color": ["#1890ff","#2fc25b","#facc14"] + } + }, + "markLine": { + "type": "dash", + "dashLength": 5, + "data": [ + { + "value": 2150, + "lineColor": "#f04864", + "showLabel": true + }, + { + "value": 2350, + "lineColor": "#f04864", + "showLabel": true + } + ] + } + } + }, + "mix":{ + "type": "mix", + "color": color, + "padding": [15,15,0,15], + "xAxis": { + "disableGrid": true, + }, + "yAxis": { + "disabled": false, + "disableGrid": false, + "splitNumber": 5, + "gridType": "dash", + "dashLength": 4, + "gridColor": "#CCCCCC", + "padding": 10, + "showTitle": true, + "data": [] + }, + "legend": { + }, + "extra": { + "mix": { + "column": { + "width": 20 + } + }, + } + }, + "scatter":{ + "type": "scatter", + "color":color, + "padding":[15,15,0,15], + "dataLabel":false, + "xAxis": { + "disableGrid": false, + "gridType":"dash", + "splitNumber":5, + "boundaryGap":"justify", + "min":0 + }, + "yAxis": { + "disableGrid": false, + "gridType":"dash", + }, + "legend": { + }, + "extra": { + "scatter": { + }, + } + }, + "bubble":{ + "type": "bubble", + "color":color, + "padding":[15,15,0,15], + "xAxis": { + "disableGrid": false, + "gridType":"dash", + "splitNumber":5, + "boundaryGap":"justify", + "min":0, + "max":250 + }, + "yAxis": { + "disableGrid": false, + "gridType":"dash", + "data":[{ + "min":0, + "max":150 + }] + }, + "legend": { + }, + "extra": { + "bubble": { + "border":2, + "opacity": 0.5, + }, + } + } +} + +export default cfu; \ No newline at end of file diff --git a/uni_modules/qiun-data-charts/js_sdk/u-charts/readme.md b/uni_modules/qiun-data-charts/js_sdk/u-charts/readme.md new file mode 100644 index 0000000..d307ba3 --- /dev/null +++ b/uni_modules/qiun-data-charts/js_sdk/u-charts/readme.md @@ -0,0 +1,5 @@ +# uCharts JSSDK说明 +1、如不使用uCharts组件,可直接引用u-charts.js,打包编译后会`自动压缩`,压缩后体积约为`120kb`。 +2、如果120kb的体积仍需压缩,请手到uCharts官网通过在线定制选择您需要的图表。 +3、config-ucharts.js为uCharts组件的用户配置文件,升级前请`自行备份config-ucharts.js`文件,以免被强制覆盖。 +4、config-echarts.js为ECharts组件的用户配置文件,升级前请`自行备份config-echarts.js`文件,以免被强制覆盖。 \ No newline at end of file diff --git a/uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js b/uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js new file mode 100644 index 0000000..f78bde5 --- /dev/null +++ b/uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js @@ -0,0 +1,7706 @@ +/* + * uCharts (R) + * 高性能跨平台图表库,支持H5、APP、小程序(微信/支付宝/百度/头条/QQ/360/快手)、Vue、Taro等支持canvas的框架平台 + * Copyright (C) 2018-2022 QIUN (R) 秋云 https://www.ucharts.cn All rights reserved. + * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 ) + * 复制使用请保留本段注释,感谢支持开源! + * + * uCharts (R) 官方网站 + * https://www.uCharts.cn + * + * 开源地址: + * https://gitee.com/uCharts/uCharts + * + * uni-app插件市场地址: + * http://ext.dcloud.net.cn/plugin?id=271 + * + */ + +'use strict'; + +var config = { + version: 'v2.5.0-20230101', + yAxisWidth: 15, + xAxisHeight: 22, + padding: [10, 10, 10, 10], + rotate: false, + fontSize: 13, + fontColor: '#666666', + dataPointShape: ['circle', 'circle', 'circle', 'circle'], + color: ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc'], + linearColor: ['#0EE2F8', '#2BDCA8', '#FA7D8D', '#EB88E2', '#2AE3A0', '#0EE2F8', '#EB88E2', '#6773E3', '#F78A85'], + pieChartLinePadding: 15, + pieChartTextPadding: 5, + titleFontSize: 20, + subtitleFontSize: 15, + radarLabelTextMargin: 13, +}; + +var assign = function(target, ...varArgs) { + if (target == null) { + throw new TypeError('[uCharts] Cannot convert undefined or null to object'); + } + if (!varArgs || varArgs.length <= 0) { + return target; + } + // 深度合并对象 + function deepAssign(obj1, obj2) { + for (let key in obj2) { + obj1[key] = obj1[key] && obj1[key].toString() === "[object Object]" ? + deepAssign(obj1[key], obj2[key]) : obj1[key] = obj2[key]; + } + return obj1; + } + varArgs.forEach(val => { + target = deepAssign(target, val); + }); + return target; +}; + +var util = { + toFixed: function toFixed(num, limit) { + limit = limit || 2; + if (this.isFloat(num)) { + num = num.toFixed(limit); + } + return num; + }, + isFloat: function isFloat(num) { + return num % 1 !== 0; + }, + approximatelyEqual: function approximatelyEqual(num1, num2) { + return Math.abs(num1 - num2) < 1e-10; + }, + isSameSign: function isSameSign(num1, num2) { + return Math.abs(num1) === num1 && Math.abs(num2) === num2 || Math.abs(num1) !== num1 && Math.abs(num2) !== num2; + }, + isSameXCoordinateArea: function isSameXCoordinateArea(p1, p2) { + return this.isSameSign(p1.x, p2.x); + }, + isCollision: function isCollision(obj1, obj2) { + obj1.end = {}; + obj1.end.x = obj1.start.x + obj1.width; + obj1.end.y = obj1.start.y - obj1.height; + obj2.end = {}; + obj2.end.x = obj2.start.x + obj2.width; + obj2.end.y = obj2.start.y - obj2.height; + var flag = obj2.start.x > obj1.end.x || obj2.end.x < obj1.start.x || obj2.end.y > obj1.start.y || obj2.start.y < obj1.end.y; + return !flag; + } +}; + +//兼容H5点击事件 +function getH5Offset(e) { + e.mp = { + changedTouches: [] + }; + e.mp.changedTouches.push({ + x: e.offsetX, + y: e.offsetY + }); + return e; +} + +// hex 转 rgba +function hexToRgb(hexValue, opc) { + var rgx = /^#?([a-f\d])([a-f\d])([a-f\d])$/i; + var hex = hexValue.replace(rgx, function(m, r, g, b) { + return r + r + g + g + b + b; + }); + var rgb = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex); + var r = parseInt(rgb[1], 16); + var g = parseInt(rgb[2], 16); + var b = parseInt(rgb[3], 16); + return 'rgba(' + r + ',' + g + ',' + b + ',' + opc + ')'; +} + +function findRange(num, type, limit) { + if (isNaN(num)) { + throw new Error('[uCharts] series数据需为Number格式'); + } + limit = limit || 10; + type = type ? type : 'upper'; + var multiple = 1; + while (limit < 1) { + limit *= 10; + multiple *= 10; + } + if (type === 'upper') { + num = Math.ceil(num * multiple); + } else { + num = Math.floor(num * multiple); + } + while (num % limit !== 0) { + if (type === 'upper') { + if (num == num + 1) { //修复数据值过大num++无效的bug by 向日葵 @xrk_jy + break; + } + num++; + } else { + num--; + } + } + return num / multiple; +} + +function calCandleMA(dayArr, nameArr, colorArr, kdata) { + let seriesTemp = []; + for (let k = 0; k < dayArr.length; k++) { + let seriesItem = { + data: [], + name: nameArr[k], + color: colorArr[k] + }; + for (let i = 0, len = kdata.length; i < len; i++) { + if (i < dayArr[k]) { + seriesItem.data.push(null); + continue; + } + let sum = 0; + for (let j = 0; j < dayArr[k]; j++) { + sum += kdata[i - j][1]; + } + seriesItem.data.push(+(sum / dayArr[k]).toFixed(3)); + } + seriesTemp.push(seriesItem); + } + return seriesTemp; +} + +function calValidDistance(self, distance, chartData, config, opts) { + var dataChartAreaWidth = opts.width - opts.area[1] - opts.area[3]; + var dataChartWidth = chartData.eachSpacing * (opts.chartData.xAxisData.xAxisPoints.length - 1); + if(opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1){ + if(opts.extra.mount.widthRatio>2) opts.extra.mount.widthRatio = 2 + dataChartWidth += (opts.extra.mount.widthRatio - 1)*chartData.eachSpacing; + } + var validDistance = distance; + if (distance >= 0) { + validDistance = 0; + self.uevent.trigger('scrollLeft'); + self.scrollOption.position = 'left' + opts.xAxis.scrollPosition = 'left'; + } else if (Math.abs(distance) >= dataChartWidth - dataChartAreaWidth) { + validDistance = dataChartAreaWidth - dataChartWidth; + self.uevent.trigger('scrollRight'); + self.scrollOption.position = 'right' + opts.xAxis.scrollPosition = 'right'; + } else { + self.scrollOption.position = distance + opts.xAxis.scrollPosition = distance; + } + return validDistance; +} + +function isInAngleRange(angle, startAngle, endAngle) { + function adjust(angle) { + while (angle < 0) { + angle += 2 * Math.PI; + } + while (angle > 2 * Math.PI) { + angle -= 2 * Math.PI; + } + return angle; + } + angle = adjust(angle); + startAngle = adjust(startAngle); + endAngle = adjust(endAngle); + if (startAngle > endAngle) { + endAngle += 2 * Math.PI; + if (angle < startAngle) { + angle += 2 * Math.PI; + } + } + return angle >= startAngle && angle <= endAngle; +} + +function createCurveControlPoints(points, i) { + function isNotMiddlePoint(points, i) { + if (points[i - 1] && points[i + 1]) { + return points[i].y >= Math.max(points[i - 1].y, points[i + 1].y) || points[i].y <= Math.min(points[i - 1].y, + points[i + 1].y); + } else { + return false; + } + } + function isNotMiddlePointX(points, i) { + if (points[i - 1] && points[i + 1]) { + return points[i].x >= Math.max(points[i - 1].x, points[i + 1].x) || points[i].x <= Math.min(points[i - 1].x, + points[i + 1].x); + } else { + return false; + } + } + var a = 0.2; + var b = 0.2; + var pAx = null; + var pAy = null; + var pBx = null; + var pBy = null; + if (i < 1) { + pAx = points[0].x + (points[1].x - points[0].x) * a; + pAy = points[0].y + (points[1].y - points[0].y) * a; + } else { + pAx = points[i].x + (points[i + 1].x - points[i - 1].x) * a; + pAy = points[i].y + (points[i + 1].y - points[i - 1].y) * a; + } + + if (i > points.length - 3) { + var last = points.length - 1; + pBx = points[last].x - (points[last].x - points[last - 1].x) * b; + pBy = points[last].y - (points[last].y - points[last - 1].y) * b; + } else { + pBx = points[i + 1].x - (points[i + 2].x - points[i].x) * b; + pBy = points[i + 1].y - (points[i + 2].y - points[i].y) * b; + } + if (isNotMiddlePoint(points, i + 1)) { + pBy = points[i + 1].y; + } + if (isNotMiddlePoint(points, i)) { + pAy = points[i].y; + } + if (isNotMiddlePointX(points, i + 1)) { + pBx = points[i + 1].x; + } + if (isNotMiddlePointX(points, i)) { + pAx = points[i].x; + } + if (pAy >= Math.max(points[i].y, points[i + 1].y) || pAy <= Math.min(points[i].y, points[i + 1].y)) { + pAy = points[i].y; + } + if (pBy >= Math.max(points[i].y, points[i + 1].y) || pBy <= Math.min(points[i].y, points[i + 1].y)) { + pBy = points[i + 1].y; + } + if (pAx >= Math.max(points[i].x, points[i + 1].x) || pAx <= Math.min(points[i].x, points[i + 1].x)) { + pAx = points[i].x; + } + if (pBx >= Math.max(points[i].x, points[i + 1].x) || pBx <= Math.min(points[i].x, points[i + 1].x)) { + pBx = points[i + 1].x; + } + return { + ctrA: { + x: pAx, + y: pAy + }, + ctrB: { + x: pBx, + y: pBy + } + }; +} + + +function convertCoordinateOrigin(x, y, center) { + return { + x: center.x + x, + y: center.y - y + }; +} + +function avoidCollision(obj, target) { + if (target) { + // is collision test + while (util.isCollision(obj, target)) { + if (obj.start.x > 0) { + obj.start.y--; + } else if (obj.start.x < 0) { + obj.start.y++; + } else { + if (obj.start.y > 0) { + obj.start.y++; + } else { + obj.start.y--; + } + } + } + } + return obj; +} + +function fixPieSeries(series, opts, config){ + let pieSeriesArr = []; + if(series.length>0 && series[0].data.constructor.toString().indexOf('Array') > -1){ + opts._pieSeries_ = series; + let oldseries = series[0].data; + for (var i = 0; i < oldseries.length; i++) { + oldseries[i].formatter = series[0].formatter; + oldseries[i].data = oldseries[i].value; + pieSeriesArr.push(oldseries[i]); + } + opts.series = pieSeriesArr; + }else{ + pieSeriesArr = series; + } + return pieSeriesArr; +} + +function fillSeries(series, opts, config) { + var index = 0; + for (var i = 0; i < series.length; i++) { + let item = series[i]; + if (!item.color) { + item.color = config.color[index]; + index = (index + 1) % config.color.length; + } + if (!item.linearIndex) { + item.linearIndex = i; + } + if (!item.index) { + item.index = 0; + } + if (!item.type) { + item.type = opts.type; + } + if (typeof item.show == "undefined") { + item.show = true; + } + if (!item.type) { + item.type = opts.type; + } + if (!item.pointShape) { + item.pointShape = "circle"; + } + if (!item.legendShape) { + switch (item.type) { + case 'line': + item.legendShape = "line"; + break; + case 'column': + case 'bar': + item.legendShape = "rect"; + break; + case 'area': + case 'mount': + item.legendShape = "triangle"; + break; + default: + item.legendShape = "circle"; + } + } + } + return series; +} + +function fillCustomColor(linearType, customColor, series, config) { + var newcolor = customColor || []; + if (linearType == 'custom' && newcolor.length == 0 ) { + newcolor = config.linearColor; + } + if (linearType == 'custom' && newcolor.length < series.length) { + let chazhi = series.length - newcolor.length; + for (var i = 0; i < chazhi; i++) { + newcolor.push(config.linearColor[(i + 1) % config.linearColor.length]); + } + } + return newcolor; +} + +function getDataRange(minData, maxData) { + var limit = 0; + var range = maxData - minData; + if (range >= 10000) { + limit = 1000; + } else if (range >= 1000) { + limit = 100; + } else if (range >= 100) { + limit = 10; + } else if (range >= 10) { + limit = 5; + } else if (range >= 1) { + limit = 1; + } else if (range >= 0.1) { + limit = 0.1; + } else if (range >= 0.01) { + limit = 0.01; + } else if (range >= 0.001) { + limit = 0.001; + } else if (range >= 0.0001) { + limit = 0.0001; + } else if (range >= 0.00001) { + limit = 0.00001; + } else { + limit = 0.000001; + } + return { + minRange: findRange(minData, 'lower', limit), + maxRange: findRange(maxData, 'upper', limit) + }; +} + +function measureText(text, fontSize, context) { + var width = 0; + text = String(text); + // #ifdef MP-ALIPAY || MP-BAIDU || APP-NVUE + context = false; + // #endif + if (context !== false && context !== undefined && context.setFontSize && context.measureText) { + context.setFontSize(fontSize); + return context.measureText(text).width; + } else { + var text = text.split(''); + for (let i = 0; i < text.length; i++) { + let item = text[i]; + if (/[a-zA-Z]/.test(item)) { + width += 7; + } else if (/[0-9]/.test(item)) { + width += 5.5; + } else if (/\./.test(item)) { + width += 2.7; + } else if (/-/.test(item)) { + width += 3.25; + } else if (/:/.test(item)) { + width += 2.5; + } else if (/[\u4e00-\u9fa5]/.test(item)) { + width += 10; + } else if (/\(|\)/.test(item)) { + width += 3.73; + } else if (/\s/.test(item)) { + width += 2.5; + } else if (/%/.test(item)) { + width += 8; + } else { + width += 10; + } + } + return width * fontSize / 10; + } +} + +function dataCombine(series) { + return series.reduce(function(a, b) { + return (a.data ? a.data : a).concat(b.data); + }, []); +} + +function dataCombineStack(series, len) { + var sum = new Array(len); + for (var j = 0; j < sum.length; j++) { + sum[j] = 0; + } + for (var i = 0; i < series.length; i++) { + for (var j = 0; j < sum.length; j++) { + sum[j] += series[i].data[j]; + } + } + return series.reduce(function(a, b) { + return (a.data ? a.data : a).concat(b.data).concat(sum); + }, []); +} + +function getTouches(touches, opts, e) { + let x, y; + if (touches.clientX) { + if (opts.rotate) { + y = opts.height - touches.clientX * opts.pix; + x = (touches.pageY - e.currentTarget.offsetTop - (opts.height / opts.pix / 2) * (opts.pix - 1)) * opts.pix; + } else { + x = touches.clientX * opts.pix; + y = (touches.pageY - e.currentTarget.offsetTop - (opts.height / opts.pix / 2) * (opts.pix - 1)) * opts.pix; + } + } else { + if (opts.rotate) { + y = opts.height - touches.x * opts.pix; + x = touches.y * opts.pix; + } else { + x = touches.x * opts.pix; + y = touches.y * opts.pix; + } + } + return { + x: x, + y: y + } +} + +function getSeriesDataItem(series, index, group) { + var data = []; + var newSeries = []; + var indexIsArr = index.constructor.toString().indexOf('Array') > -1; + if(indexIsArr){ + let tempSeries = filterSeries(series); + for (var i = 0; i < group.length; i++) { + newSeries.push(tempSeries[group[i]]); + } + }else{ + newSeries = series; + }; + for (let i = 0; i < newSeries.length; i++) { + let item = newSeries[i]; + let tmpindex = -1; + if(indexIsArr){ + tmpindex = index[i]; + }else{ + tmpindex = index; + } + if (item.data[tmpindex] !== null && typeof item.data[tmpindex] !== 'undefined' && item.show) { + let seriesItem = {}; + seriesItem.color = item.color; + seriesItem.type = item.type; + seriesItem.style = item.style; + seriesItem.pointShape = item.pointShape; + seriesItem.disableLegend = item.disableLegend; + seriesItem.legendShape = item.legendShape; + seriesItem.name = item.name; + seriesItem.show = item.show; + seriesItem.data = item.formatter ? item.formatter(item.data[tmpindex]) : item.data[tmpindex]; + data.push(seriesItem); + } + } + return data; +} + +function getMaxTextListLength(list, fontSize, context) { + var lengthList = list.map(function(item) { + return measureText(item, fontSize, context); + }); + return Math.max.apply(null, lengthList); +} + +function getRadarCoordinateSeries(length) { + var eachAngle = 2 * Math.PI / length; + var CoordinateSeries = []; + for (var i = 0; i < length; i++) { + CoordinateSeries.push(eachAngle * i); + } + return CoordinateSeries.map(function(item) { + return -1 * item + Math.PI / 2; + }); +} + +function getToolTipData(seriesData, opts, index, group, categories) { + var option = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {}; + var calPoints = opts.chartData.calPoints?opts.chartData.calPoints:[]; + let points = {}; + if(group.length > 0){ + let filterPoints = []; + for (let i = 0; i < group.length; i++) { + filterPoints.push(calPoints[group[i]]) + } + points = filterPoints[0][index[0]]; + }else{ + for (let i = 0; i < calPoints.length; i++) { + if(calPoints[i][index]){ + points = calPoints[i][index]; + break; + } + } + }; + var textList = seriesData.map(function(item) { + let titleText = null; + if (opts.categories && opts.categories.length>0) { + titleText = categories[index]; + }; + return { + text: option.formatter ? option.formatter(item, titleText, index, opts) : item.name + ': ' + item.data, + color: item.color, + legendShape: opts.extra.tooltip.legendShape == 'auto'? item.legendShape : opts.extra.tooltip.legendShape + }; + }); + var offset = { + x: Math.round(points.x), + y: Math.round(points.y) + }; + return { + textList: textList, + offset: offset + }; +} + +function getMixToolTipData(seriesData, opts, index, categories) { + var option = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {}; + var points = opts.chartData.xAxisPoints[index] + opts.chartData.eachSpacing / 2; + var textList = seriesData.map(function(item) { + return { + text: option.formatter ? option.formatter(item, categories[index], index, opts) : item.name + ': ' + item.data, + color: item.color, + disableLegend: item.disableLegend ? true : false, + legendShape: opts.extra.tooltip.legendShape == 'auto'? item.legendShape : opts.extra.tooltip.legendShape + }; + }); + textList = textList.filter(function(item) { + if (item.disableLegend !== true) { + return item; + } + }); + var offset = { + x: Math.round(points), + y: 0 + }; + return { + textList: textList, + offset: offset + }; +} + +function getCandleToolTipData(series, seriesData, opts, index, categories, extra) { + var option = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : {}; + var calPoints = opts.chartData.calPoints; + let upColor = extra.color.upFill; + let downColor = extra.color.downFill; + //颜色顺序为开盘,收盘,最低,最高 + let color = [upColor, upColor, downColor, upColor]; + var textList = []; + seriesData.map(function(item) { + if (index == 0) { + if (item.data[1] - item.data[0] < 0) { + color[1] = downColor; + } else { + color[1] = upColor; + } + } else { + if (item.data[0] < series[index - 1][1]) { + color[0] = downColor; + } + if (item.data[1] < item.data[0]) { + color[1] = downColor; + } + if (item.data[2] > series[index - 1][1]) { + color[2] = upColor; + } + if (item.data[3] < series[index - 1][1]) { + color[3] = downColor; + } + } + let text1 = { + text: '开盘:' + item.data[0], + color: color[0], + legendShape: opts.extra.tooltip.legendShape == 'auto'? item.legendShape : opts.extra.tooltip.legendShape + }; + let text2 = { + text: '收盘:' + item.data[1], + color: color[1], + legendShape: opts.extra.tooltip.legendShape == 'auto'? item.legendShape : opts.extra.tooltip.legendShape + }; + let text3 = { + text: '最低:' + item.data[2], + color: color[2], + legendShape: opts.extra.tooltip.legendShape == 'auto'? item.legendShape : opts.extra.tooltip.legendShape + }; + let text4 = { + text: '最高:' + item.data[3], + color: color[3], + legendShape: opts.extra.tooltip.legendShape == 'auto'? item.legendShape : opts.extra.tooltip.legendShape + }; + textList.push(text1, text2, text3, text4); + }); + var validCalPoints = []; + var offset = { + x: 0, + y: 0 + }; + for (let i = 0; i < calPoints.length; i++) { + let points = calPoints[i]; + if (typeof points[index] !== 'undefined' && points[index] !== null) { + validCalPoints.push(points[index]); + } + } + offset.x = Math.round(validCalPoints[0][0].x); + return { + textList: textList, + offset: offset + }; +} + +function filterSeries(series) { + let tempSeries = []; + for (let i = 0; i < series.length; i++) { + if (series[i].show == true) { + tempSeries.push(series[i]) + } + } + return tempSeries; +} + +function findCurrentIndex(currentPoints, calPoints, opts, config) { + var offset = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0; + var current={ index:-1, group:[] }; + var spacing = opts.chartData.eachSpacing / 2; + let xAxisPoints = []; + if (calPoints && calPoints.length > 0) { + if (!opts.categories) { + spacing = 0; + }else{ + for (let i = 1; i < opts.chartData.xAxisPoints.length; i++) { + xAxisPoints.push(opts.chartData.xAxisPoints[i] - spacing); + } + if ((opts.type == 'line' || opts.type == 'area') && opts.xAxis.boundaryGap == 'justify') { + xAxisPoints = opts.chartData.xAxisPoints; + } + } + if (isInExactChartArea(currentPoints, opts, config)) { + if (!opts.categories) { + let timePoints = Array(calPoints.length); + for (let i = 0; i < calPoints.length; i++) { + timePoints[i] = Array(calPoints[i].length) + for (let j = 0; j < calPoints[i].length; j++) { + timePoints[i][j] = (Math.abs(calPoints[i][j].x - currentPoints.x)); + } + }; + let pointValue = Array(timePoints.length); + let pointIndex = Array(timePoints.length); + for (let i = 0; i < timePoints.length; i++) { + pointValue[i] = Math.min.apply(null, timePoints[i]); + pointIndex[i] = timePoints[i].indexOf(pointValue[i]); + } + let minValue = Math.min.apply(null, pointValue); + current.index = []; + for (let i = 0; i < pointValue.length; i++) { + if(pointValue[i] == minValue){ + current.group.push(i); + current.index.push(pointIndex[i]); + } + }; + }else{ + xAxisPoints.forEach(function(item, index) { + if (currentPoints.x + offset + spacing > item) { + current.index = index; + } + }); + } + } + } + return current; +} + +function findBarChartCurrentIndex(currentPoints, calPoints, opts, config) { + var offset = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0; + var current={ index:-1, group:[] }; + var spacing = opts.chartData.eachSpacing / 2; + let yAxisPoints = opts.chartData.yAxisPoints; + if (calPoints && calPoints.length > 0) { + if (isInExactChartArea(currentPoints, opts, config)) { + yAxisPoints.forEach(function(item, index) { + if (currentPoints.y + offset + spacing > item) { + current.index = index; + } + }); + } + } + return current; +} + +function findLegendIndex(currentPoints, legendData, opts) { + let currentIndex = -1; + let gap = 0; + if (isInExactLegendArea(currentPoints, legendData.area)) { + let points = legendData.points; + let index = -1; + for (let i = 0, len = points.length; i < len; i++) { + let item = points[i]; + for (let j = 0; j < item.length; j++) { + index += 1; + let area = item[j]['area']; + if (area && currentPoints.x > area[0] - gap && currentPoints.x < area[2] + gap && currentPoints.y > area[1] - gap && currentPoints.y < area[3] + gap) { + currentIndex = index; + break; + } + } + } + return currentIndex; + } + return currentIndex; +} + +function isInExactLegendArea(currentPoints, area) { + return currentPoints.x > area.start.x && currentPoints.x < area.end.x && currentPoints.y > area.start.y && currentPoints.y < area.end.y; +} + +function isInExactChartArea(currentPoints, opts, config) { + return currentPoints.x <= opts.width - opts.area[1] + 10 && currentPoints.x >= opts.area[3] - 10 && currentPoints.y >= opts.area[0] && currentPoints.y <= opts.height - opts.area[2]; +} + +function findRadarChartCurrentIndex(currentPoints, radarData, count) { + var eachAngleArea = 2 * Math.PI / count; + var currentIndex = -1; + if (isInExactPieChartArea(currentPoints, radarData.center, radarData.radius)) { + var fixAngle = function fixAngle(angle) { + if (angle < 0) { + angle += 2 * Math.PI; + } + if (angle > 2 * Math.PI) { + angle -= 2 * Math.PI; + } + return angle; + }; + var angle = Math.atan2(radarData.center.y - currentPoints.y, currentPoints.x - radarData.center.x); + angle = -1 * angle; + if (angle < 0) { + angle += 2 * Math.PI; + } + var angleList = radarData.angleList.map(function(item) { + item = fixAngle(-1 * item); + return item; + }); + angleList.forEach(function(item, index) { + var rangeStart = fixAngle(item - eachAngleArea / 2); + var rangeEnd = fixAngle(item + eachAngleArea / 2); + if (rangeEnd < rangeStart) { + rangeEnd += 2 * Math.PI; + } + if (angle >= rangeStart && angle <= rangeEnd || angle + 2 * Math.PI >= rangeStart && angle + 2 * Math.PI <= rangeEnd) { + currentIndex = index; + } + }); + } + return currentIndex; +} + +function findFunnelChartCurrentIndex(currentPoints, funnelData) { + var currentIndex = -1; + for (var i = 0, len = funnelData.series.length; i < len; i++) { + var item = funnelData.series[i]; + if (currentPoints.x > item.funnelArea[0] && currentPoints.x < item.funnelArea[2] && currentPoints.y > item.funnelArea[1] && currentPoints.y < item.funnelArea[3]) { + currentIndex = i; + break; + } + } + return currentIndex; +} + +function findWordChartCurrentIndex(currentPoints, wordData) { + var currentIndex = -1; + for (var i = 0, len = wordData.length; i < len; i++) { + var item = wordData[i]; + if (currentPoints.x > item.area[0] && currentPoints.x < item.area[2] && currentPoints.y > item.area[1] && currentPoints.y < item.area[3]) { + currentIndex = i; + break; + } + } + return currentIndex; +} + +function findMapChartCurrentIndex(currentPoints, opts) { + var currentIndex = -1; + var cData = opts.chartData.mapData; + var data = opts.series; + var tmp = pointToCoordinate(currentPoints.y, currentPoints.x, cData.bounds, cData.scale, cData.xoffset, cData.yoffset); + var poi = [tmp.x, tmp.y]; + for (var i = 0, len = data.length; i < len; i++) { + var item = data[i].geometry.coordinates; + if (isPoiWithinPoly(poi, item, opts.chartData.mapData.mercator)) { + currentIndex = i; + break; + } + } + return currentIndex; +} + +function findRoseChartCurrentIndex(currentPoints, pieData, opts) { + var currentIndex = -1; + var series = getRoseDataPoints(opts._series_, opts.extra.rose.type, pieData.radius, pieData.radius); + if (pieData && pieData.center && isInExactPieChartArea(currentPoints, pieData.center, pieData.radius)) { + var angle = Math.atan2(pieData.center.y - currentPoints.y, currentPoints.x - pieData.center.x); + angle = -angle; + if(opts.extra.rose && opts.extra.rose.offsetAngle){ + angle = angle - opts.extra.rose.offsetAngle * Math.PI / 180; + } + for (var i = 0, len = series.length; i < len; i++) { + if (isInAngleRange(angle, series[i]._start_, series[i]._start_ + series[i]._rose_proportion_ * 2 * Math.PI)) { + currentIndex = i; + break; + } + } + } + return currentIndex; +} + +function findPieChartCurrentIndex(currentPoints, pieData, opts) { + var currentIndex = -1; + var series = getPieDataPoints(pieData.series); + if (pieData && pieData.center && isInExactPieChartArea(currentPoints, pieData.center, pieData.radius)) { + var angle = Math.atan2(pieData.center.y - currentPoints.y, currentPoints.x - pieData.center.x); + angle = -angle; + if(opts.extra.pie && opts.extra.pie.offsetAngle){ + angle = angle - opts.extra.pie.offsetAngle * Math.PI / 180; + } + if(opts.extra.ring && opts.extra.ring.offsetAngle){ + angle = angle - opts.extra.ring.offsetAngle * Math.PI / 180; + } + for (var i = 0, len = series.length; i < len; i++) { + if (isInAngleRange(angle, series[i]._start_, series[i]._start_ + series[i]._proportion_ * 2 * Math.PI)) { + currentIndex = i; + break; + } + } + } + return currentIndex; +} + +function isInExactPieChartArea(currentPoints, center, radius) { + return Math.pow(currentPoints.x - center.x, 2) + Math.pow(currentPoints.y - center.y, 2) <= Math.pow(radius, 2); +} + + +function splitPoints(points,eachSeries) { + var newPoints = []; + var items = []; + points.forEach(function(item, index) { + if(eachSeries.connectNulls){ + if (item !== null) { + items.push(item); + } + }else{ + if (item !== null) { + items.push(item); + } else { + if (items.length) { + newPoints.push(items); + } + items = []; + } + } + + }); + if (items.length) { + newPoints.push(items); + } + return newPoints; +} + + +function calLegendData(series, opts, config, chartData, context) { + let legendData = { + area: { + start: { + x: 0, + y: 0 + }, + end: { + x: 0, + y: 0 + }, + width: 0, + height: 0, + wholeWidth: 0, + wholeHeight: 0 + }, + points: [], + widthArr: [], + heightArr: [] + }; + if (opts.legend.show === false) { + chartData.legendData = legendData; + return legendData; + } + let padding = opts.legend.padding * opts.pix; + let margin = opts.legend.margin * opts.pix; + let fontSize = opts.legend.fontSize ? opts.legend.fontSize * opts.pix : config.fontSize; + let shapeWidth = 15 * opts.pix; + let shapeRight = 5 * opts.pix; + let lineHeight = Math.max(opts.legend.lineHeight * opts.pix, fontSize); + if (opts.legend.position == 'top' || opts.legend.position == 'bottom') { + let legendList = []; + let widthCount = 0; + let widthCountArr = []; + let currentRow = []; + for (let i = 0; i < series.length; i++) { + let item = series[i]; + const legendText = item.legendText ? item.legendText : item.name; + let itemWidth = shapeWidth + shapeRight + measureText(legendText || 'undefined', fontSize, context) + opts.legend.itemGap * opts.pix; + if (widthCount + itemWidth > opts.width - opts.area[1] - opts.area[3]) { + legendList.push(currentRow); + widthCountArr.push(widthCount - opts.legend.itemGap * opts.pix); + widthCount = itemWidth; + currentRow = [item]; + } else { + widthCount += itemWidth; + currentRow.push(item); + } + } + if (currentRow.length) { + legendList.push(currentRow); + widthCountArr.push(widthCount - opts.legend.itemGap * opts.pix); + legendData.widthArr = widthCountArr; + let legendWidth = Math.max.apply(null, widthCountArr); + switch (opts.legend.float) { + case 'left': + legendData.area.start.x = opts.area[3]; + legendData.area.end.x = opts.area[3] + legendWidth + 2 * padding; + break; + case 'right': + legendData.area.start.x = opts.width - opts.area[1] - legendWidth - 2 * padding; + legendData.area.end.x = opts.width - opts.area[1]; + break; + default: + legendData.area.start.x = (opts.width - legendWidth) / 2 - padding; + legendData.area.end.x = (opts.width + legendWidth) / 2 + padding; + } + legendData.area.width = legendWidth + 2 * padding; + legendData.area.wholeWidth = legendWidth + 2 * padding; + legendData.area.height = legendList.length * lineHeight + 2 * padding; + legendData.area.wholeHeight = legendList.length * lineHeight + 2 * padding + 2 * margin; + legendData.points = legendList; + } + } else { + let len = series.length; + let maxHeight = opts.height - opts.area[0] - opts.area[2] - 2 * margin - 2 * padding; + let maxLength = Math.min(Math.floor(maxHeight / lineHeight), len); + legendData.area.height = maxLength * lineHeight + padding * 2; + legendData.area.wholeHeight = maxLength * lineHeight + padding * 2; + switch (opts.legend.float) { + case 'top': + legendData.area.start.y = opts.area[0] + margin; + legendData.area.end.y = opts.area[0] + margin + legendData.area.height; + break; + case 'bottom': + legendData.area.start.y = opts.height - opts.area[2] - margin - legendData.area.height; + legendData.area.end.y = opts.height - opts.area[2] - margin; + break; + default: + legendData.area.start.y = (opts.height - legendData.area.height) / 2; + legendData.area.end.y = (opts.height + legendData.area.height) / 2; + } + let lineNum = len % maxLength === 0 ? len / maxLength : Math.floor((len / maxLength) + 1); + let currentRow = []; + for (let i = 0; i < lineNum; i++) { + let temp = series.slice(i * maxLength, i * maxLength + maxLength); + currentRow.push(temp); + } + legendData.points = currentRow; + if (currentRow.length) { + for (let i = 0; i < currentRow.length; i++) { + let item = currentRow[i]; + let maxWidth = 0; + for (let j = 0; j < item.length; j++) { + let itemWidth = shapeWidth + shapeRight + measureText(item[j].name || 'undefined', fontSize, context) + opts.legend.itemGap * opts.pix; + if (itemWidth > maxWidth) { + maxWidth = itemWidth; + } + } + legendData.widthArr.push(maxWidth); + legendData.heightArr.push(item.length * lineHeight + padding * 2); + } + let legendWidth = 0 + for (let i = 0; i < legendData.widthArr.length; i++) { + legendWidth += legendData.widthArr[i]; + } + legendData.area.width = legendWidth - opts.legend.itemGap * opts.pix + 2 * padding; + legendData.area.wholeWidth = legendData.area.width + padding; + } + } + switch (opts.legend.position) { + case 'top': + legendData.area.start.y = opts.area[0] + margin; + legendData.area.end.y = opts.area[0] + margin + legendData.area.height; + break; + case 'bottom': + legendData.area.start.y = opts.height - opts.area[2] - legendData.area.height - margin; + legendData.area.end.y = opts.height - opts.area[2] - margin; + break; + case 'left': + legendData.area.start.x = opts.area[3]; + legendData.area.end.x = opts.area[3] + legendData.area.width; + break; + case 'right': + legendData.area.start.x = opts.width - opts.area[1] - legendData.area.width; + legendData.area.end.x = opts.width - opts.area[1]; + break; + } + chartData.legendData = legendData; + return legendData; +} + +function calCategoriesData(categories, opts, config, eachSpacing, context) { + var result = { + angle: 0, + xAxisHeight: opts.xAxis.lineHeight * opts.pix + opts.xAxis.marginTop * opts.pix + }; + var fontSize = opts.xAxis.fontSize * opts.pix; + var categoriesTextLenth = categories.map(function(item,index) { + var xitem = opts.xAxis.formatter ? opts.xAxis.formatter(item,index,opts) : item; + return measureText(String(xitem), fontSize, context); + }); + var maxTextLength = Math.max.apply(this, categoriesTextLenth); + if (opts.xAxis.rotateLabel == true) { + result.angle = opts.xAxis.rotateAngle * Math.PI / 180; + let tempHeight = opts.xAxis.marginTop * opts.pix * 2 + Math.abs(maxTextLength * Math.sin(result.angle)) + tempHeight = tempHeight < fontSize + opts.xAxis.marginTop * opts.pix * 2 ? tempHeight + opts.xAxis.marginTop * opts.pix * 2 : tempHeight; + result.xAxisHeight = tempHeight; + } + if (opts.enableScroll && opts.xAxis.scrollShow) { + result.xAxisHeight += 6 * opts.pix; + } + if (opts.xAxis.disabled){ + result.xAxisHeight = 0; + } + return result; +} + +function getXAxisTextList(series, opts, config, stack) { + var index = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : -1; + var data; + if (stack == 'stack') { + data = dataCombineStack(series, opts.categories.length); + } else { + data = dataCombine(series); + } + var sorted = []; + // remove null from data + data = data.filter(function(item) { + //return item !== null; + if (typeof item === 'object' && item !== null) { + if (item.constructor.toString().indexOf('Array') > -1) { + return item !== null; + } else { + return item.value !== null; + } + } else { + return item !== null; + } + }); + data.map(function(item) { + if (typeof item === 'object') { + if (item.constructor.toString().indexOf('Array') > -1) { + if (opts.type == 'candle') { + item.map(function(subitem) { + sorted.push(subitem); + }) + } else { + sorted.push(item[0]); + } + } else { + sorted.push(item.value); + } + } else { + sorted.push(item); + } + }) + + var minData = 0; + var maxData = 0; + if (sorted.length > 0) { + minData = Math.min.apply(this, sorted); + maxData = Math.max.apply(this, sorted); + } + //为了兼容v1.9.0之前的项目 + if (index > -1) { + if (typeof opts.xAxis.data[index].min === 'number') { + minData = Math.min(opts.xAxis.data[index].min, minData); + } + if (typeof opts.xAxis.data[index].max === 'number') { + maxData = Math.max(opts.xAxis.data[index].max, maxData); + } + } else { + if (typeof opts.xAxis.min === 'number') { + minData = Math.min(opts.xAxis.min, minData); + } + if (typeof opts.xAxis.max === 'number') { + maxData = Math.max(opts.xAxis.max, maxData); + } + } + if (minData === maxData) { + var rangeSpan = maxData || 10; + maxData += rangeSpan; + } + //var dataRange = getDataRange(minData, maxData); + var minRange = minData; + var maxRange = maxData; + var range = []; + var eachRange = (maxRange - minRange) / opts.xAxis.splitNumber; + for (var i = 0; i <= opts.xAxis.splitNumber; i++) { + range.push(minRange + eachRange * i); + } + return range; +} + +function calXAxisData(series, opts, config, context) { + //堆叠图重算Y轴 + var columnstyle = assign({}, { + type: "" + }, opts.extra.bar); + var result = { + angle: 0, + xAxisHeight: opts.xAxis.lineHeight * opts.pix + opts.xAxis.marginTop * opts.pix + }; + result.ranges = getXAxisTextList(series, opts, config, columnstyle.type); + result.rangesFormat = result.ranges.map(function(item) { + //item = opts.xAxis.formatter ? opts.xAxis.formatter(item) : util.toFixed(item, 2); + item = util.toFixed(item, 2); + return item; + }); + var xAxisScaleValues = result.ranges.map(function(item) { + // 如果刻度值是浮点数,则保留两位小数 + item = util.toFixed(item, 2); + // 若有自定义格式则调用自定义的格式化函数 + //item = opts.xAxis.formatter ? opts.xAxis.formatter(Number(item)) : item; + return item; + }); + result = Object.assign(result, getXAxisPoints(xAxisScaleValues, opts, config)); + // 计算X轴刻度的属性譬如每个刻度的间隔,刻度的起始点\结束点以及总长 + var eachSpacing = result.eachSpacing; + var textLength = xAxisScaleValues.map(function(item) { + return measureText(item, opts.xAxis.fontSize * opts.pix, context); + }); + if (opts.xAxis.disabled === true) { + result.xAxisHeight = 0; + } + return result; +} + +function getRadarDataPoints(angleList, center, radius, series, opts) { + var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1; + var radarOption = opts.extra.radar || {}; + radarOption.max = radarOption.max || 0; + var maxData = Math.max(radarOption.max, Math.max.apply(null, dataCombine(series))); + var data = []; + for (let i = 0; i < series.length; i++) { + let each = series[i]; + let listItem = {}; + listItem.color = each.color; + listItem.legendShape = each.legendShape; + listItem.pointShape = each.pointShape; + listItem.data = []; + each.data.forEach(function(item, index) { + let tmp = {}; + tmp.angle = angleList[index]; + tmp.proportion = item / maxData; + tmp.value = item; + tmp.position = convertCoordinateOrigin(radius * tmp.proportion * process * Math.cos(tmp.angle), radius * tmp.proportion * process * Math.sin(tmp.angle), center); + listItem.data.push(tmp); + }); + data.push(listItem); + } + return data; +} + +function getPieDataPoints(series, radius) { + var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1; + var count = 0; + var _start_ = 0; + for (let i = 0; i < series.length; i++) { + let item = series[i]; + item.data = item.data === null ? 0 : item.data; + count += item.data; + } + for (let i = 0; i < series.length; i++) { + let item = series[i]; + item.data = item.data === null ? 0 : item.data; + if (count === 0) { + item._proportion_ = 1 / series.length * process; + } else { + item._proportion_ = item.data / count * process; + } + item._radius_ = radius; + } + for (let i = 0; i < series.length; i++) { + let item = series[i]; + item._start_ = _start_; + _start_ += 2 * item._proportion_ * Math.PI; + } + return series; +} + +function getFunnelDataPoints(series, radius, option, eachSpacing) { + var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + for (let i = 0; i < series.length; i++) { + if(option.type == 'funnel'){ + series[i].radius = series[i].data / series[0].data * radius * process; + }else{ + series[i].radius = (eachSpacing * (series.length - i)) / (eachSpacing * series.length) * radius * process; + } + series[i]._proportion_ = series[i].data / series[0].data; + } + // if(option.type !== 'pyramid'){ + // series.reverse(); + // } + return series; +} + +function getRoseDataPoints(series, type, minRadius, radius) { + var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + var count = 0; + var _start_ = 0; + var dataArr = []; + for (let i = 0; i < series.length; i++) { + let item = series[i]; + item.data = item.data === null ? 0 : item.data; + count += item.data; + dataArr.push(item.data); + } + var minData = Math.min.apply(null, dataArr); + var maxData = Math.max.apply(null, dataArr); + var radiusLength = radius - minRadius; + for (let i = 0; i < series.length; i++) { + let item = series[i]; + item.data = item.data === null ? 0 : item.data; + if (count === 0) { + item._proportion_ = 1 / series.length * process; + item._rose_proportion_ = 1 / series.length * process; + } else { + item._proportion_ = item.data / count * process; + if(type == 'area'){ + item._rose_proportion_ = 1 / series.length * process; + }else{ + item._rose_proportion_ = item.data / count * process; + } + } + item._radius_ = minRadius + radiusLength * ((item.data - minData) / (maxData - minData)) || radius; + } + for (let i = 0; i < series.length; i++) { + let item = series[i]; + item._start_ = _start_; + _start_ += 2 * item._rose_proportion_ * Math.PI; + } + return series; +} + +function getArcbarDataPoints(series, arcbarOption) { + var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1; + if (process == 1) { + process = 0.999999; + } + for (let i = 0; i < series.length; i++) { + let item = series[i]; + item.data = item.data === null ? 0 : item.data; + let totalAngle; + if (arcbarOption.type == 'circle') { + totalAngle = 2; + } else { + if(arcbarOption.direction == 'ccw'){ + if (arcbarOption.startAngle < arcbarOption.endAngle) { + totalAngle = 2 + arcbarOption.startAngle - arcbarOption.endAngle; + } else { + totalAngle = arcbarOption.startAngle - arcbarOption.endAngle; + } + }else{ + if (arcbarOption.endAngle < arcbarOption.startAngle) { + totalAngle = 2 + arcbarOption.endAngle - arcbarOption.startAngle; + } else { + totalAngle = arcbarOption.startAngle - arcbarOption.endAngle; + } + } + } + item._proportion_ = totalAngle * item.data * process + arcbarOption.startAngle; + if(arcbarOption.direction == 'ccw'){ + item._proportion_ = arcbarOption.startAngle - totalAngle * item.data * process ; + } + if (item._proportion_ >= 2) { + item._proportion_ = item._proportion_ % 2; + } + } + return series; +} + +function getGaugeArcbarDataPoints(series, arcbarOption) { + var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1; + if (process == 1) { + process = 0.999999; + } + for (let i = 0; i < series.length; i++) { + let item = series[i]; + item.data = item.data === null ? 0 : item.data; + let totalAngle; + if (arcbarOption.type == 'circle') { + totalAngle = 2; + } else { + if (arcbarOption.endAngle < arcbarOption.startAngle) { + totalAngle = 2 + arcbarOption.endAngle - arcbarOption.startAngle; + } else { + totalAngle = arcbarOption.startAngle - arcbarOption.endAngle; + } + } + item._proportion_ = totalAngle * item.data * process + arcbarOption.startAngle; + if (item._proportion_ >= 2) { + item._proportion_ = item._proportion_ % 2; + } + } + return series; +} + +function getGaugeAxisPoints(categories, startAngle, endAngle) { + let totalAngle; + if (endAngle < startAngle) { + totalAngle = 2 + endAngle - startAngle; + } else { + totalAngle = startAngle - endAngle; + } + let tempStartAngle = startAngle; + for (let i = 0; i < categories.length; i++) { + categories[i].value = categories[i].value === null ? 0 : categories[i].value; + categories[i]._startAngle_ = tempStartAngle; + categories[i]._endAngle_ = totalAngle * categories[i].value + startAngle; + if (categories[i]._endAngle_ >= 2) { + categories[i]._endAngle_ = categories[i]._endAngle_ % 2; + } + tempStartAngle = categories[i]._endAngle_; + } + return categories; +} + +function getGaugeDataPoints(series, categories, gaugeOption) { + let process = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1; + for (let i = 0; i < series.length; i++) { + let item = series[i]; + item.data = item.data === null ? 0 : item.data; + if (gaugeOption.pointer.color == 'auto') { + for (let i = 0; i < categories.length; i++) { + if (item.data <= categories[i].value) { + item.color = categories[i].color; + break; + } + } + } else { + item.color = gaugeOption.pointer.color; + } + let totalAngle; + if (gaugeOption.endAngle < gaugeOption.startAngle) { + totalAngle = 2 + gaugeOption.endAngle - gaugeOption.startAngle; + } else { + totalAngle = gaugeOption.startAngle - gaugeOption.endAngle; + } + item._endAngle_ = totalAngle * item.data + gaugeOption.startAngle; + item._oldAngle_ = gaugeOption.oldAngle; + if (gaugeOption.oldAngle < gaugeOption.endAngle) { + item._oldAngle_ += 2; + } + if (item.data >= gaugeOption.oldData) { + item._proportion_ = (item._endAngle_ - item._oldAngle_) * process + gaugeOption.oldAngle; + } else { + item._proportion_ = item._oldAngle_ - (item._oldAngle_ - item._endAngle_) * process; + } + if (item._proportion_ >= 2) { + item._proportion_ = item._proportion_ % 2; + } + } + return series; +} + +function getPieTextMaxLength(series, config, context, opts) { + series = getPieDataPoints(series); + let maxLength = 0; + for (let i = 0; i < series.length; i++) { + let item = series[i]; + let text = item.formatter ? item.formatter(+item._proportion_.toFixed(2)) : util.toFixed(item._proportion_ * 100) + '%'; + maxLength = Math.max(maxLength, measureText(text, item.textSize * opts.pix || config.fontSize, context)); + } + return maxLength; +} + +function fixColumeData(points, eachSpacing, columnLen, index, config, opts) { + return points.map(function(item) { + if (item === null) { + return null; + } + var seriesGap = 0; + var categoryGap = 0; + if (opts.type == 'mix') { + seriesGap = opts.extra.mix.column.seriesGap * opts.pix || 0; + categoryGap = opts.extra.mix.column.categoryGap * opts.pix || 0; + } else { + seriesGap = opts.extra.column.seriesGap * opts.pix || 0; + categoryGap = opts.extra.column.categoryGap * opts.pix || 0; + } + seriesGap = Math.min(seriesGap, eachSpacing / columnLen) + categoryGap = Math.min(categoryGap, eachSpacing / columnLen) + item.width = Math.ceil((eachSpacing - 2 * categoryGap - seriesGap * (columnLen - 1)) / columnLen); + if (opts.extra.mix && opts.extra.mix.column.width && +opts.extra.mix.column.width > 0) { + item.width = Math.min(item.width, +opts.extra.mix.column.width * opts.pix); + } + if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) { + item.width = Math.min(item.width, +opts.extra.column.width * opts.pix); + } + if (item.width <= 0) { + item.width = 1; + } + item.x += (index + 0.5 - columnLen / 2) * (item.width + seriesGap); + return item; + }); +} + +function fixBarData(points, eachSpacing, columnLen, index, config, opts) { + return points.map(function(item) { + if (item === null) { + return null; + } + var seriesGap = 0; + var categoryGap = 0; + seriesGap = opts.extra.bar.seriesGap * opts.pix || 0; + categoryGap = opts.extra.bar.categoryGap * opts.pix || 0; + seriesGap = Math.min(seriesGap, eachSpacing / columnLen) + categoryGap = Math.min(categoryGap, eachSpacing / columnLen) + item.width = Math.ceil((eachSpacing - 2 * categoryGap - seriesGap * (columnLen - 1)) / columnLen); + if (opts.extra.bar && opts.extra.bar.width && +opts.extra.bar.width > 0) { + item.width = Math.min(item.width, +opts.extra.bar.width * opts.pix); + } + if (item.width <= 0) { + item.width = 1; + } + item.y += (index + 0.5 - columnLen / 2) * (item.width + seriesGap); + return item; + }); +} + +function fixColumeMeterData(points, eachSpacing, columnLen, index, config, opts, border) { + var categoryGap = opts.extra.column.categoryGap * opts.pix || 0; + return points.map(function(item) { + if (item === null) { + return null; + } + item.width = eachSpacing - 2 * categoryGap; + if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) { + item.width = Math.min(item.width, +opts.extra.column.width * opts.pix); + } + if (index > 0) { + item.width -= border; + } + return item; + }); +} + +function fixColumeStackData(points, eachSpacing, columnLen, index, config, opts, series) { + var categoryGap = opts.extra.column.categoryGap * opts.pix || 0; + return points.map(function(item, indexn) { + if (item === null) { + return null; + } + item.width = Math.ceil(eachSpacing - 2 * categoryGap); + if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) { + item.width = Math.min(item.width, +opts.extra.column.width * opts.pix); + } + if (item.width <= 0) { + item.width = 1; + } + return item; + }); +} + +function fixBarStackData(points, eachSpacing, columnLen, index, config, opts, series) { + var categoryGap = opts.extra.bar.categoryGap * opts.pix || 0; + return points.map(function(item, indexn) { + if (item === null) { + return null; + } + item.width = Math.ceil(eachSpacing - 2 * categoryGap); + if (opts.extra.bar && opts.extra.bar.width && +opts.extra.bar.width > 0) { + item.width = Math.min(item.width, +opts.extra.bar.width * opts.pix); + } + if (item.width <= 0) { + item.width = 1; + } + return item; + }); +} + +function getXAxisPoints(categories, opts, config) { + var spacingValid = opts.width - opts.area[1] - opts.area[3]; + var dataCount = opts.enableScroll ? Math.min(opts.xAxis.itemCount, categories.length) : categories.length; + if ((opts.type == 'line' || opts.type == 'area' || opts.type == 'scatter' || opts.type == 'bubble' || opts.type == 'bar') && dataCount > 1 && opts.xAxis.boundaryGap == 'justify') { + dataCount -= 1; + } + var widthRatio = 0; + if(opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1){ + if(opts.extra.mount.widthRatio>2) opts.extra.mount.widthRatio = 2 + widthRatio = opts.extra.mount.widthRatio - 1; + dataCount += widthRatio; + } + var eachSpacing = spacingValid / dataCount; + var xAxisPoints = []; + var startX = opts.area[3]; + var endX = opts.width - opts.area[1]; + categories.forEach(function(item, index) { + xAxisPoints.push(startX + widthRatio / 2 * eachSpacing + index * eachSpacing); + }); + if (opts.xAxis.boundaryGap !== 'justify') { + if (opts.enableScroll === true) { + xAxisPoints.push(startX + widthRatio * eachSpacing + categories.length * eachSpacing); + } else { + xAxisPoints.push(endX); + } + } + return { + xAxisPoints: xAxisPoints, + startX: startX, + endX: endX, + eachSpacing: eachSpacing + }; +} + +function getCandleDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config) { + var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1; + var points = []; + var validHeight = opts.height - opts.area[0] - opts.area[2]; + data.forEach(function(item, index) { + if (item === null) { + points.push(null); + } else { + var cPoints = []; + item.forEach(function(items, indexs) { + var point = {}; + point.x = xAxisPoints[index] + Math.round(eachSpacing / 2); + var value = items.value || items; + var height = validHeight * (value - minRange) / (maxRange - minRange); + height *= process; + point.y = opts.height - Math.round(height) - opts.area[2]; + cPoints.push(point); + }); + points.push(cPoints); + } + }); + return points; +} + +function getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config) { + var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1; + var boundaryGap = 'center'; + if (opts.type == 'line' || opts.type == 'area' || opts.type == 'scatter' || opts.type == 'bubble' ) { + boundaryGap = opts.xAxis.boundaryGap; + } + var points = []; + var validHeight = opts.height - opts.area[0] - opts.area[2]; + var validWidth = opts.width - opts.area[1] - opts.area[3]; + data.forEach(function(item, index) { + if (item === null) { + points.push(null); + } else { + var point = {}; + point.color = item.color; + point.x = xAxisPoints[index]; + var value = item; + if (typeof item === 'object' && item !== null) { + if (item.constructor.toString().indexOf('Array') > -1) { + let xranges, xminRange, xmaxRange; + xranges = [].concat(opts.chartData.xAxisData.ranges); + xminRange = xranges.shift(); + xmaxRange = xranges.pop(); + value = item[1]; + point.x = opts.area[3] + validWidth * (item[0] - xminRange) / (xmaxRange - xminRange); + if(opts.type == 'bubble'){ + point.r = item[2]; + point.t = item[3]; + } + } else { + value = item.value; + } + } + if (boundaryGap == 'center') { + point.x += eachSpacing / 2; + } + var height = validHeight * (value - minRange) / (maxRange - minRange); + height *= process; + point.y = opts.height - height - opts.area[2]; + points.push(point); + } + }); + return points; +} + +function getLineDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, lineOption, process){ + var process = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : 1; + var boundaryGap = opts.xAxis.boundaryGap; + var points = []; + var validHeight = opts.height - opts.area[0] - opts.area[2]; + var validWidth = opts.width - opts.area[1] - opts.area[3]; + data.forEach(function(item, index) { + if (item === null) { + points.push(null); + } else { + var point = {}; + point.color = item.color; + if(lineOption.animation == 'vertical'){ + point.x = xAxisPoints[index]; + var value = item; + if (typeof item === 'object' && item !== null) { + if (item.constructor.toString().indexOf('Array') > -1) { + let xranges, xminRange, xmaxRange; + xranges = [].concat(opts.chartData.xAxisData.ranges); + xminRange = xranges.shift(); + xmaxRange = xranges.pop(); + value = item[1]; + point.x = opts.area[3] + validWidth * (item[0] - xminRange) / (xmaxRange - xminRange); + } else { + value = item.value; + } + } + if (boundaryGap == 'center') { + point.x += eachSpacing / 2; + } + var height = validHeight * (value - minRange) / (maxRange - minRange); + height *= process; + point.y = opts.height - height - opts.area[2]; + points.push(point); + }else{ + point.x = xAxisPoints[0] + eachSpacing * index * process; + var value = item; + if (boundaryGap == 'center') { + point.x += eachSpacing / 2; + } + var height = validHeight * (value - minRange) / (maxRange - minRange); + point.y = opts.height - height - opts.area[2]; + points.push(point); + } + } + }); + return points; +} + +function getColumnDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, zeroPoints, process){ + var process = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : 1; + var points = []; + var validHeight = opts.height - opts.area[0] - opts.area[2]; + var validWidth = opts.width - opts.area[1] - opts.area[3]; + data.forEach(function(item, index) { + if (item === null) { + points.push(null); + } else { + var point = {}; + point.color = item.color; + point.x = xAxisPoints[index]; + var value = item; + if (typeof item === 'object' && item !== null) { + if (item.constructor.toString().indexOf('Array') > -1) { + let xranges, xminRange, xmaxRange; + xranges = [].concat(opts.chartData.xAxisData.ranges); + xminRange = xranges.shift(); + xmaxRange = xranges.pop(); + value = item[1]; + point.x = opts.area[3] + validWidth * (item[0] - xminRange) / (xmaxRange - xminRange); + } else { + value = item.value; + } + } + point.x += eachSpacing / 2; + var height = validHeight * (value * process - minRange) / (maxRange - minRange); + point.y = opts.height - height - opts.area[2]; + points.push(point); + } + }); + return points; +} + +function getMountDataPoints(series, minRange, maxRange, xAxisPoints, eachSpacing, opts, mountOption, zeroPoints) { + var process = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : 1; + var points = []; + var validHeight = opts.height - opts.area[0] - opts.area[2]; + var validWidth = opts.width - opts.area[1] - opts.area[3]; + var mountWidth = eachSpacing * mountOption.widthRatio; + series.forEach(function(item, index) { + if (item === null) { + points.push(null); + } else { + var point = {}; + point.color = item.color; + point.x = xAxisPoints[index]; + point.x += eachSpacing / 2; + var value = item.data; + var height = validHeight * (value * process - minRange) / (maxRange - minRange); + point.y = opts.height - height - opts.area[2]; + point.value = value; + point.width = mountWidth; + points.push(point); + } + }); + return points; +} + +function getBarDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config) { + var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1; + var points = []; + var validHeight = opts.height - opts.area[0] - opts.area[2]; + var validWidth = opts.width - opts.area[1] - opts.area[3]; + data.forEach(function(item, index) { + if (item === null) { + points.push(null); + } else { + var point = {}; + point.color = item.color; + point.y = yAxisPoints[index]; + var value = item; + if (typeof item === 'object' && item !== null) { + value = item.value; + } + var height = validWidth * (value - minRange) / (maxRange - minRange); + height *= process; + point.height = height; + point.value = value; + point.x = height + opts.area[3]; + points.push(point); + } + }); + return points; +} + +function getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, stackSeries) { + var process = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : 1; + var points = []; + var validHeight = opts.height - opts.area[0] - opts.area[2]; + data.forEach(function(item, index) { + if (item === null) { + points.push(null); + } else { + var point = {}; + point.color = item.color; + point.x = xAxisPoints[index] + Math.round(eachSpacing / 2); + + if (seriesIndex > 0) { + var value = 0; + for (let i = 0; i <= seriesIndex; i++) { + value += stackSeries[i].data[index]; + } + var value0 = value - item; + var height = validHeight * (value - minRange) / (maxRange - minRange); + var height0 = validHeight * (value0 - minRange) / (maxRange - minRange); + } else { + var value = item; + if (typeof item === 'object' && item !== null) { + value = item.value; + } + var height = validHeight * (value - minRange) / (maxRange - minRange); + var height0 = 0; + } + var heightc = height0; + height *= process; + heightc *= process; + point.y = opts.height - Math.round(height) - opts.area[2]; + point.y0 = opts.height - Math.round(heightc) - opts.area[2]; + points.push(point); + } + }); + return points; +} + +function getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, stackSeries) { + var process = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : 1; + var points = []; + var validHeight = opts.width - opts.area[1] - opts.area[3]; + data.forEach(function(item, index) { + if (item === null) { + points.push(null); + } else { + var point = {}; + point.color = item.color; + point.y = yAxisPoints[index]; + if (seriesIndex > 0) { + var value = 0; + for (let i = 0; i <= seriesIndex; i++) { + value += stackSeries[i].data[index]; + } + var value0 = value - item; + var height = validHeight * (value - minRange) / (maxRange - minRange); + var height0 = validHeight * (value0 - minRange) / (maxRange - minRange); + } else { + var value = item; + if (typeof item === 'object' && item !== null) { + value = item.value; + } + var height = validHeight * (value - minRange) / (maxRange - minRange); + var height0 = 0; + } + var heightc = height0; + height *= process; + heightc *= process; + point.height = height - heightc; + point.x = opts.area[3] + height; + point.x0 = opts.area[3] + heightc; + points.push(point); + } + }); + return points; +} + +function getYAxisTextList(series, opts, config, stack, yData) { + var index = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : -1; + var data; + if (stack == 'stack') { + data = dataCombineStack(series, opts.categories.length); + } else { + data = dataCombine(series); + } + var sorted = []; + // remove null from data + data = data.filter(function(item) { + //return item !== null; + if (typeof item === 'object' && item !== null) { + if (item.constructor.toString().indexOf('Array') > -1) { + return item !== null; + } else { + return item.value !== null; + } + } else { + return item !== null; + } + }); + data.map(function(item) { + if (typeof item === 'object') { + if (item.constructor.toString().indexOf('Array') > -1) { + if (opts.type == 'candle') { + item.map(function(subitem) { + sorted.push(subitem); + }) + } else { + sorted.push(item[1]); + } + } else { + sorted.push(item.value); + } + } else { + sorted.push(item); + } + }) + var minData = yData.min || 0; + var maxData = yData.max || 0; + if (sorted.length > 0) { + minData = Math.min.apply(this, sorted); + maxData = Math.max.apply(this, sorted); + } + if (minData === maxData) { + if(maxData == 0){ + maxData = 10; + }else{ + minData = 0; + } + } + var dataRange = getDataRange(minData, maxData); + var minRange = (yData.min === undefined || yData.min === null) ? dataRange.minRange : yData.min; + var maxRange = (yData.max === undefined || yData.max === null) ? dataRange.maxRange : yData.max; + var eachRange = (maxRange - minRange) / opts.yAxis.splitNumber; + var range = []; + for (var i = 0; i <= opts.yAxis.splitNumber; i++) { + range.push(minRange + eachRange * i); + } + return range.reverse(); +} + +function calYAxisData(series, opts, config, context) { + //堆叠图重算Y轴 + var columnstyle = assign({}, { + type: "" + }, opts.extra.column); + //如果是多Y轴,重新计算 + var YLength = opts.yAxis.data.length; + var newSeries = new Array(YLength); + if (YLength > 0) { + for (let i = 0; i < YLength; i++) { + newSeries[i] = []; + for (let j = 0; j < series.length; j++) { + if (series[j].index == i) { + newSeries[i].push(series[j]); + } + } + } + var rangesArr = new Array(YLength); + var rangesFormatArr = new Array(YLength); + var yAxisWidthArr = new Array(YLength); + + for (let i = 0; i < YLength; i++) { + let yData = opts.yAxis.data[i]; + //如果总开关不显示,强制每个Y轴为不显示 + if (opts.yAxis.disabled == true) { + yData.disabled = true; + } + if(yData.type === 'categories'){ + if(!yData.formatter){ + yData.formatter = (val,index,opts) => {return val + (yData.unit || '')}; + } + yData.categories = yData.categories || opts.categories; + rangesArr[i] = yData.categories; + }else{ + if(!yData.formatter){ + yData.formatter = (val,index,opts) => {return util.toFixed(val, yData.tofix || 0) + (yData.unit || '')}; + } + rangesArr[i] = getYAxisTextList(newSeries[i], opts, config, columnstyle.type, yData, i); + } + let yAxisFontSizes = yData.fontSize * opts.pix || config.fontSize; + yAxisWidthArr[i] = { + position: yData.position ? yData.position : 'left', + width: 0 + }; + rangesFormatArr[i] = rangesArr[i].map(function(items,index) { + items = yData.formatter(items,index,opts); + yAxisWidthArr[i].width = Math.max(yAxisWidthArr[i].width, measureText(items, yAxisFontSizes, context) + 5); + return items; + }); + let calibration = yData.calibration ? 4 * opts.pix : 0; + yAxisWidthArr[i].width += calibration + 3 * opts.pix; + if (yData.disabled === true) { + yAxisWidthArr[i].width = 0; + } + } + } else { + var rangesArr = new Array(1); + var rangesFormatArr = new Array(1); + var yAxisWidthArr = new Array(1); + if(opts.type === 'bar'){ + rangesArr[0] = opts.categories; + if(!opts.yAxis.formatter){ + opts.yAxis.formatter = (val,index,opts) => {return val + (opts.yAxis.unit || '')} + } + }else{ + if(!opts.yAxis.formatter){ + opts.yAxis.formatter = (val,index,opts) => {return val.toFixed(opts.yAxis.tofix ) + (opts.yAxis.unit || '')} + } + rangesArr[0] = getYAxisTextList(series, opts, config, columnstyle.type, {}); + } + yAxisWidthArr[0] = { + position: 'left', + width: 0 + }; + var yAxisFontSize = opts.yAxis.fontSize * opts.pix || config.fontSize; + rangesFormatArr[0] = rangesArr[0].map(function(item,index) { + item = opts.yAxis.formatter(item,index,opts); + yAxisWidthArr[0].width = Math.max(yAxisWidthArr[0].width, measureText(item, yAxisFontSize, context) + 5); + return item; + }); + yAxisWidthArr[0].width += 3 * opts.pix; + if (opts.yAxis.disabled === true) { + yAxisWidthArr[0] = { + position: 'left', + width: 0 + }; + opts.yAxis.data[0] = { + disabled: true + }; + } else { + opts.yAxis.data[0] = { + disabled: false, + position: 'left', + max: opts.yAxis.max, + min: opts.yAxis.min, + formatter: opts.yAxis.formatter + }; + if(opts.type === 'bar'){ + opts.yAxis.data[0].categories = opts.categories; + opts.yAxis.data[0].type = 'categories'; + } + } + } + return { + rangesFormat: rangesFormatArr, + ranges: rangesArr, + yAxisWidth: yAxisWidthArr + }; +} + +function calTooltipYAxisData(point, series, opts, config, eachSpacing) { + let ranges = [].concat(opts.chartData.yAxisData.ranges); + let spacingValid = opts.height - opts.area[0] - opts.area[2]; + let minAxis = opts.area[0]; + let items = []; + for (let i = 0; i < ranges.length; i++) { + let maxVal = Math.max.apply(this, ranges[i]); + let minVal = Math.min.apply(this, ranges[i]); + let item = maxVal - (maxVal - minVal) * (point - minAxis) / spacingValid; + item = opts.yAxis.data && opts.yAxis.data[i].formatter ? opts.yAxis.data[i].formatter(item, i, opts) : item.toFixed(0); + items.push(String(item)) + } + return items; +} + +function calMarkLineData(points, opts) { + let minRange, maxRange; + let spacingValid = opts.height - opts.area[0] - opts.area[2]; + for (let i = 0; i < points.length; i++) { + points[i].yAxisIndex = points[i].yAxisIndex ? points[i].yAxisIndex : 0; + let range = [].concat(opts.chartData.yAxisData.ranges[points[i].yAxisIndex]); + minRange = range.pop(); + maxRange = range.shift(); + let height = spacingValid * (points[i].value - minRange) / (maxRange - minRange); + points[i].y = opts.height - Math.round(height) - opts.area[2]; + } + return points; +} + +function contextRotate(context, opts) { + if (opts.rotateLock !== true) { + context.translate(opts.height, 0); + context.rotate(90 * Math.PI / 180); + } else if (opts._rotate_ !== true) { + context.translate(opts.height, 0); + context.rotate(90 * Math.PI / 180); + opts._rotate_ = true; + } +} + +function drawPointShape(points, color, shape, context, opts) { + context.beginPath(); + if (opts.dataPointShapeType == 'hollow') { + context.setStrokeStyle(color); + context.setFillStyle(opts.background); + context.setLineWidth(2 * opts.pix); + } else { + context.setStrokeStyle("#ffffff"); + context.setFillStyle(color); + context.setLineWidth(1 * opts.pix); + } + if (shape === 'diamond') { + points.forEach(function(item, index) { + if (item !== null) { + context.moveTo(item.x, item.y - 4.5); + context.lineTo(item.x - 4.5, item.y); + context.lineTo(item.x, item.y + 4.5); + context.lineTo(item.x + 4.5, item.y); + context.lineTo(item.x, item.y - 4.5); + } + }); + } else if (shape === 'circle') { + points.forEach(function(item, index) { + if (item !== null) { + context.moveTo(item.x + 2.5 * opts.pix, item.y); + context.arc(item.x, item.y, 3 * opts.pix, 0, 2 * Math.PI, false); + } + }); + } else if (shape === 'square') { + points.forEach(function(item, index) { + if (item !== null) { + context.moveTo(item.x - 3.5, item.y - 3.5); + context.rect(item.x - 3.5, item.y - 3.5, 7, 7); + } + }); + } else if (shape === 'triangle') { + points.forEach(function(item, index) { + if (item !== null) { + context.moveTo(item.x, item.y - 4.5); + context.lineTo(item.x - 4.5, item.y + 4.5); + context.lineTo(item.x + 4.5, item.y + 4.5); + context.lineTo(item.x, item.y - 4.5); + } + }); + } else if (shape === 'none') { + return; + } + context.closePath(); + context.fill(); + context.stroke(); +} + +function drawActivePoint(points, color, shape, context, opts, option, seriesIndex) { + if(!opts.tooltip){ + return + } + if(opts.tooltip.group.length>0 && opts.tooltip.group.includes(seriesIndex) == false){ + return + } + var pointIndex = typeof opts.tooltip.index === 'number' ? opts.tooltip.index : opts.tooltip.index[opts.tooltip.group.indexOf(seriesIndex)]; + context.beginPath(); + if (option.activeType == 'hollow') { + context.setStrokeStyle(color); + context.setFillStyle(opts.background); + context.setLineWidth(2 * opts.pix); + } else { + context.setStrokeStyle("#ffffff"); + context.setFillStyle(color); + context.setLineWidth(1 * opts.pix); + } + if (shape === 'diamond') { + points.forEach(function(item, index) { + if (item !== null && pointIndex == index ) { + context.moveTo(item.x, item.y - 4.5); + context.lineTo(item.x - 4.5, item.y); + context.lineTo(item.x, item.y + 4.5); + context.lineTo(item.x + 4.5, item.y); + context.lineTo(item.x, item.y - 4.5); + } + }); + } else if (shape === 'circle') { + points.forEach(function(item, index) { + if (item !== null && pointIndex == index) { + context.moveTo(item.x + 2.5 * opts.pix, item.y); + context.arc(item.x, item.y, 3 * opts.pix, 0, 2 * Math.PI, false); + } + }); + } else if (shape === 'square') { + points.forEach(function(item, index) { + if (item !== null && pointIndex == index) { + context.moveTo(item.x - 3.5, item.y - 3.5); + context.rect(item.x - 3.5, item.y - 3.5, 7, 7); + } + }); + } else if (shape === 'triangle') { + points.forEach(function(item, index) { + if (item !== null && pointIndex == index) { + context.moveTo(item.x, item.y - 4.5); + context.lineTo(item.x - 4.5, item.y + 4.5); + context.lineTo(item.x + 4.5, item.y + 4.5); + context.lineTo(item.x, item.y - 4.5); + } + }); + } else if (shape === 'none') { + return; + } + context.closePath(); + context.fill(); + context.stroke(); +} + +function drawRingTitle(opts, config, context, center) { + var titlefontSize = opts.title.fontSize || config.titleFontSize; + var subtitlefontSize = opts.subtitle.fontSize || config.subtitleFontSize; + var title = opts.title.name || ''; + var subtitle = opts.subtitle.name || ''; + var titleFontColor = opts.title.color || opts.fontColor; + var subtitleFontColor = opts.subtitle.color || opts.fontColor; + var titleHeight = title ? titlefontSize : 0; + var subtitleHeight = subtitle ? subtitlefontSize : 0; + var margin = 5; + if (subtitle) { + var textWidth = measureText(subtitle, subtitlefontSize * opts.pix, context); + var startX = center.x - textWidth / 2 + (opts.subtitle.offsetX|| 0) * opts.pix ; + var startY = center.y + subtitlefontSize * opts.pix / 2 + (opts.subtitle.offsetY || 0) * opts.pix; + if (title) { + startY += (titleHeight * opts.pix + margin) / 2; + } + context.beginPath(); + context.setFontSize(subtitlefontSize * opts.pix); + context.setFillStyle(subtitleFontColor); + context.fillText(subtitle, startX, startY); + context.closePath(); + context.stroke(); + } + if (title) { + var _textWidth = measureText(title, titlefontSize * opts.pix, context); + var _startX = center.x - _textWidth / 2 + (opts.title.offsetX || 0); + var _startY = center.y + titlefontSize * opts.pix / 2 + (opts.title.offsetY || 0) * opts.pix; + if (subtitle) { + _startY -= (subtitleHeight * opts.pix + margin) / 2; + } + context.beginPath(); + context.setFontSize(titlefontSize * opts.pix); + context.setFillStyle(titleFontColor); + context.fillText(title, _startX, _startY); + context.closePath(); + context.stroke(); + } +} + +function drawPointText(points, series, config, context, opts) { + // 绘制数据文案 + var data = series.data; + var textOffset = series.textOffset ? series.textOffset : 0; + points.forEach(function(item, index) { + if (item !== null) { + context.beginPath(); + var fontSize = series.textSize ? series.textSize * opts.pix : config.fontSize; + context.setFontSize(fontSize); + context.setFillStyle(series.textColor || opts.fontColor); + var value = data[index] + if (typeof data[index] === 'object' && data[index] !== null) { + if (data[index].constructor.toString().indexOf('Array')>-1) { + value = data[index][1]; + } else { + value = data[index].value + } + } + var formatVal = series.formatter ? series.formatter(value,index,series,opts) : value; + context.setTextAlign('center'); + context.fillText(String(formatVal), item.x, item.y - 4 + textOffset * opts.pix); + context.closePath(); + context.stroke(); + context.setTextAlign('left'); + } + }); +} + +function drawColumePointText(points, series, config, context, opts) { + // 绘制数据文案 + var data = series.data; + var textOffset = series.textOffset ? series.textOffset : 0; + var Position = opts.extra.column.labelPosition; + points.forEach(function(item, index) { + if (item !== null) { + context.beginPath(); + var fontSize = series.textSize ? series.textSize * opts.pix : config.fontSize; + context.setFontSize(fontSize); + context.setFillStyle(series.textColor || opts.fontColor); + var value = data[index] + if (typeof data[index] === 'object' && data[index] !== null) { + if (data[index].constructor.toString().indexOf('Array')>-1) { + value = data[index][1]; + } else { + value = data[index].value + } + } + var formatVal = series.formatter ? series.formatter(value,index,series,opts) : value; + context.setTextAlign('center'); + var startY = item.y - 4 * opts.pix + textOffset * opts.pix; + if(item.y > series.zeroPoints){ + startY = item.y + textOffset * opts.pix + fontSize; + } + if(Position == 'insideTop'){ + startY = item.y + fontSize + textOffset * opts.pix; + if(item.y > series.zeroPoints){ + startY = item.y - textOffset * opts.pix - 4 * opts.pix; + } + } + if(Position == 'center'){ + startY = item.y + textOffset * opts.pix + (opts.height - opts.area[2] - item.y + fontSize)/2; + if(series.zeroPoints < opts.height - opts.area[2]){ + startY = item.y + textOffset * opts.pix + (series.zeroPoints - item.y + fontSize)/2; + } + if(item.y > series.zeroPoints){ + startY = item.y - textOffset * opts.pix - (item.y - series.zeroPoints - fontSize)/2; + } + if(opts.extra.column.type == 'stack'){ + startY = item.y + textOffset * opts.pix + (item.y0 - item.y + fontSize)/2; + } + } + if(Position == 'bottom'){ + startY = opts.height - opts.area[2] + textOffset * opts.pix - 4 * opts.pix; + if(series.zeroPoints < opts.height - opts.area[2]){ + startY = series.zeroPoints + textOffset * opts.pix - 4 * opts.pix; + } + if(item.y > series.zeroPoints){ + startY = series.zeroPoints - textOffset * opts.pix + fontSize + 2 * opts.pix; + } + if(opts.extra.column.type == 'stack'){ + startY = item.y0 + textOffset * opts.pix - 4 * opts.pix; + } + } + context.fillText(String(formatVal), item.x, startY); + context.closePath(); + context.stroke(); + context.setTextAlign('left'); + } + }); +} + +function drawMountPointText(points, series, config, context, opts, zeroPoints) { + // 绘制数据文案 + var data = series.data; + var textOffset = series.textOffset ? series.textOffset : 0; + var Position = opts.extra.mount.labelPosition; + points.forEach(function(item, index) { + if (item !== null) { + context.beginPath(); + var fontSize = series[index].textSize ? series[index].textSize * opts.pix : config.fontSize; + context.setFontSize(fontSize); + context.setFillStyle(series[index].textColor || opts.fontColor); + var value = item.value + var formatVal = series[index].formatter ? series[index].formatter(value,index,series,opts) : value; + context.setTextAlign('center'); + var startY = item.y - 4 * opts.pix + textOffset * opts.pix; + if(item.y > zeroPoints){ + startY = item.y + textOffset * opts.pix + fontSize; + } + context.fillText(String(formatVal), item.x, startY); + context.closePath(); + context.stroke(); + context.setTextAlign('left'); + } + }); +} + +function drawBarPointText(points, series, config, context, opts) { + // 绘制数据文案 + var data = series.data; + var textOffset = series.textOffset ? series.textOffset : 0; + points.forEach(function(item, index) { + if (item !== null) { + context.beginPath(); + var fontSize = series.textSize ? series.textSize * opts.pix : config.fontSize; + context.setFontSize(fontSize); + context.setFillStyle(series.textColor || opts.fontColor); + var value = data[index] + if (typeof data[index] === 'object' && data[index] !== null) { + value = data[index].value ; + } + var formatVal = series.formatter ? series.formatter(value,index,series,opts) : value; + context.setTextAlign('left'); + context.fillText(String(formatVal), item.x + 4 * opts.pix , item.y + fontSize / 2 - 3 ); + context.closePath(); + context.stroke(); + } + }); +} + +function drawGaugeLabel(gaugeOption, radius, centerPosition, opts, config, context) { + radius -= gaugeOption.width / 2 + gaugeOption.labelOffset * opts.pix; + radius = radius < 10 ? 10 : radius; + let totalAngle; + if (gaugeOption.endAngle < gaugeOption.startAngle) { + totalAngle = 2 + gaugeOption.endAngle - gaugeOption.startAngle; + } else { + totalAngle = gaugeOption.startAngle - gaugeOption.endAngle; + } + let splitAngle = totalAngle / gaugeOption.splitLine.splitNumber; + let totalNumber = gaugeOption.endNumber - gaugeOption.startNumber; + let splitNumber = totalNumber / gaugeOption.splitLine.splitNumber; + let nowAngle = gaugeOption.startAngle; + let nowNumber = gaugeOption.startNumber; + for (let i = 0; i < gaugeOption.splitLine.splitNumber + 1; i++) { + var pos = { + x: radius * Math.cos(nowAngle * Math.PI), + y: radius * Math.sin(nowAngle * Math.PI) + }; + var labelText = gaugeOption.formatter ? gaugeOption.formatter(nowNumber,i,opts) : nowNumber; + pos.x += centerPosition.x - measureText(labelText, config.fontSize, context) / 2; + pos.y += centerPosition.y; + var startX = pos.x; + var startY = pos.y; + context.beginPath(); + context.setFontSize(config.fontSize); + context.setFillStyle(gaugeOption.labelColor || opts.fontColor); + context.fillText(labelText, startX, startY + config.fontSize / 2); + context.closePath(); + context.stroke(); + nowAngle += splitAngle; + if (nowAngle >= 2) { + nowAngle = nowAngle % 2; + } + nowNumber += splitNumber; + } +} + +function drawRadarLabel(angleList, radius, centerPosition, opts, config, context) { + var radarOption = opts.extra.radar || {}; + angleList.forEach(function(angle, index) { + if(radarOption.labelPointShow === true && opts.categories[index] !== ''){ + var posPoint = { + x: radius * Math.cos(angle), + y: radius * Math.sin(angle) + }; + var posPointAxis = convertCoordinateOrigin(posPoint.x, posPoint.y, centerPosition); + context.setFillStyle(radarOption.labelPointColor); + context.beginPath(); + context.arc(posPointAxis.x, posPointAxis.y, radarOption.labelPointRadius * opts.pix, 0, 2 * Math.PI, false); + context.closePath(); + context.fill(); + } + if(radarOption.labelShow === true){ + var pos = { + x: (radius + config.radarLabelTextMargin * opts.pix) * Math.cos(angle), + y: (radius + config.radarLabelTextMargin * opts.pix) * Math.sin(angle) + }; + var posRelativeCanvas = convertCoordinateOrigin(pos.x, pos.y, centerPosition); + var startX = posRelativeCanvas.x; + var startY = posRelativeCanvas.y; + if (util.approximatelyEqual(pos.x, 0)) { + startX -= measureText(opts.categories[index] || '', config.fontSize, context) / 2; + } else if (pos.x < 0) { + startX -= measureText(opts.categories[index] || '', config.fontSize, context); + } + context.beginPath(); + context.setFontSize(config.fontSize); + context.setFillStyle(radarOption.labelColor || opts.fontColor); + context.fillText(opts.categories[index] || '', startX, startY + config.fontSize / 2); + context.closePath(); + context.stroke(); + } + }); + +} + +function drawPieText(series, opts, config, context, radius, center) { + var lineRadius = config.pieChartLinePadding; + var textObjectCollection = []; + var lastTextObject = null; + var seriesConvert = series.map(function(item,index) { + var text = item.formatter ? item.formatter(item,index,series,opts) : util.toFixed(item._proportion_.toFixed(4) * 100) + '%'; + text = item.labelText ? item.labelText : text; + var arc = 2 * Math.PI - (item._start_ + 2 * Math.PI * item._proportion_ / 2); + if (item._rose_proportion_) { + arc = 2 * Math.PI - (item._start_ + 2 * Math.PI * item._rose_proportion_ / 2); + } + var color = item.color; + var radius = item._radius_; + return { + arc: arc, + text: text, + color: color, + radius: radius, + textColor: item.textColor, + textSize: item.textSize, + labelShow: item.labelShow + }; + }); + for (let i = 0; i < seriesConvert.length; i++) { + let item = seriesConvert[i]; + // line end + let orginX1 = Math.cos(item.arc) * (item.radius + lineRadius); + let orginY1 = Math.sin(item.arc) * (item.radius + lineRadius); + // line start + let orginX2 = Math.cos(item.arc) * item.radius; + let orginY2 = Math.sin(item.arc) * item.radius; + // text start + let orginX3 = orginX1 >= 0 ? orginX1 + config.pieChartTextPadding : orginX1 - config.pieChartTextPadding; + let orginY3 = orginY1; + let textWidth = measureText(item.text, item.textSize * opts.pix || config.fontSize, context); + let startY = orginY3; + if (lastTextObject && util.isSameXCoordinateArea(lastTextObject.start, { + x: orginX3 + })) { + if (orginX3 > 0) { + startY = Math.min(orginY3, lastTextObject.start.y); + } else if (orginX1 < 0) { + startY = Math.max(orginY3, lastTextObject.start.y); + } else { + if (orginY3 > 0) { + startY = Math.max(orginY3, lastTextObject.start.y); + } else { + startY = Math.min(orginY3, lastTextObject.start.y); + } + } + } + if (orginX3 < 0) { + orginX3 -= textWidth; + } + let textObject = { + lineStart: { + x: orginX2, + y: orginY2 + }, + lineEnd: { + x: orginX1, + y: orginY1 + }, + start: { + x: orginX3, + y: startY + }, + width: textWidth, + height: config.fontSize, + text: item.text, + color: item.color, + textColor: item.textColor, + textSize: item.textSize + }; + lastTextObject = avoidCollision(textObject, lastTextObject); + textObjectCollection.push(lastTextObject); + } + for (let i = 0; i < textObjectCollection.length; i++) { + if(seriesConvert[i].labelShow === false){ + continue; + } + let item = textObjectCollection[i]; + let lineStartPoistion = convertCoordinateOrigin(item.lineStart.x, item.lineStart.y, center); + let lineEndPoistion = convertCoordinateOrigin(item.lineEnd.x, item.lineEnd.y, center); + let textPosition = convertCoordinateOrigin(item.start.x, item.start.y, center); + context.setLineWidth(1 * opts.pix); + context.setFontSize(item.textSize * opts.pix || config.fontSize); + context.beginPath(); + context.setStrokeStyle(item.color); + context.setFillStyle(item.color); + context.moveTo(lineStartPoistion.x, lineStartPoistion.y); + let curveStartX = item.start.x < 0 ? textPosition.x + item.width : textPosition.x; + let textStartX = item.start.x < 0 ? textPosition.x - 5 : textPosition.x + 5; + context.quadraticCurveTo(lineEndPoistion.x, lineEndPoistion.y, curveStartX, textPosition.y); + context.moveTo(lineStartPoistion.x, lineStartPoistion.y); + context.stroke(); + context.closePath(); + context.beginPath(); + context.moveTo(textPosition.x + item.width, textPosition.y); + context.arc(curveStartX, textPosition.y, 2 * opts.pix, 0, 2 * Math.PI); + context.closePath(); + context.fill(); + context.beginPath(); + context.setFontSize(item.textSize * opts.pix || config.fontSize); + context.setFillStyle(item.textColor || opts.fontColor); + context.fillText(item.text, textStartX, textPosition.y + 3); + context.closePath(); + context.stroke(); + context.closePath(); + } +} + +function drawToolTipSplitLine(offsetX, opts, config, context) { + var toolTipOption = opts.extra.tooltip || {}; + toolTipOption.gridType = toolTipOption.gridType == undefined ? 'solid' : toolTipOption.gridType; + toolTipOption.dashLength = toolTipOption.dashLength == undefined ? 4 : toolTipOption.dashLength; + var startY = opts.area[0]; + var endY = opts.height - opts.area[2]; + if (toolTipOption.gridType == 'dash') { + context.setLineDash([toolTipOption.dashLength, toolTipOption.dashLength]); + } + context.setStrokeStyle(toolTipOption.gridColor || '#cccccc'); + context.setLineWidth(1 * opts.pix); + context.beginPath(); + context.moveTo(offsetX, startY); + context.lineTo(offsetX, endY); + context.stroke(); + context.setLineDash([]); + if (toolTipOption.xAxisLabel) { + let labelText = opts.categories[opts.tooltip.index]; + context.setFontSize(config.fontSize); + let textWidth = measureText(labelText, config.fontSize, context); + let textX = offsetX - 0.5 * textWidth; + let textY = endY + 2 * opts.pix; + context.beginPath(); + context.setFillStyle(hexToRgb(toolTipOption.labelBgColor || config.toolTipBackground, toolTipOption.labelBgOpacity || config.toolTipOpacity)); + context.setStrokeStyle(toolTipOption.labelBgColor || config.toolTipBackground); + context.setLineWidth(1 * opts.pix); + context.rect(textX - toolTipOption.boxPadding * opts.pix, textY, textWidth + 2 * toolTipOption.boxPadding * opts.pix, config.fontSize + 2 * toolTipOption.boxPadding * opts.pix); + context.closePath(); + context.stroke(); + context.fill(); + context.beginPath(); + context.setFontSize(config.fontSize); + context.setFillStyle(toolTipOption.labelFontColor || opts.fontColor); + context.fillText(String(labelText), textX, textY + toolTipOption.boxPadding * opts.pix + config.fontSize); + context.closePath(); + context.stroke(); + } +} + +function drawMarkLine(opts, config, context) { + let markLineOption = assign({}, { + type: 'solid', + dashLength: 4, + data: [] + }, opts.extra.markLine); + let startX = opts.area[3]; + let endX = opts.width - opts.area[1]; + let points = calMarkLineData(markLineOption.data, opts); + for (let i = 0; i < points.length; i++) { + let item = assign({}, { + lineColor: '#DE4A42', + showLabel: false, + labelFontSize: 13, + labelPadding: 6, + labelFontColor: '#666666', + labelBgColor: '#DFE8FF', + labelBgOpacity: 0.8, + labelAlign: 'left', + labelOffsetX: 0, + labelOffsetY: 0, + }, points[i]); + if (markLineOption.type == 'dash') { + context.setLineDash([markLineOption.dashLength, markLineOption.dashLength]); + } + context.setStrokeStyle(item.lineColor); + context.setLineWidth(1 * opts.pix); + context.beginPath(); + context.moveTo(startX, item.y); + context.lineTo(endX, item.y); + context.stroke(); + context.setLineDash([]); + if (item.showLabel) { + let fontSize = item.labelFontSize * opts.pix; + let labelText = item.labelText ? item.labelText : item.value; + context.setFontSize(fontSize); + let textWidth = measureText(labelText, fontSize, context); + let bgWidth = textWidth + item.labelPadding * opts.pix * 2; + let bgStartX = item.labelAlign == 'left' ? opts.area[3] - bgWidth : opts.width - opts.area[1]; + bgStartX += item.labelOffsetX; + let bgStartY = item.y - 0.5 * fontSize - item.labelPadding * opts.pix; + bgStartY += item.labelOffsetY; + let textX = bgStartX + item.labelPadding * opts.pix; + let textY = item.y; + context.setFillStyle(hexToRgb(item.labelBgColor, item.labelBgOpacity)); + context.setStrokeStyle(item.labelBgColor); + context.setLineWidth(1 * opts.pix); + context.beginPath(); + context.rect(bgStartX, bgStartY, bgWidth, fontSize + 2 * item.labelPadding * opts.pix); + context.closePath(); + context.stroke(); + context.fill(); + context.setFontSize(fontSize); + context.setTextAlign('left'); + context.setFillStyle(item.labelFontColor); + context.fillText(String(labelText), textX, bgStartY + fontSize + item.labelPadding * opts.pix/2); + context.stroke(); + context.setTextAlign('left'); + } + } +} + +function drawToolTipHorizentalLine(opts, config, context, eachSpacing, xAxisPoints) { + var toolTipOption = assign({}, { + gridType: 'solid', + dashLength: 4 + }, opts.extra.tooltip); + var startX = opts.area[3]; + var endX = opts.width - opts.area[1]; + if (toolTipOption.gridType == 'dash') { + context.setLineDash([toolTipOption.dashLength, toolTipOption.dashLength]); + } + context.setStrokeStyle(toolTipOption.gridColor || '#cccccc'); + context.setLineWidth(1 * opts.pix); + context.beginPath(); + context.moveTo(startX, opts.tooltip.offset.y); + context.lineTo(endX, opts.tooltip.offset.y); + context.stroke(); + context.setLineDash([]); + if (toolTipOption.yAxisLabel) { + let boxPadding = toolTipOption.boxPadding * opts.pix; + let labelText = calTooltipYAxisData(opts.tooltip.offset.y, opts.series, opts, config, eachSpacing); + let widthArr = opts.chartData.yAxisData.yAxisWidth; + let tStartLeft = opts.area[3]; + let tStartRight = opts.width - opts.area[1]; + for (let i = 0; i < labelText.length; i++) { + context.setFontSize(toolTipOption.fontSize * opts.pix); + let textWidth = measureText(labelText[i], toolTipOption.fontSize * opts.pix, context); + let bgStartX, bgEndX, bgWidth; + if (widthArr[i].position == 'left') { + bgStartX = tStartLeft - (textWidth + boxPadding * 2) - 2 * opts.pix; + bgEndX = Math.max(bgStartX, bgStartX + textWidth + boxPadding * 2); + } else { + bgStartX = tStartRight + 2 * opts.pix; + bgEndX = Math.max(bgStartX + widthArr[i].width, bgStartX + textWidth + boxPadding * 2); + } + bgWidth = bgEndX - bgStartX; + let textX = bgStartX + (bgWidth - textWidth) / 2; + let textY = opts.tooltip.offset.y; + context.beginPath(); + context.setFillStyle(hexToRgb(toolTipOption.labelBgColor || config.toolTipBackground, toolTipOption.labelBgOpacity || config.toolTipOpacity)); + context.setStrokeStyle(toolTipOption.labelBgColor || config.toolTipBackground); + context.setLineWidth(1 * opts.pix); + context.rect(bgStartX, textY - 0.5 * config.fontSize - boxPadding, bgWidth, config.fontSize + 2 * boxPadding); + context.closePath(); + context.stroke(); + context.fill(); + context.beginPath(); + context.setFontSize(config.fontSize); + context.setFillStyle(toolTipOption.labelFontColor || opts.fontColor); + context.fillText(labelText[i], textX, textY + 0.5 * config.fontSize); + context.closePath(); + context.stroke(); + if (widthArr[i].position == 'left') { + tStartLeft -= (widthArr[i].width + opts.yAxis.padding * opts.pix); + } else { + tStartRight += widthArr[i].width + opts.yAxis.padding * opts.pix; + } + } + } +} + +function drawToolTipSplitArea(offsetX, opts, config, context, eachSpacing) { + var toolTipOption = assign({}, { + activeBgColor: '#000000', + activeBgOpacity: 0.08, + activeWidth: eachSpacing + }, opts.extra.column); + toolTipOption.activeWidth = toolTipOption.activeWidth > eachSpacing ? eachSpacing : toolTipOption.activeWidth; + var startY = opts.area[0]; + var endY = opts.height - opts.area[2]; + context.beginPath(); + context.setFillStyle(hexToRgb(toolTipOption.activeBgColor, toolTipOption.activeBgOpacity)); + context.rect(offsetX - toolTipOption.activeWidth / 2, startY, toolTipOption.activeWidth, endY - startY); + context.closePath(); + context.fill(); + context.setFillStyle("#FFFFFF"); +} + +function drawBarToolTipSplitArea(offsetX, opts, config, context, eachSpacing) { + var toolTipOption = assign({}, { + activeBgColor: '#000000', + activeBgOpacity: 0.08 + }, opts.extra.bar); + var startX = opts.area[3]; + var endX = opts.width - opts.area[1]; + context.beginPath(); + context.setFillStyle(hexToRgb(toolTipOption.activeBgColor, toolTipOption.activeBgOpacity)); + context.rect( startX ,offsetX - eachSpacing / 2 , endX - startX,eachSpacing); + context.closePath(); + context.fill(); + context.setFillStyle("#FFFFFF"); +} + + +function drawToolTip(textList, offset, opts, config, context, eachSpacing, xAxisPoints) { + var toolTipOption = assign({}, { + showBox: true, + showArrow: true, + showCategory: false, + bgColor: '#000000', + bgOpacity: 0.7, + borderColor: '#000000', + borderWidth: 0, + borderRadius: 0, + borderOpacity: 0.7, + boxPadding: 3, + fontColor: '#FFFFFF', + fontSize: 13, + lineHeight: 20, + legendShow: true, + legendShape: 'auto', + splitLine: true, + }, opts.extra.tooltip); + if(toolTipOption.showCategory==true && opts.categories){ + textList.unshift({text:opts.categories[opts.tooltip.index],color:null}) + } + var fontSize = toolTipOption.fontSize * opts.pix; + var lineHeight = toolTipOption.lineHeight * opts.pix; + var boxPadding = toolTipOption.boxPadding * opts.pix; + var legendWidth = fontSize; + var legendMarginRight = 5 * opts.pix; + if(toolTipOption.legendShow == false){ + legendWidth = 0; + legendMarginRight = 0; + } + var arrowWidth = toolTipOption.showArrow ? 8 * opts.pix : 0; + var isOverRightBorder = false; + if (opts.type == 'line' || opts.type == 'mount' || opts.type == 'area' || opts.type == 'candle' || opts.type == 'mix') { + if (toolTipOption.splitLine == true) { + drawToolTipSplitLine(opts.tooltip.offset.x, opts, config, context); + } + } + offset = assign({ + x: 0, + y: 0 + }, offset); + offset.y -= 8 * opts.pix; + var textWidth = textList.map(function(item) { + return measureText(item.text, fontSize, context); + }); + var toolTipWidth = legendWidth + legendMarginRight + 4 * boxPadding + Math.max.apply(null, textWidth); + var toolTipHeight = 2 * boxPadding + textList.length * lineHeight; + if (toolTipOption.showBox == false) { + return + } + // if beyond the right border + if (offset.x - Math.abs(opts._scrollDistance_ || 0) + arrowWidth + toolTipWidth > opts.width) { + isOverRightBorder = true; + } + if (toolTipHeight + offset.y > opts.height) { + offset.y = opts.height - toolTipHeight; + } + // draw background rect + context.beginPath(); + context.setFillStyle(hexToRgb(toolTipOption.bgColor, toolTipOption.bgOpacity)); + context.setLineWidth(toolTipOption.borderWidth * opts.pix); + context.setStrokeStyle(hexToRgb(toolTipOption.borderColor, toolTipOption.borderOpacity)); + var radius = toolTipOption.borderRadius; + if (isOverRightBorder) { + // 增加左侧仍然超出的判断 + if(toolTipWidth + arrowWidth > opts.width){ + offset.x = opts.width + Math.abs(opts._scrollDistance_ || 0) + arrowWidth + (toolTipWidth - opts.width) + } + if(toolTipWidth > offset.x){ + offset.x = opts.width + Math.abs(opts._scrollDistance_ || 0) + arrowWidth + (toolTipWidth - opts.width) + } + if (toolTipOption.showArrow) { + context.moveTo(offset.x, offset.y + 10 * opts.pix); + context.lineTo(offset.x - arrowWidth, offset.y + 10 * opts.pix + 5 * opts.pix); + } + context.arc(offset.x - arrowWidth - radius, offset.y + toolTipHeight - radius, radius, 0, Math.PI / 2, false); + context.arc(offset.x - arrowWidth - Math.round(toolTipWidth) + radius, offset.y + toolTipHeight - radius, radius, + Math.PI / 2, Math.PI, false); + context.arc(offset.x - arrowWidth - Math.round(toolTipWidth) + radius, offset.y + radius, radius, -Math.PI, -Math.PI / 2, false); + context.arc(offset.x - arrowWidth - radius, offset.y + radius, radius, -Math.PI / 2, 0, false); + if (toolTipOption.showArrow) { + context.lineTo(offset.x - arrowWidth, offset.y + 10 * opts.pix - 5 * opts.pix); + context.lineTo(offset.x, offset.y + 10 * opts.pix); + } + } else { + if (toolTipOption.showArrow) { + context.moveTo(offset.x, offset.y + 10 * opts.pix); + context.lineTo(offset.x + arrowWidth, offset.y + 10 * opts.pix - 5 * opts.pix); + } + context.arc(offset.x + arrowWidth + radius, offset.y + radius, radius, -Math.PI, -Math.PI / 2, false); + context.arc(offset.x + arrowWidth + Math.round(toolTipWidth) - radius, offset.y + radius, radius, -Math.PI / 2, 0, + false); + context.arc(offset.x + arrowWidth + Math.round(toolTipWidth) - radius, offset.y + toolTipHeight - radius, radius, 0, + Math.PI / 2, false); + context.arc(offset.x + arrowWidth + radius, offset.y + toolTipHeight - radius, radius, Math.PI / 2, Math.PI, false); + if (toolTipOption.showArrow) { + context.lineTo(offset.x + arrowWidth, offset.y + 10 * opts.pix + 5 * opts.pix); + context.lineTo(offset.x, offset.y + 10 * opts.pix); + } + } + context.closePath(); + context.fill(); + if (toolTipOption.borderWidth > 0) { + context.stroke(); + } + // draw legend + if(toolTipOption.legendShow){ + textList.forEach(function(item, index) { + if (item.color !== null) { + context.beginPath(); + context.setFillStyle(item.color); + var startX = offset.x + arrowWidth + 2 * boxPadding; + var startY = offset.y + (lineHeight - fontSize) / 2 + lineHeight * index + boxPadding + 1; + if (isOverRightBorder) { + startX = offset.x - toolTipWidth - arrowWidth + 2 * boxPadding; + } + switch (item.legendShape) { + case 'line': + context.moveTo(startX, startY + 0.5 * legendWidth - 2 * opts.pix); + context.fillRect(startX, startY + 0.5 * legendWidth - 2 * opts.pix, legendWidth, 4 * opts.pix); + break; + case 'triangle': + context.moveTo(startX + 7.5 * opts.pix, startY + 0.5 * legendWidth - 5 * opts.pix); + context.lineTo(startX + 2.5 * opts.pix, startY + 0.5 * legendWidth + 5 * opts.pix); + context.lineTo(startX + 12.5 * opts.pix, startY + 0.5 * legendWidth + 5 * opts.pix); + context.lineTo(startX + 7.5 * opts.pix, startY + 0.5 * legendWidth - 5 * opts.pix); + break; + case 'diamond': + context.moveTo(startX + 7.5 * opts.pix, startY + 0.5 * legendWidth - 5 * opts.pix); + context.lineTo(startX + 2.5 * opts.pix, startY + 0.5 * legendWidth); + context.lineTo(startX + 7.5 * opts.pix, startY + 0.5 * legendWidth + 5 * opts.pix); + context.lineTo(startX + 12.5 * opts.pix, startY + 0.5 * legendWidth); + context.lineTo(startX + 7.5 * opts.pix, startY + 0.5 * legendWidth - 5 * opts.pix); + break; + case 'circle': + context.moveTo(startX + 7.5 * opts.pix, startY + 0.5 * legendWidth); + context.arc(startX + 7.5 * opts.pix, startY + 0.5 * legendWidth, 5 * opts.pix, 0, 2 * Math.PI); + break; + case 'rect': + context.moveTo(startX, startY + 0.5 * legendWidth - 5 * opts.pix); + context.fillRect(startX, startY + 0.5 * legendWidth - 5 * opts.pix, 15 * opts.pix, 10 * opts.pix); + break; + case 'square': + context.moveTo(startX + 2 * opts.pix, startY + 0.5 * legendWidth - 5 * opts.pix); + context.fillRect(startX + 2 * opts.pix, startY + 0.5 * legendWidth - 5 * opts.pix, 10 * opts.pix, 10 * opts.pix); + break; + default: + context.moveTo(startX, startY + 0.5 * legendWidth - 5 * opts.pix); + context.fillRect(startX, startY + 0.5 * legendWidth - 5 * opts.pix, 15 * opts.pix, 10 * opts.pix); + } + context.closePath(); + context.fill(); + } + }); + } + + // draw text list + textList.forEach(function(item, index) { + var startX = offset.x + arrowWidth + 2 * boxPadding + legendWidth + legendMarginRight; + if (isOverRightBorder) { + startX = offset.x - toolTipWidth - arrowWidth + 2 * boxPadding + legendWidth + legendMarginRight; + } + var startY = offset.y + lineHeight * index + (lineHeight - fontSize)/2 - 1 + boxPadding + fontSize; + context.beginPath(); + context.setFontSize(fontSize); + context.setTextBaseline('normal'); + context.setFillStyle(toolTipOption.fontColor); + context.fillText(item.text, startX, startY); + context.closePath(); + context.stroke(); + }); +} + +function drawColumnDataPoints(series, opts, config, context) { + let process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + let xAxisData = opts.chartData.xAxisData, + xAxisPoints = xAxisData.xAxisPoints, + eachSpacing = xAxisData.eachSpacing; + let columnOption = assign({}, { + type: 'group', + width: eachSpacing / 2, + meterBorder: 4, + meterFillColor: '#FFFFFF', + barBorderCircle: false, + barBorderRadius: [], + seriesGap: 2, + linearType: 'none', + linearOpacity: 1, + customColor: [], + colorStop: 0, + labelPosition: 'outside' + }, opts.extra.column); + let calPoints = []; + context.save(); + let leftNum = -2; + let rightNum = xAxisPoints.length + 2; + if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) { + context.translate(opts._scrollDistance_, 0); + leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2; + rightNum = leftNum + opts.xAxis.itemCount + 4; + } + if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) { + drawToolTipSplitArea(opts.tooltip.offset.x, opts, config, context, eachSpacing); + } + columnOption.customColor = fillCustomColor(columnOption.linearType, columnOption.customColor, series, config); + series.forEach(function(eachSeries, seriesIndex) { + let ranges, minRange, maxRange; + ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]); + minRange = ranges.pop(); + maxRange = ranges.shift(); + + // 计算0轴坐标 + let spacingValid = opts.height - opts.area[0] - opts.area[2]; + let zeroHeight = spacingValid * (0 - minRange) / (maxRange - minRange); + let zeroPoints = opts.height - Math.round(zeroHeight) - opts.area[2]; + eachSeries.zeroPoints = zeroPoints; + var data = eachSeries.data; + switch (columnOption.type) { + case 'group': + var points = getColumnDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, zeroPoints, process); + var tooltipPoints = getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, series, process); + calPoints.push(tooltipPoints); + points = fixColumeData(points, eachSpacing, series.length, seriesIndex, config, opts); + for (let i = 0; i < points.length; i++) { + let item = points[i]; + //fix issues/I27B1N yyoinge & Joeshu + if (item !== null && i > leftNum && i < rightNum) { + var startX = item.x - item.width / 2; + var height = opts.height - item.y - opts.area[2]; + context.beginPath(); + var fillColor = item.color || eachSeries.color + var strokeColor = item.color || eachSeries.color + if (columnOption.linearType !== 'none') { + var grd = context.createLinearGradient(startX, item.y, startX, zeroPoints); + //透明渐变 + if (columnOption.linearType == 'opacity') { + grd.addColorStop(0, hexToRgb(fillColor, columnOption.linearOpacity)); + grd.addColorStop(1, hexToRgb(fillColor, 1)); + } else { + grd.addColorStop(0, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity)); + grd.addColorStop(columnOption.colorStop, hexToRgb(columnOption.customColor[eachSeries.linearIndex],columnOption.linearOpacity)); + grd.addColorStop(1, hexToRgb(fillColor, 1)); + } + fillColor = grd + } + // 圆角边框 + if ((columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4) || columnOption.barBorderCircle === true) { + const left = startX; + const top = item.y > zeroPoints ? zeroPoints : item.y; + const width = item.width; + const height = Math.abs(zeroPoints - item.y); + if (columnOption.barBorderCircle) { + columnOption.barBorderRadius = [width / 2, width / 2, 0, 0]; + } + if(item.y > zeroPoints){ + columnOption.barBorderRadius = [0, 0,width / 2, width / 2]; + } + let [r0, r1, r2, r3] = columnOption.barBorderRadius; + let minRadius = Math.min(width/2,height/2); + r0 = r0 > minRadius ? minRadius : r0; + r1 = r1 > minRadius ? minRadius : r1; + r2 = r2 > minRadius ? minRadius : r2; + r3 = r3 > minRadius ? minRadius : r3; + r0 = r0 < 0 ? 0 : r0; + r1 = r1 < 0 ? 0 : r1; + r2 = r2 < 0 ? 0 : r2; + r3 = r3 < 0 ? 0 : r3; + context.arc(left + r0, top + r0, r0, -Math.PI, -Math.PI / 2); + context.arc(left + width - r1, top + r1, r1, -Math.PI / 2, 0); + context.arc(left + width - r2, top + height - r2, r2, 0, Math.PI / 2); + context.arc(left + r3, top + height - r3, r3, Math.PI / 2, Math.PI); + } else { + context.moveTo(startX, item.y); + context.lineTo(startX + item.width, item.y); + context.lineTo(startX + item.width, zeroPoints); + context.lineTo(startX, zeroPoints); + context.lineTo(startX, item.y); + context.setLineWidth(1) + context.setStrokeStyle(strokeColor); + } + context.setFillStyle(fillColor); + context.closePath(); + //context.stroke(); + context.fill(); + } + }; + break; + case 'stack': + // 绘制堆叠数据图 + var points = getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, series, process); + calPoints.push(points); + points = fixColumeStackData(points, eachSpacing, series.length, seriesIndex, config, opts, series); + for (let i = 0; i < points.length; i++) { + let item = points[i]; + if (item !== null && i > leftNum && i < rightNum) { + context.beginPath(); + var fillColor = item.color || eachSeries.color; + var startX = item.x - item.width / 2 + 1; + var height = opts.height - item.y - opts.area[2]; + var height0 = opts.height - item.y0 - opts.area[2]; + if (seriesIndex > 0) { + height -= height0; + } + context.setFillStyle(fillColor); + context.moveTo(startX, item.y); + context.fillRect(startX, item.y, item.width, height); + context.closePath(); + context.fill(); + } + }; + break; + case 'meter': + // 绘制温度计数据图 + var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + calPoints.push(points); + points = fixColumeMeterData(points, eachSpacing, series.length, seriesIndex, config, opts, columnOption.meterBorder); + for (let i = 0; i < points.length; i++) { + let item = points[i]; + if (item !== null && i > leftNum && i < rightNum) { + //画背景颜色 + context.beginPath(); + if (seriesIndex == 0 && columnOption.meterBorder > 0) { + context.setStrokeStyle(eachSeries.color); + context.setLineWidth(columnOption.meterBorder * opts.pix); + } + if(seriesIndex == 0){ + context.setFillStyle(columnOption.meterFillColor); + }else{ + context.setFillStyle(item.color || eachSeries.color); + } + var startX = item.x - item.width / 2; + var height = opts.height - item.y - opts.area[2]; + if ((columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4) || columnOption.barBorderCircle === true) { + const left = startX; + const top = item.y; + const width = item.width; + const height = zeroPoints - item.y; + if (columnOption.barBorderCircle) { + columnOption.barBorderRadius = [width / 2, width / 2, 0, 0]; + } + let [r0, r1, r2, r3] = columnOption.barBorderRadius; + let minRadius = Math.min(width/2,height/2); + r0 = r0 > minRadius ? minRadius : r0; + r1 = r1 > minRadius ? minRadius : r1; + r2 = r2 > minRadius ? minRadius : r2; + r3 = r3 > minRadius ? minRadius : r3; + r0 = r0 < 0 ? 0 : r0; + r1 = r1 < 0 ? 0 : r1; + r2 = r2 < 0 ? 0 : r2; + r3 = r3 < 0 ? 0 : r3; + context.arc(left + r0, top + r0, r0, -Math.PI, -Math.PI / 2); + context.arc(left + width - r1, top + r1, r1, -Math.PI / 2, 0); + context.arc(left + width - r2, top + height - r2, r2, 0, Math.PI / 2); + context.arc(left + r3, top + height - r3, r3, Math.PI / 2, Math.PI); + context.fill(); + }else{ + context.moveTo(startX, item.y); + context.lineTo(startX + item.width, item.y); + context.lineTo(startX + item.width, zeroPoints); + context.lineTo(startX, zeroPoints); + context.lineTo(startX, item.y); + context.fill(); + } + if (seriesIndex == 0 && columnOption.meterBorder > 0) { + context.closePath(); + context.stroke(); + } + } + } + break; + } + }); + + if (opts.dataLabel !== false && process === 1) { + series.forEach(function(eachSeries, seriesIndex) { + let ranges, minRange, maxRange; + ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]); + minRange = ranges.pop(); + maxRange = ranges.shift(); + var data = eachSeries.data; + switch (columnOption.type) { + case 'group': + var points = getColumnDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + points = fixColumeData(points, eachSpacing, series.length, seriesIndex, config, opts); + drawColumePointText(points, eachSeries, config, context, opts); + break; + case 'stack': + var points = getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, series, process); + drawColumePointText(points, eachSeries, config, context, opts); + break; + case 'meter': + var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + drawColumePointText(points, eachSeries, config, context, opts); + break; + } + }); + } + context.restore(); + return { + xAxisPoints: xAxisPoints, + calPoints: calPoints, + eachSpacing: eachSpacing + }; +} + +function drawMountDataPoints(series, opts, config, context) { + let process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + let xAxisData = opts.chartData.xAxisData, + xAxisPoints = xAxisData.xAxisPoints, + eachSpacing = xAxisData.eachSpacing; + let mountOption = assign({}, { + type: 'mount', + widthRatio: 1, + borderWidth: 1, + barBorderCircle: false, + barBorderRadius: [], + linearType: 'none', + linearOpacity: 1, + customColor: [], + colorStop: 0, + }, opts.extra.mount); + mountOption.widthRatio = mountOption.widthRatio <= 0 ? 0 : mountOption.widthRatio; + mountOption.widthRatio = mountOption.widthRatio >= 2 ? 2 : mountOption.widthRatio; + let calPoints = []; + context.save(); + let leftNum = -2; + let rightNum = xAxisPoints.length + 2; + if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) { + context.translate(opts._scrollDistance_, 0); + leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2; + rightNum = leftNum + opts.xAxis.itemCount + 4; + } + mountOption.customColor = fillCustomColor(mountOption.linearType, mountOption.customColor, series, config); + let ranges, minRange, maxRange; + ranges = [].concat(opts.chartData.yAxisData.ranges[0]); + minRange = ranges.pop(); + maxRange = ranges.shift(); + + // 计算0轴坐标 + let spacingValid = opts.height - opts.area[0] - opts.area[2]; + let zeroHeight = spacingValid * (0 - minRange) / (maxRange - minRange); + let zeroPoints = opts.height - Math.round(zeroHeight) - opts.area[2]; + + var points = getMountDataPoints(series, minRange, maxRange, xAxisPoints, eachSpacing, opts, mountOption, zeroPoints, process); + switch (mountOption.type) { + case 'bar': + for (let i = 0; i < points.length; i++) { + let item = points[i]; + if (item !== null && i > leftNum && i < rightNum) { + var startX = item.x - eachSpacing*mountOption.widthRatio/2; + var height = opts.height - item.y - opts.area[2]; + context.beginPath(); + var fillColor = item.color || series[i].color + var strokeColor = item.color || series[i].color + if (mountOption.linearType !== 'none') { + var grd = context.createLinearGradient(startX, item.y, startX, zeroPoints); + //透明渐变 + if (mountOption.linearType == 'opacity') { + grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity)); + grd.addColorStop(1, hexToRgb(fillColor, 1)); + } else { + grd.addColorStop(0, hexToRgb(mountOption.customColor[series[i].linearIndex], mountOption.linearOpacity)); + grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[i].linearIndex],mountOption.linearOpacity)); + grd.addColorStop(1, hexToRgb(fillColor, 1)); + } + fillColor = grd + } + // 圆角边框 + if ((mountOption.barBorderRadius && mountOption.barBorderRadius.length === 4) || mountOption.barBorderCircle === true) { + const left = startX; + const top = item.y > zeroPoints ? zeroPoints : item.y; + const width = item.width; + const height = Math.abs(zeroPoints - item.y); + if (mountOption.barBorderCircle) { + mountOption.barBorderRadius = [width / 2, width / 2, 0, 0]; + } + if(item.y > zeroPoints){ + mountOption.barBorderRadius = [0, 0,width / 2, width / 2]; + } + let [r0, r1, r2, r3] = mountOption.barBorderRadius; + let minRadius = Math.min(width/2,height/2); + r0 = r0 > minRadius ? minRadius : r0; + r1 = r1 > minRadius ? minRadius : r1; + r2 = r2 > minRadius ? minRadius : r2; + r3 = r3 > minRadius ? minRadius : r3; + r0 = r0 < 0 ? 0 : r0; + r1 = r1 < 0 ? 0 : r1; + r2 = r2 < 0 ? 0 : r2; + r3 = r3 < 0 ? 0 : r3; + context.arc(left + r0, top + r0, r0, -Math.PI, -Math.PI / 2); + context.arc(left + width - r1, top + r1, r1, -Math.PI / 2, 0); + context.arc(left + width - r2, top + height - r2, r2, 0, Math.PI / 2); + context.arc(left + r3, top + height - r3, r3, Math.PI / 2, Math.PI); + } else { + context.moveTo(startX, item.y); + context.lineTo(startX + item.width, item.y); + context.lineTo(startX + item.width, zeroPoints); + context.lineTo(startX, zeroPoints); + context.lineTo(startX, item.y); + } + context.setStrokeStyle(strokeColor); + context.setFillStyle(fillColor); + if(mountOption.borderWidth > 0){ + context.setLineWidth(mountOption.borderWidth * opts.pix); + context.closePath(); + context.stroke(); + } + context.fill(); + } + }; + break; + case 'triangle': + for (let i = 0; i < points.length; i++) { + let item = points[i]; + if (item !== null && i > leftNum && i < rightNum) { + var startX = item.x - eachSpacing*mountOption.widthRatio/2; + var height = opts.height - item.y - opts.area[2]; + context.beginPath(); + var fillColor = item.color || series[i].color + var strokeColor = item.color || series[i].color + if (mountOption.linearType !== 'none') { + var grd = context.createLinearGradient(startX, item.y, startX, zeroPoints); + //透明渐变 + if (mountOption.linearType == 'opacity') { + grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity)); + grd.addColorStop(1, hexToRgb(fillColor, 1)); + } else { + grd.addColorStop(0, hexToRgb(mountOption.customColor[series[i].linearIndex], mountOption.linearOpacity)); + grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[i].linearIndex],mountOption.linearOpacity)); + grd.addColorStop(1, hexToRgb(fillColor, 1)); + } + fillColor = grd + } + context.moveTo(startX, zeroPoints); + context.lineTo(item.x, item.y); + context.lineTo(startX + item.width, zeroPoints); + context.setStrokeStyle(strokeColor); + context.setFillStyle(fillColor); + if(mountOption.borderWidth > 0){ + context.setLineWidth(mountOption.borderWidth * opts.pix); + context.stroke(); + } + context.fill(); + } + }; + break; + case 'mount': + for (let i = 0; i < points.length; i++) { + let item = points[i]; + if (item !== null && i > leftNum && i < rightNum) { + var startX = item.x - eachSpacing*mountOption.widthRatio/2; + var height = opts.height - item.y - opts.area[2]; + context.beginPath(); + var fillColor = item.color || series[i].color + var strokeColor = item.color || series[i].color + if (mountOption.linearType !== 'none') { + var grd = context.createLinearGradient(startX, item.y, startX, zeroPoints); + //透明渐变 + if (mountOption.linearType == 'opacity') { + grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity)); + grd.addColorStop(1, hexToRgb(fillColor, 1)); + } else { + grd.addColorStop(0, hexToRgb(mountOption.customColor[series[i].linearIndex], mountOption.linearOpacity)); + grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[i].linearIndex],mountOption.linearOpacity)); + grd.addColorStop(1, hexToRgb(fillColor, 1)); + } + fillColor = grd + } + context.moveTo(startX, zeroPoints); + context.bezierCurveTo(item.x - item.width/4, zeroPoints, item.x - item.width/4, item.y, item.x, item.y); + context.bezierCurveTo(item.x + item.width/4, item.y, item.x + item.width/4, zeroPoints, startX + item.width, zeroPoints); + context.setStrokeStyle(strokeColor); + context.setFillStyle(fillColor); + if(mountOption.borderWidth > 0){ + context.setLineWidth(mountOption.borderWidth * opts.pix); + context.stroke(); + } + context.fill(); + } + }; + break; + case 'sharp': + for (let i = 0; i < points.length; i++) { + let item = points[i]; + if (item !== null && i > leftNum && i < rightNum) { + var startX = item.x - eachSpacing*mountOption.widthRatio/2; + var height = opts.height - item.y - opts.area[2]; + context.beginPath(); + var fillColor = item.color || series[i].color + var strokeColor = item.color || series[i].color + if (mountOption.linearType !== 'none') { + var grd = context.createLinearGradient(startX, item.y, startX, zeroPoints); + //透明渐变 + if (mountOption.linearType == 'opacity') { + grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity)); + grd.addColorStop(1, hexToRgb(fillColor, 1)); + } else { + grd.addColorStop(0, hexToRgb(mountOption.customColor[series[i].linearIndex], mountOption.linearOpacity)); + grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[i].linearIndex],mountOption.linearOpacity)); + grd.addColorStop(1, hexToRgb(fillColor, 1)); + } + fillColor = grd + } + context.moveTo(startX, zeroPoints); + context.quadraticCurveTo(item.x - 0, zeroPoints - height/4, item.x, item.y); + context.quadraticCurveTo(item.x + 0, zeroPoints - height/4, startX + item.width, zeroPoints) + context.setStrokeStyle(strokeColor); + context.setFillStyle(fillColor); + if(mountOption.borderWidth > 0){ + context.setLineWidth(mountOption.borderWidth * opts.pix); + context.stroke(); + } + context.fill(); + } + }; + break; + } + + if (opts.dataLabel !== false && process === 1) { + let ranges, minRange, maxRange; + ranges = [].concat(opts.chartData.yAxisData.ranges[0]); + minRange = ranges.pop(); + maxRange = ranges.shift(); + var points = getMountDataPoints(series, minRange, maxRange, xAxisPoints, eachSpacing, opts, mountOption, zeroPoints, process); + drawMountPointText(points, series, config, context, opts, zeroPoints); + } + context.restore(); + return { + xAxisPoints: xAxisPoints, + calPoints: points, + eachSpacing: eachSpacing + }; +} + +function drawBarDataPoints(series, opts, config, context) { + let process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + let yAxisPoints = []; + let eachSpacing = (opts.height - opts.area[0] - opts.area[2])/opts.categories.length; + for (let i = 0; i < opts.categories.length; i++) { + yAxisPoints.push(opts.area[0] + eachSpacing / 2 + eachSpacing * i); + } + let columnOption = assign({}, { + type: 'group', + width: eachSpacing / 2, + meterBorder: 4, + meterFillColor: '#FFFFFF', + barBorderCircle: false, + barBorderRadius: [], + seriesGap: 2, + linearType: 'none', + linearOpacity: 1, + customColor: [], + colorStop: 0, + }, opts.extra.bar); + let calPoints = []; + context.save(); + let leftNum = -2; + let rightNum = yAxisPoints.length + 2; + if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) { + drawBarToolTipSplitArea(opts.tooltip.offset.y, opts, config, context, eachSpacing); + } + columnOption.customColor = fillCustomColor(columnOption.linearType, columnOption.customColor, series, config); + series.forEach(function(eachSeries, seriesIndex) { + let ranges, minRange, maxRange; + ranges = [].concat(opts.chartData.xAxisData.ranges); + maxRange = ranges.pop(); + minRange = ranges.shift(); + var data = eachSeries.data; + switch (columnOption.type) { + case 'group': + var points = getBarDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, process); + var tooltipPoints = getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, series, process); + calPoints.push(tooltipPoints); + points = fixBarData(points, eachSpacing, series.length, seriesIndex, config, opts); + for (let i = 0; i < points.length; i++) { + let item = points[i]; + //fix issues/I27B1N yyoinge & Joeshu + if (item !== null && i > leftNum && i < rightNum) { + //var startX = item.x - item.width / 2; + var startX = opts.area[3]; + var startY = item.y - item.width / 2; + var height = item.height; + context.beginPath(); + var fillColor = item.color || eachSeries.color + var strokeColor = item.color || eachSeries.color + if (columnOption.linearType !== 'none') { + var grd = context.createLinearGradient(startX, item.y, item.x, item.y); + //透明渐变 + if (columnOption.linearType == 'opacity') { + grd.addColorStop(0, hexToRgb(fillColor, columnOption.linearOpacity)); + grd.addColorStop(1, hexToRgb(fillColor, 1)); + } else { + grd.addColorStop(0, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity)); + grd.addColorStop(columnOption.colorStop, hexToRgb(columnOption.customColor[eachSeries.linearIndex],columnOption.linearOpacity)); + grd.addColorStop(1, hexToRgb(fillColor, 1)); + } + fillColor = grd + } + // 圆角边框 + if ((columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4) || columnOption.barBorderCircle === true) { + const left = startX; + const width = item.width; + const top = item.y - item.width / 2; + const height = item.height; + if (columnOption.barBorderCircle) { + columnOption.barBorderRadius = [width / 2, width / 2, 0, 0]; + } + let [r0, r1, r2, r3] = columnOption.barBorderRadius; + let minRadius = Math.min(width/2,height/2); + r0 = r0 > minRadius ? minRadius : r0; + r1 = r1 > minRadius ? minRadius : r1; + r2 = r2 > minRadius ? minRadius : r2; + r3 = r3 > minRadius ? minRadius : r3; + r0 = r0 < 0 ? 0 : r0; + r1 = r1 < 0 ? 0 : r1; + r2 = r2 < 0 ? 0 : r2; + r3 = r3 < 0 ? 0 : r3; + + context.arc(left + r3, top + r3, r3, -Math.PI, -Math.PI / 2); + context.arc(item.x - r0, top + r0, r0, -Math.PI / 2, 0); + context.arc(item.x - r1, top + width - r1, r1, 0, Math.PI / 2); + context.arc(left + r2, top + width - r2, r2, Math.PI / 2, Math.PI); + } else { + context.moveTo(startX, startY); + context.lineTo(item.x, startY); + context.lineTo(item.x, startY + item.width); + context.lineTo(startX, startY + item.width); + context.lineTo(startX, startY); + context.setLineWidth(1) + context.setStrokeStyle(strokeColor); + } + context.setFillStyle(fillColor); + context.closePath(); + //context.stroke(); + context.fill(); + } + }; + break; + case 'stack': + // 绘制堆叠数据图 + var points = getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, series, process); + calPoints.push(points); + points = fixBarStackData(points, eachSpacing, series.length, seriesIndex, config, opts, series); + for (let i = 0; i < points.length; i++) { + let item = points[i]; + if (item !== null && i > leftNum && i < rightNum) { + context.beginPath(); + var fillColor = item.color || eachSeries.color; + var startX = item.x0; + context.setFillStyle(fillColor); + context.moveTo(startX, item.y - item.width/2); + context.fillRect(startX, item.y - item.width/2, item.height , item.width); + context.closePath(); + context.fill(); + } + }; + break; + } + }); + + if (opts.dataLabel !== false && process === 1) { + series.forEach(function(eachSeries, seriesIndex) { + let ranges, minRange, maxRange; + ranges = [].concat(opts.chartData.xAxisData.ranges); + maxRange = ranges.pop(); + minRange = ranges.shift(); + var data = eachSeries.data; + switch (columnOption.type) { + case 'group': + var points = getBarDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, process); + points = fixBarData(points, eachSpacing, series.length, seriesIndex, config, opts); + drawBarPointText(points, eachSeries, config, context, opts); + break; + case 'stack': + var points = getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, series, process); + drawBarPointText(points, eachSeries, config, context, opts); + break; + } + }); + } + return { + yAxisPoints: yAxisPoints, + calPoints: calPoints, + eachSpacing: eachSpacing + }; +} + +function drawCandleDataPoints(series, seriesMA, opts, config, context) { + var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1; + var candleOption = assign({}, { + color: {}, + average: {} + }, opts.extra.candle); + candleOption.color = assign({}, { + upLine: '#f04864', + upFill: '#f04864', + downLine: '#2fc25b', + downFill: '#2fc25b' + }, candleOption.color); + candleOption.average = assign({}, { + show: false, + name: [], + day: [], + color: config.color + }, candleOption.average); + opts.extra.candle = candleOption; + let xAxisData = opts.chartData.xAxisData, + xAxisPoints = xAxisData.xAxisPoints, + eachSpacing = xAxisData.eachSpacing; + let calPoints = []; + context.save(); + let leftNum = -2; + let rightNum = xAxisPoints.length + 2; + let leftSpace = 0; + let rightSpace = opts.width + eachSpacing; + if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) { + context.translate(opts._scrollDistance_, 0); + leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2; + rightNum = leftNum + opts.xAxis.itemCount + 4; + leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3]; + rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing; + } + //画均线 + if (candleOption.average.show || seriesMA) { //Merge pull request !12 from 邱贵翔 + seriesMA.forEach(function(eachSeries, seriesIndex) { + let ranges, minRange, maxRange; + ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]); + minRange = ranges.pop(); + maxRange = ranges.shift(); + var data = eachSeries.data; + var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + var splitPointList = splitPoints(points,eachSeries); + for (let i = 0; i < splitPointList.length; i++) { + let points = splitPointList[i]; + context.beginPath(); + context.setStrokeStyle(eachSeries.color); + context.setLineWidth(1); + if (points.length === 1) { + context.moveTo(points[0].x, points[0].y); + context.arc(points[0].x, points[0].y, 1, 0, 2 * Math.PI); + } else { + context.moveTo(points[0].x, points[0].y); + let startPoint = 0; + for (let j = 0; j < points.length; j++) { + let item = points[j]; + if (startPoint == 0 && item.x > leftSpace) { + context.moveTo(item.x, item.y); + startPoint = 1; + } + if (j > 0 && item.x > leftSpace && item.x < rightSpace) { + var ctrlPoint = createCurveControlPoints(points, j - 1); + context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x, + item.y); + } + } + context.moveTo(points[0].x, points[0].y); + } + context.closePath(); + context.stroke(); + } + }); + } + //画K线 + series.forEach(function(eachSeries, seriesIndex) { + let ranges, minRange, maxRange; + ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]); + minRange = ranges.pop(); + maxRange = ranges.shift(); + var data = eachSeries.data; + var points = getCandleDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + calPoints.push(points); + var splitPointList = splitPoints(points,eachSeries); + for (let i = 0; i < splitPointList[0].length; i++) { + if (i > leftNum && i < rightNum) { + let item = splitPointList[0][i]; + context.beginPath(); + //如果上涨 + if (data[i][1] - data[i][0] > 0) { + context.setStrokeStyle(candleOption.color.upLine); + context.setFillStyle(candleOption.color.upFill); + context.setLineWidth(1 * opts.pix); + context.moveTo(item[3].x, item[3].y); //顶点 + context.lineTo(item[1].x, item[1].y); //收盘中间点 + context.lineTo(item[1].x - eachSpacing / 4, item[1].y); //收盘左侧点 + context.lineTo(item[0].x - eachSpacing / 4, item[0].y); //开盘左侧点 + context.lineTo(item[0].x, item[0].y); //开盘中间点 + context.lineTo(item[2].x, item[2].y); //底点 + context.lineTo(item[0].x, item[0].y); //开盘中间点 + context.lineTo(item[0].x + eachSpacing / 4, item[0].y); //开盘右侧点 + context.lineTo(item[1].x + eachSpacing / 4, item[1].y); //收盘右侧点 + context.lineTo(item[1].x, item[1].y); //收盘中间点 + context.moveTo(item[3].x, item[3].y); //顶点 + } else { + context.setStrokeStyle(candleOption.color.downLine); + context.setFillStyle(candleOption.color.downFill); + context.setLineWidth(1 * opts.pix); + context.moveTo(item[3].x, item[3].y); //顶点 + context.lineTo(item[0].x, item[0].y); //开盘中间点 + context.lineTo(item[0].x - eachSpacing / 4, item[0].y); //开盘左侧点 + context.lineTo(item[1].x - eachSpacing / 4, item[1].y); //收盘左侧点 + context.lineTo(item[1].x, item[1].y); //收盘中间点 + context.lineTo(item[2].x, item[2].y); //底点 + context.lineTo(item[1].x, item[1].y); //收盘中间点 + context.lineTo(item[1].x + eachSpacing / 4, item[1].y); //收盘右侧点 + context.lineTo(item[0].x + eachSpacing / 4, item[0].y); //开盘右侧点 + context.lineTo(item[0].x, item[0].y); //开盘中间点 + context.moveTo(item[3].x, item[3].y); //顶点 + } + context.closePath(); + context.fill(); + context.stroke(); + } + } + }); + context.restore(); + return { + xAxisPoints: xAxisPoints, + calPoints: calPoints, + eachSpacing: eachSpacing + }; +} + +function drawAreaDataPoints(series, opts, config, context) { + var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + var areaOption = assign({}, { + type: 'straight', + opacity: 0.2, + addLine: false, + width: 2, + gradient: false, + activeType: 'none' + }, opts.extra.area); + let xAxisData = opts.chartData.xAxisData, + xAxisPoints = xAxisData.xAxisPoints, + eachSpacing = xAxisData.eachSpacing; + let endY = opts.height - opts.area[2]; + let calPoints = []; + context.save(); + let leftSpace = 0; + let rightSpace = opts.width + eachSpacing; + if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) { + context.translate(opts._scrollDistance_, 0); + leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3]; + rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing; + } + series.forEach(function(eachSeries, seriesIndex) { + let ranges, minRange, maxRange; + ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]); + minRange = ranges.pop(); + maxRange = ranges.shift(); + let data = eachSeries.data; + let points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + calPoints.push(points); + let splitPointList = splitPoints(points,eachSeries); + for (let i = 0; i < splitPointList.length; i++) { + let points = splitPointList[i]; + // 绘制区域数 + context.beginPath(); + context.setStrokeStyle(hexToRgb(eachSeries.color, areaOption.opacity)); + if (areaOption.gradient) { + let gradient = context.createLinearGradient(0, opts.area[0], 0, opts.height - opts.area[2]); + gradient.addColorStop('0', hexToRgb(eachSeries.color, areaOption.opacity)); + gradient.addColorStop('1.0', hexToRgb("#FFFFFF", 0.1)); + context.setFillStyle(gradient); + } else { + context.setFillStyle(hexToRgb(eachSeries.color, areaOption.opacity)); + } + context.setLineWidth(areaOption.width * opts.pix); + if (points.length > 1) { + let firstPoint = points[0]; + let lastPoint = points[points.length - 1]; + context.moveTo(firstPoint.x, firstPoint.y); + let startPoint = 0; + if (areaOption.type === 'curve') { + for (let j = 0; j < points.length; j++) { + let item = points[j]; + if (startPoint == 0 && item.x > leftSpace) { + context.moveTo(item.x, item.y); + startPoint = 1; + } + if (j > 0 && item.x > leftSpace && item.x < rightSpace) { + let ctrlPoint = createCurveControlPoints(points, j - 1); + context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x, item.y); + } + }; + } + if (areaOption.type === 'straight') { + for (let j = 0; j < points.length; j++) { + let item = points[j]; + if (startPoint == 0 && item.x > leftSpace) { + context.moveTo(item.x, item.y); + startPoint = 1; + } + if (j > 0 && item.x > leftSpace && item.x < rightSpace) { + context.lineTo(item.x, item.y); + } + }; + } + if (areaOption.type === 'step') { + for (let j = 0; j < points.length; j++) { + let item = points[j]; + if (startPoint == 0 && item.x > leftSpace) { + context.moveTo(item.x, item.y); + startPoint = 1; + } + if (j > 0 && item.x > leftSpace && item.x < rightSpace) { + context.lineTo(item.x, points[j - 1].y); + context.lineTo(item.x, item.y); + } + }; + } + context.lineTo(lastPoint.x, endY); + context.lineTo(firstPoint.x, endY); + context.lineTo(firstPoint.x, firstPoint.y); + } else { + let item = points[0]; + context.moveTo(item.x - eachSpacing / 2, item.y); + // context.lineTo(item.x + eachSpacing / 2, item.y); + // context.lineTo(item.x + eachSpacing / 2, endY); + // context.lineTo(item.x - eachSpacing / 2, endY); + // context.moveTo(item.x - eachSpacing / 2, item.y); + } + context.closePath(); + context.fill(); + //画连线 + if (areaOption.addLine) { + if (eachSeries.lineType == 'dash') { + let dashLength = eachSeries.dashLength ? eachSeries.dashLength : 8; + dashLength *= opts.pix; + context.setLineDash([dashLength, dashLength]); + } + context.beginPath(); + context.setStrokeStyle(eachSeries.color); + context.setLineWidth(areaOption.width * opts.pix); + if (points.length === 1) { + context.moveTo(points[0].x, points[0].y); + // context.arc(points[0].x, points[0].y, 1, 0, 2 * Math.PI); + } else { + context.moveTo(points[0].x, points[0].y); + let startPoint = 0; + if (areaOption.type === 'curve') { + for (let j = 0; j < points.length; j++) { + let item = points[j]; + if (startPoint == 0 && item.x > leftSpace) { + context.moveTo(item.x, item.y); + startPoint = 1; + } + if (j > 0 && item.x > leftSpace && item.x < rightSpace) { + let ctrlPoint = createCurveControlPoints(points, j - 1); + context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x, item.y); + } + }; + } + if (areaOption.type === 'straight') { + for (let j = 0; j < points.length; j++) { + let item = points[j]; + if (startPoint == 0 && item.x > leftSpace) { + context.moveTo(item.x, item.y); + startPoint = 1; + } + if (j > 0 && item.x > leftSpace && item.x < rightSpace) { + context.lineTo(item.x, item.y); + } + }; + } + if (areaOption.type === 'step') { + for (let j = 0; j < points.length; j++) { + let item = points[j]; + if (startPoint == 0 && item.x > leftSpace) { + context.moveTo(item.x, item.y); + startPoint = 1; + } + if (j > 0 && item.x > leftSpace && item.x < rightSpace) { + context.lineTo(item.x, points[j - 1].y); + context.lineTo(item.x, item.y); + } + }; + } + context.moveTo(points[0].x, points[0].y); + } + context.stroke(); + context.setLineDash([]); + } + } + //画点 + if (opts.dataPointShape !== false) { + drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts); + } + drawActivePoint(points, eachSeries.color, eachSeries.pointShape, context, opts, areaOption,seriesIndex); + }); + + if (opts.dataLabel !== false && process === 1) { + series.forEach(function(eachSeries, seriesIndex) { + let ranges, minRange, maxRange; + ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]); + minRange = ranges.pop(); + maxRange = ranges.shift(); + var data = eachSeries.data; + var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + drawPointText(points, eachSeries, config, context, opts); + }); + } + context.restore(); + return { + xAxisPoints: xAxisPoints, + calPoints: calPoints, + eachSpacing: eachSpacing + }; +} + +function drawScatterDataPoints(series, opts, config, context) { + var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + var scatterOption = assign({}, { + type: 'circle' + }, opts.extra.scatter); + let xAxisData = opts.chartData.xAxisData, + xAxisPoints = xAxisData.xAxisPoints, + eachSpacing = xAxisData.eachSpacing; + var calPoints = []; + context.save(); + let leftSpace = 0; + let rightSpace = opts.width + eachSpacing; + if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) { + context.translate(opts._scrollDistance_, 0); + leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3]; + rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing; + } + series.forEach(function(eachSeries, seriesIndex) { + let ranges, minRange, maxRange; + ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]); + minRange = ranges.pop(); + maxRange = ranges.shift(); + var data = eachSeries.data; + var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + context.beginPath(); + context.setStrokeStyle(eachSeries.color); + context.setFillStyle(eachSeries.color); + context.setLineWidth(1 * opts.pix); + var shape = eachSeries.pointShape; + if (shape === 'diamond') { + points.forEach(function(item, index) { + if (item !== null) { + context.moveTo(item.x, item.y - 4.5); + context.lineTo(item.x - 4.5, item.y); + context.lineTo(item.x, item.y + 4.5); + context.lineTo(item.x + 4.5, item.y); + context.lineTo(item.x, item.y - 4.5); + } + }); + } else if (shape === 'circle') { + points.forEach(function(item, index) { + if (item !== null) { + context.moveTo(item.x + 2.5 * opts.pix, item.y); + context.arc(item.x, item.y, 3 * opts.pix, 0, 2 * Math.PI, false); + } + }); + } else if (shape === 'square') { + points.forEach(function(item, index) { + if (item !== null) { + context.moveTo(item.x - 3.5, item.y - 3.5); + context.rect(item.x - 3.5, item.y - 3.5, 7, 7); + } + }); + } else if (shape === 'triangle') { + points.forEach(function(item, index) { + if (item !== null) { + context.moveTo(item.x, item.y - 4.5); + context.lineTo(item.x - 4.5, item.y + 4.5); + context.lineTo(item.x + 4.5, item.y + 4.5); + context.lineTo(item.x, item.y - 4.5); + } + }); + } else if (shape === 'triangle') { + return; + } + context.closePath(); + context.fill(); + context.stroke(); + }); + if (opts.dataLabel !== false && process === 1) { + series.forEach(function(eachSeries, seriesIndex) { + let ranges, minRange, maxRange; + ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]); + minRange = ranges.pop(); + maxRange = ranges.shift(); + var data = eachSeries.data; + var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + drawPointText(points, eachSeries, config, context, opts); + }); + } + context.restore(); + return { + xAxisPoints: xAxisPoints, + calPoints: calPoints, + eachSpacing: eachSpacing + }; +} + +function drawBubbleDataPoints(series, opts, config, context) { + var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + var bubbleOption = assign({}, { + opacity: 1, + border:2 + }, opts.extra.bubble); + let xAxisData = opts.chartData.xAxisData, + xAxisPoints = xAxisData.xAxisPoints, + eachSpacing = xAxisData.eachSpacing; + var calPoints = []; + context.save(); + let leftSpace = 0; + let rightSpace = opts.width + eachSpacing; + if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) { + context.translate(opts._scrollDistance_, 0); + leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3]; + rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing; + } + series.forEach(function(eachSeries, seriesIndex) { + let ranges, minRange, maxRange; + ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]); + minRange = ranges.pop(); + maxRange = ranges.shift(); + var data = eachSeries.data; + var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + context.beginPath(); + context.setStrokeStyle(eachSeries.color); + context.setLineWidth(bubbleOption.border * opts.pix); + context.setFillStyle(hexToRgb(eachSeries.color, bubbleOption.opacity)); + points.forEach(function(item, index) { + context.moveTo(item.x + item.r, item.y); + context.arc(item.x, item.y, item.r * opts.pix, 0, 2 * Math.PI, false); + }); + context.closePath(); + context.fill(); + context.stroke(); + + if (opts.dataLabel !== false && process === 1) { + points.forEach(function(item, index) { + context.beginPath(); + var fontSize = eachSeries.textSize * opts.pix || config.fontSize; + context.setFontSize(fontSize); + context.setFillStyle(eachSeries.textColor || "#FFFFFF"); + context.setTextAlign('center'); + context.fillText(String(item.t), item.x, item.y + fontSize/2); + context.closePath(); + context.stroke(); + context.setTextAlign('left'); + }); + } + }); + context.restore(); + return { + xAxisPoints: xAxisPoints, + calPoints: calPoints, + eachSpacing: eachSpacing + }; +} + +function drawLineDataPoints(series, opts, config, context) { + var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + var lineOption = assign({}, { + type: 'straight', + width: 2, + activeType: 'none', + linearType: 'none', + onShadow: false, + animation: 'vertical', + }, opts.extra.line); + lineOption.width *= opts.pix; + let xAxisData = opts.chartData.xAxisData, + xAxisPoints = xAxisData.xAxisPoints, + eachSpacing = xAxisData.eachSpacing; + var calPoints = []; + context.save(); + let leftSpace = 0; + let rightSpace = opts.width + eachSpacing; + if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) { + context.translate(opts._scrollDistance_, 0); + leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3]; + rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing; + } + series.forEach(function(eachSeries, seriesIndex) { + // 这段很神奇的代码用于解决ios16的setStrokeStyle失效的bug + context.beginPath(); + context.setStrokeStyle(eachSeries.color); + context.moveTo(-10000, -10000); + context.lineTo(-10001, -10001); + context.stroke(); + let ranges, minRange, maxRange; + ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]); + minRange = ranges.pop(); + maxRange = ranges.shift(); + var data = eachSeries.data; + var points = getLineDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, lineOption, process); + calPoints.push(points); + var splitPointList = splitPoints(points,eachSeries); + if (eachSeries.lineType == 'dash') { + let dashLength = eachSeries.dashLength ? eachSeries.dashLength : 8; + dashLength *= opts.pix; + context.setLineDash([dashLength, dashLength]); + } + context.beginPath(); + var strokeColor = eachSeries.color; + if (lineOption.linearType !== 'none' && eachSeries.linearColor && eachSeries.linearColor.length > 0) { + var grd = context.createLinearGradient(opts.chartData.xAxisData.startX, opts.height/2, opts.chartData.xAxisData.endX, opts.height/2); + for (var i = 0; i < eachSeries.linearColor.length; i++) { + grd.addColorStop(eachSeries.linearColor[i][0], hexToRgb(eachSeries.linearColor[i][1], 1)); + } + strokeColor = grd + } + context.setStrokeStyle(strokeColor); + if (lineOption.onShadow == true && eachSeries.setShadow && eachSeries.setShadow.length > 0) { + context.setShadow(eachSeries.setShadow[0], eachSeries.setShadow[1], eachSeries.setShadow[2], eachSeries.setShadow[3]); + }else{ + context.setShadow(0, 0, 0, 'rgba(0,0,0,0)'); + } + context.setLineWidth(lineOption.width); + splitPointList.forEach(function(points, index) { + if (points.length === 1) { + context.moveTo(points[0].x, points[0].y); + // context.arc(points[0].x, points[0].y, 1, 0, 2 * Math.PI); + } else { + context.moveTo(points[0].x, points[0].y); + let startPoint = 0; + if (lineOption.type === 'curve') { + for (let j = 0; j < points.length; j++) { + let item = points[j]; + if (startPoint == 0 && item.x > leftSpace) { + context.moveTo(item.x, item.y); + startPoint = 1; + } + if (j > 0 && item.x > leftSpace && item.x < rightSpace) { + var ctrlPoint = createCurveControlPoints(points, j - 1); + context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x, item.y); + } + }; + } + if (lineOption.type === 'straight') { + for (let j = 0; j < points.length; j++) { + let item = points[j]; + if (startPoint == 0 && item.x > leftSpace) { + context.moveTo(item.x, item.y); + startPoint = 1; + } + if (j > 0 && item.x > leftSpace && item.x < rightSpace) { + context.lineTo(item.x, item.y); + } + }; + } + if (lineOption.type === 'step') { + for (let j = 0; j < points.length; j++) { + let item = points[j]; + if (startPoint == 0 && item.x > leftSpace) { + context.moveTo(item.x, item.y); + startPoint = 1; + } + if (j > 0 && item.x > leftSpace && item.x < rightSpace) { + context.lineTo(item.x, points[j - 1].y); + context.lineTo(item.x, item.y); + } + }; + } + context.moveTo(points[0].x, points[0].y); + } + }); + context.stroke(); + context.setLineDash([]); + if (opts.dataPointShape !== false) { + drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts); + } + drawActivePoint(points, eachSeries.color, eachSeries.pointShape, context, opts, lineOption); + }); + if (opts.dataLabel !== false && process === 1) { + series.forEach(function(eachSeries, seriesIndex) { + let ranges, minRange, maxRange; + ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]); + minRange = ranges.pop(); + maxRange = ranges.shift(); + var data = eachSeries.data; + var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + drawPointText(points, eachSeries, config, context, opts); + }); + } + context.restore(); + return { + xAxisPoints: xAxisPoints, + calPoints: calPoints, + eachSpacing: eachSpacing + }; +} + +function drawMixDataPoints(series, opts, config, context) { + let process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + let xAxisData = opts.chartData.xAxisData, + xAxisPoints = xAxisData.xAxisPoints, + eachSpacing = xAxisData.eachSpacing; + let columnOption = assign({}, { + width: eachSpacing / 2, + barBorderCircle: false, + barBorderRadius: [], + seriesGap: 2, + linearType: 'none', + linearOpacity: 1, + customColor: [], + colorStop: 0, + }, opts.extra.mix.column); + let areaOption = assign({}, { + opacity: 0.2, + gradient: false + }, opts.extra.mix.area); + let lineOption = assign({}, { + width: 2 + }, opts.extra.mix.line); + let endY = opts.height - opts.area[2]; + let calPoints = []; + var columnIndex = 0; + var columnLength = 0; + series.forEach(function(eachSeries, seriesIndex) { + if (eachSeries.type == 'column') { + columnLength += 1; + } + }); + context.save(); + let leftNum = -2; + let rightNum = xAxisPoints.length + 2; + let leftSpace = 0; + let rightSpace = opts.width + eachSpacing; + if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) { + context.translate(opts._scrollDistance_, 0); + leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2; + rightNum = leftNum + opts.xAxis.itemCount + 4; + leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3]; + rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing; + } + columnOption.customColor = fillCustomColor(columnOption.linearType, columnOption.customColor, series, config); + series.forEach(function(eachSeries, seriesIndex) { + let ranges, minRange, maxRange; + ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]); + minRange = ranges.pop(); + maxRange = ranges.shift(); + var data = eachSeries.data; + var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + calPoints.push(points); + // 绘制柱状数据图 + if (eachSeries.type == 'column') { + points = fixColumeData(points, eachSpacing, columnLength, columnIndex, config, opts); + for (let i = 0; i < points.length; i++) { + let item = points[i]; + if (item !== null && i > leftNum && i < rightNum) { + var startX = item.x - item.width / 2; + var height = opts.height - item.y - opts.area[2]; + context.beginPath(); + var fillColor = item.color || eachSeries.color + var strokeColor = item.color || eachSeries.color + if (columnOption.linearType !== 'none') { + var grd = context.createLinearGradient(startX, item.y, startX, opts.height - opts.area[2]); + //透明渐变 + if (columnOption.linearType == 'opacity') { + grd.addColorStop(0, hexToRgb(fillColor, columnOption.linearOpacity)); + grd.addColorStop(1, hexToRgb(fillColor, 1)); + } else { + grd.addColorStop(0, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity)); + grd.addColorStop(columnOption.colorStop, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity)); + grd.addColorStop(1, hexToRgb(fillColor, 1)); + } + fillColor = grd + } + // 圆角边框 + if ((columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4) || columnOption.barBorderCircle) { + const left = startX; + const top = item.y; + const width = item.width; + const height = opts.height - opts.area[2] - item.y; + if (columnOption.barBorderCircle) { + columnOption.barBorderRadius = [width / 2, width / 2, 0, 0]; + } + let [r0, r1, r2, r3] = columnOption.barBorderRadius; + let minRadius = Math.min(width/2,height/2); + r0 = r0 > minRadius ? minRadius : r0; + r1 = r1 > minRadius ? minRadius : r1; + r2 = r2 > minRadius ? minRadius : r2; + r3 = r3 > minRadius ? minRadius : r3; + r0 = r0 < 0 ? 0 : r0; + r1 = r1 < 0 ? 0 : r1; + r2 = r2 < 0 ? 0 : r2; + r3 = r3 < 0 ? 0 : r3; + context.arc(left + r0, top + r0, r0, -Math.PI, -Math.PI / 2); + context.arc(left + width - r1, top + r1, r1, -Math.PI / 2, 0); + context.arc(left + width - r2, top + height - r2, r2, 0, Math.PI / 2); + context.arc(left + r3, top + height - r3, r3, Math.PI / 2, Math.PI); + } else { + context.moveTo(startX, item.y); + context.lineTo(startX + item.width, item.y); + context.lineTo(startX + item.width, opts.height - opts.area[2]); + context.lineTo(startX, opts.height - opts.area[2]); + context.lineTo(startX, item.y); + context.setLineWidth(1) + context.setStrokeStyle(strokeColor); + } + context.setFillStyle(fillColor); + context.closePath(); + context.fill(); + } + } + columnIndex += 1; + } + //绘制区域图数据 + if (eachSeries.type == 'area') { + let splitPointList = splitPoints(points,eachSeries); + for (let i = 0; i < splitPointList.length; i++) { + let points = splitPointList[i]; + // 绘制区域数据 + context.beginPath(); + context.setStrokeStyle(eachSeries.color); + context.setStrokeStyle(hexToRgb(eachSeries.color, areaOption.opacity)); + if (areaOption.gradient) { + let gradient = context.createLinearGradient(0, opts.area[0], 0, opts.height - opts.area[2]); + gradient.addColorStop('0', hexToRgb(eachSeries.color, areaOption.opacity)); + gradient.addColorStop('1.0', hexToRgb("#FFFFFF", 0.1)); + context.setFillStyle(gradient); + } else { + context.setFillStyle(hexToRgb(eachSeries.color, areaOption.opacity)); + } + context.setLineWidth(2 * opts.pix); + if (points.length > 1) { + var firstPoint = points[0]; + let lastPoint = points[points.length - 1]; + context.moveTo(firstPoint.x, firstPoint.y); + let startPoint = 0; + if (eachSeries.style === 'curve') { + for (let j = 0; j < points.length; j++) { + let item = points[j]; + if (startPoint == 0 && item.x > leftSpace) { + context.moveTo(item.x, item.y); + startPoint = 1; + } + if (j > 0 && item.x > leftSpace && item.x < rightSpace) { + var ctrlPoint = createCurveControlPoints(points, j - 1); + context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x, item.y); + } + }; + } else { + for (let j = 0; j < points.length; j++) { + let item = points[j]; + if (startPoint == 0 && item.x > leftSpace) { + context.moveTo(item.x, item.y); + startPoint = 1; + } + if (j > 0 && item.x > leftSpace && item.x < rightSpace) { + context.lineTo(item.x, item.y); + } + }; + } + context.lineTo(lastPoint.x, endY); + context.lineTo(firstPoint.x, endY); + context.lineTo(firstPoint.x, firstPoint.y); + } else { + let item = points[0]; + context.moveTo(item.x - eachSpacing / 2, item.y); + // context.lineTo(item.x + eachSpacing / 2, item.y); + // context.lineTo(item.x + eachSpacing / 2, endY); + // context.lineTo(item.x - eachSpacing / 2, endY); + // context.moveTo(item.x - eachSpacing / 2, item.y); + } + context.closePath(); + context.fill(); + } + } + // 绘制折线数据图 + if (eachSeries.type == 'line') { + var splitPointList = splitPoints(points,eachSeries); + splitPointList.forEach(function(points, index) { + if (eachSeries.lineType == 'dash') { + let dashLength = eachSeries.dashLength ? eachSeries.dashLength : 8; + dashLength *= opts.pix; + context.setLineDash([dashLength, dashLength]); + } + context.beginPath(); + context.setStrokeStyle(eachSeries.color); + context.setLineWidth(lineOption.width * opts.pix); + if (points.length === 1) { + context.moveTo(points[0].x, points[0].y); + // context.arc(points[0].x, points[0].y, 1, 0, 2 * Math.PI); + } else { + context.moveTo(points[0].x, points[0].y); + let startPoint = 0; + if (eachSeries.style == 'curve') { + for (let j = 0; j < points.length; j++) { + let item = points[j]; + if (startPoint == 0 && item.x > leftSpace) { + context.moveTo(item.x, item.y); + startPoint = 1; + } + if (j > 0 && item.x > leftSpace && item.x < rightSpace) { + var ctrlPoint = createCurveControlPoints(points, j - 1); + context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, + item.x, item.y); + } + } + } else { + for (let j = 0; j < points.length; j++) { + let item = points[j]; + if (startPoint == 0 && item.x > leftSpace) { + context.moveTo(item.x, item.y); + startPoint = 1; + } + if (j > 0 && item.x > leftSpace && item.x < rightSpace) { + context.lineTo(item.x, item.y); + } + } + } + context.moveTo(points[0].x, points[0].y); + } + context.stroke(); + context.setLineDash([]); + }); + } + // 绘制点数据图 + if (eachSeries.type == 'point') { + eachSeries.addPoint = true; + } + if (eachSeries.addPoint == true && eachSeries.type !== 'column') { + drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts); + } + }); + if (opts.dataLabel !== false && process === 1) { + var columnIndex = 0; + series.forEach(function(eachSeries, seriesIndex) { + let ranges, minRange, maxRange; + ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]); + minRange = ranges.pop(); + maxRange = ranges.shift(); + var data = eachSeries.data; + var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + if (eachSeries.type !== 'column') { + drawPointText(points, eachSeries, config, context, opts); + } else { + points = fixColumeData(points, eachSpacing, columnLength, columnIndex, config, opts); + drawPointText(points, eachSeries, config, context, opts); + columnIndex += 1; + } + }); + } + context.restore(); + return { + xAxisPoints: xAxisPoints, + calPoints: calPoints, + eachSpacing: eachSpacing, + } +} + + +function drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints) { + var toolTipOption = opts.extra.tooltip || {}; + if (toolTipOption.horizentalLine && opts.tooltip && process === 1 && (opts.type == 'line' || opts.type == 'area' || opts.type == 'column' || opts.type == 'mount' || opts.type == 'candle' || opts.type == 'mix')) { + drawToolTipHorizentalLine(opts, config, context, eachSpacing, xAxisPoints) + } + context.save(); + if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) { + context.translate(opts._scrollDistance_, 0); + } + if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) { + drawToolTip(opts.tooltip.textList, opts.tooltip.offset, opts, config, context, eachSpacing, xAxisPoints); + } + context.restore(); + +} + +function drawXAxis(categories, opts, config, context) { + + let xAxisData = opts.chartData.xAxisData, + xAxisPoints = xAxisData.xAxisPoints, + startX = xAxisData.startX, + endX = xAxisData.endX, + eachSpacing = xAxisData.eachSpacing; + var boundaryGap = 'center'; + if (opts.type == 'bar' || opts.type == 'line' || opts.type == 'area'|| opts.type == 'scatter' || opts.type == 'bubble') { + boundaryGap = opts.xAxis.boundaryGap; + } + var startY = opts.height - opts.area[2]; + var endY = opts.area[0]; + + //绘制滚动条 + if (opts.enableScroll && opts.xAxis.scrollShow) { + var scrollY = opts.height - opts.area[2] + config.xAxisHeight; + var scrollScreenWidth = endX - startX; + var scrollTotalWidth = eachSpacing * (xAxisPoints.length - 1); + if(opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1){ + if(opts.extra.mount.widthRatio>2) opts.extra.mount.widthRatio = 2 + scrollTotalWidth += (opts.extra.mount.widthRatio - 1)*eachSpacing; + } + var scrollWidth = scrollScreenWidth * scrollScreenWidth / scrollTotalWidth; + var scrollLeft = 0; + if (opts._scrollDistance_) { + scrollLeft = -opts._scrollDistance_ * (scrollScreenWidth) / scrollTotalWidth; + } + context.beginPath(); + context.setLineCap('round'); + context.setLineWidth(6 * opts.pix); + context.setStrokeStyle(opts.xAxis.scrollBackgroundColor || "#EFEBEF"); + context.moveTo(startX, scrollY); + context.lineTo(endX, scrollY); + context.stroke(); + context.closePath(); + context.beginPath(); + context.setLineCap('round'); + context.setLineWidth(6 * opts.pix); + context.setStrokeStyle(opts.xAxis.scrollColor || "#A6A6A6"); + context.moveTo(startX + scrollLeft, scrollY); + context.lineTo(startX + scrollLeft + scrollWidth, scrollY); + context.stroke(); + context.closePath(); + context.setLineCap('butt'); + } + context.save(); + if (opts._scrollDistance_ && opts._scrollDistance_ !== 0) { + context.translate(opts._scrollDistance_, 0); + } + //绘制X轴刻度线 + if (opts.xAxis.calibration === true) { + context.setStrokeStyle(opts.xAxis.gridColor || "#cccccc"); + context.setLineCap('butt'); + context.setLineWidth(1 * opts.pix); + xAxisPoints.forEach(function(item, index) { + if (index > 0) { + context.beginPath(); + context.moveTo(item - eachSpacing / 2, startY); + context.lineTo(item - eachSpacing / 2, startY + 3 * opts.pix); + context.closePath(); + context.stroke(); + } + }); + } + //绘制X轴网格 + if (opts.xAxis.disableGrid !== true) { + context.setStrokeStyle(opts.xAxis.gridColor || "#cccccc"); + context.setLineCap('butt'); + context.setLineWidth(1 * opts.pix); + if (opts.xAxis.gridType == 'dash') { + context.setLineDash([opts.xAxis.dashLength * opts.pix, opts.xAxis.dashLength * opts.pix]); + } + opts.xAxis.gridEval = opts.xAxis.gridEval || 1; + xAxisPoints.forEach(function(item, index) { + if (index % opts.xAxis.gridEval == 0) { + context.beginPath(); + context.moveTo(item, startY); + context.lineTo(item, endY); + context.stroke(); + } + }); + context.setLineDash([]); + } + //绘制X轴文案 + if (opts.xAxis.disabled !== true) { + // 对X轴列表做抽稀处理 + //默认全部显示X轴标签 + let maxXAxisListLength = categories.length; + //如果设置了X轴单屏数量 + if (opts.xAxis.labelCount) { + //如果设置X轴密度 + if (opts.xAxis.itemCount) { + maxXAxisListLength = Math.ceil(categories.length / opts.xAxis.itemCount * opts.xAxis.labelCount); + } else { + maxXAxisListLength = opts.xAxis.labelCount; + } + maxXAxisListLength -= 1; + } + + let ratio = Math.ceil(categories.length / maxXAxisListLength); + + let newCategories = []; + let cgLength = categories.length; + for (let i = 0; i < cgLength; i++) { + if (i % ratio !== 0) { + newCategories.push(""); + } else { + newCategories.push(categories[i]); + } + } + newCategories[cgLength - 1] = categories[cgLength - 1]; + var xAxisFontSize = opts.xAxis.fontSize * opts.pix || config.fontSize; + if (config._xAxisTextAngle_ === 0) { + newCategories.forEach(function(item, index) { + var xitem = opts.xAxis.formatter ? opts.xAxis.formatter(item,index,opts) : item; + var offset = -measureText(String(xitem), xAxisFontSize, context) / 2; + if (boundaryGap == 'center') { + offset += eachSpacing / 2; + } + var scrollHeight = 0; + if (opts.xAxis.scrollShow) { + scrollHeight = 6 * opts.pix; + } + // 如果在主视图区域内 + var _scrollDistance_ = opts._scrollDistance_ || 0; + var truePoints = boundaryGap == 'center' ? xAxisPoints[index] + eachSpacing / 2 : xAxisPoints[index]; + if((truePoints - Math.abs(_scrollDistance_)) >= (opts.area[3] - 1) && (truePoints - Math.abs(_scrollDistance_)) <= (opts.width - opts.area[1] + 1)){ + context.beginPath(); + context.setFontSize(xAxisFontSize); + context.setFillStyle(opts.xAxis.fontColor || opts.fontColor); + context.fillText(String(xitem), xAxisPoints[index] + offset, startY + opts.xAxis.marginTop * opts.pix + (opts.xAxis.lineHeight - opts.xAxis.fontSize) * opts.pix / 2 + opts.xAxis.fontSize * opts.pix); + context.closePath(); + context.stroke(); + } + }); + } else { + newCategories.forEach(function(item, index) { + var xitem = opts.xAxis.formatter ? opts.xAxis.formatter(item) : item; + // 如果在主视图区域内 + var _scrollDistance_ = opts._scrollDistance_ || 0; + var truePoints = boundaryGap == 'center' ? xAxisPoints[index] + eachSpacing / 2 : xAxisPoints[index]; + if((truePoints - Math.abs(_scrollDistance_)) >= (opts.area[3] - 1) && (truePoints - Math.abs(_scrollDistance_)) <= (opts.width - opts.area[1] + 1)){ + context.save(); + context.beginPath(); + context.setFontSize(xAxisFontSize); + context.setFillStyle(opts.xAxis.fontColor || opts.fontColor); + var textWidth = measureText(String(xitem), xAxisFontSize, context); + var offsetX = xAxisPoints[index]; + if (boundaryGap == 'center') { + offsetX = xAxisPoints[index] + eachSpacing / 2; + } + var scrollHeight = 0; + if (opts.xAxis.scrollShow) { + scrollHeight = 6 * opts.pix; + } + var offsetY = startY + opts.xAxis.marginTop * opts.pix + xAxisFontSize - xAxisFontSize * Math.abs(Math.sin(config._xAxisTextAngle_)); + if(opts.xAxis.rotateAngle < 0){ + offsetX -= xAxisFontSize / 2; + textWidth = 0; + }else{ + offsetX += xAxisFontSize / 2; + textWidth = -textWidth; + } + context.translate(offsetX, offsetY); + context.rotate(-1 * config._xAxisTextAngle_); + context.fillText(String(xitem), textWidth , 0 ); + context.closePath(); + context.stroke(); + context.restore(); + } + }); + } + } + context.restore(); + + //画X轴标题 + if (opts.xAxis.title) { + context.beginPath(); + context.setFontSize(opts.xAxis.titleFontSize * opts.pix); + context.setFillStyle(opts.xAxis.titleFontColor); + context.fillText(String(opts.xAxis.title), opts.width - opts.area[1] + opts.xAxis.titleOffsetX * opts.pix,opts.height - opts.area[2] + opts.xAxis.marginTop * opts.pix + (opts.xAxis.lineHeight - opts.xAxis.titleFontSize) * opts.pix / 2 + (opts.xAxis.titleFontSize + opts.xAxis.titleOffsetY) * opts.pix); + context.closePath(); + context.stroke(); + } + + //绘制X轴轴线 + if (opts.xAxis.axisLine) { + context.beginPath(); + context.setStrokeStyle(opts.xAxis.axisLineColor); + context.setLineWidth(1 * opts.pix); + context.moveTo(startX, opts.height - opts.area[2]); + context.lineTo(endX, opts.height - opts.area[2]); + context.stroke(); + } +} + +function drawYAxisGrid(categories, opts, config, context) { + if (opts.yAxis.disableGrid === true) { + return; + } + let spacingValid = opts.height - opts.area[0] - opts.area[2]; + let eachSpacing = spacingValid / opts.yAxis.splitNumber; + let startX = opts.area[3]; + let xAxisPoints = opts.chartData.xAxisData.xAxisPoints, + xAxiseachSpacing = opts.chartData.xAxisData.eachSpacing; + let TotalWidth = xAxiseachSpacing * (xAxisPoints.length - 1); + if(opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1 ){ + if(opts.extra.mount.widthRatio>2) opts.extra.mount.widthRatio = 2 + TotalWidth += (opts.extra.mount.widthRatio - 1) * xAxiseachSpacing; + } + let endX = startX + TotalWidth; + let points = []; + let startY = 1 + if (opts.xAxis.axisLine === false) { + startY = 0 + } + for (let i = startY; i < opts.yAxis.splitNumber + 1; i++) { + points.push(opts.height - opts.area[2] - eachSpacing * i); + } + context.save(); + if (opts._scrollDistance_ && opts._scrollDistance_ !== 0) { + context.translate(opts._scrollDistance_, 0); + } + if (opts.yAxis.gridType == 'dash') { + context.setLineDash([opts.yAxis.dashLength * opts.pix, opts.yAxis.dashLength * opts.pix]); + } + context.setStrokeStyle(opts.yAxis.gridColor); + context.setLineWidth(1 * opts.pix); + points.forEach(function(item, index) { + context.beginPath(); + context.moveTo(startX, item); + context.lineTo(endX, item); + context.stroke(); + }); + context.setLineDash([]); + context.restore(); +} + +function drawYAxis(series, opts, config, context) { + if (opts.yAxis.disabled === true) { + return; + } + var spacingValid = opts.height - opts.area[0] - opts.area[2]; + var eachSpacing = spacingValid / opts.yAxis.splitNumber; + var startX = opts.area[3]; + var endX = opts.width - opts.area[1]; + var endY = opts.height - opts.area[2]; + // set YAxis background + context.beginPath(); + context.setFillStyle(opts.background); + if (opts.enableScroll == true && opts.xAxis.scrollPosition && opts.xAxis.scrollPosition !== 'left') { + context.fillRect(0, 0, startX, endY + 2 * opts.pix); + } + if (opts.enableScroll == true && opts.xAxis.scrollPosition && opts.xAxis.scrollPosition !== 'right') { + context.fillRect(endX, 0, opts.width, endY + 2 * opts.pix); + } + context.closePath(); + context.stroke(); + + let tStartLeft = opts.area[3]; + let tStartRight = opts.width - opts.area[1]; + let tStartCenter = opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2; + if (opts.yAxis.data) { + for (let i = 0; i < opts.yAxis.data.length; i++) { + let yData = opts.yAxis.data[i]; + var points = []; + if(yData.type === 'categories'){ + for (let i = 0; i <= yData.categories.length; i++) { + points.push(opts.area[0] + spacingValid / yData.categories.length / 2 + spacingValid / yData.categories.length * i); + } + }else{ + for (let i = 0; i <= opts.yAxis.splitNumber; i++) { + points.push(opts.area[0] + eachSpacing * i); + } + } + if (yData.disabled !== true) { + let rangesFormat = opts.chartData.yAxisData.rangesFormat[i]; + let yAxisFontSize = yData.fontSize ? yData.fontSize * opts.pix : config.fontSize; + let yAxisWidth = opts.chartData.yAxisData.yAxisWidth[i]; + let textAlign = yData.textAlign || "right"; + //画Y轴刻度及文案 + rangesFormat.forEach(function(item, index) { + var pos = points[index]; + context.beginPath(); + context.setFontSize(yAxisFontSize); + context.setLineWidth(1 * opts.pix); + context.setStrokeStyle(yData.axisLineColor || '#cccccc'); + context.setFillStyle(yData.fontColor || opts.fontColor); + let tmpstrat = 0; + let gapwidth = 4 * opts.pix; + if (yAxisWidth.position == 'left') { + //画刻度线 + if (yData.calibration == true) { + context.moveTo(tStartLeft, pos); + context.lineTo(tStartLeft - 3 * opts.pix, pos); + gapwidth += 3 * opts.pix; + } + //画文字 + switch (textAlign) { + case "left": + context.setTextAlign('left'); + tmpstrat = tStartLeft - yAxisWidth.width + break; + case "right": + context.setTextAlign('right'); + tmpstrat = tStartLeft - gapwidth + break; + default: + context.setTextAlign('center'); + tmpstrat = tStartLeft - yAxisWidth.width / 2 + } + context.fillText(String(item), tmpstrat, pos + yAxisFontSize / 2 - 3 * opts.pix); + + } else if (yAxisWidth.position == 'right') { + //画刻度线 + if (yData.calibration == true) { + context.moveTo(tStartRight, pos); + context.lineTo(tStartRight + 3 * opts.pix, pos); + gapwidth += 3 * opts.pix; + } + switch (textAlign) { + case "left": + context.setTextAlign('left'); + tmpstrat = tStartRight + gapwidth + break; + case "right": + context.setTextAlign('right'); + tmpstrat = tStartRight + yAxisWidth.width + break; + default: + context.setTextAlign('center'); + tmpstrat = tStartRight + yAxisWidth.width / 2 + } + context.fillText(String(item), tmpstrat, pos + yAxisFontSize / 2 - 3 * opts.pix); + } else if (yAxisWidth.position == 'center') { + //画刻度线 + if (yData.calibration == true) { + context.moveTo(tStartCenter, pos); + context.lineTo(tStartCenter - 3 * opts.pix, pos); + gapwidth += 3 * opts.pix; + } + //画文字 + switch (textAlign) { + case "left": + context.setTextAlign('left'); + tmpstrat = tStartCenter - yAxisWidth.width + break; + case "right": + context.setTextAlign('right'); + tmpstrat = tStartCenter - gapwidth + break; + default: + context.setTextAlign('center'); + tmpstrat = tStartCenter - yAxisWidth.width / 2 + } + context.fillText(String(item), tmpstrat, pos + yAxisFontSize / 2 - 3 * opts.pix); + } + context.closePath(); + context.stroke(); + context.setTextAlign('left'); + }); + //画Y轴轴线 + if (yData.axisLine !== false) { + context.beginPath(); + context.setStrokeStyle(yData.axisLineColor || '#cccccc'); + context.setLineWidth(1 * opts.pix); + if (yAxisWidth.position == 'left') { + context.moveTo(tStartLeft, opts.height - opts.area[2]); + context.lineTo(tStartLeft, opts.area[0]); + } else if (yAxisWidth.position == 'right') { + context.moveTo(tStartRight, opts.height - opts.area[2]); + context.lineTo(tStartRight, opts.area[0]); + } else if (yAxisWidth.position == 'center') { + context.moveTo(tStartCenter, opts.height - opts.area[2]); + context.lineTo(tStartCenter, opts.area[0]); + } + context.stroke(); + } + //画Y轴标题 + if (opts.yAxis.showTitle) { + let titleFontSize = yData.titleFontSize * opts.pix || config.fontSize; + let title = yData.title; + context.beginPath(); + context.setFontSize(titleFontSize); + context.setFillStyle(yData.titleFontColor || opts.fontColor); + if (yAxisWidth.position == 'left') { + context.fillText(title, tStartLeft - measureText(title, titleFontSize, context) / 2 + (yData.titleOffsetX || 0), opts.area[0] - (10 - (yData.titleOffsetY || 0)) * opts.pix); + } else if (yAxisWidth.position == 'right') { + context.fillText(title, tStartRight - measureText(title, titleFontSize, context) / 2 + (yData.titleOffsetX || 0), opts.area[0] - (10 - (yData.titleOffsetY || 0)) * opts.pix); + } else if (yAxisWidth.position == 'center') { + context.fillText(title, tStartCenter - measureText(title, titleFontSize, context) / 2 + (yData.titleOffsetX || 0), opts.area[0] - (10 - (yData.titleOffsetY || 0)) * opts.pix); + } + context.closePath(); + context.stroke(); + } + if (yAxisWidth.position == 'left') { + tStartLeft -= (yAxisWidth.width + opts.yAxis.padding * opts.pix); + } else { + tStartRight += yAxisWidth.width + opts.yAxis.padding * opts.pix; + } + } + } + } + +} + +function drawLegend(series, opts, config, context, chartData) { + if (opts.legend.show === false) { + return; + } + let legendData = chartData.legendData; + let legendList = legendData.points; + let legendArea = legendData.area; + let padding = opts.legend.padding * opts.pix; + let fontSize = opts.legend.fontSize * opts.pix; + let shapeWidth = 15 * opts.pix; + let shapeRight = 5 * opts.pix; + let itemGap = opts.legend.itemGap * opts.pix; + let lineHeight = Math.max(opts.legend.lineHeight * opts.pix, fontSize); + //画背景及边框 + context.beginPath(); + context.setLineWidth(opts.legend.borderWidth * opts.pix); + context.setStrokeStyle(opts.legend.borderColor); + context.setFillStyle(opts.legend.backgroundColor); + context.moveTo(legendArea.start.x, legendArea.start.y); + context.rect(legendArea.start.x, legendArea.start.y, legendArea.width, legendArea.height); + context.closePath(); + context.fill(); + context.stroke(); + legendList.forEach(function(itemList, listIndex) { + let width = 0; + let height = 0; + width = legendData.widthArr[listIndex]; + height = legendData.heightArr[listIndex]; + let startX = 0; + let startY = 0; + if (opts.legend.position == 'top' || opts.legend.position == 'bottom') { + switch (opts.legend.float) { + case 'left': + startX = legendArea.start.x + padding; + break; + case 'right': + startX = legendArea.start.x + legendArea.width - width; + break; + default: + startX = legendArea.start.x + (legendArea.width - width) / 2; + } + startY = legendArea.start.y + padding + listIndex * lineHeight; + } else { + if (listIndex == 0) { + width = 0; + } else { + width = legendData.widthArr[listIndex - 1]; + } + startX = legendArea.start.x + padding + width; + startY = legendArea.start.y + padding + (legendArea.height - height) / 2; + } + context.setFontSize(config.fontSize); + for (let i = 0; i < itemList.length; i++) { + let item = itemList[i]; + item.area = [0, 0, 0, 0]; + item.area[0] = startX; + item.area[1] = startY; + item.area[3] = startY + lineHeight; + context.beginPath(); + context.setLineWidth(1 * opts.pix); + context.setStrokeStyle(item.show ? item.color : opts.legend.hiddenColor); + context.setFillStyle(item.show ? item.color : opts.legend.hiddenColor); + switch (item.legendShape) { + case 'line': + context.moveTo(startX, startY + 0.5 * lineHeight - 2 * opts.pix); + context.fillRect(startX, startY + 0.5 * lineHeight - 2 * opts.pix, 15 * opts.pix, 4 * opts.pix); + break; + case 'triangle': + context.moveTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix); + context.lineTo(startX + 2.5 * opts.pix, startY + 0.5 * lineHeight + 5 * opts.pix); + context.lineTo(startX + 12.5 * opts.pix, startY + 0.5 * lineHeight + 5 * opts.pix); + context.lineTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix); + break; + case 'diamond': + context.moveTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix); + context.lineTo(startX + 2.5 * opts.pix, startY + 0.5 * lineHeight); + context.lineTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight + 5 * opts.pix); + context.lineTo(startX + 12.5 * opts.pix, startY + 0.5 * lineHeight); + context.lineTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix); + break; + case 'circle': + context.moveTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight); + context.arc(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight, 5 * opts.pix, 0, 2 * Math.PI); + break; + case 'rect': + context.moveTo(startX, startY + 0.5 * lineHeight - 5 * opts.pix); + context.fillRect(startX, startY + 0.5 * lineHeight - 5 * opts.pix, 15 * opts.pix, 10 * opts.pix); + break; + case 'square': + context.moveTo(startX + 5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix); + context.fillRect(startX + 5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix, 10 * opts.pix, 10 * opts.pix); + break; + case 'none': + break; + default: + context.moveTo(startX, startY + 0.5 * lineHeight - 5 * opts.pix); + context.fillRect(startX, startY + 0.5 * lineHeight - 5 * opts.pix, 15 * opts.pix, 10 * opts.pix); + } + context.closePath(); + context.fill(); + context.stroke(); + startX += shapeWidth + shapeRight; + let fontTrans = 0.5 * lineHeight + 0.5 * fontSize - 2; + const legendText = item.legendText ? item.legendText : item.name; + context.beginPath(); + context.setFontSize(fontSize); + context.setFillStyle(item.show ? opts.legend.fontColor : opts.legend.hiddenColor); + context.fillText(legendText, startX, startY + fontTrans); + context.closePath(); + context.stroke(); + if (opts.legend.position == 'top' || opts.legend.position == 'bottom') { + startX += measureText(legendText, fontSize, context) + itemGap; + item.area[2] = startX; + } else { + item.area[2] = startX + measureText(legendText, fontSize, context) + itemGap;; + startX -= shapeWidth + shapeRight; + startY += lineHeight; + } + } + }); +} + +function drawPieDataPoints(series, opts, config, context) { + var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + var pieOption = assign({}, { + activeOpacity: 0.5, + activeRadius: 10, + offsetAngle: 0, + labelWidth: 15, + ringWidth: 30, + customRadius: 0, + border: false, + borderWidth: 2, + borderColor: '#FFFFFF', + centerColor: '#FFFFFF', + linearType: 'none', + customColor: [], + }, opts.type == "pie" ? opts.extra.pie : opts.extra.ring); + var centerPosition = { + x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2, + y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2 + }; + if (config.pieChartLinePadding == 0) { + config.pieChartLinePadding = pieOption.activeRadius * opts.pix; + } + + var radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding - config._pieTextMaxLength_, (opts.height - opts.area[0] - opts.area[2]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding); + radius = radius < 10 ? 10 : radius; + if (pieOption.customRadius > 0) { + radius = pieOption.customRadius * opts.pix; + } + series = getPieDataPoints(series, radius, process); + var activeRadius = pieOption.activeRadius * opts.pix; + pieOption.customColor = fillCustomColor(pieOption.linearType, pieOption.customColor, series, config); + series = series.map(function(eachSeries) { + eachSeries._start_ += (pieOption.offsetAngle) * Math.PI / 180; + return eachSeries; + }); + series.forEach(function(eachSeries, seriesIndex) { + if (opts.tooltip) { + if (opts.tooltip.index == seriesIndex) { + context.beginPath(); + context.setFillStyle(hexToRgb(eachSeries.color, pieOption.activeOpacity || 0.5)); + context.moveTo(centerPosition.x, centerPosition.y); + context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_ + activeRadius, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._proportion_ * Math.PI); + context.closePath(); + context.fill(); + } + } + context.beginPath(); + context.setLineWidth(pieOption.borderWidth * opts.pix); + context.lineJoin = "round"; + context.setStrokeStyle(pieOption.borderColor); + var fillcolor = eachSeries.color; + if (pieOption.linearType == 'custom') { + var grd; + if(context.createCircularGradient){ + grd = context.createCircularGradient(centerPosition.x, centerPosition.y, eachSeries._radius_) + }else{ + grd = context.createRadialGradient(centerPosition.x, centerPosition.y, 0,centerPosition.x, centerPosition.y, eachSeries._radius_) + } + grd.addColorStop(0, hexToRgb(pieOption.customColor[eachSeries.linearIndex], 1)) + grd.addColorStop(1, hexToRgb(eachSeries.color, 1)) + fillcolor = grd + } + context.setFillStyle(fillcolor); + context.moveTo(centerPosition.x, centerPosition.y); + context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._proportion_ * Math.PI); + context.closePath(); + context.fill(); + if (pieOption.border == true) { + context.stroke(); + } + }); + if (opts.type === 'ring') { + var innerPieWidth = radius * 0.6; + if (typeof pieOption.ringWidth === 'number' && pieOption.ringWidth > 0) { + innerPieWidth = Math.max(0, radius - pieOption.ringWidth * opts.pix); + } + context.beginPath(); + context.setFillStyle(pieOption.centerColor); + context.moveTo(centerPosition.x, centerPosition.y); + context.arc(centerPosition.x, centerPosition.y, innerPieWidth, 0, 2 * Math.PI); + context.closePath(); + context.fill(); + } + if (opts.dataLabel !== false && process === 1) { + drawPieText(series, opts, config, context, radius, centerPosition); + } + if (process === 1 && opts.type === 'ring') { + drawRingTitle(opts, config, context, centerPosition); + } + return { + center: centerPosition, + radius: radius, + series: series + }; +} + +function drawRoseDataPoints(series, opts, config, context) { + var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + var roseOption = assign({}, { + type: 'area', + activeOpacity: 0.5, + activeRadius: 10, + offsetAngle: 0, + labelWidth: 15, + border: false, + borderWidth: 2, + borderColor: '#FFFFFF', + linearType: 'none', + customColor: [], + }, opts.extra.rose); + if (config.pieChartLinePadding == 0) { + config.pieChartLinePadding = roseOption.activeRadius * opts.pix; + } + var centerPosition = { + x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2, + y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2 + }; + var radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding - config._pieTextMaxLength_, (opts.height - opts.area[0] - opts.area[2]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding); + radius = radius < 10 ? 10 : radius; + var minRadius = roseOption.minRadius || radius * 0.5; + if(radius < minRadius){ + radius = minRadius + 10; + } + series = getRoseDataPoints(series, roseOption.type, minRadius, radius, process); + var activeRadius = roseOption.activeRadius * opts.pix; + roseOption.customColor = fillCustomColor(roseOption.linearType, roseOption.customColor, series, config); + series = series.map(function(eachSeries) { + eachSeries._start_ += (roseOption.offsetAngle || 0) * Math.PI / 180; + return eachSeries; + }); + series.forEach(function(eachSeries, seriesIndex) { + if (opts.tooltip) { + if (opts.tooltip.index == seriesIndex) { + context.beginPath(); + context.setFillStyle(hexToRgb(eachSeries.color, roseOption.activeOpacity || 0.5)); + context.moveTo(centerPosition.x, centerPosition.y); + context.arc(centerPosition.x, centerPosition.y, activeRadius + eachSeries._radius_, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._rose_proportion_ * Math.PI); + context.closePath(); + context.fill(); + } + } + context.beginPath(); + context.setLineWidth(roseOption.borderWidth * opts.pix); + context.lineJoin = "round"; + context.setStrokeStyle(roseOption.borderColor); + var fillcolor = eachSeries.color; + if (roseOption.linearType == 'custom') { + var grd; + if(context.createCircularGradient){ + grd = context.createCircularGradient(centerPosition.x, centerPosition.y, eachSeries._radius_) + }else{ + grd = context.createRadialGradient(centerPosition.x, centerPosition.y, 0,centerPosition.x, centerPosition.y, eachSeries._radius_) + } + grd.addColorStop(0, hexToRgb(roseOption.customColor[eachSeries.linearIndex], 1)) + grd.addColorStop(1, hexToRgb(eachSeries.color, 1)) + fillcolor = grd + } + context.setFillStyle(fillcolor); + context.moveTo(centerPosition.x, centerPosition.y); + context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._rose_proportion_ * Math.PI); + context.closePath(); + context.fill(); + if (roseOption.border == true) { + context.stroke(); + } + }); + + if (opts.dataLabel !== false && process === 1) { + drawPieText(series, opts, config, context, radius, centerPosition); + } + return { + center: centerPosition, + radius: radius, + series: series + }; +} + +function drawArcbarDataPoints(series, opts, config, context) { + var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + var arcbarOption = assign({}, { + startAngle: 0.75, + endAngle: 0.25, + type: 'default', + direction: 'cw', + lineCap: 'round', + width: 12 , + gap: 2 , + linearType: 'none', + customColor: [], + }, opts.extra.arcbar); + series = getArcbarDataPoints(series, arcbarOption, process); + var centerPosition; + if (arcbarOption.centerX || arcbarOption.centerY) { + centerPosition = { + x: arcbarOption.centerX ? arcbarOption.centerX : opts.width / 2, + y: arcbarOption.centerY ? arcbarOption.centerY : opts.height / 2 + }; + } else { + centerPosition = { + x: opts.width / 2, + y: opts.height / 2 + }; + } + var radius; + if (arcbarOption.radius) { + radius = arcbarOption.radius; + } else { + radius = Math.min(centerPosition.x, centerPosition.y); + radius -= 5 * opts.pix; + radius -= arcbarOption.width / 2; + } + radius = radius < 10 ? 10 : radius; + arcbarOption.customColor = fillCustomColor(arcbarOption.linearType, arcbarOption.customColor, series, config); + + for (let i = 0; i < series.length; i++) { + let eachSeries = series[i]; + //背景颜色 + context.setLineWidth(arcbarOption.width * opts.pix); + context.setStrokeStyle(arcbarOption.backgroundColor || '#E9E9E9'); + context.setLineCap(arcbarOption.lineCap); + context.beginPath(); + if (arcbarOption.type == 'default') { + context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, arcbarOption.startAngle * Math.PI, arcbarOption.endAngle * Math.PI, arcbarOption.direction == 'ccw'); + } else { + context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, 0, 2 * Math.PI, arcbarOption.direction == 'ccw'); + } + context.stroke(); + //进度条 + var fillColor = eachSeries.color + if(arcbarOption.linearType == 'custom'){ + var grd = context.createLinearGradient(centerPosition.x - radius, centerPosition.y, centerPosition.x + radius, centerPosition.y); + grd.addColorStop(1, hexToRgb(arcbarOption.customColor[eachSeries.linearIndex], 1)) + grd.addColorStop(0, hexToRgb(eachSeries.color, 1)) + fillColor = grd; + } + context.setLineWidth(arcbarOption.width * opts.pix); + context.setStrokeStyle(fillColor); + context.setLineCap(arcbarOption.lineCap); + context.beginPath(); + context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, arcbarOption.startAngle * Math.PI, eachSeries._proportion_ * Math.PI, arcbarOption.direction == 'ccw'); + context.stroke(); + } + drawRingTitle(opts, config, context, centerPosition); + return { + center: centerPosition, + radius: radius, + series: series + }; +} + +function drawGaugeDataPoints(categories, series, opts, config, context) { + var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1; + var gaugeOption = assign({}, { + type: 'default', + startAngle: 0.75, + endAngle: 0.25, + width: 15, + labelOffset:13, + splitLine: { + fixRadius: 0, + splitNumber: 10, + width: 15, + color: '#FFFFFF', + childNumber: 5, + childWidth: 5 + }, + pointer: { + width: 15, + color: 'auto' + } + }, opts.extra.gauge); + if (gaugeOption.oldAngle == undefined) { + gaugeOption.oldAngle = gaugeOption.startAngle; + } + if (gaugeOption.oldData == undefined) { + gaugeOption.oldData = 0; + } + categories = getGaugeAxisPoints(categories, gaugeOption.startAngle, gaugeOption.endAngle); + var centerPosition = { + x: opts.width / 2, + y: opts.height / 2 + }; + var radius = Math.min(centerPosition.x, centerPosition.y); + radius -= 5 * opts.pix; + radius -= gaugeOption.width / 2; + radius = radius < 10 ? 10 : radius; + var innerRadius = radius - gaugeOption.width; + var totalAngle = 0; + //判断仪表盘的样式:default百度样式,progress新样式 + if (gaugeOption.type == 'progress') { + //## 第一步画中心圆形背景和进度条背景 + //中心圆形背景 + var pieRadius = radius - gaugeOption.width * 3; + context.beginPath(); + let gradient = context.createLinearGradient(centerPosition.x, centerPosition.y - pieRadius, centerPosition.x, centerPosition.y + pieRadius); + //配置渐变填充(起点:中心点向上减半径;结束点中心点向下加半径) + gradient.addColorStop('0', hexToRgb(series[0].color, 0.3)); + gradient.addColorStop('1.0', hexToRgb("#FFFFFF", 0.1)); + context.setFillStyle(gradient); + context.arc(centerPosition.x, centerPosition.y, pieRadius, 0, 2 * Math.PI, false); + context.fill(); + //画进度条背景 + context.setLineWidth(gaugeOption.width); + context.setStrokeStyle(hexToRgb(series[0].color, 0.3)); + context.setLineCap('round'); + context.beginPath(); + context.arc(centerPosition.x, centerPosition.y, innerRadius, gaugeOption.startAngle * Math.PI, gaugeOption.endAngle * Math.PI, false); + context.stroke(); + //## 第二步画刻度线 + if (gaugeOption.endAngle < gaugeOption.startAngle) { + totalAngle = 2 + gaugeOption.endAngle - gaugeOption.startAngle; + } else { + totalAngle = gaugeOption.startAngle - gaugeOption.endAngle; + } + let splitAngle = totalAngle / gaugeOption.splitLine.splitNumber; + let childAngle = totalAngle / gaugeOption.splitLine.splitNumber / gaugeOption.splitLine.childNumber; + let startX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius; + let endX = -radius - gaugeOption.width - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.width; + context.save(); + context.translate(centerPosition.x, centerPosition.y); + context.rotate((gaugeOption.startAngle - 1) * Math.PI); + let len = gaugeOption.splitLine.splitNumber * gaugeOption.splitLine.childNumber + 1; + let proc = series[0].data * process; + for (let i = 0; i < len; i++) { + context.beginPath(); + //刻度线随进度变色 + if (proc > (i / len)) { + context.setStrokeStyle(hexToRgb(series[0].color, 1)); + } else { + context.setStrokeStyle(hexToRgb(series[0].color, 0.3)); + } + context.setLineWidth(3 * opts.pix); + context.moveTo(startX, 0); + context.lineTo(endX, 0); + context.stroke(); + context.rotate(childAngle * Math.PI); + } + context.restore(); + //## 第三步画进度条 + series = getGaugeArcbarDataPoints(series, gaugeOption, process); + context.setLineWidth(gaugeOption.width); + context.setStrokeStyle(series[0].color); + context.setLineCap('round'); + context.beginPath(); + context.arc(centerPosition.x, centerPosition.y, innerRadius, gaugeOption.startAngle * Math.PI, series[0]._proportion_ * Math.PI, false); + context.stroke(); + //## 第四步画指针 + let pointerRadius = radius - gaugeOption.width * 2.5; + context.save(); + context.translate(centerPosition.x, centerPosition.y); + context.rotate((series[0]._proportion_ - 1) * Math.PI); + context.beginPath(); + context.setLineWidth(gaugeOption.width / 3); + let gradient3 = context.createLinearGradient(0, -pointerRadius * 0.6, 0, pointerRadius * 0.6); + gradient3.addColorStop('0', hexToRgb('#FFFFFF', 0)); + gradient3.addColorStop('0.5', hexToRgb(series[0].color, 1)); + gradient3.addColorStop('1.0', hexToRgb('#FFFFFF', 0)); + context.setStrokeStyle(gradient3); + context.arc(0, 0, pointerRadius, 0.85 * Math.PI, 1.15 * Math.PI, false); + context.stroke(); + context.beginPath(); + context.setLineWidth(1); + context.setStrokeStyle(series[0].color); + context.setFillStyle(series[0].color); + context.moveTo(-pointerRadius - gaugeOption.width / 3 / 2, -4); + context.lineTo(-pointerRadius - gaugeOption.width / 3 / 2 - 4, 0); + context.lineTo(-pointerRadius - gaugeOption.width / 3 / 2, 4); + context.lineTo(-pointerRadius - gaugeOption.width / 3 / 2, -4); + context.stroke(); + context.fill(); + context.restore(); + //default百度样式 + } else { + //画背景 + context.setLineWidth(gaugeOption.width); + context.setLineCap('butt'); + for (let i = 0; i < categories.length; i++) { + let eachCategories = categories[i]; + context.beginPath(); + context.setStrokeStyle(eachCategories.color); + context.arc(centerPosition.x, centerPosition.y, radius, eachCategories._startAngle_ * Math.PI, eachCategories._endAngle_ * Math.PI, false); + context.stroke(); + } + context.save(); + //画刻度线 + if (gaugeOption.endAngle < gaugeOption.startAngle) { + totalAngle = 2 + gaugeOption.endAngle - gaugeOption.startAngle; + } else { + totalAngle = gaugeOption.startAngle - gaugeOption.endAngle; + } + let splitAngle = totalAngle / gaugeOption.splitLine.splitNumber; + let childAngle = totalAngle / gaugeOption.splitLine.splitNumber / gaugeOption.splitLine.childNumber; + let startX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius; + let endX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.width; + let childendX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.childWidth; + context.translate(centerPosition.x, centerPosition.y); + context.rotate((gaugeOption.startAngle - 1) * Math.PI); + for (let i = 0; i < gaugeOption.splitLine.splitNumber + 1; i++) { + context.beginPath(); + context.setStrokeStyle(gaugeOption.splitLine.color); + context.setLineWidth(2 * opts.pix); + context.moveTo(startX, 0); + context.lineTo(endX, 0); + context.stroke(); + context.rotate(splitAngle * Math.PI); + } + context.restore(); + context.save(); + context.translate(centerPosition.x, centerPosition.y); + context.rotate((gaugeOption.startAngle - 1) * Math.PI); + for (let i = 0; i < gaugeOption.splitLine.splitNumber * gaugeOption.splitLine.childNumber + 1; i++) { + context.beginPath(); + context.setStrokeStyle(gaugeOption.splitLine.color); + context.setLineWidth(1 * opts.pix); + context.moveTo(startX, 0); + context.lineTo(childendX, 0); + context.stroke(); + context.rotate(childAngle * Math.PI); + } + context.restore(); + //画指针 + series = getGaugeDataPoints(series, categories, gaugeOption, process); + for (let i = 0; i < series.length; i++) { + let eachSeries = series[i]; + context.save(); + context.translate(centerPosition.x, centerPosition.y); + context.rotate((eachSeries._proportion_ - 1) * Math.PI); + context.beginPath(); + context.setFillStyle(eachSeries.color); + context.moveTo(gaugeOption.pointer.width, 0); + context.lineTo(0, -gaugeOption.pointer.width / 2); + context.lineTo(-innerRadius, 0); + context.lineTo(0, gaugeOption.pointer.width / 2); + context.lineTo(gaugeOption.pointer.width, 0); + context.closePath(); + context.fill(); + context.beginPath(); + context.setFillStyle('#FFFFFF'); + context.arc(0, 0, gaugeOption.pointer.width / 6, 0, 2 * Math.PI, false); + context.fill(); + context.restore(); + } + if (opts.dataLabel !== false) { + drawGaugeLabel(gaugeOption, radius, centerPosition, opts, config, context); + } + } + //画仪表盘标题,副标题 + drawRingTitle(opts, config, context, centerPosition); + if (process === 1 && opts.type === 'gauge') { + opts.extra.gauge.oldAngle = series[0]._proportion_; + opts.extra.gauge.oldData = series[0].data; + } + return { + center: centerPosition, + radius: radius, + innerRadius: innerRadius, + categories: categories, + totalAngle: totalAngle + }; +} + +function drawRadarDataPoints(series, opts, config, context) { + var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + var radarOption = assign({}, { + gridColor: '#cccccc', + gridType: 'radar', + gridEval:1, + axisLabel:false, + axisLabelTofix:0, + labelShow:true, + labelColor:'#666666', + labelPointShow:false, + labelPointRadius:3, + labelPointColor:'#cccccc', + opacity: 0.2, + gridCount: 3, + border:false, + borderWidth:2, + linearType: 'none', + customColor: [], + }, opts.extra.radar); + var coordinateAngle = getRadarCoordinateSeries(opts.categories.length); + var centerPosition = { + x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2, + y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2 + }; + var xr = (opts.width - opts.area[1] - opts.area[3]) / 2 + var yr = (opts.height - opts.area[0] - opts.area[2]) / 2 + var radius = Math.min(xr - (getMaxTextListLength(opts.categories, config.fontSize, context) + config.radarLabelTextMargin), yr - config.radarLabelTextMargin); + radius -= config.radarLabelTextMargin * opts.pix; + radius = radius < 10 ? 10 : radius; + radius = radarOption.radius ? radarOption.radius : radius; + // 画分割线 + context.beginPath(); + context.setLineWidth(1 * opts.pix); + context.setStrokeStyle(radarOption.gridColor); + coordinateAngle.forEach(function(angle,index) { + var pos = convertCoordinateOrigin(radius * Math.cos(angle), radius * Math.sin(angle), centerPosition); + context.moveTo(centerPosition.x, centerPosition.y); + if (index % radarOption.gridEval == 0) { + context.lineTo(pos.x, pos.y); + } + }); + context.stroke(); + context.closePath(); + + // 画背景网格 + var _loop = function _loop(i) { + var startPos = {}; + context.beginPath(); + context.setLineWidth(1 * opts.pix); + context.setStrokeStyle(radarOption.gridColor); + if (radarOption.gridType == 'radar') { + coordinateAngle.forEach(function(angle, index) { + var pos = convertCoordinateOrigin(radius / radarOption.gridCount * i * Math.cos(angle), radius / + radarOption.gridCount * i * Math.sin(angle), centerPosition); + if (index === 0) { + startPos = pos; + context.moveTo(pos.x, pos.y); + } else { + context.lineTo(pos.x, pos.y); + } + }); + context.lineTo(startPos.x, startPos.y); + } else { + var pos = convertCoordinateOrigin(radius / radarOption.gridCount * i * Math.cos(1.5), radius / radarOption.gridCount * i * Math.sin(1.5), centerPosition); + context.arc(centerPosition.x, centerPosition.y, centerPosition.y - pos.y, 0, 2 * Math.PI, false); + } + context.stroke(); + context.closePath(); + }; + for (var i = 1; i <= radarOption.gridCount; i++) { + _loop(i); + } + radarOption.customColor = fillCustomColor(radarOption.linearType, radarOption.customColor, series, config); + var radarDataPoints = getRadarDataPoints(coordinateAngle, centerPosition, radius, series, opts, process); + radarDataPoints.forEach(function(eachSeries, seriesIndex) { + // 绘制区域数据 + context.beginPath(); + context.setLineWidth(radarOption.borderWidth * opts.pix); + context.setStrokeStyle(eachSeries.color); + + var fillcolor = hexToRgb(eachSeries.color, radarOption.opacity); + if (radarOption.linearType == 'custom') { + var grd; + if(context.createCircularGradient){ + grd = context.createCircularGradient(centerPosition.x, centerPosition.y, radius) + }else{ + grd = context.createRadialGradient(centerPosition.x, centerPosition.y, 0,centerPosition.x, centerPosition.y, radius) + } + grd.addColorStop(0, hexToRgb(radarOption.customColor[series[seriesIndex].linearIndex], radarOption.opacity)) + grd.addColorStop(1, hexToRgb(eachSeries.color, radarOption.opacity)) + fillcolor = grd + } + + context.setFillStyle(fillcolor); + eachSeries.data.forEach(function(item, index) { + if (index === 0) { + context.moveTo(item.position.x, item.position.y); + } else { + context.lineTo(item.position.x, item.position.y); + } + }); + context.closePath(); + context.fill(); + if(radarOption.border === true){ + context.stroke(); + } + context.closePath(); + if (opts.dataPointShape !== false) { + var points = eachSeries.data.map(function(item) { + return item.position; + }); + drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts); + } + }); + // 画刻度值 + if(radarOption.axisLabel === true){ + const maxData = Math.max(radarOption.max, Math.max.apply(null, dataCombine(series))); + const stepLength = radius / radarOption.gridCount; + const fontSize = opts.fontSize * opts.pix; + context.setFontSize(fontSize); + context.setFillStyle(opts.fontColor); + context.setTextAlign('left'); + for (var i = 0; i < radarOption.gridCount + 1; i++) { + let label = i * maxData / radarOption.gridCount; + label = label.toFixed(radarOption.axisLabelTofix); + context.fillText(String(label), centerPosition.x + 3 * opts.pix, centerPosition.y - i * stepLength + fontSize / 2); + } + } + + // draw label text + drawRadarLabel(coordinateAngle, radius, centerPosition, opts, config, context); + + // draw dataLabel + if (opts.dataLabel !== false && process === 1) { + radarDataPoints.forEach(function(eachSeries, seriesIndex) { + context.beginPath(); + var fontSize = eachSeries.textSize * opts.pix || config.fontSize; + context.setFontSize(fontSize); + context.setFillStyle(eachSeries.textColor || opts.fontColor); + eachSeries.data.forEach(function(item, index) { + //如果是中心点垂直的上下点位 + if(Math.abs(item.position.x - centerPosition.x)<2){ + //如果在上面 + if(item.position.y < centerPosition.y){ + context.setTextAlign('center'); + context.fillText(item.value, item.position.x, item.position.y - 4); + }else{ + context.setTextAlign('center'); + context.fillText(item.value, item.position.x, item.position.y + fontSize + 2); + } + }else{ + //如果在左侧 + if(item.position.x < centerPosition.x){ + context.setTextAlign('right'); + context.fillText(item.value, item.position.x - 4, item.position.y + fontSize / 2 - 2); + }else{ + context.setTextAlign('left'); + context.fillText(item.value, item.position.x + 4, item.position.y + fontSize / 2 - 2); + } + } + }); + context.closePath(); + context.stroke(); + }); + context.setTextAlign('left'); + } + + return { + center: centerPosition, + radius: radius, + angleList: coordinateAngle + }; +} + +// 经纬度转墨卡托 +function lonlat2mercator(longitude, latitude) { + var mercator = Array(2); + var x = longitude * 20037508.34 / 180; + var y = Math.log(Math.tan((90 + latitude) * Math.PI / 360)) / (Math.PI / 180); + y = y * 20037508.34 / 180; + mercator[0] = x; + mercator[1] = y; + return mercator; +} + +// 墨卡托转经纬度 +function mercator2lonlat(longitude, latitude) { + var lonlat = Array(2) + var x = longitude / 20037508.34 * 180; + var y = latitude / 20037508.34 * 180; + y = 180 / Math.PI * (2 * Math.atan(Math.exp(y * Math.PI / 180)) - Math.PI / 2); + lonlat[0] = x; + lonlat[1] = y; + return lonlat; +} + +function getBoundingBox(data) { + var bounds = {},coords; + bounds.xMin = 180; + bounds.xMax = 0; + bounds.yMin = 90; + bounds.yMax = 0 + for (var i = 0; i < data.length; i++) { + var coorda = data[i].geometry.coordinates + for (var k = 0; k < coorda.length; k++) { + coords = coorda[k]; + if (coords.length == 1) { + coords = coords[0] + } + for (var j = 0; j < coords.length; j++) { + var longitude = coords[j][0]; + var latitude = coords[j][1]; + var point = { + x: longitude, + y: latitude + } + bounds.xMin = bounds.xMin < point.x ? bounds.xMin : point.x; + bounds.xMax = bounds.xMax > point.x ? bounds.xMax : point.x; + bounds.yMin = bounds.yMin < point.y ? bounds.yMin : point.y; + bounds.yMax = bounds.yMax > point.y ? bounds.yMax : point.y; + } + } + } + return bounds; +} + +function coordinateToPoint(latitude, longitude, bounds, scale, xoffset, yoffset) { + return { + x: (longitude - bounds.xMin) * scale + xoffset, + y: (bounds.yMax - latitude) * scale + yoffset + }; +} + +function pointToCoordinate(pointY, pointX, bounds, scale, xoffset, yoffset) { + return { + x: (pointX - xoffset) / scale + bounds.xMin, + y: bounds.yMax - (pointY - yoffset) / scale + }; +} + +function isRayIntersectsSegment(poi, s_poi, e_poi) { + if (s_poi[1] == e_poi[1]) { + return false; + } + if (s_poi[1] > poi[1] && e_poi[1] > poi[1]) { + return false; + } + if (s_poi[1] < poi[1] && e_poi[1] < poi[1]) { + return false; + } + if (s_poi[1] == poi[1] && e_poi[1] > poi[1]) { + return false; + } + if (e_poi[1] == poi[1] && s_poi[1] > poi[1]) { + return false; + } + if (s_poi[0] < poi[0] && e_poi[1] < poi[1]) { + return false; + } + let xseg = e_poi[0] - (e_poi[0] - s_poi[0]) * (e_poi[1] - poi[1]) / (e_poi[1] - s_poi[1]); + if (xseg < poi[0]) { + return false; + } else { + return true; + } +} + +function isPoiWithinPoly(poi, poly, mercator) { + let sinsc = 0; + for (let i = 0; i < poly.length; i++) { + let epoly = poly[i][0]; + if (poly.length == 1) { + epoly = poly[i][0] + } + for (let j = 0; j < epoly.length - 1; j++) { + let s_poi = epoly[j]; + let e_poi = epoly[j + 1]; + if (mercator) { + s_poi = lonlat2mercator(epoly[j][0], epoly[j][1]); + e_poi = lonlat2mercator(epoly[j + 1][0], epoly[j + 1][1]); + } + if (isRayIntersectsSegment(poi, s_poi, e_poi)) { + sinsc += 1; + } + } + } + if (sinsc % 2 == 1) { + return true; + } else { + return false; + } +} + +function drawMapDataPoints(series, opts, config, context) { + var mapOption = assign({}, { + border: true, + mercator: false, + borderWidth: 1, + active:true, + borderColor: '#666666', + fillOpacity: 0.6, + activeBorderColor: '#f04864', + activeFillColor: '#facc14', + activeFillOpacity: 1 + }, opts.extra.map); + var coords, point; + var data = series; + var bounds = getBoundingBox(data); + if (mapOption.mercator) { + var max = lonlat2mercator(bounds.xMax, bounds.yMax) + var min = lonlat2mercator(bounds.xMin, bounds.yMin) + bounds.xMax = max[0] + bounds.yMax = max[1] + bounds.xMin = min[0] + bounds.yMin = min[1] + } + var xScale = opts.width / Math.abs(bounds.xMax - bounds.xMin); + var yScale = opts.height / Math.abs(bounds.yMax - bounds.yMin); + var scale = xScale < yScale ? xScale : yScale; + var xoffset = opts.width / 2 - Math.abs(bounds.xMax - bounds.xMin) / 2 * scale; + var yoffset = opts.height / 2 - Math.abs(bounds.yMax - bounds.yMin) / 2 * scale; + for (var i = 0; i < data.length; i++) { + context.beginPath(); + context.setLineWidth(mapOption.borderWidth * opts.pix); + context.setStrokeStyle(mapOption.borderColor); + context.setFillStyle(hexToRgb(series[i].color, series[i].fillOpacity||mapOption.fillOpacity)); + if (mapOption.active == true && opts.tooltip) { + if (opts.tooltip.index == i) { + context.setStrokeStyle(mapOption.activeBorderColor); + context.setFillStyle(hexToRgb(mapOption.activeFillColor, mapOption.activeFillOpacity)); + } + } + var coorda = data[i].geometry.coordinates + for (var k = 0; k < coorda.length; k++) { + coords = coorda[k]; + if (coords.length == 1) { + coords = coords[0] + } + for (var j = 0; j < coords.length; j++) { + var gaosi = Array(2); + if (mapOption.mercator) { + gaosi = lonlat2mercator(coords[j][0], coords[j][1]) + } else { + gaosi = coords[j] + } + point = coordinateToPoint(gaosi[1], gaosi[0], bounds, scale, xoffset, yoffset) + if (j === 0) { + context.beginPath(); + context.moveTo(point.x, point.y); + } else { + context.lineTo(point.x, point.y); + } + } + context.fill(); + if (mapOption.border == true) { + context.stroke(); + } + } + } + if (opts.dataLabel == true) { + for (var i = 0; i < data.length; i++) { + var centerPoint = data[i].properties.centroid; + if (centerPoint) { + if (mapOption.mercator) { + centerPoint = lonlat2mercator(data[i].properties.centroid[0], data[i].properties.centroid[1]) + } + point = coordinateToPoint(centerPoint[1], centerPoint[0], bounds, scale, xoffset, yoffset); + let fontSize = data[i].textSize * opts.pix || config.fontSize; + let fontColor = data[i].textColor || opts.fontColor; + if(mapOption.active && mapOption.activeTextColor && opts.tooltip && opts.tooltip.index == i){ + fontColor = mapOption.activeTextColor; + } + let text = data[i].properties.name; + context.beginPath(); + context.setFontSize(fontSize) + context.setFillStyle(fontColor) + context.fillText(text, point.x - measureText(text, fontSize, context) / 2, point.y + fontSize / 2); + context.closePath(); + context.stroke(); + } + } + } + opts.chartData.mapData = { + bounds: bounds, + scale: scale, + xoffset: xoffset, + yoffset: yoffset, + mercator: mapOption.mercator + } + drawToolTipBridge(opts, config, context, 1); + context.draw(); +} + +function normalInt(min, max, iter) { + iter = iter == 0 ? 1 : iter; + var arr = []; + for (var i = 0; i < iter; i++) { + arr[i] = Math.random(); + }; + return Math.floor(arr.reduce(function(i, j) { + return i + j + }) / iter * (max - min)) + min; +}; + +function collisionNew(area, points, width, height) { + var isIn = false; + for (let i = 0; i < points.length; i++) { + if (points[i].area) { + if (area[3] < points[i].area[1] || area[0] > points[i].area[2] || area[1] > points[i].area[3] || area[2] < points[i].area[0]) { + if (area[0] < 0 || area[1] < 0 || area[2] > width || area[3] > height) { + isIn = true; + break; + } else { + isIn = false; + } + } else { + isIn = true; + break; + } + } + } + return isIn; +}; + +function getWordCloudPoint(opts, type, context) { + let points = opts.series; + switch (type) { + case 'normal': + for (let i = 0; i < points.length; i++) { + let text = points[i].name; + let tHeight = points[i].textSize * opts.pix; + let tWidth = measureText(text, tHeight, context); + let x, y; + let area; + let breaknum = 0; + while (true) { + breaknum++; + x = normalInt(-opts.width / 2, opts.width / 2, 5) - tWidth / 2; + y = normalInt(-opts.height / 2, opts.height / 2, 5) + tHeight / 2; + area = [x - 5 + opts.width / 2, y - 5 - tHeight + opts.height / 2, x + tWidth + 5 + opts.width / 2, y + 5 + + opts.height / 2 + ]; + let isCollision = collisionNew(area, points, opts.width, opts.height); + if (!isCollision) break; + if (breaknum == 1000) { + area = [-100, -100, -100, -100]; + break; + } + }; + points[i].area = area; + } + break; + case 'vertical': + function Spin() { + //获取均匀随机值,是否旋转,旋转的概率为(1-0.5) + if (Math.random() > 0.7) { + return true; + } else { + return false + }; + }; + for (let i = 0; i < points.length; i++) { + let text = points[i].name; + let tHeight = points[i].textSize * opts.pix; + let tWidth = measureText(text, tHeight, context); + let isSpin = Spin(); + let x, y, area, areav; + let breaknum = 0; + while (true) { + breaknum++; + let isCollision; + if (isSpin) { + x = normalInt(-opts.width / 2, opts.width / 2, 5) - tWidth / 2; + y = normalInt(-opts.height / 2, opts.height / 2, 5) + tHeight / 2; + area = [y - 5 - tWidth + opts.width / 2, (-x - 5 + opts.height / 2), y + 5 + opts.width / 2, (-x + tHeight + 5 + opts.height / 2)]; + areav = [opts.width - (opts.width / 2 - opts.height / 2) - (-x + tHeight + 5 + opts.height / 2) - 5, (opts.height / 2 - opts.width / 2) + (y - 5 - tWidth + opts.width / 2) - 5, opts.width - (opts.width / 2 - opts.height / 2) - (-x + tHeight + 5 + opts.height / 2) + tHeight, (opts.height / 2 - opts.width / 2) + (y - 5 - tWidth + opts.width / 2) + tWidth + 5]; + isCollision = collisionNew(areav, points, opts.height, opts.width); + } else { + x = normalInt(-opts.width / 2, opts.width / 2, 5) - tWidth / 2; + y = normalInt(-opts.height / 2, opts.height / 2, 5) + tHeight / 2; + area = [x - 5 + opts.width / 2, y - 5 - tHeight + opts.height / 2, x + tWidth + 5 + opts.width / 2, y + 5 + opts.height / 2]; + isCollision = collisionNew(area, points, opts.width, opts.height); + } + if (!isCollision) break; + if (breaknum == 1000) { + area = [-1000, -1000, -1000, -1000]; + break; + } + }; + if (isSpin) { + points[i].area = areav; + points[i].areav = area; + } else { + points[i].area = area; + } + points[i].rotate = isSpin; + }; + break; + } + return points; +} + +function drawWordCloudDataPoints(series, opts, config, context) { + let process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + let wordOption = assign({}, { + type: 'normal', + autoColors: true + }, opts.extra.word); + if (!opts.chartData.wordCloudData) { + opts.chartData.wordCloudData = getWordCloudPoint(opts, wordOption.type, context); + } + context.beginPath(); + context.setFillStyle(opts.background); + context.rect(0, 0, opts.width, opts.height); + context.fill(); + context.save(); + let points = opts.chartData.wordCloudData; + context.translate(opts.width / 2, opts.height / 2); + for (let i = 0; i < points.length; i++) { + context.save(); + if (points[i].rotate) { + context.rotate(90 * Math.PI / 180); + } + let text = points[i].name; + let tHeight = points[i].textSize * opts.pix; + let tWidth = measureText(text, tHeight, context); + context.beginPath(); + context.setStrokeStyle(points[i].color); + context.setFillStyle(points[i].color); + context.setFontSize(tHeight); + if (points[i].rotate) { + if (points[i].areav[0] > 0) { + if (opts.tooltip) { + if (opts.tooltip.index == i) { + context.strokeText(text, (points[i].areav[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].areav[1] + 5 + tHeight - opts.height / 2) * process); + } else { + context.fillText(text, (points[i].areav[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].areav[1] + 5 + tHeight - opts.height / 2) * process); + } + } else { + context.fillText(text, (points[i].areav[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].areav[1] + 5 + tHeight - opts.height / 2) * process); + } + } + } else { + if (points[i].area[0] > 0) { + if (opts.tooltip) { + if (opts.tooltip.index == i) { + context.strokeText(text, (points[i].area[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].area[1] + 5 + tHeight - opts.height / 2) * process); + } else { + context.fillText(text, (points[i].area[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].area[1] + 5 + tHeight - opts.height / 2) * process); + } + } else { + context.fillText(text, (points[i].area[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].area[1] + 5 + tHeight - opts.height / 2) * process); + } + } + } + context.stroke(); + context.restore(); + } + context.restore(); +} + +function drawFunnelDataPoints(series, opts, config, context) { + let process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + let funnelOption = assign({}, { + type:'funnel', + activeWidth: 10, + activeOpacity: 0.3, + border: false, + borderWidth: 2, + borderColor: '#FFFFFF', + fillOpacity: 1, + minSize: 0, + labelAlign: 'right', + linearType: 'none', + customColor: [], + }, opts.extra.funnel); + let eachSpacing = (opts.height - opts.area[0] - opts.area[2]) / series.length; + let centerPosition = { + x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2, + y: opts.height - opts.area[2] + }; + let activeWidth = funnelOption.activeWidth * opts.pix; + let radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - activeWidth, (opts.height - opts.area[0] - opts.area[2]) / 2 - activeWidth); + let seriesNew = getFunnelDataPoints(series, radius, funnelOption, eachSpacing, process); + context.save(); + context.translate(centerPosition.x, centerPosition.y); + funnelOption.customColor = fillCustomColor(funnelOption.linearType, funnelOption.customColor, series, config); + if(funnelOption.type == 'pyramid'){ + for (let i = 0; i < seriesNew.length; i++) { + if (i == seriesNew.length -1) { + if (opts.tooltip) { + if (opts.tooltip.index == i) { + context.beginPath(); + context.setFillStyle(hexToRgb(seriesNew[i].color, funnelOption.activeOpacity)); + context.moveTo(-activeWidth, -eachSpacing); + context.lineTo(-seriesNew[i].radius - activeWidth, 0); + context.lineTo(seriesNew[i].radius + activeWidth, 0); + context.lineTo(activeWidth, -eachSpacing); + context.lineTo(-activeWidth, -eachSpacing); + context.closePath(); + context.fill(); + } + } + seriesNew[i].funnelArea = [centerPosition.x - seriesNew[i].radius, centerPosition.y - eachSpacing * (i + 1), centerPosition.x + seriesNew[i].radius, centerPosition.y - eachSpacing * i]; + context.beginPath(); + context.setLineWidth(funnelOption.borderWidth * opts.pix); + context.setStrokeStyle(funnelOption.borderColor); + var fillColor = hexToRgb(seriesNew[i].color, funnelOption.fillOpacity); + if (funnelOption.linearType == 'custom') { + var grd = context.createLinearGradient(seriesNew[i].radius, -eachSpacing, -seriesNew[i].radius, -eachSpacing); + grd.addColorStop(0, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity)); + grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[seriesNew[i].linearIndex], funnelOption.fillOpacity)); + grd.addColorStop(1, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity)); + fillColor = grd + } + context.setFillStyle(fillColor); + context.moveTo(0, -eachSpacing); + context.lineTo(-seriesNew[i].radius, 0); + context.lineTo(seriesNew[i].radius, 0); + context.lineTo(0, -eachSpacing); + context.closePath(); + context.fill(); + if (funnelOption.border == true) { + context.stroke(); + } + } else { + if (opts.tooltip) { + if (opts.tooltip.index == i) { + context.beginPath(); + context.setFillStyle(hexToRgb(seriesNew[i].color, funnelOption.activeOpacity)); + context.moveTo(0, 0); + context.lineTo(-seriesNew[i].radius - activeWidth, 0); + context.lineTo(-seriesNew[i + 1].radius - activeWidth, -eachSpacing); + context.lineTo(seriesNew[i + 1].radius + activeWidth, -eachSpacing); + context.lineTo(seriesNew[i].radius + activeWidth, 0); + context.lineTo(0, 0); + context.closePath(); + context.fill(); + } + } + seriesNew[i].funnelArea = [centerPosition.x - seriesNew[i].radius, centerPosition.y - eachSpacing * (i + 1), centerPosition.x + seriesNew[i].radius, centerPosition.y - eachSpacing * i]; + context.beginPath(); + context.setLineWidth(funnelOption.borderWidth * opts.pix); + context.setStrokeStyle(funnelOption.borderColor); + var fillColor = hexToRgb(seriesNew[i].color, funnelOption.fillOpacity); + if (funnelOption.linearType == 'custom') { + var grd = context.createLinearGradient(seriesNew[i].radius, -eachSpacing, -seriesNew[i].radius, -eachSpacing); + grd.addColorStop(0, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity)); + grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[seriesNew[i].linearIndex], funnelOption.fillOpacity)); + grd.addColorStop(1, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity)); + fillColor = grd + } + context.setFillStyle(fillColor); + context.moveTo(0, 0); + context.lineTo(-seriesNew[i].radius, 0); + context.lineTo(-seriesNew[i + 1].radius, -eachSpacing); + context.lineTo(seriesNew[i + 1].radius, -eachSpacing); + context.lineTo(seriesNew[i].radius, 0); + context.lineTo(0, 0); + context.closePath(); + context.fill(); + if (funnelOption.border == true) { + context.stroke(); + } + } + context.translate(0, -eachSpacing) + } + }else{ + context.translate(0, - (seriesNew.length - 1) * eachSpacing); + for (let i = 0; i < seriesNew.length; i++) { + if (i == seriesNew.length - 1) { + if (opts.tooltip) { + if (opts.tooltip.index == i) { + context.beginPath(); + context.setFillStyle(hexToRgb(seriesNew[i].color, funnelOption.activeOpacity)); + context.moveTo(-activeWidth - funnelOption.minSize/2, 0); + context.lineTo(-seriesNew[i].radius - activeWidth, -eachSpacing); + context.lineTo(seriesNew[i].radius + activeWidth, -eachSpacing); + context.lineTo(activeWidth + funnelOption.minSize/2, 0); + context.lineTo(-activeWidth - funnelOption.minSize/2, 0); + context.closePath(); + context.fill(); + } + } + seriesNew[i].funnelArea = [centerPosition.x - seriesNew[i].radius, centerPosition.y - eachSpacing, centerPosition.x + seriesNew[i].radius, centerPosition.y ]; + context.beginPath(); + context.setLineWidth(funnelOption.borderWidth * opts.pix); + context.setStrokeStyle(funnelOption.borderColor); + var fillColor = hexToRgb(seriesNew[i].color, funnelOption.fillOpacity); + if (funnelOption.linearType == 'custom') { + var grd = context.createLinearGradient(seriesNew[i].radius, -eachSpacing, -seriesNew[i].radius, -eachSpacing); + grd.addColorStop(0, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity)); + grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[seriesNew[i].linearIndex], funnelOption.fillOpacity)); + grd.addColorStop(1, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity)); + fillColor = grd + } + context.setFillStyle(fillColor); + context.moveTo(0, 0); + context.lineTo(-funnelOption.minSize/2, 0); + context.lineTo(-seriesNew[i].radius, -eachSpacing); + context.lineTo(seriesNew[i].radius, -eachSpacing); + context.lineTo(funnelOption.minSize/2, 0); + context.lineTo(0, 0); + context.closePath(); + context.fill(); + if (funnelOption.border == true) { + context.stroke(); + } + } else { + if (opts.tooltip) { + if (opts.tooltip.index == i) { + context.beginPath(); + context.setFillStyle(hexToRgb(seriesNew[i].color, funnelOption.activeOpacity)); + context.moveTo(0, 0); + context.lineTo(-seriesNew[i + 1].radius - activeWidth, 0); + context.lineTo(-seriesNew[i].radius - activeWidth, -eachSpacing); + context.lineTo(seriesNew[i].radius + activeWidth, -eachSpacing); + context.lineTo(seriesNew[i + 1].radius + activeWidth, 0); + context.lineTo(0, 0); + context.closePath(); + context.fill(); + } + } + seriesNew[i].funnelArea = [centerPosition.x - seriesNew[i].radius, centerPosition.y - eachSpacing * (seriesNew.length - i), centerPosition.x + seriesNew[i].radius, centerPosition.y - eachSpacing * (seriesNew.length - i - 1)]; + context.beginPath(); + context.setLineWidth(funnelOption.borderWidth * opts.pix); + context.setStrokeStyle(funnelOption.borderColor); + var fillColor = hexToRgb(seriesNew[i].color, funnelOption.fillOpacity); + if (funnelOption.linearType == 'custom') { + var grd = context.createLinearGradient(seriesNew[i].radius, -eachSpacing, -seriesNew[i].radius, -eachSpacing); + grd.addColorStop(0, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity)); + grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[seriesNew[i].linearIndex], funnelOption.fillOpacity)); + grd.addColorStop(1, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity)); + fillColor = grd + } + context.setFillStyle(fillColor); + context.moveTo(0, 0); + context.lineTo(-seriesNew[i + 1].radius, 0); + context.lineTo(-seriesNew[i].radius, -eachSpacing); + context.lineTo(seriesNew[i].radius, -eachSpacing); + context.lineTo(seriesNew[i + 1].radius, 0); + context.lineTo(0, 0); + context.closePath(); + context.fill(); + if (funnelOption.border == true) { + context.stroke(); + } + } + context.translate(0, eachSpacing) + } + } + + context.restore(); + if (opts.dataLabel !== false && process === 1) { + drawFunnelText(seriesNew, opts, context, eachSpacing, funnelOption.labelAlign, activeWidth, centerPosition); + } + if (process === 1) { + drawFunnelCenterText(seriesNew, opts, context, eachSpacing, funnelOption.labelAlign, activeWidth, centerPosition); + } + return { + center: centerPosition, + radius: radius, + series: seriesNew + }; +} + +function drawFunnelText(series, opts, context, eachSpacing, labelAlign, activeWidth, centerPosition) { + for (let i = 0; i < series.length; i++) { + let item = series[i]; + if(item.labelShow === false){ + continue; + } + let startX, endX, startY, fontSize; + let text = item.formatter ? item.formatter(item,i,series,opts) : util.toFixed(item._proportion_ * 100) + '%'; + text = item.labelText ? item.labelText : text; + if (labelAlign == 'right') { + if (i == series.length -1) { + startX = (item.funnelArea[2] + centerPosition.x) / 2; + } else { + startX = (item.funnelArea[2] + series[i + 1].funnelArea[2]) / 2; + } + endX = startX + activeWidth * 2; + startY = item.funnelArea[1] + eachSpacing / 2; + fontSize = item.textSize * opts.pix || opts.fontSize * opts.pix; + context.setLineWidth(1 * opts.pix); + context.setStrokeStyle(item.color); + context.setFillStyle(item.color); + context.beginPath(); + context.moveTo(startX, startY); + context.lineTo(endX, startY); + context.stroke(); + context.closePath(); + context.beginPath(); + context.moveTo(endX, startY); + context.arc(endX, startY, 2 * opts.pix, 0, 2 * Math.PI); + context.closePath(); + context.fill(); + context.beginPath(); + context.setFontSize(fontSize); + context.setFillStyle(item.textColor || opts.fontColor); + context.fillText(text, endX + 5, startY + fontSize / 2 - 2); + context.closePath(); + context.stroke(); + context.closePath(); + } + if (labelAlign == 'left') { + if (i == series.length -1) { + startX = (item.funnelArea[0] + centerPosition.x) / 2; + } else { + startX = (item.funnelArea[0] + series[i + 1].funnelArea[0]) / 2; + } + endX = startX - activeWidth * 2; + startY = item.funnelArea[1] + eachSpacing / 2; + fontSize = item.textSize * opts.pix || opts.fontSize * opts.pix; + context.setLineWidth(1 * opts.pix); + context.setStrokeStyle(item.color); + context.setFillStyle(item.color); + context.beginPath(); + context.moveTo(startX, startY); + context.lineTo(endX, startY); + context.stroke(); + context.closePath(); + context.beginPath(); + context.moveTo(endX, startY); + context.arc(endX, startY, 2, 0, 2 * Math.PI); + context.closePath(); + context.fill(); + context.beginPath(); + context.setFontSize(fontSize); + context.setFillStyle(item.textColor || opts.fontColor); + context.fillText(text, endX - 5 - measureText(text, fontSize, context), startY + fontSize / 2 - 2); + context.closePath(); + context.stroke(); + context.closePath(); + } + } +} + +function drawFunnelCenterText(series, opts, context, eachSpacing, labelAlign, activeWidth, centerPosition) { + for (let i = 0; i < series.length; i++) { + let item = series[i]; + let startY, fontSize; + if (item.centerText) { + startY = item.funnelArea[1] + eachSpacing / 2; + fontSize = item.centerTextSize * opts.pix || opts.fontSize * opts.pix; + context.beginPath(); + context.setFontSize(fontSize); + context.setFillStyle(item.centerTextColor || "#FFFFFF"); + context.fillText(item.centerText, centerPosition.x - measureText(item.centerText, fontSize, context) / 2, startY + fontSize / 2 - 2); + context.closePath(); + context.stroke(); + context.closePath(); + } + } +} + + +function drawCanvas(opts, context) { + context.save(); + context.translate(0, 0.5); + context.restore(); + context.draw(); +} + +var Timing = { + easeIn: function easeIn(pos) { + return Math.pow(pos, 3); + }, + easeOut: function easeOut(pos) { + return Math.pow(pos - 1, 3) + 1; + }, + easeInOut: function easeInOut(pos) { + if ((pos /= 0.5) < 1) { + return 0.5 * Math.pow(pos, 3); + } else { + return 0.5 * (Math.pow(pos - 2, 3) + 2); + } + }, + linear: function linear(pos) { + return pos; + } +}; + +function Animation(opts) { + this.isStop = false; + opts.duration = typeof opts.duration === 'undefined' ? 1000 : opts.duration; + opts.timing = opts.timing || 'easeInOut'; + var delay = 17; + function createAnimationFrame() { + if (typeof setTimeout !== 'undefined') { + return function(step, delay) { + setTimeout(function() { + var timeStamp = +new Date(); + step(timeStamp); + }, delay); + }; + } else if (typeof requestAnimationFrame !== 'undefined') { + return requestAnimationFrame; + } else { + return function(step) { + step(null); + }; + } + }; + var animationFrame = createAnimationFrame(); + var startTimeStamp = null; + var _step = function step(timestamp) { + if (timestamp === null || this.isStop === true) { + opts.onProcess && opts.onProcess(1); + opts.onAnimationFinish && opts.onAnimationFinish(); + return; + } + if (startTimeStamp === null) { + startTimeStamp = timestamp; + } + if (timestamp - startTimeStamp < opts.duration) { + var process = (timestamp - startTimeStamp) / opts.duration; + var timingFunction = Timing[opts.timing]; + process = timingFunction(process); + opts.onProcess && opts.onProcess(process); + animationFrame(_step, delay); + } else { + opts.onProcess && opts.onProcess(1); + opts.onAnimationFinish && opts.onAnimationFinish(); + } + }; + _step = _step.bind(this); + animationFrame(_step, delay); +} + +Animation.prototype.stop = function() { + this.isStop = true; +}; + +function drawCharts(type, opts, config, context) { + var _this = this; + var series = opts.series; + //兼容ECharts饼图类数据格式 + if (type === 'pie' || type === 'ring' || type === 'mount' || type === 'rose' || type === 'funnel') { + series = fixPieSeries(series, opts, config); + } + var categories = opts.categories; + if (type === 'mount') { + categories = []; + for (let j = 0; j < series.length; j++) { + if(series[j].show !== false) categories.push(series[j].name) + } + opts.categories = categories; + } + series = fillSeries(series, opts, config); + var duration = opts.animation ? opts.duration : 0; + _this.animationInstance && _this.animationInstance.stop(); + var seriesMA = null; + if (type == 'candle') { + let average = assign({}, opts.extra.candle.average); + if (average.show) { + seriesMA = calCandleMA(average.day, average.name, average.color, series[0].data); + seriesMA = fillSeries(seriesMA, opts, config); + opts.seriesMA = seriesMA; + } else if (opts.seriesMA) { + seriesMA = opts.seriesMA = fillSeries(opts.seriesMA, opts, config); + } else { + seriesMA = series; + } + } else { + seriesMA = series; + } + /* 过滤掉show=false的series */ + opts._series_ = series = filterSeries(series); + //重新计算图表区域 + opts.area = new Array(4); + //复位绘图区域 + for (let j = 0; j < 4; j++) { + opts.area[j] = opts.padding[j] * opts.pix; + } + //通过计算三大区域:图例、X轴、Y轴的大小,确定绘图区域 + var _calLegendData = calLegendData(seriesMA, opts, config, opts.chartData, context), + legendHeight = _calLegendData.area.wholeHeight, + legendWidth = _calLegendData.area.wholeWidth; + + switch (opts.legend.position) { + case 'top': + opts.area[0] += legendHeight; + break; + case 'bottom': + opts.area[2] += legendHeight; + break; + case 'left': + opts.area[3] += legendWidth; + break; + case 'right': + opts.area[1] += legendWidth; + break; + } + + let _calYAxisData = {}, + yAxisWidth = 0; + if (opts.type === 'line' || opts.type === 'column'|| opts.type === 'mount' || opts.type === 'area' || opts.type === 'mix' || opts.type === 'candle' || opts.type === 'scatter' || opts.type === 'bubble' || opts.type === 'bar') { + _calYAxisData = calYAxisData(series, opts, config, context); + yAxisWidth = _calYAxisData.yAxisWidth; + //如果显示Y轴标题 + if (opts.yAxis.showTitle) { + let maxTitleHeight = 0; + for (let i = 0; i < opts.yAxis.data.length; i++) { + maxTitleHeight = Math.max(maxTitleHeight, opts.yAxis.data[i].titleFontSize ? opts.yAxis.data[i].titleFontSize * opts.pix : config.fontSize) + } + opts.area[0] += maxTitleHeight; + } + let rightIndex = 0, + leftIndex = 0; + //计算主绘图区域左右位置 + for (let i = 0; i < yAxisWidth.length; i++) { + if (yAxisWidth[i].position == 'left') { + if (leftIndex > 0) { + opts.area[3] += yAxisWidth[i].width + opts.yAxis.padding * opts.pix; + } else { + opts.area[3] += yAxisWidth[i].width; + } + leftIndex += 1; + } else if (yAxisWidth[i].position == 'right') { + if (rightIndex > 0) { + opts.area[1] += yAxisWidth[i].width + opts.yAxis.padding * opts.pix; + } else { + opts.area[1] += yAxisWidth[i].width; + } + rightIndex += 1; + } + } + } else { + config.yAxisWidth = yAxisWidth; + } + opts.chartData.yAxisData = _calYAxisData; + + if (opts.categories && opts.categories.length && opts.type !== 'radar' && opts.type !== 'gauge' && opts.type !== 'bar') { + opts.chartData.xAxisData = getXAxisPoints(opts.categories, opts, config); + let _calCategoriesData = calCategoriesData(opts.categories, opts, config, opts.chartData.xAxisData.eachSpacing, context), + xAxisHeight = _calCategoriesData.xAxisHeight, + angle = _calCategoriesData.angle; + config.xAxisHeight = xAxisHeight; + config._xAxisTextAngle_ = angle; + opts.area[2] += xAxisHeight; + opts.chartData.categoriesData = _calCategoriesData; + } else { + if (opts.type === 'line' || opts.type === 'area' || opts.type === 'scatter' || opts.type === 'bubble' || opts.type === 'bar') { + opts.chartData.xAxisData = calXAxisData(series, opts, config, context); + categories = opts.chartData.xAxisData.rangesFormat; + let _calCategoriesData = calCategoriesData(categories, opts, config, opts.chartData.xAxisData.eachSpacing, context), + xAxisHeight = _calCategoriesData.xAxisHeight, + angle = _calCategoriesData.angle; + config.xAxisHeight = xAxisHeight; + config._xAxisTextAngle_ = angle; + opts.area[2] += xAxisHeight; + opts.chartData.categoriesData = _calCategoriesData; + } else { + opts.chartData.xAxisData = { + xAxisPoints: [] + }; + } + } + + //计算右对齐偏移距离 + if (opts.enableScroll && opts.xAxis.scrollAlign == 'right' && opts._scrollDistance_ === undefined) { + let offsetLeft = 0, + xAxisPoints = opts.chartData.xAxisData.xAxisPoints, + startX = opts.chartData.xAxisData.startX, + endX = opts.chartData.xAxisData.endX, + eachSpacing = opts.chartData.xAxisData.eachSpacing; + let totalWidth = eachSpacing * (xAxisPoints.length - 1); + let screenWidth = endX - startX; + offsetLeft = screenWidth - totalWidth; + _this.scrollOption.currentOffset = offsetLeft; + _this.scrollOption.startTouchX = offsetLeft; + _this.scrollOption.distance = 0; + _this.scrollOption.lastMoveTime = 0; + opts._scrollDistance_ = offsetLeft; + } + + if (type === 'pie' || type === 'ring' || type === 'rose') { + config._pieTextMaxLength_ = opts.dataLabel === false ? 0 : getPieTextMaxLength(seriesMA, config, context, opts); + } + + switch (type) { + case 'word': + this.animationInstance = new Animation({ + timing: opts.timing, + duration: duration, + onProcess: function(process) { + context.clearRect(0, 0, opts.width, opts.height); + if (opts.rotate) { + contextRotate(context, opts); + } + drawWordCloudDataPoints(series, opts, config, context, process); + drawCanvas(opts, context); + }, + onAnimationFinish: function onAnimationFinish() { + _this.uevent.trigger('renderComplete'); + } + }); + break; + case 'map': + context.clearRect(0, 0, opts.width, opts.height); + drawMapDataPoints(series, opts, config, context); + setTimeout(()=>{ + this.uevent.trigger('renderComplete'); + },50) + break; + case 'funnel': + this.animationInstance = new Animation({ + timing: opts.timing, + duration: duration, + onProcess: function(process) { + context.clearRect(0, 0, opts.width, opts.height); + if (opts.rotate) { + contextRotate(context, opts); + } + opts.chartData.funnelData = drawFunnelDataPoints(series, opts, config, context, process); + drawLegend(opts.series, opts, config, context, opts.chartData); + drawToolTipBridge(opts, config, context, process); + drawCanvas(opts, context); + }, + onAnimationFinish: function onAnimationFinish() { + _this.uevent.trigger('renderComplete'); + } + }); + break; + case 'line': + this.animationInstance = new Animation({ + timing: opts.timing, + duration: duration, + onProcess: function onProcess(process) { + context.clearRect(0, 0, opts.width, opts.height); + if (opts.rotate) { + contextRotate(context, opts); + } + drawYAxisGrid(categories, opts, config, context); + drawXAxis(categories, opts, config, context); + var _drawLineDataPoints = drawLineDataPoints(series, opts, config, context, process), + xAxisPoints = _drawLineDataPoints.xAxisPoints, + calPoints = _drawLineDataPoints.calPoints, + eachSpacing = _drawLineDataPoints.eachSpacing; + opts.chartData.xAxisPoints = xAxisPoints; + opts.chartData.calPoints = calPoints; + opts.chartData.eachSpacing = eachSpacing; + drawYAxis(series, opts, config, context); + if (opts.enableMarkLine !== false && process === 1) { + drawMarkLine(opts, config, context); + } + drawLegend(opts.series, opts, config, context, opts.chartData); + drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints); + drawCanvas(opts, context); + }, + onAnimationFinish: function onAnimationFinish() { + _this.uevent.trigger('renderComplete'); + } + }); + break; + case 'scatter': + this.animationInstance = new Animation({ + timing: opts.timing, + duration: duration, + onProcess: function onProcess(process) { + context.clearRect(0, 0, opts.width, opts.height); + if (opts.rotate) { + contextRotate(context, opts); + } + drawYAxisGrid(categories, opts, config, context); + drawXAxis(categories, opts, config, context); + var _drawScatterDataPoints = drawScatterDataPoints(series, opts, config, context, process), + xAxisPoints = _drawScatterDataPoints.xAxisPoints, + calPoints = _drawScatterDataPoints.calPoints, + eachSpacing = _drawScatterDataPoints.eachSpacing; + opts.chartData.xAxisPoints = xAxisPoints; + opts.chartData.calPoints = calPoints; + opts.chartData.eachSpacing = eachSpacing; + drawYAxis(series, opts, config, context); + if (opts.enableMarkLine !== false && process === 1) { + drawMarkLine(opts, config, context); + } + drawLegend(opts.series, opts, config, context, opts.chartData); + drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints); + drawCanvas(opts, context); + }, + onAnimationFinish: function onAnimationFinish() { + _this.uevent.trigger('renderComplete'); + } + }); + break; + case 'bubble': + this.animationInstance = new Animation({ + timing: opts.timing, + duration: duration, + onProcess: function onProcess(process) { + context.clearRect(0, 0, opts.width, opts.height); + if (opts.rotate) { + contextRotate(context, opts); + } + drawYAxisGrid(categories, opts, config, context); + drawXAxis(categories, opts, config, context); + var _drawBubbleDataPoints = drawBubbleDataPoints(series, opts, config, context, process), + xAxisPoints = _drawBubbleDataPoints.xAxisPoints, + calPoints = _drawBubbleDataPoints.calPoints, + eachSpacing = _drawBubbleDataPoints.eachSpacing; + opts.chartData.xAxisPoints = xAxisPoints; + opts.chartData.calPoints = calPoints; + opts.chartData.eachSpacing = eachSpacing; + drawYAxis(series, opts, config, context); + if (opts.enableMarkLine !== false && process === 1) { + drawMarkLine(opts, config, context); + } + drawLegend(opts.series, opts, config, context, opts.chartData); + drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints); + drawCanvas(opts, context); + }, + onAnimationFinish: function onAnimationFinish() { + _this.uevent.trigger('renderComplete'); + } + }); + break; + case 'mix': + this.animationInstance = new Animation({ + timing: opts.timing, + duration: duration, + onProcess: function onProcess(process) { + context.clearRect(0, 0, opts.width, opts.height); + if (opts.rotate) { + contextRotate(context, opts); + } + drawYAxisGrid(categories, opts, config, context); + drawXAxis(categories, opts, config, context); + var _drawMixDataPoints = drawMixDataPoints(series, opts, config, context, process), + xAxisPoints = _drawMixDataPoints.xAxisPoints, + calPoints = _drawMixDataPoints.calPoints, + eachSpacing = _drawMixDataPoints.eachSpacing; + opts.chartData.xAxisPoints = xAxisPoints; + opts.chartData.calPoints = calPoints; + opts.chartData.eachSpacing = eachSpacing; + drawYAxis(series, opts, config, context); + if (opts.enableMarkLine !== false && process === 1) { + drawMarkLine(opts, config, context); + } + drawLegend(opts.series, opts, config, context, opts.chartData); + drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints); + drawCanvas(opts, context); + }, + onAnimationFinish: function onAnimationFinish() { + _this.uevent.trigger('renderComplete'); + } + }); + break; + case 'column': + this.animationInstance = new Animation({ + timing: opts.timing, + duration: duration, + onProcess: function onProcess(process) { + context.clearRect(0, 0, opts.width, opts.height); + if (opts.rotate) { + contextRotate(context, opts); + } + drawYAxisGrid(categories, opts, config, context); + drawXAxis(categories, opts, config, context); + var _drawColumnDataPoints = drawColumnDataPoints(series, opts, config, context, process), + xAxisPoints = _drawColumnDataPoints.xAxisPoints, + calPoints = _drawColumnDataPoints.calPoints, + eachSpacing = _drawColumnDataPoints.eachSpacing; + opts.chartData.xAxisPoints = xAxisPoints; + opts.chartData.calPoints = calPoints; + opts.chartData.eachSpacing = eachSpacing; + drawYAxis(series, opts, config, context); + if (opts.enableMarkLine !== false && process === 1) { + drawMarkLine(opts, config, context); + } + drawLegend(opts.series, opts, config, context, opts.chartData); + drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints); + drawCanvas(opts, context); + }, + onAnimationFinish: function onAnimationFinish() { + _this.uevent.trigger('renderComplete'); + } + }); + break; + case 'mount': + this.animationInstance = new Animation({ + timing: opts.timing, + duration: duration, + onProcess: function onProcess(process) { + context.clearRect(0, 0, opts.width, opts.height); + if (opts.rotate) { + contextRotate(context, opts); + } + drawYAxisGrid(categories, opts, config, context); + drawXAxis(categories, opts, config, context); + var _drawMountDataPoints = drawMountDataPoints(series, opts, config, context, process), + xAxisPoints = _drawMountDataPoints.xAxisPoints, + calPoints = _drawMountDataPoints.calPoints, + eachSpacing = _drawMountDataPoints.eachSpacing; + opts.chartData.xAxisPoints = xAxisPoints; + opts.chartData.calPoints = calPoints; + opts.chartData.eachSpacing = eachSpacing; + drawYAxis(series, opts, config, context); + if (opts.enableMarkLine !== false && process === 1) { + drawMarkLine(opts, config, context); + } + drawLegend(opts.series, opts, config, context, opts.chartData); + drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints); + drawCanvas(opts, context); + }, + onAnimationFinish: function onAnimationFinish() { + _this.uevent.trigger('renderComplete'); + } + }); + break; + case 'bar': + this.animationInstance = new Animation({ + timing: opts.timing, + duration: duration, + onProcess: function onProcess(process) { + context.clearRect(0, 0, opts.width, opts.height); + if (opts.rotate) { + contextRotate(context, opts); + } + drawXAxis(categories, opts, config, context); + var _drawBarDataPoints = drawBarDataPoints(series, opts, config, context, process), + yAxisPoints = _drawBarDataPoints.yAxisPoints, + calPoints = _drawBarDataPoints.calPoints, + eachSpacing = _drawBarDataPoints.eachSpacing; + opts.chartData.yAxisPoints = yAxisPoints; + opts.chartData.xAxisPoints = opts.chartData.xAxisData.xAxisPoints; + opts.chartData.calPoints = calPoints; + opts.chartData.eachSpacing = eachSpacing; + drawYAxis(series, opts, config, context); + if (opts.enableMarkLine !== false && process === 1) { + drawMarkLine(opts, config, context); + } + drawLegend(opts.series, opts, config, context, opts.chartData); + drawToolTipBridge(opts, config, context, process, eachSpacing, yAxisPoints); + drawCanvas(opts, context); + }, + onAnimationFinish: function onAnimationFinish() { + _this.uevent.trigger('renderComplete'); + } + }); + break; + case 'area': + this.animationInstance = new Animation({ + timing: opts.timing, + duration: duration, + onProcess: function onProcess(process) { + context.clearRect(0, 0, opts.width, opts.height); + if (opts.rotate) { + contextRotate(context, opts); + } + drawYAxisGrid(categories, opts, config, context); + drawXAxis(categories, opts, config, context); + var _drawAreaDataPoints = drawAreaDataPoints(series, opts, config, context, process), + xAxisPoints = _drawAreaDataPoints.xAxisPoints, + calPoints = _drawAreaDataPoints.calPoints, + eachSpacing = _drawAreaDataPoints.eachSpacing; + opts.chartData.xAxisPoints = xAxisPoints; + opts.chartData.calPoints = calPoints; + opts.chartData.eachSpacing = eachSpacing; + drawYAxis(series, opts, config, context); + if (opts.enableMarkLine !== false && process === 1) { + drawMarkLine(opts, config, context); + } + drawLegend(opts.series, opts, config, context, opts.chartData); + drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints); + drawCanvas(opts, context); + }, + onAnimationFinish: function onAnimationFinish() { + _this.uevent.trigger('renderComplete'); + } + }); + break; + case 'ring': + this.animationInstance = new Animation({ + timing: opts.timing, + duration: duration, + onProcess: function onProcess(process) { + context.clearRect(0, 0, opts.width, opts.height); + if (opts.rotate) { + contextRotate(context, opts); + } + opts.chartData.pieData = drawPieDataPoints(series, opts, config, context, process); + drawLegend(opts.series, opts, config, context, opts.chartData); + drawToolTipBridge(opts, config, context, process); + drawCanvas(opts, context); + }, + onAnimationFinish: function onAnimationFinish() { + _this.uevent.trigger('renderComplete'); + } + }); + break; + case 'pie': + this.animationInstance = new Animation({ + timing: opts.timing, + duration: duration, + onProcess: function onProcess(process) { + context.clearRect(0, 0, opts.width, opts.height); + if (opts.rotate) { + contextRotate(context, opts); + } + opts.chartData.pieData = drawPieDataPoints(series, opts, config, context, process); + drawLegend(opts.series, opts, config, context, opts.chartData); + drawToolTipBridge(opts, config, context, process); + drawCanvas(opts, context); + }, + onAnimationFinish: function onAnimationFinish() { + _this.uevent.trigger('renderComplete'); + } + }); + break; + case 'rose': + this.animationInstance = new Animation({ + timing: opts.timing, + duration: duration, + onProcess: function onProcess(process) { + context.clearRect(0, 0, opts.width, opts.height); + if (opts.rotate) { + contextRotate(context, opts); + } + opts.chartData.pieData = drawRoseDataPoints(series, opts, config, context, process); + drawLegend(opts.series, opts, config, context, opts.chartData); + drawToolTipBridge(opts, config, context, process); + drawCanvas(opts, context); + }, + onAnimationFinish: function onAnimationFinish() { + _this.uevent.trigger('renderComplete'); + } + }); + break; + case 'radar': + this.animationInstance = new Animation({ + timing: opts.timing, + duration: duration, + onProcess: function onProcess(process) { + context.clearRect(0, 0, opts.width, opts.height); + if (opts.rotate) { + contextRotate(context, opts); + } + opts.chartData.radarData = drawRadarDataPoints(series, opts, config, context, process); + drawLegend(opts.series, opts, config, context, opts.chartData); + drawToolTipBridge(opts, config, context, process); + drawCanvas(opts, context); + }, + onAnimationFinish: function onAnimationFinish() { + _this.uevent.trigger('renderComplete'); + } + }); + break; + case 'arcbar': + this.animationInstance = new Animation({ + timing: opts.timing, + duration: duration, + onProcess: function onProcess(process) { + context.clearRect(0, 0, opts.width, opts.height); + if (opts.rotate) { + contextRotate(context, opts); + } + opts.chartData.arcbarData = drawArcbarDataPoints(series, opts, config, context, process); + drawCanvas(opts, context); + }, + onAnimationFinish: function onAnimationFinish() { + _this.uevent.trigger('renderComplete'); + } + }); + break; + case 'gauge': + this.animationInstance = new Animation({ + timing: opts.timing, + duration: duration, + onProcess: function onProcess(process) { + context.clearRect(0, 0, opts.width, opts.height); + if (opts.rotate) { + contextRotate(context, opts); + } + opts.chartData.gaugeData = drawGaugeDataPoints(categories, series, opts, config, context, process); + drawCanvas(opts, context); + }, + onAnimationFinish: function onAnimationFinish() { + _this.uevent.trigger('renderComplete'); + } + }); + break; + case 'candle': + this.animationInstance = new Animation({ + timing: opts.timing, + duration: duration, + onProcess: function onProcess(process) { + context.clearRect(0, 0, opts.width, opts.height); + if (opts.rotate) { + contextRotate(context, opts); + } + drawYAxisGrid(categories, opts, config, context); + drawXAxis(categories, opts, config, context); + var _drawCandleDataPoints = drawCandleDataPoints(series, seriesMA, opts, config, context, process), + xAxisPoints = _drawCandleDataPoints.xAxisPoints, + calPoints = _drawCandleDataPoints.calPoints, + eachSpacing = _drawCandleDataPoints.eachSpacing; + opts.chartData.xAxisPoints = xAxisPoints; + opts.chartData.calPoints = calPoints; + opts.chartData.eachSpacing = eachSpacing; + drawYAxis(series, opts, config, context); + if (opts.enableMarkLine !== false && process === 1) { + drawMarkLine(opts, config, context); + } + if (seriesMA) { + drawLegend(seriesMA, opts, config, context, opts.chartData); + } else { + drawLegend(opts.series, opts, config, context, opts.chartData); + } + drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints); + drawCanvas(opts, context); + }, + onAnimationFinish: function onAnimationFinish() { + _this.uevent.trigger('renderComplete'); + } + }); + break; + } +} + +function uChartsEvent() { + this.events = {}; +} + +uChartsEvent.prototype.addEventListener = function(type, listener) { + this.events[type] = this.events[type] || []; + this.events[type].push(listener); +}; + +uChartsEvent.prototype.delEventListener = function(type) { + this.events[type] = []; +}; + +uChartsEvent.prototype.trigger = function() { + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + var type = args[0]; + var params = args.slice(1); + if (!!this.events[type]) { + this.events[type].forEach(function(listener) { + try { + listener.apply(null, params); + } catch (e) { + //console.log('[uCharts] '+e); + } + }); + } +}; + +var uCharts = function uCharts(opts) { + opts.pix = opts.pixelRatio ? opts.pixelRatio : 1; + opts.fontSize = opts.fontSize ? opts.fontSize : 13; + opts.fontColor = opts.fontColor ? opts.fontColor : config.fontColor; + if (opts.background == "" || opts.background == "none") { + opts.background = "#FFFFFF" + } + opts.title = assign({}, opts.title); + opts.subtitle = assign({}, opts.subtitle); + opts.duration = opts.duration ? opts.duration : 1000; + opts.yAxis = assign({}, { + data: [], + showTitle: false, + disabled: false, + disableGrid: false, + gridSet: 'number', + splitNumber: 5, + gridType: 'solid', + dashLength: 4 * opts.pix, + gridColor: '#cccccc', + padding: 10, + fontColor: '#666666' + }, opts.yAxis); + opts.xAxis = assign({}, { + rotateLabel: false, + rotateAngle:45, + disabled: false, + disableGrid: false, + splitNumber: 5, + calibration:false, + fontColor: '#666666', + fontSize: 13, + lineHeight: 20, + marginTop: 0, + gridType: 'solid', + dashLength: 4, + scrollAlign: 'left', + boundaryGap: 'center', + axisLine: true, + axisLineColor: '#cccccc', + titleFontSize: 13, + titleOffsetY: 0, + titleOffsetX: 0, + titleFontColor: '#666666' + }, opts.xAxis); + opts.xAxis.scrollPosition = opts.xAxis.scrollAlign; + opts.legend = assign({}, { + show: true, + position: 'bottom', + float: 'center', + backgroundColor: 'rgba(0,0,0,0)', + borderColor: 'rgba(0,0,0,0)', + borderWidth: 0, + padding: 5, + margin: 5, + itemGap: 10, + fontSize: opts.fontSize, + lineHeight: opts.fontSize, + fontColor: opts.fontColor, + formatter: {}, + hiddenColor: '#CECECE' + }, opts.legend); + opts.extra = assign({ + tooltip:{ + legendShape: 'auto' + } + }, opts.extra); + opts.rotate = opts.rotate ? true : false; + opts.animation = opts.animation ? true : false; + opts.rotate = opts.rotate ? true : false; + opts.canvas2d = opts.canvas2d ? true : false; + + let config$$1 = assign({}, config); + config$$1.color = opts.color ? opts.color : config$$1.color; + if (opts.type == 'pie') { + config$$1.pieChartLinePadding = opts.dataLabel === false ? 0 : opts.extra.pie.labelWidth * opts.pix || config$$1.pieChartLinePadding * opts.pix; + } + if (opts.type == 'ring') { + config$$1.pieChartLinePadding = opts.dataLabel === false ? 0 : opts.extra.ring.labelWidth * opts.pix || config$$1.pieChartLinePadding * opts.pix; + } + if (opts.type == 'rose') { + config$$1.pieChartLinePadding = opts.dataLabel === false ? 0 : opts.extra.rose.labelWidth * opts.pix || config$$1.pieChartLinePadding * opts.pix; + } + config$$1.pieChartTextPadding = opts.dataLabel === false ? 0 : config$$1.pieChartTextPadding * opts.pix; + + //屏幕旋转 + config$$1.rotate = opts.rotate; + if (opts.rotate) { + let tempWidth = opts.width; + let tempHeight = opts.height; + opts.width = tempHeight; + opts.height = tempWidth; + } + + //适配高分屏 + opts.padding = opts.padding ? opts.padding : config$$1.padding; + config$$1.yAxisWidth = config.yAxisWidth * opts.pix; + config$$1.fontSize = opts.fontSize * opts.pix; + config$$1.titleFontSize = config.titleFontSize * opts.pix; + config$$1.subtitleFontSize = config.subtitleFontSize * opts.pix; + if(!opts.context){ + throw new Error('[uCharts] 未获取到context!注意:v2.0版本后,需要自行获取canvas的绘图上下文并传入opts.context!'); + } + this.context = opts.context; + if (!this.context.setTextAlign) { + this.context.setStrokeStyle = function(e) { + return this.strokeStyle = e; + } + this.context.setLineWidth = function(e) { + return this.lineWidth = e; + } + this.context.setLineCap = function(e) { + return this.lineCap = e; + } + this.context.setFontSize = function(e) { + return this.font = e + "px sans-serif"; + } + this.context.setFillStyle = function(e) { + return this.fillStyle = e; + } + this.context.setTextAlign = function(e) { + return this.textAlign = e; + } + this.context.setTextBaseline = function(e) { + return this.textBaseline = e; + } + this.context.setShadow = function(offsetX,offsetY,blur,color) { + this.shadowColor = color; + this.shadowOffsetX = offsetX; + this.shadowOffsetY = offsetY; + this.shadowBlur = blur; + } + this.context.draw = function() {} + } + //兼容NVUEsetLineDash + if(!this.context.setLineDash){ + this.context.setLineDash = function(e) {} + } + opts.chartData = {}; + this.uevent = new uChartsEvent(); + this.scrollOption = { + currentOffset: 0, + startTouchX: 0, + distance: 0, + lastMoveTime: 0 + }; + this.opts = opts; + this.config = config$$1; + drawCharts.call(this, opts.type, opts, config$$1, this.context); +}; + +uCharts.prototype.updateData = function() { + let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + this.opts = assign({}, this.opts, data); + this.opts.updateData = true; + let scrollPosition = data.scrollPosition || 'current'; + switch (scrollPosition) { + case 'current': + this.opts._scrollDistance_ = this.scrollOption.currentOffset; + break; + case 'left': + this.opts._scrollDistance_ = 0; + this.scrollOption = { + currentOffset: 0, + startTouchX: 0, + distance: 0, + lastMoveTime: 0 + }; + break; + case 'right': + let _calYAxisData = calYAxisData(this.opts.series, this.opts, this.config, this.context), yAxisWidth = _calYAxisData.yAxisWidth; + this.config.yAxisWidth = yAxisWidth; + let offsetLeft = 0; + let _getXAxisPoints0 = getXAxisPoints(this.opts.categories, this.opts, this.config), xAxisPoints = _getXAxisPoints0.xAxisPoints, + startX = _getXAxisPoints0.startX, + endX = _getXAxisPoints0.endX, + eachSpacing = _getXAxisPoints0.eachSpacing; + let totalWidth = eachSpacing * (xAxisPoints.length - 1); + let screenWidth = endX - startX; + offsetLeft = screenWidth - totalWidth; + this.scrollOption = { + currentOffset: offsetLeft, + startTouchX: offsetLeft, + distance: 0, + lastMoveTime: 0 + }; + this.opts._scrollDistance_ = offsetLeft; + break; + } + drawCharts.call(this, this.opts.type, this.opts, this.config, this.context); +}; + +uCharts.prototype.zoom = function() { + var val = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.opts.xAxis.itemCount; + if (this.opts.enableScroll !== true) { + console.log('[uCharts] 请启用滚动条后使用') + return; + } + //当前屏幕中间点 + let centerPoint = Math.round(Math.abs(this.scrollOption.currentOffset) / this.opts.chartData.eachSpacing) + Math.round(this.opts.xAxis.itemCount / 2); + this.opts.animation = false; + this.opts.xAxis.itemCount = val.itemCount; + //重新计算x轴偏移距离 + let _calYAxisData = calYAxisData(this.opts.series, this.opts, this.config, this.context), + yAxisWidth = _calYAxisData.yAxisWidth; + this.config.yAxisWidth = yAxisWidth; + let offsetLeft = 0; + let _getXAxisPoints0 = getXAxisPoints(this.opts.categories, this.opts, this.config), + xAxisPoints = _getXAxisPoints0.xAxisPoints, + startX = _getXAxisPoints0.startX, + endX = _getXAxisPoints0.endX, + eachSpacing = _getXAxisPoints0.eachSpacing; + let centerLeft = eachSpacing * centerPoint; + let screenWidth = endX - startX; + let MaxLeft = screenWidth - eachSpacing * (xAxisPoints.length - 1); + offsetLeft = screenWidth / 2 - centerLeft; + if (offsetLeft > 0) { + offsetLeft = 0; + } + if (offsetLeft < MaxLeft) { + offsetLeft = MaxLeft; + } + this.scrollOption = { + currentOffset: offsetLeft, + startTouchX: 0, + distance: 0, + lastMoveTime: 0 + }; + calValidDistance(this, offsetLeft, this.opts.chartData, this.config, this.opts); + this.opts._scrollDistance_ = offsetLeft; + drawCharts.call(this, this.opts.type, this.opts, this.config, this.context); +}; + +uCharts.prototype.dobuleZoom = function(e) { + if (this.opts.enableScroll !== true) { + console.log('[uCharts] 请启用滚动条后使用') + return; + } + const tcs = e.changedTouches; + if (tcs.length < 2) { + return; + } + for (var i = 0; i < tcs.length; i++) { + tcs[i].x = tcs[i].x ? tcs[i].x : tcs[i].clientX; + tcs[i].y = tcs[i].y ? tcs[i].y : tcs[i].clientY; + } + const ntcs = [getTouches(tcs[0], this.opts, e),getTouches(tcs[1], this.opts, e)]; + const xlength = Math.abs(ntcs[0].x - ntcs[1].x); + // 记录初始的两指之间的数据 + if(!this.scrollOption.moveCount){ + let cts0 = {changedTouches:[{x:tcs[0].x,y:this.opts.area[0] / this.opts.pix + 2}]}; + let cts1 = {changedTouches:[{x:tcs[1].x,y:this.opts.area[0] / this.opts.pix + 2}]}; + if(this.opts.rotate){ + cts0 = {changedTouches:[{x:this.opts.height / this.opts.pix - this.opts.area[0] / this.opts.pix - 2,y:tcs[0].y}]}; + cts1 = {changedTouches:[{x:this.opts.height / this.opts.pix - this.opts.area[0] / this.opts.pix - 2,y:tcs[1].y}]}; + } + const moveCurrent1 = this.getCurrentDataIndex(cts0).index; + const moveCurrent2 = this.getCurrentDataIndex(cts1).index; + const moveCount = Math.abs(moveCurrent1 - moveCurrent2); + this.scrollOption.moveCount = moveCount; + this.scrollOption.moveCurrent1 = Math.min(moveCurrent1, moveCurrent2); + this.scrollOption.moveCurrent2 = Math.max(moveCurrent1, moveCurrent2); + return; + } + + let currentEachSpacing = xlength / this.scrollOption.moveCount; + let itemCount = (this.opts.width - this.opts.area[1] - this.opts.area[3]) / currentEachSpacing; + itemCount = itemCount <= 2 ? 2 : itemCount; + itemCount = itemCount >= this.opts.categories.length ? this.opts.categories.length : itemCount; + this.opts.animation = false; + this.opts.xAxis.itemCount = itemCount; + // 重新计算滚动条偏移距离 + let offsetLeft = 0; + let _getXAxisPoints0 = getXAxisPoints(this.opts.categories, this.opts, this.config), + xAxisPoints = _getXAxisPoints0.xAxisPoints, + startX = _getXAxisPoints0.startX, + endX = _getXAxisPoints0.endX, + eachSpacing = _getXAxisPoints0.eachSpacing; + let currentLeft = eachSpacing * this.scrollOption.moveCurrent1; + let screenWidth = endX - startX; + let MaxLeft = screenWidth - eachSpacing * (xAxisPoints.length - 1); + offsetLeft = -currentLeft+Math.min(ntcs[0].x,ntcs[1].x)-this.opts.area[3]-eachSpacing; + if (offsetLeft > 0) { + offsetLeft = 0; + } + if (offsetLeft < MaxLeft) { + offsetLeft = MaxLeft; + } + this.scrollOption.currentOffset= offsetLeft; + this.scrollOption.startTouchX= 0; + this.scrollOption.distance=0; + calValidDistance(this, offsetLeft, this.opts.chartData, this.config, this.opts); + this.opts._scrollDistance_ = offsetLeft; + drawCharts.call(this, this.opts.type, this.opts, this.config, this.context); +} + +uCharts.prototype.stopAnimation = function() { + this.animationInstance && this.animationInstance.stop(); +}; + +uCharts.prototype.addEventListener = function(type, listener) { + this.uevent.addEventListener(type, listener); +}; + +uCharts.prototype.delEventListener = function(type) { + this.uevent.delEventListener(type); +}; + +uCharts.prototype.getCurrentDataIndex = function(e) { + var touches = null; + if (e.changedTouches) { + touches = e.changedTouches[0]; + } else { + touches = e.mp.changedTouches[0]; + } + if (touches) { + let _touches$ = getTouches(touches, this.opts, e); + if (this.opts.type === 'pie' || this.opts.type === 'ring') { + return findPieChartCurrentIndex({ + x: _touches$.x, + y: _touches$.y + }, this.opts.chartData.pieData, this.opts); + } else if (this.opts.type === 'rose') { + return findRoseChartCurrentIndex({ + x: _touches$.x, + y: _touches$.y + }, this.opts.chartData.pieData, this.opts); + } else if (this.opts.type === 'radar') { + return findRadarChartCurrentIndex({ + x: _touches$.x, + y: _touches$.y + }, this.opts.chartData.radarData, this.opts.categories.length); + } else if (this.opts.type === 'funnel') { + return findFunnelChartCurrentIndex({ + x: _touches$.x, + y: _touches$.y + }, this.opts.chartData.funnelData); + } else if (this.opts.type === 'map') { + return findMapChartCurrentIndex({ + x: _touches$.x, + y: _touches$.y + }, this.opts); + } else if (this.opts.type === 'word') { + return findWordChartCurrentIndex({ + x: _touches$.x, + y: _touches$.y + }, this.opts.chartData.wordCloudData); + } else if (this.opts.type === 'bar') { + return findBarChartCurrentIndex({ + x: _touches$.x, + y: _touches$.y + }, this.opts.chartData.calPoints, this.opts, this.config, Math.abs(this.scrollOption.currentOffset)); + } else { + return findCurrentIndex({ + x: _touches$.x, + y: _touches$.y + }, this.opts.chartData.calPoints, this.opts, this.config, Math.abs(this.scrollOption.currentOffset)); + } + } + return -1; +}; + +uCharts.prototype.getLegendDataIndex = function(e) { + var touches = null; + if (e.changedTouches) { + touches = e.changedTouches[0]; + } else { + touches = e.mp.changedTouches[0]; + } + if (touches) { + let _touches$ = getTouches(touches, this.opts, e); + return findLegendIndex({ + x: _touches$.x, + y: _touches$.y + }, this.opts.chartData.legendData); + } + return -1; +}; + +uCharts.prototype.touchLegend = function(e) { + var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var touches = null; + if (e.changedTouches) { + touches = e.changedTouches[0]; + } else { + touches = e.mp.changedTouches[0]; + } + if (touches) { + var _touches$ = getTouches(touches, this.opts, e); + var index = this.getLegendDataIndex(e); + if (index >= 0) { + if (this.opts.type == 'candle') { + this.opts.seriesMA[index].show = !this.opts.seriesMA[index].show; + } else { + this.opts.series[index].show = !this.opts.series[index].show; + } + this.opts.animation = option.animation ? true : false; + this.opts._scrollDistance_ = this.scrollOption.currentOffset; + drawCharts.call(this, this.opts.type, this.opts, this.config, this.context); + } + } + +}; + +uCharts.prototype.showToolTip = function(e) { + var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var touches = null; + if (e.changedTouches) { + touches = e.changedTouches[0]; + } else { + touches = e.mp.changedTouches[0]; + } + if (!touches) { + console.log("[uCharts] 未获取到event坐标信息"); + } + var _touches$ = getTouches(touches, this.opts, e); + var currentOffset = this.scrollOption.currentOffset; + var opts = assign({}, this.opts, { + _scrollDistance_: currentOffset, + animation: false + }); + if (this.opts.type === 'line' || this.opts.type === 'area' || this.opts.type === 'column' || this.opts.type === 'scatter' || this.opts.type === 'bubble') { + var current = this.getCurrentDataIndex(e); + var index = option.index == undefined ? current.index : option.index; + if (index > -1 || index.length>0) { + var seriesData = getSeriesDataItem(this.opts.series, index, current.group); + if (seriesData.length !== 0) { + var _getToolTipData = getToolTipData(seriesData, this.opts, index, current.group, this.opts.categories, option), + textList = _getToolTipData.textList, + offset = _getToolTipData.offset; + offset.y = _touches$.y; + opts.tooltip = { + textList: option.textList !== undefined ? option.textList : textList, + offset: option.offset !== undefined ? option.offset : offset, + option: option, + index: index, + group: current.group + }; + } + } + drawCharts.call(this, opts.type, opts, this.config, this.context); + } + if (this.opts.type === 'mount') { + var index = option.index == undefined ? this.getCurrentDataIndex(e).index : option.index; + if (index > -1) { + var opts = assign({}, this.opts, {animation: false}); + var seriesData = assign({}, opts._series_[index]); + var textList = [{ + text: option.formatter ? option.formatter(seriesData, undefined, index, opts) : seriesData.name + ': ' + seriesData.data, + color: seriesData.color, + legendShape: this.opts.extra.tooltip.legendShape == 'auto' ? seriesData.legendShape : this.opts.extra.tooltip.legendShape + }]; + var offset = { + x: opts.chartData.calPoints[index].x, + y: _touches$.y + }; + opts.tooltip = { + textList: option.textList ? option.textList : textList, + offset: option.offset !== undefined ? option.offset : offset, + option: option, + index: index + }; + } + + drawCharts.call(this, opts.type, opts, this.config, this.context); + } + if (this.opts.type === 'bar') { + var current = this.getCurrentDataIndex(e); + var index = option.index == undefined ? current.index : option.index; + if (index > -1 || index.length>0) { + var seriesData = getSeriesDataItem(this.opts.series, index, current.group); + if (seriesData.length !== 0) { + var _getToolTipData = getToolTipData(seriesData, this.opts, index, current.group, this.opts.categories, option), + textList = _getToolTipData.textList, + offset = _getToolTipData.offset; + offset.x = _touches$.x; + opts.tooltip = { + textList: option.textList !== undefined ? option.textList : textList, + offset: option.offset !== undefined ? option.offset : offset, + option: option, + index: index + }; + } + } + drawCharts.call(this, opts.type, opts, this.config, this.context); + } + if (this.opts.type === 'mix') { + var current = this.getCurrentDataIndex(e); + var index = option.index == undefined ? current.index : option.index; + if (index > -1) { + var currentOffset = this.scrollOption.currentOffset; + var opts = assign({}, this.opts, { + _scrollDistance_: currentOffset, + animation: false + }); + var seriesData = getSeriesDataItem(this.opts.series, index); + if (seriesData.length !== 0) { + var _getMixToolTipData = getMixToolTipData(seriesData, this.opts, index, this.opts.categories, option), + textList = _getMixToolTipData.textList, + offset = _getMixToolTipData.offset; + offset.y = _touches$.y; + opts.tooltip = { + textList: option.textList ? option.textList : textList, + offset: option.offset !== undefined ? option.offset : offset, + option: option, + index: index + }; + } + } + drawCharts.call(this, opts.type, opts, this.config, this.context); + } + if (this.opts.type === 'candle') { + var current = this.getCurrentDataIndex(e); + var index = option.index == undefined ? current.index : option.index; + if (index > -1) { + var currentOffset = this.scrollOption.currentOffset; + var opts = assign({}, this.opts, { + _scrollDistance_: currentOffset, + animation: false + }); + var seriesData = getSeriesDataItem(this.opts.series, index); + if (seriesData.length !== 0) { + var _getToolTipData = getCandleToolTipData(this.opts.series[0].data, seriesData, this.opts, index, this.opts.categories, this.opts.extra.candle, option), + textList = _getToolTipData.textList, + offset = _getToolTipData.offset; + offset.y = _touches$.y; + opts.tooltip = { + textList: option.textList ? option.textList : textList, + offset: option.offset !== undefined ? option.offset : offset, + option: option, + index: index + }; + } + } + drawCharts.call(this, opts.type, opts, this.config, this.context); + } + if (this.opts.type === 'pie' || this.opts.type === 'ring' || this.opts.type === 'rose' || this.opts.type === 'funnel') { + var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index; + if (index > -1) { + var opts = assign({}, this.opts, {animation: false}); + var seriesData = assign({}, opts._series_[index]); + var textList = [{ + text: option.formatter ? option.formatter(seriesData, undefined, index, opts) : seriesData.name + ': ' + seriesData.data, + color: seriesData.color, + legendShape: this.opts.extra.tooltip.legendShape == 'auto' ? seriesData.legendShape : this.opts.extra.tooltip.legendShape + }]; + var offset = { + x: _touches$.x, + y: _touches$.y + }; + opts.tooltip = { + textList: option.textList ? option.textList : textList, + offset: option.offset !== undefined ? option.offset : offset, + option: option, + index: index + }; + } + drawCharts.call(this, opts.type, opts, this.config, this.context); + } + if (this.opts.type === 'map') { + var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index; + if (index > -1) { + var opts = assign({}, this.opts, {animation: false}); + var seriesData = assign({}, this.opts.series[index]); + seriesData.name = seriesData.properties.name + var textList = [{ + text: option.formatter ? option.formatter(seriesData, undefined, index, this.opts) : seriesData.name, + color: seriesData.color, + legendShape: this.opts.extra.tooltip.legendShape == 'auto' ? seriesData.legendShape : this.opts.extra.tooltip.legendShape + }]; + var offset = { + x: _touches$.x, + y: _touches$.y + }; + opts.tooltip = { + textList: option.textList ? option.textList : textList, + offset: option.offset !== undefined ? option.offset : offset, + option: option, + index: index + }; + } + opts.updateData = false; + drawCharts.call(this, opts.type, opts, this.config, this.context); + } + if (this.opts.type === 'word') { + var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index; + if (index > -1) { + var opts = assign({}, this.opts, {animation: false}); + var seriesData = assign({}, this.opts.series[index]); + var textList = [{ + text: option.formatter ? option.formatter(seriesData, undefined, index, this.opts) : seriesData.name, + color: seriesData.color, + legendShape: this.opts.extra.tooltip.legendShape == 'auto' ? seriesData.legendShape : this.opts.extra.tooltip.legendShape + }]; + var offset = { + x: _touches$.x, + y: _touches$.y + }; + opts.tooltip = { + textList: option.textList ? option.textList : textList, + offset: option.offset !== undefined ? option.offset : offset, + option: option, + index: index + }; + } + opts.updateData = false; + drawCharts.call(this, opts.type, opts, this.config, this.context); + } + if (this.opts.type === 'radar') { + var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index; + if (index > -1) { + var opts = assign({}, this.opts, {animation: false}); + var seriesData = getSeriesDataItem(this.opts.series, index); + if (seriesData.length !== 0) { + var textList = seriesData.map((item) => { + return { + text: option.formatter ? option.formatter(item, this.opts.categories[index], index, this.opts) : item.name + ': ' + item.data, + color: item.color, + legendShape: this.opts.extra.tooltip.legendShape == 'auto' ? item.legendShape : this.opts.extra.tooltip.legendShape + }; + }); + var offset = { + x: _touches$.x, + y: _touches$.y + }; + opts.tooltip = { + textList: option.textList ? option.textList : textList, + offset: option.offset !== undefined ? option.offset : offset, + option: option, + index: index + }; + } + } + drawCharts.call(this, opts.type, opts, this.config, this.context); + } +}; + +uCharts.prototype.translate = function(distance) { + this.scrollOption = { + currentOffset: distance, + startTouchX: distance, + distance: 0, + lastMoveTime: 0 + }; + let opts = assign({}, this.opts, { + _scrollDistance_: distance, + animation: false + }); + drawCharts.call(this, this.opts.type, opts, this.config, this.context); +}; + +uCharts.prototype.scrollStart = function(e) { + var touches = null; + if (e.changedTouches) { + touches = e.changedTouches[0]; + } else { + touches = e.mp.changedTouches[0]; + } + var _touches$ = getTouches(touches, this.opts, e); + if (touches && this.opts.enableScroll === true) { + this.scrollOption.startTouchX = _touches$.x; + } +}; + +uCharts.prototype.scroll = function(e) { + if (this.scrollOption.lastMoveTime === 0) { + this.scrollOption.lastMoveTime = Date.now(); + } + let Limit = this.opts.touchMoveLimit || 60; + let currMoveTime = Date.now(); + let duration = currMoveTime - this.scrollOption.lastMoveTime; + if (duration < Math.floor(1000 / Limit)) return; + if (this.scrollOption.startTouchX == 0) return; + this.scrollOption.lastMoveTime = currMoveTime; + var touches = null; + if (e.changedTouches) { + touches = e.changedTouches[0]; + } else { + touches = e.mp.changedTouches[0]; + } + if (touches && this.opts.enableScroll === true) { + var _touches$ = getTouches(touches, this.opts, e); + var _distance; + _distance = _touches$.x - this.scrollOption.startTouchX; + var currentOffset = this.scrollOption.currentOffset; + var validDistance = calValidDistance(this, currentOffset + _distance, this.opts.chartData, this.config, this.opts); + this.scrollOption.distance = _distance = validDistance - currentOffset; + var opts = assign({}, this.opts, { + _scrollDistance_: currentOffset + _distance, + animation: false + }); + this.opts = opts; + drawCharts.call(this, opts.type, opts, this.config, this.context); + return currentOffset + _distance; + } +}; + +uCharts.prototype.scrollEnd = function(e) { + if (this.opts.enableScroll === true) { + var _scrollOption = this.scrollOption, + currentOffset = _scrollOption.currentOffset, + distance = _scrollOption.distance; + this.scrollOption.currentOffset = currentOffset + distance; + this.scrollOption.distance = 0; + this.scrollOption.moveCount = 0; + } +}; + +export default uCharts; \ No newline at end of file diff --git a/uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.min.js b/uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.min.js new file mode 100644 index 0000000..0902ecd --- /dev/null +++ b/uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.min.js @@ -0,0 +1,18 @@ +/* + * uCharts (R) + * 高性能跨平台图表库,支持H5、APP、小程序(微信/支付宝/百度/头条/QQ/360/快手)、Vue、Taro等支持canvas的框架平台 + * Copyright (C) 2021 QIUN (R) 秋云 https://www.ucharts.cn All rights reserved. + * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 ) + * 复制使用请保留本段注释,感谢支持开源! + * + * uCharts (R) 官方网站 + * https://www.uCharts.cn + * + * 开源地址: + * https://gitee.com/uCharts/uCharts + * + * uni-app插件市场地址: + * http://ext.dcloud.net.cn/plugin?id=271 + * + */ +"use strict";var config={version:"v2.5.0-20230101",yAxisWidth:15,xAxisHeight:22,padding:[10,10,10,10],rotate:false,fontSize:13,fontColor:"#666666",dataPointShape:["circle","circle","circle","circle"],color:["#1890FF","#91CB74","#FAC858","#EE6666","#73C0DE","#3CA272","#FC8452","#9A60B4","#ea7ccc"],linearColor:["#0EE2F8","#2BDCA8","#FA7D8D","#EB88E2","#2AE3A0","#0EE2F8","#EB88E2","#6773E3","#F78A85"],pieChartLinePadding:15,pieChartTextPadding:5,titleFontSize:20,subtitleFontSize:15,radarLabelTextMargin:13};var assign=function(e,...t){if(e==null){throw new TypeError("[uCharts] Cannot convert undefined or null to object")}if(!t||t.length<=0){return e}function i(e,a){for(let t in a){e[t]=e[t]&&e[t].toString()==="[object Object]"?i(e[t],a[t]):e[t]=a[t]}return e}t.forEach(t=>{e=i(e,t)});return e};var util={toFixed:function t(e,a){a=a||2;if(this.isFloat(e)){e=e.toFixed(a)}return e},isFloat:function t(e){return e%1!==0},approximatelyEqual:function t(e,a){return Math.abs(e-a)<1e-10},isSameSign:function t(e,a){return Math.abs(e)===e&&Math.abs(a)===a||Math.abs(e)!==e&&Math.abs(a)!==a},isSameXCoordinateArea:function t(e,a){return this.isSameSign(e.x,a.x)},isCollision:function t(e,a){e.end={};e.end.x=e.start.x+e.width;e.end.y=e.start.y-e.height;a.end={};a.end.x=a.start.x+a.width;a.end.y=a.start.y-a.height;var i=a.start.x>e.end.x||a.end.xe.start.y||a.start.y1){if(r.extra.mount.widthRatio>2)r.extra.mount.widthRatio=2;n+=(r.extra.mount.widthRatio-1)*a.eachSpacing}var l=e;if(e>=0){l=0;t.uevent.trigger("scrollLeft");t.scrollOption.position="left";r.xAxis.scrollPosition="left"}else if(Math.abs(e)>=n-o){l=o-n;t.uevent.trigger("scrollRight");t.scrollOption.position="right";r.xAxis.scrollPosition="right"}else{t.scrollOption.position=e;r.xAxis.scrollPosition=e}return l}function isInAngleRange(t,e,a){function i(t){while(t<0){t+=2*Math.PI}while(t>2*Math.PI){t-=2*Math.PI}return t}t=i(t);e=i(e);a=i(a);if(e>a){a+=2*Math.PI;if(t=e&&t<=a}function createCurveControlPoints(t,e){function a(t,e){if(t[e-1]&&t[e+1]){return t[e].y>=Math.max(t[e-1].y,t[e+1].y)||t[e].y<=Math.min(t[e-1].y,t[e+1].y)}else{return false}}function c(t,e){if(t[e-1]&&t[e+1]){return t[e].x>=Math.max(t[e-1].x,t[e+1].x)||t[e].x<=Math.min(t[e-1].x,t[e+1].x)}else{return false}}var i=.2;var r=.2;var o=null;var n=null;var l=null;var s=null;if(e<1){o=t[0].x+(t[1].x-t[0].x)*i;n=t[0].y+(t[1].y-t[0].y)*i}else{o=t[e].x+(t[e+1].x-t[e-1].x)*i;n=t[e].y+(t[e+1].y-t[e-1].y)*i}if(e>t.length-3){var h=t.length-1;l=t[h].x-(t[h].x-t[h-1].x)*r;s=t[h].y-(t[h].y-t[h-1].y)*r}else{l=t[e+1].x-(t[e+2].x-t[e].x)*r;s=t[e+1].y-(t[e+2].y-t[e].y)*r}if(a(t,e+1)){s=t[e+1].y}if(a(t,e)){n=t[e].y}if(c(t,e+1)){l=t[e+1].x}if(c(t,e)){o=t[e].x}if(n>=Math.max(t[e].y,t[e+1].y)||n<=Math.min(t[e].y,t[e+1].y)){n=t[e].y}if(s>=Math.max(t[e].y,t[e+1].y)||s<=Math.min(t[e].y,t[e+1].y)){s=t[e+1].y}if(o>=Math.max(t[e].x,t[e+1].x)||o<=Math.min(t[e].x,t[e+1].x)){o=t[e].x}if(l>=Math.max(t[e].x,t[e+1].x)||l<=Math.min(t[e].x,t[e+1].x)){l=t[e+1].x}return{ctrA:{x:o,y:n},ctrB:{x:l,y:s}}}function convertCoordinateOrigin(t,e,a){return{x:a.x+t,y:a.y-e}}function avoidCollision(t,e){if(e){while(util.isCollision(t,e)){if(t.start.x>0){t.start.y--}else if(t.start.x<0){t.start.y++}else{if(t.start.y>0){t.start.y++}else{t.start.y--}}}}return t}function fixPieSeries(e,a,t){let i=[];if(e.length>0&&e[0].data.constructor.toString().indexOf("Array")>-1){a._pieSeries_=e;let t=e[0].data;for(var r=0;r=1e4){a=1e3}else if(i>=1e3){a=100}else if(i>=100){a=10}else if(i>=10){a=5}else if(i>=1){a=1}else if(i>=.1){a=.1}else if(i>=.01){a=.01}else if(i>=.001){a=.001}else if(i>=1e-4){a=1e-4}else if(i>=1e-5){a=1e-5}else{a=1e-6}return{minRange:findRange(t,"lower",a),maxRange:findRange(e,"upper",a)}}function measureText(a,t,e){var i=0;a=String(a);e=false;if(e!==false&&e!==undefined&&e.setFontSize&&e.measureText){e.setFontSize(t);return e.measureText(a).width}else{var a=a.split("");for(let e=0;e-1;if(n){let t=filterSeries(e);for(var l=0;l5&&arguments[5]!==undefined?arguments[5]:{};var l=a.chartData.calPoints?a.chartData.calPoints:[];let s={};if(r.length>0){let e=[];for(let t=0;t0){e=o[i]}return{text:n.formatter?n.formatter(t,e,i,a):t.name+": "+t.data,color:t.color,legendShape:a.extra.tooltip.legendShape=="auto"?t.legendShape:a.extra.tooltip.legendShape}});var h={x:Math.round(s.x),y:Math.round(s.y)};return{textList:e,offset:h}}function getMixToolTipData(t,e,a,i){var r=arguments.length>4&&arguments[4]!==undefined?arguments[4]:{};var o=e.chartData.xAxisPoints[a]+e.chartData.eachSpacing/2;var n=t.map(function(t){return{text:r.formatter?r.formatter(t,i[a],a,e):t.name+": "+t.data,color:t.color,disableLegend:t.disableLegend?true:false,legendShape:e.extra.tooltip.legendShape=="auto"?t.legendShape:e.extra.tooltip.legendShape}});n=n.filter(function(t){if(t.disableLegend!==true){return t}});var l={x:Math.round(o),y:0};return{textList:n,offset:l}}function getCandleToolTipData(o,e,n,l,i,t){var r=arguments.length>6&&arguments[6]!==undefined?arguments[6]:{};var a=n.chartData.calPoints;let s=t.color.upFill;let h=t.color.downFill;let c=[s,s,h,s];var d=[];e.map(function(t){if(l==0){if(t.data[1]-t.data[0]<0){c[1]=h}else{c[1]=s}}else{if(t.data[0]o[l-1][1]){c[2]=s}if(t.data[3]4&&arguments[4]!==undefined?arguments[4]:0;var l={index:-1,group:[]};var i=e.chartData.eachSpacing/2;let r=[];if(n&&n.length>0){if(!e.categories){i=0}else{for(let t=1;tt){l.index=e}})}}}return l}function findBarChartCurrentIndex(a,t,e,i){var r=arguments.length>4&&arguments[4]!==undefined?arguments[4]:0;var o={index:-1,group:[]};var n=e.chartData.eachSpacing/2;let l=e.chartData.yAxisPoints;if(t&&t.length>0){if(isInExactChartArea(a,e,i)){l.forEach(function(t,e){if(a.y+r+n>t){o.index=e}})}}return o}function findLegendIndex(o,t,e){let n=-1;let l=0;if(isInExactLegendArea(o,t.area)){let i=t.points;let r=-1;for(let t=0,e=i.length;tt[0]-l&&o.xt[1]-l&&o.ye.start.x&&t.xe.start.y&&t.y=e.area[3]-10&&t.y>=e.area[0]&&t.y<=e.height-e.area[2]}function findRadarChartCurrentIndex(t,e,a){var r=2*Math.PI/a;var o=-1;if(isInExactPieChartArea(t,e.center,e.radius)){var n=function t(e){if(e<0){e+=2*Math.PI}if(e>2*Math.PI){e-=2*Math.PI}return e};var l=Math.atan2(e.center.y-t.y,t.x-e.center.x);l=-1*l;if(l<0){l+=2*Math.PI}var i=e.angleList.map(function(t){t=n(-1*t);return t});i.forEach(function(t,e){var a=n(t-r/2);var i=n(t+r/2);if(i=a&&l<=i||l+2*Math.PI>=a&&l+2*Math.PI<=i){o=e}})}return o}function findFunnelChartCurrentIndex(t,e){var a=-1;for(var i=0,r=e.series.length;io.funnelArea[0]&&t.xo.funnelArea[1]&&t.yo.area[0]&&t.xo.area[1]&&t.ys.width-s.area[1]-s.area[3]){i.push(n);o.push(r-s.legend.itemGap*s.pix);r=e;n=[t]}else{r+=e;n.push(t)}}if(n.length){i.push(n);o.push(r-s.legend.itemGap*s.pix);c.widthArr=o;let t=Math.max.apply(null,o);switch(s.legend.float){case"left":c.area.start.x=s.area[3];c.area.end.x=s.area[3]+t+2*d;break;case"right":c.area.start.x=s.width-s.area[1]-t-2*d;c.area.end.x=s.width-s.area[1];break;default:c.area.start.x=(s.width-t)/2-d;c.area.end.x=(s.width+t)/2+d}c.area.width=t+2*d;c.area.wholeWidth=t+2*d;c.area.height=i.length*u+2*d;c.area.wholeHeight=i.length*u+2*d+2*x;c.points=i}}else{let t=l.length;let e=s.height-s.area[0]-s.area[2]-2*x-2*d;let a=Math.min(Math.floor(e/u),t);c.area.height=a*u+d*2;c.area.wholeHeight=a*u+d*2;switch(s.legend.float){case"top":c.area.start.y=s.area[0]+x;c.area.end.y=s.area[0]+x+c.area.height;break;case"bottom":c.area.start.y=s.height-s.area[2]-x-c.area.height;c.area.end.y=s.height-s.area[2]-x;break;default:c.area.start.y=(s.height-c.area.height)/2;c.area.end.y=(s.height+c.area.height)/2}let i=t%a===0?t/a:Math.floor(t/a+1);let r=[];for(let e=0;ei){i=t}}c.widthArr.push(i);c.heightArr.push(a.length*u+d*2)}let e=0;for(let t=0;t4&&arguments[4]!==undefined?arguments[4]:-1;var i;if(c=="stack"){i=dataCombineStack(t,e.categories.length)}else{i=dataCombine(t)}var r=[];i=i.filter(function(t){if(typeof t==="object"&&t!==null){if(t.constructor.toString().indexOf("Array")>-1){return t!==null}else{return t.value!==null}}else{return t!==null}});i.map(function(t){if(typeof t==="object"){if(t.constructor.toString().indexOf("Array")>-1){if(e.type=="candle"){t.map(function(t){r.push(t)})}else{r.push(t[0])}}else{r.push(t.value)}}else{r.push(t)}});var o=0;var n=0;if(r.length>0){o=Math.min.apply(this,r);n=Math.max.apply(this,r)}if(a>-1){if(typeof e.xAxis.data[a].min==="number"){o=Math.min(e.xAxis.data[a].min,o)}if(typeof e.xAxis.data[a].max==="number"){n=Math.max(e.xAxis.data[a].max,n)}}else{if(typeof e.xAxis.min==="number"){o=Math.min(e.xAxis.min,o)}if(typeof e.xAxis.max==="number"){n=Math.max(e.xAxis.max,n)}}if(o===n){var d=n||10;n+=d}var l=o;var x=n;var f=[];var p=(x-l)/e.xAxis.splitNumber;for(var s=0;s<=e.xAxis.splitNumber;s++){f.push(l+p*s)}return f}function calXAxisData(t,e,a,i){var r=assign({},{type:""},e.extra.bar);var o={angle:0,xAxisHeight:e.xAxis.lineHeight*e.pix+e.xAxis.marginTop*e.pix};o.ranges=getXAxisTextList(t,e,a,r.type);o.rangesFormat=o.ranges.map(function(t){t=util.toFixed(t,2);return t});var n=o.ranges.map(function(t){t=util.toFixed(t,2);return t});o=Object.assign(o,getXAxisPoints(n,e,a));var l=o.eachSpacing;var s=n.map(function(t){return measureText(t,e.xAxis.fontSize*e.pix,i)});if(e.xAxis.disabled===true){o.xAxisHeight=0}return o}function getRadarDataPoints(r,o,n,a,t){var l=arguments.length>5&&arguments[5]!==undefined?arguments[5]:1;var e=t.extra.radar||{};e.max=e.max||0;var s=Math.max(e.max,Math.max.apply(null,dataCombine(a)));var h=[];for(let e=0;e2&&arguments[2]!==undefined?arguments[2]:1;var o=0;var n=0;for(let e=0;e4&&arguments[4]!==undefined?arguments[4]:1;for(let t=0;t4&&arguments[4]!==undefined?arguments[4]:1;var l=0;var s=0;var h=[];for(let e=0;e2&&arguments[2]!==undefined?arguments[2]:1;if(o==1){o=.999999}for(let a=0;a=2){t._proportion_=t._proportion_%2}}return i}function getGaugeArcbarDataPoints(i,r){var o=arguments.length>2&&arguments[2]!==undefined?arguments[2]:1;if(o==1){o=.999999}for(let a=0;a=2){t._proportion_=t._proportion_%2}}return i}function getGaugeAxisPoints(e,a,t){let i;if(t=2){e[t]._endAngle_=e[t]._endAngle_%2}r=e[t]._endAngle_}return e}function getGaugeDataPoints(i,r,o){let n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:1;for(let a=0;a=o.oldData){e._proportion_=(e._endAngle_-e._oldAngle_)*n+o.oldAngle}else{e._proportion_=e._oldAngle_-(e._oldAngle_-e._endAngle_)*n}if(e._proportion_>=2){e._proportion_=e._proportion_%2}}return i}function getPieTextMaxLength(i,r,o,n){i=getPieDataPoints(i);let l=0;for(let a=0;a0){t.width=Math.min(t.width,+n.extra.mix.column.width*n.pix)}if(n.extra.column&&n.extra.column.width&&+n.extra.column.width>0){t.width=Math.min(t.width,+n.extra.column.width*n.pix)}if(t.width<=0){t.width=1}t.x+=(o+.5-r/2)*(t.width+e);return t})}function fixBarData(t,i,r,o,e,n){return t.map(function(t){if(t===null){return null}var e=0;var a=0;e=n.extra.bar.seriesGap*n.pix||0;a=n.extra.bar.categoryGap*n.pix||0;e=Math.min(e,i/r);a=Math.min(a,i/r);t.width=Math.ceil((i-2*a-e*(r-1))/r);if(n.extra.bar&&n.extra.bar.width&&+n.extra.bar.width>0){t.width=Math.min(t.width,+n.extra.bar.width*n.pix)}if(t.width<=0){t.width=1}t.y+=(o+.5-r/2)*(t.width+e);return t})}function fixColumeMeterData(t,e,a,i,r,o,n){var l=o.extra.column.categoryGap*o.pix||0;return t.map(function(t){if(t===null){return null}t.width=e-2*l;if(o.extra.column&&o.extra.column.width&&+o.extra.column.width>0){t.width=Math.min(t.width,+o.extra.column.width*o.pix)}if(i>0){t.width-=n}return t})}function fixColumeStackData(t,a,e,i,r,o,n){var l=o.extra.column.categoryGap*o.pix||0;return t.map(function(t,e){if(t===null){return null}t.width=Math.ceil(a-2*l);if(o.extra.column&&o.extra.column.width&&+o.extra.column.width>0){t.width=Math.min(t.width,+o.extra.column.width*o.pix)}if(t.width<=0){t.width=1}return t})}function fixBarStackData(t,a,e,i,r,o,n){var l=o.extra.bar.categoryGap*o.pix||0;return t.map(function(t,e){if(t===null){return null}t.width=Math.ceil(a-2*l);if(o.extra.bar&&o.extra.bar.width&&+o.extra.bar.width>0){t.width=Math.min(t.width,+o.extra.bar.width*o.pix)}if(t.width<=0){t.width=1}return t})}function getXAxisPoints(t,e,h){var a=e.width-e.area[1]-e.area[3];var i=e.enableScroll?Math.min(e.xAxis.itemCount,t.length):t.length;if((e.type=="line"||e.type=="area"||e.type=="scatter"||e.type=="bubble"||e.type=="bar")&&i>1&&e.xAxis.boundaryGap=="justify"){i-=1}var r=0;if(e.type=="mount"&&e.extra&&e.extra.mount&&e.extra.mount.widthRatio&&e.extra.mount.widthRatio>1){if(e.extra.mount.widthRatio>2)e.extra.mount.widthRatio=2;r=e.extra.mount.widthRatio-1;i+=r}var o=a/i;var n=[];var l=e.area[3];var s=e.width-e.area[1];t.forEach(function(t,e){n.push(l+r/2*o+e*o)});if(e.xAxis.boundaryGap!=="justify"){if(e.enableScroll===true){n.push(l+r*o+t.length*o)}else{n.push(s)}}return{xAxisPoints:n,startX:l,endX:s,eachSpacing:o}}function getCandleDataPoints(t,l,s,h,c,d,a){var x=arguments.length>7&&arguments[7]!==undefined?arguments[7]:1;var e=[];var f=d.height-d.area[0]-d.area[2];t.forEach(function(t,o){if(t===null){e.push(null)}else{var n=[];t.forEach(function(t,e){var a={};a.x=h[o]+Math.round(c/2);var i=t.value||t;var r=f*(i-l)/(s-l);r*=x;a.y=d.height-Math.round(r)-d.area[2];n.push(a)});e.push(n)}});return e}function getDataPoints(t,a,n,l,s,h,e){var c=arguments.length>7&&arguments[7]!==undefined?arguments[7]:1;var d="center";if(h.type=="line"||h.type=="area"||h.type=="scatter"||h.type=="bubble"){d=h.xAxis.boundaryGap}var x=[];var f=h.height-h.area[0]-h.area[2];var p=h.width-h.area[1]-h.area[3];t.forEach(function(i,t){if(i===null){x.push(null)}else{var r={};r.color=i.color;r.x=l[t];var o=i;if(typeof i==="object"&&i!==null){if(i.constructor.toString().indexOf("Array")>-1){let t,e,a;t=[].concat(h.chartData.xAxisData.ranges);e=t.shift();a=t.pop();o=i[1];r.x=h.area[3]+p*(i[0]-e)/(a-e);if(h.type=="bubble"){r.r=i[2];r.t=i[3]}}else{o=i.value}}if(d=="center"){r.x+=s/2}var e=f*(o-a)/(n-a);e*=c;r.y=h.height-e-h.area[2];x.push(r)}});return x}function getLineDataPoints(t,a,n,l,s,h,e,p,c){var c=arguments.length>8&&arguments[8]!==undefined?arguments[8]:1;var d=h.xAxis.boundaryGap;var x=[];var f=h.height-h.area[0]-h.area[2];var u=h.width-h.area[1]-h.area[3];t.forEach(function(i,t){if(i===null){x.push(null)}else{var r={};r.color=i.color;if(p.animation=="vertical"){r.x=l[t];var o=i;if(typeof i==="object"&&i!==null){if(i.constructor.toString().indexOf("Array")>-1){let t,e,a;t=[].concat(h.chartData.xAxisData.ranges);e=t.shift();a=t.pop();o=i[1];r.x=h.area[3]+u*(i[0]-e)/(a-e)}else{o=i.value}}if(d=="center"){r.x+=s/2}var e=f*(o-a)/(n-a);e*=c;r.y=h.height-e-h.area[2];x.push(r)}else{r.x=l[0]+s*t*c;var o=i;if(d=="center"){r.x+=s/2}var e=f*(o-a)/(n-a);r.y=h.height-e-h.area[2];x.push(r)}}});return x}function getColumnDataPoints(t,a,n,l,s,h,e,i,c){var c=arguments.length>8&&arguments[8]!==undefined?arguments[8]:1;var d=[];var x=h.height-h.area[0]-h.area[2];var f=h.width-h.area[1]-h.area[3];t.forEach(function(i,t){if(i===null){d.push(null)}else{var r={};r.color=i.color;r.x=l[t];var o=i;if(typeof i==="object"&&i!==null){if(i.constructor.toString().indexOf("Array")>-1){let t,e,a;t=[].concat(h.chartData.xAxisData.ranges);e=t.shift();a=t.pop();o=i[1];r.x=h.area[3]+f*(i[0]-e)/(a-e)}else{o=i.value}}r.x+=s/2;var e=x*(o*c-a)/(n-a);r.y=h.height-e-h.area[2];d.push(r)}});return d}function getMountDataPoints(t,o,n,l,s,h,e,a){var c=arguments.length>8&&arguments[8]!==undefined?arguments[8]:1;var d=[];var x=h.height-h.area[0]-h.area[2];var i=h.width-h.area[1]-h.area[3];var f=s*e.widthRatio;t.forEach(function(t,e){if(t===null){d.push(null)}else{var a={};a.color=t.color;a.x=l[e];a.x+=s/2;var i=t.data;var r=x*(i*c-o)/(n-o);a.y=h.height-r-h.area[2];a.value=i;a.width=f;d.push(a)}});return d}function getBarDataPoints(t,o,n,l,e,s,a){var h=arguments.length>7&&arguments[7]!==undefined?arguments[7]:1;var c=[];var i=s.height-s.area[0]-s.area[2];var d=s.width-s.area[1]-s.area[3];t.forEach(function(t,e){if(t===null){c.push(null)}else{var a={};a.color=t.color;a.y=l[e];var i=t;if(typeof t==="object"&&t!==null){i=t.value}var r=d*(i-o)/(n-o);r*=h;a.height=r;a.value=i;a.x=r+s.area[3];c.push(a)}});return c}function getStackDataPoints(t,s,h,c,g,d,e,x,y){var f=arguments.length>9&&arguments[9]!==undefined?arguments[9]:1;var p=[];var u=d.height-d.area[0]-d.area[2];t.forEach(function(t,e){if(t===null){p.push(null)}else{var a={};a.color=t.color;a.x=c[e]+Math.round(g/2);if(x>0){var i=0;for(let t=0;t<=x;t++){i+=y[t].data[e]}var r=i-t;var o=u*(i-s)/(h-s);var n=u*(r-s)/(h-s)}else{var i=t;if(typeof t==="object"&&t!==null){i=t.value}var o=u*(i-s)/(h-s);var n=0}var l=n;o*=f;l*=f;a.y=d.height-Math.round(o)-d.area[2];a.y0=d.height-Math.round(l)-d.area[2];p.push(a)}});return p}function getBarStackDataPoints(t,s,h,c,e,d,a,x,g){var f=arguments.length>9&&arguments[9]!==undefined?arguments[9]:1;var p=[];var u=d.width-d.area[1]-d.area[3];t.forEach(function(t,e){if(t===null){p.push(null)}else{var a={};a.color=t.color;a.y=c[e];if(x>0){var i=0;for(let t=0;t<=x;t++){i+=g[t].data[e]}var r=i-t;var o=u*(i-s)/(h-s);var n=u*(r-s)/(h-s)}else{var i=t;if(typeof t==="object"&&t!==null){i=t.value}var o=u*(i-s)/(h-s);var n=0}var l=n;o*=f;l*=f;a.height=o-l;a.x=d.area[3]+o;a.x0=d.area[3]+l;p.push(a)}});return p}function getYAxisTextList(t,e,h,c,a){var d=arguments.length>5&&arguments[5]!==undefined?arguments[5]:-1;var i;if(c=="stack"){i=dataCombineStack(t,e.categories.length)}else{i=dataCombine(t)}var r=[];i=i.filter(function(t){if(typeof t==="object"&&t!==null){if(t.constructor.toString().indexOf("Array")>-1){return t!==null}else{return t.value!==null}}else{return t!==null}});i.map(function(t){if(typeof t==="object"){if(t.constructor.toString().indexOf("Array")>-1){if(e.type=="candle"){t.map(function(t){r.push(t)})}else{r.push(t[1])}}else{r.push(t.value)}}else{r.push(t)}});var o=a.min||0;var n=a.max||0;if(r.length>0){o=Math.min.apply(this,r);n=Math.max.apply(this,r)}if(o===n){if(n==0){n=10}else{o=0}}var l=getDataRange(o,n);var x=a.min===undefined||a.min===null?l.minRange:a.min;var f=a.max===undefined||a.max===null?l.maxRange:a.max;var p=(f-x)/e.yAxis.splitNumber;var u=[];for(var s=0;s<=e.yAxis.splitNumber;s++){u.push(x+p*s)}return u.reverse()}function calYAxisData(a,o,e,n){var l=assign({},{type:""},o.extra.column);var t=o.yAxis.data.length;var s=new Array(t);if(t>0){for(let e=0;e{return t+(i.unit||"")}}i.categories=i.categories||o.categories;h[r]=i.categories}else{if(!i.formatter){i.formatter=(t,e,a)=>{return util.toFixed(t,i.tofix||0)+(i.unit||"")}}h[r]=getYAxisTextList(s[r],o,e,l.type,i,r)}let a=i.fontSize*o.pix||e.fontSize;d[r]={position:i.position?i.position:"left",width:0};c[r]=h[r].map(function(t,e){t=i.formatter(t,e,o);d[r].width=Math.max(d[r].width,measureText(t,a,n)+5);return t});let t=i.calibration?4*o.pix:0;d[r].width+=t+3*o.pix;if(i.disabled===true){d[r].width=0}}}else{var h=new Array(1);var c=new Array(1);var d=new Array(1);if(o.type==="bar"){h[0]=o.categories;if(!o.yAxis.formatter){o.yAxis.formatter=(t,e,a)=>{return t+(a.yAxis.unit||"")}}}else{if(!o.yAxis.formatter){o.yAxis.formatter=(t,e,a)=>{return t.toFixed(a.yAxis.tofix)+(a.yAxis.unit||"")}}h[0]=getYAxisTextList(a,o,e,l.type,{})}d[0]={position:"left",width:0};var i=o.yAxis.fontSize*o.pix||e.fontSize;c[0]=h[0].map(function(t,e){t=o.yAxis.formatter(t,e,o);d[0].width=Math.max(d[0].width,measureText(t,i,n)+5);return t});d[0].width+=3*o.pix;if(o.yAxis.disabled===true){d[0]={position:"left",width:0};o.yAxis.data[0]={disabled:true}}else{o.yAxis.data[0]={disabled:false,position:"left",max:o.yAxis.max,min:o.yAxis.min,formatter:o.yAxis.formatter};if(o.type==="bar"){o.yAxis.data[0].categories=o.categories;o.yAxis.data[0].type="categories"}}}return{rangesFormat:c,ranges:h,yAxisWidth:d}}function calTooltipYAxisData(r,t,o,e,a){let n=[].concat(o.chartData.yAxisData.ranges);let l=o.height-o.area[0]-o.area[2];let s=o.area[0];let h=[];for(let i=0;i0&&r.tooltip.group.includes(n)==false){return}var l=typeof r.tooltip.index==="number"?r.tooltip.index:r.tooltip.index[r.tooltip.group.indexOf(n)];i.beginPath();if(o.activeType=="hollow"){i.setStrokeStyle(e);i.setFillStyle(r.background);i.setLineWidth(2*r.pix)}else{i.setStrokeStyle("#ffffff");i.setFillStyle(e);i.setLineWidth(1*r.pix)}if(a==="diamond"){t.forEach(function(t,e){if(t!==null&&l==e){i.moveTo(t.x,t.y-4.5);i.lineTo(t.x-4.5,t.y);i.lineTo(t.x,t.y+4.5);i.lineTo(t.x+4.5,t.y);i.lineTo(t.x,t.y-4.5)}})}else if(a==="circle"){t.forEach(function(t,e){if(t!==null&&l==e){i.moveTo(t.x+2.5*r.pix,t.y);i.arc(t.x,t.y,3*r.pix,0,2*Math.PI,false)}})}else if(a==="square"){t.forEach(function(t,e){if(t!==null&&l==e){i.moveTo(t.x-3.5,t.y-3.5);i.rect(t.x-3.5,t.y-3.5,7,7)}})}else if(a==="triangle"){t.forEach(function(t,e){if(t!==null&&l==e){i.moveTo(t.x,t.y-4.5);i.lineTo(t.x-4.5,t.y+4.5);i.lineTo(t.x+4.5,t.y+4.5);i.lineTo(t.x,t.y-4.5)}})}else if(a==="none"){return}i.closePath();i.fill();i.stroke()}function drawRingTitle(t,e,a,i){var r=t.title.fontSize||e.titleFontSize;var o=t.subtitle.fontSize||e.subtitleFontSize;var n=t.title.name||"";var l=t.subtitle.name||"";var c=t.title.color||t.fontColor;var d=t.subtitle.color||t.fontColor;var x=n?r:0;var f=l?o:0;var s=5;if(l){var p=measureText(l,o*t.pix,a);var u=i.x-p/2+(t.subtitle.offsetX||0)*t.pix;var h=i.y+o*t.pix/2+(t.subtitle.offsetY||0)*t.pix;if(n){h+=(x*t.pix+s)/2}a.beginPath();a.setFontSize(o*t.pix);a.setFillStyle(d);a.fillText(l,u,h);a.closePath();a.stroke()}if(n){var g=measureText(n,r*t.pix,a);var y=i.x-g/2+(t.title.offsetX||0);var v=i.y+r*t.pix/2+(t.title.offsetY||0)*t.pix;if(l){v-=(f*t.pix+s)/2}a.beginPath();a.setFontSize(r*t.pix);a.setFillStyle(c);a.fillText(n,y,v);a.closePath();a.stroke()}}function drawPointText(t,o,n,l,s){var h=o.data;var c=o.textOffset?o.textOffset:0;t.forEach(function(t,e){if(t!==null){l.beginPath();var a=o.textSize?o.textSize*s.pix:n.fontSize;l.setFontSize(a);l.setFillStyle(o.textColor||s.fontColor);var i=h[e];if(typeof h[e]==="object"&&h[e]!==null){if(h[e].constructor.toString().indexOf("Array")>-1){i=h[e][1]}else{i=h[e].value}}var r=o.formatter?o.formatter(i,e,o,s):i;l.setTextAlign("center");l.fillText(String(r),t.x,t.y-4+c*s.pix);l.closePath();l.stroke();l.setTextAlign("left")}})}function drawColumePointText(t,n,l,s,h){var c=n.data;var d=n.textOffset?n.textOffset:0;var x=h.extra.column.labelPosition;t.forEach(function(t,e){if(t!==null){s.beginPath();var a=n.textSize?n.textSize*h.pix:l.fontSize;s.setFontSize(a);s.setFillStyle(n.textColor||h.fontColor);var i=c[e];if(typeof c[e]==="object"&&c[e]!==null){if(c[e].constructor.toString().indexOf("Array")>-1){i=c[e][1]}else{i=c[e].value}}var r=n.formatter?n.formatter(i,e,n,h):i;s.setTextAlign("center");var o=t.y-4*h.pix+d*h.pix;if(t.y>n.zeroPoints){o=t.y+d*h.pix+a}if(x=="insideTop"){o=t.y+a+d*h.pix;if(t.y>n.zeroPoints){o=t.y-d*h.pix-4*h.pix}}if(x=="center"){o=t.y+d*h.pix+(h.height-h.area[2]-t.y+a)/2;if(n.zeroPointsn.zeroPoints){o=t.y-d*h.pix-(t.y-n.zeroPoints-a)/2}if(h.extra.column.type=="stack"){o=t.y+d*h.pix+(t.y0-t.y+a)/2}}if(x=="bottom"){o=h.height-h.area[2]+d*h.pix-4*h.pix;if(n.zeroPointsn.zeroPoints){o=n.zeroPoints-d*h.pix+a+2*h.pix}if(h.extra.column.type=="stack"){o=t.y0+d*h.pix-4*h.pix}}s.fillText(String(r),t.x,o);s.closePath();s.stroke();s.setTextAlign("left")}})}function drawMountPointText(t,n,l,s,h,c){var e=n.data;var d=n.textOffset?n.textOffset:0;var a=h.extra.mount.labelPosition;t.forEach(function(t,e){if(t!==null){s.beginPath();var a=n[e].textSize?n[e].textSize*h.pix:l.fontSize;s.setFontSize(a);s.setFillStyle(n[e].textColor||h.fontColor);var i=t.value;var r=n[e].formatter?n[e].formatter(i,e,n,h):i;s.setTextAlign("center");var o=t.y-4*h.pix+d*h.pix;if(t.y>c){o=t.y+d*h.pix+a}s.fillText(String(r),t.x,o);s.closePath();s.stroke();s.setTextAlign("left")}})}function drawBarPointText(t,o,n,l,s){var h=o.data;var e=o.textOffset?o.textOffset:0;t.forEach(function(t,e){if(t!==null){l.beginPath();var a=o.textSize?o.textSize*s.pix:n.fontSize;l.setFontSize(a);l.setFillStyle(o.textColor||s.fontColor);var i=h[e];if(typeof h[e]==="object"&&h[e]!==null){i=h[e].value}var r=o.formatter?o.formatter(i,e,o,s):i;l.setTextAlign("left");l.fillText(String(r),t.x+4*s.pix,t.y+a/2-3);l.closePath();l.stroke()}})}function drawGaugeLabel(e,a,i,r,o,n){a-=e.width/2+e.labelOffset*r.pix;a=a<10?10:a;let t;if(e.endAngle=2){l=l%2}s+=x}}function drawRadarLabel(t,s,h,c,d,x){var f=c.extra.radar||{};t.forEach(function(t,e){if(f.labelPointShow===true&&c.categories[e]!==""){var a={x:s*Math.cos(t),y:s*Math.sin(t)};var i=convertCoordinateOrigin(a.x,a.y,h);x.setFillStyle(f.labelPointColor);x.beginPath();x.arc(i.x,i.y,f.labelPointRadius*c.pix,0,2*Math.PI,false);x.closePath();x.fill()}if(f.labelShow===true){var r={x:(s+d.radarLabelTextMargin*c.pix)*Math.cos(t),y:(s+d.radarLabelTextMargin*c.pix)*Math.sin(t)};var o=convertCoordinateOrigin(r.x,r.y,h);var n=o.x;var l=o.y;if(util.approximatelyEqual(r.x,0)){n-=measureText(c.categories[e]||"",d.fontSize,x)/2}else if(r.x<0){n-=measureText(c.categories[e]||"",d.fontSize,x)}x.beginPath();x.setFontSize(d.fontSize);x.setFillStyle(f.labelColor||c.fontColor);x.fillText(c.categories[e]||"",n,l+d.fontSize/2);x.closePath();x.stroke()}})}function drawPieText(n,d,x,f,t,l){var p=x.pieChartLinePadding;var u=[];var g=null;var y=n.map(function(t,e){var a=t.formatter?t.formatter(t,e,n,d):util.toFixed(t._proportion_.toFixed(4)*100)+"%";a=t.labelText?t.labelText:a;var i=2*Math.PI-(t._start_+2*Math.PI*t._proportion_/2);if(t._rose_proportion_){i=2*Math.PI-(t._start_+2*Math.PI*t._rose_proportion_/2)}var r=t.color;var o=t._radius_;return{arc:i,text:a,color:r,radius:o,textColor:t.textColor,textSize:t.textSize,labelShow:t.labelShow}});for(let c=0;c=0?e+x.pieChartTextPadding:e-x.pieChartTextPadding;let n=a;let l=measureText(t.text,t.textSize*d.pix||x.fontSize,f);let s=n;if(g&&util.isSameXCoordinateArea(g.start,{x:o})){if(o>0){s=Math.min(n,g.start.y)}else if(e<0){s=Math.max(n,g.start.y)}else{if(n>0){s=Math.max(n,g.start.y)}else{s=Math.min(n,g.start.y)}}}if(o<0){o-=l}let h={lineStart:{x:i,y:r},lineEnd:{x:e,y:a},start:{x:o,y:s},width:l,height:x.fontSize,text:t.text,color:t.color,textColor:t.textColor,textSize:t.textSize};g=avoidCollision(h,g);u.push(g)}for(let n=0;nr?r:o.activeWidth;var n=e.area[0];var l=e.height-e.area[2];i.beginPath();i.setFillStyle(hexToRgb(o.activeBgColor,o.activeBgOpacity));i.rect(t-o.activeWidth/2,n,o.activeWidth,l-n);i.closePath();i.fill();i.setFillStyle("#FFFFFF")}function drawBarToolTipSplitArea(t,e,a,i,r){var o=assign({},{activeBgColor:"#000000",activeBgOpacity:.08},e.extra.bar);var n=e.area[3];var l=e.width-e.area[1];i.beginPath();i.setFillStyle(hexToRgb(o.activeBgColor,o.activeBgOpacity));i.rect(n,t-r/2,l-n,r);i.closePath();i.fill();i.setFillStyle("#FFFFFF")}function drawToolTip(e,r,o,a,n,i,f){var l=assign({},{showBox:true,showArrow:true,showCategory:false,bgColor:"#000000",bgOpacity:.7,borderColor:"#000000",borderWidth:0,borderRadius:0,borderOpacity:.7,boxPadding:3,fontColor:"#FFFFFF",fontSize:13,lineHeight:20,legendShow:true,legendShape:"auto",splitLine:true},o.extra.tooltip);if(l.showCategory==true&&o.categories){e.unshift({text:o.categories[o.tooltip.index],color:null})}var s=l.fontSize*o.pix;var p=l.lineHeight*o.pix;var h=l.boxPadding*o.pix;var c=s;var u=5*o.pix;if(l.legendShow==false){c=0;u=0}var d=l.showArrow?8*o.pix:0;var g=false;if(o.type=="line"||o.type=="mount"||o.type=="area"||o.type=="candle"||o.type=="mix"){if(l.splitLine==true){drawToolTipSplitLine(o.tooltip.offset.x,o,a,n)}}r=assign({x:0,y:0},r);r.y-=8*o.pix;var y=e.map(function(t){return measureText(t.text,s,n)});var x=c+u+4*h+Math.max.apply(null,y);var v=2*h+e.length*p;if(l.showBox==false){return}if(r.x-Math.abs(o._scrollDistance_||0)+d+x>o.width){g=true}if(v+r.y>o.height){r.y=o.height-v}n.beginPath();n.setFillStyle(hexToRgb(l.bgColor,l.bgOpacity));n.setLineWidth(l.borderWidth*o.pix);n.setStrokeStyle(hexToRgb(l.borderColor,l.borderOpacity));var t=l.borderRadius;if(g){if(x+d>o.width){r.x=o.width+Math.abs(o._scrollDistance_||0)+d+(x-o.width)}if(x>r.x){r.x=o.width+Math.abs(o._scrollDistance_||0)+d+(x-o.width)}if(l.showArrow){n.moveTo(r.x,r.y+10*o.pix);n.lineTo(r.x-d,r.y+10*o.pix+5*o.pix)}n.arc(r.x-d-t,r.y+v-t,t,0,Math.PI/2,false);n.arc(r.x-d-Math.round(x)+t,r.y+v-t,t,Math.PI/2,Math.PI,false);n.arc(r.x-d-Math.round(x)+t,r.y+t,t,-Math.PI,-Math.PI/2,false);n.arc(r.x-d-t,r.y+t,t,-Math.PI/2,0,false);if(l.showArrow){n.lineTo(r.x-d,r.y+10*o.pix-5*o.pix);n.lineTo(r.x,r.y+10*o.pix)}}else{if(l.showArrow){n.moveTo(r.x,r.y+10*o.pix);n.lineTo(r.x+d,r.y+10*o.pix-5*o.pix)}n.arc(r.x+d+t,r.y+t,t,-Math.PI,-Math.PI/2,false);n.arc(r.x+d+Math.round(x)-t,r.y+t,t,-Math.PI/2,0,false);n.arc(r.x+d+Math.round(x)-t,r.y+v-t,t,0,Math.PI/2,false);n.arc(r.x+d+t,r.y+v-t,t,Math.PI/2,Math.PI,false);if(l.showArrow){n.lineTo(r.x+d,r.y+10*o.pix+5*o.pix);n.lineTo(r.x,r.y+10*o.pix)}}n.closePath();n.fill();if(l.borderWidth>0){n.stroke()}if(l.legendShow){e.forEach(function(t,e){if(t.color!==null){n.beginPath();n.setFillStyle(t.color);var a=r.x+d+2*h;var i=r.y+(p-s)/2+p*e+h+1;if(g){a=r.x-x-d+2*h}switch(t.legendShape){case"line":n.moveTo(a,i+.5*c-2*o.pix);n.fillRect(a,i+.5*c-2*o.pix,c,4*o.pix);break;case"triangle":n.moveTo(a+7.5*o.pix,i+.5*c-5*o.pix);n.lineTo(a+2.5*o.pix,i+.5*c+5*o.pix);n.lineTo(a+12.5*o.pix,i+.5*c+5*o.pix);n.lineTo(a+7.5*o.pix,i+.5*c-5*o.pix);break;case"diamond":n.moveTo(a+7.5*o.pix,i+.5*c-5*o.pix);n.lineTo(a+2.5*o.pix,i+.5*c);n.lineTo(a+7.5*o.pix,i+.5*c+5*o.pix);n.lineTo(a+12.5*o.pix,i+.5*c);n.lineTo(a+7.5*o.pix,i+.5*c-5*o.pix);break;case"circle":n.moveTo(a+7.5*o.pix,i+.5*c);n.arc(a+7.5*o.pix,i+.5*c,5*o.pix,0,2*Math.PI);break;case"rect":n.moveTo(a,i+.5*c-5*o.pix);n.fillRect(a,i+.5*c-5*o.pix,15*o.pix,10*o.pix);break;case"square":n.moveTo(a+2*o.pix,i+.5*c-5*o.pix);n.fillRect(a+2*o.pix,i+.5*c-5*o.pix,10*o.pix,10*o.pix);break;default:n.moveTo(a,i+.5*c-5*o.pix);n.fillRect(a,i+.5*c-5*o.pix,15*o.pix,10*o.pix)}n.closePath();n.fill()}})}e.forEach(function(t,e){var a=r.x+d+2*h+c+u;if(g){a=r.x-x-d+2*h+c+u}var i=r.y+p*e+(p-s)/2-1+h+s;n.beginPath();n.setFontSize(s);n.setTextBaseline("normal");n.setFillStyle(l.fontColor);n.fillText(t.text,a,i);n.closePath();n.stroke()})}function drawColumnDataPoints(T,b,S,w){let A=arguments.length>4&&arguments[4]!==undefined?arguments[4]:1;let t=b.chartData.xAxisData,P=t.xAxisPoints,C=t.eachSpacing;let D=assign({},{type:"group",width:C/2,meterBorder:4,meterFillColor:"#FFFFFF",barBorderCircle:false,barBorderRadius:[],seriesGap:2,linearType:"none",linearOpacity:1,customColor:[],colorStop:0,labelPosition:"outside"},b.extra.column);let M=[];w.save();let L=-2;let F=P.length+2;if(b._scrollDistance_&&b._scrollDistance_!==0&&b.enableScroll===true){w.translate(b._scrollDistance_,0);L=Math.floor(-b._scrollDistance_/C)-2;F=L+b.xAxis.itemCount+4}if(b.tooltip&&b.tooltip.textList&&b.tooltip.textList.length&&A===1){drawToolTipSplitArea(b.tooltip.offset.x,b,S,w,C)}D.customColor=fillCustomColor(D.linearType,D.customColor,T,S);T.forEach(function(a,i){let e,t,o;e=[].concat(b.chartData.yAxisData.ranges[a.index]);t=e.pop();o=e.shift();let x=b.height-b.area[0]-b.area[2];let f=x*(0-t)/(o-t);let n=b.height-Math.round(f)-b.area[2];a.zeroPoints=n;var p=a.data;switch(D.type){case"group":var r=getColumnDataPoints(p,t,o,P,C,b,S,n,A);var u=getStackDataPoints(p,t,o,P,C,b,S,i,T,A);M.push(u);r=fixColumeData(r,C,T.length,i,S,b);for(let t=0;tL&&tn?n:o.y;const d=o.width;const s=Math.abs(n-o.y);if(D.barBorderCircle){D.barBorderRadius=[d/2,d/2,0,0]}if(o.y>n){D.barBorderRadius=[0,0,d/2,d/2]}let[t,e,a,i]=D.barBorderRadius;let r=Math.min(d/2,s/2);t=t>r?r:t;e=e>r?r:e;a=a>r?r:a;i=i>r?r:i;t=t<0?0:t;e=e<0?0:e;a=a<0?0:a;i=i<0?0:i;w.arc(h+t,c+t,t,-Math.PI,-Math.PI/2);w.arc(h+d-e,c+e,e,-Math.PI/2,0);w.arc(h+d-a,c+s-a,a,0,Math.PI/2);w.arc(h+i,c+s-i,i,Math.PI/2,Math.PI)}else{w.moveTo(l,o.y);w.lineTo(l+o.width,o.y);w.lineTo(l+o.width,n);w.lineTo(l,n);w.lineTo(l,o.y);w.setLineWidth(1);w.setStrokeStyle(y)}w.setFillStyle(g);w.closePath();w.fill()}};break;case"stack":var r=getStackDataPoints(p,t,o,P,C,b,S,i,T,A);M.push(r);r=fixColumeStackData(r,C,T.length,i,S,b,T);for(let e=0;eL&&e0){s-=m}w.setFillStyle(g);w.moveTo(l,t.y);w.fillRect(l,t.y,t.width,s);w.closePath();w.fill()}};break;case"meter":var r=getDataPoints(p,t,o,P,C,b,S,A);M.push(r);r=fixColumeMeterData(r,C,T.length,i,S,b,D.meterBorder);for(let t=0;tL&&t0){w.setStrokeStyle(a.color);w.setLineWidth(D.meterBorder*b.pix)}if(i==0){w.setFillStyle(D.meterFillColor)}else{w.setFillStyle(o.color||a.color)}var l=o.x-o.width/2;var s=b.height-o.y-b.area[2];if(D.barBorderRadius&&D.barBorderRadius.length===4||D.barBorderCircle===true){const h=l;const c=o.y;const d=o.width;const s=n-o.y;if(D.barBorderCircle){D.barBorderRadius=[d/2,d/2,0,0]}let[t,e,a,i]=D.barBorderRadius;let r=Math.min(d/2,s/2);t=t>r?r:t;e=e>r?r:e;a=a>r?r:a;i=i>r?r:i;t=t<0?0:t;e=e<0?0:e;a=a<0?0:a;i=i<0?0:i;w.arc(h+t,c+t,t,-Math.PI,-Math.PI/2);w.arc(h+d-e,c+e,e,-Math.PI/2,0);w.arc(h+d-a,c+s-a,a,0,Math.PI/2);w.arc(h+i,c+s-i,i,Math.PI/2,Math.PI);w.fill()}else{w.moveTo(l,o.y);w.lineTo(l+o.width,o.y);w.lineTo(l+o.width,n);w.lineTo(l,n);w.lineTo(l,o.y);w.fill()}if(i==0&&D.meterBorder>0){w.closePath();w.stroke()}}}break}});if(b.dataLabel!==false&&A===1){T.forEach(function(t,e){let a,i,r;a=[].concat(b.chartData.yAxisData.ranges[t.index]);i=a.pop();r=a.shift();var o=t.data;switch(D.type){case"group":var n=getColumnDataPoints(o,i,r,P,C,b,S,A);n=fixColumeData(n,C,T.length,e,S,b);drawColumePointText(n,t,S,w,b);break;case"stack":var n=getStackDataPoints(o,i,r,P,C,b,S,e,T,A);drawColumePointText(n,t,S,w,b);break;case"meter":var n=getDataPoints(o,i,r,P,C,b,S,A);drawColumePointText(n,t,S,w,b);break}})}w.restore();return{xAxisPoints:P,calPoints:M,eachSpacing:C}}function drawMountDataPoints(i,r,o,n){let f=arguments.length>4&&arguments[4]!==undefined?arguments[4]:1;let t=r.chartData.xAxisData,p=t.xAxisPoints,l=t.eachSpacing;let s=assign({},{type:"mount",widthRatio:1,borderWidth:1,barBorderCircle:false,barBorderRadius:[],linearType:"none",linearOpacity:1,customColor:[],colorStop:0},r.extra.mount);s.widthRatio=s.widthRatio<=0?0:s.widthRatio;s.widthRatio=s.widthRatio>=2?2:s.widthRatio;let e=[];n.save();let u=-2;let g=p.length+2;if(r._scrollDistance_&&r._scrollDistance_!==0&&r.enableScroll===true){n.translate(r._scrollDistance_,0);u=Math.floor(-r._scrollDistance_/l)-2;g=u+r.xAxis.itemCount+4}s.customColor=fillCustomColor(s.linearType,s.customColor,i,o);let y,v,m;y=[].concat(r.chartData.yAxisData.ranges[0]);v=y.pop();m=y.shift();let T=r.height-r.area[0]-r.area[2];let b=T*(0-v)/(m-v);let h=r.height-Math.round(b)-r.area[2];var c=getMountDataPoints(i,v,m,p,l,r,s,h,f);switch(s.type){case"bar":for(let t=0;tu&&th?h:o.y;const C=o.width;const S=Math.abs(h-o.y);if(s.barBorderCircle){s.barBorderRadius=[C/2,C/2,0,0]}if(o.y>h){s.barBorderRadius=[0,0,C/2,C/2]}let[t,e,a,i]=s.barBorderRadius;let r=Math.min(C/2,S/2);t=t>r?r:t;e=e>r?r:e;a=a>r?r:a;i=i>r?r:i;t=t<0?0:t;e=e<0?0:e;a=a<0?0:a;i=i<0?0:i;n.arc(A+t,P+t,t,-Math.PI,-Math.PI/2);n.arc(A+C-e,P+e,e,-Math.PI/2,0);n.arc(A+C-a,P+S-a,a,0,Math.PI/2);n.arc(A+i,P+S-i,i,Math.PI/2,Math.PI)}else{n.moveTo(d,o.y);n.lineTo(d+o.width,o.y);n.lineTo(d+o.width,h);n.lineTo(d,h);n.lineTo(d,o.y)}n.setStrokeStyle(w);n.setFillStyle(a);if(s.borderWidth>0){n.setLineWidth(s.borderWidth*r.pix);n.closePath();n.stroke()}n.fill()}};break;case"triangle":for(let e=0;eu&&e0){n.setLineWidth(s.borderWidth*r.pix);n.stroke()}n.fill()}};break;case"mount":for(let e=0;eu&&e0){n.setLineWidth(s.borderWidth*r.pix);n.stroke()}n.fill()}};break;case"sharp":for(let e=0;eu&&e0){n.setLineWidth(s.borderWidth*r.pix);n.stroke()}n.fill()}};break}if(r.dataLabel!==false&&f===1){let t,e,a;t=[].concat(r.chartData.yAxisData.ranges[0]);e=t.pop();a=t.shift();var c=getMountDataPoints(i,e,a,p,l,r,s,h,f);drawMountPointText(c,i,o,n,r,h)}n.restore();return{xAxisPoints:p,calPoints:c,eachSpacing:l}}function drawBarDataPoints(y,v,m,T){let b=arguments.length>4&&arguments[4]!==undefined?arguments[4]:1;let S=[];let w=(v.height-v.area[0]-v.area[2])/v.categories.length;for(let t=0;tC&&tr?r:t;e=e>r?r:e;a=a>r?r:a;i=i>r?r:i;t=t<0?0:t;e=e<0?0:e;a=a<0?0:a;i=i<0?0:i;T.arc(g+i,c+i,i,-Math.PI,-Math.PI/2);T.arc(o.x-t,c+t,t,-Math.PI/2,0);T.arc(o.x-e,c+h-e,e,0,Math.PI/2);T.arc(g+a,c+h-a,a,Math.PI/2,Math.PI)}else{T.moveTo(n,r);T.lineTo(o.x,r);T.lineTo(o.x,r+o.width);T.lineTo(n,r+o.width);T.lineTo(n,r);T.setLineWidth(1);T.setStrokeStyle(u)}T.setFillStyle(l);T.closePath();T.fill()}};break;case"stack":var i=getBarStackDataPoints(x,e,d,S,w,v,m,t,y,b);P.push(i);i=fixBarStackData(i,w,y.length,t,m,v,y);for(let e=0;eC&&e5&&arguments[5]!==undefined?arguments[5]:1;var s=assign({},{color:{},average:{}},h.extra.candle);s.color=assign({},{upLine:"#f04864",upFill:"#f04864",downLine:"#2fc25b",downFill:"#2fc25b"},s.color);s.average=assign({},{show:false,name:[],day:[],color:c.color},s.average);h.extra.candle=s;let a=h.chartData.xAxisData,x=a.xAxisPoints,f=a.eachSpacing;let y=[];d.save();let p=-2;let v=x.length+2;let u=0;let m=h.width+f;if(h._scrollDistance_&&h._scrollDistance_!==0&&h.enableScroll===true){d.translate(h._scrollDistance_,0);p=Math.floor(-h._scrollDistance_/f)-2;v=p+h.xAxis.itemCount+4;u=-h._scrollDistance_-f*2+h.area[3];m=u+(h.xAxis.itemCount+4)*f}if(s.average.show||t){t.forEach(function(e,t){let a,i,r;a=[].concat(h.chartData.yAxisData.ranges[e.index]);i=a.pop();r=a.shift();var o=e.data;var n=getDataPoints(o,i,r,x,f,h,c,g);var l=splitPoints(n,e);for(let t=0;tu){d.moveTo(t.x,t.y);a=1}if(e>0&&t.x>u&&t.xp&&e0){d.setStrokeStyle(s.color.upLine);d.setFillStyle(s.color.upFill);d.setLineWidth(1*h.pix);d.moveTo(t[3].x,t[3].y);d.lineTo(t[1].x,t[1].y);d.lineTo(t[1].x-f/4,t[1].y);d.lineTo(t[0].x-f/4,t[0].y);d.lineTo(t[0].x,t[0].y);d.lineTo(t[2].x,t[2].y);d.lineTo(t[0].x,t[0].y);d.lineTo(t[0].x+f/4,t[0].y);d.lineTo(t[1].x+f/4,t[1].y);d.lineTo(t[1].x,t[1].y);d.moveTo(t[3].x,t[3].y)}else{d.setStrokeStyle(s.color.downLine);d.setFillStyle(s.color.downFill);d.setLineWidth(1*h.pix);d.moveTo(t[3].x,t[3].y);d.lineTo(t[0].x,t[0].y);d.lineTo(t[0].x-f/4,t[0].y);d.lineTo(t[1].x-f/4,t[1].y);d.lineTo(t[1].x,t[1].y);d.lineTo(t[2].x,t[2].y);d.lineTo(t[1].x,t[1].y);d.lineTo(t[1].x+f/4,t[1].y);d.lineTo(t[0].x+f/4,t[0].y);d.lineTo(t[0].x,t[0].y);d.moveTo(t[3].x,t[3].y)}d.closePath();d.fill();d.stroke()}}});d.restore();return{xAxisPoints:x,calPoints:y,eachSpacing:f}}function drawAreaDataPoints(t,s,h,c){var d=arguments.length>4&&arguments[4]!==undefined?arguments[4]:1;var x=assign({},{type:"straight",opacity:.2,addLine:false,width:2,gradient:false,activeType:"none"},s.extra.area);let e=s.chartData.xAxisData,f=e.xAxisPoints,p=e.eachSpacing;let y=s.height-s.area[2];let v=[];c.save();let u=0;let g=s.width+p;if(s._scrollDistance_&&s._scrollDistance_!==0&&s.enableScroll===true){c.translate(s._scrollDistance_,0);u=-s._scrollDistance_-p*2+s.area[3];g=u+(s.xAxis.itemCount+4)*p}t.forEach(function(e,t){let a,i,r;a=[].concat(s.chartData.yAxisData.ranges[e.index]);i=a.pop();r=a.shift();let o=e.data;let n=getDataPoints(o,i,r,f,p,s,h,d);v.push(n);let l=splitPoints(n,e);for(let t=0;t1){let t=r[0];let e=r[r.length-1];c.moveTo(t.x,t.y);let i=0;if(x.type==="curve"){for(let a=0;au){c.moveTo(e.x,e.y);i=1}if(a>0&&e.x>u&&e.xu){c.moveTo(t.x,t.y);i=1}if(e>0&&t.x>u&&t.xu){c.moveTo(t.x,t.y);i=1}if(e>0&&t.x>u&&t.xu){c.moveTo(e.x,e.y);i=1}if(a>0&&e.x>u&&e.xu){c.moveTo(t.x,t.y);i=1}if(e>0&&t.x>u&&t.xu){c.moveTo(t.x,t.y);i=1}if(e>0&&t.x>u&&t.x4&&arguments[4]!==undefined?arguments[4]:1;var i=assign({},{type:"circle"},s.extra.scatter);let e=s.chartData.xAxisData,x=e.xAxisPoints,f=e.eachSpacing;var r=[];c.save();let a=0;let o=s.width+f;if(s._scrollDistance_&&s._scrollDistance_!==0&&s.enableScroll===true){c.translate(s._scrollDistance_,0);a=-s._scrollDistance_-f*2+s.area[3];o=a+(s.xAxis.itemCount+4)*f}t.forEach(function(t,e){let a,i,r;a=[].concat(s.chartData.yAxisData.ranges[t.index]);i=a.pop();r=a.shift();var o=t.data;var n=getDataPoints(o,i,r,x,f,s,h,d);c.beginPath();c.setStrokeStyle(t.color);c.setFillStyle(t.color);c.setLineWidth(1*s.pix);var l=t.pointShape;if(l==="diamond"){n.forEach(function(t,e){if(t!==null){c.moveTo(t.x,t.y-4.5);c.lineTo(t.x-4.5,t.y);c.lineTo(t.x,t.y+4.5);c.lineTo(t.x+4.5,t.y);c.lineTo(t.x,t.y-4.5)}})}else if(l==="circle"){n.forEach(function(t,e){if(t!==null){c.moveTo(t.x+2.5*s.pix,t.y);c.arc(t.x,t.y,3*s.pix,0,2*Math.PI,false)}})}else if(l==="square"){n.forEach(function(t,e){if(t!==null){c.moveTo(t.x-3.5,t.y-3.5);c.rect(t.x-3.5,t.y-3.5,7,7)}})}else if(l==="triangle"){n.forEach(function(t,e){if(t!==null){c.moveTo(t.x,t.y-4.5);c.lineTo(t.x-4.5,t.y+4.5);c.lineTo(t.x+4.5,t.y+4.5);c.lineTo(t.x,t.y-4.5)}})}else if(l==="triangle"){return}c.closePath();c.fill();c.stroke()});if(s.dataLabel!==false&&d===1){t.forEach(function(t,e){let a,i,r;a=[].concat(s.chartData.yAxisData.ranges[t.index]);i=a.pop();r=a.shift();var o=t.data;var n=getDataPoints(o,i,r,x,f,s,h,d);drawPointText(n,t,h,c,s)})}c.restore();return{xAxisPoints:x,calPoints:r,eachSpacing:f}}function drawBubbleDataPoints(a,l,s,h){var c=arguments.length>4&&arguments[4]!==undefined?arguments[4]:1;var d=assign({},{opacity:1,border:2},l.extra.bubble);let t=l.chartData.xAxisData,x=t.xAxisPoints,f=t.eachSpacing;var i=[];h.save();let e=0;let r=l.width+f;if(l._scrollDistance_&&l._scrollDistance_!==0&&l.enableScroll===true){h.translate(l._scrollDistance_,0);e=-l._scrollDistance_-f*2+l.area[3];r=e+(l.xAxis.itemCount+4)*f}a.forEach(function(i,t){let e,a,r;e=[].concat(l.chartData.yAxisData.ranges[i.index]);a=e.pop();r=e.shift();var o=i.data;var n=getDataPoints(o,a,r,x,f,l,s,c);h.beginPath();h.setStrokeStyle(i.color);h.setLineWidth(d.border*l.pix);h.setFillStyle(hexToRgb(i.color,d.opacity));n.forEach(function(t,e){h.moveTo(t.x+t.r,t.y);h.arc(t.x,t.y,t.r*l.pix,0,2*Math.PI,false)});h.closePath();h.fill();h.stroke();if(l.dataLabel!==false&&c===1){n.forEach(function(t,e){h.beginPath();var a=i.textSize*l.pix||s.fontSize;h.setFontSize(a);h.setFillStyle(i.textColor||"#FFFFFF");h.setTextAlign("center");h.fillText(String(t.t),t.x,t.y+a/2);h.closePath();h.stroke();h.setTextAlign("left")})}});h.restore();return{xAxisPoints:x,calPoints:i,eachSpacing:f}}function drawLineDataPoints(t,d,x,f){var p=arguments.length>4&&arguments[4]!==undefined?arguments[4]:1;var u=assign({},{type:"straight",width:2,activeType:"none",linearType:"none",onShadow:false,animation:"vertical"},d.extra.line);u.width*=d.pix;let e=d.chartData.xAxisData,g=e.xAxisPoints,y=e.eachSpacing;var T=[];f.save();let v=0;let m=d.width+y;if(d._scrollDistance_&&d._scrollDistance_!==0&&d.enableScroll===true){f.translate(d._scrollDistance_,0);v=-d._scrollDistance_-y*2+d.area[3];m=v+(d.xAxis.itemCount+4)*y}t.forEach(function(e,c){f.beginPath();f.setStrokeStyle(e.color);f.moveTo(-1e4,-1e4);f.lineTo(-10001,-10001);f.stroke();let t,a,i;t=[].concat(d.chartData.yAxisData.ranges[e.index]);a=t.pop();i=t.shift();var r=e.data;var o=getLineDataPoints(r,a,i,g,y,d,x,u,p);T.push(o);var n=splitPoints(o,e);if(e.lineType=="dash"){let t=e.dashLength?e.dashLength:8;t*=d.pix;f.setLineDash([t,t])}f.beginPath();var l=e.color;if(u.linearType!=="none"&&e.linearColor&&e.linearColor.length>0){var s=f.createLinearGradient(d.chartData.xAxisData.startX,d.height/2,d.chartData.xAxisData.endX,d.height/2);for(var h=0;h0){f.setShadow(e.setShadow[0],e.setShadow[1],e.setShadow[2],e.setShadow[3])}else{f.setShadow(0,0,0,"rgba(0,0,0,0)")}f.setLineWidth(u.width);n.forEach(function(i,t){if(i.length===1){f.moveTo(i[0].x,i[0].y)}else{f.moveTo(i[0].x,i[0].y);let a=0;if(u.type==="curve"){for(let e=0;ev){f.moveTo(t.x,t.y);a=1}if(e>0&&t.x>v&&t.xv){f.moveTo(t.x,t.y);a=1}if(e>0&&t.x>v&&t.xv){f.moveTo(t.x,t.y);a=1}if(e>0&&t.x>v&&t.x4&&arguments[4]!==undefined?arguments[4]:1;let e=v.chartData.xAxisData,b=e.xAxisPoints,S=e.eachSpacing;let w=assign({},{width:S/2,barBorderCircle:false,barBorderRadius:[],seriesGap:2,linearType:"none",linearOpacity:1,customColor:[],colorStop:0},v.extra.mix.column);let A=assign({},{opacity:.2,gradient:false},v.extra.mix.area);let M=assign({},{width:2},v.extra.mix.line);let L=v.height-v.area[2];let F=[];var _=0;var k=0;t.forEach(function(t,e){if(t.type=="column"){k+=1}});T.save();let R=-2;let I=b.length+2;let P=0;let C=v.width+S;if(v._scrollDistance_&&v._scrollDistance_!==0&&v.enableScroll===true){T.translate(v._scrollDistance_,0);R=Math.floor(-v._scrollDistance_/S)-2;I=R+v.xAxis.itemCount+4;P=-v._scrollDistance_-S*2+v.area[3];C=P+(v.xAxis.itemCount+4)*S}w.customColor=fillCustomColor(w.linearType,w.customColor,t,m);t.forEach(function(n,t){let o,x,f;o=[].concat(v.chartData.yAxisData.ranges[n.index]);x=o.pop();f=o.shift();var p=n.data;var a=getDataPoints(p,x,f,b,S,v,m,D);F.push(a);if(n.type=="column"){a=fixColumeData(a,S,k,_,m,v);for(let t=0;tR&&tr?r:t;e=e>r?r:e;a=a>r?r:a;i=i>r?r:i;t=t<0?0:t;e=e<0?0:e;a=a<0?0:a;i=i<0?0:i;T.arc(h+t,c+t,t,-Math.PI,-Math.PI/2);T.arc(h+d-e,c+e,e,-Math.PI/2,0);T.arc(h+d-a,c+s-a,a,0,Math.PI/2);T.arc(h+i,c+s-i,i,Math.PI/2,Math.PI)}else{T.moveTo(l,o.y);T.lineTo(l+o.width,o.y);T.lineTo(l+o.width,v.height-v.area[2]);T.lineTo(l,v.height-v.area[2]);T.lineTo(l,o.y);T.setLineWidth(1);T.setStrokeStyle(u)}T.setFillStyle(e);T.closePath();T.fill()}}_+=1}if(n.type=="area"){let e=splitPoints(a,n);for(let t=0;t1){var r=i[0];let t=i[i.length-1];T.moveTo(r.x,r.y);let a=0;if(n.style==="curve"){for(let e=0;eP){T.moveTo(t.x,t.y);a=1}if(e>0&&t.x>P&&t.xP){T.moveTo(t.x,t.y);a=1}if(e>0&&t.x>P&&t.xP){T.moveTo(t.x,t.y);a=1}if(e>0&&t.x>P&&t.xP){T.moveTo(t.x,t.y);a=1}if(e>0&&t.x>P&&t.x1){if(h.extra.mount.widthRatio>2)h.extra.mount.widthRatio=2;l+=(h.extra.mount.widthRatio-1)*f}var s=n*n/l;var y=0;if(h._scrollDistance_){y=-h._scrollDistance_*n/l}d.beginPath();d.setLineCap("round");d.setLineWidth(6*h.pix);d.setStrokeStyle(h.xAxis.scrollBackgroundColor||"#EFEBEF");d.moveTo(t,o);d.lineTo(a,o);d.stroke();d.closePath();d.beginPath();d.setLineCap("round");d.setLineWidth(6*h.pix);d.setStrokeStyle(h.xAxis.scrollColor||"#A6A6A6");d.moveTo(t+y,o);d.lineTo(t+y+s,o);d.stroke();d.closePath();d.setLineCap("butt")}d.save();if(h._scrollDistance_&&h._scrollDistance_!==0){d.translate(h._scrollDistance_,0)}if(h.xAxis.calibration===true){d.setStrokeStyle(h.xAxis.gridColor||"#cccccc");d.setLineCap("butt");d.setLineWidth(1*h.pix);x.forEach(function(t,e){if(e>0){d.beginPath();d.moveTo(t-f/2,u);d.lineTo(t-f/2,u+3*h.pix);d.closePath();d.stroke()}})}if(h.xAxis.disableGrid!==true){d.setStrokeStyle(h.xAxis.gridColor||"#cccccc");d.setLineCap("butt");d.setLineWidth(1*h.pix);if(h.xAxis.gridType=="dash"){d.setLineDash([h.xAxis.dashLength*h.pix,h.xAxis.dashLength*h.pix])}h.xAxis.gridEval=h.xAxis.gridEval||1;x.forEach(function(t,e){if(e%h.xAxis.gridEval==0){d.beginPath();d.moveTo(t,u);d.lineTo(t,i);d.stroke()}});d.setLineDash([])}if(h.xAxis.disabled!==true){let t=r.length;if(h.xAxis.labelCount){if(h.xAxis.itemCount){t=Math.ceil(r.length/h.xAxis.itemCount*h.xAxis.labelCount)}else{t=h.xAxis.labelCount}t-=1}let e=Math.ceil(r.length/t);let a=[];let i=r.length;for(let t=0;t=h.area[3]-1&&n-Math.abs(o)<=h.width-h.area[1]+1){d.beginPath();d.setFontSize(g);d.setFillStyle(h.xAxis.fontColor||h.fontColor);d.fillText(String(a),x[e]+i,u+h.xAxis.marginTop*h.pix+(h.xAxis.lineHeight-h.xAxis.fontSize)*h.pix/2+h.xAxis.fontSize*h.pix);d.closePath();d.stroke()}})}else{a.forEach(function(t,e){var a=h.xAxis.formatter?h.xAxis.formatter(t):t;var i=h._scrollDistance_||0;var r=p=="center"?x[e]+f/2:x[e];if(r-Math.abs(i)>=h.area[3]-1&&r-Math.abs(i)<=h.width-h.area[1]+1){d.save();d.beginPath();d.setFontSize(g);d.setFillStyle(h.xAxis.fontColor||h.fontColor);var o=measureText(String(a),g,d);var n=x[e];if(p=="center"){n=x[e]+f/2}var l=0;if(h.xAxis.scrollShow){l=6*h.pix}var s=u+h.xAxis.marginTop*h.pix+g-g*Math.abs(Math.sin(c._xAxisTextAngle_));if(h.xAxis.rotateAngle<0){n-=g/2;o=0}else{n+=g/2;o=-o}d.translate(n,s);d.rotate(-1*c._xAxisTextAngle_);d.fillText(String(a),o,0);d.closePath();d.stroke();d.restore()}})}}d.restore();if(h.xAxis.title){d.beginPath();d.setFontSize(h.xAxis.titleFontSize*h.pix);d.setFillStyle(h.xAxis.titleFontColor);d.fillText(String(h.xAxis.title),h.width-h.area[1]+h.xAxis.titleOffsetX*h.pix,h.height-h.area[2]+h.xAxis.marginTop*h.pix+(h.xAxis.lineHeight-h.xAxis.titleFontSize)*h.pix/2+(h.xAxis.titleFontSize+h.xAxis.titleOffsetY)*h.pix);d.closePath();d.stroke()}if(h.xAxis.axisLine){d.beginPath();d.setStrokeStyle(h.xAxis.axisLineColor);d.setLineWidth(1*h.pix);d.moveTo(t,h.height-h.area[2]);d.lineTo(a,h.height-h.area[2]);d.stroke()}}function drawYAxisGrid(c,e,d,a){if(e.yAxis.disableGrid===true){return}let t=e.height-e.area[0]-e.area[2];let i=t/e.yAxis.splitNumber;let r=e.area[3];let o=e.chartData.xAxisData.xAxisPoints,n=e.chartData.xAxisData.eachSpacing;let l=n*(o.length-1);if(e.type=="mount"&&e.extra&&e.extra.mount&&e.extra.mount.widthRatio&&e.extra.mount.widthRatio>1){if(e.extra.mount.widthRatio>2)e.extra.mount.widthRatio=2;l+=(e.extra.mount.widthRatio-1)*n}let x=r+l;let s=[];let h=1;if(e.xAxis.axisLine===false){h=0}for(let t=h;t4&&arguments[4]!==undefined?arguments[4]:1;var n=assign({},{activeOpacity:.5,activeRadius:10,offsetAngle:0,labelWidth:15,ringWidth:30,customRadius:0,border:false,borderWidth:2,borderColor:"#FFFFFF",centerColor:"#FFFFFF",linearType:"none",customColor:[]},r.type=="pie"?r.extra.pie:r.extra.ring);var l={x:r.area[3]+(r.width-r.area[1]-r.area[3])/2,y:r.area[0]+(r.height-r.area[0]-r.area[2])/2};if(e.pieChartLinePadding==0){e.pieChartLinePadding=n.activeRadius*r.pix}var i=Math.min((r.width-r.area[1]-r.area[3])/2-e.pieChartLinePadding-e.pieChartTextPadding-e._pieTextMaxLength_,(r.height-r.area[0]-r.area[2])/2-e.pieChartLinePadding-e.pieChartTextPadding);i=i<10?10:i;if(n.customRadius>0){i=n.customRadius*r.pix}t=getPieDataPoints(t,i,a);var h=n.activeRadius*r.pix;n.customColor=fillCustomColor(n.linearType,n.customColor,t,e);t=t.map(function(t){t._start_+=n.offsetAngle*Math.PI/180;return t});t.forEach(function(t,e){if(r.tooltip){if(r.tooltip.index==e){o.beginPath();o.setFillStyle(hexToRgb(t.color,n.activeOpacity||.5));o.moveTo(l.x,l.y);o.arc(l.x,l.y,t._radius_+h,t._start_,t._start_+2*t._proportion_*Math.PI);o.closePath();o.fill()}}o.beginPath();o.setLineWidth(n.borderWidth*r.pix);o.lineJoin="round";o.setStrokeStyle(n.borderColor);var a=t.color;if(n.linearType=="custom"){var i;if(o.createCircularGradient){i=o.createCircularGradient(l.x,l.y,t._radius_)}else{i=o.createRadialGradient(l.x,l.y,0,l.x,l.y,t._radius_)}i.addColorStop(0,hexToRgb(n.customColor[t.linearIndex],1));i.addColorStop(1,hexToRgb(t.color,1));a=i}o.setFillStyle(a);o.moveTo(l.x,l.y);o.arc(l.x,l.y,t._radius_,t._start_,t._start_+2*t._proportion_*Math.PI);o.closePath();o.fill();if(n.border==true){o.stroke()}});if(r.type==="ring"){var s=i*.6;if(typeof n.ringWidth==="number"&&n.ringWidth>0){s=Math.max(0,i-n.ringWidth*r.pix)}o.beginPath();o.setFillStyle(n.centerColor);o.moveTo(l.x,l.y);o.arc(l.x,l.y,s,0,2*Math.PI);o.closePath();o.fill()}if(r.dataLabel!==false&&a===1){drawPieText(t,r,e,o,i,l)}if(a===1&&r.type==="ring"){drawRingTitle(r,e,o,l)}return{center:l,radius:i,series:t}}function drawRoseDataPoints(t,r,e,o){var a=arguments.length>4&&arguments[4]!==undefined?arguments[4]:1;var n=assign({},{type:"area",activeOpacity:.5,activeRadius:10,offsetAngle:0,labelWidth:15,border:false,borderWidth:2,borderColor:"#FFFFFF",linearType:"none",customColor:[]},r.extra.rose);if(e.pieChartLinePadding==0){e.pieChartLinePadding=n.activeRadius*r.pix}var l={x:r.area[3]+(r.width-r.area[1]-r.area[3])/2,y:r.area[0]+(r.height-r.area[0]-r.area[2])/2};var i=Math.min((r.width-r.area[1]-r.area[3])/2-e.pieChartLinePadding-e.pieChartTextPadding-e._pieTextMaxLength_,(r.height-r.area[0]-r.area[2])/2-e.pieChartLinePadding-e.pieChartTextPadding);i=i<10?10:i;var s=n.minRadius||i*.5;if(i4&&arguments[4]!==undefined?arguments[4]:1;var o=assign({},{startAngle:.75,endAngle:.25,type:"default",direction:"cw",lineCap:"round",width:12,gap:2,linearType:"none",customColor:[]},i.extra.arcbar);a=getArcbarDataPoints(a,o,e);var n;if(o.centerX||o.centerY){n={x:o.centerX?o.centerX:i.width/2,y:o.centerY?o.centerY:i.height/2}}else{n={x:i.width/2,y:i.height/2}}var l;if(o.radius){l=o.radius}else{l=Math.min(n.x,n.y);l-=5*i.pix;l-=o.width/2}l=l<10?10:l;o.customColor=fillCustomColor(o.linearType,o.customColor,a,t);for(let e=0;e5&&arguments[5]!==undefined?arguments[5]:1;var f=assign({},{type:"default",startAngle:.75,endAngle:.25,width:15,labelOffset:13,splitLine:{fixRadius:0,splitNumber:10,width:15,color:"#FFFFFF",childNumber:5,childWidth:5},pointer:{width:15,color:"auto"}},c.extra.gauge);if(f.oldAngle==undefined){f.oldAngle=f.startAngle}if(f.oldData==undefined){f.oldData=0}n=getGaugeAxisPoints(n,f.startAngle,f.endAngle);var p={x:c.width/2,y:c.height/2};var u=Math.min(p.x,p.y);u-=5*c.pix;u-=f.width/2;u=u<10?10:u;var g=u-f.width;var y=0;if(f.type=="progress"){var v=u-f.width*3;d.beginPath();let t=d.createLinearGradient(p.x,p.y-v,p.x,p.y+v);t.addColorStop("0",hexToRgb(h[0].color,.3));t.addColorStop("1.0",hexToRgb("#FFFFFF",.1));d.setFillStyle(t);d.arc(p.x,p.y,v,0,2*Math.PI,false);d.fill();d.setLineWidth(f.width);d.setStrokeStyle(hexToRgb(h[0].color,.3));d.setLineCap("round");d.beginPath();d.arc(p.x,p.y,g,f.startAngle*Math.PI,f.endAngle*Math.PI,false);d.stroke();if(f.endAnglet/o){d.setStrokeStyle(hexToRgb(h[0].color,1))}else{d.setStrokeStyle(hexToRgb(h[0].color,.3))}d.setLineWidth(3*c.pix);d.moveTo(i,0);d.lineTo(r,0);d.stroke();d.rotate(a*Math.PI)}d.restore();h=getGaugeArcbarDataPoints(h,f,x);d.setLineWidth(f.width);d.setStrokeStyle(h[0].color);d.setLineCap("round");d.beginPath();d.arc(p.x,p.y,g,f.startAngle*Math.PI,h[0]._proportion_*Math.PI,false);d.stroke();let l=u-f.width*2.5;d.save();d.translate(p.x,p.y);d.rotate((h[0]._proportion_-1)*Math.PI);d.beginPath();d.setLineWidth(f.width/3);let s=d.createLinearGradient(0,-l*.6,0,l*.6);s.addColorStop("0",hexToRgb("#FFFFFF",0));s.addColorStop("0.5",hexToRgb(h[0].color,1));s.addColorStop("1.0",hexToRgb("#FFFFFF",0));d.setStrokeStyle(s);d.arc(0,0,l,.85*Math.PI,1.15*Math.PI,false);d.stroke();d.beginPath();d.setLineWidth(1);d.setStrokeStyle(h[0].color);d.setFillStyle(h[0].color);d.moveTo(-l-f.width/3/2,-4);d.lineTo(-l-f.width/3/2-4,0);d.lineTo(-l-f.width/3/2,4);d.lineTo(-l-f.width/3/2,-4);d.stroke();d.fill();d.restore()}else{d.setLineWidth(f.width);d.setLineCap("butt");for(let e=0;e4&&arguments[4]!==undefined?arguments[4]:1;var s=assign({},{gridColor:"#cccccc",gridType:"radar",gridEval:1,axisLabel:false,axisLabelTofix:0,labelShow:true,labelColor:"#666666",labelPointShow:false,labelPointRadius:3,labelPointColor:"#cccccc",opacity:.2,gridCount:3,border:false,borderWidth:2,linearType:"none",customColor:[]},n.extra.radar);var a=getRadarCoordinateSeries(n.categories.length);var h={x:n.area[3]+(n.width-n.area[1]-n.area[3])/2,y:n.area[0]+(n.height-n.area[0]-n.area[2])/2};var r=(n.width-n.area[1]-n.area[3])/2;var d=(n.height-n.area[0]-n.area[2])/2;var c=Math.min(r-(getMaxTextListLength(n.categories,i.fontSize,l)+i.radarLabelTextMargin),d-i.radarLabelTextMargin);c-=i.radarLabelTextMargin*n.pix;c=c<10?10:c;c=s.radius?s.radius:c;l.beginPath();l.setLineWidth(1*n.pix);l.setStrokeStyle(s.gridColor);a.forEach(function(t,e){var a=convertCoordinateOrigin(c*Math.cos(t),c*Math.sin(t),h);l.moveTo(h.x,h.y);if(e%s.gridEval==0){l.lineTo(a.x,a.y)}});l.stroke();l.closePath();var x=function t(i){var r={};l.beginPath();l.setLineWidth(1*n.pix);l.setStrokeStyle(s.gridColor);if(s.gridType=="radar"){a.forEach(function(t,e){var a=convertCoordinateOrigin(c/s.gridCount*i*Math.cos(t),c/s.gridCount*i*Math.sin(t),h);if(e===0){r=a;l.moveTo(a.x,a.y)}else{l.lineTo(a.x,a.y)}});l.lineTo(r.x,r.y)}else{var e=convertCoordinateOrigin(c/s.gridCount*i*Math.cos(1.5),c/s.gridCount*i*Math.sin(1.5),h);l.arc(h.x,h.y,h.y-e.y,0,2*Math.PI,false)}l.stroke();l.closePath()};for(var e=1;e<=s.gridCount;e++){x(e)}s.customColor=fillCustomColor(s.linearType,s.customColor,o,i);var f=getRadarDataPoints(a,h,c,o,n,t);f.forEach(function(t,e){l.beginPath();l.setLineWidth(s.borderWidth*n.pix);l.setStrokeStyle(t.color);var a=hexToRgb(t.color,s.opacity);if(s.linearType=="custom"){var i;if(l.createCircularGradient){i=l.createCircularGradient(h.x,h.y,c)}else{i=l.createRadialGradient(h.x,h.y,0,h.x,h.y,c)}i.addColorStop(0,hexToRgb(s.customColor[o[e].linearIndex],s.opacity));i.addColorStop(1,hexToRgb(t.color,s.opacity));a=i}l.setFillStyle(a);t.data.forEach(function(t,e){if(e===0){l.moveTo(t.position.x,t.position.y)}else{l.lineTo(t.position.x,t.position.y)}});l.closePath();l.fill();if(s.border===true){l.stroke()}l.closePath();if(n.dataPointShape!==false){var r=t.data.map(function(t){return t.position});drawPointShape(r,t.color,t.pointShape,l,n)}});if(s.axisLabel===true){const p=Math.max(s.max,Math.max.apply(null,dataCombine(o)));const u=c/s.gridCount;const g=n.fontSize*n.pix;l.setFontSize(g);l.setFillStyle(n.fontColor);l.setTextAlign("left");for(var e=0;eh.x?e.xMax:h.x;e.yMin=e.yMinh.y?e.yMax:h.y}}}return e}function coordinateToPoint(t,e,a,i,r,o){return{x:(e-a.xMin)*i+r,y:(a.yMax-t)*i+o}}function pointToCoordinate(t,e,a,i,r,o){return{x:(e-r)/i+a.xMin,y:a.yMax-(t-o)/i}}function isRayIntersectsSegment(t,e,a){if(e[1]==a[1]){return false}if(e[1]>t[1]&&a[1]>t[1]){return false}if(e[1]t[1]){return false}if(a[1]==t[1]&&e[1]>t[1]){return false}if(e[0]a[t].area[2]||e[1]>a[t].area[3]||e[2]i||e[3]>r){o=true;break}else{o=false}}else{o=true;break}}}return o}function getWordCloudPoint(c,t,d){let x=c.series;switch(t){case"normal":for(let l=0;l.7){return true}else{return false}};for(let h=0;h4&&arguments[4]!==undefined?arguments[4]:1;let a=assign({},{type:"normal",autoColors:true},r.extra.word);if(!r.chartData.wordCloudData){r.chartData.wordCloudData=getWordCloudPoint(r,a.type,o)}o.beginPath();o.setFillStyle(r.background);o.rect(0,0,r.width,r.height);o.fill();o.save();let l=r.chartData.wordCloudData;o.translate(r.width/2,r.height/2);for(let i=0;i0){if(r.tooltip){if(r.tooltip.index==i){o.strokeText(t,(l[i].areav[0]+5-r.width/2)*n-a*(1-n)/2,(l[i].areav[1]+5+e-r.height/2)*n)}else{o.fillText(t,(l[i].areav[0]+5-r.width/2)*n-a*(1-n)/2,(l[i].areav[1]+5+e-r.height/2)*n)}}else{o.fillText(t,(l[i].areav[0]+5-r.width/2)*n-a*(1-n)/2,(l[i].areav[1]+5+e-r.height/2)*n)}}}else{if(l[i].area[0]>0){if(r.tooltip){if(r.tooltip.index==i){o.strokeText(t,(l[i].area[0]+5-r.width/2)*n-a*(1-n)/2,(l[i].area[1]+5+e-r.height/2)*n)}else{o.fillText(t,(l[i].area[0]+5-r.width/2)*n-a*(1-n)/2,(l[i].area[1]+5+e-r.height/2)*n)}}else{o.fillText(t,(l[i].area[0]+5-r.width/2)*n-a*(1-n)/2,(l[i].area[1]+5+e-r.height/2)*n)}}}o.stroke();o.restore()}o.restore()}function drawFunnelDataPoints(t,e,c,a){let d=arguments.length>4&&arguments[4]!==undefined?arguments[4]:1;let i=assign({},{type:"funnel",activeWidth:10,activeOpacity:.3,border:false,borderWidth:2,borderColor:"#FFFFFF",fillOpacity:1,minSize:0,labelAlign:"right",linearType:"none",customColor:[]},e.extra.funnel);let r=(e.height-e.area[0]-e.area[2])/t.length;let o={x:e.area[3]+(e.width-e.area[1]-e.area[3])/2,y:e.height-e.area[2]};let n=i.activeWidth*e.pix;let x=Math.min((e.width-e.area[1]-e.area[3])/2-n,(e.height-e.area[0]-e.area[2])/2-n);let l=getFunnelDataPoints(t,x,i,r,d);a.save();a.translate(o.x,o.y);i.customColor=fillCustomColor(i.linearType,i.customColor,t,c);if(i.type=="pyramid"){for(let t=0;t0){l.area[3]+=i[t].width+l.yAxis.padding*l.pix}else{l.area[3]+=i[t].width}a+=1}else if(i[t].position=="right"){if(e>0){l.area[1]+=i[t].width+l.yAxis.padding*l.pix}else{l.area[1]+=i[t].width}e+=1}}}else{n.yAxisWidth=i}l.chartData.yAxisData=f;if(l.categories&&l.categories.length&&l.type!=="radar"&&l.type!=="gauge"&&l.type!=="bar"){l.chartData.xAxisData=getXAxisPoints(l.categories,l,n);let t=calCategoriesData(l.categories,l,n,l.chartData.xAxisData.eachSpacing,s),e=t.xAxisHeight,a=t.angle;n.xAxisHeight=e;n._xAxisTextAngle_=a;l.area[2]+=e;l.chartData.categoriesData=t}else{if(l.type==="line"||l.type==="area"||l.type==="scatter"||l.type==="bubble"||l.type==="bar"){l.chartData.xAxisData=calXAxisData(c,l,n,s);d=l.chartData.xAxisData.rangesFormat;let t=calCategoriesData(d,l,n,l.chartData.xAxisData.eachSpacing,s),e=t.xAxisHeight,a=t.angle;n.xAxisHeight=e;n._xAxisTextAngle_=a;l.area[2]+=e;l.chartData.categoriesData=t}else{l.chartData.xAxisData={xAxisPoints:[]}}}if(l.enableScroll&&l.xAxis.scrollAlign=="right"&&l._scrollDistance_===undefined){let t=0,e=l.chartData.xAxisData.xAxisPoints,a=l.chartData.xAxisData.startX,i=l.chartData.xAxisData.endX,r=l.chartData.xAxisData.eachSpacing;let o=r*(e.length-1);let n=i-a;t=n-o;h.scrollOption.currentOffset=t;h.scrollOption.startTouchX=t;h.scrollOption.distance=0;h.scrollOption.lastMoveTime=0;l._scrollDistance_=t}if(t==="pie"||t==="ring"||t==="rose"){n._pieTextMaxLength_=l.dataLabel===false?0:getPieTextMaxLength(x,n,s,l)}switch(t){case"word":this.animationInstance=new Animation({timing:l.timing,duration:e,onProcess:function(t){s.clearRect(0,0,l.width,l.height);if(l.rotate){contextRotate(s,l)}drawWordCloudDataPoints(c,l,n,s,t);drawCanvas(l,s)},onAnimationFinish:function t(){h.uevent.trigger("renderComplete")}});break;case"map":s.clearRect(0,0,l.width,l.height);drawMapDataPoints(c,l,n,s);setTimeout(()=>{this.uevent.trigger("renderComplete")},50);break;case"funnel":this.animationInstance=new Animation({timing:l.timing,duration:e,onProcess:function(t){s.clearRect(0,0,l.width,l.height);if(l.rotate){contextRotate(s,l)}l.chartData.funnelData=drawFunnelDataPoints(c,l,n,s,t);drawLegend(l.series,l,n,s,l.chartData);drawToolTipBridge(l,n,s,t);drawCanvas(l,s)},onAnimationFinish:function t(){h.uevent.trigger("renderComplete")}});break;case"line":this.animationInstance=new Animation({timing:l.timing,duration:e,onProcess:function t(e){s.clearRect(0,0,l.width,l.height);if(l.rotate){contextRotate(s,l)}drawYAxisGrid(d,l,n,s);drawXAxis(d,l,n,s);var a=drawLineDataPoints(c,l,n,s,e),i=a.xAxisPoints,r=a.calPoints,o=a.eachSpacing;l.chartData.xAxisPoints=i;l.chartData.calPoints=r;l.chartData.eachSpacing=o;drawYAxis(c,l,n,s);if(l.enableMarkLine!==false&&e===1){drawMarkLine(l,n,s)}drawLegend(l.series,l,n,s,l.chartData);drawToolTipBridge(l,n,s,e,o,i);drawCanvas(l,s)},onAnimationFinish:function t(){h.uevent.trigger("renderComplete")}});break;case"scatter":this.animationInstance=new Animation({timing:l.timing,duration:e,onProcess:function t(e){s.clearRect(0,0,l.width,l.height);if(l.rotate){contextRotate(s,l)}drawYAxisGrid(d,l,n,s);drawXAxis(d,l,n,s);var a=drawScatterDataPoints(c,l,n,s,e),i=a.xAxisPoints,r=a.calPoints,o=a.eachSpacing;l.chartData.xAxisPoints=i;l.chartData.calPoints=r;l.chartData.eachSpacing=o;drawYAxis(c,l,n,s);if(l.enableMarkLine!==false&&e===1){drawMarkLine(l,n,s)}drawLegend(l.series,l,n,s,l.chartData);drawToolTipBridge(l,n,s,e,o,i);drawCanvas(l,s)},onAnimationFinish:function t(){h.uevent.trigger("renderComplete")}});break;case"bubble":this.animationInstance=new Animation({timing:l.timing,duration:e,onProcess:function t(e){s.clearRect(0,0,l.width,l.height);if(l.rotate){contextRotate(s,l)}drawYAxisGrid(d,l,n,s);drawXAxis(d,l,n,s);var a=drawBubbleDataPoints(c,l,n,s,e),i=a.xAxisPoints,r=a.calPoints,o=a.eachSpacing;l.chartData.xAxisPoints=i;l.chartData.calPoints=r;l.chartData.eachSpacing=o;drawYAxis(c,l,n,s);if(l.enableMarkLine!==false&&e===1){drawMarkLine(l,n,s)}drawLegend(l.series,l,n,s,l.chartData);drawToolTipBridge(l,n,s,e,o,i);drawCanvas(l,s)},onAnimationFinish:function t(){h.uevent.trigger("renderComplete")}});break;case"mix":this.animationInstance=new Animation({timing:l.timing,duration:e,onProcess:function t(e){s.clearRect(0,0,l.width,l.height);if(l.rotate){contextRotate(s,l)}drawYAxisGrid(d,l,n,s);drawXAxis(d,l,n,s);var a=drawMixDataPoints(c,l,n,s,e),i=a.xAxisPoints,r=a.calPoints,o=a.eachSpacing;l.chartData.xAxisPoints=i;l.chartData.calPoints=r;l.chartData.eachSpacing=o;drawYAxis(c,l,n,s);if(l.enableMarkLine!==false&&e===1){drawMarkLine(l,n,s)}drawLegend(l.series,l,n,s,l.chartData);drawToolTipBridge(l,n,s,e,o,i);drawCanvas(l,s)},onAnimationFinish:function t(){h.uevent.trigger("renderComplete")}});break;case"column":this.animationInstance=new Animation({timing:l.timing,duration:e,onProcess:function t(e){s.clearRect(0,0,l.width,l.height);if(l.rotate){contextRotate(s,l)}drawYAxisGrid(d,l,n,s);drawXAxis(d,l,n,s);var a=drawColumnDataPoints(c,l,n,s,e),i=a.xAxisPoints,r=a.calPoints,o=a.eachSpacing;l.chartData.xAxisPoints=i;l.chartData.calPoints=r;l.chartData.eachSpacing=o;drawYAxis(c,l,n,s);if(l.enableMarkLine!==false&&e===1){drawMarkLine(l,n,s)}drawLegend(l.series,l,n,s,l.chartData);drawToolTipBridge(l,n,s,e,o,i);drawCanvas(l,s)},onAnimationFinish:function t(){h.uevent.trigger("renderComplete")}});break;case"mount":this.animationInstance=new Animation({timing:l.timing,duration:e,onProcess:function t(e){s.clearRect(0,0,l.width,l.height);if(l.rotate){contextRotate(s,l)}drawYAxisGrid(d,l,n,s);drawXAxis(d,l,n,s);var a=drawMountDataPoints(c,l,n,s,e),i=a.xAxisPoints,r=a.calPoints,o=a.eachSpacing;l.chartData.xAxisPoints=i;l.chartData.calPoints=r;l.chartData.eachSpacing=o;drawYAxis(c,l,n,s);if(l.enableMarkLine!==false&&e===1){drawMarkLine(l,n,s)}drawLegend(l.series,l,n,s,l.chartData);drawToolTipBridge(l,n,s,e,o,i);drawCanvas(l,s)},onAnimationFinish:function t(){h.uevent.trigger("renderComplete")}});break;case"bar":this.animationInstance=new Animation({timing:l.timing,duration:e,onProcess:function t(e){s.clearRect(0,0,l.width,l.height);if(l.rotate){contextRotate(s,l)}drawXAxis(d,l,n,s);var a=drawBarDataPoints(c,l,n,s,e),i=a.yAxisPoints,r=a.calPoints,o=a.eachSpacing;l.chartData.yAxisPoints=i;l.chartData.xAxisPoints=l.chartData.xAxisData.xAxisPoints;l.chartData.calPoints=r;l.chartData.eachSpacing=o;drawYAxis(c,l,n,s);if(l.enableMarkLine!==false&&e===1){drawMarkLine(l,n,s)}drawLegend(l.series,l,n,s,l.chartData);drawToolTipBridge(l,n,s,e,o,i);drawCanvas(l,s)},onAnimationFinish:function t(){h.uevent.trigger("renderComplete")}});break;case"area":this.animationInstance=new Animation({timing:l.timing,duration:e,onProcess:function t(e){s.clearRect(0,0,l.width,l.height);if(l.rotate){contextRotate(s,l)}drawYAxisGrid(d,l,n,s);drawXAxis(d,l,n,s);var a=drawAreaDataPoints(c,l,n,s,e),i=a.xAxisPoints,r=a.calPoints,o=a.eachSpacing;l.chartData.xAxisPoints=i;l.chartData.calPoints=r;l.chartData.eachSpacing=o;drawYAxis(c,l,n,s);if(l.enableMarkLine!==false&&e===1){drawMarkLine(l,n,s)}drawLegend(l.series,l,n,s,l.chartData);drawToolTipBridge(l,n,s,e,o,i);drawCanvas(l,s)},onAnimationFinish:function t(){h.uevent.trigger("renderComplete")}});break;case"ring":this.animationInstance=new Animation({timing:l.timing,duration:e,onProcess:function t(e){s.clearRect(0,0,l.width,l.height);if(l.rotate){contextRotate(s,l)}l.chartData.pieData=drawPieDataPoints(c,l,n,s,e);drawLegend(l.series,l,n,s,l.chartData);drawToolTipBridge(l,n,s,e);drawCanvas(l,s)},onAnimationFinish:function t(){h.uevent.trigger("renderComplete")}});break;case"pie":this.animationInstance=new Animation({timing:l.timing,duration:e,onProcess:function t(e){s.clearRect(0,0,l.width,l.height);if(l.rotate){contextRotate(s,l)}l.chartData.pieData=drawPieDataPoints(c,l,n,s,e);drawLegend(l.series,l,n,s,l.chartData);drawToolTipBridge(l,n,s,e);drawCanvas(l,s)},onAnimationFinish:function t(){h.uevent.trigger("renderComplete")}});break;case"rose":this.animationInstance=new Animation({timing:l.timing,duration:e,onProcess:function t(e){s.clearRect(0,0,l.width,l.height);if(l.rotate){contextRotate(s,l)}l.chartData.pieData=drawRoseDataPoints(c,l,n,s,e);drawLegend(l.series,l,n,s,l.chartData);drawToolTipBridge(l,n,s,e);drawCanvas(l,s)},onAnimationFinish:function t(){h.uevent.trigger("renderComplete")}});break;case"radar":this.animationInstance=new Animation({timing:l.timing,duration:e,onProcess:function t(e){s.clearRect(0,0,l.width,l.height);if(l.rotate){contextRotate(s,l)}l.chartData.radarData=drawRadarDataPoints(c,l,n,s,e);drawLegend(l.series,l,n,s,l.chartData);drawToolTipBridge(l,n,s,e);drawCanvas(l,s)},onAnimationFinish:function t(){h.uevent.trigger("renderComplete")}});break;case"arcbar":this.animationInstance=new Animation({timing:l.timing,duration:e,onProcess:function t(e){s.clearRect(0,0,l.width,l.height);if(l.rotate){contextRotate(s,l)}l.chartData.arcbarData=drawArcbarDataPoints(c,l,n,s,e);drawCanvas(l,s)},onAnimationFinish:function t(){h.uevent.trigger("renderComplete")}});break;case"gauge":this.animationInstance=new Animation({timing:l.timing,duration:e,onProcess:function t(e){s.clearRect(0,0,l.width,l.height);if(l.rotate){contextRotate(s,l)}l.chartData.gaugeData=drawGaugeDataPoints(d,c,l,n,s,e);drawCanvas(l,s)},onAnimationFinish:function t(){h.uevent.trigger("renderComplete")}});break;case"candle":this.animationInstance=new Animation({timing:l.timing,duration:e,onProcess:function t(e){s.clearRect(0,0,l.width,l.height);if(l.rotate){contextRotate(s,l)}drawYAxisGrid(d,l,n,s);drawXAxis(d,l,n,s);var a=drawCandleDataPoints(c,x,l,n,s,e),i=a.xAxisPoints,r=a.calPoints,o=a.eachSpacing;l.chartData.xAxisPoints=i;l.chartData.calPoints=r;l.chartData.eachSpacing=o;drawYAxis(c,l,n,s);if(l.enableMarkLine!==false&&e===1){drawMarkLine(l,n,s)}if(x){drawLegend(x,l,n,s,l.chartData)}else{drawLegend(l.series,l,n,s,l.chartData)}drawToolTipBridge(l,n,s,e,o,i);drawCanvas(l,s)},onAnimationFinish:function t(){h.uevent.trigger("renderComplete")}});break}}function uChartsEvent(){this.events={}}uChartsEvent.prototype.addEventListener=function(t,e){this.events[t]=this.events[t]||[];this.events[t].push(e)};uChartsEvent.prototype.delEventListener=function(t){this.events[t]=[]};uChartsEvent.prototype.trigger=function(){for(var t=arguments.length,e=Array(t),a=0;a0&&arguments[0]!==undefined?arguments[0]:{};this.opts=assign({},this.opts,t);this.opts.updateData=true;let c=t.scrollPosition||"current";switch(c){case"current":this.opts._scrollDistance_=this.scrollOption.currentOffset;break;case"left":this.opts._scrollDistance_=0;this.scrollOption={currentOffset:0,startTouchX:0,distance:0,lastMoveTime:0};break;case"right":let t=calYAxisData(this.opts.series,this.opts,this.config,this.context),e=t.yAxisWidth;this.config.yAxisWidth=e;let a=0;let i=getXAxisPoints(this.opts.categories,this.opts,this.config),r=i.xAxisPoints,o=i.startX,n=i.endX,l=i.eachSpacing;let s=l*(r.length-1);let h=n-o;a=h-s;this.scrollOption={currentOffset:a,startTouchX:a,distance:0,lastMoveTime:0};this.opts._scrollDistance_=a;break}drawCharts.call(this,this.opts.type,this.opts,this.config,this.context)};uCharts.prototype.zoom=function(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:this.opts.xAxis.itemCount;if(this.opts.enableScroll!==true){console.log("[uCharts] 请启用滚动条后使用");return}let e=Math.round(Math.abs(this.scrollOption.currentOffset)/this.opts.chartData.eachSpacing)+Math.round(this.opts.xAxis.itemCount/2);this.opts.animation=false;this.opts.xAxis.itemCount=t.itemCount;let a=calYAxisData(this.opts.series,this.opts,this.config,this.context),i=a.yAxisWidth;this.config.yAxisWidth=i;let r=0;let o=getXAxisPoints(this.opts.categories,this.opts,this.config),h=o.xAxisPoints,c=o.startX,d=o.endX,n=o.eachSpacing;let x=n*e;let l=d-c;let s=l-n*(h.length-1);r=l/2-x;if(r>0){r=0}if(r=this.opts.categories.length?this.opts.categories.length:r;this.opts.animation=false;this.opts.xAxis.itemCount=r;let o=0;let n=getXAxisPoints(this.opts.categories,this.opts,this.config),x=n.xAxisPoints,f=n.startX,p=n.endX,l=n.eachSpacing;let u=l*this.scrollOption.moveCurrent1;let g=p-f;let y=g-l*(x.length-1);o=-u+Math.min(i[0].x,i[1].x)-this.opts.area[3]-l;if(o>0){o=0}if(o1&&arguments[1]!==undefined?arguments[1]:{};var a=null;if(t.changedTouches){a=t.changedTouches[0]}else{a=t.mp.changedTouches[0]}if(a){var i=getTouches(a,this.opts,t);var r=this.getLegendDataIndex(t);if(r>=0){if(this.opts.type=="candle"){this.opts.seriesMA[r].show=!this.opts.seriesMA[r].show}else{this.opts.series[r].show=!this.opts.series[r].show}this.opts.animation=e.animation?true:false;this.opts._scrollDistance_=this.scrollOption.currentOffset;drawCharts.call(this,this.opts.type,this.opts,this.config,this.context)}}};uCharts.prototype.showToolTip=function(t){var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var c=null;if(t.changedTouches){c=t.changedTouches[0]}else{c=t.mp.changedTouches[0]}if(!c){console.log("[uCharts] 未获取到event坐标信息")}var a=getTouches(c,this.opts,t);var d=this.scrollOption.currentOffset;var i=assign({},this.opts,{_scrollDistance_:d,animation:false});if(this.opts.type==="line"||this.opts.type==="area"||this.opts.type==="column"||this.opts.type==="scatter"||this.opts.type==="bubble"){var r=this.getCurrentDataIndex(t);var o=e.index==undefined?r.index:e.index;if(o>-1||o.length>0){var n=getSeriesDataItem(this.opts.series,o,r.group);if(n.length!==0){var l=getToolTipData(n,this.opts,o,r.group,this.opts.categories,e),s=l.textList,h=l.offset;h.y=a.y;i.tooltip={textList:e.textList!==undefined?e.textList:s,offset:e.offset!==undefined?e.offset:h,option:e,index:o,group:r.group}}}drawCharts.call(this,i.type,i,this.config,this.context)}if(this.opts.type==="mount"){var o=e.index==undefined?this.getCurrentDataIndex(t).index:e.index;if(o>-1){var i=assign({},this.opts,{animation:false});var n=assign({},i._series_[o]);var s=[{text:e.formatter?e.formatter(n,undefined,o,i):n.name+": "+n.data,color:n.color,legendShape:this.opts.extra.tooltip.legendShape=="auto"?n.legendShape:this.opts.extra.tooltip.legendShape}];var h={x:i.chartData.calPoints[o].x,y:a.y};i.tooltip={textList:e.textList?e.textList:s,offset:e.offset!==undefined?e.offset:h,option:e,index:o}}drawCharts.call(this,i.type,i,this.config,this.context)}if(this.opts.type==="bar"){var r=this.getCurrentDataIndex(t);var o=e.index==undefined?r.index:e.index;if(o>-1||o.length>0){var n=getSeriesDataItem(this.opts.series,o,r.group);if(n.length!==0){var l=getToolTipData(n,this.opts,o,r.group,this.opts.categories,e),s=l.textList,h=l.offset;h.x=a.x;i.tooltip={textList:e.textList!==undefined?e.textList:s,offset:e.offset!==undefined?e.offset:h,option:e,index:o}}}drawCharts.call(this,i.type,i,this.config,this.context)}if(this.opts.type==="mix"){var r=this.getCurrentDataIndex(t);var o=e.index==undefined?r.index:e.index;if(o>-1){var d=this.scrollOption.currentOffset;var i=assign({},this.opts,{_scrollDistance_:d,animation:false});var n=getSeriesDataItem(this.opts.series,o);if(n.length!==0){var x=getMixToolTipData(n,this.opts,o,this.opts.categories,e),s=x.textList,h=x.offset;h.y=a.y;i.tooltip={textList:e.textList?e.textList:s,offset:e.offset!==undefined?e.offset:h,option:e,index:o}}}drawCharts.call(this,i.type,i,this.config,this.context)}if(this.opts.type==="candle"){var r=this.getCurrentDataIndex(t);var o=e.index==undefined?r.index:e.index;if(o>-1){var d=this.scrollOption.currentOffset;var i=assign({},this.opts,{_scrollDistance_:d,animation:false});var n=getSeriesDataItem(this.opts.series,o);if(n.length!==0){var l=getCandleToolTipData(this.opts.series[0].data,n,this.opts,o,this.opts.categories,this.opts.extra.candle,e),s=l.textList,h=l.offset;h.y=a.y;i.tooltip={textList:e.textList?e.textList:s,offset:e.offset!==undefined?e.offset:h,option:e,index:o}}}drawCharts.call(this,i.type,i,this.config,this.context)}if(this.opts.type==="pie"||this.opts.type==="ring"||this.opts.type==="rose"||this.opts.type==="funnel"){var o=e.index==undefined?this.getCurrentDataIndex(t):e.index;if(o>-1){var i=assign({},this.opts,{animation:false});var n=assign({},i._series_[o]);var s=[{text:e.formatter?e.formatter(n,undefined,o,i):n.name+": "+n.data,color:n.color,legendShape:this.opts.extra.tooltip.legendShape=="auto"?n.legendShape:this.opts.extra.tooltip.legendShape}];var h={x:a.x,y:a.y};i.tooltip={textList:e.textList?e.textList:s,offset:e.offset!==undefined?e.offset:h,option:e,index:o}}drawCharts.call(this,i.type,i,this.config,this.context)}if(this.opts.type==="map"){var o=e.index==undefined?this.getCurrentDataIndex(t):e.index;if(o>-1){var i=assign({},this.opts,{animation:false});var n=assign({},this.opts.series[o]);n.name=n.properties.name;var s=[{text:e.formatter?e.formatter(n,undefined,o,this.opts):n.name,color:n.color,legendShape:this.opts.extra.tooltip.legendShape=="auto"?n.legendShape:this.opts.extra.tooltip.legendShape}];var h={x:a.x,y:a.y};i.tooltip={textList:e.textList?e.textList:s,offset:e.offset!==undefined?e.offset:h,option:e,index:o}}i.updateData=false;drawCharts.call(this,i.type,i,this.config,this.context)}if(this.opts.type==="word"){var o=e.index==undefined?this.getCurrentDataIndex(t):e.index;if(o>-1){var i=assign({},this.opts,{animation:false});var n=assign({},this.opts.series[o]);var s=[{text:e.formatter?e.formatter(n,undefined,o,this.opts):n.name,color:n.color,legendShape:this.opts.extra.tooltip.legendShape=="auto"?n.legendShape:this.opts.extra.tooltip.legendShape}];var h={x:a.x,y:a.y};i.tooltip={textList:e.textList?e.textList:s,offset:e.offset!==undefined?e.offset:h,option:e,index:o}}i.updateData=false;drawCharts.call(this,i.type,i,this.config,this.context)}if(this.opts.type==="radar"){var o=e.index==undefined?this.getCurrentDataIndex(t):e.index;if(o>-1){var i=assign({},this.opts,{animation:false});var n=getSeriesDataItem(this.opts.series,o);if(n.length!==0){var s=n.map(t=>{return{text:e.formatter?e.formatter(t,this.opts.categories[o],o,this.opts):t.name+": "+t.data,color:t.color,legendShape:this.opts.extra.tooltip.legendShape=="auto"?t.legendShape:this.opts.extra.tooltip.legendShape}});var h={x:a.x,y:a.y};i.tooltip={textList:e.textList?e.textList:s,offset:e.offset!==undefined?e.offset:h,option:e,index:o}}}drawCharts.call(this,i.type,i,this.config,this.context)}};uCharts.prototype.translate=function(t){this.scrollOption={currentOffset:t,startTouchX:t,distance:0,lastMoveTime:0};let e=assign({},this.opts,{_scrollDistance_:t,animation:false});drawCharts.call(this,this.opts.type,e,this.config,this.context)};uCharts.prototype.scrollStart=function(t){var e=null;if(t.changedTouches){e=t.changedTouches[0]}else{e=t.mp.changedTouches[0]}var a=getTouches(e,this.opts,t);if(e&&this.opts.enableScroll===true){this.scrollOption.startTouchX=a.x}};uCharts.prototype.scroll=function(t){if(this.scrollOption.lastMoveTime===0){this.scrollOption.lastMoveTime=Date.now()}let e=this.opts.touchMoveLimit||60;let a=Date.now();let i=a-this.scrollOption.lastMoveTime;if(i=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,a,r,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 tn(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 en(t,e,i,n,o){var a=1-o;return 3*(((e-t)*a+2*(i-e)*o)*a+(n-i)*o*o)}function nn(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(Ji(h)&&Ji(c))Ji(s)?a[0]=0:(M=-l/s)>=0&&M<=1&&(a[f++]=M);else{var p=c*c-4*h*d;if(Ji(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 on(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(Ji(r))Qi(a)&&(c=-s/a)>=0&&c<=1&&(o[l++]=c);else{var u=a*a-4*r*s;if(Ji(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 an(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 rn(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]=tn(t,i,o,r,y),cS[1]=tn(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(Ji(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 hn(t,e,i){var n=t+i-2*e;return 0===n?.5:(t-e)/n}function cn(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 dn(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]=sn(t,i,o,d),cS[1]=sn(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 yn(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 Sn(t,e,i,n,o,a){if(a>e&&a>n||ao?r:0}function Mn(t,e){return Math.abs(t-e)e&&u>n&&u>a&&u>s||u1&&In(),c=tn(e,n,a,s,WS[0]),p>1&&(d=tn(e,n,a,s,WS[1]))),2===p?me&&s>n&&s>a||s=0&&u<=1){for(var h=0,c=sn(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=wn(o),o=wn(u)}else n=wn(n),o=wn(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 Cn(t,e,i,n,o){for(var a=0,r=0,s=0,l=0,u=0,h=0;h1&&(i||(a+=Sn(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(yn(r,s,t[h],t[h+1],e,n,o))return!0}else a+=Sn(r,s,t[h],t[h+1],n,o)||0;r=t[h++],s=t[h++];break;case BS.C:if(i){if(xn(r,s,t[h++],t[h++],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++],t[h],t[h+1],n,o)||0;r=t[h++],s=t[h++];break;case BS.Q:if(i){if(_n(r,s,t[h++],t[h++],t[h],t[h+1],e,n,o))return!0}else a+=An(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+=Sn(r,s,x,_,n,o):(l=x,u=_);var w=(n-d)*g/p+d;if(i){if(bn(d,f,g,m,m+v,y,e,w,o))return!0}else a+=Dn(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(yn(l,u,x,u,e,n,o)||yn(x,u,x,_,e,n,o)||yn(x,_,l,_,e,n,o)||yn(l,_,l,u,e,n,o))return!0}else a+=Sn(x,u,x,_,n,o),a+=Sn(l,_,l,u,n,o);break;case BS.Z:if(i){if(yn(r,s,l,u,e,n,o))return!0}else a+=Sn(r,s,l,u,n,o);r=l,s=u}}return i||Mn(s,u)||(a+=Sn(r,s,l,u,n,o)||0),0!==a}function Ln(t,e,i){return Cn(t,0,!1,e,i)}function kn(t,e,i,n){return Cn(t,e,!0,i,n)}function Pn(t){di.call(this,t),this.path=null}function Nn(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 On(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 bo(t){var e=t.insideRollback;e&&(t.textFill=e.textFill,t.textStroke=e.textStroke,t.textStrokeWidth=e.textStrokeWidth,t.insideRollback=null)}function So(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 Mo(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 Io(t,e,i,n,o){Mo(!0,t,e,i,n,o)}function To(t,e,i,n,o){Mo(!1,t,e,i,n,o)}function Ao(t,e){for(var i=_t([]);t&&t!==e;)bt(i,t.getLocalTransform(),i),t=t.parent;return i}function Do(t,e,i){return e&&!c(e)&&(e=Tw.getLocalTransform(e)),i&&(e=Tt([],e)),Q([],t,e)}function Co(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=Do(a,e,i),Math.abs(a[0])>Math.abs(a[1])?a[0]>0?"right":"left":a[1]>0?"bottom":"top"}function Lo(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)),Io(t,n,i,t.dataIndex)}}})}}function ko(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 Po(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)):Xn(t.replace("path://",""),e,i,"center")}function No(t,e,i){this.parentModel=e,this.ecModel=i,this.option=t}function Oo(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 Vo(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?zo(t).match(/%$/)?parseFloat(t)/100*e:parseFloat(t):null==t?NaN:+t}function Go(t,e,i){return null==e&&(e=10),e=Math.min(Math.max(0,e),20),t=(+t).toFixed(e),i?t:+t}function Fo(t){return t.sort(function(t,e){return t-e}),t}function Wo(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 Ho(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 Zo(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 Uo(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 Xo(t){var e=2*Math.PI;return(t%e+e)%e}function jo(t){return t>-UM&&t=-20?+t.toFixed(n<0?-n:0):t}function Jo(t){function e(t,i,n){return t.interval[n]=0}function ta(t){return isNaN(t)?"-":(t=(t+"").split("."))[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(t.length>1?"."+t[1]:"")}function ea(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 ia(t){return null==t?"":(t+"").replace(KM,function(t,e){return $M[e]})}function na(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 ra(t,e){return t+="","0000".substr(0,e-t.length)+t}function sa(t,e,i){"week"!==t&&"month"!==t&&"quarter"!==t&&"half-year"!==t&&"year"!==t||(t="MM-dd\nyyyy");var n=Yo(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",ra(r,2)).replace("M",r).replace("yyyy",a).replace("yy",a%100).replace("dd",ra(s,2)).replace("d",s).replace("hh",ra(l,2)).replace("h",l).replace("mm",ra(u,2)).replace("m",u).replace("ss",ra(h,2)).replace("s",h).replace("SSS",ra(c,3))}function la(t){return t?t.charAt(0).toUpperCase()+t.substr(1):t}function ua(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 ha(t,e,i){var n=e.width,o=e.height,a=Vo(t.x,n),r=Vo(t.y,o),s=Vo(t.x2,n),l=Vo(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 ca(t,e,i){i=qM(i||0);var n=e.width,o=e.height,a=Vo(t.left,n),r=Vo(t.top,o),s=Vo(t.right,n),l=Vo(t.bottom,o),u=Vo(t.width,n),h=Vo(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 da(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=ca(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 fa(t,e){return null!=t[oI[e][0]]||null!=t[oI[e][1]]&&null!=t[oI[e][2]]}function pa(t,e,i){function n(i,n){var r={},l=0,u={},h=0;if(iI(i,function(e){u[e]=t[e]}),iI(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 ya(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 xa(t){return"category"===t.get("type")}function _a(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 wa(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 Xa(t,e){return t.join(",")===e.join(",")}function ja(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 Ya(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 rr(t,e){_a.isInstance(t)||(t=_a.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 sr(){return this._data.length}function lr(t){return this._data[t]}function ur(t){for(var e=0;ee.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function Mr(t,e){d(t.CHANGABLE_METHODS,function(i){t.wrapMethod(i,v(Ir,e))})}function Ir(t){var e=Tr(t);e&&e.setOutputEnd(this.count())}function Tr(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 Ar(){this.group=new tb,this.uid=Ro("viewChart"),this.renderTask=gr({plan:Lr,reset:kr}),this.renderTask.context={view:this}}function Dr(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 Nr(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]=Pr(a,i,"debounce"===n))[iT]=a,o[oT]=n,o[nT]=i}return o}}function Or(t,e){var i=t[e];i&&i[iT]&&(t[e]=i[iT])}function Er(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 Rr(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 zr(t,e,i,n,o){function a(i){var a=i.uid,s=r.get(a)||r.set(a,gr({plan:Hr,reset:Zr,count:Xr}));s.context={model:i,ecModel:n,api:o,useClearVisual:e.isVisual&&!e.isLayout,plan:e.plan,reset:e.reset,scheduler:t},jr(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 Br(t,e,i,n,o){function a(e){var i=e.uid,n=s.get(i);n||(n=s.set(i,gr({reset:Gr,onDirty:Wr})),r.dirty()),n.context={model:e,overallProgress:h,modifyOutputEnd:c},n.agent=r,n.__block=h,jr(t,e,n)}var r=i.overallTask=i.overallTask||gr({reset:Vr});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 Vr(t){t.overallReset(t.ecModel,t.api,t.payload)}function Gr(t,e){return t.overallProgress&&Fr}function Fr(){this.agent.dirty(),this.getDownstream().dirty()}function Wr(){this.agent&&this.agent.dirty()}function Hr(t){return t.plan&&t.plan(t.model,t.ecModel,t.api,t.payload)}function Zr(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 Ur(e)}):cT}function Ur(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 Qr(t,e){t&&t.__inheritedStyle&&(e.__inheritedStyle||(e.__inheritedStyle={}),r(e.__inheritedStyle,t.__inheritedStyle))}function ts(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 os(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 as(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 rs(t,e){return(new $r).parse(t,e)}function ss(t){return function(e,i,n){e=e&&e.toLowerCase(),fw.prototype[t].call(this,e,i,n)}}function ls(){fw.call(this)}function us(t,e,n){function o(t,e){return t.__prio-e.__prio}n=n||{},"string"==typeof e&&(e=JT[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=Pr(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 Fa;var r=this._api=As(this);_e($T,o),_e(YT,o),this._scheduler=new Er(this,r,YT,$T),fw.call(this,this._ecEventProcessor=new Ds),this._messageCenter=new ls,this._initEvents(),this.resize=m(this.resize,this),this._pendingActions=[],a.animation.on("frame",this._onframe,this),vs(a,this),N(this)}function hs(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 Is(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 Ts(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 As(t){var e=t._coordSysMgr;return a(new Ga(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 Ds(){this.eventInfo}function Cs(t){function e(t,e){for(var n=0;n65535?dA:pA}function Js(t){var e=t.constructor;return e===Array?t.slice():new e(t)}function Qs(t,e){d(gA.concat(e.__wrappedMethods||[]),function(i){e.hasOwnProperty(i)&&(t[i]=e[i])}),t.__wrappedMethods=e.__wrappedMethods,d(mA,function(n){t[n]=i(e[n])}),t._calculationInfo=a(e._calculationInfo)}function tl(t,e,i,n,o){var a=cA[e.type],r=n-1,s=e.name,l=t[s][r];if(l&&l.length=0?this._indices[t]:-1}function al(t,e){var i=t._idList[e];return null==i&&(i=il(t,t._idDimIdx,e)),null==i&&(i=hA+e),i}function rl(t){return y(t)||(t=[t]),t}function sl(t,e){var i=t.dimensions,n=new vA(f(i,t.getDimensionInfo,t),t.hostModel);Qs(n,t);for(var o=n._storage={},a=t._storage,r=0;r=0?(o[s]=ll(a[s]),n._rawExtent[s]=ul(),n._extent[s]=null):o[s]=a[s])}return n}function ll(t){for(var e=new Array(t.length),i=0;in&&(r=o.interval=n);var s=o.intervalPrecision=Ml(r);return Tl(o.niceTickExtent=[MA(Math.ceil(t[0]/r)*r,s),MA(Math.floor(t[1]/r)*r,s)],t),o}function Ml(t){return Ho(t)+2}function Il(t,e,i){t[e]=Math.max(Math.min(t[e],i[1]),i[0])}function Tl(t,e){!isFinite(t[0])&&(t[0]=e[0]),!isFinite(t[1])&&(t[1]=e[1]),Il(t,0,e),Il(t,1,e),t[0]>t[1]&&(t[0]=t[1])}function Al(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 Dl(t){return t.get("stack")||AA+t.seriesIndex}function Cl(t){return t.dim+t.index}function Ll(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 Vl(t,e){return VA(t,BA(e))}function Gl(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]=Vo(n[0],1),n[1]=Vo(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=kl("bar",c);if(d(p,function(t){f|=t.getBaseAxis()===e.axis}),f){var g=Pl(p),m=Fl(r,s,e,g);r=m.min,s=m.max}}return[r,s]}function Fl(t,e,i,n){var o=i.axis.getExtent(),a=o[1]-o[0],r=Ol(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 Wl(t,e){var i=Gl(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 Hl(t,e){if(e=e||t.get("type"))switch(e){case"category":return new SA(t.getOrdinalMeta?t.getOrdinalMeta():t.getCategories(),[1/0,-1/0]);case"value":return new TA;default:return(xl.getClass(e)||TA).create(t)}}function Zl(t){var e=t.scale.getExtent(),i=e[0],n=e[1];return!(i>0&&n>0||i<0&&n<0)}function Ul(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(Xl(t,n),o)}:function(e){return t.scale.getLabel(e)}}function Xl(t,e){return"category"===t.type?t.scale.getLabel(e):e}function jl(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=Ul(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 ou(t){return"category"===t.type?ru(t):uu(t)}function au(t,e){return"category"===t.type?lu(t,e):{ticks:t.scale.getTicks()}}function ru(t){var e=t.getLabelModel(),i=su(t,e);return!e.get("show")||t.scale.isBlank()?{labels:[],labelCategoryInterval:i.labelCategoryInterval}:i}function su(t,e){var i=hu(t,"labels"),n=ql(e),o=cu(i,n);if(o)return o;var a,r;return a=x(n)?vu(t,n):mu(t,r="auto"===n?fu(t):n),du(i,n,{labels:a,labelCategoryInterval:r})}function lu(t,e){var i=hu(t,"ticks"),n=ql(e),o=cu(i,n);if(o)return o;var a,r;if(e.get("show")&&!t.scale.isBlank()||(a=[]),x(n))a=vu(t,n,!0);else if("auto"===n){var s=su(t,t.getLabelModel());r=s.labelCategoryInterval,a=f(s.labels,function(t){return t.tickValue})}else a=mu(t,r=n,!0);return du(i,n,{ticks:a,tickCategoryInterval:r})}function uu(t){var e=t.scale.getTicks(),i=Ul(t);return{labels:f(e,function(e,n){return{formattedLabel:i(e,n),rawLabel:t.scale.getLabel(e),tickValue:e}})}}function hu(t,e){return nD(t)[e]||(nD(t)[e]=[])}function cu(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))),_=nD(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 gu(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 mu(t,e,i){function n(t){l.push(i?t:{formattedLabel:o(t),rawLabel:a.getLabel(t),tickValue:t})}var o=Ul(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=Kl(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 vu(t,e,i){var n=t.scale,o=Ul(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 yu(t,e){var i=(t[1]-t[0])/e/2;t[0]+=i,t[1]-=i}function xu(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 _u(t,e){var i=t.mapDimension("defaultedLabel",!0),n=i.length;if(1===n)return fr(t,e,i[0]);if(n){for(var o=[],a=0;a0?i=n[0]:n[1]<0&&(i=n[1]),i}function Ou(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 Eu(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 Ru(t){return isNaN(t[0])||isNaN(t[1])}function zu(t,e,i,n,o,a,r,s,l,u,h){return"none"!==u&&u?Bu.apply(this,arguments):Vu.apply(this,arguments)}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(Ru(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;_D(bD,g),bD[m]=g[m]+v,_D(SD,p),SD[m]=p[m]-v,t.bezierCurveTo(bD[0],bD[1],SD[0],SD[1],p[0],p[1])}else t.lineTo(p[0],p[1]);c=d,d+=a}return f}function Vu(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(Ru(p)){if(h){d+=a;continue}break}if(d===i)t[a>0?"moveTo":"lineTo"](p[0],p[1]),_D(bD,p);else if(l>0){var g=d+a,m=e[g];if(h)for(;m&&Ru(e[g]);)m=e[g+=a];var v=.5,y=e[c];if(!(m=e[g])||Ru(m))_D(SD,p);else{Ru(m)&&!h&&(m=p),U(wD,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);xD(SD,p,wD,-l*(1-(v=_/(_+x))))}vD(bD,bD,s),yD(bD,bD,r),vD(SD,SD,s),yD(SD,SD,r),t.bezierCurveTo(bD[0],bD[1],SD[0],SD[1],p[0],p[1]),xD(bD,p,wD,l*v)}else t.lineTo(p[0],p[1]);c=d,d+=a}return f}function Gu(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 Fu(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 Zu(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:Go(t.cx,1),cy:Go(t.cy,1),r0:Go(a[0],1),r:Go(a[1],1),startAngle:-r[0]*s,endAngle:-r[1]*s,clockwise:o.inverse}});return e&&(l.shape.endAngle=-r[0]*s,To(l,{shape:{endAngle:-r[1]*s}},n)),l}function ju(t,e,i,n){return"polar"===t.type?Xu(t,e,i,n):Uu(t,e,i,n)}function Yu(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 Ku(t,e,i){var n=t.get("showAllSymbol"),o="auto"===n;if(!n||o){var a=i.getAxesByScale("ordinal")[0];if(a&&(!o||!$u(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 $u(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 Ju(t){return this._axes[t]}function Qu(t){LD.call(this,t)}function th(t,e){return e.type||(e.data?"category":"value")}function eh(t,e,i){return t.getCoordSysModel()===e}function ih(t,e,i){this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this._initCartesian(t,e,i),this.model=t}function nh(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)oh(r[u])&&(a=r[u]);else for(var h in r)if(r.hasOwnProperty(h)&&oh(r[h])&&!n[o(r[h])]){a=r[h];break}a&&(n[o(a)]=!0)}}function oh(t){return t&&"category"!==t.type&&"time"!==t.type&&Zl(t)}function ah(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 rh(t,e){return f(VD,function(e){return t.getReferringComponents(e)[0]})}function sh(t){return"cartesian2d"===t.get("coordinateSystem")}function lh(t){var e={componentType:t.mainType,componentIndex:t.componentIndex};return e[t.mainType+"Index"]=t.componentIndex,e}function uh(t,e,i,n){var o,a,r=Xo(i-t.rotation),s=n[0]>n[1],l="start"===e&&!s||"start"!==e&&s;return jo(r-GD/2)?(a=l?"bottom":"top",o="center"):jo(r-1.5*GD)?(a=l?"top":"bottom",o="center"):(a="middle",o=r<1.5*GD&&r>GD/2?l?"left":"right":l?"right":"left"),{rotation:r,textAlign:o,textVerticalAlign:a}}function hh(t){var e=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||e&&e.show)}function ch(t,e,i){if(!Kl(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?(dh(a),dh(u)):fh(a,r)&&(n?(dh(r),dh(h)):(dh(a),dh(u))),!1===o?(dh(s),dh(c)):fh(l,s)&&(o?(dh(l),dh(d)):(dh(s),dh(c)))}}function dh(t){t&&(t.ignore=!0)}function fh(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 ph(t){return"middle"===t||"center"===t}function gh(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 Sh(t){var e=Mh(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=Th(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||kh(t.style,d,n,u,a,i,p),fo(t,d)}function Rh(t,e){var i=t.get(tC)||0;return Math.min(i,Math.abs(e.width),Math.abs(e.height))}function zh(t,e,i){var n=t.getData(),o=[],a=n.getLayout("valueAxisHorizontal")?1:0;o[1-a]=n.getLayout("valueAxisStart");var r=new nC({shape:{points:n.getLayout("largePoints")},incremental:!!i,__startPoint:o,__valueIdx:a});e.add(r),Bh(r,t,n)}function Bh(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 Vh(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){Gh(o.getItemGraphicEl(t),o.getItemLayout(t),e.isSelected(o.getName(t)),s,i)})}function Gh(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 Fh(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 Wh(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 Hh(t,e,i,n,o,a){for(var r=[],s=[],l=0;l3?1.4:o>1?1.2:1.1;hc(this,"zoom","zoomOnMouseWheel",t,{scale:n>0?s:1/s,originX:a,originY:r})}if(i){var l=Math.abs(n);hc(this,"scrollMove","moveOnMouseWheel",t,{scrollDelta:(n>0?1:-1)*(l>3?.4:l>1?.15:.05),originX:a,originY:r})}}}function uc(t){ic(this._zr,"globalPan")||hc(this,"zoom",null,t,{scale:t.pinchScale>1?1.1:1/1.1,originX:t.pinchX,originY:t.pinchY})}function hc(t,e,i,n,o){t.pointerChecker&&t.pointerChecker(n,o.originX,o.originY)&&(mw(n.event),cc(t,e,i,n,o))}function cc(t,e,i,n,o){o.isAvailableBehavior=m(dc,null,i,n),t.trigger(e,o)}function dc(t,e,i){var n=i[t];return!t||n&&(!_(n)||e.event[n+"Key"])}function fc(t,e,i){var n=t.target,o=n.position;o[0]+=e,o[1]+=i,n.dirty()}function pc(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 gc(t,e,i){var n=e.getComponentByElement(t.topTarget),o=n&&n.coordinateSystem;return n&&n!==i&&!RC[n.mainType]&&o&&o.model!==i}function mc(t,e){var i=t.getItemStyle(),n=t.get("areaColor");return null!=n&&(i.fill=n),i}function vc(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),yc(e,i)}}}))}function yc(t,e){e.eachChild(function(e){d(e.__regions,function(i){e.trigger(t.isSelected(i.name)?"emphasis":"normal")})})}function xc(t,e){var i=new tb;this.uid=Ro("ec_map_draw"),this._controller=new oc(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 _c(t){var e=this[zC];e&&e.recordVersion===this[BC]&&wc(e,t)}function wc(t,e){var i=t.circle,n=t.labelModel,o=t.hoverLabelModel,a=t.emphasisText,r=t.normalText;e?(i.style.extendFrom(mo({},o,{text:o.get("show")?a:null},{isRectText:!0,useInsideStyle:!1},!0)),i.__mapOriginalZ2=i.z2,i.z2+=NM):(mo(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 bc(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 Sc(){Tw.call(this)}function Mc(t){this.name=t,this.zoomLimit,Tw.call(this),this._roamTransformable=new Sc,this._rawTransformable=new Sc,this._center,this._zoom}function Ic(t,e,i,n){var o=i.seriesModel,a=o?o.coordinateSystem:null;return a===this?a[t](n):null}function Tc(t,e,i,n){Mc.call(this,t),this.map=e;var o=OC.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 Ac(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 Dc(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=[Vo(s[0],u),Vo(s[1],h)],l=Vo(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=ca(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 Cc(t,e){d(e.get("geoCoord"),function(e,i){t.addGeoCoord(i,e)})}function Lc(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 Wc(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){jc(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=Yc(t,o,t.parentNode.hierNode.defaultAncestor||n[0],e)}function Hc(t){var e=t.hierNode.prelim+t.parentNode.hierNode.modifier;t.setLayout({x:e},!0),t.hierNode.modifier+=t.parentNode.hierNode.modifier}function Zc(t){return arguments.length?t:Qc}function Uc(t,e){var i={};return t-=Math.PI/2,i.x=e*Math.cos(t),i.y=e*Math.sin(t),i}function Xc(t,e){return ca(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}function jc(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 Yc(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=qc(s),a=Kc(a),s&&a;){o=qc(o),r=Kc(r),o.hierNode.ancestor=t;var d=s.hierNode.prelim+c-a.hierNode.prelim-u+n(s,a);d>0&&(Jc($c(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&&!qc(o)&&(o.hierNode.thread=s,o.hierNode.modifier+=c-l),a&&!Kc(r)&&(r.hierNode.thread=a,r.hierNode.modifier+=u-h,i=t)}return i}function qc(t){var e=t.children;return e.length&&t.isExpand?e[e.length-1]:t.hierNode.thread}function Kc(t){var e=t.children;return e.length&&t.isExpand?e[0]:t.hierNode.thread}function $c(t,e,i){return t.hierNode.ancestor.parentNode===e.parentNode?t.hierNode.ancestor:i}function Jc(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 Qc(t,e){return t.parentNode===e.parentNode?1:2}function td(t,e){var i=t.getItemLayout(e);return i&&!isNaN(i.x)&&!isNaN(i.y)&&"none"!==t.getItemVisual(e,"symbol")}function ed(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 id(t,e,i,n,o,a){var s=!i,l=t.tree.getNodeByDataIndex(e),a=ed(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 wu(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),Io(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:od(a,f,f),style:r({opacity:0,strokeNoScale:!0},a.lineStyle)})),Io(S,{shape:od(a,d,p),style:{opacity:1}},o),n.add(S)}}function nd(t,e,i,n,o,a){for(var r,s=t.tree.getNodeByDataIndex(e),l=t.tree.root,a=ed(s,s.getModel(),a),u=s.parentNode===l?s:s.parentNode||s;null==(r=u.getLayout());)u=u.parentNode===l?u:u.parentNode||u;Io(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&&Io(h,{shape:od(a,r,r),style:{opacity:0}},o,function(){n.remove(h)})}function od(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=Uc(s,u),f=Uc(s,u+(h-u)*t.curvature),p=Uc(l,h+(u-h)*t.curvature),g=Uc(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 ad(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 sd(t,e){var i=Xc(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=Zc(function(t,e){return(t.parentNode===e.parentNode?1:2)/t.depth})):(o=i.width,a=i.height,r=Zc());var s=t.getData().tree.root,l=s.children[0];if(l){Fc(s),ad(l,Wc,r),s.hierNode.modifier=-l.hierNode.prelim,rd(l,Hc);var u=l,h=l,c=l;rd(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),rd(l,function(t){m=(t.getLayout().x+f)*p,v=(t.depth-1)*g;var e=Uc(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),rd(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),rd(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 ld(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 ud(t){for(var e=[];t;)(t=t.parentNode)&&e.push(t);return e.reverse()}function hd(t,e){return l(ud(t),e)>=0}function cd(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 dd(t){var e=0;d(t.children,function(t){dd(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 fd(t,e){var i=e.get("color");if(i){var n;return d(t=t||[],function(t){var e=new No(t),i=e.get("color");(e.get("itemStyle.color")||i&&"none"!==i)&&(n=!0)}),n||((t[0]||(t[0]={})).color=i.slice()),t}}function pd(t){this.group=new tb,t.add(this.group)}function gd(t,e,i,n,o,a){var r=[[o?t:t-UC,e],[t+i,e],[t+i,e+n],[o?t:t-UC,e+n]];return!a&&r.splice(2,0,[t+i+UC,e+n/2]),!o&&r.push([t,e+n/2]),r}function md(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&&cd(i,e)}}function vd(){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 bd(t,e){var i=t.visual,n=[];w(i)?sL(i,function(t){n.push(t)}):null!=i&&n.push(i);var o={color:1,symbol:1};e||1!==n.length||o.hasOwnProperty(t.type)||(n[1]=n[0]),Ld(t,n)}function Sd(t){return{applyVisual:function(e,i,n){e=this.mapValueToVisual(e),n("color",t(i("color"),e))},_doMap:Dd([0,1])}}function Md(t){var e=this.option.visual;return e[Math.round(Bo(t,[0,1],[0,e.length-1],!0))]||{}}function Id(t){return function(e,i,n){n(t,this.mapValueToVisual(e))}}function Td(t){var e=this.option.visual;return e[this.option.loop&&t!==uL?t%e.length:t]}function Ad(){return this.option.visual[0]}function Dd(t){return{linear:function(e){return Bo(e,t,this.option.visual,!0)},category:Td,piecewise:function(e,i){var n=Cd.call(this,i);return null==n&&(n=Bo(e,t,this.option.visual,!0)),n},fixed:Ad}}function Cd(t){var e=this.option,i=e.pieceList;if(e.hasSpecialVisual){var n=i[hL.findPieceIndex(t,i)];if(n&&n.visual)return n.visual[this.type]}}function Ld(t,e){return t.visual=e,"color"===t.type&&(t.parsedVisual=f(e,function(t){return Gt(t)})),e}function kd(t,e,i){return t?e<=i:e=o.length||t===o[t.depth])&&Pd(t,Vd(r,h,t,e,g,a),i,n,o,a)})}else l=Od(h),t.setVisual("color",l)}}function Nd(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 Od(t){var e=Rd(t,"color");if(e){var i=Rd(t,"colorAlpha"),n=Rd(t,"colorSaturation");return n&&(e=jt(e,null,null,n)),i&&(e=Yt(e,i)),e}}function Ed(t,e){return null!=e?jt(e,null,null,t):null}function Rd(t,e){var i=t[e];if(null!=i&&"none"!==i)return i}function zd(t,e,i,n,o,a){if(a&&a.length){var r=Bd(e,"color")||null!=o.color&&"none"!==o.color&&(Bd(e,"colorAlpha")||Bd(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 hL(c);return d.__drColorMappingBy=h,d}}}function Bd(t,e){var i=t.get(e);return fL(i)&&i.length?{name:e,range:i}:null}function Vd(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 Gd(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(_L),l=f.get(wL)/2,u=Kd(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=mL(o-2*c,0))*(a=mL(a-c-d,0)),g=Fd(t,f,p,e,i,n);if(g.length){var m={x:c,y:d,width:o,height:a},v=vL(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 Ud(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?mL(u*o/l,l/(u*a)):1/0}function Xd(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 pf(t,e){return t.getVisual("opacity")||t.getModel().get(e)}function gf(t,e,i){var n=t.getGraphicEl(),o=pf(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 mf(t,e){var i=pf(t,e),n=t.getGraphicEl();n.highlight&&n.highlight(),n.traverse(function(t){"group"!==t.type&&t.setStyle("opacity",i)})}function vf(t){return t instanceof Array||(t=[t,t]),t}function yf(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")])}),xf(i)}}function xf(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 _f(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 wf(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 Pf(t,e){return Math.min(e[1],Math.max(e[0],t))}function Nf(t,e,i){this._axesMap=R(),this._axesLayout={},this.dimensions=t.dimensions,this._rect,this._model=t,this._init(t,e,i)}function Of(t,e){return ek(ik(t,e[0]),e[1])}function Ef(t,e){var i=e.layoutLength/(e.axisCount-1);return{position:i*t,axisNameAvailableWidth:i,axisLabelShow:!0}}function Rf(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 tmk}function $f(t){var e=t.length-1;return e<0&&(e=0),[t[0],t[e]]}function Jf(t,e,i,n){var o=new tb;return o.add(new yM({name:"main",style:ip(i),silent:!0,draggable:!0,cursor:"move",drift:uk(t,e,o,"nswe"),ondragend:uk(qf,e,{isEnd:!0})})),hk(n,function(i){o.add(new yM({name:i,style:{opacity:0},draggable:!0,silent:!0,invisible:!0,drift:uk(t,e,o,i),ondragend:uk(qf,e,{isEnd:!0})}))}),o}function Qf(t,e,i,n){var o=n.brushStyle.lineWidth||0,a=fk(o,vk),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;ep(t,e,"main",r,s,p,g),n.transformable&&(ep(t,e,"w",l,u,a,v),ep(t,e,"e",d,u,a,v),ep(t,e,"n",l,u,m,a),ep(t,e,"s",l,f,m,a),ep(t,e,"nw",l,u,a,a),ep(t,e,"ne",d,u,a,a),ep(t,e,"sw",l,f,a,a),ep(t,e,"se",d,f,a,a))}function tp(t,e){var i=e.__brushOption,n=i.transformable,o=e.childAt(0);o.useStyle(ip(i)),o.attr({silent:!n,cursor:n?"move":"default"}),hk(["w","e","n","s","se","sw","ne","nw"],function(i){var o=e.childOfName(i),a=ap(t,i);o&&o.attr({silent:!n,invisible:!n,cursor:n?_k[a]+"-resize":null})})}function ep(t,e,i,n,o,a,r){var s=e.childOfName(i);s&&s.setShape(hp(up(t,e,[[n,o],[n+a,o+r]])))}function ip(t){return r({strokeNoScale:!0},t.brushStyle)}function np(t,e,i,n){var o=[dk(t,i),dk(e,n)],a=[fk(t,i),fk(e,n)];return[[o[0],a[0]],[o[1],a[1]]]}function op(t){return Ao(t.group)}function ap(t,e){if(e.length>1)return("e"===(n=[ap(t,(e=e.split(""))[0]),ap(t,e[1])])[0]||"w"===n[0])&&n.reverse(),n.join("");var i={left:"w",right:"e",top:"n",bottom:"s"},n=Co({w:"left",e:"right",n:"top",s:"bottom"}[e],op(t));return i[n]}function rp(t,e,i,n,o,a,r,s){var l=n.__brushOption,u=t(l.range),h=lp(i,a,r);hk(o.split(""),function(t){var e=xk[t];u[e[0]][e[1]]+=h[e[0]]}),l.range=e(np(u[0][0],u[1][0],u[0][1],u[1][1])),Zf(i,n),qf(i,{isEnd:!1})}function sp(t,e,i,n,o){var a=e.__brushOption.range,r=lp(t,i,n);hk(a,function(t){t[0]+=r[0],t[1]+=r[1]}),Zf(t,e),qf(t,{isEnd:!1})}function lp(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 up(t,e,n){var o=jf(t,e);return o&&!0!==o?o.clipPath(n,t._transform):i(n)}function hp(t){var e=dk(t[0][0],t[1][0]),i=dk(t[0][1],t[1][1]);return{x:e,y:i,width:fk(t[0][0],t[1][0])-e,height:fk(t[0][1],t[1][1])-i}}function cp(t,e,i){if(t._brushType){var n=t._zr,o=t._covers,a=Xf(t,e,i);if(!t._dragging)for(var r=0;r0;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,e){var i=[],n="vertical"===e?"y":"x",o=Zi(t,function(t){return t.getLayout()[n]});return o.keys.sort(function(t,e){return t-e}),d(o.keys,function(t){i.push(o.buckets.get(t))}),i}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(Gk).getItemStyle(Wk);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=Vo(A(t.get("barMaxWidth"),o),o),r=Vo(A(t.get("barMinWidth"),1),o),s=t.get("barWidth");return null!=s?Vo(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 wu(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=[Vo(f[0],d[0]),Vo(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]=Vo(f[c.index],d),f[h.index]=Vo(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(cP)||0;a&&(fP.attr({scale:e.slice(),rotation:i}),fP.updateTransform(),a/=fP.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=Vo(x,e[p.index]);var w=Math.max(m+2*x,0),b=_?0:2*x,S=Qo(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=Jl(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;kh(d.style,h,a,n,e.seriesModel,o,c),fo(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]];var h={horizontal:0,vertical:1};o.rotation=Math.PI/2*h[r];var c={top:-1,bottom:1,right:1,left:-1};o.labelDirection=o.tickDirection=o.nameDirection=c[a],t.get("axisTick.inside")&&(o.tickDirection=-o.tickDirection),T(e.labelInside,t.get("axisLabel.inside"))&&(o.labelDirection=-o.labelDirection);var d=e.rotate;return null==d&&(d=t.get("axisLabel.rotate")),o.labelRotation="top"===a?-d:d,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 _P(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),_P(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=Ah(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=[];_P(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=bP(n).axisPointerLastHighlights||{},a=bP(n).axisPointerLastHighlights={};_P(t,function(t,e){var i=t.axisPointerModel.option;"show"===i.status&&_P(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();SP(n).records||(SP(n).records={}),hm(n,e),(SP(n).records[t]||(SP(n).records[t]={})).handler=i}}function hm(t,e){function i(i,n){t.on(i,function(i){var o=pm(e);MP(SP(t).records,function(t){t&&n(t,i,o.dispatchAction)}),cm(o.pendings,e)})}SP(t).initialized||(SP(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();(SP(i).records||{})[t]&&(SP(i).records[t]=null)}}function mm(){}function vm(t,e,i,n){ym(TP(i).lastProp,n)||(TP(i).lastProp=n,e?Io(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:Xl(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),Do([t.dataToCoord(e),(i.labelOffset||0)+(i.labelDirection||1)*(i.labelMargin||0)],n)}function Am(t,e,i,n,o,a){var r=FD.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[kP[e]],i[kP[e]]+i[PP[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 To(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:zP});a.seriesIndex=e.seriesIndex;var r=new rM({z2:BP,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!==RP.NONE&&(i===RP.SELF?t===e:i===RP.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=Xn(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),To(t,{style:{opacity:c}},o,e)}r?t.attr(l):Io(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||(ro(t,f),t.__cusHasEmphStl=!p),s&&po(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(UP),f=c.getModel(XP),p=e.getItemVisual(t,"color"),v=!1)}var s=t.get("renderItem"),l=t.coordinateSystem,u={};l&&(u=l.prepareCustoms?l.prepareCustoms():YP[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(HP).getItemStyle();null!=p&&(r.fill=p);var s=e.getItemVisual(n,"opacity");return null!=s&&(r.opacity=s),mo(r,d,null,{autoColor:p,isRectText:!0}),r.text=d.getShallow("show")?A(t.getFormattedLabel(n,"normal"),_u(e,n)):null,i&&a(r,i),r},styleEmphasis:function(i,n){null==n&&(n=h),o(n);var r=c.getModel(ZP).getItemStyle();return mo(r,f,null,{isRectText:!0},!0),r.text=f.getShallow("show")?D(t.getFormattedLabel(n,"emphasis"),t.getFormattedLabel(n,"normal"),_u(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 Ll(r({axis:l.getBaseAxis()},t),n)},currentSeriesIndices:function(){return i.getCurrentSeriesIndices()},font:function(t){return So(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=Vo(t.get("barWidth"),r),c=Vo(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=Vo(t.categoryGap,o),r=Vo(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=Do([r,-o],d);var f=e.getModel("axisLabel").get("rotate")||0,p=FD.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",Es(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 MN(e,function(e){var r=a[e]=o();MN(t[e],function(t,o){if(hL.isValidType(o)){var a={type:o,visual:t};n&&n(a,e),r[o]=new hL(a),"opacity"===o&&((a=i(a)).type="colorAlpha",r.__hidden.__alphaForOpacity=new hL(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);TN(PN,function(t,e){(!i||!i.include||AN(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:LN})}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[VN]||(a[BN]||(a[BN]=yy),Nr(a,BN,i,e)(t,n))}}function yy(t,e){if(!t.isDisposed()){var i=t.getZr();i[VN]=!0,t.dispatchAction({type:"brushSelect",batch:e}),i[VN]=!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 $N(i,function(t){var i=t.getData();i&&$N(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=Zo(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;$N(["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"]=Bo(a[0]+o,a,[0,100],!0)}})}function By(t){var e={};return tO(["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");tO([["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),Nr(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[fO]||(e[fO]={})}function Xy(t,e){var i=new oc(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 QL(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=hL.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&&YO[e.type]&&r.baseAxis&&r.valueAxis){var s=XO(a,r.baseAxis.dim),l=XO(a,r.valueAxis.dim);e.coord=YO[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++)YO[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(pE),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 gE(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[mE]=null}function i_(t){return n_(t).length}function n_(t){var e=t[mE];return e||(e=t[mE]=[{}]),e}function o_(t,e,i){(this._brushController=new zf(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 SE(t)}function h_(){if(!TE&&AE){TE=!0;var t=AE.styleSheets;t.length<31?AE.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(sR,t)}function g_(t){return cR(1e4*t)/1e4}function m_(t){return t-vR}function v_(t,e){var i=e?t.textFill:t.fill;return null!=i&&i!==hR}function y_(t,e){var i=e?t.textStroke:t.stroke;return null!=i&&i!==hR}function x_(t,e){e&&__(t,"transform","matrix("+uR.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?hR:o,"none"!==t.getAttribute("clip-path")&&o===hR&&(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",hR);if(y_(e,i)){var a=i?e.textStroke:e.stroke;__(t,"stroke",a="transparent"===a?hR: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",cR(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",hR)}function S_(t){for(var e=[],i=t.data,n=t.len(),o=0;o=gR||!m_(g)&&(d>-pR&&d<0||d>pR)==!!p;var y=g_(s+u*fR(c)),x=g_(l+h*dR(c));m&&(d=p?gR-1e-4:1e-4-gR,v=!0,9===o&&e.push("M",y,x));var _=g_(s+u*fR(c+d)),w=g_(l+h*dR(c+d));e.push("A",g_(u),g_(h),cR(f*mR),+v,+p,_,w);break;case lR.Z:a="Z";break;case lR.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=tn,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);Pn.prototype={constructor:Pn,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)),kn(a,r/s,t,e)))return!0}if(o.hasFill())return Ln(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}},Pn.extend=function(t){var e=function(e){Pn.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,Pn);for(var i in t)"style"!==i&&"shape"!==i&&(e.prototype[i]=t[i]);return e},u(Pn,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([Bn(s[0],f[0],l[0],u[0],d,p,g),Bn(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:Po,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:Zn,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 So({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("lineHeight"),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();No.prototype={constructor:No,init:null,mergeOption:function(t){n(this.option,t,!0)},get:function(t,e){return null==t?this.option:Oo(this.option,this.parsePath(t),!e&&Eo(this,t))},getShallow:function(t,e){var i=this.option,n=null==i?i:i[t],o=!e&&Eo(this,t);return null==n&&o&&(n=o.getShallow(t)),n},getModel:function(t,e){var i,n=null==t?this.option:Oo(this.option,t=this.parsePath(t));return e=e||(i=Eo(this,t))&&i.getModel(t),new No(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()}}},ji(No),Yi(No),WM(No,eS),WM(No,nS),WM(No,VM),WM(No,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:Bo,parsePercent:Vo,round:Go,asc:Fo,getPrecision:Wo,getPrecisionSafe:Ho,getPixelPrecision:Zo,getPercentWithPrecision:Uo,MAX_SAFE_INTEGER:XM,remRadian:Xo,isRadianAroundZero:jo,parseDate:Yo,quantity:qo,nice:$o,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:Jo,isNumeric:Qo}),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=(Object.freeze||Object)({addCommas:ta,toCamelCase:ea,normalizeCssArray:qM,encodeHTML:ia,formatTpl:na,formatTplSimple:oa,getTooltipMarker:aa,formatTime:sa,capitalFirst:la,truncateText:tI,getTextBoundingRect:function(t){return ke(t.text,t.font,t.textAlign,t.textVerticalAlign,t.textPadding,t.textLineHeight,t.rich,t.truncate)},getTextRect:function(t,e,i,n,o,a,r,s){return ke(t,e,i,n,o,s,a,r)}}),iI=d,nI=["left","right","top","bottom","width","height"],oI=[["width","left","right"],["height","top","bottom"]],aI=ua,rI=(v(ua,"vertical"),v(ua,"horizontal"),{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")}}}),sI=Bi(),lI=No.extend({type:"component",id:"",name:"",mainType:"",subType:"",componentIndex:0,defaultOption:null,ecModel:null,dependentModels:[],uid:null,layoutMode:null,$constructor:function(t,e,i,n){No.call(this,t,e,i,n),this.uid=Ro("ec_cpt_model")},init:function(t,e,i,n){this.mergeDefaultAndTheme(t,i)},mergeDefaultAndTheme:function(t,e){var i=this.layoutMode,o=i?ga(t):{};n(t,e.getTheme().get(this.mainType)),n(t,this.getDefaultOption()),i&&pa(t,o,i)},mergeOption:function(t,e){n(this.option,t,!0);var i=this.layoutMode;i&&pa(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)})}});$i(lI,{registerWhenExtend:!0}),function(t){var e={};t.registerSubTypeDefaulter=function(t,i){t=Ui(t),e[t.main]=i},t.determineSubType=function(i,n){var o=n.type;if(!o){var a=Ui(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 Ui(t).main}),"dataset"!==t&&l(e,"dataset")<=0&&e.unshift("dataset"),e}),h(lI,rI);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?va(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),xa(o)&&(n.set("x",o),e.firstCategoryDimIndex=0),xa(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),xa(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),xa(a)&&(n.set("radius",a),e.firstCategoryDimIndex=0),xa(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),xa(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";_a.seriesDataToSource=function(t){return new _a({data:t,sourceFormat:S(t)?xI:pI,fromDataset:!1})},Yi(_a);var bI=Bi(),SI="\0_ec_inner",MI=No.extend({init:function(t,e,i,n){i=i||{},this.option=null,this._theme=new No(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)):Ea.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=[];Sa(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=za(i,n,t.exist))});var l=Ra(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&&Ba(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 Va(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}(Va(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){Ba(this,g(this._componentsMap.get("series"),t,e))},restoreData:function(t){var e=this._componentsMap;Ba(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||!Na(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={};Fa.prototype={constructor:Fa,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()}},Fa.register=function(t,e){TI[t]=e},Fa.get=function(t){return TI[t]};var AI=d,DI=i,CI=f,LI=n,kI=/^(min|max)?(.+)$/;Wa.prototype={constructor:Wa,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=Ha.call(this,t,e,!i);this._newBaseOption=n.baseOption,i?(ja(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=yr(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=aa({color:v,type:"subItem",renderMode:n,markerId:d}),g="string"==typeof p?p:p.content,m=(r?g+ia(o.displayName||"-")+": ":"")+ia("ordinal"===c?t+"":"time"===c?e?"":sa("yyyy/MM/dd hh:mm:ss",t):ta(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(fr(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?fr(h,t,c[0]):m?g[0]:g)).content,_=a.seriesIndex+"at"+u,b=aa({color:v,type:"item",renderMode:n,markerId:_});l[_]=v,++u;var S=h.getName(t),M=this.name;Oi(this)||(M=""),M=M?ia(M)+(e?": ":r):"";var I="string"==typeof b?b:b.content;return{html:e?I+M+x:M+I+(S?ia(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=Ro("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){},ji(qI),$i(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();Ar.prototype={type:"chart",init:function(t,e){},render:function(t,e,i,n){},highlight:function(t,e,i,n){Cr(t.getData(),n,"emphasis")},downplay:function(t,e,i,n){Cr(t.getData(),n,"normal")},remove:function(t,e){this.group.removeAll()},dispose:function(){},incrementalPrepareRender:null,incrementalRender:null,updateTransform:null,filterForExposedEvent:null};var tT=Ar.prototype;tT.updateView=tT.updateLayout=tT.updateVisual=function(t,e,i,n){this.render(t,e,i,n)},ji(Ar),$i(Ar,{registerWhenExtend:!0}),Ar.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}),jr(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&&zr(this,n,o,e,i),n.overallReset&&Br(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,jr(this,e,o)},uT.performDataProcessorTasks=function(t,e){Rr(this,this._dataProcessorHandlers,t,e,{block:!0})},uT.performVisualTasks=function(t,e,i){Rr(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=Ur(0);Er.wrapStageHandler=function(t,e){return x(t)&&(t={overallReset:t,seriesType:Yr(t)}),t.uid=Ro("stageHandler"),e&&(t.visualType=e),t};var dT,fT={},pT={};qr(fT,MI),qr(pT,Ga),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(){wa(this)}}),qI.extend({type:"dataset"});var xT=Pn.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,]+/;$r.prototype.parse=function(t,e){e=e||{};var i=Kr(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),es(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=as(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}},$r.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)},$r.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]});Qr(e,o),es(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 Qr(e,i),es(t,i,this._defs),i},rect:function(t,e){var i=new yM;return Qr(e,i),es(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 Qr(e,i),es(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 Qr(e,i),es(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 Qr(e,i),es(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=ts(i));var n=new pM({shape:{points:i||[]}});return Qr(e,n),es(t,n,this._defs),n},polyline:function(t,e){var i=new Pn;Qr(e,i),es(t,i,this._defs);var n=t.getAttribute("points");return n&&(n=ts(n)),new gM({shape:{points:n||[]}})},image:function(t,e){var i=new fi;return Qr(e,i),es(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 Qr(e,r),es(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 Qr(e,r),es(t,r,this._defs),this._textX+=o,this._textY+=a,r},path:function(t,e){var i=Rn(t.getAttribute("d")||"");return Qr(e,i),es(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 Jr(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=Kr(t.source)}},LT=k,kT=d,PT=x,NT=w,OT=lI.parseClassType,ET={zrender:"4.0.6"},RT=1e3,zT=1e3,BT=3e3,VT={PROCESSOR:{FILTER:RT,STATISTIC:5e3},VISUAL:{LAYOUT:zT,GLOBAL:2e3,CHART:BT,COMPONENT:4e3,BRUSH:5e3}},GT="__flagInMainProcess",FT="__optionUpdated",WT=/^[a-zA-Z0-9_]+$/;ls.prototype.on=ss("on"),ls.prototype.off=ss("off"),ls.prototype.one=ss("one"),h(ls,fw);var HT=us.prototype;HT._onframe=function(){if(!this._disposed){var t=this._scheduler;if(this[FT]){var e=this[FT].silent;this[GT]=!0,cs(this),ZT.update.call(this),this[GT]=!1,this[FT]=!1,gs.call(this,e),ms.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),fs(this,n),t.performVisualTasks(n),bs(this,this._model,0,"remain"),i-=+new Date-o}while(i>0&&t.unfinished);t.unfinished||this._zr.flush()}}},HT.getDom=function(){return this._dom},HT.getZr=function(){return this._zr},HT.setOption=function(t,e,i){var n;if(NT(e)&&(i=e.lazyUpdate,n=e.silent,e=e.notMerge),this[GT]=!0,!this._model||e){var o=new Wa(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,qT),i?(this[FT]={silent:n},this[GT]=!1):(cs(this),ZT.update.call(this),this._zr.flush(),this[FT]=!1,this[GT]=!1,gs.call(this,n),ms.call(this,n))},HT.setTheme=function(){console.error("ECharts#setTheme() is DEPRECATED in ECharts 3.0")},HT.getModel=function(){return this._model},HT.getOption=function(){return this._model&&this._model.getOption()},HT.getWidth=function(){return this._zr.getWidth()},HT.getHeight=function(){return this._zr.getHeight()},HT.getDevicePixelRatio=function(){return this._zr.painter.dpr||window.devicePixelRatio||1},HT.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)},HT.getSvgDataUrl=function(){if(U_.svgSupported){var t=this._zr;return d(t.storage.getDisplayList(),function(t){t.stopAnimation(!0)}),t.painter.pathToDataUrl()}},HT.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},HT.getConnectedDataURL=function(t){if(U_.canvasSupported){var e=this.group,n=Math.min,o=Math.max;if(eA[e]){var a=1/0,r=1/0,s=-1/0,l=-1/0,u=[],h=t&&t.pixelRatio||1;d(tA,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)}},HT.convertToPixel=v(hs,"convertToPixel"),HT.convertFromPixel=v(hs,"convertFromPixel"),HT.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},HT.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)},HT.getViewOfComponentModel=function(t){return this._componentsMap[t.__viewId]},HT.getViewOfSeriesModel=function(t){return this._chartsMap[t.__viewId]};var ZT={prepareAndUpdate:function(t){cs(this),ZT.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),fs(this,e),o.update(e,i),xs(e),a.performVisualTasks(e,t),_s(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")}Ss(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)}),xs(e),this._scheduler.performVisualTasks(e,t,{setDirty:!0,dirtyMap:a}),bs(i,e,0,t,a),Ss(e,this._api)}},updateView:function(t){var e=this._model;e&&(Ar.markUpdateMethod(t,"updateView"),xs(e),this._scheduler.performVisualTasks(e,t,{setDirty:!0}),_s(this,this._model,this._api,t),Ss(e,this._api))},updateVisual:function(t){ZT.update.call(this,t)},updateLayout:function(t){ZT.update.call(this,t)}};HT.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[GT]=!0,i&&cs(this),ZT.update.call(this),this[GT]=!1,gs.call(this,n),ms.call(this,n)}},HT.showLoading=function(t,e){if(NT(t)&&(e=t,t=""),t=t||"default",this.hideLoading(),QT[t]){var i=QT[t](this._api,e),n=this._zr;this._loadingFX=i,n.add(i)}},HT.hideLoading=function(){this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null},HT.makeActionFromEvent=function(t){var e=a({},t);return e.type=jT[t.type],e},HT.dispatchAction=function(t,e){NT(e)||(e={silent:!!e}),XT[t.type]&&this._model&&(this[GT]?this._pendingActions.push(t):(ps.call(this,t,e.silent),e.flush?this._zr.flush(!0):!1!==e.flush&&U_.browser.weChat&&this._throttledZrFlush(),gs.call(this,e.silent),ms.call(this,e.silent)))},HT.appendData=function(t){var e=t.seriesIndex;this.getModel().getSeriesByIndex(e).appendData(t),this._scheduler.unfinished=!0},HT.on=ss("on"),HT.off=ss("off"),HT.one=ss("one");var UT=["click","dblclick","mouseover","mouseout","mousemove","mousedown","mouseup","globalout","contextmenu"];HT._initEvents=function(){kT(UT,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(jT,function(t,e){this._messageCenter.on(e,function(t){this.trigger(e,t)},this)},this)},HT.isDisposed=function(){return this._disposed},HT.clear=function(){this.setOption({series:[]},!0)},HT.dispose=function(){if(!this._disposed){this._disposed=!0,Fi(this.getDom(),oA,"");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 tA[this.id]}},h(us,fw),Ds.prototype={constructor:Ds,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 XT={},jT={},YT=[],qT=[],KT=[],$T=[],JT={},QT={},tA={},eA={},iA=new Date-0,nA=new Date-0,oA="_echarts_instance_",aA=Ls;Bs(2e3,aT),Ns(BI),Os(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(ar)}),Gs("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}),Es({type:"highlight",event:"highlight",update:"highlight"},B),Es({type:"downplay",event:"downplay",update:"downplay"},B),Ps("light",mT),Ps("dark",yT);var rA={};Xs.prototype={constructor:Xs,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(js(t,{},n,"_oldKeyGetter",this),js(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={},el(this)},yA._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={},el(this)}},yA.count=function(){return this._count},yA.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},yA.getApproximateExtent=function(t){return t=this.getDimension(t),this._approximateExtent[t]||this.getDataExtent(t)},yA.setApproximateExtent=function(t,e){e=this.getDimension(e),this._approximateExtent[e]=t.slice()},yA.getCalculationInfo=function(t){return this._calculationInfo[t]},yA.setCalculationInfo=function(t,e){lA(t)?a(this._calculationInfo,t):this._calculationInfo[t]=e},yA.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},yA.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},yA.getRawIndex=nl,yA.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},yA.downSample=function(t,e,i,n){for(var o=sl(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($s(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=ol,o},yA.getItemModel=function(t){var e=this.hostModel;return new No(this.getRawDataItem(t),e,e&&e.ecModel)},yA.diff=function(t){var e=this;return new Xs(t?t.getIndices():[],this.getIndices(),function(e){return al(t,e)},function(t){return al(e,t)})},yA.getVisual=function(t){var e=this._visual;return e&&e[t]},yA.setVisual=function(t,e){if(lA(t))for(var i in t)t.hasOwnProperty(i)&&this.setVisual(i,t[i]);else this._visual=this._visual||{},this._visual[t]=e},yA.setLayout=function(t,e){if(lA(t))for(var i in t)t.hasOwnProperty(i)&&this.setLayout(i,t[i]);else this._layout[t]=e},yA.getLayout=function(t){return this._layout[t]},yA.getItemLayout=function(t){return this._itemLayouts[t]},yA.setItemLayout=function(t,e,i){this._itemLayouts[t]=i?a(this._itemLayouts[t]||{},e):e},yA.clearItemLayouts=function(){this._itemLayouts.length=0},yA.getItemVisual=function(t,e,i){var n=this._itemVisuals[t],o=n&&n[e];return null!=o||i?o:this.getVisual(e)},yA.setItemVisual=function(t,e,i){var n=this._itemVisuals[t]||{},o=this.hasItemVisual;if(this._itemVisuals[t]=n,lA(e))for(var a in e)e.hasOwnProperty(a)&&(n[a]=e[a],o[a]=!0);else n[e]=i,o[e]=!0},yA.clearAllVisual=function(){this._visual={},this._itemVisuals=[],this.hasItemVisual={}};var xA=function(t){t.seriesIndex=this.seriesIndex,t.dataIndex=this.dataIndex,t.dataType=this.dataType};yA.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(xA,e)),this._graphicEls[t]=e},yA.getItemGraphicEl=function(t){return this._graphicEls[t]},yA.eachItemGraphicEl=function(t,e){d(this._graphicEls,function(i,n){i&&t&&t.call(e,i,n)})},yA.cloneShallow=function(t){if(!t){var e=f(this.dimensions,this.getDimensionInfo,this);t=new vA(e,this.hostModel)}if(t._storage=this._storage,Qs(t,this),this._indices){var i=this._indices.constructor;t._indices=new i(this._indices)}else t._indices=null;return t.getRawIndex=t._indices?ol:nl,t},yA.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)))})},yA.TRANSFERABLE_METHODS=["cloneShallow","downSample","map"],yA.CHANGABLE_METHODS=["filterSelf","selectRange"];var _A=function(t,e){return e=e||{},hl(e.coordDimensions||[],t,{dimsDef:e.dimensionsDefine||t.dimensionsDefine,encodeDef:e.encodeDefine||t.encodeDefine,dimCount:e.dimensionsCount,generateCoord:e.generateCoord,generateCoordCount:e.generateCoordCount})};xl.prototype.parse=function(t){return t},xl.prototype.getSetting=function(t){return this._setting[t]},xl.prototype.contain=function(t){var e=this._extent;return t>=e[0]&&t<=e[1]},xl.prototype.normalize=function(t){var e=this._extent;return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])},xl.prototype.scale=function(t){var e=this._extent;return t*(e[1]-e[0])+e[0]},xl.prototype.unionExtent=function(t){var e=this._extent;t[0]e[1]&&(e[1]=t[1])},xl.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},xl.prototype.getExtent=function(){return this._extent.slice()},xl.prototype.setExtent=function(t,e){var i=this._extent;isNaN(t)||(i[0]=t),isNaN(e)||(i[1]=e)},xl.prototype.isBlank=function(){return this._isBlank},xl.prototype.setBlank=function(t){this._isBlank=t},xl.prototype.getLabel=null,ji(xl),$i(xl,{registerWhenExtend:!0}),_l.createByAxisModel=function(t){var e=t.option,i=e.data,n=i&&f(i,bl);return new _l({categories:n,needCollect:!n,deduplication:!1!==e.dedplication})};var wA=_l.prototype;wA.getOrdinal=function(t){return wl(this).get(t)},wA.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=wl(this);return null==(e=n.get(t))&&(i?(e=this.categories.length,this.categories[e]=t,n.set(t,e)):e=NaN),e};var bA=xl.prototype,SA=xl.extend({type:"ordinal",init:function(t,e){t&&!y(t)||(t=new _l({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),bA.contain.call(this,t)&&null!=this._ordinalMeta.categories[t]},normalize:function(t){return bA.normalize.call(this,this.parse(t))},scale:function(t){return Math.round(bA.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});SA.create=function(){return new SA};var MA=Go,IA=Go,TA=xl.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]),TA.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=Ml(t)},getTicks:function(){return Al(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=Ho(t)||0:"auto"===i&&(i=this._intervalPrecision),t=IA(t,i,!0),ta(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=Sl(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]=IA(Math.floor(e[0]/o)*o)),t.fixMax||(e[1]=IA(Math.ceil(e[1]/o)*o))}});TA.create=function(){return new TA};var AA="__ec_stack_",DA="undefined"!=typeof Float32Array?Float32Array:Array,CA={seriesType:"bar",plan:$I(),reset:function(t){if(Rl(t)&&zl(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=Ol(Pl([t]),n,t).width;return u>.5||(u=.5),{progress:function(t,e){for(var n,h=new DA(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:Bl(0,o),valueAxisHorizontal:s})}}}}},LA=TA.prototype,kA=Math.ceil,PA=Math.floor,NA=function(t,e,i,n){for(;i>>1;t[o][1]i&&(a=i);var r=EA.length,s=NA(EA,a,0,r),l=EA[Math.min(s,r-1)],u=l[1];"year"===l[0]&&(u*=$o(o/u/t,!0));var h=this.getSetting("useUTC")?0:60*new Date(+n[0]||+n[1]).getTimezoneOffset()*1e3,c=[Math.round(kA((n[0]-h)/u)*u+h),Math.round(PA((n[1]-h)/u)*u+h)];Tl(c,n),this._stepLvl=l,this._interval=u,this._niceExtent=c},parse:function(t){return+Yo(t)}});d(["contain","normalize"],function(t){OA.prototype[t]=function(e){return LA[t].call(this,this.parse(e))}});var EA=[["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]];OA.create=function(t){return new OA({useUTC:t.ecModel.get("useUTC")})};var RA=xl.prototype,zA=TA.prototype,BA=Ho,VA=Go,GA=Math.floor,FA=Math.ceil,WA=Math.pow,HA=Math.log,ZA=xl.extend({type:"log",base:10,$constructor:function(){xl.apply(this,arguments),this._originalScale=new TA},getTicks:function(){var t=this._originalScale,e=this._extent,i=t.getExtent();return f(zA.getTicks.call(this),function(n){var o=Go(WA(this.base,n));return o=n===e[0]&&t.__fixMin?Vl(o,i[0]):o,o=n===e[1]&&t.__fixMax?Vl(o,i[1]):o},this)},getLabel:zA.getLabel,scale:function(t){return t=RA.scale.call(this,t),WA(this.base,t)},setExtent:function(t,e){var i=this.base;t=HA(t)/HA(i),e=HA(e)/HA(i),zA.setExtent.call(this,t,e)},getExtent:function(){var t=this.base,e=RA.getExtent.call(this);e[0]=WA(t,e[0]),e[1]=WA(t,e[1]);var i=this._originalScale,n=i.getExtent();return i.__fixMin&&(e[0]=Vl(e[0],n[0])),i.__fixMax&&(e[1]=Vl(e[1],n[1])),e},unionExtent:function(t){this._originalScale.unionExtent(t);var e=this.base;t[0]=HA(t[0])/HA(e),t[1]=HA(t[1])/HA(e),RA.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=qo(i);for(t/i*n<=.5&&(n*=10);!isNaN(n)&&Math.abs(n)<1&&Math.abs(n)>0;)n*=10;var o=[Go(FA(e[0]/n)*n),Go(GA(e[1]/n)*n)];this._interval=n,this._niceExtent=o}},niceExtent:function(t){zA.niceExtent.call(this,t);var e=this._originalScale;e.__fixMin=t.fixMin,e.__fixMax=t.fixMax}});d(["contain","normalize"],function(t){ZA.prototype[t]=function(e){return e=HA(e)/HA(this.base),RA[t].call(this,e)}}),ZA.create=function(){return new ZA};var UA={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}},XA=Un({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()}}),jA=Un({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()}}),YA=Un({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()}}),qA=Un({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()}}),KA={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}},$A={};d({line:_M,rect:yM,roundRect:yM,square:yM,circle:sM,diamond:jA,pin:YA,arrow:qA,triangle:XA},function(t,e){$A[e]=new t});var JA=Un({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=$A[n];"none"!==e.symbolType&&(o||(o=$A[n="rect"]),KA[n](e.x,e.y,e.width,e.height,o.shape),o.buildPath(t,o.shape,i))}}),QA={isDimensionStacked:pl,enableDataStack:fl,getStackedDimension:gl},tD=(Object.freeze||Object)({createList:function(t){return ml(t.getSource(),t)},getLayoutRect:ca,dataStack:QA,createScale:function(t,e){var i=e;No.isInstance(e)||h(i=new No(e),UA);var n=Hl(i);return n.setExtent(t[0],t[1]),Wl(n,i),n},mixinAxisModelCommonMethods:function(t){h(t,UA)},completeDimensions:hl,createDimensions:_A,createSymbol:Jl}),eD=1e-8;eu.prototype={constructor:eu,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 eu(e.name,o,e.cp);return a.properties=e,a})},nD=Bi(),oD=[0,1],aD=function(t,e,i){this.dim=t,this.scale=e,this._extent=i||[0,0],this.inverse=!1,this.onBand=!1};aD.prototype={constructor:aD,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 Zo(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&&yu(i=i.slice(),n.count()),Bo(t,oD,i,e)},coordToData:function(t,e){var i=this._extent,n=this.scale;this.onBand&&"ordinal"===n.type&&yu(i=i.slice(),n.count());var o=Bo(t,i,oD,e);return this.scale.scale(o)},pointToData:function(t,e){},getTicksCoords:function(t){var e=(t=t||{}).tickModel||this.getTickModel(),i=au(this,e),n=f(i.ticks,function(t){return{coord:this.dataToCoord(t),tickValue:t}},this),o=e.get("alignWithLabel");return xu(this,n,i.tickCategoryInterval,o,t.clamp),n},getViewLabels:function(){return ou(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 pu(this)}};var rD=iD,sD={};d(["map","each","filter","indexOf","inherits","reduce","filter","bind","curry","isArray","isString","isObject","isFunction","extend","defaults","clone","merge"],function(t){sD[t]=aw[t]});var lD={};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){lD[t]=zM[t]}),YI.extend({type:"series.line",dependencies:["grid","polar"],getInitialData:function(t,e){return ml(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 uD=wu.prototype,hD=wu.getSymbolSize=function(t,e){var i=t.getItemVisual(e,"symbolSize");return i instanceof Array?i.slice():[+i,+i]};uD._createSymbol=function(t,e,i,n,o){this.removeAll();var a=Jl(t,-1,-1,2,2,e.getItemVisual(i,"color"),o);a.attr({z2:100,culling:!0,scale:bu(n)}),a.drift=Su,this._symbolType=t,this.add(a)},uD.stopSymbolAnimation=function(t){this.childAt(0).stopAnimation(t)},uD.getSymbolPath=function(){return this.childAt(0)},uD.getScale=function(){return this.childAt(0).scale},uD.highlight=function(){this.childAt(0).trigger("emphasis")},uD.downplay=function(){this.childAt(0).trigger("normal")},uD.setZ=function(t,e){var i=this.childAt(0);i.zlevel=t,i.z=e},uD.setDraggable=function(t){var e=this.childAt(0);e.draggable=t,e.cursor=t?"move":"pointer"},uD.updateData=function(t,e,i){this.silent=!1;var n=t.getItemVisual(e,"symbol")||"circle",o=t.hostModel,a=hD(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,Io(l,{scale:bu(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),To(l,h,o,e)}this._seriesModel=o};var cD=["itemStyle"],dD=["emphasis","itemStyle"],fD=["label"],pD=["emphasis","label"];uD._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(cD).getItemStyle(["color"]),u=m.getModel(dD).getItemStyle(),h=m.getShallow("symbolRotate"),c=m.getShallow("symbolOffset"),d=m.getModel(fD),f=m.getModel(pD),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",[Vo(c[0],i[0]),Vo(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;go(v,u,d,f,{labelFetcher:r,labelDataIndex:e,defaultText:function(e,i){return w?t.getName(e):_u(t,e)},isRectText:!0,autoColor:s}),o.off("mouseover").off("mouseout").off("emphasis").off("normal"),o.hoverStyle=u,fo(o),o.__symbolOriginalScale=bu(i),p&&r.isAnimationEnabled()&&o.on("mouseover",Mu).on("mouseout",Iu).on("emphasis",Tu).on("normal",Au)},uD.fadeOut=function(t,e){var i=this.childAt(0);this.silent=i.silent=!0,!(e&&e.keepLabel)&&(i.style.text=null),Io(i,{style:{opacity:0},scale:[0,0]},this._seriesModel,this.dataIndex,t)},u(wu,tb);var gD=Du.prototype;gD.updateData=function(t,e){e=Lu(e);var i=this.group,n=t.hostModel,o=this._data,a=this._symbolCtor,r=ku(t);o||i.removeAll(),t.diff(o).add(function(n){var o=t.getItemLayout(n);if(Cu(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);Cu(t,h,s,e)?(u?(u.updateData(t,s,r),Io(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},gD.isPersistent=function(){return!0},gD.updateLayout=function(){var t=this._data;t&&t.eachItemGraphicEl(function(e,i){var n=t.getItemLayout(i);e.attr("position",n)})},gD.incrementalPrepareUpdate=function(t){this._seriesScope=ku(t),this._data=null,this.group.removeAll()},gD.incrementalUpdate=function(t,e,i){i=Lu(i);for(var n=t.start;n0&&Ru(i[o-1]);o--);for(;n0&&Ru(i[a-1]);a--);for(;o=0){var r=o.getItemGraphicEl(a);if(!r){var s=o.getItemLayout(a);if(!s)return;(r=new wu(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 Ar.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 Ar.prototype.downplay.call(this,t,e,i,n)},_newPolyline:function(t){var e=this._polyline;return e&&this._lineGroup.remove(e),e=new MD({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 ID({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=mD(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=Yu(u.current,i,o),c=Yu(u.stackedOnCurrent,i,o),d=Yu(u.next,i,o),f=Yu(u.stackedOnNext,i,o)),r.shape.__points=u.current,r.shape.points=h,Io(r,{shape:{points:d}},l),s&&(s.setShape({points:h,stackedOnPoints:c}),Io(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(kD,aD);var PD={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)"]}}},ND={};ND.categoryAxis=n({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},PD),ND.valueAxis=n({boundaryGap:[0,0],splitNumber:5},PD),ND.timeAxis=r({scale:!0,min:"dataMin",max:"dataMax"},ND.valueAxis),ND.logAxis=r({scale:!0,logBase:10},ND.valueAxis);var OD=["value","category","time","log"],ED=function(t,e,i,a){d(OD,function(r){e.extend({type:t+"Axis."+r,mergeDefaultAndTheme:function(e,o){var a=this.layoutMode,s=a?ga(e):{};n(e,o.getTheme().get(r+"Axis")),n(e,this.getDefaultOption()),e.type=i(t,e),a&&pa(e,s,a)},optionUpdated:function(){"category"===this.option.type&&(this.__ordinalMeta=_l.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([{},ND[r+"Axis"],a],!0)})}),lI.registerSubTypeDefaulter(t+"Axis",v(i,t))},RD=lI.extend({type:"cartesian2dAxis",axis:null,init:function(){RD.superApply(this,"init",arguments),this.resetRange()},mergeOption:function(){RD.superApply(this,"mergeOption",arguments),this.resetRange()},restoreData:function(){RD.superApply(this,"restoreData",arguments),this.resetRange()},getCoordSysModel:function(){return this.ecModel.queryComponents({mainType:"grid",index:this.option.gridIndex,id:this.option.gridId})[0]}});n(RD.prototype,UA);var zD={offset:0};ED("x",RD,th,zD),ED("y",RD,th,zD),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 BD=ih.prototype;BD.type="grid",BD.axisPointerEnabled=!0,BD.getRect=function(){return this._rect},BD.update=function(t,e){var i=this._axesMap;this._updateScale(t,this.model),d(i.x,function(t){Wl(t.scale,t.model)}),d(i.y,function(t){Wl(t.scale,t.model)});var n={};d(i.x,function(t){nh(i,"y",t,n)}),d(i.y,function(t){nh(i,"x",t,n)}),this.resize(this.model,e)},BD.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]),ah(t,e?o.x:o.y)})}var o=ca(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=jl(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())},BD.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]}},BD.getAxes=function(){return this._axesList.slice()},BD.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,ph(o)?t.labelOffset+r*l:0],d=e.get("nameRotate");null!=d&&(d=d*GD/180);var f;ph(o)?n=HD(t.rotation,null!=d?d:t.rotation,r):(n=uh(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:hh(e),z2:1,tooltip:x&&x.show?a({content:i,formatter:function(){return i},formatterParams:w},x):null});mo(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=lh(e),b.eventData.targetType="axisName",b.eventData.name=i),this._dumbGroup.add(b),b.updateTransform(),this.group.add(b),b.decomposeTransform()}}},HD=FD.innerTextLayout=function(t,e,i){var n,o,a=Xo(e-t);return jo(a)?(o=i>0?"top":"bottom",n="center"):jo(a-GD)?(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}},ZD=d,UD=v,XD=Ws({type:"axis",_axisPointer:null,axisPointerClass:null,render:function(t,e,i,n){this.axisPointerClass&&Sh(t),XD.superApply(this,"render",arguments),Dh(this,t,0,i,0,!0)},updateAxisPointer:function(t,e,i,n,o){Dh(this,t,0,i,0,!1)},remove:function(t,e){var i=this._axisPointer;i&&i.remove(e),XD.superApply(this,"remove",arguments)},dispose:function(t,e){Ch(this,e),XD.superApply(this,"dispose",arguments)}}),jD=[];XD.registerAxisPointerClass=function(t,e){jD[t]=e},XD.getAxisPointerClass=function(t){return t&&jD[t]};var YD=["axisLine","axisTickLabel","axisName"],qD=["splitArea","splitLine"],KD=XD.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=Lh(a,t),s=new FD(t,r);d(YD,s.add,s),this._axisGroup.add(s.getGroup()),d(qD,function(e){t.get(e+".show")&&this["_"+e](t,a)},this),Lo(o,this._axisGroup,t),KD.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=DD[o]:"function"==typeof o&&(c=o),c&&t.setData(n.downSample(n.mapDimension(s.dim),1/h,c,CD))}}}}}("line"));var $D=YI.extend({type:"series.__base_bar__",getInitialData:function(t,e){return ml(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:{}}});$D.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 JD=Qb([["fill","color"],["stroke","borderColor"],["lineWidth","borderWidth"],["stroke","barBorderColor"],["lineWidth","barBorderWidth"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]),QD={getBarItemStyle:function(t){var e=JD(this,t);if(this.getBorderLineDash){var i=this.getBorderLineDash();i&&(e.lineDash=i)}return e}},tC=["itemStyle","barBorderWidth"];a(No.prototype,QD),Zs({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=iC[s.type](a,e,i),l=eC[s.type](a,e,i,r,n,u);a.setItemGraphicEl(e,l),o.add(l),Eh(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=iC[s.type](a,e,h);l?Io(l,{shape:c},u,e):l=eC[s.type](a,e,h,c,n,u,!0),a.setItemGraphicEl(e,l),o.add(l),Eh(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&&Nh(t,u,e):e&&Oh(t,u,e)}).execute(),this._data=a},_renderLarge:function(t,e,i){this._clear(),zh(t,this.group)},_incrementalRenderLarge:function(t,e){zh(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?Oh(e.dataIndex,t,e):Nh(e.dataIndex,t,e)}):e.removeAll(),this._data=null}});var eC={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}}},nC=Pn.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 To(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 lC=function(t,e){d(e,function(e){e.update="updateView",Es(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}})})},uC=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)}})}}},hC=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")&&Hh(s,o,a,e,i,n)},cC=2*Math.PI,dC=Math.PI/180,fC=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}}),gC=Uh.prototype;gC.isPersistent=function(){return!this._incremental},gC.updateData=function(t){this.group.removeAll();var e=new pC({rectHover:!0,cursor:"default"});e.setShape({points:t.getLayout("symbolPoints")}),this._setCommon(e,t),this.group.add(e),this._incremental=null},gC.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)})}},gC.incrementalPrepareUpdate=function(t){this.group.removeAll(),this._clearIncremental(),t.count()>2e6?(this._incremental||(this._incremental=new Zn({silent:!0})),this.group.add(this._incremental)):this._incremental=null},gC.incrementalUpdate=function(t,e){var i;this._incremental?(i=new pC,this._incremental.addDisplayable(i,!0)):((i=new pC({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)},gC._setCommon=function(t,e,i){var n=e.hostModel,o=e.getVisual("symbolSize");t.setShape("size",o instanceof Array?o:[o,o]),t.symbolProxy=Jl(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))}))},gC.remove=function(){this._clearIncremental(),this._incremental=null,this.group.removeAll()},gC._clearIncremental=function(){var t=this._incremental;t&&t.clearDisplaybles()},Zs({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=AD().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 Uh:new Du,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(){}}),Bs(TD("scatter","circle")),zs(AD("scatter")),u(Xh,aD),jh.prototype.getIndicatorAxes=function(){return this._indicatorAxes},jh.prototype.dataToPoint=function(t,e){var i=this._indicatorAxes[e];return this.coordToPoint(i.dataToCoord(t),e)},jh.prototype.coordToPoint=function(t,e){var i=this._indicatorAxes[e].angle;return[this.cx+t*Math.cos(i),this.cy-t*Math.sin(i)]},jh.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(Go(d-f*u),Go(d+(a-f)*u)),r.setInterval(u)}})},jh.dimensions=[],jh.create=function(t,e){var i=[];return t.eachComponent("radar",function(n){var o=new jh(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},Fa.register("radar",jh);var mC=ND.valueAxis,vC=(Fs({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 No(f,null,this.ecModel),UA);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"}},mC.axisLine),axisLabel:Yh(mC.axisLabel,!1),axisTick:Yh(mC.axisTick,!1),splitLine:Yh(mC.splitLine,!0),splitArea:Yh(mC.splitArea,!0),indicator:[]}}),["axisLine","axisTickLabel","axisName"]);Ws({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 FD(t.model,{position:[e.cx,e.cy],rotation:t.angle,labelDirection:-1,tickDirection:-1,nameDirection:1})}),function(t){d(vC,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 ia(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}});Zs({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=qh(t.getItemVisual(e,"symbolSize")),a=Jl(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"+ia(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)"}}}}),aC);var EC="\0_ec_interaction_mutex";Es({type:"takeGlobalCursor",event:"globalCursorTaken",update:"update"},function(){}),h(oc,fw);var RC={axisPointer:1,tooltip:1,brush:1};xc.prototype={constructor:xc,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):Io(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=mc(s),y=mc(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});go(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),fo(i,y,{hoverSilentOnTouch:!!t.get("selectedMode")}),l.add(i)}),this._updateController(t,e,i),vc(this,t,l,i,n),yc(t,l)},remove:function(){this._regionsGroup.removeAll(),this._backgroundGroup.removeAll(),this._controller.dispose(),this._mapName&&OC.removeGraphic(this._mapName,this.uid),this._mapName=null,this._controllerHost={}},_updateBackground:function(t){var e=t.map;this._mapName!==e&&d(OC.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,fc(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,pc(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)&&!gc(e,i,t)})}};var zC="__seriesMapHighDown",BC="__seriesMapCallKey";Zs({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 xc(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[zC],w=Math.random();if(!_){_=m[zC]={};var b=v(_c,!0),S=v(_c,!1);m.on("mouseover",b).on("mouseout",S).on("emphasis",b).on("normal",S)}m[BC]=w,a(_,{recordVersion:w,circle:u,labelModel:p,hoverLabelModel:g,emphasisText:x,normalText:y}),wc(_,!1)}o.add(u)}}})}}),Es({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=bc(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 VC=Q;h(Sc,Tw),Mc.prototype={constructor:Mc,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?VC(i,t,n):G(i,t)},pointToData:function(t){var e=this.invTransform;return e?VC([],t,e):[t[0],t[1]]},convertToPixel:v(Ic,"dataToPoint"),convertFromPixel:v(Ic,"pointToData"),containPoint:function(t){return this.getViewRectAfterRoam().contain(t[0],t[1])}},h(Mc,Tw),Tc.prototype={constructor:Tc,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)}},Vc.prototype={constructor:Vc,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 ia(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}}),Zs({type:"tree",init:function(t,e){this._oldTree,this._mainGroup=new tb,this._controller=new oc(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){td(o,e)&&id(o,e,null,r,t,u)}).update(function(e,i){var n=l.getItemGraphicEl(i);td(o,e)?id(o,e,n,r,t,u):n&&nd(l,i,n,r,t,u)}).remove(function(e){var i=l.getItemGraphicEl(e);i&&nd(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=[];fn(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 Mc;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)&&!gc(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){fc(o,e.dx,e.dy),i.dispatchAction({seriesId:t.id,type:"treeRoam",dx:e.dx,dy:e.dy})},this).on("zoom",function(e){pc(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}}),Es({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})}),Es({type:"treeRoam",event:"treeRoam",update:"none"},function(t,e){e.eachComponent({mainType:"series",subType:"tree",query:t},function(e){var i=bc(e.coordinateSystem,t);e.setCenter&&e.setCenter(i.center),e.setZoom&&e.setZoom(i.zoom)})});Bs(TD("tree","circle")),zs(function(t,e){t.eachSeriesByType("tree",function(t){sd(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};dd(i);var n=t.levels||[];n=t.levels=fd(n,e);var o={};return o.levels=n,Vc.createTree(i,this,o).data},optionUpdated:function(){this.resetViewRoot()},formatTooltip:function(t){var e=this.getData(),i=this.getRawValue(t),n=ta(y(i)?i[0]:i);return ia(e.getName(t)+": "+n)},getDataParams:function(t){var e=YI.prototype.getDataParams.apply(this,arguments),i=this.getData().tree.getNodeByDataIndex(t);return e.treePathInfo=cd(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 UC=5;pd.prototype={constructor:pd,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),da(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=ha(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:gd(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),md(y,t,p),a+=g+8}},remove:function(){this.group.removeAll()}};var XC=m,jC=tb,YC=yM,qC=d,KC=["label"],$C=["emphasis","label"],JC=["upperLabel"],QC=["emphasis","upperLabel"],tL=10,eL=1,iL=2,nL=Qb([["fill","color"],["stroke","strokeColor"],["lineWidth","strokeWidth"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]),oL=function(t){var e=nL(t);return e.stroke=e.fill=e.lineWidth=null,e};Zs({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=ld(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 jC,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,qC(t,function(t,e){!t.isRemoved()&&s(e,e)})):new Xs(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(yd,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&&qC(t,function(t,i){var n=e[i];qC(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(){qC(c,function(t){qC(t,function(t){t.parent&&t.parent.remove(t)})}),qC(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=vd();qC(e.willDeleteEls,function(t,e){qC(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)}})}),qC(this._storage,function(t,i){qC(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(XC(function(){this._state="ready",e.renderFinally()},this)).start()}},_resetController:function(t){var e=this._controller;e||((e=this._controller=new oc(t.getZr())).enable(this.seriesModel.get("roam")),e.on("pan",XC(this._onPan,this)),e.on("zoom",XC(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 pd(this.group))).render(t,e,i.node,XC(function(e){"animating"!==this._state&&(hd(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 aL=["treemapZoomToNode","treemapRender","treemapMove"],rL=0;rL=0&&t.call(e,i[o],o)},TL.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)},TL.breadthFirstTraverse=function(t,e,i,n){if(Jd.isInstance(e)||(e=this._nodesMap[$d(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(Jd,AL("hostGraph","data")),h(Qd,AL("hostGraph","edgeData")),IL.Node=Jd,IL.Edge=Qd,Yi(Jd),Yi(Qd);var DL=function(t,e,i,n,o){for(var a=new IL(n),r=0;r "+f)),h++)}var p,g=i.get("coordinateSystem");if("cartesian2d"===g||"polar"===g)p=ml(t,i);else{var m=Fa.get(g),v=m&&"view"!==m.type?m.dimensions||[]:[];l(v,"value")<0&&v.concat(["value"]);var y=_A(t,{coordDimensions:v});(p=new vA(y,i)).initData(t)}var x=new vA(["value"],i);return x.initData(u,s),o&&o(p,x),kc({mainData:p,struct:a,structAttr:"graph",datas:{node:p,edge:x},datasAttr:{node:"data",edge:"edgeData"}}),a.update(),a},CL=Hs({type:"series.graph",init:function(t){CL.superApply(this,"init",arguments),this.legendDataProvider=function(){return this._categoriesData},this.fillDataTextStyle(t.edges||t.links),this._updateCategoriesData()},mergeOption:function(t){CL.superApply(this,"mergeOption",arguments),this.fillDataTextStyle(t.edges||t.links),this._updateCategoriesData()},mergeDefaultAndTheme:function(t){CL.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 DL(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 No({label:a.option},a.parentModel,e),s=o.getModel("emphasis.edgeLabel"),l=new No({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=ia(l.join(" > ")),o.value&&(l+=" : "+ia(o.value)),l}return CL.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 vA(["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 CL.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}}}}),LL=_M.prototype,kL=bM.prototype,PL=Un({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){(tf(e)?LL:kL).buildPath(t,e)},pointAt:function(t){return tf(this.shape)?LL.pointAt.call(this,t):kL.pointAt.call(this,t)},tangentAt:function(t){var e=this.shape,i=tf(e)?[e.x2-e.x1,e.y2-e.y1]:kL.tangentAt.call(this,t);return q(i,i)}}),NL=["fromSymbol","toSymbol"],OL=rf.prototype;OL.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]})}}}},OL._createLine=function(t,e,i){var n=t.hostModel,o=of(t.getItemLayout(e));o.shape.percent=0,To(o,{shape:{percent:1}},n,e),this.add(o);var a=new rM({name:"label",lineLabelOriginalOpacity:1});this.add(a),d(NL,function(i){var n=nf(i,t,e);this.add(n),this[ef(i)]=t.getItemVisual(e,i)},this),this._updateCommonStl(t,e,i)},OL.updateData=function(t,e,i){var n=t.hostModel,o=this.childOfName("line"),a=t.getItemLayout(e),r={shape:{}};af(r.shape,a),Io(o,r,n,e),d(NL,function(i){var n=t.getItemVisual(e,i),o=ef(i);if(this[o]!==n){this.remove(this.childOfName(i));var a=nf(i,t,e);this.add(a)}this[o]=n},this),this._updateCommonStl(t,e,i)},OL._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(NL,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)?Go(x):x}var _=m?g:null,w=v?A(n.getFormattedLabel(e,"emphasis",t.dataType),g):null,b=y.style;null==_&&null==w||(mo(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,fo(this)},OL.highlight=function(){this.trigger("emphasis")},OL.downplay=function(){this.trigger("normal")},OL.updateLayout=function(t,e){this.setLinePoints(t.getItemLayout(e))},OL.setLinePoints=function(t){var e=this.childOfName("line");af(e.shape,t),e.dirty()},u(rf,tb);var EL=sf.prototype;EL.isPersistent=function(){return!0},EL.updateData=function(t){var e=this,i=e.group,n=e._lineData;e._lineData=t,n||i.removeAll();var o=hf(t);t.diff(n).add(function(i){lf(e,t,i,o)}).update(function(i,a){uf(e,n,t,a,i,o)}).remove(function(t){i.remove(n.getItemGraphicEl(t))}).execute()},EL.updateLayout=function(){var t=this._lineData;t&&t.eachItemGraphicEl(function(e,i){e.updateLayout(t,i)},this)},EL.incrementalPrepareUpdate=function(t){this._seriesScope=hf(t),this._lineData=null,this.group.removeAll()},EL.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)}}),YL=2*Math.PI,qL=(Ar.extend({type:"gauge",render:function(t,e,i){this.group.removeAll();var n=t.get("axisLine.lineStyle.color"),o=Sf(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)%YL,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 jL({shape:{angle:a}});To(i,{shape:{angle:Bo(d.get(f,e),h,c,!0)}},t),l.add(i),d.setItemGraphicEl(e,i)}).update(function(e,i){var n=u.getItemGraphicEl(i);Io(n,{shape:{angle:Bo(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:Vo(a.get("width"),o.r),r:Vo(a.get("length"),o.r)}),t.useStyle(i.getModel("itemStyle").getItemStyle()),"auto"===t.style.fill&&t.setStyle("fill",n(Bo(d.get(f,e),h,[0,1],!0))),fo(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+Vo(l[0],o.r),h=o.cy+Vo(l[1],o.r),c=+t.get("min"),d=+t.get("max"),f=n(Bo(t.getData().get(r,0),[c,d],[0,1],!0));this.group.add(new rM({silent:!0,style:mo({},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+Vo(l[0],o.r),h=o.cy+Vo(l[1],o.r),c=Vo(a.get("width"),o.r),d=Vo(a.get("height"),o.r),f=t.getData(),p=f.get(f.mapDimension("value"),0),g=n(Bo(p,[r,s],[0,1],!0));this.group.add(new rM({silent:!0,style:mo({},a,{x:u,y:h,text:Mf(p,a.get("formatter")),textWidth:isNaN(c)?null:c,textHeight:isNaN(d)?null:d,textAlign:"center",textVerticalAlign:"middle"},{autoColor:g,forceRich:!0})}))}}}),Hs({type:"series.funnel",init:function(t){qL.superApply(this,"init",arguments),this.legendDataProvider=function(){return this.getRawData()},this._defaultLabelLine(t)},getInitialData:function(t,e){return oC(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=qL.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}}}})),KL=If.prototype,$L=["itemStyle","opacity"];KL.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($L);l=null==l?1:l,n.useStyle({}),i?(n.setShape({points:s.points}),n.setStyle({opacity:0}),To(n,{style:{opacity:l}},o,e)):Io(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),fo(this)},KL._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");Io(i,{shape:{points:r.linePoints||r.linePoints}},o,e),Io(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");go(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(If,tb);Ar.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 If(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(){}});Bs(uC("funnel")),zs(function(t,e,i){t.eachSeriesByType("funnel",function(t){var i=t.getData(),n=i.mapDimension("value"),o=t.get("sort"),a=Tf(t,e),r=Af(i,o),s=[Vo(t.get("minSize"),a.width),Vo(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=Bo(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},tk=d,ek=Math.min,ik=Math.max,nk=Math.floor,ok=Math.ceil,ak=Go,rk=Math.PI;Nf.prototype={type:"parallel",constructor:Nf,_init:function(t,e,i){var n=t.dimensions,o=t.parallelAxisIndex;tk(n,function(t,i){var n=o[i],a=e.getComponent("parallelAxis",n),r=this._axesMap.set(t,new JL(t,Hl(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();tk(this.dimensions,function(t){var e=this._axesMap.get(t);e.scale.unionExtentFromData(n,n.mapDimension(t)),Wl(e.scale,e.model)},this)}},this)},resize:function(t,e){this._rect=ca(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=Of(e.get("axisExpandWidth"),l),c=Of(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=Of(f[1]-f[0],l),f[1]=f[0]+t):(t=Of(h*(c-1),l),(f=[h*(e.get("axisExpandCenter")||nk(u/2))-t/2])[1]=f[0]+t);var p=(s-t)/(u-c);p<3&&(p=0);var g=[nk(ak(f[0]/h,1))+1,ok(ak(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])}),tk(i,function(e,i){var a=(n.axisExpandable?Rf:Ef)(i,n),r={horizontal:{x:a.position,y:n.axisLength},vertical:{x:0,y:a.position}},s={horizontal:rk/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)?QL(r,n,a,"all"):l="none";else{o=n[1]-n[0];(n=[ik(0,a[1]*s/o-o/2)])[1]=ek(a[1],n[0]+o),n[0]=n[1]-o}return{axisExpandWindow:n,behavior:l}}},Fa.register("parallel",{create:function(t,e){var i=[];return t.eachComponent("parallel",function(n,o){var a=new Nf(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 sk=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--)Fo(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&&Ip(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})}}};Ns(function(t){Cf(t),Lf(t)}),YI.extend({type:"series.parallel",dependencies:["parallel"],visualColorAccessPath:"lineStyle.color",getInitialData:function(t,e){var i=this.getSource();return Tp(i,this),ml(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 Dk=.3,Ck=(Ar.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=kp(t);if(a.diff(r).add(function(t){Pp(Lp(a,o,t,l,s),a,t,u)}).update(function(e,i){var o=r.getItemGraphicEl(i),h=Cp(a,e,l,s);a.setItemGraphicEl(e,o),Io(o,{shape:{points:h}},n&&!1===n.animation?null:t,e),Pp(o,a,e,u)}).remove(function(t){var e=r.getItemGraphicEl(t);o.remove(e)}).execute(),!this._initialized){this._initialized=!0;var h=Dp(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=kp(e),s=t.start;sn&&(n=e)}),d(e,function(e){var o=new hL({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 Ok={_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 oC(this,{coordDimensions:[{name:h,type:qs(p),ordinalMeta:i,otherDims:{tooltip:!1,itemName:0},dimsDef:["base"]},{name:c,type:qs(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}}),Ok,!0);var Ek=["itemStyle"],Rk=["emphasis","itemStyle"],zk=(Ar.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}),Pn.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?jk:Yk)}function n(t,e){return e.get(t>0?Uk:Xk)}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)})}}}}},Kk="undefined"!=typeof Float32Array?Float32Array:Array,$k={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 Kk(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]=Jn(a[o]+n/2,1,!1),r[o]=Jn(r[o]-n/2,1,!0),i?t.push(a,r):t.push(r,a)}function f(t){return t[o]=Jn(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)})}}}}};Ns(function(t){t&&y(t.series)&&d(t.series,function(t){w(t)&&"k"===t.type&&(t.type="candlestick")})}),Bs(qk),zs($k),YI.extend({type:"series.effectScatter",dependencies:["grid","polar"],getInitialData:function(t,e){return ml(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 Jk=vg.prototype;Jk.stopEffectAnimation=function(){this.childAt(1).removeAll()},Jk.startEffectAnimation=function(t){for(var e=t.symbolType,i=t.color,n=this.childAt(1),o=0;o<3;o++){var a=Jl(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)},Jk.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}}}),iP=xg.prototype;iP.createLine=function(t,e,i){return new rf(t,e,i)},iP._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=Jl(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))},iP._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}},iP.getLineLength=function(t){return uw(t.__p1,t.__cp1)+uw(t.__cp1,t.__p2)},iP.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]},iP.updateData=function(t,e,i){this.childAt(0).updateData(t,e,i),this._updateEffectSymbol(t,e)},iP.updateSymbolPosition=function(t){var e=t.__p1,i=t.__p2,n=t.__cp1,o=t.__t,a=t.position,r=sn,s=ln;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},iP.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 nP=_g.prototype;nP._createPolyline=function(t,e,i){var n=t.getItemLayout(e),o=new gM({shape:{points:n}});this.add(o),this._updateCommonStl(t,e,i)},nP.updateData=function(t,e,i){var n=t.hostModel;Io(this.childAt(0),{shape:{points:t.getItemLayout(e)}},n,e),this._updateCommonStl(t,e,i)},nP._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,fo(this)},nP.updateLayout=function(t,e){this.childAt(0).setShape("points",t.getItemLayout(e))},u(_g,tb);var oP=wg.prototype;oP.createLine=function(t,e,i){return new _g(t,e,i)},oP.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 aP=Un({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(_n(l,u,(l+c)/2-(u-d)*o,(u+d)/2-(c-l)*o,c,d))return a}else if(yn(l,u,c,d))return a;a++}return-1}}),rP=bg.prototype;rP.isPersistent=function(){return!this._incremental},rP.updateData=function(t){this.group.removeAll();var e=new aP({rectHover:!0,cursor:"default"});e.setShape({segs:t.getLayout("linesPoints")}),this._setCommon(e,t),this.group.add(e),this._incremental=null},rP.incrementalPrepareUpdate=function(t){this.group.removeAll(),this._clearIncremental(),t.count()>5e5?(this._incremental||(this._incremental=new Zn({silent:!0})),this.group.add(this._incremental)):this._incremental=null},rP.incrementalUpdate=function(t,e){var i=new aP;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))},rP.remove=function(){this._clearIncremental(),this._incremental=null,this.group.removeAll()},rP._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)}))},rP._clearIncremental=function(){var t=this._incremental;t&&t.clearDisplaybles()};var sP={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}},Zs({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}},Fa.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 gP=["axisLine","axisTickLabel","axisName"],mP=XD.extend({type:"singleAxis",axisPointerClass:"SingleAxisPointer",render:function(t,e,i,n){var o=this.group;o.removeAll();var a=Jg(t),r=new FD(t,a);d(gP,r.add,r),o.add(r.getGroup()),t.get("splitLine.show")&&this._splitLine(t),mP.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"),IP.superApply(this._model,"remove",arguments)},dispose:function(t,e){gm("axisPointer",e),IP.superApply(this._model,"dispose",arguments)}}),TP=Bi(),AP=i,DP=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=Mh(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=TP(t).pointerEl=new zM[o.type](AP(e.pointer));t.add(a)}},createLabelEl:function(t,e,i,n){if(e.label){var o=TP(t).labelEl=new yM(AP(e.label));t.add(o),xm(o,n)}},updatePointerEl:function(t,e,i){var n=TP(t).pointerEl;n&&(n.setStyle(e.pointer.style),i(n,{shape:e.pointer.shape}))},updateLabelEl:function(t,e,i,n){var o=TP(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=Po(o.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(t){mw(t.event)},onmousedown:DP(this._onHandleDragMove,this,0,0),drift:DP(this._onHandleDragMove,this),ondragend:DP(this._onHandleDragEnd,this)}),i.add(n)),wm(n,e,!1);var s=["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"];n.setStyle(o.getItemStyle(null,s));var l=o.get("size");y(l)||(l=[l,l]),n.attr("scale",[l[0]/2,l[1]/2]),Nr(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)),TP(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,ji(mm);var CP=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=LP[s](a,u,l,h);c.style=h,t.graphicKey=c.type,t.pointer=c}Am(e,t,Lh(r.model,i),i,n,o)},getHandleTransform:function(t,e,i){var n=Lh(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];var d=[{verticalAlign:"middle"},{align:"center"}];return{position:u,rotation:t.rotation,cursorPoint:c,tooltipOption:d[l]}}}),LP={line:function(t,e,i,n){var o=Dm([e,i[0]],[e,i[1]],Pm(t));return Kn({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))}}};XD.registerAxisPointerClass("CartesianAxisPointer",CP),Ns(function(t){if(t){(!t.axisPointer||0===t.axisPointer.length)&&(t.axisPointer={});var e=t.axisPointer.link;e&&!y(e)&&(t.axisPointer.link=[e])}}),Os(VT.PROCESSOR.STATISTIC,function(t,e){t.getComponent("axisPointer").coordSysAxesInfo=vh(t,e)}),Es({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=xP({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:wP(em,f),showTooltip:wP(im,p)};_P(s.coordSysMap,function(t,e){var i=l||t.containPoint(o);_P(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 _P(h,function(t,e){var i=t.linkGroup;i&&!f[e]&&_P(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}})}),_P(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 kP=["x","y"],PP=["width","height"],NP=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=OP[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"}}}}),OP={line:function(t,e,i,n){var o=Dm([e,i[0]],[e,i[1]],Nm(t));return Kn({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))}}};XD.registerAxisPointerClass("SingleAxisPointer",NP),Ws({type:"single"});var EP=YI.extend({type:"series.themeRiver",dependencies:["singleAxis"],nameMap:null,init:function(t){EP.superApply(this,"init",arguments),this.legendDataProvider=function(){return this.getRawData()}},fixData:function(t){var e=t.length,i=[];Zi(t,function(t){return t[2]}).buckets.each(function(t,e){i.push({name:e,dataList:t})});for(var 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)},VP._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);Ar.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 Xs(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 GP="sunburstRootToNode";Es({type:GP,update:"updateView"},function(t,e){e.eachComponent({mainType:"series",subType:"sunburst",query:t},function(e,i){var n=ld(t,[GP],e);if(n){var o=e.getViewRoot();o&&(t.direction=hd(o,n.node)?"rollUp":"drillDown"),e.resetViewRoot(n.node)}})});var FP="sunburstHighlight";Es({type:FP,update:"updateView"},function(t,e){e.eachComponent({mainType:"series",subType:"sunburst",query:t},function(e,i){var n=ld(t,[FP],e);n&&(t.highlight=n.node)})});Es({type:"sunburstUnhighlight",update:"updateView"},function(t,e){e.eachComponent({mainType:"series",subType:"sunburst",query:t},function(e,i){t.unhighlight=!0})});var WP=Math.PI/180;Bs(v(uC,"sunburst")),zs(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=Vo(e[0],o),l=Vo(e[1],a),u=Vo(n[0],r/2),h=Vo(n[1],r/2),c=-t.get("startAngle")*WP,f=t.get("minAngle")*WP,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 ml(this.getSource(),this)},getDataParams:function(t,e,i){var n=YI.prototype.getDataParams.apply(this,arguments);return i&&(n.info=i.info),n}}),Ar.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}});Ws({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;da(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 KP=Fs({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){KP.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}}});Es("legendToggleSelect","legendselectchanged",v(xv,"toggleSelected")),Es("legendSelect","legendselected",v(xv,"select")),Es("legendUnSelect","legendunselected",v(xv,"unSelect"));var $P=v,JP=d,QP=tb,tN=Ws({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=ca(a,s,l),h=this.layoutInner(t,o,u,n),c=ca(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)}),JP(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",$P(bv,h,n)).on("mouseover",$P(Sv,c.name,null,n,s)).on("mouseout",$P(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",$P(bv,h,n)).on("mouseover",$P(Sv,null,h,n,s)).on("mouseout",$P(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(Jl(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(Jl(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:mo({},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),fo(g),g.__legendDataIndex=e,g},layoutInner:function(t,e,i){var n=this.getContentGroup();aI(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}});Os(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&&Io(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=nN[r],l=oN[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?this.el.hide():true,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 uN=m,hN=d,cN=Vo,dN=new yM({shape:{x:-1,y:-1,width:2,height:2}});Ws({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,uN(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=dN;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=xP(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={};hN(t,function(t){hN(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=Xl(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?ia(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 No(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=na(h,i,!0);else if("function"==typeof h){var d=uN(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=cN(e[0],s),n=cN(e[1],l);else if(w(e)){e.width=u[0],e.height=u[1];var f=ca(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&&hN(e,function(e,n){var o=e.dataByAxis||{},a=(t[n]||{}).dataByAxis||[];(i&=o.length===a.length)&&hN(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)&&hN(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))}}),Es({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},function(){}),Es({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:aD.prototype.dataToCoord,radiusToData:aD.prototype.coordToData},u(Gv,aD);var fN=Bi();Fv.prototype={constructor:Fv,pointToData:function(t,e){return this.polar.pointToData(t,e)["radius"===this.dim?0:1]},dataToAngle:aD.prototype.dataToCoord,angleToData:aD.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=fN(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,aD);var pN=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};pN.prototype={type:"polar",axisPointerEnabled:!0,constructor:pN,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 gN=lI.extend({type:"polarAxis",axis:null,getCoordSysModel:function(){return this.ecModel.queryComponents({mainType:"polar",index:this.option.polarIndex,id:this.option.polarId})[0]}});n(gN.prototype,UA);var mN={angle:{startAngle:90,clockwise:!0,splitNumber:12,axisLabel:{rotate:!1}},radius:{splitNumber:5}};ED("angle",gN,Wv,mN.angle),ED("radius",gN,Wv,mN.radius),Fs({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 vN={dimensions:pN.prototype.dimensions,create:function(t,e){var i=[];return t.eachComponent("polar",function(t,n){var o=new pN(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}};Fa.register("polar",vN);var yN=["axisLine","axisLabel","axisTick","splitLine","splitArea"];XD.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(yN,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 No(a[u].textStyle,r,r.ecModel));var m=new rM({silent:!0});this.group.add(m),mo(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},kN.findTargetInfo=function(t,e){for(var i=this._targetInfoList,n=dy(e,t),o=0;o=0||AN(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:ON.grid,xAxisDeclared:r[t.id],yAxisDeclared:s[t.id]})}))},geo:function(t,e){TN(t.geoModels,function(t){var i=t.coordinateSystem;e.push({panelId:"geo--"+t.id,geoModel:t,coordSysModel:t,coordSys:i,coordSyses:[i],getPanelRect:ON.geo})})}},NN=[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}],ON={grid:function(){return this.coordSys.grid.getRect().clone()},geo:function(){var t=this.coordSys,e=t.getBoundingRect().clone();return e.applyTransform(Ao(t)),e}},EN={lineX:DN(fy,0),lineY:DN(fy,1),rect:function(t,e,i){var n=e[CN[t]]([i[0][0],i[1][0]]),o=e[CN[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[CN[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}}},RN={lineX:DN(py,0),lineY:DN(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]]})}},zN=["inBrush","outOfBrush"],BN="__ecBrushSelect",VN="__ecInBrushSelectEvent",GN=VT.VISUAL.BRUSH;zs(GN,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)})}),Bs(GN,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:FN[t.brushType](t)},t))}),S=ty(e.option,zN,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(zN,S,a,r)})}),vy(e,o,a,s,n)});var FN={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)}},WN=["#ddd"];Fs({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:WN},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}});Ws({type:"brush",init:function(t,e){this.ecModel=t,this.api=e,this.model,(this._brushController=new zf(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})}}),Es({type:"brush",event:"brush"},function(t,e){e.eachComponent({mainType:"brush",query:t},function(e){e.setAreas(t.areas)})}),Es({type:"brushSelect",event:"brushSelected",update:"none"},function(){});var HN={},ZN=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(ZN.title)};var UN=Dy.prototype;UN.render=UN.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")})},UN.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},UN.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),Ns(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,SN)}});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=Yo(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=ca(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},Fa.register("calendar",Cy);var XN=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=ga(t);XN.superApply(this,"init",arguments),ky(t,o)},mergeOption:function(t,e){XN.superApply(this,"mergeOption",arguments),ky(this.option,t)}}),jN={EN:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],CN:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},YN={EN:["S","M","T","W","T","F","S"],CN:["日","一","二","三","四","五","六"]};Ws({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?oa(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});mo(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=jN[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&&$N(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}):$N(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)}}),$N(o,function(t){e.setApproximateExtent(r,t)}))})}}};var tO=d,eO=KN,iO=Fs({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),tO([["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();eO(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;eO(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):tO(n.singleAxis,function(n){t&&n.get("orient",!0)===e&&(i.singleAxisIndex=[n.componentIndex],t=!1)})}t&&eO(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 eO(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;eO(function(n){tO(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;tO([["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()}}),nO=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:aO(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(cO,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 oO({draggable:!0,cursor:Fy(this._orient),drift:sO(this._onDragMove,this,"all"),onmousemove:function(t){mw(t.event)},ondragstart:sO(this._showDataInfo,this,!0),ondragend:sO(this._onDragEnd,this),onmouseover:sO(this._showDataInfo,this,!0),onmouseout:sO(this._showDataInfo,this,!1),style:{fill:a.get("fillerColor"),textPosition:"inside"}})),n.add(new oO($n({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)"}}))),lO([0,1],function(t){var o=Po(a.get("handleIcon"),{cursor:Fy(this._orient),draggable:!0,drift:sO(this._onDragMove,this,t),onmousemove:function(t){mw(t.event)},ondragend:sO(this._onDragEnd,this),onmouseover:sO(this._showDataInfo,this,!0),onmouseout:sO(this._showDataInfo,this,!1)},{x:-1,y:0,width:2,height:2}),r=o.getBoundingRect();this._handleHeight=Vo(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=[aO(t[0],[0,100],e,!0),aO(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];QL(e,n,o,i.get("zoomLock")?"all":t,null!=a.minSpan?aO(a.minSpan,r,o,!0):null,null!=a.maxSpan?aO(a.maxSpan,r,o,!0):null);var s=this._range,l=this._range=rO([aO(n[0],o,r,!0),aO(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=rO(i.slice()),o=this._size;lO([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=Ao(n.handles[t].parent,this.group),i=Co(0===t?"right":"left",e),s=this._handleWidth/2+hO,l=Do([c[t]+(0===t?-s:s),this._size[1]/2],e);o[t].setStyle({x:l[0],y:l[1],textVerticalAlign:a===uO?"middle":i,textAlign:a===uO?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=rO(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=Do([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(lO(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}});iO.extend({type:"dataZoom.inside",defaultOption:{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}});var fO="\0_ec_dataZoom_roams",pO=m,gO=nO.extend({type:"dataZoom.inside",init:function(t,e){this._range},render:function(t,e,i,n){gO.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]=pO(mO[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),gO.superApply(this,"dispose",arguments),this._range=null}}),mO={zoom:function(t,e,i,n){var o=this._range,a=o.slice(),r=t.axisModels[0];if(r){var s=vO[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 QL(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=vO[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 vO[n]([0,0],[a.scrollDelta,a.scrollDelta],e,o,i).signal*(t[1]-t[0])*a.scrollDelta})},vO={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}};Os({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)})}}),Es("dataZoom",function(t,e){var i=Ny(m(e.eachComponent,e,"dataZoom"),KN,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 yO=d,xO=function(t){var e=t&&t.visualMap;y(e)||(e=e?[e]:[]),yO(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)&&yO(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 _O=VT.VISUAL.COMPONENT;Bs(_O,{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}}),Bs(_O,{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 wO={get:function(t,e,n){var o=i((bO[t]||{})[e]);return n&&y(o)?o[o.length-1]:o}},bO={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]}},SO=hL.mapVisual,MO=hL.eachVisual,IO=y,TO=d,AO=Fo,DO=Bo,CO=B,LO=Fs({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=AO([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){IO(o.color)&&!t.inRange&&(t.inRange={color:o.color.slice().reverse()}),t.inRange=t.inRange||{color:e.get("gradientColor")},TO(this.stateList,function(e){var i=t[e];if(_(i)){var n=wO.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]={},TO(n,function(t,e){if(hL.isValidType(e)){var i=wO.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");TO(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=SO(s.symbol,function(t){return"none"===t||"square"===t?"roundRect":t});var u=s.symbolSize;if(null!=u){var h=-1/0;MO(u,function(t){t>h&&(h=t)}),s.symbolSize=SO(u,function(t){return DO(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:CO,getValueState:CO,getVisualMeta:CO}),kO=[20,140],PO=LO.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){PO.superApply(this,"optionUpdated",arguments),this.resetExtent(),this.resetVisual(function(t){t.mappingMethod="linear",t.dataExtent=this.getExtent()}),this._resetRange()},resetItemSize:function(){PO.superApply(this,"resetItemSize",arguments);var t=this.itemSize;"horizontal"===this._orient&&t.reverse(),(null==t[0]||isNaN(t[0]))&&(t[0]=kO[0]),(null==t[1]||isNaN(t[1]))&&(t[1]=kO[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(){LO.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=Fo((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;EO([0,1],function(r){var s=o[r];s.setStyle("fill",e.handlesColor[r]),s.position[1]=t[r];var l=Do(i.handleLabelPoints[r],Ao(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=OO(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={convertOpacityToAlpha:!0},d=this.getControllerVisual(t,"color",c);h.setStyle("fill",d);var f=Do(u.indicatorLabelPoint,Ao(h,this.group)),p=u.indicatorLabel;p.attr("invisible",!1);var g=this._applyTransform("left",u.barGroup),m=this._orient;p.setStyle({text:(i||"")+o.formatValueText(e),textVerticalAlign:"horizontal"===m?g:"middle",textAlign:"horizontal"===m?"center":g,x:f[0],y:f[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]=RO(zO(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=RO(zO(o[0],t),o[1]);var r=ax(i,a,o),s=[t-r,t+r],l=OO(t,o,a,!0),u=[OO(s[0],o,a,!0),OO(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=Ao(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()}});Es({type:"selectDataRange",event:"dataRangeSelected",update:"update"},function(t,e){e.eachComponent({mainType:"visualMap",query:t},function(e){e.setSelected(t.selected)})}),Ns(xO);var FO=LO.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){FO.superApply(this,"optionUpdated",arguments),this._pieceList=[],this.resetExtent();var n=this._mode=this._determineMode();WO[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=hL.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]=wO.get(n,"inRange"===t?"active":"inactive",o)})},this),LO.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=hL.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){hL.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}}}}),WO={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)}};NO.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),aI(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(Jl(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})}});Ns(xO);var HO=ta,ZO=ia,UO=Fs({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,HO).join(", "):HO(i),o=e.getName(t),a=ZO(this.name);return(null!=i||o)&&(a+="
"),o&&(a+=ZO(o),null!=i&&(a+=" : ")),null!=i&&(a+=ZO(n)),a},getData:function(){return this._data},setData:function(t){this._data=t}});h(UO,ZI),UO.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 XO=l,jO=v,YO={min:jO(dx,"min"),max:jO(dx,"max"),average:jO(dx,"average")},qO=Ws({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(){}});qO.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 Du),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")}}),Ns(function(t){t.markPoint=t.markPoint||{}}),UO.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 KO=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};qO.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 sf);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")}}),Ns(function(t){t.markLine=t.markLine||{}}),UO.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 $O=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},JO=[["x0","y0"],["x1","y0"],["x1","y1"],["x0","y1"]];qO.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(JO,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(JO,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);Io(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(),go(t.style,t.hoverStyle,o,a,{labelFetcher:e,labelDataIndex:i,defaultText:h.getName(i)||"",isRectText:!0,autoColor:s}),fo(t,{}),t.dataModel=e}),u.__data=h,u.group.silent=e.get("silent")||t.get("silent")}}),Ns(function(t){t.markArea=t.markArea||{}});lI.registerSubTypeDefaulter("timeline",function(){return"slider"}),Es({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)}),Es({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 vA([{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 tE=qI.extend({type:"timeline"}),eE=function(t,e,i,n){aD.call(this,t,e,i),this.type=n||"value",this.model=null};eE.prototype={constructor:eE,getLabelModel:function(){return this.model.getModel("label")},isHorizontal:function(){return"horizontal"===this.model.get("orient")}},u(eE,aD);var iE=m,nE=d,oE=Math.PI;tE.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 ia(s.scale.getLabel(t))},nE(["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:oE/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*oE/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,-oE/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=Hl(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 eE("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();nE(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:iE(this._changeTimeline,this,t)},h=zx(r,s,e,u);fo(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();nE(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:iE(this._changeTimeline,this,a),silent:!1});mo(h.style,s,{text:n.formattedLabel,textAlign:t.labelAlign,textVerticalAlign:t.labelBaseline}),e.add(h),fo(h,mo({},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),fo(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",iE(this._changeTimeline,this,c?"-":"+")),o(t.prevBtnPosition,"controlStyle.prevIcon",iE(this._changeTimeline,this,c?"+":"-")),o(t.playPosition,"controlStyle."+(h?"stopIcon":"playIcon"),iE(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=iE(s._handlePointerDrag,s),t.ondragend=iE(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=Fo(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 rE=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:rE.title,type:"png",name:"",excludeComponents:["toolbox"],pixelRatio:1,lang:rE.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 sE=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(sE.title),option:{},seriesIndex:{}};var lE=Fx.prototype;lE.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 uE={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)}},hE=[["line","bar"],["stack","tiled"]];lE.onclick=function(t,e,i){var n=this.model,o=n.get("seriesIndex."+i);if(uE[i]){var a={series:[]};d(hE,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=uE[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})}},Es({type:"changeMagicType",event:"magicTypeChanged",update:"prepareAndUpdate"},function(t,e){e.mergeOption(t.newOption)}),Ty("magicType",Fx);var cE=rT.toolbox.dataView,dE=new Array(60).join("-"),fE="\t",pE=new RegExp("["+fE+"]+","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(cE.title),lang:i(cE.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)+fE+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),Es({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 gE=d,mE="\0_ec_hist_store";iO.extend({type:"dataZoom.select"}),nO.extend({type:"dataZoom.select"});var vE=rT.toolbox.dataZoom,yE=d,xE="\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(vE.title)};var _E=o_.prototype;_E.render=function(t,e,i,n){this.model=t,this.ecModel=e,this.api=i,s_(t,e,this,n,i),r_(t,e)},_E.onclick=function(t,e,i){wE[i].call(this)},_E.remove=function(t,e){this._brushController.unmount()},_E.dispose=function(t,e){this._brushController.dispose()};var wE={zoom:function(){var t=!this._isZoomActive;this.api.dispatchAction({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:t})},back:function(){this._dispatchZoomAction(t_(this.ecModel))}};_E._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=QL(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)}},_E._dispatchZoomAction=function(t){var e=[];yE(t,function(t,n){e.push(i(t))}),e.length&&this.api.dispatchAction({type:"dataZoom",from:this.uid,batch:e})},Ty("dataZoom",o_),Ns(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:xE+t+i};r[o]=i,n.push(r)}})}}function i(e,i){var n=t[e];y(n)||(n=n?[n]:[]),yE(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 bE=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:bE.title},l_.prototype.onclick=function(t,e,i){e_(t),e.dispatchAction({type:"restore",from:this.uid})},Ty("restore",l_),Es({type:"restore",event:"restore",update:"prepareAndUpdate"},function(t,e){e.resetOption("recreate")});var SE,ME="urn:schemas-microsoft-com:vml",IE="undefined"==typeof window?null:window,TE=!1,AE=IE&&IE.document;if(AE&&!U_.canvasSupported)try{!AE.namespaces.zrvml&&AE.namespaces.add("zrvml",ME),SE=function(t){return AE.createElement("')}}catch(t){SE=function(t){return AE.createElement("<"+t+' xmlns="'+ME+'" class="zrvml">')}}var DE=ES.CMD,CE=Math.round,LE=Math.sqrt,kE=Math.abs,PE=Math.cos,NE=Math.sin,OE=Math.max;if(!U_.canvasSupported){var EE=21600,RE=EE/2,zE=function(t){t.style.cssText="position:absolute;left:0;top:0;width:1px;height:1px;",t.coordsize=EE+","+EE,t.coordorigin="0,0"},BE=function(t){return String(t).replace(/&/g,"&").replace(/"/g,""")},VE=function(t,e,i){return"rgb("+[t,e,i].join(",")+")"},GE=function(t,e){e&&t&&e.parentNode!==t&&t.appendChild(e)},FE=function(t,e){e&&t&&e.parentNode===t&&t.removeChild(e)},WE=function(t,e,i){return 1e5*(parseFloat(t)||0)+1e3*(parseFloat(e)||0)+i},HE=function(t,e){return"string"==typeof t?t.lastIndexOf("%")>=0?parseFloat(t)/100*e:parseFloat(t):t},ZE=function(t,e,i){var n=Gt(e);i=+i,isNaN(i)&&(i=1),n&&(t.color=VE(n[0],n[1],n[2]),t.opacity=i*n[3])},UE=function(t){var e=Gt(t);return[VE(e[0],e[1],e[2]),e[3]]},XE=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]*EE,x/=v[1]*EE;var _=OE(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 ZE(t,n,e.opacity)},jE=function(t,e){null!=e.lineDash&&(t.dashstyle=e.lineDash.join(" ")),null==e.stroke||e.stroke instanceof IM||ZE(t,e.stroke,e.opacity)},YE=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&&FE(t,a),a||(a=u_(e)),o?XE(a,i,n):jE(a,i),GE(t,a)):(t[o?"filled":"stroked"]="false",FE(t,a))},qE=[[],[],[]],KE=function(t,e){var i,n,o,a,r,s,l=DE.M,u=DE.C,h=DE.L,c=DE.A,d=DE.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,CE(((A-C)*M+b)*EE-RE),",",CE(((D-L)*I+S)*EE-RE),",",CE(((A+C)*M+b)*EE-RE),",",CE(((D+L)*I+S)*EE-RE),",",CE((O*M+b)*EE-RE),",",CE((E*I+S)*EE-RE),",",CE((y*M+b)*EE-RE),",",CE((x*I+S)*EE-RE)),r=y,s=x;break;case DE.R:var z=qE[0],B=qE[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]=CE(z[0]*EE-RE),B[0]=CE(B[0]*EE-RE),z[1]=CE(z[1]*EE-RE),B[1]=CE(B[1]*EE-RE),f.push(" m ",z[0],",",z[1]," l ",B[0],",",z[1]," l ",B[0],",",B[1]," l ",z[0],",",B[1]);break;case DE.Z:f.push(" x ")}if(i>0){f.push(n);for(var V=0;V100&&(tR=0,QE={});var i,n=eR.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,tR++}return e};!function(t,e){bb[t]=e}("measureText",function(t,e){var i=AE;JE||((JE=i.createElement("div")).style.cssText="position:absolute;top:-20000px;left:0;padding:0;margin:0;border:none;white-space:pre;",AE.body.appendChild(JE));try{JE.style.font=e}catch(t){}return JE.innerHTML="",JE.appendChild(i.createTextNode(t)),{width:JE.offsetWidth}});for(var nR=new de,oR=[Db,di,fi,Pn,rM],aR=0;aR=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 Pn?yR:t instanceof fi?xR:t instanceof rM?_R:yR},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 IR=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=[]};IR.prototype={constructor:IR,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){IR.prototype[t]=F_(t)}),Ti("svg",IR),t.version="4.2.1",t.dependencies=ET,t.PRIORITY=VT,t.init=function(t,e,i){var n=ks(t);if(n)return n;var o=new us(t,e,i);return o.id="ec_"+iA++,tA[o.id]=o,Fi(t,oA,o.id),Cs(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_"+nA++,kT(e,function(e){e.group=t})}return eA[t]=!0,t},t.disConnect=Ls,t.disconnect=aA,t.dispose=function(t){"string"==typeof t?t=tA[t]:t instanceof us||(t=ks(t)),t instanceof us&&!t.isDisposed()&&t.dispose()},t.getInstanceByDom=ks,t.getInstanceById=function(t){return tA[t]},t.registerTheme=Ps,t.registerPreprocessor=Ns,t.registerProcessor=Os,t.registerPostUpdate=function(t){KT.push(t)},t.registerAction=Es,t.registerCoordinateSystem=Rs,t.getCoordinateSystemDimensions=function(t){var e=Fa.get(t);if(e)return e.getDimensionsInfo?e.getDimensionsInfo():e.dimensions.slice()},t.registerLayout=zs,t.registerVisual=Bs,t.registerLoading=Gs,t.extendComponentModel=Fs,t.extendComponentView=Ws,t.extendSeriesModel=Hs,t.extendChartView=Zs,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=rA,t.zrender=Hb,t.number=YM,t.format=eI,t.throttle=Pr,t.helper=tD,t.matrix=Sw,t.vector=cw,t.color=Ww,t.parseGeoJSON=iD,t.parseGeoJson=rD,t.util=sD,t.graphic=lD,t.List=vA,t.Model=No,t.Axis=aD,t.env=U_}); \ No newline at end of file diff --git a/uni_modules/qiun-data-charts/static/h5/echarts.min.js b/uni_modules/qiun-data-charts/static/h5/echarts.min.js new file mode 100644 index 0000000..5396a03 --- /dev/null +++ b/uni_modules/qiun-data-charts/static/h5/echarts.min.js @@ -0,0 +1,23 @@ + +/* +* 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. +* 版本为4.2.1,修改一处源码:this.el.hide() 改为 this.el?this.el.hide():true +*/ + + +!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,a,r,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 tn(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 en(t,e,i,n,o){var a=1-o;return 3*(((e-t)*a+2*(i-e)*o)*a+(n-i)*o*o)}function nn(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(Ji(h)&&Ji(c))Ji(s)?a[0]=0:(M=-l/s)>=0&&M<=1&&(a[f++]=M);else{var p=c*c-4*h*d;if(Ji(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 on(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(Ji(r))Qi(a)&&(c=-s/a)>=0&&c<=1&&(o[l++]=c);else{var u=a*a-4*r*s;if(Ji(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 an(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 rn(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]=tn(t,i,o,r,y),cS[1]=tn(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(Ji(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 hn(t,e,i){var n=t+i-2*e;return 0===n?.5:(t-e)/n}function cn(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 dn(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]=sn(t,i,o,d),cS[1]=sn(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 yn(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 Sn(t,e,i,n,o,a){if(a>e&&a>n||ao?r:0}function Mn(t,e){return Math.abs(t-e)e&&u>n&&u>a&&u>s||u1&&In(),c=tn(e,n,a,s,WS[0]),p>1&&(d=tn(e,n,a,s,WS[1]))),2===p?me&&s>n&&s>a||s=0&&u<=1){for(var h=0,c=sn(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=wn(o),o=wn(u)}else n=wn(n),o=wn(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 Cn(t,e,i,n,o){for(var a=0,r=0,s=0,l=0,u=0,h=0;h1&&(i||(a+=Sn(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(yn(r,s,t[h],t[h+1],e,n,o))return!0}else a+=Sn(r,s,t[h],t[h+1],n,o)||0;r=t[h++],s=t[h++];break;case BS.C:if(i){if(xn(r,s,t[h++],t[h++],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++],t[h],t[h+1],n,o)||0;r=t[h++],s=t[h++];break;case BS.Q:if(i){if(_n(r,s,t[h++],t[h++],t[h],t[h+1],e,n,o))return!0}else a+=An(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+=Sn(r,s,x,_,n,o):(l=x,u=_);var w=(n-d)*g/p+d;if(i){if(bn(d,f,g,m,m+v,y,e,w,o))return!0}else a+=Dn(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(yn(l,u,x,u,e,n,o)||yn(x,u,x,_,e,n,o)||yn(x,_,l,_,e,n,o)||yn(l,_,l,u,e,n,o))return!0}else a+=Sn(x,u,x,_,n,o),a+=Sn(l,_,l,u,n,o);break;case BS.Z:if(i){if(yn(r,s,l,u,e,n,o))return!0}else a+=Sn(r,s,l,u,n,o);r=l,s=u}}return i||Mn(s,u)||(a+=Sn(r,s,l,u,n,o)||0),0!==a}function Ln(t,e,i){return Cn(t,0,!1,e,i)}function kn(t,e,i,n){return Cn(t,e,!0,i,n)}function Pn(t){di.call(this,t),this.path=null}function Nn(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 On(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 bo(t){var e=t.insideRollback;e&&(t.textFill=e.textFill,t.textStroke=e.textStroke,t.textStrokeWidth=e.textStrokeWidth,t.insideRollback=null)}function So(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 Mo(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 Io(t,e,i,n,o){Mo(!0,t,e,i,n,o)}function To(t,e,i,n,o){Mo(!1,t,e,i,n,o)}function Ao(t,e){for(var i=_t([]);t&&t!==e;)bt(i,t.getLocalTransform(),i),t=t.parent;return i}function Do(t,e,i){return e&&!c(e)&&(e=Tw.getLocalTransform(e)),i&&(e=Tt([],e)),Q([],t,e)}function Co(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=Do(a,e,i),Math.abs(a[0])>Math.abs(a[1])?a[0]>0?"right":"left":a[1]>0?"bottom":"top"}function Lo(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)),Io(t,n,i,t.dataIndex)}}})}}function ko(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 Po(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)):Xn(t.replace("path://",""),e,i,"center")}function No(t,e,i){this.parentModel=e,this.ecModel=i,this.option=t}function Oo(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 Vo(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?zo(t).match(/%$/)?parseFloat(t)/100*e:parseFloat(t):null==t?NaN:+t}function Go(t,e,i){return null==e&&(e=10),e=Math.min(Math.max(0,e),20),t=(+t).toFixed(e),i?t:+t}function Fo(t){return t.sort(function(t,e){return t-e}),t}function Wo(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 Ho(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 Zo(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 Uo(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 Xo(t){var e=2*Math.PI;return(t%e+e)%e}function jo(t){return t>-UM&&t=-20?+t.toFixed(n<0?-n:0):t}function Jo(t){function e(t,i,n){return t.interval[n]=0}function ta(t){return isNaN(t)?"-":(t=(t+"").split("."))[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(t.length>1?"."+t[1]:"")}function ea(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 ia(t){return null==t?"":(t+"").replace(KM,function(t,e){return $M[e]})}function na(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 ra(t,e){return t+="","0000".substr(0,e-t.length)+t}function sa(t,e,i){"week"!==t&&"month"!==t&&"quarter"!==t&&"half-year"!==t&&"year"!==t||(t="MM-dd\nyyyy");var n=Yo(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",ra(r,2)).replace("M",r).replace("yyyy",a).replace("yy",a%100).replace("dd",ra(s,2)).replace("d",s).replace("hh",ra(l,2)).replace("h",l).replace("mm",ra(u,2)).replace("m",u).replace("ss",ra(h,2)).replace("s",h).replace("SSS",ra(c,3))}function la(t){return t?t.charAt(0).toUpperCase()+t.substr(1):t}function ua(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 ha(t,e,i){var n=e.width,o=e.height,a=Vo(t.x,n),r=Vo(t.y,o),s=Vo(t.x2,n),l=Vo(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 ca(t,e,i){i=qM(i||0);var n=e.width,o=e.height,a=Vo(t.left,n),r=Vo(t.top,o),s=Vo(t.right,n),l=Vo(t.bottom,o),u=Vo(t.width,n),h=Vo(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 da(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=ca(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 fa(t,e){return null!=t[oI[e][0]]||null!=t[oI[e][1]]&&null!=t[oI[e][2]]}function pa(t,e,i){function n(i,n){var r={},l=0,u={},h=0;if(iI(i,function(e){u[e]=t[e]}),iI(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 ya(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 xa(t){return"category"===t.get("type")}function _a(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 wa(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 Xa(t,e){return t.join(",")===e.join(",")}function ja(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 Ya(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 rr(t,e){_a.isInstance(t)||(t=_a.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 sr(){return this._data.length}function lr(t){return this._data[t]}function ur(t){for(var e=0;ee.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function Mr(t,e){d(t.CHANGABLE_METHODS,function(i){t.wrapMethod(i,v(Ir,e))})}function Ir(t){var e=Tr(t);e&&e.setOutputEnd(this.count())}function Tr(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 Ar(){this.group=new tb,this.uid=Ro("viewChart"),this.renderTask=gr({plan:Lr,reset:kr}),this.renderTask.context={view:this}}function Dr(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 Nr(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]=Pr(a,i,"debounce"===n))[iT]=a,o[oT]=n,o[nT]=i}return o}}function Or(t,e){var i=t[e];i&&i[iT]&&(t[e]=i[iT])}function Er(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 Rr(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 zr(t,e,i,n,o){function a(i){var a=i.uid,s=r.get(a)||r.set(a,gr({plan:Hr,reset:Zr,count:Xr}));s.context={model:i,ecModel:n,api:o,useClearVisual:e.isVisual&&!e.isLayout,plan:e.plan,reset:e.reset,scheduler:t},jr(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 Br(t,e,i,n,o){function a(e){var i=e.uid,n=s.get(i);n||(n=s.set(i,gr({reset:Gr,onDirty:Wr})),r.dirty()),n.context={model:e,overallProgress:h,modifyOutputEnd:c},n.agent=r,n.__block=h,jr(t,e,n)}var r=i.overallTask=i.overallTask||gr({reset:Vr});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 Vr(t){t.overallReset(t.ecModel,t.api,t.payload)}function Gr(t,e){return t.overallProgress&&Fr}function Fr(){this.agent.dirty(),this.getDownstream().dirty()}function Wr(){this.agent&&this.agent.dirty()}function Hr(t){return t.plan&&t.plan(t.model,t.ecModel,t.api,t.payload)}function Zr(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 Ur(e)}):cT}function Ur(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 Qr(t,e){t&&t.__inheritedStyle&&(e.__inheritedStyle||(e.__inheritedStyle={}),r(e.__inheritedStyle,t.__inheritedStyle))}function ts(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 os(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 as(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 rs(t,e){return(new $r).parse(t,e)}function ss(t){return function(e,i,n){e=e&&e.toLowerCase(),fw.prototype[t].call(this,e,i,n)}}function ls(){fw.call(this)}function us(t,e,n){function o(t,e){return t.__prio-e.__prio}n=n||{},"string"==typeof e&&(e=JT[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=Pr(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 Fa;var r=this._api=As(this);_e($T,o),_e(YT,o),this._scheduler=new Er(this,r,YT,$T),fw.call(this,this._ecEventProcessor=new Ds),this._messageCenter=new ls,this._initEvents(),this.resize=m(this.resize,this),this._pendingActions=[],a.animation.on("frame",this._onframe,this),vs(a,this),N(this)}function hs(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 Is(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 Ts(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 As(t){var e=t._coordSysMgr;return a(new Ga(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 Ds(){this.eventInfo}function Cs(t){function e(t,e){for(var n=0;n65535?dA:pA}function Js(t){var e=t.constructor;return e===Array?t.slice():new e(t)}function Qs(t,e){d(gA.concat(e.__wrappedMethods||[]),function(i){e.hasOwnProperty(i)&&(t[i]=e[i])}),t.__wrappedMethods=e.__wrappedMethods,d(mA,function(n){t[n]=i(e[n])}),t._calculationInfo=a(e._calculationInfo)}function tl(t,e,i,n,o){var a=cA[e.type],r=n-1,s=e.name,l=t[s][r];if(l&&l.length=0?this._indices[t]:-1}function al(t,e){var i=t._idList[e];return null==i&&(i=il(t,t._idDimIdx,e)),null==i&&(i=hA+e),i}function rl(t){return y(t)||(t=[t]),t}function sl(t,e){var i=t.dimensions,n=new vA(f(i,t.getDimensionInfo,t),t.hostModel);Qs(n,t);for(var o=n._storage={},a=t._storage,r=0;r=0?(o[s]=ll(a[s]),n._rawExtent[s]=ul(),n._extent[s]=null):o[s]=a[s])}return n}function ll(t){for(var e=new Array(t.length),i=0;in&&(r=o.interval=n);var s=o.intervalPrecision=Ml(r);return Tl(o.niceTickExtent=[MA(Math.ceil(t[0]/r)*r,s),MA(Math.floor(t[1]/r)*r,s)],t),o}function Ml(t){return Ho(t)+2}function Il(t,e,i){t[e]=Math.max(Math.min(t[e],i[1]),i[0])}function Tl(t,e){!isFinite(t[0])&&(t[0]=e[0]),!isFinite(t[1])&&(t[1]=e[1]),Il(t,0,e),Il(t,1,e),t[0]>t[1]&&(t[0]=t[1])}function Al(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 Dl(t){return t.get("stack")||AA+t.seriesIndex}function Cl(t){return t.dim+t.index}function Ll(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 Vl(t,e){return VA(t,BA(e))}function Gl(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]=Vo(n[0],1),n[1]=Vo(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=kl("bar",c);if(d(p,function(t){f|=t.getBaseAxis()===e.axis}),f){var g=Pl(p),m=Fl(r,s,e,g);r=m.min,s=m.max}}return[r,s]}function Fl(t,e,i,n){var o=i.axis.getExtent(),a=o[1]-o[0],r=Ol(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 Wl(t,e){var i=Gl(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 Hl(t,e){if(e=e||t.get("type"))switch(e){case"category":return new SA(t.getOrdinalMeta?t.getOrdinalMeta():t.getCategories(),[1/0,-1/0]);case"value":return new TA;default:return(xl.getClass(e)||TA).create(t)}}function Zl(t){var e=t.scale.getExtent(),i=e[0],n=e[1];return!(i>0&&n>0||i<0&&n<0)}function Ul(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(Xl(t,n),o)}:function(e){return t.scale.getLabel(e)}}function Xl(t,e){return"category"===t.type?t.scale.getLabel(e):e}function jl(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=Ul(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 ou(t){return"category"===t.type?ru(t):uu(t)}function au(t,e){return"category"===t.type?lu(t,e):{ticks:t.scale.getTicks()}}function ru(t){var e=t.getLabelModel(),i=su(t,e);return!e.get("show")||t.scale.isBlank()?{labels:[],labelCategoryInterval:i.labelCategoryInterval}:i}function su(t,e){var i=hu(t,"labels"),n=ql(e),o=cu(i,n);if(o)return o;var a,r;return a=x(n)?vu(t,n):mu(t,r="auto"===n?fu(t):n),du(i,n,{labels:a,labelCategoryInterval:r})}function lu(t,e){var i=hu(t,"ticks"),n=ql(e),o=cu(i,n);if(o)return o;var a,r;if(e.get("show")&&!t.scale.isBlank()||(a=[]),x(n))a=vu(t,n,!0);else if("auto"===n){var s=su(t,t.getLabelModel());r=s.labelCategoryInterval,a=f(s.labels,function(t){return t.tickValue})}else a=mu(t,r=n,!0);return du(i,n,{ticks:a,tickCategoryInterval:r})}function uu(t){var e=t.scale.getTicks(),i=Ul(t);return{labels:f(e,function(e,n){return{formattedLabel:i(e,n),rawLabel:t.scale.getLabel(e),tickValue:e}})}}function hu(t,e){return nD(t)[e]||(nD(t)[e]=[])}function cu(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))),_=nD(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 gu(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 mu(t,e,i){function n(t){l.push(i?t:{formattedLabel:o(t),rawLabel:a.getLabel(t),tickValue:t})}var o=Ul(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=Kl(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 vu(t,e,i){var n=t.scale,o=Ul(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 yu(t,e){var i=(t[1]-t[0])/e/2;t[0]+=i,t[1]-=i}function xu(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 _u(t,e){var i=t.mapDimension("defaultedLabel",!0),n=i.length;if(1===n)return fr(t,e,i[0]);if(n){for(var o=[],a=0;a0?i=n[0]:n[1]<0&&(i=n[1]),i}function Ou(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 Eu(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 Ru(t){return isNaN(t[0])||isNaN(t[1])}function zu(t,e,i,n,o,a,r,s,l,u,h){return"none"!==u&&u?Bu.apply(this,arguments):Vu.apply(this,arguments)}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(Ru(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;_D(bD,g),bD[m]=g[m]+v,_D(SD,p),SD[m]=p[m]-v,t.bezierCurveTo(bD[0],bD[1],SD[0],SD[1],p[0],p[1])}else t.lineTo(p[0],p[1]);c=d,d+=a}return f}function Vu(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(Ru(p)){if(h){d+=a;continue}break}if(d===i)t[a>0?"moveTo":"lineTo"](p[0],p[1]),_D(bD,p);else if(l>0){var g=d+a,m=e[g];if(h)for(;m&&Ru(e[g]);)m=e[g+=a];var v=.5,y=e[c];if(!(m=e[g])||Ru(m))_D(SD,p);else{Ru(m)&&!h&&(m=p),U(wD,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);xD(SD,p,wD,-l*(1-(v=_/(_+x))))}vD(bD,bD,s),yD(bD,bD,r),vD(SD,SD,s),yD(SD,SD,r),t.bezierCurveTo(bD[0],bD[1],SD[0],SD[1],p[0],p[1]),xD(bD,p,wD,l*v)}else t.lineTo(p[0],p[1]);c=d,d+=a}return f}function Gu(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 Fu(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 Zu(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:Go(t.cx,1),cy:Go(t.cy,1),r0:Go(a[0],1),r:Go(a[1],1),startAngle:-r[0]*s,endAngle:-r[1]*s,clockwise:o.inverse}});return e&&(l.shape.endAngle=-r[0]*s,To(l,{shape:{endAngle:-r[1]*s}},n)),l}function ju(t,e,i,n){return"polar"===t.type?Xu(t,e,i,n):Uu(t,e,i,n)}function Yu(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 Ku(t,e,i){var n=t.get("showAllSymbol"),o="auto"===n;if(!n||o){var a=i.getAxesByScale("ordinal")[0];if(a&&(!o||!$u(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 $u(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 Ju(t){return this._axes[t]}function Qu(t){LD.call(this,t)}function th(t,e){return e.type||(e.data?"category":"value")}function eh(t,e,i){return t.getCoordSysModel()===e}function ih(t,e,i){this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this._initCartesian(t,e,i),this.model=t}function nh(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)oh(r[u])&&(a=r[u]);else for(var h in r)if(r.hasOwnProperty(h)&&oh(r[h])&&!n[o(r[h])]){a=r[h];break}a&&(n[o(a)]=!0)}}function oh(t){return t&&"category"!==t.type&&"time"!==t.type&&Zl(t)}function ah(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 rh(t,e){return f(VD,function(e){return t.getReferringComponents(e)[0]})}function sh(t){return"cartesian2d"===t.get("coordinateSystem")}function lh(t){var e={componentType:t.mainType,componentIndex:t.componentIndex};return e[t.mainType+"Index"]=t.componentIndex,e}function uh(t,e,i,n){var o,a,r=Xo(i-t.rotation),s=n[0]>n[1],l="start"===e&&!s||"start"!==e&&s;return jo(r-GD/2)?(a=l?"bottom":"top",o="center"):jo(r-1.5*GD)?(a=l?"top":"bottom",o="center"):(a="middle",o=r<1.5*GD&&r>GD/2?l?"left":"right":l?"right":"left"),{rotation:r,textAlign:o,textVerticalAlign:a}}function hh(t){var e=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||e&&e.show)}function ch(t,e,i){if(!Kl(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?(dh(a),dh(u)):fh(a,r)&&(n?(dh(r),dh(h)):(dh(a),dh(u))),!1===o?(dh(s),dh(c)):fh(l,s)&&(o?(dh(l),dh(d)):(dh(s),dh(c)))}}function dh(t){t&&(t.ignore=!0)}function fh(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 ph(t){return"middle"===t||"center"===t}function gh(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 Sh(t){var e=Mh(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=Th(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||kh(t.style,d,n,u,a,i,p),fo(t,d)}function Rh(t,e){var i=t.get(tC)||0;return Math.min(i,Math.abs(e.width),Math.abs(e.height))}function zh(t,e,i){var n=t.getData(),o=[],a=n.getLayout("valueAxisHorizontal")?1:0;o[1-a]=n.getLayout("valueAxisStart");var r=new nC({shape:{points:n.getLayout("largePoints")},incremental:!!i,__startPoint:o,__valueIdx:a});e.add(r),Bh(r,t,n)}function Bh(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 Vh(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){Gh(o.getItemGraphicEl(t),o.getItemLayout(t),e.isSelected(o.getName(t)),s,i)})}function Gh(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 Fh(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 Wh(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 Hh(t,e,i,n,o,a){for(var r=[],s=[],l=0;l3?1.4:o>1?1.2:1.1;hc(this,"zoom","zoomOnMouseWheel",t,{scale:n>0?s:1/s,originX:a,originY:r})}if(i){var l=Math.abs(n);hc(this,"scrollMove","moveOnMouseWheel",t,{scrollDelta:(n>0?1:-1)*(l>3?.4:l>1?.15:.05),originX:a,originY:r})}}}function uc(t){ic(this._zr,"globalPan")||hc(this,"zoom",null,t,{scale:t.pinchScale>1?1.1:1/1.1,originX:t.pinchX,originY:t.pinchY})}function hc(t,e,i,n,o){t.pointerChecker&&t.pointerChecker(n,o.originX,o.originY)&&(mw(n.event),cc(t,e,i,n,o))}function cc(t,e,i,n,o){o.isAvailableBehavior=m(dc,null,i,n),t.trigger(e,o)}function dc(t,e,i){var n=i[t];return!t||n&&(!_(n)||e.event[n+"Key"])}function fc(t,e,i){var n=t.target,o=n.position;o[0]+=e,o[1]+=i,n.dirty()}function pc(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 gc(t,e,i){var n=e.getComponentByElement(t.topTarget),o=n&&n.coordinateSystem;return n&&n!==i&&!RC[n.mainType]&&o&&o.model!==i}function mc(t,e){var i=t.getItemStyle(),n=t.get("areaColor");return null!=n&&(i.fill=n),i}function vc(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),yc(e,i)}}}))}function yc(t,e){e.eachChild(function(e){d(e.__regions,function(i){e.trigger(t.isSelected(i.name)?"emphasis":"normal")})})}function xc(t,e){var i=new tb;this.uid=Ro("ec_map_draw"),this._controller=new oc(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 _c(t){var e=this[zC];e&&e.recordVersion===this[BC]&&wc(e,t)}function wc(t,e){var i=t.circle,n=t.labelModel,o=t.hoverLabelModel,a=t.emphasisText,r=t.normalText;e?(i.style.extendFrom(mo({},o,{text:o.get("show")?a:null},{isRectText:!0,useInsideStyle:!1},!0)),i.__mapOriginalZ2=i.z2,i.z2+=NM):(mo(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 bc(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 Sc(){Tw.call(this)}function Mc(t){this.name=t,this.zoomLimit,Tw.call(this),this._roamTransformable=new Sc,this._rawTransformable=new Sc,this._center,this._zoom}function Ic(t,e,i,n){var o=i.seriesModel,a=o?o.coordinateSystem:null;return a===this?a[t](n):null}function Tc(t,e,i,n){Mc.call(this,t),this.map=e;var o=OC.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 Ac(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 Dc(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=[Vo(s[0],u),Vo(s[1],h)],l=Vo(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=ca(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 Cc(t,e){d(e.get("geoCoord"),function(e,i){t.addGeoCoord(i,e)})}function Lc(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 Wc(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){jc(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=Yc(t,o,t.parentNode.hierNode.defaultAncestor||n[0],e)}function Hc(t){var e=t.hierNode.prelim+t.parentNode.hierNode.modifier;t.setLayout({x:e},!0),t.hierNode.modifier+=t.parentNode.hierNode.modifier}function Zc(t){return arguments.length?t:Qc}function Uc(t,e){var i={};return t-=Math.PI/2,i.x=e*Math.cos(t),i.y=e*Math.sin(t),i}function Xc(t,e){return ca(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}function jc(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 Yc(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=qc(s),a=Kc(a),s&&a;){o=qc(o),r=Kc(r),o.hierNode.ancestor=t;var d=s.hierNode.prelim+c-a.hierNode.prelim-u+n(s,a);d>0&&(Jc($c(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&&!qc(o)&&(o.hierNode.thread=s,o.hierNode.modifier+=c-l),a&&!Kc(r)&&(r.hierNode.thread=a,r.hierNode.modifier+=u-h,i=t)}return i}function qc(t){var e=t.children;return e.length&&t.isExpand?e[e.length-1]:t.hierNode.thread}function Kc(t){var e=t.children;return e.length&&t.isExpand?e[0]:t.hierNode.thread}function $c(t,e,i){return t.hierNode.ancestor.parentNode===e.parentNode?t.hierNode.ancestor:i}function Jc(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 Qc(t,e){return t.parentNode===e.parentNode?1:2}function td(t,e){var i=t.getItemLayout(e);return i&&!isNaN(i.x)&&!isNaN(i.y)&&"none"!==t.getItemVisual(e,"symbol")}function ed(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 id(t,e,i,n,o,a){var s=!i,l=t.tree.getNodeByDataIndex(e),a=ed(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 wu(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),Io(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:od(a,f,f),style:r({opacity:0,strokeNoScale:!0},a.lineStyle)})),Io(S,{shape:od(a,d,p),style:{opacity:1}},o),n.add(S)}}function nd(t,e,i,n,o,a){for(var r,s=t.tree.getNodeByDataIndex(e),l=t.tree.root,a=ed(s,s.getModel(),a),u=s.parentNode===l?s:s.parentNode||s;null==(r=u.getLayout());)u=u.parentNode===l?u:u.parentNode||u;Io(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&&Io(h,{shape:od(a,r,r),style:{opacity:0}},o,function(){n.remove(h)})}function od(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=Uc(s,u),f=Uc(s,u+(h-u)*t.curvature),p=Uc(l,h+(u-h)*t.curvature),g=Uc(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 ad(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 sd(t,e){var i=Xc(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=Zc(function(t,e){return(t.parentNode===e.parentNode?1:2)/t.depth})):(o=i.width,a=i.height,r=Zc());var s=t.getData().tree.root,l=s.children[0];if(l){Fc(s),ad(l,Wc,r),s.hierNode.modifier=-l.hierNode.prelim,rd(l,Hc);var u=l,h=l,c=l;rd(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),rd(l,function(t){m=(t.getLayout().x+f)*p,v=(t.depth-1)*g;var e=Uc(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),rd(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),rd(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 ld(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 ud(t){for(var e=[];t;)(t=t.parentNode)&&e.push(t);return e.reverse()}function hd(t,e){return l(ud(t),e)>=0}function cd(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 dd(t){var e=0;d(t.children,function(t){dd(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 fd(t,e){var i=e.get("color");if(i){var n;return d(t=t||[],function(t){var e=new No(t),i=e.get("color");(e.get("itemStyle.color")||i&&"none"!==i)&&(n=!0)}),n||((t[0]||(t[0]={})).color=i.slice()),t}}function pd(t){this.group=new tb,t.add(this.group)}function gd(t,e,i,n,o,a){var r=[[o?t:t-UC,e],[t+i,e],[t+i,e+n],[o?t:t-UC,e+n]];return!a&&r.splice(2,0,[t+i+UC,e+n/2]),!o&&r.push([t,e+n/2]),r}function md(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&&cd(i,e)}}function vd(){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 bd(t,e){var i=t.visual,n=[];w(i)?sL(i,function(t){n.push(t)}):null!=i&&n.push(i);var o={color:1,symbol:1};e||1!==n.length||o.hasOwnProperty(t.type)||(n[1]=n[0]),Ld(t,n)}function Sd(t){return{applyVisual:function(e,i,n){e=this.mapValueToVisual(e),n("color",t(i("color"),e))},_doMap:Dd([0,1])}}function Md(t){var e=this.option.visual;return e[Math.round(Bo(t,[0,1],[0,e.length-1],!0))]||{}}function Id(t){return function(e,i,n){n(t,this.mapValueToVisual(e))}}function Td(t){var e=this.option.visual;return e[this.option.loop&&t!==uL?t%e.length:t]}function Ad(){return this.option.visual[0]}function Dd(t){return{linear:function(e){return Bo(e,t,this.option.visual,!0)},category:Td,piecewise:function(e,i){var n=Cd.call(this,i);return null==n&&(n=Bo(e,t,this.option.visual,!0)),n},fixed:Ad}}function Cd(t){var e=this.option,i=e.pieceList;if(e.hasSpecialVisual){var n=i[hL.findPieceIndex(t,i)];if(n&&n.visual)return n.visual[this.type]}}function Ld(t,e){return t.visual=e,"color"===t.type&&(t.parsedVisual=f(e,function(t){return Gt(t)})),e}function kd(t,e,i){return t?e<=i:e=o.length||t===o[t.depth])&&Pd(t,Vd(r,h,t,e,g,a),i,n,o,a)})}else l=Od(h),t.setVisual("color",l)}}function Nd(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 Od(t){var e=Rd(t,"color");if(e){var i=Rd(t,"colorAlpha"),n=Rd(t,"colorSaturation");return n&&(e=jt(e,null,null,n)),i&&(e=Yt(e,i)),e}}function Ed(t,e){return null!=e?jt(e,null,null,t):null}function Rd(t,e){var i=t[e];if(null!=i&&"none"!==i)return i}function zd(t,e,i,n,o,a){if(a&&a.length){var r=Bd(e,"color")||null!=o.color&&"none"!==o.color&&(Bd(e,"colorAlpha")||Bd(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 hL(c);return d.__drColorMappingBy=h,d}}}function Bd(t,e){var i=t.get(e);return fL(i)&&i.length?{name:e,range:i}:null}function Vd(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 Gd(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(_L),l=f.get(wL)/2,u=Kd(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=mL(o-2*c,0))*(a=mL(a-c-d,0)),g=Fd(t,f,p,e,i,n);if(g.length){var m={x:c,y:d,width:o,height:a},v=vL(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 Ud(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?mL(u*o/l,l/(u*a)):1/0}function Xd(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 pf(t,e){return t.getVisual("opacity")||t.getModel().get(e)}function gf(t,e,i){var n=t.getGraphicEl(),o=pf(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 mf(t,e){var i=pf(t,e),n=t.getGraphicEl();n.highlight&&n.highlight(),n.traverse(function(t){"group"!==t.type&&t.setStyle("opacity",i)})}function vf(t){return t instanceof Array||(t=[t,t]),t}function yf(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")])}),xf(i)}}function xf(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 _f(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 wf(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 Pf(t,e){return Math.min(e[1],Math.max(e[0],t))}function Nf(t,e,i){this._axesMap=R(),this._axesLayout={},this.dimensions=t.dimensions,this._rect,this._model=t,this._init(t,e,i)}function Of(t,e){return ek(ik(t,e[0]),e[1])}function Ef(t,e){var i=e.layoutLength/(e.axisCount-1);return{position:i*t,axisNameAvailableWidth:i,axisLabelShow:!0}}function Rf(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 tmk}function $f(t){var e=t.length-1;return e<0&&(e=0),[t[0],t[e]]}function Jf(t,e,i,n){var o=new tb;return o.add(new yM({name:"main",style:ip(i),silent:!0,draggable:!0,cursor:"move",drift:uk(t,e,o,"nswe"),ondragend:uk(qf,e,{isEnd:!0})})),hk(n,function(i){o.add(new yM({name:i,style:{opacity:0},draggable:!0,silent:!0,invisible:!0,drift:uk(t,e,o,i),ondragend:uk(qf,e,{isEnd:!0})}))}),o}function Qf(t,e,i,n){var o=n.brushStyle.lineWidth||0,a=fk(o,vk),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;ep(t,e,"main",r,s,p,g),n.transformable&&(ep(t,e,"w",l,u,a,v),ep(t,e,"e",d,u,a,v),ep(t,e,"n",l,u,m,a),ep(t,e,"s",l,f,m,a),ep(t,e,"nw",l,u,a,a),ep(t,e,"ne",d,u,a,a),ep(t,e,"sw",l,f,a,a),ep(t,e,"se",d,f,a,a))}function tp(t,e){var i=e.__brushOption,n=i.transformable,o=e.childAt(0);o.useStyle(ip(i)),o.attr({silent:!n,cursor:n?"move":"default"}),hk(["w","e","n","s","se","sw","ne","nw"],function(i){var o=e.childOfName(i),a=ap(t,i);o&&o.attr({silent:!n,invisible:!n,cursor:n?_k[a]+"-resize":null})})}function ep(t,e,i,n,o,a,r){var s=e.childOfName(i);s&&s.setShape(hp(up(t,e,[[n,o],[n+a,o+r]])))}function ip(t){return r({strokeNoScale:!0},t.brushStyle)}function np(t,e,i,n){var o=[dk(t,i),dk(e,n)],a=[fk(t,i),fk(e,n)];return[[o[0],a[0]],[o[1],a[1]]]}function op(t){return Ao(t.group)}function ap(t,e){if(e.length>1)return("e"===(n=[ap(t,(e=e.split(""))[0]),ap(t,e[1])])[0]||"w"===n[0])&&n.reverse(),n.join("");var i={left:"w",right:"e",top:"n",bottom:"s"},n=Co({w:"left",e:"right",n:"top",s:"bottom"}[e],op(t));return i[n]}function rp(t,e,i,n,o,a,r,s){var l=n.__brushOption,u=t(l.range),h=lp(i,a,r);hk(o.split(""),function(t){var e=xk[t];u[e[0]][e[1]]+=h[e[0]]}),l.range=e(np(u[0][0],u[1][0],u[0][1],u[1][1])),Zf(i,n),qf(i,{isEnd:!1})}function sp(t,e,i,n,o){var a=e.__brushOption.range,r=lp(t,i,n);hk(a,function(t){t[0]+=r[0],t[1]+=r[1]}),Zf(t,e),qf(t,{isEnd:!1})}function lp(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 up(t,e,n){var o=jf(t,e);return o&&!0!==o?o.clipPath(n,t._transform):i(n)}function hp(t){var e=dk(t[0][0],t[1][0]),i=dk(t[0][1],t[1][1]);return{x:e,y:i,width:fk(t[0][0],t[1][0])-e,height:fk(t[0][1],t[1][1])-i}}function cp(t,e,i){if(t._brushType){var n=t._zr,o=t._covers,a=Xf(t,e,i);if(!t._dragging)for(var r=0;r0;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,e){var i=[],n="vertical"===e?"y":"x",o=Zi(t,function(t){return t.getLayout()[n]});return o.keys.sort(function(t,e){return t-e}),d(o.keys,function(t){i.push(o.buckets.get(t))}),i}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(Gk).getItemStyle(Wk);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=Vo(A(t.get("barMaxWidth"),o),o),r=Vo(A(t.get("barMinWidth"),1),o),s=t.get("barWidth");return null!=s?Vo(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 wu(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=[Vo(f[0],d[0]),Vo(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]=Vo(f[c.index],d),f[h.index]=Vo(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(cP)||0;a&&(fP.attr({scale:e.slice(),rotation:i}),fP.updateTransform(),a/=fP.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=Vo(x,e[p.index]);var w=Math.max(m+2*x,0),b=_?0:2*x,S=Qo(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=Jl(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;kh(d.style,h,a,n,e.seriesModel,o,c),fo(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]];var h={horizontal:0,vertical:1};o.rotation=Math.PI/2*h[r];var c={top:-1,bottom:1,right:1,left:-1};o.labelDirection=o.tickDirection=o.nameDirection=c[a],t.get("axisTick.inside")&&(o.tickDirection=-o.tickDirection),T(e.labelInside,t.get("axisLabel.inside"))&&(o.labelDirection=-o.labelDirection);var d=e.rotate;return null==d&&(d=t.get("axisLabel.rotate")),o.labelRotation="top"===a?-d:d,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 _P(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),_P(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=Ah(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=[];_P(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=bP(n).axisPointerLastHighlights||{},a=bP(n).axisPointerLastHighlights={};_P(t,function(t,e){var i=t.axisPointerModel.option;"show"===i.status&&_P(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();SP(n).records||(SP(n).records={}),hm(n,e),(SP(n).records[t]||(SP(n).records[t]={})).handler=i}}function hm(t,e){function i(i,n){t.on(i,function(i){var o=pm(e);MP(SP(t).records,function(t){t&&n(t,i,o.dispatchAction)}),cm(o.pendings,e)})}SP(t).initialized||(SP(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();(SP(i).records||{})[t]&&(SP(i).records[t]=null)}}function mm(){}function vm(t,e,i,n){ym(TP(i).lastProp,n)||(TP(i).lastProp=n,e?Io(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:Xl(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),Do([t.dataToCoord(e),(i.labelOffset||0)+(i.labelDirection||1)*(i.labelMargin||0)],n)}function Am(t,e,i,n,o,a){var r=FD.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[kP[e]],i[kP[e]]+i[PP[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 To(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:zP});a.seriesIndex=e.seriesIndex;var r=new rM({z2:BP,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!==RP.NONE&&(i===RP.SELF?t===e:i===RP.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=Xn(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),To(t,{style:{opacity:c}},o,e)}r?t.attr(l):Io(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||(ro(t,f),t.__cusHasEmphStl=!p),s&&po(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(UP),f=c.getModel(XP),p=e.getItemVisual(t,"color"),v=!1)}var s=t.get("renderItem"),l=t.coordinateSystem,u={};l&&(u=l.prepareCustoms?l.prepareCustoms():YP[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(HP).getItemStyle();null!=p&&(r.fill=p);var s=e.getItemVisual(n,"opacity");return null!=s&&(r.opacity=s),mo(r,d,null,{autoColor:p,isRectText:!0}),r.text=d.getShallow("show")?A(t.getFormattedLabel(n,"normal"),_u(e,n)):null,i&&a(r,i),r},styleEmphasis:function(i,n){null==n&&(n=h),o(n);var r=c.getModel(ZP).getItemStyle();return mo(r,f,null,{isRectText:!0},!0),r.text=f.getShallow("show")?D(t.getFormattedLabel(n,"emphasis"),t.getFormattedLabel(n,"normal"),_u(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 Ll(r({axis:l.getBaseAxis()},t),n)},currentSeriesIndices:function(){return i.getCurrentSeriesIndices()},font:function(t){return So(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=Vo(t.get("barWidth"),r),c=Vo(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=Vo(t.categoryGap,o),r=Vo(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=Do([r,-o],d);var f=e.getModel("axisLabel").get("rotate")||0,p=FD.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",Es(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 MN(e,function(e){var r=a[e]=o();MN(t[e],function(t,o){if(hL.isValidType(o)){var a={type:o,visual:t};n&&n(a,e),r[o]=new hL(a),"opacity"===o&&((a=i(a)).type="colorAlpha",r.__hidden.__alphaForOpacity=new hL(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);TN(PN,function(t,e){(!i||!i.include||AN(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:LN})}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[VN]||(a[BN]||(a[BN]=yy),Nr(a,BN,i,e)(t,n))}}function yy(t,e){if(!t.isDisposed()){var i=t.getZr();i[VN]=!0,t.dispatchAction({type:"brushSelect",batch:e}),i[VN]=!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 $N(i,function(t){var i=t.getData();i&&$N(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=Zo(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;$N(["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"]=Bo(a[0]+o,a,[0,100],!0)}})}function By(t){var e={};return tO(["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");tO([["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),Nr(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[fO]||(e[fO]={})}function Xy(t,e){var i=new oc(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 QL(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=hL.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&&YO[e.type]&&r.baseAxis&&r.valueAxis){var s=XO(a,r.baseAxis.dim),l=XO(a,r.valueAxis.dim);e.coord=YO[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++)YO[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(pE),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 gE(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[mE]=null}function i_(t){return n_(t).length}function n_(t){var e=t[mE];return e||(e=t[mE]=[{}]),e}function o_(t,e,i){(this._brushController=new zf(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 SE(t)}function h_(){if(!TE&&AE){TE=!0;var t=AE.styleSheets;t.length<31?AE.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(sR,t)}function g_(t){return cR(1e4*t)/1e4}function m_(t){return t-vR}function v_(t,e){var i=e?t.textFill:t.fill;return null!=i&&i!==hR}function y_(t,e){var i=e?t.textStroke:t.stroke;return null!=i&&i!==hR}function x_(t,e){e&&__(t,"transform","matrix("+uR.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?hR:o,"none"!==t.getAttribute("clip-path")&&o===hR&&(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",hR);if(y_(e,i)){var a=i?e.textStroke:e.stroke;__(t,"stroke",a="transparent"===a?hR: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",cR(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",hR)}function S_(t){for(var e=[],i=t.data,n=t.len(),o=0;o=gR||!m_(g)&&(d>-pR&&d<0||d>pR)==!!p;var y=g_(s+u*fR(c)),x=g_(l+h*dR(c));m&&(d=p?gR-1e-4:1e-4-gR,v=!0,9===o&&e.push("M",y,x));var _=g_(s+u*fR(c+d)),w=g_(l+h*dR(c+d));e.push("A",g_(u),g_(h),cR(f*mR),+v,+p,_,w);break;case lR.Z:a="Z";break;case lR.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=tn,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);Pn.prototype={constructor:Pn,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)),kn(a,r/s,t,e)))return!0}if(o.hasFill())return Ln(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}},Pn.extend=function(t){var e=function(e){Pn.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,Pn);for(var i in t)"style"!==i&&"shape"!==i&&(e.prototype[i]=t[i]);return e},u(Pn,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([Bn(s[0],f[0],l[0],u[0],d,p,g),Bn(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:Po,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:Zn,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 So({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("lineHeight"),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();No.prototype={constructor:No,init:null,mergeOption:function(t){n(this.option,t,!0)},get:function(t,e){return null==t?this.option:Oo(this.option,this.parsePath(t),!e&&Eo(this,t))},getShallow:function(t,e){var i=this.option,n=null==i?i:i[t],o=!e&&Eo(this,t);return null==n&&o&&(n=o.getShallow(t)),n},getModel:function(t,e){var i,n=null==t?this.option:Oo(this.option,t=this.parsePath(t));return e=e||(i=Eo(this,t))&&i.getModel(t),new No(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()}}},ji(No),Yi(No),WM(No,eS),WM(No,nS),WM(No,VM),WM(No,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:Bo,parsePercent:Vo,round:Go,asc:Fo,getPrecision:Wo,getPrecisionSafe:Ho,getPixelPrecision:Zo,getPercentWithPrecision:Uo,MAX_SAFE_INTEGER:XM,remRadian:Xo,isRadianAroundZero:jo,parseDate:Yo,quantity:qo,nice:$o,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:Jo,isNumeric:Qo}),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=(Object.freeze||Object)({addCommas:ta,toCamelCase:ea,normalizeCssArray:qM,encodeHTML:ia,formatTpl:na,formatTplSimple:oa,getTooltipMarker:aa,formatTime:sa,capitalFirst:la,truncateText:tI,getTextBoundingRect:function(t){return ke(t.text,t.font,t.textAlign,t.textVerticalAlign,t.textPadding,t.textLineHeight,t.rich,t.truncate)},getTextRect:function(t,e,i,n,o,a,r,s){return ke(t,e,i,n,o,s,a,r)}}),iI=d,nI=["left","right","top","bottom","width","height"],oI=[["width","left","right"],["height","top","bottom"]],aI=ua,rI=(v(ua,"vertical"),v(ua,"horizontal"),{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")}}}),sI=Bi(),lI=No.extend({type:"component",id:"",name:"",mainType:"",subType:"",componentIndex:0,defaultOption:null,ecModel:null,dependentModels:[],uid:null,layoutMode:null,$constructor:function(t,e,i,n){No.call(this,t,e,i,n),this.uid=Ro("ec_cpt_model")},init:function(t,e,i,n){this.mergeDefaultAndTheme(t,i)},mergeDefaultAndTheme:function(t,e){var i=this.layoutMode,o=i?ga(t):{};n(t,e.getTheme().get(this.mainType)),n(t,this.getDefaultOption()),i&&pa(t,o,i)},mergeOption:function(t,e){n(this.option,t,!0);var i=this.layoutMode;i&&pa(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)})}});$i(lI,{registerWhenExtend:!0}),function(t){var e={};t.registerSubTypeDefaulter=function(t,i){t=Ui(t),e[t.main]=i},t.determineSubType=function(i,n){var o=n.type;if(!o){var a=Ui(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 Ui(t).main}),"dataset"!==t&&l(e,"dataset")<=0&&e.unshift("dataset"),e}),h(lI,rI);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?va(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),xa(o)&&(n.set("x",o),e.firstCategoryDimIndex=0),xa(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),xa(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),xa(a)&&(n.set("radius",a),e.firstCategoryDimIndex=0),xa(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),xa(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";_a.seriesDataToSource=function(t){return new _a({data:t,sourceFormat:S(t)?xI:pI,fromDataset:!1})},Yi(_a);var bI=Bi(),SI="\0_ec_inner",MI=No.extend({init:function(t,e,i,n){i=i||{},this.option=null,this._theme=new No(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)):Ea.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=[];Sa(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=za(i,n,t.exist))});var l=Ra(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&&Ba(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 Va(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}(Va(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){Ba(this,g(this._componentsMap.get("series"),t,e))},restoreData:function(t){var e=this._componentsMap;Ba(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||!Na(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={};Fa.prototype={constructor:Fa,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()}},Fa.register=function(t,e){TI[t]=e},Fa.get=function(t){return TI[t]};var AI=d,DI=i,CI=f,LI=n,kI=/^(min|max)?(.+)$/;Wa.prototype={constructor:Wa,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=Ha.call(this,t,e,!i);this._newBaseOption=n.baseOption,i?(ja(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=yr(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=aa({color:v,type:"subItem",renderMode:n,markerId:d}),g="string"==typeof p?p:p.content,m=(r?g+ia(o.displayName||"-")+": ":"")+ia("ordinal"===c?t+"":"time"===c?e?"":sa("yyyy/MM/dd hh:mm:ss",t):ta(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(fr(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?fr(h,t,c[0]):m?g[0]:g)).content,_=a.seriesIndex+"at"+u,b=aa({color:v,type:"item",renderMode:n,markerId:_});l[_]=v,++u;var S=h.getName(t),M=this.name;Oi(this)||(M=""),M=M?ia(M)+(e?": ":r):"";var I="string"==typeof b?b:b.content;return{html:e?I+M+x:M+I+(S?ia(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=Ro("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){},ji(qI),$i(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();Ar.prototype={type:"chart",init:function(t,e){},render:function(t,e,i,n){},highlight:function(t,e,i,n){Cr(t.getData(),n,"emphasis")},downplay:function(t,e,i,n){Cr(t.getData(),n,"normal")},remove:function(t,e){this.group.removeAll()},dispose:function(){},incrementalPrepareRender:null,incrementalRender:null,updateTransform:null,filterForExposedEvent:null};var tT=Ar.prototype;tT.updateView=tT.updateLayout=tT.updateVisual=function(t,e,i,n){this.render(t,e,i,n)},ji(Ar),$i(Ar,{registerWhenExtend:!0}),Ar.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}),jr(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&&zr(this,n,o,e,i),n.overallReset&&Br(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,jr(this,e,o)},uT.performDataProcessorTasks=function(t,e){Rr(this,this._dataProcessorHandlers,t,e,{block:!0})},uT.performVisualTasks=function(t,e,i){Rr(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=Ur(0);Er.wrapStageHandler=function(t,e){return x(t)&&(t={overallReset:t,seriesType:Yr(t)}),t.uid=Ro("stageHandler"),e&&(t.visualType=e),t};var dT,fT={},pT={};qr(fT,MI),qr(pT,Ga),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(){wa(this)}}),qI.extend({type:"dataset"});var xT=Pn.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,]+/;$r.prototype.parse=function(t,e){e=e||{};var i=Kr(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),es(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=as(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}},$r.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)},$r.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]});Qr(e,o),es(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 Qr(e,i),es(t,i,this._defs),i},rect:function(t,e){var i=new yM;return Qr(e,i),es(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 Qr(e,i),es(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 Qr(e,i),es(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 Qr(e,i),es(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=ts(i));var n=new pM({shape:{points:i||[]}});return Qr(e,n),es(t,n,this._defs),n},polyline:function(t,e){var i=new Pn;Qr(e,i),es(t,i,this._defs);var n=t.getAttribute("points");return n&&(n=ts(n)),new gM({shape:{points:n||[]}})},image:function(t,e){var i=new fi;return Qr(e,i),es(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 Qr(e,r),es(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 Qr(e,r),es(t,r,this._defs),this._textX+=o,this._textY+=a,r},path:function(t,e){var i=Rn(t.getAttribute("d")||"");return Qr(e,i),es(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 Jr(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=Kr(t.source)}},LT=k,kT=d,PT=x,NT=w,OT=lI.parseClassType,ET={zrender:"4.0.6"},RT=1e3,zT=1e3,BT=3e3,VT={PROCESSOR:{FILTER:RT,STATISTIC:5e3},VISUAL:{LAYOUT:zT,GLOBAL:2e3,CHART:BT,COMPONENT:4e3,BRUSH:5e3}},GT="__flagInMainProcess",FT="__optionUpdated",WT=/^[a-zA-Z0-9_]+$/;ls.prototype.on=ss("on"),ls.prototype.off=ss("off"),ls.prototype.one=ss("one"),h(ls,fw);var HT=us.prototype;HT._onframe=function(){if(!this._disposed){var t=this._scheduler;if(this[FT]){var e=this[FT].silent;this[GT]=!0,cs(this),ZT.update.call(this),this[GT]=!1,this[FT]=!1,gs.call(this,e),ms.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),fs(this,n),t.performVisualTasks(n),bs(this,this._model,0,"remain"),i-=+new Date-o}while(i>0&&t.unfinished);t.unfinished||this._zr.flush()}}},HT.getDom=function(){return this._dom},HT.getZr=function(){return this._zr},HT.setOption=function(t,e,i){var n;if(NT(e)&&(i=e.lazyUpdate,n=e.silent,e=e.notMerge),this[GT]=!0,!this._model||e){var o=new Wa(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,qT),i?(this[FT]={silent:n},this[GT]=!1):(cs(this),ZT.update.call(this),this._zr.flush(),this[FT]=!1,this[GT]=!1,gs.call(this,n),ms.call(this,n))},HT.setTheme=function(){console.error("ECharts#setTheme() is DEPRECATED in ECharts 3.0")},HT.getModel=function(){return this._model},HT.getOption=function(){return this._model&&this._model.getOption()},HT.getWidth=function(){return this._zr.getWidth()},HT.getHeight=function(){return this._zr.getHeight()},HT.getDevicePixelRatio=function(){return this._zr.painter.dpr||window.devicePixelRatio||1},HT.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)},HT.getSvgDataUrl=function(){if(U_.svgSupported){var t=this._zr;return d(t.storage.getDisplayList(),function(t){t.stopAnimation(!0)}),t.painter.pathToDataUrl()}},HT.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},HT.getConnectedDataURL=function(t){if(U_.canvasSupported){var e=this.group,n=Math.min,o=Math.max;if(eA[e]){var a=1/0,r=1/0,s=-1/0,l=-1/0,u=[],h=t&&t.pixelRatio||1;d(tA,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)}},HT.convertToPixel=v(hs,"convertToPixel"),HT.convertFromPixel=v(hs,"convertFromPixel"),HT.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},HT.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)},HT.getViewOfComponentModel=function(t){return this._componentsMap[t.__viewId]},HT.getViewOfSeriesModel=function(t){return this._chartsMap[t.__viewId]};var ZT={prepareAndUpdate:function(t){cs(this),ZT.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),fs(this,e),o.update(e,i),xs(e),a.performVisualTasks(e,t),_s(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")}Ss(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)}),xs(e),this._scheduler.performVisualTasks(e,t,{setDirty:!0,dirtyMap:a}),bs(i,e,0,t,a),Ss(e,this._api)}},updateView:function(t){var e=this._model;e&&(Ar.markUpdateMethod(t,"updateView"),xs(e),this._scheduler.performVisualTasks(e,t,{setDirty:!0}),_s(this,this._model,this._api,t),Ss(e,this._api))},updateVisual:function(t){ZT.update.call(this,t)},updateLayout:function(t){ZT.update.call(this,t)}};HT.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[GT]=!0,i&&cs(this),ZT.update.call(this),this[GT]=!1,gs.call(this,n),ms.call(this,n)}},HT.showLoading=function(t,e){if(NT(t)&&(e=t,t=""),t=t||"default",this.hideLoading(),QT[t]){var i=QT[t](this._api,e),n=this._zr;this._loadingFX=i,n.add(i)}},HT.hideLoading=function(){this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null},HT.makeActionFromEvent=function(t){var e=a({},t);return e.type=jT[t.type],e},HT.dispatchAction=function(t,e){NT(e)||(e={silent:!!e}),XT[t.type]&&this._model&&(this[GT]?this._pendingActions.push(t):(ps.call(this,t,e.silent),e.flush?this._zr.flush(!0):!1!==e.flush&&U_.browser.weChat&&this._throttledZrFlush(),gs.call(this,e.silent),ms.call(this,e.silent)))},HT.appendData=function(t){var e=t.seriesIndex;this.getModel().getSeriesByIndex(e).appendData(t),this._scheduler.unfinished=!0},HT.on=ss("on"),HT.off=ss("off"),HT.one=ss("one");var UT=["click","dblclick","mouseover","mouseout","mousemove","mousedown","mouseup","globalout","contextmenu"];HT._initEvents=function(){kT(UT,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(jT,function(t,e){this._messageCenter.on(e,function(t){this.trigger(e,t)},this)},this)},HT.isDisposed=function(){return this._disposed},HT.clear=function(){this.setOption({series:[]},!0)},HT.dispose=function(){if(!this._disposed){this._disposed=!0,Fi(this.getDom(),oA,"");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 tA[this.id]}},h(us,fw),Ds.prototype={constructor:Ds,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 XT={},jT={},YT=[],qT=[],KT=[],$T=[],JT={},QT={},tA={},eA={},iA=new Date-0,nA=new Date-0,oA="_echarts_instance_",aA=Ls;Bs(2e3,aT),Ns(BI),Os(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(ar)}),Gs("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}),Es({type:"highlight",event:"highlight",update:"highlight"},B),Es({type:"downplay",event:"downplay",update:"downplay"},B),Ps("light",mT),Ps("dark",yT);var rA={};Xs.prototype={constructor:Xs,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(js(t,{},n,"_oldKeyGetter",this),js(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={},el(this)},yA._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={},el(this)}},yA.count=function(){return this._count},yA.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},yA.getApproximateExtent=function(t){return t=this.getDimension(t),this._approximateExtent[t]||this.getDataExtent(t)},yA.setApproximateExtent=function(t,e){e=this.getDimension(e),this._approximateExtent[e]=t.slice()},yA.getCalculationInfo=function(t){return this._calculationInfo[t]},yA.setCalculationInfo=function(t,e){lA(t)?a(this._calculationInfo,t):this._calculationInfo[t]=e},yA.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},yA.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},yA.getRawIndex=nl,yA.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},yA.downSample=function(t,e,i,n){for(var o=sl(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($s(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=ol,o},yA.getItemModel=function(t){var e=this.hostModel;return new No(this.getRawDataItem(t),e,e&&e.ecModel)},yA.diff=function(t){var e=this;return new Xs(t?t.getIndices():[],this.getIndices(),function(e){return al(t,e)},function(t){return al(e,t)})},yA.getVisual=function(t){var e=this._visual;return e&&e[t]},yA.setVisual=function(t,e){if(lA(t))for(var i in t)t.hasOwnProperty(i)&&this.setVisual(i,t[i]);else this._visual=this._visual||{},this._visual[t]=e},yA.setLayout=function(t,e){if(lA(t))for(var i in t)t.hasOwnProperty(i)&&this.setLayout(i,t[i]);else this._layout[t]=e},yA.getLayout=function(t){return this._layout[t]},yA.getItemLayout=function(t){return this._itemLayouts[t]},yA.setItemLayout=function(t,e,i){this._itemLayouts[t]=i?a(this._itemLayouts[t]||{},e):e},yA.clearItemLayouts=function(){this._itemLayouts.length=0},yA.getItemVisual=function(t,e,i){var n=this._itemVisuals[t],o=n&&n[e];return null!=o||i?o:this.getVisual(e)},yA.setItemVisual=function(t,e,i){var n=this._itemVisuals[t]||{},o=this.hasItemVisual;if(this._itemVisuals[t]=n,lA(e))for(var a in e)e.hasOwnProperty(a)&&(n[a]=e[a],o[a]=!0);else n[e]=i,o[e]=!0},yA.clearAllVisual=function(){this._visual={},this._itemVisuals=[],this.hasItemVisual={}};var xA=function(t){t.seriesIndex=this.seriesIndex,t.dataIndex=this.dataIndex,t.dataType=this.dataType};yA.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(xA,e)),this._graphicEls[t]=e},yA.getItemGraphicEl=function(t){return this._graphicEls[t]},yA.eachItemGraphicEl=function(t,e){d(this._graphicEls,function(i,n){i&&t&&t.call(e,i,n)})},yA.cloneShallow=function(t){if(!t){var e=f(this.dimensions,this.getDimensionInfo,this);t=new vA(e,this.hostModel)}if(t._storage=this._storage,Qs(t,this),this._indices){var i=this._indices.constructor;t._indices=new i(this._indices)}else t._indices=null;return t.getRawIndex=t._indices?ol:nl,t},yA.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)))})},yA.TRANSFERABLE_METHODS=["cloneShallow","downSample","map"],yA.CHANGABLE_METHODS=["filterSelf","selectRange"];var _A=function(t,e){return e=e||{},hl(e.coordDimensions||[],t,{dimsDef:e.dimensionsDefine||t.dimensionsDefine,encodeDef:e.encodeDefine||t.encodeDefine,dimCount:e.dimensionsCount,generateCoord:e.generateCoord,generateCoordCount:e.generateCoordCount})};xl.prototype.parse=function(t){return t},xl.prototype.getSetting=function(t){return this._setting[t]},xl.prototype.contain=function(t){var e=this._extent;return t>=e[0]&&t<=e[1]},xl.prototype.normalize=function(t){var e=this._extent;return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])},xl.prototype.scale=function(t){var e=this._extent;return t*(e[1]-e[0])+e[0]},xl.prototype.unionExtent=function(t){var e=this._extent;t[0]e[1]&&(e[1]=t[1])},xl.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},xl.prototype.getExtent=function(){return this._extent.slice()},xl.prototype.setExtent=function(t,e){var i=this._extent;isNaN(t)||(i[0]=t),isNaN(e)||(i[1]=e)},xl.prototype.isBlank=function(){return this._isBlank},xl.prototype.setBlank=function(t){this._isBlank=t},xl.prototype.getLabel=null,ji(xl),$i(xl,{registerWhenExtend:!0}),_l.createByAxisModel=function(t){var e=t.option,i=e.data,n=i&&f(i,bl);return new _l({categories:n,needCollect:!n,deduplication:!1!==e.dedplication})};var wA=_l.prototype;wA.getOrdinal=function(t){return wl(this).get(t)},wA.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=wl(this);return null==(e=n.get(t))&&(i?(e=this.categories.length,this.categories[e]=t,n.set(t,e)):e=NaN),e};var bA=xl.prototype,SA=xl.extend({type:"ordinal",init:function(t,e){t&&!y(t)||(t=new _l({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),bA.contain.call(this,t)&&null!=this._ordinalMeta.categories[t]},normalize:function(t){return bA.normalize.call(this,this.parse(t))},scale:function(t){return Math.round(bA.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});SA.create=function(){return new SA};var MA=Go,IA=Go,TA=xl.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]),TA.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=Ml(t)},getTicks:function(){return Al(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=Ho(t)||0:"auto"===i&&(i=this._intervalPrecision),t=IA(t,i,!0),ta(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=Sl(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]=IA(Math.floor(e[0]/o)*o)),t.fixMax||(e[1]=IA(Math.ceil(e[1]/o)*o))}});TA.create=function(){return new TA};var AA="__ec_stack_",DA="undefined"!=typeof Float32Array?Float32Array:Array,CA={seriesType:"bar",plan:$I(),reset:function(t){if(Rl(t)&&zl(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=Ol(Pl([t]),n,t).width;return u>.5||(u=.5),{progress:function(t,e){for(var n,h=new DA(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:Bl(0,o),valueAxisHorizontal:s})}}}}},LA=TA.prototype,kA=Math.ceil,PA=Math.floor,NA=function(t,e,i,n){for(;i>>1;t[o][1]i&&(a=i);var r=EA.length,s=NA(EA,a,0,r),l=EA[Math.min(s,r-1)],u=l[1];"year"===l[0]&&(u*=$o(o/u/t,!0));var h=this.getSetting("useUTC")?0:60*new Date(+n[0]||+n[1]).getTimezoneOffset()*1e3,c=[Math.round(kA((n[0]-h)/u)*u+h),Math.round(PA((n[1]-h)/u)*u+h)];Tl(c,n),this._stepLvl=l,this._interval=u,this._niceExtent=c},parse:function(t){return+Yo(t)}});d(["contain","normalize"],function(t){OA.prototype[t]=function(e){return LA[t].call(this,this.parse(e))}});var EA=[["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]];OA.create=function(t){return new OA({useUTC:t.ecModel.get("useUTC")})};var RA=xl.prototype,zA=TA.prototype,BA=Ho,VA=Go,GA=Math.floor,FA=Math.ceil,WA=Math.pow,HA=Math.log,ZA=xl.extend({type:"log",base:10,$constructor:function(){xl.apply(this,arguments),this._originalScale=new TA},getTicks:function(){var t=this._originalScale,e=this._extent,i=t.getExtent();return f(zA.getTicks.call(this),function(n){var o=Go(WA(this.base,n));return o=n===e[0]&&t.__fixMin?Vl(o,i[0]):o,o=n===e[1]&&t.__fixMax?Vl(o,i[1]):o},this)},getLabel:zA.getLabel,scale:function(t){return t=RA.scale.call(this,t),WA(this.base,t)},setExtent:function(t,e){var i=this.base;t=HA(t)/HA(i),e=HA(e)/HA(i),zA.setExtent.call(this,t,e)},getExtent:function(){var t=this.base,e=RA.getExtent.call(this);e[0]=WA(t,e[0]),e[1]=WA(t,e[1]);var i=this._originalScale,n=i.getExtent();return i.__fixMin&&(e[0]=Vl(e[0],n[0])),i.__fixMax&&(e[1]=Vl(e[1],n[1])),e},unionExtent:function(t){this._originalScale.unionExtent(t);var e=this.base;t[0]=HA(t[0])/HA(e),t[1]=HA(t[1])/HA(e),RA.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=qo(i);for(t/i*n<=.5&&(n*=10);!isNaN(n)&&Math.abs(n)<1&&Math.abs(n)>0;)n*=10;var o=[Go(FA(e[0]/n)*n),Go(GA(e[1]/n)*n)];this._interval=n,this._niceExtent=o}},niceExtent:function(t){zA.niceExtent.call(this,t);var e=this._originalScale;e.__fixMin=t.fixMin,e.__fixMax=t.fixMax}});d(["contain","normalize"],function(t){ZA.prototype[t]=function(e){return e=HA(e)/HA(this.base),RA[t].call(this,e)}}),ZA.create=function(){return new ZA};var UA={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}},XA=Un({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()}}),jA=Un({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()}}),YA=Un({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()}}),qA=Un({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()}}),KA={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}},$A={};d({line:_M,rect:yM,roundRect:yM,square:yM,circle:sM,diamond:jA,pin:YA,arrow:qA,triangle:XA},function(t,e){$A[e]=new t});var JA=Un({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=$A[n];"none"!==e.symbolType&&(o||(o=$A[n="rect"]),KA[n](e.x,e.y,e.width,e.height,o.shape),o.buildPath(t,o.shape,i))}}),QA={isDimensionStacked:pl,enableDataStack:fl,getStackedDimension:gl},tD=(Object.freeze||Object)({createList:function(t){return ml(t.getSource(),t)},getLayoutRect:ca,dataStack:QA,createScale:function(t,e){var i=e;No.isInstance(e)||h(i=new No(e),UA);var n=Hl(i);return n.setExtent(t[0],t[1]),Wl(n,i),n},mixinAxisModelCommonMethods:function(t){h(t,UA)},completeDimensions:hl,createDimensions:_A,createSymbol:Jl}),eD=1e-8;eu.prototype={constructor:eu,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 eu(e.name,o,e.cp);return a.properties=e,a})},nD=Bi(),oD=[0,1],aD=function(t,e,i){this.dim=t,this.scale=e,this._extent=i||[0,0],this.inverse=!1,this.onBand=!1};aD.prototype={constructor:aD,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 Zo(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&&yu(i=i.slice(),n.count()),Bo(t,oD,i,e)},coordToData:function(t,e){var i=this._extent,n=this.scale;this.onBand&&"ordinal"===n.type&&yu(i=i.slice(),n.count());var o=Bo(t,i,oD,e);return this.scale.scale(o)},pointToData:function(t,e){},getTicksCoords:function(t){var e=(t=t||{}).tickModel||this.getTickModel(),i=au(this,e),n=f(i.ticks,function(t){return{coord:this.dataToCoord(t),tickValue:t}},this),o=e.get("alignWithLabel");return xu(this,n,i.tickCategoryInterval,o,t.clamp),n},getViewLabels:function(){return ou(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 pu(this)}};var rD=iD,sD={};d(["map","each","filter","indexOf","inherits","reduce","filter","bind","curry","isArray","isString","isObject","isFunction","extend","defaults","clone","merge"],function(t){sD[t]=aw[t]});var lD={};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){lD[t]=zM[t]}),YI.extend({type:"series.line",dependencies:["grid","polar"],getInitialData:function(t,e){return ml(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 uD=wu.prototype,hD=wu.getSymbolSize=function(t,e){var i=t.getItemVisual(e,"symbolSize");return i instanceof Array?i.slice():[+i,+i]};uD._createSymbol=function(t,e,i,n,o){this.removeAll();var a=Jl(t,-1,-1,2,2,e.getItemVisual(i,"color"),o);a.attr({z2:100,culling:!0,scale:bu(n)}),a.drift=Su,this._symbolType=t,this.add(a)},uD.stopSymbolAnimation=function(t){this.childAt(0).stopAnimation(t)},uD.getSymbolPath=function(){return this.childAt(0)},uD.getScale=function(){return this.childAt(0).scale},uD.highlight=function(){this.childAt(0).trigger("emphasis")},uD.downplay=function(){this.childAt(0).trigger("normal")},uD.setZ=function(t,e){var i=this.childAt(0);i.zlevel=t,i.z=e},uD.setDraggable=function(t){var e=this.childAt(0);e.draggable=t,e.cursor=t?"move":"pointer"},uD.updateData=function(t,e,i){this.silent=!1;var n=t.getItemVisual(e,"symbol")||"circle",o=t.hostModel,a=hD(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,Io(l,{scale:bu(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),To(l,h,o,e)}this._seriesModel=o};var cD=["itemStyle"],dD=["emphasis","itemStyle"],fD=["label"],pD=["emphasis","label"];uD._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(cD).getItemStyle(["color"]),u=m.getModel(dD).getItemStyle(),h=m.getShallow("symbolRotate"),c=m.getShallow("symbolOffset"),d=m.getModel(fD),f=m.getModel(pD),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",[Vo(c[0],i[0]),Vo(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;go(v,u,d,f,{labelFetcher:r,labelDataIndex:e,defaultText:function(e,i){return w?t.getName(e):_u(t,e)},isRectText:!0,autoColor:s}),o.off("mouseover").off("mouseout").off("emphasis").off("normal"),o.hoverStyle=u,fo(o),o.__symbolOriginalScale=bu(i),p&&r.isAnimationEnabled()&&o.on("mouseover",Mu).on("mouseout",Iu).on("emphasis",Tu).on("normal",Au)},uD.fadeOut=function(t,e){var i=this.childAt(0);this.silent=i.silent=!0,!(e&&e.keepLabel)&&(i.style.text=null),Io(i,{style:{opacity:0},scale:[0,0]},this._seriesModel,this.dataIndex,t)},u(wu,tb);var gD=Du.prototype;gD.updateData=function(t,e){e=Lu(e);var i=this.group,n=t.hostModel,o=this._data,a=this._symbolCtor,r=ku(t);o||i.removeAll(),t.diff(o).add(function(n){var o=t.getItemLayout(n);if(Cu(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);Cu(t,h,s,e)?(u?(u.updateData(t,s,r),Io(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},gD.isPersistent=function(){return!0},gD.updateLayout=function(){var t=this._data;t&&t.eachItemGraphicEl(function(e,i){var n=t.getItemLayout(i);e.attr("position",n)})},gD.incrementalPrepareUpdate=function(t){this._seriesScope=ku(t),this._data=null,this.group.removeAll()},gD.incrementalUpdate=function(t,e,i){i=Lu(i);for(var n=t.start;n0&&Ru(i[o-1]);o--);for(;n0&&Ru(i[a-1]);a--);for(;o=0){var r=o.getItemGraphicEl(a);if(!r){var s=o.getItemLayout(a);if(!s)return;(r=new wu(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 Ar.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 Ar.prototype.downplay.call(this,t,e,i,n)},_newPolyline:function(t){var e=this._polyline;return e&&this._lineGroup.remove(e),e=new MD({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 ID({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=mD(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=Yu(u.current,i,o),c=Yu(u.stackedOnCurrent,i,o),d=Yu(u.next,i,o),f=Yu(u.stackedOnNext,i,o)),r.shape.__points=u.current,r.shape.points=h,Io(r,{shape:{points:d}},l),s&&(s.setShape({points:h,stackedOnPoints:c}),Io(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(kD,aD);var PD={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)"]}}},ND={};ND.categoryAxis=n({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},PD),ND.valueAxis=n({boundaryGap:[0,0],splitNumber:5},PD),ND.timeAxis=r({scale:!0,min:"dataMin",max:"dataMax"},ND.valueAxis),ND.logAxis=r({scale:!0,logBase:10},ND.valueAxis);var OD=["value","category","time","log"],ED=function(t,e,i,a){d(OD,function(r){e.extend({type:t+"Axis."+r,mergeDefaultAndTheme:function(e,o){var a=this.layoutMode,s=a?ga(e):{};n(e,o.getTheme().get(r+"Axis")),n(e,this.getDefaultOption()),e.type=i(t,e),a&&pa(e,s,a)},optionUpdated:function(){"category"===this.option.type&&(this.__ordinalMeta=_l.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([{},ND[r+"Axis"],a],!0)})}),lI.registerSubTypeDefaulter(t+"Axis",v(i,t))},RD=lI.extend({type:"cartesian2dAxis",axis:null,init:function(){RD.superApply(this,"init",arguments),this.resetRange()},mergeOption:function(){RD.superApply(this,"mergeOption",arguments),this.resetRange()},restoreData:function(){RD.superApply(this,"restoreData",arguments),this.resetRange()},getCoordSysModel:function(){return this.ecModel.queryComponents({mainType:"grid",index:this.option.gridIndex,id:this.option.gridId})[0]}});n(RD.prototype,UA);var zD={offset:0};ED("x",RD,th,zD),ED("y",RD,th,zD),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 BD=ih.prototype;BD.type="grid",BD.axisPointerEnabled=!0,BD.getRect=function(){return this._rect},BD.update=function(t,e){var i=this._axesMap;this._updateScale(t,this.model),d(i.x,function(t){Wl(t.scale,t.model)}),d(i.y,function(t){Wl(t.scale,t.model)});var n={};d(i.x,function(t){nh(i,"y",t,n)}),d(i.y,function(t){nh(i,"x",t,n)}),this.resize(this.model,e)},BD.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]),ah(t,e?o.x:o.y)})}var o=ca(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=jl(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())},BD.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]}},BD.getAxes=function(){return this._axesList.slice()},BD.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,ph(o)?t.labelOffset+r*l:0],d=e.get("nameRotate");null!=d&&(d=d*GD/180);var f;ph(o)?n=HD(t.rotation,null!=d?d:t.rotation,r):(n=uh(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:hh(e),z2:1,tooltip:x&&x.show?a({content:i,formatter:function(){return i},formatterParams:w},x):null});mo(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=lh(e),b.eventData.targetType="axisName",b.eventData.name=i),this._dumbGroup.add(b),b.updateTransform(),this.group.add(b),b.decomposeTransform()}}},HD=FD.innerTextLayout=function(t,e,i){var n,o,a=Xo(e-t);return jo(a)?(o=i>0?"top":"bottom",n="center"):jo(a-GD)?(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}},ZD=d,UD=v,XD=Ws({type:"axis",_axisPointer:null,axisPointerClass:null,render:function(t,e,i,n){this.axisPointerClass&&Sh(t),XD.superApply(this,"render",arguments),Dh(this,t,0,i,0,!0)},updateAxisPointer:function(t,e,i,n,o){Dh(this,t,0,i,0,!1)},remove:function(t,e){var i=this._axisPointer;i&&i.remove(e),XD.superApply(this,"remove",arguments)},dispose:function(t,e){Ch(this,e),XD.superApply(this,"dispose",arguments)}}),jD=[];XD.registerAxisPointerClass=function(t,e){jD[t]=e},XD.getAxisPointerClass=function(t){return t&&jD[t]};var YD=["axisLine","axisTickLabel","axisName"],qD=["splitArea","splitLine"],KD=XD.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=Lh(a,t),s=new FD(t,r);d(YD,s.add,s),this._axisGroup.add(s.getGroup()),d(qD,function(e){t.get(e+".show")&&this["_"+e](t,a)},this),Lo(o,this._axisGroup,t),KD.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=DD[o]:"function"==typeof o&&(c=o),c&&t.setData(n.downSample(n.mapDimension(s.dim),1/h,c,CD))}}}}}("line"));var $D=YI.extend({type:"series.__base_bar__",getInitialData:function(t,e){return ml(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:{}}});$D.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 JD=Qb([["fill","color"],["stroke","borderColor"],["lineWidth","borderWidth"],["stroke","barBorderColor"],["lineWidth","barBorderWidth"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]),QD={getBarItemStyle:function(t){var e=JD(this,t);if(this.getBorderLineDash){var i=this.getBorderLineDash();i&&(e.lineDash=i)}return e}},tC=["itemStyle","barBorderWidth"];a(No.prototype,QD),Zs({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=iC[s.type](a,e,i),l=eC[s.type](a,e,i,r,n,u);a.setItemGraphicEl(e,l),o.add(l),Eh(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=iC[s.type](a,e,h);l?Io(l,{shape:c},u,e):l=eC[s.type](a,e,h,c,n,u,!0),a.setItemGraphicEl(e,l),o.add(l),Eh(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&&Nh(t,u,e):e&&Oh(t,u,e)}).execute(),this._data=a},_renderLarge:function(t,e,i){this._clear(),zh(t,this.group)},_incrementalRenderLarge:function(t,e){zh(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?Oh(e.dataIndex,t,e):Nh(e.dataIndex,t,e)}):e.removeAll(),this._data=null}});var eC={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}}},nC=Pn.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 To(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 lC=function(t,e){d(e,function(e){e.update="updateView",Es(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}})})},uC=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)}})}}},hC=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")&&Hh(s,o,a,e,i,n)},cC=2*Math.PI,dC=Math.PI/180,fC=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}}),gC=Uh.prototype;gC.isPersistent=function(){return!this._incremental},gC.updateData=function(t){this.group.removeAll();var e=new pC({rectHover:!0,cursor:"default"});e.setShape({points:t.getLayout("symbolPoints")}),this._setCommon(e,t),this.group.add(e),this._incremental=null},gC.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)})}},gC.incrementalPrepareUpdate=function(t){this.group.removeAll(),this._clearIncremental(),t.count()>2e6?(this._incremental||(this._incremental=new Zn({silent:!0})),this.group.add(this._incremental)):this._incremental=null},gC.incrementalUpdate=function(t,e){var i;this._incremental?(i=new pC,this._incremental.addDisplayable(i,!0)):((i=new pC({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)},gC._setCommon=function(t,e,i){var n=e.hostModel,o=e.getVisual("symbolSize");t.setShape("size",o instanceof Array?o:[o,o]),t.symbolProxy=Jl(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))}))},gC.remove=function(){this._clearIncremental(),this._incremental=null,this.group.removeAll()},gC._clearIncremental=function(){var t=this._incremental;t&&t.clearDisplaybles()},Zs({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=AD().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 Uh:new Du,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(){}}),Bs(TD("scatter","circle")),zs(AD("scatter")),u(Xh,aD),jh.prototype.getIndicatorAxes=function(){return this._indicatorAxes},jh.prototype.dataToPoint=function(t,e){var i=this._indicatorAxes[e];return this.coordToPoint(i.dataToCoord(t),e)},jh.prototype.coordToPoint=function(t,e){var i=this._indicatorAxes[e].angle;return[this.cx+t*Math.cos(i),this.cy-t*Math.sin(i)]},jh.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(Go(d-f*u),Go(d+(a-f)*u)),r.setInterval(u)}})},jh.dimensions=[],jh.create=function(t,e){var i=[];return t.eachComponent("radar",function(n){var o=new jh(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},Fa.register("radar",jh);var mC=ND.valueAxis,vC=(Fs({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 No(f,null,this.ecModel),UA);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"}},mC.axisLine),axisLabel:Yh(mC.axisLabel,!1),axisTick:Yh(mC.axisTick,!1),splitLine:Yh(mC.splitLine,!0),splitArea:Yh(mC.splitArea,!0),indicator:[]}}),["axisLine","axisTickLabel","axisName"]);Ws({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 FD(t.model,{position:[e.cx,e.cy],rotation:t.angle,labelDirection:-1,tickDirection:-1,nameDirection:1})}),function(t){d(vC,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 ia(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}});Zs({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=qh(t.getItemVisual(e,"symbolSize")),a=Jl(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"+ia(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)"}}}}),aC);var EC="\0_ec_interaction_mutex";Es({type:"takeGlobalCursor",event:"globalCursorTaken",update:"update"},function(){}),h(oc,fw);var RC={axisPointer:1,tooltip:1,brush:1};xc.prototype={constructor:xc,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):Io(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=mc(s),y=mc(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});go(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),fo(i,y,{hoverSilentOnTouch:!!t.get("selectedMode")}),l.add(i)}),this._updateController(t,e,i),vc(this,t,l,i,n),yc(t,l)},remove:function(){this._regionsGroup.removeAll(),this._backgroundGroup.removeAll(),this._controller.dispose(),this._mapName&&OC.removeGraphic(this._mapName,this.uid),this._mapName=null,this._controllerHost={}},_updateBackground:function(t){var e=t.map;this._mapName!==e&&d(OC.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,fc(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,pc(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)&&!gc(e,i,t)})}};var zC="__seriesMapHighDown",BC="__seriesMapCallKey";Zs({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 xc(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[zC],w=Math.random();if(!_){_=m[zC]={};var b=v(_c,!0),S=v(_c,!1);m.on("mouseover",b).on("mouseout",S).on("emphasis",b).on("normal",S)}m[BC]=w,a(_,{recordVersion:w,circle:u,labelModel:p,hoverLabelModel:g,emphasisText:x,normalText:y}),wc(_,!1)}o.add(u)}}})}}),Es({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=bc(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 VC=Q;h(Sc,Tw),Mc.prototype={constructor:Mc,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?VC(i,t,n):G(i,t)},pointToData:function(t){var e=this.invTransform;return e?VC([],t,e):[t[0],t[1]]},convertToPixel:v(Ic,"dataToPoint"),convertFromPixel:v(Ic,"pointToData"),containPoint:function(t){return this.getViewRectAfterRoam().contain(t[0],t[1])}},h(Mc,Tw),Tc.prototype={constructor:Tc,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)}},Vc.prototype={constructor:Vc,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 ia(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}}),Zs({type:"tree",init:function(t,e){this._oldTree,this._mainGroup=new tb,this._controller=new oc(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){td(o,e)&&id(o,e,null,r,t,u)}).update(function(e,i){var n=l.getItemGraphicEl(i);td(o,e)?id(o,e,n,r,t,u):n&&nd(l,i,n,r,t,u)}).remove(function(e){var i=l.getItemGraphicEl(e);i&&nd(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=[];fn(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 Mc;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)&&!gc(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){fc(o,e.dx,e.dy),i.dispatchAction({seriesId:t.id,type:"treeRoam",dx:e.dx,dy:e.dy})},this).on("zoom",function(e){pc(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}}),Es({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})}),Es({type:"treeRoam",event:"treeRoam",update:"none"},function(t,e){e.eachComponent({mainType:"series",subType:"tree",query:t},function(e){var i=bc(e.coordinateSystem,t);e.setCenter&&e.setCenter(i.center),e.setZoom&&e.setZoom(i.zoom)})});Bs(TD("tree","circle")),zs(function(t,e){t.eachSeriesByType("tree",function(t){sd(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};dd(i);var n=t.levels||[];n=t.levels=fd(n,e);var o={};return o.levels=n,Vc.createTree(i,this,o).data},optionUpdated:function(){this.resetViewRoot()},formatTooltip:function(t){var e=this.getData(),i=this.getRawValue(t),n=ta(y(i)?i[0]:i);return ia(e.getName(t)+": "+n)},getDataParams:function(t){var e=YI.prototype.getDataParams.apply(this,arguments),i=this.getData().tree.getNodeByDataIndex(t);return e.treePathInfo=cd(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 UC=5;pd.prototype={constructor:pd,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),da(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=ha(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:gd(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),md(y,t,p),a+=g+8}},remove:function(){this.group.removeAll()}};var XC=m,jC=tb,YC=yM,qC=d,KC=["label"],$C=["emphasis","label"],JC=["upperLabel"],QC=["emphasis","upperLabel"],tL=10,eL=1,iL=2,nL=Qb([["fill","color"],["stroke","strokeColor"],["lineWidth","strokeWidth"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]),oL=function(t){var e=nL(t);return e.stroke=e.fill=e.lineWidth=null,e};Zs({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=ld(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 jC,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,qC(t,function(t,e){!t.isRemoved()&&s(e,e)})):new Xs(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(yd,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&&qC(t,function(t,i){var n=e[i];qC(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(){qC(c,function(t){qC(t,function(t){t.parent&&t.parent.remove(t)})}),qC(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=vd();qC(e.willDeleteEls,function(t,e){qC(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)}})}),qC(this._storage,function(t,i){qC(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(XC(function(){this._state="ready",e.renderFinally()},this)).start()}},_resetController:function(t){var e=this._controller;e||((e=this._controller=new oc(t.getZr())).enable(this.seriesModel.get("roam")),e.on("pan",XC(this._onPan,this)),e.on("zoom",XC(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 pd(this.group))).render(t,e,i.node,XC(function(e){"animating"!==this._state&&(hd(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 aL=["treemapZoomToNode","treemapRender","treemapMove"],rL=0;rL=0&&t.call(e,i[o],o)},TL.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)},TL.breadthFirstTraverse=function(t,e,i,n){if(Jd.isInstance(e)||(e=this._nodesMap[$d(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(Jd,AL("hostGraph","data")),h(Qd,AL("hostGraph","edgeData")),IL.Node=Jd,IL.Edge=Qd,Yi(Jd),Yi(Qd);var DL=function(t,e,i,n,o){for(var a=new IL(n),r=0;r "+f)),h++)}var p,g=i.get("coordinateSystem");if("cartesian2d"===g||"polar"===g)p=ml(t,i);else{var m=Fa.get(g),v=m&&"view"!==m.type?m.dimensions||[]:[];l(v,"value")<0&&v.concat(["value"]);var y=_A(t,{coordDimensions:v});(p=new vA(y,i)).initData(t)}var x=new vA(["value"],i);return x.initData(u,s),o&&o(p,x),kc({mainData:p,struct:a,structAttr:"graph",datas:{node:p,edge:x},datasAttr:{node:"data",edge:"edgeData"}}),a.update(),a},CL=Hs({type:"series.graph",init:function(t){CL.superApply(this,"init",arguments),this.legendDataProvider=function(){return this._categoriesData},this.fillDataTextStyle(t.edges||t.links),this._updateCategoriesData()},mergeOption:function(t){CL.superApply(this,"mergeOption",arguments),this.fillDataTextStyle(t.edges||t.links),this._updateCategoriesData()},mergeDefaultAndTheme:function(t){CL.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 DL(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 No({label:a.option},a.parentModel,e),s=o.getModel("emphasis.edgeLabel"),l=new No({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=ia(l.join(" > ")),o.value&&(l+=" : "+ia(o.value)),l}return CL.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 vA(["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 CL.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}}}}),LL=_M.prototype,kL=bM.prototype,PL=Un({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){(tf(e)?LL:kL).buildPath(t,e)},pointAt:function(t){return tf(this.shape)?LL.pointAt.call(this,t):kL.pointAt.call(this,t)},tangentAt:function(t){var e=this.shape,i=tf(e)?[e.x2-e.x1,e.y2-e.y1]:kL.tangentAt.call(this,t);return q(i,i)}}),NL=["fromSymbol","toSymbol"],OL=rf.prototype;OL.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]})}}}},OL._createLine=function(t,e,i){var n=t.hostModel,o=of(t.getItemLayout(e));o.shape.percent=0,To(o,{shape:{percent:1}},n,e),this.add(o);var a=new rM({name:"label",lineLabelOriginalOpacity:1});this.add(a),d(NL,function(i){var n=nf(i,t,e);this.add(n),this[ef(i)]=t.getItemVisual(e,i)},this),this._updateCommonStl(t,e,i)},OL.updateData=function(t,e,i){var n=t.hostModel,o=this.childOfName("line"),a=t.getItemLayout(e),r={shape:{}};af(r.shape,a),Io(o,r,n,e),d(NL,function(i){var n=t.getItemVisual(e,i),o=ef(i);if(this[o]!==n){this.remove(this.childOfName(i));var a=nf(i,t,e);this.add(a)}this[o]=n},this),this._updateCommonStl(t,e,i)},OL._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(NL,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)?Go(x):x}var _=m?g:null,w=v?A(n.getFormattedLabel(e,"emphasis",t.dataType),g):null,b=y.style;null==_&&null==w||(mo(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,fo(this)},OL.highlight=function(){this.trigger("emphasis")},OL.downplay=function(){this.trigger("normal")},OL.updateLayout=function(t,e){this.setLinePoints(t.getItemLayout(e))},OL.setLinePoints=function(t){var e=this.childOfName("line");af(e.shape,t),e.dirty()},u(rf,tb);var EL=sf.prototype;EL.isPersistent=function(){return!0},EL.updateData=function(t){var e=this,i=e.group,n=e._lineData;e._lineData=t,n||i.removeAll();var o=hf(t);t.diff(n).add(function(i){lf(e,t,i,o)}).update(function(i,a){uf(e,n,t,a,i,o)}).remove(function(t){i.remove(n.getItemGraphicEl(t))}).execute()},EL.updateLayout=function(){var t=this._lineData;t&&t.eachItemGraphicEl(function(e,i){e.updateLayout(t,i)},this)},EL.incrementalPrepareUpdate=function(t){this._seriesScope=hf(t),this._lineData=null,this.group.removeAll()},EL.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)}}),YL=2*Math.PI,qL=(Ar.extend({type:"gauge",render:function(t,e,i){this.group.removeAll();var n=t.get("axisLine.lineStyle.color"),o=Sf(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)%YL,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 jL({shape:{angle:a}});To(i,{shape:{angle:Bo(d.get(f,e),h,c,!0)}},t),l.add(i),d.setItemGraphicEl(e,i)}).update(function(e,i){var n=u.getItemGraphicEl(i);Io(n,{shape:{angle:Bo(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:Vo(a.get("width"),o.r),r:Vo(a.get("length"),o.r)}),t.useStyle(i.getModel("itemStyle").getItemStyle()),"auto"===t.style.fill&&t.setStyle("fill",n(Bo(d.get(f,e),h,[0,1],!0))),fo(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+Vo(l[0],o.r),h=o.cy+Vo(l[1],o.r),c=+t.get("min"),d=+t.get("max"),f=n(Bo(t.getData().get(r,0),[c,d],[0,1],!0));this.group.add(new rM({silent:!0,style:mo({},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+Vo(l[0],o.r),h=o.cy+Vo(l[1],o.r),c=Vo(a.get("width"),o.r),d=Vo(a.get("height"),o.r),f=t.getData(),p=f.get(f.mapDimension("value"),0),g=n(Bo(p,[r,s],[0,1],!0));this.group.add(new rM({silent:!0,style:mo({},a,{x:u,y:h,text:Mf(p,a.get("formatter")),textWidth:isNaN(c)?null:c,textHeight:isNaN(d)?null:d,textAlign:"center",textVerticalAlign:"middle"},{autoColor:g,forceRich:!0})}))}}}),Hs({type:"series.funnel",init:function(t){qL.superApply(this,"init",arguments),this.legendDataProvider=function(){return this.getRawData()},this._defaultLabelLine(t)},getInitialData:function(t,e){return oC(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=qL.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}}}})),KL=If.prototype,$L=["itemStyle","opacity"];KL.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($L);l=null==l?1:l,n.useStyle({}),i?(n.setShape({points:s.points}),n.setStyle({opacity:0}),To(n,{style:{opacity:l}},o,e)):Io(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),fo(this)},KL._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");Io(i,{shape:{points:r.linePoints||r.linePoints}},o,e),Io(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");go(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(If,tb);Ar.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 If(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(){}});Bs(uC("funnel")),zs(function(t,e,i){t.eachSeriesByType("funnel",function(t){var i=t.getData(),n=i.mapDimension("value"),o=t.get("sort"),a=Tf(t,e),r=Af(i,o),s=[Vo(t.get("minSize"),a.width),Vo(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=Bo(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},tk=d,ek=Math.min,ik=Math.max,nk=Math.floor,ok=Math.ceil,ak=Go,rk=Math.PI;Nf.prototype={type:"parallel",constructor:Nf,_init:function(t,e,i){var n=t.dimensions,o=t.parallelAxisIndex;tk(n,function(t,i){var n=o[i],a=e.getComponent("parallelAxis",n),r=this._axesMap.set(t,new JL(t,Hl(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();tk(this.dimensions,function(t){var e=this._axesMap.get(t);e.scale.unionExtentFromData(n,n.mapDimension(t)),Wl(e.scale,e.model)},this)}},this)},resize:function(t,e){this._rect=ca(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=Of(e.get("axisExpandWidth"),l),c=Of(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=Of(f[1]-f[0],l),f[1]=f[0]+t):(t=Of(h*(c-1),l),(f=[h*(e.get("axisExpandCenter")||nk(u/2))-t/2])[1]=f[0]+t);var p=(s-t)/(u-c);p<3&&(p=0);var g=[nk(ak(f[0]/h,1))+1,ok(ak(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])}),tk(i,function(e,i){var a=(n.axisExpandable?Rf:Ef)(i,n),r={horizontal:{x:a.position,y:n.axisLength},vertical:{x:0,y:a.position}},s={horizontal:rk/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)?QL(r,n,a,"all"):l="none";else{o=n[1]-n[0];(n=[ik(0,a[1]*s/o-o/2)])[1]=ek(a[1],n[0]+o),n[0]=n[1]-o}return{axisExpandWindow:n,behavior:l}}},Fa.register("parallel",{create:function(t,e){var i=[];return t.eachComponent("parallel",function(n,o){var a=new Nf(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 sk=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--)Fo(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&&Ip(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})}}};Ns(function(t){Cf(t),Lf(t)}),YI.extend({type:"series.parallel",dependencies:["parallel"],visualColorAccessPath:"lineStyle.color",getInitialData:function(t,e){var i=this.getSource();return Tp(i,this),ml(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 Dk=.3,Ck=(Ar.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=kp(t);if(a.diff(r).add(function(t){Pp(Lp(a,o,t,l,s),a,t,u)}).update(function(e,i){var o=r.getItemGraphicEl(i),h=Cp(a,e,l,s);a.setItemGraphicEl(e,o),Io(o,{shape:{points:h}},n&&!1===n.animation?null:t,e),Pp(o,a,e,u)}).remove(function(t){var e=r.getItemGraphicEl(t);o.remove(e)}).execute(),!this._initialized){this._initialized=!0;var h=Dp(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=kp(e),s=t.start;sn&&(n=e)}),d(e,function(e){var o=new hL({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 Ok={_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 oC(this,{coordDimensions:[{name:h,type:qs(p),ordinalMeta:i,otherDims:{tooltip:!1,itemName:0},dimsDef:["base"]},{name:c,type:qs(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}}),Ok,!0);var Ek=["itemStyle"],Rk=["emphasis","itemStyle"],zk=(Ar.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}),Pn.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?jk:Yk)}function n(t,e){return e.get(t>0?Uk:Xk)}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)})}}}}},Kk="undefined"!=typeof Float32Array?Float32Array:Array,$k={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 Kk(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]=Jn(a[o]+n/2,1,!1),r[o]=Jn(r[o]-n/2,1,!0),i?t.push(a,r):t.push(r,a)}function f(t){return t[o]=Jn(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)})}}}}};Ns(function(t){t&&y(t.series)&&d(t.series,function(t){w(t)&&"k"===t.type&&(t.type="candlestick")})}),Bs(qk),zs($k),YI.extend({type:"series.effectScatter",dependencies:["grid","polar"],getInitialData:function(t,e){return ml(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 Jk=vg.prototype;Jk.stopEffectAnimation=function(){this.childAt(1).removeAll()},Jk.startEffectAnimation=function(t){for(var e=t.symbolType,i=t.color,n=this.childAt(1),o=0;o<3;o++){var a=Jl(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)},Jk.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}}}),iP=xg.prototype;iP.createLine=function(t,e,i){return new rf(t,e,i)},iP._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=Jl(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))},iP._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}},iP.getLineLength=function(t){return uw(t.__p1,t.__cp1)+uw(t.__cp1,t.__p2)},iP.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]},iP.updateData=function(t,e,i){this.childAt(0).updateData(t,e,i),this._updateEffectSymbol(t,e)},iP.updateSymbolPosition=function(t){var e=t.__p1,i=t.__p2,n=t.__cp1,o=t.__t,a=t.position,r=sn,s=ln;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},iP.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 nP=_g.prototype;nP._createPolyline=function(t,e,i){var n=t.getItemLayout(e),o=new gM({shape:{points:n}});this.add(o),this._updateCommonStl(t,e,i)},nP.updateData=function(t,e,i){var n=t.hostModel;Io(this.childAt(0),{shape:{points:t.getItemLayout(e)}},n,e),this._updateCommonStl(t,e,i)},nP._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,fo(this)},nP.updateLayout=function(t,e){this.childAt(0).setShape("points",t.getItemLayout(e))},u(_g,tb);var oP=wg.prototype;oP.createLine=function(t,e,i){return new _g(t,e,i)},oP.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 aP=Un({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(_n(l,u,(l+c)/2-(u-d)*o,(u+d)/2-(c-l)*o,c,d))return a}else if(yn(l,u,c,d))return a;a++}return-1}}),rP=bg.prototype;rP.isPersistent=function(){return!this._incremental},rP.updateData=function(t){this.group.removeAll();var e=new aP({rectHover:!0,cursor:"default"});e.setShape({segs:t.getLayout("linesPoints")}),this._setCommon(e,t),this.group.add(e),this._incremental=null},rP.incrementalPrepareUpdate=function(t){this.group.removeAll(),this._clearIncremental(),t.count()>5e5?(this._incremental||(this._incremental=new Zn({silent:!0})),this.group.add(this._incremental)):this._incremental=null},rP.incrementalUpdate=function(t,e){var i=new aP;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))},rP.remove=function(){this._clearIncremental(),this._incremental=null,this.group.removeAll()},rP._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)}))},rP._clearIncremental=function(){var t=this._incremental;t&&t.clearDisplaybles()};var sP={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}},Zs({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}},Fa.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 gP=["axisLine","axisTickLabel","axisName"],mP=XD.extend({type:"singleAxis",axisPointerClass:"SingleAxisPointer",render:function(t,e,i,n){var o=this.group;o.removeAll();var a=Jg(t),r=new FD(t,a);d(gP,r.add,r),o.add(r.getGroup()),t.get("splitLine.show")&&this._splitLine(t),mP.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"),IP.superApply(this._model,"remove",arguments)},dispose:function(t,e){gm("axisPointer",e),IP.superApply(this._model,"dispose",arguments)}}),TP=Bi(),AP=i,DP=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=Mh(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=TP(t).pointerEl=new zM[o.type](AP(e.pointer));t.add(a)}},createLabelEl:function(t,e,i,n){if(e.label){var o=TP(t).labelEl=new yM(AP(e.label));t.add(o),xm(o,n)}},updatePointerEl:function(t,e,i){var n=TP(t).pointerEl;n&&(n.setStyle(e.pointer.style),i(n,{shape:e.pointer.shape}))},updateLabelEl:function(t,e,i,n){var o=TP(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=Po(o.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(t){mw(t.event)},onmousedown:DP(this._onHandleDragMove,this,0,0),drift:DP(this._onHandleDragMove,this),ondragend:DP(this._onHandleDragEnd,this)}),i.add(n)),wm(n,e,!1);var s=["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"];n.setStyle(o.getItemStyle(null,s));var l=o.get("size");y(l)||(l=[l,l]),n.attr("scale",[l[0]/2,l[1]/2]),Nr(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)),TP(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,ji(mm);var CP=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=LP[s](a,u,l,h);c.style=h,t.graphicKey=c.type,t.pointer=c}Am(e,t,Lh(r.model,i),i,n,o)},getHandleTransform:function(t,e,i){var n=Lh(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];var d=[{verticalAlign:"middle"},{align:"center"}];return{position:u,rotation:t.rotation,cursorPoint:c,tooltipOption:d[l]}}}),LP={line:function(t,e,i,n){var o=Dm([e,i[0]],[e,i[1]],Pm(t));return Kn({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))}}};XD.registerAxisPointerClass("CartesianAxisPointer",CP),Ns(function(t){if(t){(!t.axisPointer||0===t.axisPointer.length)&&(t.axisPointer={});var e=t.axisPointer.link;e&&!y(e)&&(t.axisPointer.link=[e])}}),Os(VT.PROCESSOR.STATISTIC,function(t,e){t.getComponent("axisPointer").coordSysAxesInfo=vh(t,e)}),Es({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=xP({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:wP(em,f),showTooltip:wP(im,p)};_P(s.coordSysMap,function(t,e){var i=l||t.containPoint(o);_P(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 _P(h,function(t,e){var i=t.linkGroup;i&&!f[e]&&_P(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}})}),_P(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 kP=["x","y"],PP=["width","height"],NP=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=OP[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"}}}}),OP={line:function(t,e,i,n){var o=Dm([e,i[0]],[e,i[1]],Nm(t));return Kn({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))}}};XD.registerAxisPointerClass("SingleAxisPointer",NP),Ws({type:"single"});var EP=YI.extend({type:"series.themeRiver",dependencies:["singleAxis"],nameMap:null,init:function(t){EP.superApply(this,"init",arguments),this.legendDataProvider=function(){return this.getRawData()}},fixData:function(t){var e=t.length,i=[];Zi(t,function(t){return t[2]}).buckets.each(function(t,e){i.push({name:e,dataList:t})});for(var 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)},VP._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);Ar.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 Xs(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 GP="sunburstRootToNode";Es({type:GP,update:"updateView"},function(t,e){e.eachComponent({mainType:"series",subType:"sunburst",query:t},function(e,i){var n=ld(t,[GP],e);if(n){var o=e.getViewRoot();o&&(t.direction=hd(o,n.node)?"rollUp":"drillDown"),e.resetViewRoot(n.node)}})});var FP="sunburstHighlight";Es({type:FP,update:"updateView"},function(t,e){e.eachComponent({mainType:"series",subType:"sunburst",query:t},function(e,i){var n=ld(t,[FP],e);n&&(t.highlight=n.node)})});Es({type:"sunburstUnhighlight",update:"updateView"},function(t,e){e.eachComponent({mainType:"series",subType:"sunburst",query:t},function(e,i){t.unhighlight=!0})});var WP=Math.PI/180;Bs(v(uC,"sunburst")),zs(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=Vo(e[0],o),l=Vo(e[1],a),u=Vo(n[0],r/2),h=Vo(n[1],r/2),c=-t.get("startAngle")*WP,f=t.get("minAngle")*WP,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 ml(this.getSource(),this)},getDataParams:function(t,e,i){var n=YI.prototype.getDataParams.apply(this,arguments);return i&&(n.info=i.info),n}}),Ar.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}});Ws({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;da(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 KP=Fs({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){KP.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}}});Es("legendToggleSelect","legendselectchanged",v(xv,"toggleSelected")),Es("legendSelect","legendselected",v(xv,"select")),Es("legendUnSelect","legendunselected",v(xv,"unSelect"));var $P=v,JP=d,QP=tb,tN=Ws({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=ca(a,s,l),h=this.layoutInner(t,o,u,n),c=ca(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)}),JP(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",$P(bv,h,n)).on("mouseover",$P(Sv,c.name,null,n,s)).on("mouseout",$P(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",$P(bv,h,n)).on("mouseover",$P(Sv,null,h,n,s)).on("mouseout",$P(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(Jl(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(Jl(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:mo({},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),fo(g),g.__legendDataIndex=e,g},layoutInner:function(t,e,i){var n=this.getContentGroup();aI(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}});Os(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&&Io(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=nN[r],l=oN[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?this.el.hide():true,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 uN=m,hN=d,cN=Vo,dN=new yM({shape:{x:-1,y:-1,width:2,height:2}});Ws({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,uN(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=dN;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=xP(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={};hN(t,function(t){hN(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=Xl(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?ia(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 No(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=na(h,i,!0);else if("function"==typeof h){var d=uN(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=cN(e[0],s),n=cN(e[1],l);else if(w(e)){e.width=u[0],e.height=u[1];var f=ca(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&&hN(e,function(e,n){var o=e.dataByAxis||{},a=(t[n]||{}).dataByAxis||[];(i&=o.length===a.length)&&hN(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)&&hN(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))}}),Es({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},function(){}),Es({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:aD.prototype.dataToCoord,radiusToData:aD.prototype.coordToData},u(Gv,aD);var fN=Bi();Fv.prototype={constructor:Fv,pointToData:function(t,e){return this.polar.pointToData(t,e)["radius"===this.dim?0:1]},dataToAngle:aD.prototype.dataToCoord,angleToData:aD.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=fN(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,aD);var pN=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};pN.prototype={type:"polar",axisPointerEnabled:!0,constructor:pN,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 gN=lI.extend({type:"polarAxis",axis:null,getCoordSysModel:function(){return this.ecModel.queryComponents({mainType:"polar",index:this.option.polarIndex,id:this.option.polarId})[0]}});n(gN.prototype,UA);var mN={angle:{startAngle:90,clockwise:!0,splitNumber:12,axisLabel:{rotate:!1}},radius:{splitNumber:5}};ED("angle",gN,Wv,mN.angle),ED("radius",gN,Wv,mN.radius),Fs({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 vN={dimensions:pN.prototype.dimensions,create:function(t,e){var i=[];return t.eachComponent("polar",function(t,n){var o=new pN(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}};Fa.register("polar",vN);var yN=["axisLine","axisLabel","axisTick","splitLine","splitArea"];XD.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(yN,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 No(a[u].textStyle,r,r.ecModel));var m=new rM({silent:!0});this.group.add(m),mo(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},kN.findTargetInfo=function(t,e){for(var i=this._targetInfoList,n=dy(e,t),o=0;o=0||AN(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:ON.grid,xAxisDeclared:r[t.id],yAxisDeclared:s[t.id]})}))},geo:function(t,e){TN(t.geoModels,function(t){var i=t.coordinateSystem;e.push({panelId:"geo--"+t.id,geoModel:t,coordSysModel:t,coordSys:i,coordSyses:[i],getPanelRect:ON.geo})})}},NN=[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}],ON={grid:function(){return this.coordSys.grid.getRect().clone()},geo:function(){var t=this.coordSys,e=t.getBoundingRect().clone();return e.applyTransform(Ao(t)),e}},EN={lineX:DN(fy,0),lineY:DN(fy,1),rect:function(t,e,i){var n=e[CN[t]]([i[0][0],i[1][0]]),o=e[CN[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[CN[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}}},RN={lineX:DN(py,0),lineY:DN(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]]})}},zN=["inBrush","outOfBrush"],BN="__ecBrushSelect",VN="__ecInBrushSelectEvent",GN=VT.VISUAL.BRUSH;zs(GN,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)})}),Bs(GN,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:FN[t.brushType](t)},t))}),S=ty(e.option,zN,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(zN,S,a,r)})}),vy(e,o,a,s,n)});var FN={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)}},WN=["#ddd"];Fs({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:WN},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}});Ws({type:"brush",init:function(t,e){this.ecModel=t,this.api=e,this.model,(this._brushController=new zf(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})}}),Es({type:"brush",event:"brush"},function(t,e){e.eachComponent({mainType:"brush",query:t},function(e){e.setAreas(t.areas)})}),Es({type:"brushSelect",event:"brushSelected",update:"none"},function(){});var HN={},ZN=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(ZN.title)};var UN=Dy.prototype;UN.render=UN.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")})},UN.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},UN.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),Ns(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,SN)}});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=Yo(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=ca(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},Fa.register("calendar",Cy);var XN=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=ga(t);XN.superApply(this,"init",arguments),ky(t,o)},mergeOption:function(t,e){XN.superApply(this,"mergeOption",arguments),ky(this.option,t)}}),jN={EN:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],CN:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},YN={EN:["S","M","T","W","T","F","S"],CN:["日","一","二","三","四","五","六"]};Ws({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?oa(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});mo(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=jN[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&&$N(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}):$N(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)}}),$N(o,function(t){e.setApproximateExtent(r,t)}))})}}};var tO=d,eO=KN,iO=Fs({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),tO([["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();eO(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;eO(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):tO(n.singleAxis,function(n){t&&n.get("orient",!0)===e&&(i.singleAxisIndex=[n.componentIndex],t=!1)})}t&&eO(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 eO(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;eO(function(n){tO(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;tO([["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()}}),nO=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:aO(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(cO,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 oO({draggable:!0,cursor:Fy(this._orient),drift:sO(this._onDragMove,this,"all"),onmousemove:function(t){mw(t.event)},ondragstart:sO(this._showDataInfo,this,!0),ondragend:sO(this._onDragEnd,this),onmouseover:sO(this._showDataInfo,this,!0),onmouseout:sO(this._showDataInfo,this,!1),style:{fill:a.get("fillerColor"),textPosition:"inside"}})),n.add(new oO($n({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)"}}))),lO([0,1],function(t){var o=Po(a.get("handleIcon"),{cursor:Fy(this._orient),draggable:!0,drift:sO(this._onDragMove,this,t),onmousemove:function(t){mw(t.event)},ondragend:sO(this._onDragEnd,this),onmouseover:sO(this._showDataInfo,this,!0),onmouseout:sO(this._showDataInfo,this,!1)},{x:-1,y:0,width:2,height:2}),r=o.getBoundingRect();this._handleHeight=Vo(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=[aO(t[0],[0,100],e,!0),aO(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];QL(e,n,o,i.get("zoomLock")?"all":t,null!=a.minSpan?aO(a.minSpan,r,o,!0):null,null!=a.maxSpan?aO(a.maxSpan,r,o,!0):null);var s=this._range,l=this._range=rO([aO(n[0],o,r,!0),aO(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=rO(i.slice()),o=this._size;lO([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=Ao(n.handles[t].parent,this.group),i=Co(0===t?"right":"left",e),s=this._handleWidth/2+hO,l=Do([c[t]+(0===t?-s:s),this._size[1]/2],e);o[t].setStyle({x:l[0],y:l[1],textVerticalAlign:a===uO?"middle":i,textAlign:a===uO?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=rO(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=Do([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(lO(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}});iO.extend({type:"dataZoom.inside",defaultOption:{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}});var fO="\0_ec_dataZoom_roams",pO=m,gO=nO.extend({type:"dataZoom.inside",init:function(t,e){this._range},render:function(t,e,i,n){gO.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]=pO(mO[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),gO.superApply(this,"dispose",arguments),this._range=null}}),mO={zoom:function(t,e,i,n){var o=this._range,a=o.slice(),r=t.axisModels[0];if(r){var s=vO[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 QL(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=vO[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 vO[n]([0,0],[a.scrollDelta,a.scrollDelta],e,o,i).signal*(t[1]-t[0])*a.scrollDelta})},vO={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}};Os({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)})}}),Es("dataZoom",function(t,e){var i=Ny(m(e.eachComponent,e,"dataZoom"),KN,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 yO=d,xO=function(t){var e=t&&t.visualMap;y(e)||(e=e?[e]:[]),yO(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)&&yO(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 _O=VT.VISUAL.COMPONENT;Bs(_O,{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}}),Bs(_O,{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 wO={get:function(t,e,n){var o=i((bO[t]||{})[e]);return n&&y(o)?o[o.length-1]:o}},bO={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]}},SO=hL.mapVisual,MO=hL.eachVisual,IO=y,TO=d,AO=Fo,DO=Bo,CO=B,LO=Fs({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=AO([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){IO(o.color)&&!t.inRange&&(t.inRange={color:o.color.slice().reverse()}),t.inRange=t.inRange||{color:e.get("gradientColor")},TO(this.stateList,function(e){var i=t[e];if(_(i)){var n=wO.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]={},TO(n,function(t,e){if(hL.isValidType(e)){var i=wO.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");TO(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=SO(s.symbol,function(t){return"none"===t||"square"===t?"roundRect":t});var u=s.symbolSize;if(null!=u){var h=-1/0;MO(u,function(t){t>h&&(h=t)}),s.symbolSize=SO(u,function(t){return DO(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:CO,getValueState:CO,getVisualMeta:CO}),kO=[20,140],PO=LO.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){PO.superApply(this,"optionUpdated",arguments),this.resetExtent(),this.resetVisual(function(t){t.mappingMethod="linear",t.dataExtent=this.getExtent()}),this._resetRange()},resetItemSize:function(){PO.superApply(this,"resetItemSize",arguments);var t=this.itemSize;"horizontal"===this._orient&&t.reverse(),(null==t[0]||isNaN(t[0]))&&(t[0]=kO[0]),(null==t[1]||isNaN(t[1]))&&(t[1]=kO[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(){LO.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=Fo((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;EO([0,1],function(r){var s=o[r];s.setStyle("fill",e.handlesColor[r]),s.position[1]=t[r];var l=Do(i.handleLabelPoints[r],Ao(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=OO(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={convertOpacityToAlpha:!0},d=this.getControllerVisual(t,"color",c);h.setStyle("fill",d);var f=Do(u.indicatorLabelPoint,Ao(h,this.group)),p=u.indicatorLabel;p.attr("invisible",!1);var g=this._applyTransform("left",u.barGroup),m=this._orient;p.setStyle({text:(i||"")+o.formatValueText(e),textVerticalAlign:"horizontal"===m?g:"middle",textAlign:"horizontal"===m?"center":g,x:f[0],y:f[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]=RO(zO(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=RO(zO(o[0],t),o[1]);var r=ax(i,a,o),s=[t-r,t+r],l=OO(t,o,a,!0),u=[OO(s[0],o,a,!0),OO(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=Ao(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()}});Es({type:"selectDataRange",event:"dataRangeSelected",update:"update"},function(t,e){e.eachComponent({mainType:"visualMap",query:t},function(e){e.setSelected(t.selected)})}),Ns(xO);var FO=LO.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){FO.superApply(this,"optionUpdated",arguments),this._pieceList=[],this.resetExtent();var n=this._mode=this._determineMode();WO[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=hL.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]=wO.get(n,"inRange"===t?"active":"inactive",o)})},this),LO.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=hL.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){hL.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}}}}),WO={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)}};NO.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),aI(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(Jl(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})}});Ns(xO);var HO=ta,ZO=ia,UO=Fs({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,HO).join(", "):HO(i),o=e.getName(t),a=ZO(this.name);return(null!=i||o)&&(a+="
"),o&&(a+=ZO(o),null!=i&&(a+=" : ")),null!=i&&(a+=ZO(n)),a},getData:function(){return this._data},setData:function(t){this._data=t}});h(UO,ZI),UO.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 XO=l,jO=v,YO={min:jO(dx,"min"),max:jO(dx,"max"),average:jO(dx,"average")},qO=Ws({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(){}});qO.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 Du),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")}}),Ns(function(t){t.markPoint=t.markPoint||{}}),UO.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 KO=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};qO.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 sf);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")}}),Ns(function(t){t.markLine=t.markLine||{}}),UO.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 $O=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},JO=[["x0","y0"],["x1","y0"],["x1","y1"],["x0","y1"]];qO.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(JO,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(JO,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);Io(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(),go(t.style,t.hoverStyle,o,a,{labelFetcher:e,labelDataIndex:i,defaultText:h.getName(i)||"",isRectText:!0,autoColor:s}),fo(t,{}),t.dataModel=e}),u.__data=h,u.group.silent=e.get("silent")||t.get("silent")}}),Ns(function(t){t.markArea=t.markArea||{}});lI.registerSubTypeDefaulter("timeline",function(){return"slider"}),Es({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)}),Es({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 vA([{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 tE=qI.extend({type:"timeline"}),eE=function(t,e,i,n){aD.call(this,t,e,i),this.type=n||"value",this.model=null};eE.prototype={constructor:eE,getLabelModel:function(){return this.model.getModel("label")},isHorizontal:function(){return"horizontal"===this.model.get("orient")}},u(eE,aD);var iE=m,nE=d,oE=Math.PI;tE.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 ia(s.scale.getLabel(t))},nE(["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:oE/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*oE/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,-oE/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=Hl(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 eE("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();nE(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:iE(this._changeTimeline,this,t)},h=zx(r,s,e,u);fo(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();nE(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:iE(this._changeTimeline,this,a),silent:!1});mo(h.style,s,{text:n.formattedLabel,textAlign:t.labelAlign,textVerticalAlign:t.labelBaseline}),e.add(h),fo(h,mo({},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),fo(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",iE(this._changeTimeline,this,c?"-":"+")),o(t.prevBtnPosition,"controlStyle.prevIcon",iE(this._changeTimeline,this,c?"+":"-")),o(t.playPosition,"controlStyle."+(h?"stopIcon":"playIcon"),iE(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=iE(s._handlePointerDrag,s),t.ondragend=iE(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=Fo(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 rE=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:rE.title,type:"png",name:"",excludeComponents:["toolbox"],pixelRatio:1,lang:rE.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 sE=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(sE.title),option:{},seriesIndex:{}};var lE=Fx.prototype;lE.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 uE={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)}},hE=[["line","bar"],["stack","tiled"]];lE.onclick=function(t,e,i){var n=this.model,o=n.get("seriesIndex."+i);if(uE[i]){var a={series:[]};d(hE,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=uE[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})}},Es({type:"changeMagicType",event:"magicTypeChanged",update:"prepareAndUpdate"},function(t,e){e.mergeOption(t.newOption)}),Ty("magicType",Fx);var cE=rT.toolbox.dataView,dE=new Array(60).join("-"),fE="\t",pE=new RegExp("["+fE+"]+","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(cE.title),lang:i(cE.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)+fE+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),Es({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 gE=d,mE="\0_ec_hist_store";iO.extend({type:"dataZoom.select"}),nO.extend({type:"dataZoom.select"});var vE=rT.toolbox.dataZoom,yE=d,xE="\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(vE.title)};var _E=o_.prototype;_E.render=function(t,e,i,n){this.model=t,this.ecModel=e,this.api=i,s_(t,e,this,n,i),r_(t,e)},_E.onclick=function(t,e,i){wE[i].call(this)},_E.remove=function(t,e){this._brushController.unmount()},_E.dispose=function(t,e){this._brushController.dispose()};var wE={zoom:function(){var t=!this._isZoomActive;this.api.dispatchAction({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:t})},back:function(){this._dispatchZoomAction(t_(this.ecModel))}};_E._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=QL(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)}},_E._dispatchZoomAction=function(t){var e=[];yE(t,function(t,n){e.push(i(t))}),e.length&&this.api.dispatchAction({type:"dataZoom",from:this.uid,batch:e})},Ty("dataZoom",o_),Ns(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:xE+t+i};r[o]=i,n.push(r)}})}}function i(e,i){var n=t[e];y(n)||(n=n?[n]:[]),yE(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 bE=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:bE.title},l_.prototype.onclick=function(t,e,i){e_(t),e.dispatchAction({type:"restore",from:this.uid})},Ty("restore",l_),Es({type:"restore",event:"restore",update:"prepareAndUpdate"},function(t,e){e.resetOption("recreate")});var SE,ME="urn:schemas-microsoft-com:vml",IE="undefined"==typeof window?null:window,TE=!1,AE=IE&&IE.document;if(AE&&!U_.canvasSupported)try{!AE.namespaces.zrvml&&AE.namespaces.add("zrvml",ME),SE=function(t){return AE.createElement("')}}catch(t){SE=function(t){return AE.createElement("<"+t+' xmlns="'+ME+'" class="zrvml">')}}var DE=ES.CMD,CE=Math.round,LE=Math.sqrt,kE=Math.abs,PE=Math.cos,NE=Math.sin,OE=Math.max;if(!U_.canvasSupported){var EE=21600,RE=EE/2,zE=function(t){t.style.cssText="position:absolute;left:0;top:0;width:1px;height:1px;",t.coordsize=EE+","+EE,t.coordorigin="0,0"},BE=function(t){return String(t).replace(/&/g,"&").replace(/"/g,""")},VE=function(t,e,i){return"rgb("+[t,e,i].join(",")+")"},GE=function(t,e){e&&t&&e.parentNode!==t&&t.appendChild(e)},FE=function(t,e){e&&t&&e.parentNode===t&&t.removeChild(e)},WE=function(t,e,i){return 1e5*(parseFloat(t)||0)+1e3*(parseFloat(e)||0)+i},HE=function(t,e){return"string"==typeof t?t.lastIndexOf("%")>=0?parseFloat(t)/100*e:parseFloat(t):t},ZE=function(t,e,i){var n=Gt(e);i=+i,isNaN(i)&&(i=1),n&&(t.color=VE(n[0],n[1],n[2]),t.opacity=i*n[3])},UE=function(t){var e=Gt(t);return[VE(e[0],e[1],e[2]),e[3]]},XE=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]*EE,x/=v[1]*EE;var _=OE(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 ZE(t,n,e.opacity)},jE=function(t,e){null!=e.lineDash&&(t.dashstyle=e.lineDash.join(" ")),null==e.stroke||e.stroke instanceof IM||ZE(t,e.stroke,e.opacity)},YE=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&&FE(t,a),a||(a=u_(e)),o?XE(a,i,n):jE(a,i),GE(t,a)):(t[o?"filled":"stroked"]="false",FE(t,a))},qE=[[],[],[]],KE=function(t,e){var i,n,o,a,r,s,l=DE.M,u=DE.C,h=DE.L,c=DE.A,d=DE.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,CE(((A-C)*M+b)*EE-RE),",",CE(((D-L)*I+S)*EE-RE),",",CE(((A+C)*M+b)*EE-RE),",",CE(((D+L)*I+S)*EE-RE),",",CE((O*M+b)*EE-RE),",",CE((E*I+S)*EE-RE),",",CE((y*M+b)*EE-RE),",",CE((x*I+S)*EE-RE)),r=y,s=x;break;case DE.R:var z=qE[0],B=qE[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]=CE(z[0]*EE-RE),B[0]=CE(B[0]*EE-RE),z[1]=CE(z[1]*EE-RE),B[1]=CE(B[1]*EE-RE),f.push(" m ",z[0],",",z[1]," l ",B[0],",",z[1]," l ",B[0],",",B[1]," l ",z[0],",",B[1]);break;case DE.Z:f.push(" x ")}if(i>0){f.push(n);for(var V=0;V100&&(tR=0,QE={});var i,n=eR.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,tR++}return e};!function(t,e){bb[t]=e}("measureText",function(t,e){var i=AE;JE||((JE=i.createElement("div")).style.cssText="position:absolute;top:-20000px;left:0;padding:0;margin:0;border:none;white-space:pre;",AE.body.appendChild(JE));try{JE.style.font=e}catch(t){}return JE.innerHTML="",JE.appendChild(i.createTextNode(t)),{width:JE.offsetWidth}});for(var nR=new de,oR=[Db,di,fi,Pn,rM],aR=0;aR=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 Pn?yR:t instanceof fi?xR:t instanceof rM?_R:yR},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 IR=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=[]};IR.prototype={constructor:IR,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){IR.prototype[t]=F_(t)}),Ti("svg",IR),t.version="4.2.1",t.dependencies=ET,t.PRIORITY=VT,t.init=function(t,e,i){var n=ks(t);if(n)return n;var o=new us(t,e,i);return o.id="ec_"+iA++,tA[o.id]=o,Fi(t,oA,o.id),Cs(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_"+nA++,kT(e,function(e){e.group=t})}return eA[t]=!0,t},t.disConnect=Ls,t.disconnect=aA,t.dispose=function(t){"string"==typeof t?t=tA[t]:t instanceof us||(t=ks(t)),t instanceof us&&!t.isDisposed()&&t.dispose()},t.getInstanceByDom=ks,t.getInstanceById=function(t){return tA[t]},t.registerTheme=Ps,t.registerPreprocessor=Ns,t.registerProcessor=Os,t.registerPostUpdate=function(t){KT.push(t)},t.registerAction=Es,t.registerCoordinateSystem=Rs,t.getCoordinateSystemDimensions=function(t){var e=Fa.get(t);if(e)return e.getDimensionsInfo?e.getDimensionsInfo():e.dimensions.slice()},t.registerLayout=zs,t.registerVisual=Bs,t.registerLoading=Gs,t.extendComponentModel=Fs,t.extendComponentView=Ws,t.extendSeriesModel=Hs,t.extendChartView=Zs,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=rA,t.zrender=Hb,t.number=YM,t.format=eI,t.throttle=Pr,t.helper=tD,t.matrix=Sw,t.vector=cw,t.color=Ww,t.parseGeoJSON=iD,t.parseGeoJson=rD,t.util=sD,t.graphic=lD,t.List=vA,t.Model=No,t.Axis=aD,t.env=U_}); \ No newline at end of file diff --git a/utils/utils.js b/utils/utils.js index 9f30b6a..ee25c74 100644 --- a/utils/utils.js +++ b/utils/utils.js @@ -1,8 +1,32 @@ +export let goPage = (url, params = {}, type = 'navigateTo') => { + uni.$u.route({ + url, + params, + type + }) +} -export let goPage = (url, params={}, type='navigateTo')=> { - uni.$u.route({ - url, - params, - type - }) - } \ No newline at end of file +export let detectOrient = (dome) => { + var width = document.documentElement.clientWidth, + height = document.documentElement.clientHeight, + // $wrapper = document.getElementsByTagName('body')[0], + $wrapper = document.querySelector(dome), + style = ""; + if (width >= height) { // 横屏 + style += "width:" + width + "px;"; // 注意旋转后的宽高切换 + style += "height:" + height + "px;"; + style += "-webkit-transform: rotate(0); transform: rotate(0);"; + style += "-webkit-transform-origin: 0 0;"; + style += "transform-origin: 0 0;"; + console.log(1) + } else { // 竖屏 + style += "width:" + height + "px;"; + style += "height:" + width + "px;"; + style += "-webkit-transform: rotate(90deg); transform: rotate(90deg);"; + // 注意旋转中点的处理 + style += "-webkit-transform-origin: " + width / 2 + "px " + width / 2 + "px;"; + style += "transform-origin: " + width / 2 + "px " + width / 2 + "px;"; + console.log(2) + } + $wrapper.style.cssText = style; +} \ No newline at end of file